早在这字体出来的时候就想给 LaTeX 装上,玩玩新鲜。最近还是太忙了。直接入主题吧。
系统:teTeX(带 CJK),未额外安装中文字体。
TEXMFMAIN 在 /usr/share/texmf,
LOCALTEXMF 在 /usr/local/share/texmf。
这些可以在 /etc/texmf/texmf.cnf 里面看到/设置。
大体步骤(适用于安装任何 TrueType 的中文字体)
- 获得字体(ttf格式)
- 用 gbkfonts 将 ttf 字体转换成 TeX 能认识的字体
- 修改字体的配置文件,让 dvips,dvipdfm 和 pdftex 等程序能顺利地用上新的字体
- 更新文件数据库
获得 TrueType 字体
得到徐静蕾体的字体文件 xjlFont.fon(至于怎么弄到,我就不教人干坏事了)。然后用 FontForge 将它导出成 ttf 格式:FZJLJW--GB1-0.ttf。
造出 TeX 认识的字
用前辈写的 gbkfonts 程序将 ttf 字体转换成 TeX 认识的字体。可以不用 gbkfonts,自己一步一步造字。网上到处都是造字的教程。不过既然有现成的程序,何必操心呢?字体取名为 xjl。(实际上 gbkfonts 加了个前缀,叫 gbkxjl。)gbkfonts 对新造出来的字用 gbk 编码。
jchen@peach:~/additional-fonts$ gbkfonts FZJLJW--GB1-0.ttf xjl造字后产生很多新的目录和文件。将它们拷贝到 $LOCALTEXMF。同时将原本的 ttf 字体拷到 $LOCALTEXMF/fonts/truetype。dvips 和 dvipdfm 不需要这个文件,但 pdftex 需要。
jchen@peach:~/additional-fonts$ sudo cp -R * /usr/local/share/texmfjchen@peach:/usr/local/share/texmf$ sudo mkdir fonts/truetypejchen@peach:/usr/local/share/texmf$ sudo mv FZJLJW--GB1-0.ttf fonts/truetype修改字体配置文件
dvips:创建 dvips 目录,将现成的 config.ps 文件拷过来,增加一行调用 cjk.map 的指令。
jchen@peach:/usr/local/share/texmf$ sudo mkdir dvips dvips/configjchen@peach:/usr/local/share/texmf$ sudo cp /usr/share/texmf-tetex/dvips/config/config.ps dvips/config/jchen@peach:/usr/local/share/texmf$ echo "p +cjk.map" | sudo tee -a dvips/config/config.psdvipdfm:创建 dvipdfm 目录,将现成的 config 文件拷过来,增加调用 cid-x.map 和 gbkxjl.map 的指令。
jchen@peach:/usr/local/share/texmf$ sudo mkdir dvipdfm dvipdfm/configjchen@peach:/usr/local/share/texmf$ sudo cp /usr/share/texmf-tetex/dvipdfm/config/config dvipdfm/config/jchen@peach:/usr/local/share/texmf$ echo "f cid-x.map" | sudo tee -a dvipdfm/config/configjchen@peach:/usr/local/share/texmf$ echo "f gbkxjl.map" | sudo tee -a dvipdfm/config/configpdftex:创建 pdftex 目录,将现成的 pdftex.cfg 文件拷过来,增加调用 gbkxjl.map 的指令。
jchen@peach:/usr/local/share/texmf$ sudo mkdir pdftex pdftex/configjchen@peach:/usr/local/share/texmf$ sudo cp /usr/share/texmf-tetex/pdftex/config/pdftex.cfg pdftex/config/jchen@peach:/usr/local/share/texmf$ echo "map +gbkxjl.map" | sudo tee -a pdftex/config/pdftex.cfg在 texmf.cnf 文件的 “TTFONTS =“ 和 “TTF2TFMINPUTS =“ 两行添加 ttf 字体文件的路径:
TTFONTS = .;$TEXMF/fonts/truetype//;$TEXMFLOCAL/fonts/truetype//TTF2TFMINPUTS = .;$TEXMF/ttf2pk//;$TEXMFLOCAL/fonts/truetype//重新产生 map:
jchen@peach:/usr/local/share/texmf$ updmap更新 TeX 的文件数据库
jchen@peach:/usr/local/share/texmf$ sudo mktexlsr .jchen@peach:/usr/local/share/texmf$ sudo mktexlsr测试
写一个简单的 tex 文件,保存时采用 gbk 编码。
\documentclass{article}
\usepackage{CJK}
\renewcommand{\normalsize}{\fontsize{20.74}{24.88}\selectfont}
\begin{document}
\begin{CJK*}{GBK}{xjl}\CJKindent
古之学者必有师。师者,所以传道受业解惑也。
人非生而知之者,孰能无惑?惑而不从师,其为
惑也,终不解矣。生乎吾前,其闻道也固先乎吾
,吾从而师之;生乎吾後,其闻道也亦先乎吾,
吾从而师之。吾师道也,夫庸知其年之先後生於
吾乎?是故无贵无贱,无长无少,道之所存,师
之所存也。
\end{CJK*}
\end{document}
对 latex,dvips,ps2pdf,dvipdfm,pdflatex 逐一测试。最终效果如图。