Nov 8
不知道出于什么原因,比较经典的 CJK 宏包在 MacTeX 2012 中基本被丢弃。但是,我们可能会有一些用 CJK 宏包写的相对古老的 GBK 文档。很明显,与其逐个修改 LaTeX 文档,倒不如修改 MacTeX 来得一劳永逸。下面就来谈谈如何让 CJK 宏包工作起来?
首先,MacTeX 中已包含了 CJK、Zhmetrics 等处理中文的宏包,只不过它们主要被用作 CTeX 宏包的 XeLaTeX 组成部分;自身的功能则被肢解了,现在就来给出我们的还原方法。
想让 CJK 宏包使用系统字体,需要将系统的字体目录路径写入 OSFONTDIR 变量。通常,我们可以在 TEXMFHOME 树中的 texmf.cnf 文件中修改该变量,具体如下:
$ cd /usr/local/texlive/2012/ $ nano -w texmf.cnf
修改 OSFONTDIR 为
OSFONTDIR = /Library/Fonts//;/System/Library/Fonts//;~/Library/Fonts//
接着需要为 CJK 宏包的相关字体增加对应的字体 map 文件。由于我们要使用 LaTeX 编译文件,因此,需要为 ttf2pk、dvipdfmx 增加 map 文件,这些文件本身就在 MacTeX 之中,我们只需要把它们找出来作适当的修改即可。作如下操作:
$ mkdir ~/Library/texmf/dvipdfmx/ $ cp /usr/local/texlive/2012/texmf-dist/dvipdfmx/dvipdfmx.cfg ~/Library/texmf/dvipdfmx/dvipdfmx.cfg
打开该文件并去掉下面这行的注释符号(%):
$ nano -w ~/Library/texmf/dvipdfmx/dvipdfmx.cfg f cid-x.map
还需要修改 cid-x.map,并在其中增加中易公司字体的内容:
$ cp /usr/local/texlive/2012/texmf/fonts/map/dvipdfmx/cid-x.map ~/Library/texmf/fonts/map/dvipdfmx/cid-x.map $ cat cid-x.map | grep -i sim %% The remap option [-r] is simply ignored. gbk@UGBK@ unicode :0:simsun.ttc -v 50 gbksong@UGBK@ unicode :0:simsun.ttc -v 50 gbkkai@UGBK@ unicode simkai.ttf -v 70 gbkhei@UGBK@ unicode simhei.ttf -v 150 gbkfs@UGBK@ unicode simfang.ttf -v 50 gbkli@UGBK@ unicode simli.ttf -v 150 gbkyou@UGBK@ unicode simyou.ttf -v 60 unisong@Unicode@ unicode :0:simsun.ttc -v 50 unikai@Unicode@ unicode simkai.ttf -v 70 unihei@Unicode@ unicode simhei.ttf -v 150 unifs@Unicode@ unicode simfang.ttf -v 50 unili@Unicode@ unicode simli.ttf -v 150 uniyou@Unicode@ unicode simyou.ttf -v 60 gbksongsl@UGBK@ unicode :0:simsun.ttc -s .167 -v 50 gbkkaisl@UGBK@ unicode simkai.ttf -s .167 -v 70 gbkheisl@UGBK@ unicode simhei.ttf -s .167 -v 150 gbkfssl@UGBK@ unicode simfang.ttf -s .167 -v 50 gbklisl@UGBK@ unicode simli.ttf -s .167 -v 150 gbkyousl@UGBK@ unicode simyou.ttf -s .167 -v 60 unisongsl@Unicode@ unicode :0:simsun.ttc -s .167 -v 50 unikaisl@Unicode@ unicode simkai.ttf -s .167 -v 70 uniheisl@Unicode@ unicode simhei.ttf -s .167 -v 150 unifssl@Unicode@ unicode simfang.ttf -s .167 -v 50 unilisl@Unicode@ unicode simli.ttf -s .167 -v 150 uniyousl@Unicode@ unicode simyou.ttf -s .167 -v 60
剩下来还需要为 ttf2pk 增加 map 文件。这个很简单,只需要从 MacTeX 中复制文件即可:
$ mkdir -p ~/Library/texmf/fonts/map/ttf2pk/config $ cp /usr/local/texlive/2012/texmf-dist/source/fonts/zhmetrics/ttfonts.map ~/Library/texmf/fonts/map/ttf2pk/config/ttfonts.map
为了让 MacTeX 系统能够找到我们修改过的文件,通常都需要刷新目录树数据文件:
$ mktexlsr $ updmap
最后,为了确保字体文件能被找到,请打开字体册 FontBook,查看中易六套字体文件。如果没有的话,请安装 MS Office for Mac;当然,也可以在获得使用这些字体的授权之后,将它们从 Windows 系统复制到 Mac OS 的字体目录 /Library/Fonts 或~/Library/Fonts中。
为了说明我们的修改已经成功,现做如下的测试文件,打开 TeXShop,并录入下面的内容:
%!TEX TS-program = latex %!TEX encoding = GBK %% test.tex %% a sample file for testing CJK Package \documentclass{article} \usepackage{CJK} \begin{document} \begin{CJK*}{GBK}{song} 你好! \end{CJK*} \end{document}
在 TeXShop 中点击 typeset 按钮,大功告成。