1 \documentclass[nofonts]{ctexart} 2 \setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体 3 \setCJKsansfont{WenQuanYi Zen Hei} %设置文泉驿正黑字体作为中文无衬线字体 4 \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置文泉驿等宽正黑字体作为中文打字机字体 5 \begin{document} 6 您好,\LaTeX! 7 \end{document}
保存,然后运行命令
1 lienhua34:text$ xelatex ctex.tex
编译成功,输出了 ctex.pdf 文件,我们双击打开 ctex.pdf 文件,看到如下内容
ok。我们的 texlive 已经能够处理中文字符。但是。。。
通过 setCJKmainfont 等命令我们可以使用 texlive 处理中文字符了,但是要在每个中文文档都写这么一段命令,确实是个烦人的事情。我们可以通过将这段命令写入到自定义的宏包文件 mylinuxfonts.sty 中,然后在文档中以命令 \usepackage{mylinuxfonts} 使用这个自定义宏包即可。
1 % mylinuxfonts.sty 2 \ProvidesPackage{mylinuxfonts} 3 \setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体 4 \setCJKsansfont{WenQuanYi Zen Hei} %设置中文无衬线字体为文泉驿正黑 5 \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置中文打字机(等宽)字体为文泉驿正黑 6 \endinput
然后修改 ctex.tex 的内容如下即可。
1 \documentclass[nofonts]{ctexart} 2 \usepackage{mylinuxfonts} 3 \begin{document} 4 您好,\LaTeX! 5 \end{document}
那么我们要将 mylinuxfonts.sty 放在什么地方,texlive 才能够自动找得到呢?texlive 提供一个变量 TEXMFHOME(默认为~/texmf),给用 户 存 放 自 己 独 立 安 装 的 宏 包、 字 体 等。 宏 包 文 件 需 要 放 置 到 目 录TEXMFHOME/tex/latex 或 者 它 的 子 目 录 下。 我 们 将 mylinuxfonts.sty放到目录~/texmf/tex/latex 下,然后编译 ctex.tex 文件。ok,成功!
当然,如果将 mylinuxfonts.sty 放到目录~/texmf/tex/latex 下,只有当前用户才能够使用。如果我们希望这个宏包对于能够登录当前机器的所有用户都可用,那怎么办?texlive 另外提供了一个变量 TEXMFLOCAL(默认为 /usr/local/texlive/texmf-local),给系统管理员用来安装供整个系统使用的额外的宏包或者字体。宏包文件需要放到目录 TEXMFLOCAL/tex/latex 或者它的子目录下。我们将 mylinuxfonts.sty 文件放到这个目录下。
1 lienhua34:latex$ sudo cp mylinuxfonts.sty /usr/local/texlive/texmf-local/tex/latex/local
然后编译 ctex.tex 文件,但提示找不到 “mylinuxfonts.sty” 文件,
这是因为 TEXMFLOCAL 目录需要一个保持更新的文件名数据库,否则新增的文件就无法找到。我们通过命令 mktexlsr 来更新它。
lienhua34:latex$ sudo mktexlsr mktexlsr: Updating /usr/local/texlive/2013/texmf-config/ls-R... mktexlsr: Updating /usr/local/texlive/2013/texmf-dist/ls-R... mktexlsr: Updating /usr/local/texlive/2013/../texmf-local/ls-R... mktexlsr: Updating /usr/local/texlive/2013/texmf-var/ls-R... mktexlsr: Done.
此时再编译 ctex.tex。ok,没有问题了。
2.3 优化配置现在我们的 texlive 已经支持中文了,但我们还可以再优化一下我们的ctex 配置。
在我的 ubuntu 下没有安装 windows 系统的字体。而 ctex 默认是使用的字体配置选项是 winfonts,那么我们每个要使用 ctex 宏包的 tex 文档中都要设置 nofonts 选项。
ctex 宏包提供了一个配置文件 ctexopts.cfg,该文件中的代码会在 ctex宏包的开头(选项定义后面)执行。我们可以使用此文件设置 ctex 宏包的默认选项。