|||
经梅志平老师的提醒,我去了解了一下xeTex和xeLatex的中文编辑。与使用CJK包的方法相比,这种方法可以不局限于CJK包提供的字体,有更多的选择。字体据说也更好看一些。
安装xeTex和xeLatex
TexLive中有xeTex的程序包的,但不是默认安装的。可以用下面的命令安装(我用的是ubuntu kylin 14.04 LTS)
sudo aptitude install texlive-xetex or sudo apt-get install texlive-xetex
xeTex是与tex平级的,都是排版引擎,而xeLatex和Latex刚分别基于两者的宏包。不同的是xeTex支持Unicode, 可以直接支持中文。注: 安装texlive-xetex的时候,xeLatex也同时安装了。
中文配置文件zhfontcfg.sty
支持中文并不代表可以像写英文一样直接在.tex文件中写中文,还需要载入字体。载入字体要用到fontspec宏包,但是使用宏包的命令非常的冗长,不是很方便,所以可以常用的中文字体作成一个简单的命令。
使用宏包的命令:usepackage{fontspec}
简化字体的命令: newfontfamilyhei{STHeiti-NUDT_Demo}
其中hei是简化后的黑体的命令,使用方法是:hei 这里的字体是黑体
而STHeiti-NUDT_Demo是华文公司为Ubuntu Kylin提供的免费中文字体黑体,包括了11种常用的中文字体,可以从网上下载。它可以替换成其他你电脑上已有的中文字体。
为了中文显示的美观和避免一些可能的问题,还要再加一些命令。有人把这些命令整合起来,写成一个宏包,一般叫zhfontcfg.sty。为什么叫这个名字我不知道,但是网上搜到的xeTex中文教程中都是叫这个名字。
根据xeTex的说明文档知道,宏包要放下TEXMFLOCAL或者TEXMFHOME下。这两个路径的位置可以在texmf.cnf中找到,我的电脑上这个文件在/usr/share/texlive/texmf-dist/web2c/下找到。而zhfontctg.sty要放在TEXMFLOCAL或TEXMFHOME下的tex/latex文件夹下,如果没有,就新建一个。
之后执行一下mktexlsr命令来更新一下,就可以使用了。zhfontcfg.sty的具体写法可以参考网上,搜索“xeTex 中文”,基本上所有zhfontcfg.sty都是一样的。
怎么知道自己电脑上也有哪些中文字体呢?
使用命令 fc-list :lang=zh
会得到类似于
/usr/share/fonts/hwfonts/STHeiti-NUDT_Demo.TTF: 华文黑体-国防大学试用,STHeiti-NUDT_Demo:style=Regular
的结果。这些就是你电脑上已有的中文字体,使用的时候可以把“华文黑体-国防大学试用”或都“STHeiti-NUDT_Demo”替换到简化字体的命令就可以了。
注意:fc-list :lang=zh的显示结果中的“-”要用“-”替换掉,不然之后用xelatex编译的时候会出错。
怎么安装字体呢
首先要有字体库软件,比如STHeiti-NUDT_Demo.TTF,将其复制到/usr/share/fonts文件夹下,在其下新建一个文件夹也是可以的,比如我就新建了hwfonts文件夹,把所有的华文字体都复制到这个文件夹下了。之后要在hwfonts下执行三个命令。
sudo mkfontscale 据说可以使字体可以变化大小
sudo mkfontdir 据说可以使字体旋转
sudo fc-cache -fv
这样应该就安装成功了,可以用fc-list检查一下。
编写.tex文件
写.tex文件的时候,一定要加上usepackage{zhfontcfg}.
写中文部分的时候用hei 中文
或者heik{中文},其中heik是这么定义的:newcommandheik[1]{{hei #1}}
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 09:35
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社