星期二, 八月 12, 2014

Texlive中文

寒,以前还执着过好长一段时间 latex+CJK,虽然在这个环境中写过的中文并不多。今天才知道支持 Unicode 的 xelatex 酷毙了。

1. 拷贝自己 Windows 上带的中文字体

具体就是那些 sim 开头的。我的 Windows 8.1 有 10 个这样的文件。至于它们是原先就有还是随 Office 带来的就不知道了。

sudo fdisk -l #找 Windows 分区,如 sda4
sudo mount /dev/sda4 /mnt
sudo mkdir /usr/share/fonts/microsoft
sudo cp /mnt/Windows/Fonts/[Ss][Ii][Mm]* /usr/share/fonts/microsoft
sudo fc-cache
即使自己没有 Windows,网络上有很多自由字体可用。如上所述,将它们拷贝到 /usr/share/fonts 中的一个子目录中。最后运行 fc-cache。

运行
fc-list :lang=zh-cn|gawk -F: '{print $2}'
看已经安装了哪些字体。如我的机器上就有:
 WenQuanYi Zen Hei Sharp,文泉驛點陣正黑,文泉驿点阵正黑
 YouYuan,幼圆
 NSimSun,新宋体
 SimHei,黑体
 AR PL UMing TW MBE
 WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑
 WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑
 FangSong,仿宋
 LiSu,隶书
 SimSun,宋体
 AR PL UMing TW
 AR PL UMing HK
 AR PL UMing CN
 KaiTi,楷体
2. 编辑文件

示例,test.tex:
\documentclass[11pt,a4paper]{article}
\usepackage{fontspec}
\setmainfont[BoldFont=黑体]{新宋体}
\newfontfamily\kaiti{楷体}
%\newenvironment{kaiti}{\kaiti}{\par}
\DeclareTextFontCommand{\ttkaiti}{\kaiti}

\XeTeXlinebreaklocale ``zh''
\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
\begin{document}
世界,你好!
\textbf{世界,你好!}
\ttkaiti{世界,你好!}

\end{document}

运行:
xelatex test
就可以看到编译出来的中文文档了。

没有评论: