+ -
当前位置:首页 → 问答吧 → Debian上的中文TeX

Debian上的中文TeX

时间:2004-09-22

来源:互联网

Debian上的中文TeX
虽然现在Linux上的Office软件已经逐渐成熟,但其中文处理方面的能力以及易用性仍然有待提高。TeX作为传统的文字排版与印刷工具,其存在已经有很多年头,在中文处理方面,也已经有相对完善的解决方案。

Debian在对TeX及其中文支持这一方面,做的非常好。安装好latex、cjk-latex以及arphic的四个中文字体包之后,就可以直接使用TeX了,并且可以处理中文文件。

但如果我们希望能够自己安装一些字库,并在TeX文档中使用它们,我们就需要自己修改一些配置文件了。以下,我以添加GBK码的宋体字库simsun.ttf为例,介绍如何添加自己的字库。

安装中文字体包
为了能够在LaTeX中使用自己的中文字体,就需要安装在...中制作的tfm-*.deb文件,这些文件是LaTeX需要的。

修改CJK LaTeX的字体配置文件
在目录/usr/share/texmf/tex/latex/CJK/GB中,有关于简体中文字的配置文件。其中,以c10开头的文件描述的字体对应GB2312码,而以c19开头的文件描述的字体对应GBK码。创建一个c19song.fd文件,并加入如下内容:

\def\fileversion{4.2.0}
\def\filedate{1998/12/13}
\ProvidesFile{c19song.fd}[\filedate\space\fileversion]

\DeclareFontFamily{C19}{song}{}

\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * simsun}{}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * simsuns}{}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJKssub * song/m/sl}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * simsun}{\CJKbold}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * simsuns}{\CJKbold}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKssub * song/bx/sl}{\CJKbold}

\endinput
   
文件中的song为在文档中使用的字体名,而simsun为实际的字体文件的名称。

使dvips和dvipdfm支持新字体
当使用CJK处理中文时,dvips即可以使用TTF格式的字库,也可以使用Type1的。在这里,我们使用的是TTF格式的。因此,我们需要修改一个文件/usr/share/texmf/ttf2pk/ttfonts.map,这个文件描述了哪些字体是TTF字体,好在从dvi生成ps文件时通过mktexpk进行处理。修改这个文件,在其末尾加入:

simsun@UGBK@    simsun.ttf
simsuns@UGBK@   simsun.ttf      Slant=0.167
simsunr@UGBK@   simsun.ttf      Rotate=Yes
simsunrs@UGBK@  simsun.ttf      Rotate=Yes      Slant=0.167
   
现在,dvips和dvipdfm就都可以工作了。但用dvipdfm生成的PDF文件并不好看,为了能够生成更好一点的中文PDF文件,可以用pdflatex。

pdflatex
用pdflatex,可以从tex文件直接生成pdf文件。为了能够使pdflatex正常工作,我们需要创建一个map文件。其格式为:

simsun01 <simsun01.enc <simsun.ttf
simsun02 <simsun02.enc <simsun.ttf
...
simsun94 <simsun94.enc <simsun.ttf
simsuns01 <simsun01.enc <simsun.ttf
simsuns02 <simsun02.enc <simsun.ttf
...
simsuns94 <simsun94.enc <simsun.ttf
   
我们可以随便写一个小程序,生成这个map文件,并将其复制到/etc/texmf/dvips目录中,并命名为myfonts.map。接着,修改/etc/texmf/pdftex/pdftex.cfg文件,在其末尾加入一行:

+map myfonts.map
   
接着,执行命令updmap,完毕之后就可以用pdflatex就可以直接生成PDF文件了。用这种方式生成的PDF文件更加美观,且其中的文字都可以被选中和复制。

为了检验前面的成果,可以写一个小文件试试了。

$Date: 2004/01/08 09:02:14 $ Home Feedback
Copyright © 2003-2004 李凌.      

作者: huxinda   发布时间: 2004-09-22

热门下载

更多