Oct 16

转自:http://seckcoder.wordpress.com/2011/09/07/

之前在OpenSuSE 11.2上为xelatex安装中文字体设置, 非常顺利, 参考的是http://tech.techweb.com.cn/thread-272484-1-9.html, 将系统升级到11.4后, 再
利用先前的方法时, 则出现了一些莫名其秒的错误。 下面是详细的安装过程及错误解决方法:

1. 安装xelatex

zypper install texlive-xetex

2. 配置

sudo mkdir /usr/share/texmf/tex/xelatex/zhfontcfg
sudo vim /usr/share/texmf/tex/xelatex/zhfontcfg/zhfontcfg.sty

按照之前给的链接中的方法, 需要在该文件中加入一段代码。 对于texlive2010, 由于newfontinstance不可用, 因此应该做一些适当的修改, 如下是我的:

ProvidesPackage{zhfontcfg}
usepackage{fontspec,xunicode}
defaultfontfeatures{Mapping=tex-text}

XeTeXlinebreaklocale “zh”
XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt

newcommandfontnamehei{Adobe Heiti Std} %使用我自己带的字体
newcommandfontnamesong{Adobe Song Std}
newcommandfontnamemono{DejaVu Sans Mono}
newcommandfontnameroman{Times New Roman}

setmainfont[BoldFont=fontnamehei]{fontnamesong}
setsansfont[BoldFont=fontnamehei]{fontnamesong}
setmonofont{fontnamemono}

newfontfamilyHEI{fontnamehei} %new command 改为newfontfamily
newcommand{hei}[1]{{HEI #1}}

newfontfamilyENF{fontnameroman}
newcommand{en}[1]{,{ENF #1},}
newcommand{EN}{,ENF,}

这里需要说明一下, 我在openSUSE 11.2上, 安装acroread后, 通过fc-cache -fv能够顺利检测到adobe的字体, 但在11.4上不行, 不知道是什么原因。 于是我直接将acroread中的相应字体拷贝到了$HOME/.fonts目录下。同时, 上面的配置文件最好不要直接粘贴。 我第一次直接粘贴后, 运行测试程序总是出一些奇怪的错误。另外, latex给出的错误信息往往很奇怪, 在http://www.tex.ac.uk/cgi-bin/texfaq2html?label=errstruct中有提到这一点。 在这里尝到一个技巧, 如果看不懂错误信息, 就输入h, 这会提供一些额外的信息。

Leave a Reply