laTeX是linux下面不可多得的文档编写软件 ,但是其中文环境的配置着实让我头痛了很长一段时间,幸好最近把这个问题解决了。
首先,我的操作系统是Fedora Core 5,在安装操作系统的时候请选择上teTeX,它包含了很多有用的包,接下来我们的工作就简单一点了。需要注意的是,以下的很多操作都需要root权限,所以我先假定你登陆到系统之后使用su命令切换到root用户了。
1、安装tetex-afm-3.0-17.i386.rpm
gbkfonts的执行过程需要这个包。默认情况下,FC5是不装tetex-afm的,不过FC5的光盘中带有这个rpm包。在cdrom/Fedora/RPMS目录下,你也可以通过yum在线安装。
>yum install tetex-afm
或者
>rpm -ivh tetex-afm-3.0-17.i386.rpm
2、安装CJK-4_5.1-2.i386.rpm
当前中文编辑主要用的就是CJK和CCT,前者是国外开发的,有些地方不太符合我们中国人的习惯,但是与LaTeX的其它扩展和包的兼容性非常好;后者是中科院开发的,中文编辑当然是一流,但兼容性不太好。CCT比CJK用起来要简单一些,但很多大学的论文模板都是用CJK写的。
>rpm -ivh CJK-4_5.1-2.i386.rpm
3、下载gbkfonts
网上有已经编译好的程序,直接下载就可以用了。下载后,将其复制到/usr/local/bin,方便使用。
4、准备TTF字体文件
可以直接从Windows下复制过来。如果是写论文的话,只需要以下四种字体即可:宋体(simsun.ttc),楷体(simkai.ttf),黑体 (simhei.ttf)和行楷(stxingka.ttf)。注意:请将simsun.ttc改名为simsun.ttf。
请将字体文件放入以下目录:
>mkdir -p /usr/local/share/texmf/fonts/truetype/chinese
>cp ./*.ttf /usr/local/share/texmf/fonts/truetype/chinese
5、字体转换
从TTF文件生成LaTeX所需要的字体格式,这里只对以上四种字体进行了转换,其它的字体操作方式与此类似。
>cd /usr/local/share/texmf
>gbkfonts fonts/truetype/chinese/simsun.ttf song
>gbkfonts fonts/truetype/chinese/simhei.ttf hei
>gbkfonts fonts/truetype/chinese/simkai.ttf kai
>gbkfonts fonts/truetype/chinese/stxingka.ttf xingkai
6、修改配置文件
在执行了gbkfonts之后,会在/usr/local/share/texmf下生成一个cjk.map的文件,将这个文件拷贝到/usr/share/texmf目录下,同时,更改/usr/share/texmf/dvips/config/config.gerneric文件,添加一行
p +cjk.map
保存文件。之后将该文件拷贝到/usr/local/share/texmf/dvips/config/目录下。可能这个时候这个目录还不存在,创建它就是了。
7、更新LaTeX系统
使用以下命令更新LaTeX的数据库,使其可以使用新增加的功能。注意:updmap命令后的参数一定要写
>updmap --enable Map=cjk.map
>texhash
由于此时是root用户,从终端的输出上可以看出,该命令在/root/目录下生成了.texmf-var和.texmf-config两个目录,并且分别向里面添加了一个文件。至此,root用户的latex中文环境就配置完毕了。
对于普通用户,则还需要进行如下的过程:
首先,在终端中输入exit回到普通用户shell,切换到/usr/local/share/texmf下,同样输入以上的两个命令:
>updmap --enable Map=cjk.map
>texhash
这时,从终端的输出可以看到,在/home/yourname/目录下也生成了.texmf-var和.texmf-config两个目录,并且分别向里面添加了一个文件。至此,普通用户的latex中文环境也配置完毕了。
8、测试
使用texmaker或者vim输入以下的tex文档
/documentclass{article}
/usepackage{amsmath}
/usepackage{CJK}
/begin{document}
/begin{CJK*}{GBK}{song} 你好
/end{CJK*}
/end{document}
如果编译预览可以看到宋体的“你好”,我们就可以使用teTeX编辑中文文档了。
9、总结:
可以将以上用到的文件放在同一个目录下,然后编写一个脚本,这样就不用每次都这么麻烦了。
例如:我将所有的文件放在/home/latex/这个目录下,包括:
tetex-afm-3.0-17.i386.rpm、
CJK-4_5.1-2.i386.rpm、
gbkfonts、
simsun.ttf、simkai.ttf、simhei.ttf和stxingka.ttf。
脚本名为setup.sh,也放在/home/latex/这个目录下,代码为:
rpm -ivh CJK-4_5 . 1 - 2 . i386 . rpm
cp ./ gbkfonts / usr / local / bin
mkdir -p / usr / local / share / texmf / fonts / truetype / chinese
cp ./ * . ttf / usr / local / share / texmf / fonts / truetype / chinese
cd / usr / local / share / texmf
gbkfonts fonts / truetype / chinese / simsun . ttf song
gbkfonts fonts / truetype / chinese / simhei . ttf hei
gbkfonts fonts / truetype / chinese / simkai . ttf kai
gbkfonts fonts / truetype / chinese / xingkai . ttf xingkai
cp ./ cjk . map / usr / share / texmf /
以后再要配置时,执行以下命令即可:
cd /home/latex
su
(输入root用户密码)
./setup.sh
接着,记得执行第6步,更改/usr/share/texmf/dvips/config/config.gerneric文件,并将该文件拷贝到/usr/local/share/texmf/dvips/config/目录下。
最后,执行updmap,也做个脚本:
对于root用户,打开shell切换到root用户,执行代码:
updmap --enable Map = cjk . map
texhash
对于普通用户,打开自己的shell,执行代码:
updmap --enable Map = cjk . map
texhash
配置之后,看看是否可以编辑出漂亮的文档了。
10、后记
在发现一些新的字体后,gbkfonts将自己添加到本系统后,更新了cjk.map文件。但是此时updmap --enable Map=cjk.map提示没有更改,不用更新。此时要么执行updmap与texhash强制执行配置,要么删掉当前用户下.texmf-var和.texmf-config这两个目录,重新执行updmap --enable Map=cjk.map。
还有一点要注意的是,一定要切换到包含有cjk.map文件的目录下执行updmap程序,否则将会找不到这个文件导致配置失败。