我的系统从 GB2312 换成 UTF-8 已经好久了,相关的应用环境也慢慢向 UTF-8靠拢,从输入法、数据库、网页编码到 DocBook/XML,一路走来倒也不是很难(那个scim输入法倒费了不少时间)。
现在轮到 TeX 这个大难题了,我一直用 TexLive,安装简单方便,容易上手,不用自己编译这样那样的软件包,以前在 GB2312 下面写作、编译很简单,现在换成了 UTF-8 就有点麻烦了,虽然可以先用 UTF-8 编码写好,然后转换成 GB2312 的,再使用 latex/pdflatex 等编译,但觉得这样效率太低了,重复工作太多,于是求助于 google, 找到一篇关于 CJK + UTF-8 的文档 ~chou/unicode-tex.html
安装上面的文档,试了几遍终于大功告成,并且在GB2312下使用的宋体、黑体等在 UTF-8 下面照样可以使用。
具体步骤如下:
1. 安装好 TeX2005 (2004及以前的版本没试过)
2. 准备好字体文件(比如 simsun.ttf, simhei.ttf, youyuan.ttf)
3. 下载 mktfm.sh,用于将 ttf 转换成 tfm
下载地址:
4. 将字体和上述脚本放在一个目录下面,然后创建下面的脚本(go.sh)
#!/bin/sh
## 字体列表
fontlist=(simsun.ttf simhei.ttf youyuan.ttf)
## 对应字体名称
fontname=(song hei youyuan)
> cjk-utf8.map
## 处理后生成的字体相关信息目录
BASEDIR=texmf-local
rm -rf $BASEDIR
mkdir -p $BASEDIR/fonts/enc $BASEDIR/fonts/tfm/chinese
mkdir -p $BASEDIR/tex/latex/CJK/UTF8
for ((i=0;i<2;i++)) ; do
echo "==== Processing font: ${fontlist[$i]} (${fontname[$i]}) ===="
mkdir $BASEDIR/fonts/enc/${fontname[$i]}
mkdir $BASEDIR/fonts/tfm/chinese/${fontname[$i]}
./mktfm.sh ${fontlist[$i]} ${fontname[$i]} Unicode
ls ${fontname[$i]}*.tfm|while read j; do
base=`basename $j .tfm`
echo "$base <${fontlist[$i]} $base.enc" >> $BASEDIR/cjk-utf8.map
done
mv ${fontname[$i]}*.tfm $BASEDIR/fonts/tfm/chinese/${fontname[$i]}
mv ${fontname[$i]}*.enc $BASEDIR/fonts/enc/${fontname[$i]}
mv c70${fontname[$i]}.fd $BASEDIR/tex/latex/CJK/UTF8
done
5. 运行 go.sh
如果一切OK的话,当前目录下面将会生成 texmf-local 目录,并且目录下面有一些文件
6. 拷贝 texmf-local 下的所有文件到 Texlive 安装目录下的 texmf-local
我的安装在 /usr/texlive 目录下
# cp -arf texmf-local/* /usr/texlive/texmf-local
7. 更新相关数据库信息和其他清理工作
# updmap
# mktexlsr
# rm -rf /root/.texlive2005/texmf-var/fonts/map/dvipdfm/
这个目录由 updmap 生成,不删除时 dvipdfm 会出错
8. UTF-8 文档测试
准备一个测试文档: utf8.tex,内容如下:
\documentclass[12pt,a4paper]{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{song}
一行白鹭上西天
\end{CJK}
\end{document}
9. 编译
latex utf8.tex
dvipdfmx utf8.dvi
或直接 pdflatex utf8.tex
如果没有错误信息,那么你可以用acrobat reader 瞧瞧刚刚生成的 pdf 文档了
10. 问题
中文似乎显示没有问题,但是默认的英文字体却太难看,好像是 Times New Roman,显示得贼黑贼黑的,又有点粗,不知道怎么替换掉,如果改用 Tahoma 或 Verdana 或 Bitstream Vesa 就好看多了。
阅读(2677) | 评论(0) | 转发(0) |