2011年12月8日星期四

为TeXlive2010安装CJK字体(Postscript Type1)





发布者:FEI Hao,发布时间:2011-6-20 上午7:59
就我使用过的几种中文LaTeX解决方案(CJK和XeTeX)来说,XeTeX+xeCJK是最简单同时也是最全面的,XeTeX相对于传统的CJK来说,有以下优点:
  1. 可以调用系统字体,无须另外安装。
  2. xeCJK目前可以智能处理中英文之间的空格,而无须手工加入~来截断。
同时,由于存在一些暂时不能完全兼容和XeTeX的宏包(比如beamer),中文LaTeX用户不得不对CJK有所了解。本文介绍了
  • 转换truetype字体为PostScript字体,并让dvipdfmx,pdflatex,dvips等工具能够找到。
  • 为这些中文字体添加标点挤压(CJKpunct)宏包。

安装字体

转换现有的TrueType字体

这部分参考了myCJK.pdf文档。
  1. 下载附件mkfont.tar.bz2,并解压缩到一个目录中
  2. 修改mkfont.sh中的TEXMF变量,对于texlive2010来说,比较简单的办法是设置为~/.texlive2010/temf-var
  3. mkfont.sh的参数有三,
  4. mkfont.sh脚本的参数如下
    mkfont.sh your.ttf subfont_name font_name
    • your.ttf:  字体文件路径
    • subfont_name: 在生成的PDF属性中显示的Type1字体名字
    • font_name:在\CJKfamily中调用的名字
  5. 运行mkfont.sh后,脚本会自动把生成的字体文件移动到前面设定的TEXMF变量指向的目录中。

安装别人生成的Type 1字体

看着终端里的脚本执行不是一件有趣的事情,所以下载生成好的字体不失为一种好方法。(注意,如果不是个人使用的话,请注意License问题)

  • 这里下载我生成好的字体文件,其中包含了三个字体族,包括st开头的华文字体,zh开头的微软字体以及fz开头的方正字体。
  • 解压缩之到~/.texlive2010目录下。
  • 更新map文件。找出texmf-var目录下所有类似t1-FZFangSong.map这样的文件名字,按照格式附加到文件texmf-config/web2c/updmap.cfg中。最后运行updmap来更新字体映射。附件中的update-,map-files.sh也许可以帮助你。

使用CJKpunct宏包

CJKpunct提供CJK(只简体中文)的标点挤压功能,但这个包不是开箱即用的,配置过程请参考自述文档。需要补充以下几点:
  1. TeXlive2010中自带的setpunct\setpunct-main.tex文件编译失败,可以在svn中抓取最新代码(我用revision266是好的)
     
  2. 使用时,注意把\punctstyle命令放置在CJK环境中,否则无效。


附件 (1)
  • update-map-files.sh - 创建时间:2011-6-20 上午8:50,创建者:FEI Hao (版本 1)
    1k 下载

Source: https://sites.google.com/site/crystalsnowblog/frontpage/weitexlive2010anzhuangcjkzitipostscripttype1

没有评论:

发表评论