BBS水木清华站∶精华区

发信人: Rainny (心雨☆不为远山凝翠黛), 信区: Linux        
标  题: RH7 + teTex + CJK安装手记(from linuxforum) 
发信站: BBS 水木清华站 (Sun Jan  7 11:40:43 2001) 
 
Red Hat 7.0 + tetex + CJK安装手记(及另类中文打印解决方案) 
hucheng@www.linuxforum.net 
 
最近心血来潮,试图搞定Red Hat 7.0下的中文latex的使用。折腾了两天终于可以实现 
中文latex的编译,预览和打印功能了,现将安装过程简要记录如下,供各位参考。 
一般说来,要实现中文latex的使用,首先要实现中文打印,其次要安装CJK使tetex支持 
中文,最后要安装相应的中文字体使latex可以预览和打印中文。 
需要的软件: 
1.tetex-1.0.7-7.386.rpm,Red Hat 7.0默认安装 
2.freetype-1.3.1-7.i386.rpm,Red Hat 7.0默认安装 
3.freetype-utils-1.3.1-7.i386.rpm,http://rpmfind.net 
4.freetype-1.3.1.tar.gz,http://www.freetype.org 
5.CJK-4.2.0.src.tar.gz,ftp://ftp.ffii.org/pub/cjk 
6.cjk-4.1.3.gb.tar.gz,http://www.physics.ohio-state.edu/~yurh/ftp/ 
7.chpfb-1.3.1-4.rpm,http://download.sourceforge.net/mirrors/turbolinux/pub/t 
urbocontrib-6.0/TurboContrib/RPMS/ 
8.ghostscript-6.01-1.i386.rpm,http://www.cs.wisc.edu/~ghost/ 
9.ghostscript-fonts-6.0-2.noarch.rpm,http://www.cs.wisc.edu/~ghost/ 
10.gs_ttf.ps-cjkv-20001120.patch.gz,http://www.aihara.co.jp/~taiji/tops/ 
11.cjkvttcidmap-0.91.tar.gz,http://www.aihara.co.jp/~taiji/tops/ 
12.install-cid-20001203.tar.gz,http://www.aihara.co.jp/~taiji/tops/ 
13.ag13.tar.Z,ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/ 
14.simsun.ttf, simhei.ttf, simkai.ttf, simfang.ttf,Windows 2k Advance Server 
 
