2009年3月6日星期五

[转] 建立Tex干净中文环境

既不需要安装其他版本tex环境如XeTeX,也不需要用到受限字体如windows下的宋体;所以干净。
参考http://linuxdesktop.cn/2008/02/26/config-texlive-cjk-under-ubuntu.html 写成
一、安装TexLive+Latex+CJK:
打开终端,执行下述命令安装TexLive和常用的一些Latex宏包(可以根据自己的需要增改):
代码:

sudo apt-get install texlive texlive-math-extra texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-pictures texlive-science texlive-bibtex-extra texlive-common latex-beamer

安装完后,就可以安装CJK的相关软件包了,如果只需要获得中文支持,那么执行:
代码:

sudo apt-get install latex-cjk-chinese ttf-arphic-* hbf-*

二、生成中文字体包
方法一(自己编译字体,否则用我编译好的文泉驿正黑和文鼎宋体见方法二):
安装一个软件──fontforge用于生成字体:
代码:

sudo apt-get install fontforge

生成字体前,请自己准备你需要生成的字体文件
主要在/usr/share/fonts/truetype/arphic/和/usr/share/fonts/truetype/wqy/里
gbsn00lp.ttf(宋)gkai00mp.ttf(楷)ukai.ttc(楷)uming.ttc(明 体)wqy-zenhei.ttf(正黑)等,
这里以gbsn00lp.ttf和wqy-zenhei.ttf为例
准备好后下载下面这个包,解压到一个地方,如自己的主目录~/font:
http://ftp.ubuntu.org.cn/home/syrano/tex/font.tar.bz2
先配置宋体
把gbsn00lp.ttf也复制到~/font里去,执行下面的命令生成字体地图:
代码:

cd ~/font
time fontforge -script subfonts.pe gbsn00lp.ttf song Unicode.sfd

加time是为了计算时间,因为比较耗时,在我的amd3000+(1.6GHz)生成song花了2个小时,生成 hei花了50分钟,仅供参考。
字体生成好了,再建立一个描述文件吧。
在~/font下,建立一个makemap文件,内容如下:
代码:

for i in *.tfm
do
cat >> song.map << EOF
${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
EOF
done

然后在终端下执行:chmod +x makemap让文件加上执行权限,最后执行:
代码:

./makemap

再建立一个一个c70song.fd文件:
代码:

% This is c70song.fd for CJK package.
% created by Edward G.J. Lee
% modify by Yue Wang
\ProvidesFile{c70song.fd}
\DeclareFontFamily{C70}{song}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{song}{m}{n}{<-> CJK * song}{}
\DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * song} {\CJKbold}
\endinput

好的,相关文件都已生成,开始复制字体使其生效。
执行下面的命令,在你的主目录下生成隐藏的个人Tex配置,如果你哪天不需要了,也可以删除:
代码:

mkdir -p ~/.texmf-var/fonts/map/dvips/CJK
mkdir -p ~/.texmf-var/fonts/tfm/CJK/song
mkdir -p ~/.texmf-var/fonts/type1/CJK/song
mkdir -p ~/.texmf-var/tex/latex/CJK/UTF8

建立完这层层叠叠的目录以后,就把刚刚生成的字体复制进去吧。
代码:

