在windows下想好好用用utf8编码写点东西发现不是那么容易。ctex提供的字体和配置包可以很好的解决gbk编码的字体问题,大家也很多都喜欢使用gbk编码。出于种种原因,我个人比较喜欢使用utf8,所以想将这一环境配得更好些。
查看ctex提供的字体和配置包(ctex-cs-1.5.4和ctex-fonts-2.4.6)不难发现,对于gbk编码的字体,ctex提供了truetype和type1两种选择,type1字体已经编译好放在font/type1/chinese/gbk*各个目录下,但是utf8的字体,只提供了tfm,即没有提供truetype的配置(在pdftex/chinese下)也没有提供type1的编译字体,pdflatex总是使用ttfonts.map的配置产生pk字体嵌入,效果很差。这样,只有自己来做了。
研究了两天如何配置,发现网上的文章大部分都是针对比较老版本的pdflatex的了,而且也不再起作用,故无奈之下只有不断尝试。下面将先说明如何配置truetype字体的。
另外也顺便说明如何使得英文和数字(ASCII字体)也使用中文字体。
一 配置truetype字体
1. 安装ctex的字体和配置文件(可以从ctex网站获得安装文件)
2. 使用如下脚本生成所需要的tfm、enc和map文件(目录请自行修改为所用系统适合的目录)(该代码修改自ctex论坛上instanton 兄提供的脚本)
2 rd /S /Q " %LOCALTEXMF%\pdftex\chinese\%2 "
3 rd /S /Q " %LOCALTEXMF%\fonts\tfm\chinese\%2 "
4 if not exist " %LOCALTEXMF%\pdftex\chinese\%2 " mkdir " %LOCALTEXMF%\pdftex\chinese\%2 "
5 if not exist " %LOCALTEXMF%\fonts\tfm\chinese\%2 " mkdir " %LOCALTEXMF%\fonts\tfm\chinese\%2 "
6
7 ttf2tfm " %SystemRoot%\fonts\%1 " -w %2 @Unicode@ . tfm
8 ttf2tfm " %SystemRoot%\fonts\%1 " -s 0.167 %2 sl@Unicode@ . tfm
9 move * . tfm " %LOCALTEXMF%\fonts\tfm\chinese\%2 "
10 rm * . map
11
12 for %%i in ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , a , b , c , d , e , f ) do (
13 for %%j in ( 0 <