2007年11月25日星期日

kubuntu7.10下配置texlive + CJK + UTF-8中文环境

首先要感谢Yufei告诉并帮助我配置了支持UTF-8编码的中文环境。本文在“kubuntu7.10下配置latex中文环境”的基础上进行了些修改。
1. 安装texlive和cjk-latex的方法不再多说,如下:
sudo apt-get install texlive
sudo apt-get install cjk-latex
2. 在home目录下创建目录.texmf,修改/etc/texmf/texmf.cnf,设置TEXMFHOME的值,如TEXMFHOME = $HOME/.texmf。
mkdir .texmf
sudo vi /etc/texmf/texmf.cnf
#设置
TEXMFHOME = $HOME/.texmf,保存退出
(TEXMEFHOME的默认路径是$HOME/texmf,如果在home目录下创建texmf,则无需修改texmf.cnf文件)
3. 在$HOME/texmf下创建zh_CN目录,并将windows(
C:/WINDOWS/Fonts/)下的字体文件(SIM*,sim*)拷贝到zh_CN目录下。字体文件可以存放在任意位置。
4. 下载
mkutf8cjkfonts.txt文件,修改起后缀名为sh,并使用如下命令转换字体格式为UTF-8支持的字体(此脚本需要用到程序ttf2pt1,使用apt-get安装即可):
sh mkutf8cjkfonts.sh zh_CN/SIMLI.TTF li li
sh mkutf8cjkfonts.sh zh_CN/SIMYOU.TTF you you
sh mkutf8cjkfonts.sh zh_CN/simsun.ttc song song
sh mkutf8cjkfonts.sh zh_CN/simfang.ttf fang fang
sh mkutf8cjkfonts.sh zh_CN/simkai.ttf kai kai
sh mkutf8cjkfonts.sh zh_CN/simhei.ttf hei hei
mktexlsr
5. 让latex识别安装的字体:
sudo vi /var/lib/texmf/web2c/updmap.cfg
#在末尾添加Map cjk.map,保存退出
sudo texhash
sudo updmap
6. 最后,编写hello.tex来测试是否配置成功,内容如下:
\documentclass{article}
\usepackage{CJKutf8}

\begin{document}
\begin{CJK}{UTF8}{song}
你好
\end{CJK}
\end{document}
一定要usepackage{CJKutf8},并且在CJK环境中指定使用UTF8编码。生成pdf文件:
pdflatex hello.tex
打开hello.pdf,如果显示正常,表明配置成功。

3 条评论:

cyfdecyf 说...
此评论已被作者删除。
匿名 说...

祝贺搞定字体配置啊!等考完试我要把原来写的中文配置的文章更新下了,加些对那个脚本的说明。

Ubuntu 还是对 texlive 的目录结构做修改了。

脚本会自动添加 "Map fontname.map" 到 updmap.cfg 的,不过是添加到 $TEXMFHOME/web2c/updmap.cfg,原来没有这个文件的话先拷贝 $TEXMFMAIN/web2c/updmap.cfg 到这里。另外脚本也会修改 $TEXMFHOME/fonts/map/dvipdfm/dvipdfmx/cid-x.map 来使用新添加的 TrueType 字体,只要把 cid-x.map 里面的字体文件名替换成 OpenType 的字体就可以使用 OpenType 字体了。

目录、文件结构正确的话运行完脚本以后直接执行 texhash, updmap 应该就可以使用了。

另外使用脚本的时候建议用这样的命令

sh mkutf8cjkfonts utf8song song

把源文件和 TeX 内部的字体名区分开来。这个脚本修改下应该还可以生成 gbk 编码使用的字体文件,区分开来就不会冲突了。(当然也不一定要区分开,只要没有冲突就行了。)

Vernkin Chen 说...

ubuntu环境下,第四步如果出现 “Please CJK before you can run me.”, 先安装 apt-get install latex-cjk-chinese. 第五步如果不成功,尝试以下操作,切换目录到 $TEXMFHOME/web2c (参考第一步设置),分别执行 sudo texhash 和 sudo updmap。