让 LaTeX 用上徐静蕾体

xjlfont.png

早在这字体出来的时候就想给 LaTeX 装上,玩玩新鲜。最近还是太忙了。直接入主题吧。

系统:teTeX(带 CJK),未额外安装中文字体。
TEXMFMAIN 在 /usr/share/texmf,
LOCALTEXMF 在 /usr/local/share/texmf。
这些可以在 /etc/texmf/texmf.cnf 里面看到/设置。

大体步骤(适用于安装任何 TrueType 的中文字体)

  1. 获得字体(ttf格式)
  2. 用 gbkfonts 将 ttf 字体转换成 TeX 能认识的字体
  3. 修改字体的配置文件,让 dvips,dvipdfm 和 pdftex 等程序能顺利地用上新的字体
  4. 更新文件数据库

获得 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/texmf
jchen@peach
:/usr/local/share/texmf$ sudo mkdir fonts/truetype
jchen@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/config
jchen@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.ps

dvipdfm:创建 dvipdfm 目录,将现成的 config 文件拷过来,增加调用 cid-x.map 和 gbkxjl.map 的指令。

jchen@peach:/usr/local/share/texmf$ sudo mkdir dvipdfm dvipdfm/config
jchen@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/config
jchen@peach:/usr/local/share/texmf$ echo "f gbkxjl.map" | sudo tee -a dvipdfm/config/config

pdftex:创建 pdftex 目录,将现成的 pdftex.cfg 文件拷过来,增加调用 gbkxjl.map 的指令。

jchen@peach:/usr/local/share/texmf$ sudo mkdir pdftex pdftex/config
jchen@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 逐一测试。最终效果如图。

Advertisements

0 Responses to “让 LaTeX 用上徐静蕾体”



  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




Categories

Blog Stats

  • 247,883 hits

%d bloggers like this: