Chinaunix首页 | 论坛 | 博客
  • 博客访问: 591424
  • 博文数量: 40
  • 博客积分: 7274
  • 博客等级: 少将
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-20 15:00
个人简介

Expired

文章分类
文章存档

2011年(1)

2008年(3)

2007年(17)

2006年(10)

2005年(9)

分类: LINUX

2006-04-10 11:26:50


最近一直用 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 是个非常强大的东西,尽管用起来有点难,但是经它之手处理过的的文档却是非常专业和非常漂亮的! 希望越来越多的人了解和使用它。

阅读(1918) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~