一.中文打印的支持:ttcjk+ghostscript 
关于RH7下中文打印解决方案,nightsailer已经给出了一个不错的实现方法,就是VFli 
b+ghostscript,各位可以参考相应的文章。这里想提出的是另一种实现方法,详细过程 
可以参考http://www.aihara.co.jp/~taiji/tops/和http://igloo.its.unimelb.edu.a 
u/linux-online/ghostscript.html。事实上这个解决方案和latex的中文打印并无直接 
关系,只是做为我安装过程的一部分记录如下。 
1.升级ghostscript 
rpm -e --nodeps ghostscript-fonts 
rpm -e --nodeps ghostscript 
rpm -Uvh ghostscript-fonts-6.0-2.noarch.rpm 
rpm -Uvh ghostscript-6.01-1.i386.rpm 
2.Patch gs_ttf.gs 
cd /usr/share/ghostscript/6.01/lib 
patch gs_ttf.ps < gs_ttf.ps-cjkv-20001120.patch 
3.修改gs_res.ps 
/FontResourceDir (/usr/share/ghostscript/Resource/Font/) 
/GenericResourceDir (/usr/share/ghostscript/Resource/) 
4.建立目录 
cd /usr/share/ghostscript 
mkdir Resource 
cd Resource 
mkdir Font; mkdir CIDFont; mkdir CMap; mkdir TrueType 
5.准备CMap 
tar zxvf ag13.tar.Z 
cp ag13/CMap/* CMap/ 
6.准备TrueType 
cd TrueType 
tar zxvf cjkvttcidmap-0.91.tar.gz 
cp simsun.ttf . 
7.准备Resource 
cd /usr/src/ghostscript/Resource 
tar zxvf install-cid-20001203.tar.gz 
vi alias-cid.sh修改如下 
TTFontDir=/usr/shar/ghostscript/Resource/TrueType 
cid.sh=./ag13.sh 
8.运行安装字体 
./alias-ag13.sh install MSSimSum=simsun.ttf 
9.修改资源文件 
vi ~/.Xresources 
Netscape*documentFonts.gb2312*psname: MSSimSun-GB-EUC-H 
xrdb -merge ~/.Xresources 
10.在Netscape中要设定字符集为GB2312,并选择正确的printer input filter,就应 
该可以直接打印中文网页了。 
11.生成 Postscript 文件 - test.ps: 
/MSSimSun-GB-EUC-H findfont 60 scalefont setfont 
50 500 moveto (众里寻她千百度) show 
50 420 moveto (蓦然回首) show 
50 340 moveto (那人却在灯火阑珊处) show 
就可在 gv 中显示汉字了。应用 ps2pdf 将 postscript 文件转换成 PDF 格式。然后可 
将 PDF 文档打印到打印机上。 
注意:如果不是转换成pdf之后再打印,而是直接用gv来打印ps文件,需要设置正确的p 
rinter input filter。 
二.CJK的安装及pk字体的使用 
1.tar zxvf CJK-4.2.0.src.tar.gz 
cd CJK/4_2.0/ 
cp -r texinput /usr/share/texmf/tex/latex/CJK 
2.cd /usr/share/texmf/tex/latex/CJK/GB 
修改c10song.fb, c10hei.fb, c10kai.fb, c10fs.fb 
下面给出c10fs.fb的例子,其余三个文件可以做相应改动 
% This is the file c10fs.fd of the CJK package 
% for using Asian logographs (Chinese/Japanese/Korean) with Latex2e 

% created by Werner Lemberg 

% Version 4.2.0 (13-Dec-1998) 
\def\fileversion{4.2.0} 
\def\filedate{1998/12/13} 
\ProvidesFile{c10fs.fd}[\filedate\space\fileversion] 
% simplified Chinese characters in GuoBiao encoding scheme. 
\DeclareFontFamily{C10}{fs}{} 
\DeclareFontShape{C10}{fs}{m}{n}{<-> CJK * gbfs}{} 
\DeclareFontShape{C10}{fs}{bx}{n}{<-> CJKb * gbfs}{\CJKbold} 
\DeclareFontShape{C10}{fs}{m}{it}{<-> CJK * gbfsi}{} 
\DeclareFontShape{C10}{fs}{bx}{it}{<-> CJKb * gbfsi}{\CJKbold} 
\endinput 
3.安装ttf2pk 
tar zxvf freetype-1.3.1.tar.gz 
cd freetype-1.3.1 
./configure; make 
cd contrib/ttf2pk/ 
./configure --prefix=/usr --with-kpathsea-dir=/usr 
make; make install 
忽略安装时产生的一个关于libttf.la的warning 
4.拷贝sfd文件,并修改ttfonts.map 
cp -r data /usr/share/texmf/ttf2pk 
cd /usr/share/texmf/ttf2pk 
ttfonts.map如下 
gbsong@UGB@ simsun.ttf Pid = 3 Eid = 1 
gbhei@UGB@ simhei.ttf Pid = 3 Eid = 1 
gbkai@UGB@ simkai.ttf Pid = 3 Eid = 1 
gbfs@UGB@ simfang.ttf Pid = 3 Eid = 1 
gbsongi@UGB@ simsun.ttf Slant = 0.25 Pid = 3 Eid = 1 
gbheii@UGB@ simhei.ttf Slant = 0.25 Pid = 3 Eid = 1 
gbkaii@UGB@ simkai.ttf Slant = 0.25 Pid = 3 Eid = 1 
gbfsi@UGB@ simfang.ttf Slant = 0.25 Pid = 3 Eid = 1 
5.cd /usr/share/texmf/web2c 
修改texmf.cnf,在TTFONTS = .;$texMF/fonts/truetype//后添加如下两行 
TTF2PKINPUTS = .;$texMF/ttf2pk// 
TTF2TFMINPUTS = .;$texMF/ttf2pk// 
6.cd /usr/share/texmf/fonts 
mkdir truetype 
cp sim*.ttf truetype 
7.cd /usr/share/texmf/fonts/tfm 
mkdir chinese 
cd chinese 
mkdir gbsong; mkdir gbsongi; mkdir gbhei; mkdir gbheii; 
mkdir gbkai; mkdir gbkaii; mkdir gbfs; mkdir gbfsi 
8.生成tfm文件,仅以仿宋体为例 
cd gbfs 
ttf2tfm simfang.ttf -P 3 -E 1 gbfs@UGB@ 
cd ../gbfsi 
ttf2tfm simfang.ttf -s 0.25 -P 3 -E 1 gbfsi@UGB@ 
9.cd /usr/share/texmf/fontname 
vi special.map,添加如下 
@c 
gbsong chinese gbsong 
gbsongi chinese gbsongi 
gbhei chinese gbhei 
gbheii chinese gbheii 
gbkai chinese gbkai 
gbkaii chinese gbkaii 
gbfs chinese gbfs 
gbfsi chinese gbfsi 
10.tar zxvf cjk-4.1.3.gb.tar.gz 
cd cjk-4.1.3.gb 
make 
cp tetex/bin/gbconv /usr/bin 
cp tetex/bin/gblatex /usr/bin 
11.做了修改之后,别忘了运行mktexlsr!!!好了,现在你就可以使用中文latex了,可以使 
用的字体是pk字体,不是pfb字体,不能使用[pmC],只能使用 
\begin{CJK*}{}{} 
关于latex我就不多说了,因为自己刚刚入门,很多语法都不熟悉. 
三.中文latex搞定之后,我用pk字体打印了一下大字,感觉效果不错.心里就在琢磨 pfb字 
体的效果如何呢?因此又折腾了一下午将pfb字体的安装搞定.由于gbpfb和freetype自带 
的ttf2pfb在我的机器上无法编译通过,所以我找来了TLC6.0 contrib中带的chpfb-1.3. 
1-4.i386.rpm. 
1.rpm -Uvh chpfb-1.3.1-4.i386.rpm 
rpm -Uvh freetype-utils-1.3.1-7.i386.rpm(chpfb要用到ftdump) 
2.修改gbpfb以支持italic字体,增加两句. 
diff gbpfb gbpfb.old 
102d101 
< afm2tfm gb$face$plane.afm -s .25 gb$face\i$plane.tfm 
111d109 
< mv -f gb$face\i??.tfm tfm 
3.gbpfb simsun.ttf song 
gbpfb simhei.ttf hei 
gbpfb simkai.ttf kai 
gbpfb simfang.ttf fs 
4.cp fonts/* /usr/share/ghostscript/fonts 
5.cat /usr/lib/chpfb/Fontmap.zh >> /usr/share/ghostscript/6.01/lib/Fontmap.G 

现在你就可以看到使用这些pfb字体的中文ps文件了,试一下 
gv /usr/share/doc/packages/chpfb-1.3.1/examples/demo.gps 
6.修改fd文件 
cd /usr/share/texmf/tex/latex/CJK/GB 
修改或者创建c11song.fd, c11hei.fd, c11kai.fd, c11fs.fd 
下面列出c11fs.fd 
% This is the file c11fs.fd of the CJK package 
% for using Asian logographs (Chinese/Japanese/Korean) with Latex2e 

% created by Werner Lemberg 

% Version 4.2.0 (13-Dec-1998) 
\def\fileversion{4.2.0} 
\def\filedate{1998/12/13} 
\ProvidesFile{c11fs.fd}[\filedate\space\fileversion] 
% pmC compatibility: simplified Chinese characters in GuoBiao encoding schem 
e. 
\DeclareFontFamily{C11}{fs}{} 
\DeclareFontShape{C11}{fs}{m}{n}{<-> CJK * gbfs}{} 
\DeclareFontShape{C11}{fs}{bx}{n}{<-> CJKb * gbfs}{\CJKbold} 
\DeclareFontShape{C11}{fs}{m}{it}{<-> CJK * gbfsi}{} 
\DeclareFontShape{C11}{fs}{bx}{it}{<-> CJKb * gbfsi}{\CJKbold} 
\endinput 
7.cd /usr/share/texmf/fonts/type1 
mkdir chinese; cd chinese 
mkdir gbsong; mkdir gbhei; mkdir gbkai; mkdir gbfs 
拷贝gbpfb生成的pfb文件到相应的目录 
cp fonts/gbkai*.pfb gbkai/等等 
8.cd /usr/share/texmf/fonts/tfm/chinese 
拷贝gbpfb生成的tfm文件到相应的目录 
cp tfm/gbkai??.tfm gbkai/ 
cp tfm/gbkaii??.tfm gbkaii/等等 
9.cp cjk-4.1.3.gb/dvips/misc/CJK.map /usr/share/texmf/dvips/misc 
cd /usr/share/texmf/dvips/config 
修改config.ps,在 p psfonts.map后增加 
p +CJK.map 
cd /usr/share/texmf/pdftex/config 
修改pdfmap.cfg,在 map pdftex.map后增加 
map +CJK.map 
10.修改CJK.map文件增加504个相应语句,举例如下 
gbsongi81 GB-Song81 ".25 SlantFont"等等 
11.别忘了运行mktexlsr!!!好了,现在你就可以在中文latex中使用pfb字库了,可以使用 
 
\begin{CJK*}[pmC]{}{}了. 
注意: 
1.微软的两种字库simfang.ttf和simkai.ttf生成的pfb字库的打印在笔画交叉处会有反 
白现象,pk字库没有这个问题.可以用其它字库代替. 
2.pk和pfb字库的效果和速度我自己感觉没有明显差别.所以觉得pk字库已经足够了,TLC 
目前的版本也是默认支持pk字库的. 
3.chpfb-1.3.1-4自带的txt2gbps可以用来将文本文件生成ps文件而直接打印.注意文本 
文件没一行不能过长.否则会出错. 
特别致谢: 
Mr. Wang, Lei(http://ctex.dhs.org/), terrymiao(http://igloo.its.unimelb.edu. 
au/linux-online/ghostscript.html) 
还要感谢陈向阳,方汉两位师兄为linux中文化做的贡献.TLC给了我很多的启发. 
-- 
Unexpected trap in kernel mode: 
ss  0x00730020   uesp 0x00000000   efl  0x02300454   ipl  0x00180010 
cs  0xb040cccc   eip  0x00000001   err  0x00c324c0   trap 0x0d0cc9aa 
eax 0x0045003e   ecx  0x0047112d   edx  0x6373ffff   ebx  0x6373fff0 
PANIC: k_trap - kernel mode trap type 0x0000000E 
Trying to dump 5023 pages to dumpdev hd (1/41), 63 pages per '.' 
 
 
※ 修改:·Rainny 於 Jan  7 11:41:50 修改本文·[FROM: 166.111.161.251] 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.161.251] 

BBS水木清华站∶精华区