Linux下Texlive的ctex包中文字体问题

不得不先赞一下现在texlive在linux上的安装已经非常方便了,刚更新2012不久
发现在2011就中一直困扰的ctex包中文字体问题还是没有解决,只好自己动手了

错误信息如下:

错误说的很清楚,字体名错误,字体找不到

解决方法如下:
修改ctex-xecjk-winfonts.def
Texlive 2012下的相对路径为 /texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
如果是默认安装位置,完整路径应为 /usr/local/texlive/2012/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def

原始文件如下:

其中带中括号的字体名都是需要修改的,这时需运行

来查看系统中的中文字体,记下楷体仿宋对应的名称,即显示信息中第一个英文
在我的系统中楷体是 KaiTi,仿宋是 FangSong
不过会因为安装的字体版本不同而有所差异

接下来只要将对应的字体修改即可,即
把[SIMKAI.TTF]修改为KaiTi
把[SIMFANG.TTF]修改为FangSong
需要注意不止一处

vim下的替换命令

其他一些废话:
如果自己安装过ctex包(可能安装在了texmf-local目录下),一定要删去
另一个解决方案是使用Adobe的字体,调用ctex包时增加adobefonts参数即可

关于ctex包这个错误的原因开发者在这里已经说的很清楚,也就不再赘述。
虽然作者不推荐修改,但是确实没有找到更方便的解决办法。欢迎讨论交流。

8 thoughts on “Linux下Texlive的ctex包中文字体问题”

    1. @northcamel 插件名字是 Crayon Syntax Highlighter
      很高兴我的文字能对你有帮助

Leave a Reply