LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 726|回复: 0

RH7 + teTex + CJK安装手记(from linuxforum)

[复制链接]
发表于 2003-12-29 16:34:19 | 显示全部楼层 |阅读模式
发信人: 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/t ... o.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
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
\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]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表