Friday, March 4, 2016

安装CTex常用中文字体


安装cTex需要的字体:
\songti 宋体: \songti,CJK 等价命令 \CJKfamily{song} 
\heiti 黑体: \heiti,CJK 等价命令 \CJKfamily{hei} 
\fangsong 仿宋: \fangsong,CJK 等价命令 \CJKfamily{fs} 
\kaishu 楷书: \kaishu,CJK 等价命令 \CJKfamily{kai} 
\lishu 隶书: \lishu,CJK 等价命令 \CJKfamily{li} 
\youyuan 幼圆: \youyuan,CJK 等价命令 \CJKfamily{you}

但是在Windows中的字体名称并不是和上述一致,大小写也有所区别。

Windows中字体名称如下:
宋体 SimSun
黑体 SimHei
仿宋 FangSong
楷体 KaiTi
隶书 LiSu
幼圆 YouYuan

可以通过修改ctex-xecjk-winfonts.def 文件来进行修正。CTex自动生成的文件路径为:
/usr/share/texlive/texmf-dist/tex/latex/ctex/fontset

可以用https://gist.github.com/lovelock/11339400 提供的配置文件覆盖你安装后自动生成的文件,前提是要安装好需要的字体,Windows的字体最好不要全部复制过来,装几个够用就好,不然会变得不伦不类。

在字体定义文件 ctex-xecjk-winfonts.def 中,楷体和仿宋不是使用字体全名,而是使用字体文件名表示的。如楷书是:
\setCJKfamilyfont{zhkai}{[simkai.ttf]}之所以这样是因为在 Windows XP 中楷书和仿宋是 GB_2313 字符集的,只有 6000 多个汉字,楷体字体全名是 KaiTi_GB2312;而在 Windows Vista 以后和版本则是 GBK 大字库的,有 20000 多个汉字,字体全名是 KaiTi。为了避免为微软的不同操作系统版本写不同的配置文件(这样更麻烦,而且 Windows 用户是大多数),就把它直接用没有变化过的字体文件名表示。
这个修改就是我做的。当然对于 Linux 用户可能有一些副作用。因为上面的字体名使用的是小写字母,而通常大家拷贝的字体是大写字母(这算是我的疏忽)。你知道 Windows 不区分文件名大小写,但 Linux 区分,所以当然 Linux 找不到 simsun.ttf 这个字体了。
我实在不建议 Linux 用户修改 ctex-xecjk-winfonts.def 文件。你可以使用 Windows 字体加上默认选项,但注意你安装的中文字体文件名要匹配。还有一个办法是写自己的配置文件,ctex 宏包有自己的 cfg 文件,在 .../texmf-dist/tex/latex/ctex/cfg/ctex.cfg 中,你可以在这个文件里面添加你自己的 local settings。

No comments:

Post a Comment