最近一直用 DocBook + XML 写技术文档,感觉还不错,编辑完 XML 后再用xmlproc转成单页或多页的 HTML,无论是在 linux 下还是 windows 下阅读起来都非常方便。但是 xml 转成 pdf 总存在这样那样的中文问题,这点就不如 TeX 了。
好久没用TeX写了,是该温故而知新下了,以前用的是 texlive2004, 最新的版本是 2005, 安装方法和2004差不多,有些小的变化。具体安装过程如下文:
1. 下载
$ wget
2. 安装
# mount -t iso9660 texlive2005-inst-20051102.iso /mnt/cdrom -o loop
# cd /mnt/cdrom
# ./install-tl.sh
出现选择菜单,按 C 进入包选择界面,把英文除外的其它文档去掉,按 R 返回;按 L 进入语言选择界面,用 - 去掉所有,再用 d 选择 CJK,按 R 返回;默认安装目录是 /usr/local/texlive/2005,按 D 改为 /usr/tex ;按 I 开始安装。
安装结束后把 texlive 相关环境变量加入 .bash_profile
export TEXDIR=/usr/tex
export TEXMFMAIN=$TEXDIR/texmf
export TEXMFDIST=$TEXDIR/texmf-dist
export TEXMFLOCAL=$TEXDIR/texmf-local
export VARTEXMF=$TEXDIR/texmf-var
export PATH=$TEXDIR/bin/i386-linux:$PATH
3. 生成中文字体
用 gbkfonts 程序生成中文字体,假定 simsun.ttf simhei.ttf simkai.ttf 等在目录 /usr/share/fonts
# mkdir /tmp/tex-cjk-fonts
# cd /tmp/tex-cjk-fonts
fontlist=(simsun.ttf simhei.ttf simkai.ttf simyou.ttf simli.ttf stxingkai.ttf)
fontname=(song hei kai youyuan lishu xingkai)
for ((i=0;i<6;i++)) ; do
../gbkfonts /usr/share/fonts/${fontlist[$i]} ${fontname[$i]}
done
把tex-cjk-fonts目录下的所有文件复制到TeX的目录的texmf-local子目录下
# cp -arf tex-cjk-fonts/* /usr/tex/texmf-local
更新字体信息
# mktexls
修改生成的文件,粗体时使用黑体,斜体时使用楷体
# cd /usr/tex/texmf-local/tex/latex/CJK/GB
# sed -i "s/\(it.*gbk\)[a-z]*/\1kai/" *.fd
# sed -i "s/\(bx.*gbk\)[a-z]*/\1hei/" *.fd
4. 让 dvips 和 pdflatex 可以处理中文
把 cjk.map 加入 dvips 的配置文件
# echo "p +/usr/tex/texmf-local/cjk.map" >> /usr/tex/texmf-var/dvips/config/config.ps
把 cjk.map 加入 pdflatex 的配置文件
# echo "p +/usr/tex/texmf-local/cjk.map" >> /usr/tex/texmf-local/pdftex.cfg
5. pdflatex 直接使用中文 TrueType 字体
把 TrueType 字体的路径加入 texmf.cnf
# sed -i "s/^OSFONTDIR = .*$/OSFONTDIR = \/usr\/share\/fonts/" \
/usr/local/texlive/2005/texmf/web2c/texmf.cnf
把 cjk.map 加入 updmap.cfg
# cd /usr/local/texlive2005/texmf-var/web2c
# echo "/usr/tex/texmf-local/cjk.map" >> updmap.cfg
执行 updmap
# updmap
6. 中文测试
## test.tex
\documentclass[11pt,a4paper]{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GBK}{song}{\CJKfamily{song}
床前明月光,地上鞋两双;
}
\end{CJK*}
\end{document}
# latex test.tex
# xdvi test.dvi 显示中文OK
# dvipdf/dvipdfm/dvipdfmx/dvipdft test.dvi 转换成pdf,显示中文OK
# pdflatex test.tex 直接生成PDF,显示中文OK
本文完.
后记:TeX 是个非常强大的东西,尽管用起来有点难,但是经它之手处理过的的文档却是非常专业和非常漂亮的! 希望越来越多的人了解和使用它。
阅读(1977) | 评论(0) | 转发(0) |