mv ~/font/song.map ~/.texmf-var/fonts/map/dvips/CJK
mv ~/font/*.tfm ~/.texmf-var/fonts/tfm/CJK/song
mv ~/font/*.pfb ~/.texmf-var/fonts/type1/CJK/song
mv ~/font/c70song.fd ~/.texmf-var/tex/latex/CJK/UTF8

复制完后就执行命令刷新缓存,让它生效:
代码:

sudo texhash
updmap --enable Map song.map

接下来配置黑体
然后把wqy-zenhei.ttf也复制到~/font里去,执行下面的命令生成字体地图:
代码:

cd ~/font
time fontforge -script subfonts.pe wqy-zenhei.ttf hei Unicode.sfd

字体生成好了,再建立一个描述文件吧。
在~/font下,建立一个makemap文件,内容如下:
代码:

for i in *.tfm
do
cat >> hei.map << EOF
${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
EOF
done

然后在终端下执行:chmod +x makemap让文件加上执行权限,最后执行:
代码:

./makemap

再建立一个一个c70hei.fd文件:
代码:

% This is c70hei.fd for CJK package.
% created by Edward G.J. Lee
% modify by Yue Wang
\ProvidesFile{c70hei.fd}
\DeclareFontFamily{C70}{hei}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{hei}{m}{n}{<-> CJK * hei}{}
\DeclareFontShape{C70}{hei}{bx}{n}{<-> CJKb * hei} {\CJKbold}
\endinput

好的,相关文件都已生成,开始复制字体使其生效。
执行下面的命令,在你的主目录下生成隐藏的个人Tex配置
代码:

mkdir -p ~/.texmf-var/fonts/tfm/CJK/hei
mkdir -p ~/.texmf-var/fonts/type1/CJK/hei

建立完这层层叠叠的目录以后,就把刚刚生成的字体复制进去吧。
代码:

cp ~/font/hei.map ~/.texmf-var/fonts/map/dvips/CJK
cp ~/font/*.tfm ~/.texmf-var/fonts/tfm/CJK/hei
cp ~/font/*.pfb ~/.texmf-var/fonts/type1/CJK/hei
cp ~/font/c70hei.fd ~/.texmf-var/tex/latex/CJK/UTF8

复制完后就执行命令刷新缓存,让它生效:
代码:

sudo texhash
updmap --enable Map hei.map

方法二:
下载下面两个文件到一个地方,如自己的主目录。
http://ftp.ubuntu.org.cn/home/syrano/tex/arphicsong.tar.bz2
http://ftp.ubuntu.org.cn/home/syrano/tex/wqyhei.tar.bz2
解压
代码:

cd ~/
tar xf wqyhei.tar.bz2
tar xf arphicsong.tar.bz2

执行下面的命令,在你的主目录下生成隐藏的个人Tex配置,如果你哪天不需要了,也可以删除:
代码:

mkdir -p ~/.texmf-var/fonts/map/dvips/CJK
mkdir -p ~/.texmf-var/fonts/tfm/CJK/hei
mkdir -p ~/.texmf-var/fonts/type1/CJK/hei
mkdir -p ~/.texmf-var/fonts/tfm/CJK/song
mkdir -p ~/.texmf-var/fonts/type1/CJK/song
mkdir -p ~/.texmf-var/tex/latex/CJK/UTF8

建立完这层层叠叠的目录以后,就把刚刚生成的字体复制进去吧。
代码:

cp ~/song/song.map ~/.texmf-var/fonts/map/dvips/CJK
cp ~/song/*.tfm ~/.texmf-var/fonts/tfm/CJK/song
cp ~/song/*.pfb ~/.texmf-var/fonts/type1/CJK/song
cp ~/song/c70song.fd ~/.texmf-var/tex/latex/CJK/UTF8
cp ~/hei/hei.map ~/.texmf-var/fonts/map/dvips/CJK
cp ~/hei/*.tfm ~/.texmf-var/fonts/tfm/CJK/hei
cp ~/hei/*.pfb ~/.texmf-var/fonts/type1/CJK/hei
cp ~/hei/c70hei.fd ~/.texmf-var/tex/latex/CJK/UTF8

复制完后就执行命令刷新缓存,让它生效:
代码:

sudo texhash
updmap --enable Map song.map
sudo texhash
updmap --enable Map hei.map

假如一切顺序的话, 就测试一下我们安装的字体是否能用吧。
在任意位置编辑这个文件,然后保存为test.tex(支持UTF-8格式):
代码:

\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{song}
你好!这里是Ubuntu下的TexLive+CJK环境!\\
\end{CJK}
\begin{CJK}{UTF8}{hei}
你好!这里是Ubuntu下的TexLive+CJK环境!
\end{CJK}
\end{document}

执行生成pdf文档:
代码:

latex test.tex
dvipdf test.dvi

没有评论:

发表评论