Vous êtes sur la page 1sur 12

CTEX.

ORG · 论坛发帖规则 帮助 搜索 用户 日历

你已登录: rleon ( 退出 ) 个人控制面板 · 0条新短消息 · 查看新的帖子 · 我的助手

CTEX 论坛 -> TeX/LaTeX 区 -> LaTeX 专区 -> 中文处理

(2) [1] 2 ( 转到首个未读帖子 )

dvips 、dvipdfm 和pdftex 使用 字体 的 设 置综 述; 更多 字 体

订阅此主题 | 邮寄此主题 | 打印此主题

钟圣俊 发帖时间 2002年05月11日 17时40分

系统的介绍见所附的TeX源文件(含编译后的PDF)。

牛刀小试 Type1、True Type 字体的设置;使用更多字体。


在CTeX老论坛上有人问这个经典的问题,经典问题曾有叙述,这里进行系统的叙述。如果我的理解有错误,
请指出。
组别: 荣誉会员
金钱: 3321 Pt 摘要:
帖子数量: 45 本文主要介绍如何生成、使用Type1(pfb)和True Type(TTF)字体。
精华帖数: 1
TeX中有三种字体类型,pk点阵字体、TTF矢量字体和pfb矢量字体。
被删帖数: 0
用户编号: 20 利用gbkfonts可以生成:
注册时间: 2002年04月30日 1、TFM字体文件,用于TTF文件->pk的转换;
2、pfb Type1字体文件。
3、enc文件--pk、True Type和Type1都需要的编码文件;
4、fd文件--pk、True Type和Type1都需要的字体定义文件;
5、各种map文件。
pk字体是用到时现生成的。
关于用gbkfonts生成以上文件,见后半部分的介绍。
yap、dvips、dvipdfm和pdflatex等对各种字体的使用总结:
1、yap只使用pk字体;
2、dvips可以使用pk、pfb字体。默认使用pk字体,可以通过设置使用pfb字体。似乎无法使用TTF字体。
3、dvipdfm可以使用pk、pfb和TTF字体。在系统无pfb字体时使用pk字体。如有pfb字体,不需设置,自动使
用pfb字体,也可强制设置为使用pfb字体。使用dvipdfm-cjk可以使用TTF字体。
4、pdflatex可以使用pk、TTF和pfb字体。不加设置时总使用pk。通过改变map文件,可以选择所使用的字
体。
所有的字体配置文件可以从英文MikTeX下拷贝到LocalTeXMF下相应的位置,并将LocalTeXMF在TeXMF Tree中
的位置前置,以优先使用。
一、dvips的配置
配置文件:LocalTeXMF\dvips\config\config.ps
dvips可以使用pk、pfb字体。

2004-5-9
默认使用pk字体,特征是转换过程屏幕上显示很少。
可以通过设置使用pfb字体。特征是屏幕显示使用的pfb字体的名称。
cjk.map由gbkfonts工具自动生成,可以拷贝到LocalTeXMF\dvips下级的任何子目录。CJK.map 是pfb字体的
map文件,同一文件描述多种字体。前两行如下:
gbksong01 GB-Song01 <gbksong01.pfb
gbksongsl01 GB-Song01 " .167 SlantFont " <gbksong01.pfb
对配置文件文件进行如下修改,即加上 cjk.map。
f +cjk.map
dvips似乎无法使用TTF字体。
二、dvidfm的配置
配置文件: LocalTeXMF\dvipdfm\config\config
dvipdfm可以使用pk、pfb字体。在系统无pfb字体时使用pk字体。特征是pdf文件发毛。
如有pfb字体,不需设置,自动使用pfb字体。特征是pdf文件清晰,可无级放大。
LocalTeXMF\dvipdfm\config子目录下有单字体 map 文件,格式与 ttf字体的 map 文件格式不同,但文件
名一样。
均为gbksong.map之类。这些Map文件是gbkfonts自动生成的,
此处 gbksong.map 前两行如下:
gbksong01 none gbksong01
gbksongsl01 none gbksong01 -s .167
似乎不修改就可以使用pfb字体。如修改配置文件,则内容如下:
% Most distributions now use these names
f lw35urw.map
% Some use these names
% f lw35urwa.map

f gbksong.map %
f gbkhei.map %
f gbkkai.map %
f gbkfs.map %
f gbkli.map %
f gbkyou.map %
% 以下配置仅对高级用户
%f gbkshu.map %
%f gbkxk.map %
%f gbkcy.map %
%f gbkxw.map %
%f gbkxh.map %
%f gbksu.map %
%f gbkyao.map %
关于dvipdfm-cjk使用TTF字体,从hooklee和经典问题的的帖子中抄来的,我已调试通过。
先下载dvipdfm-cjk(两个包):
http://ftp.ktug.or.kr/pub/ktug/miktex/2.1/tm/packages/miktex-dvipdfm-base.cab
http://ftp.ktug.or.kr/pub/ktug/miktex/2.1/tm/packages/miktex-dvipdfm-bin.cab

2004-5-9
解开后释放到texmf或localtexmf下。我喜欢localtexmf,不过,要把相应的bin加到系统搜索路径。以下假
定你使用localtexmf。
修改LocalTeXMF\dvipdfm\base\cid.map,将以下内容添加到cid.map的末尾:
gbksong@UGBK@ UniGB-UCS2-H simsun.ttf
gbksongsl@UGBK@ UniGB-UCS2-H simsun.ttf,Italic
gbkhei@UGBK@ UniGB-UCS2-H simhei.ttf
gbkheisl@UGBK@ UniGB-UCS2-H simhei.ttf,Italic
gbkkai@UGBK@ UniGB-UCS2-H simkai.ttf
gbkkaisl@UGBK@ UniGB-UCS2-H simkai.ttf,Italic
gbkfs@UGBK@ UniGB-UCS2-H simfang.ttf
gbkfssl@UGBK@ UniGB-UCS2-H simfang.ttf,Italic
gbkli@UGBK@ UniGB-UCS2-H simli.ttf
gbklisl@UGBK@ UniGB-UCS2-H simli.ttf,Italic
gbkyou@UGBK@ UniGB-UCS2-H simyou.ttf
gbkyousl@UGBK@ UniGB-UCS2-H simyou.ttf,Italic
(注意,察看你的c:\windows\fonts下的字体名称,扩展名可能为ttc)
然后修改LocalTeXMF\dvipdfm\config\config。加入字体映射cid.map。
f cid.map
由于同事只能使用一种字体,如果你显示配置了pfb字体,隐含pfb的配置。
现在,你的pdf使用TTF了,可以通过acrobat的file|document properties|fonts看到,pdf嵌入TTF了。可
以搜索、拷贝。
三、pdflatex的配置
配置文件: LocalTeXMF\pdftex\config\pdftex.cfg
1、使用pfb(Type1)字体
修改配置文件:
% 1- Begin use Type1 fonts
map +cjk.map
% 1- End use Type1 fonts
cjk.map前两行如下:
gbksong01 GB-Song01 <gbksong01.pfb
gbksongsl01 GB-Song01 " .167 SlantFont " <gbksong01.pfb
2、使用TTF字体
修改配置文件:
% 2- Begin use Type1 fonts
f gbksong.map %
f gbkhei.map %
f gbkkai.map %
f gbkfs.map %
f gbkli.map %
f gbkyou.map %
% 2- End use Type1 fonts
gbksong.map前两行如下:

2004-5-9
gbksong01 <gbksong01.enc <simsun.ttf
gbksong02 <gbksong02.enc <simsun.ttf

3、注意,以上两种配置只能选其一,为此,生成两个配置文件保存两种配置。将其中任意一个拷贝为
LocalTeXMF\pdftex\config\pdftex.cfg将使对应的配置生效。
LocalTeXMF\pdftex\config\pdftexpfb.cfg
LocalTeXMF\pdftex\config\pdftexttf.cfg
四、生成字体的简单方法
如果你有宽带网,也不想拥有更多字体,下载 CTeX Fonts 安装即可。有人安装完了好使,有 人说不好
使。不好使的原因可能与操作系统有关。
实际上,不必去下载 80 多兆的 Type1 字体,自己生成就是。Why not?
为避免两种 TFM 混淆,将原来的LocalTeXMF\fonts\TFM\chinese删掉。
将 C:\LocalTeXMF\CJK\CTEX\gbkfonts 下的所有文件拷贝到 \LocalTeXMF 下,执行 go.bat 即可。原有的
配置支持 6 种常用字体,宋、黑、楷、仿宋、隶、幼圆。拷贝之后在 运行(而不原地运行的好处是:一步
到位)。
执行完后,在 LocoalTeXMF 下生成了一个总字体文件 CJK.map。将它拷贝 到 \LocalTeXMF\dvips\config
下。
对应每种字体,其它地方也生成了 2 种不同格式但同名的 map 文件。

五、更多的字体(仅对高级用户)
以下方法是针对高级用户的。掌握本方法,所有 Windows 系统下的 True Type 汉字字体均 可为 TEX 所
用。测试的操作系统是 Windows 98 。假定字体在 C:\WINDOWS\FONTS 下,
要让 MikTeX 知道 Windows 下的 TrueType 路径,在 MikTeX 配置文件
.\miktex\config\miktex.ini 中指明路径: TTFPath=.;%R\fonts\truetype//
改为:
TTFPath=.;%R\fonts\truetype//;C:\Windows\Fonts//

假定下文所述的 TTF(True Type Fonts)字体存在。如相关字体不存在,或不想要如此多 的字体,将配置


文件中的有关行删去即可。
song 宋 simsun.ttf
hei 黑 simhei.ttf
kai 楷 simkai.ttf
fs 仿宋 simfang.ttf
li 隶 simli.ttf
you 幼圆 simyou.ttf
shu 华文中宋(书宋) stzhongs.ttf
xk 华文行楷 stxingka.ttf
xw 华文新魏 stxinwei.ttf
cy 华文彩云 stcaiyun.ttf
xh 方正细黑 stxihei.ttf
su 方正苏同 fzstk.ttf
yao 方正姚体 fzytk.ttf
安装 MikTeX+CJK 或 CTeX 之后,在 LocalTeXMF\CJK\CTEX\gbkfonts 有两个文 件很有用:gbkfonts.ini

2004-5-9
和 go.bat。
gbkfonts.ini 的内容改为:
song songsl GBK-Song 8000
hei heisl GBK-Hei 8001
kai kaisl GBK-Kai 8002
fs fssl GBK-FangSong 8003
li lisl GBK-LiShu 8004
you yousl GBK-You 8005
shu shusl GBK-Shu 8006
xk xksl GBK-XingKai 8007
xw xwsl GBK-XinWei 8100
cy cysl GBK-CaiYun 8101
xh xhsl GBK-XiHei 8102
su susl GBK-SuTi 8103
yao yaosl GBK-Yao 8104

其中,第 1 列是字体名称标识,第 2 列 slant 斜体名称(名称标识+ sl), 第 3 列助记名称,第 4 列


是一个识别码。以后生成的字体文件名为名称标识前加 上 gbk。如 gbksong、gbkhei 之类,在 TeX 中用
的时候,使用名称标识,而不是字体 的文件名。名称标识和助记名是可以自定义的,但必须与后面所述的
其它配置一 致。
go.bat的内容改为:
REM --------------------------------------------------
REM GO.BAT 开始
REM 生成宋、黑、楷、仿宋、隶、幼圆

gbkfonts -c -gbk c:\windows\fonts\simsun.ttf song


gbkfonts -c -gbk c:\windows\fonts\simhei.ttf hei
gbkfonts -c -gbk c:\windows\fonts\simkai.ttf kai
gbkfonts -c -gbk c:\windows\fonts\simfang.ttf fs
gbkfonts -c -gbk c:\windows\fonts\simli.ttf li
gbkfonts -c -gbk c:\windows\fonts\simyou.ttf you

REM 生成华文中宋(书宋)、华文行楷、华文新魏、
REM 华文彩云、华文细黑字体

gbkfonts -c -gbk c:\windows\fonts\stzhongs.ttf shu


gbkfonts -c -gbk c:\windows\fonts\stxingka.ttf xk
gbkfonts -c -gbk c:\windows\fonts\stxinwei.ttf xw
gbkfonts -c -gbk c:\windows\fonts\stcaiyun.ttf cy
gbkfonts -c -gbk c:\windows\fonts\stxihei.ttf xh

REM 生成方正苏同、方正姚体

2004-5-9
gbkfonts -c -gbk c:\windows\fonts\fzstk.ttf su
gbkfonts -c -gbk c:\windows\fonts\fzytk.ttf yao

REM GO.BAT 结束
-----------------------------------------------------------------------

在 D:\LocalTeXMF\ttf2pk 下和 D:\LocalTeXMF\ttf2tfm\base 下各有配置文 件 ttfonts.map,其内容一


样。用于 PK 和 TFM 字体的生成。将这两个文件改 为:
gbksong@UGBK@ simsun.ttf Pid=3 Eid=1
gbksongsl@UGBK@ simsun.ttf Slant=0.25 Pid=3 Eid=1
gbkkai@UGBK@ simkai.ttf Pid=3 Eid=1
gbkkaisl@UGBK@ simkai.ttf Slant=0.25 Pid=3 Eid=1
gbkhei@UGBK@ simhei.ttf Pid=3 Eid=1
gbkheisl@UGBK@ simhei.ttf Slant=0.25 Pid=3 Eid=1
gbkfs@UGBK@ simfang.ttf Pid=3 Eid=1
gbkfssl@UGBK@ simfang.ttf Slant=0.25 Pid=3 Eid=1
gbkli@UGBK@ simli.ttf Pid = 3 Eid = 1
gbklisl@UGBK@ simli.ttf Slant=0.25 Pid = 3 Eid = 1
gbkyou@UGBK@ simyou.ttf Pid = 3 Eid = 1
gbkyousl@UGBK@ simyou.ttf Slant=0.25 Pid = 3 Eid = 1
gbkshu@UGBK@ stzhongs.ttf Pid = 3 Eid = 1
gbkshusl@UGBK@ stzhongs.ttf Slant=0.25 Pid = 3 Eid = 1
gbkxk@UGBK@ stxingka.ttf Pid = 3 Eid = 1
gbkxksl@UGBK@ stxingka.ttf Slant=0.25 Pid = 3 Eid = 1
gbkcy@UGBK@ stcaiyun.ttf Pid = 3 Eid = 1
gbkcysl@UGBK@ stcaiyun.ttf Slant=0.25 Pid = 3 Eid = 1
gbkxw@UGBK@ stxinwei.ttf Pid = 3 Eid = 1
gbkxwsl@UGBK@ stxinwei.ttf Slant=0.25 Pid = 3 Eid = 1
gbkxh@UGBK@ stxihei.ttf Pid = 3 Eid = 1
gbkxhsl@UGBK@ stxihei.ttf Slant=0.25 Pid = 3 Eid = 1
gbksu@UGBK@ fzstk.ttf Pid = 3 Eid = 1
gbksusl@UGBK@ fzstk.ttf Slant=0.25 Pid = 3 Eid = 1
gbkyao@UGBK@ fzytk.ttf Pid = 3 Eid = 1
gbkyaosl@UGBK@ fzytk.ttf Slant=0.25 Pid = 3 Eid = 1

上述文件改完后,将 D:\LocalTeXMF\CJK\CTEX\gbkfonts 下的所有文件拷贝 到 D:\LocalTeXMF 下,执行


go.bat。
同样,执行完后,在 LocoalTeXMF 下生成了一个总字体文件 CJK.map。将它拷贝到
\LocalTeXMF\dvips\config 下。
设置与前述类似。

这个帖子已被 钟圣俊 于 2002年06月05日 20时19分 编辑

2004-5-9
附件 ( 下载次数: 99 附件售价: 0Pt 看谁购买 )
8_11.zip

Enig 发帖时间 2002年06月15日 18时38分

实际上simkai.ttf, simfang.ttf做成pfb都有缺陷,而且它们也非GBK编码,而是GB-2312编码的,最好由其

投石问路 它楷体、仿宋体的GBK编码ttf字体文件代替。可选的有华天字库,可在Turbo-Linux中文版6.0找到,但是不
是免费的。
如果用不到什么特殊的非常见汉字的话,配成GB编码的也就够用了。
组别: 普通用户
金钱: 2180 Pt 对于中文字体,现在的趋势是尽量利用ttf字体,既可以避免占用磁盘空间,生成的pdf也更加漂亮。在这方
帖子数量: 8 面pdflatex是比较早的,接着dvipdfm也跟上来了,而且做得更好。
精华帖数: 0
我不知道dvipdfm对图形嵌入是否有比较完全的解决方案,否则会影响写论文的图形处理。
被删帖数: 0
用户编号: 32
注册时间: 2002年05月02日

钟圣俊 发帖时间 2002年06月17日 10时52分

选择华天字库是很好的,如果有的话。

牛刀小试 实际上,我一直使用dvipdfm写文章。而很少使用pdflatex。
dvipdfm的优势在于对eps图形的嵌入,而pdflatex只能嵌入pdf和jpeg图形。
所以,dvipdfm处理图形是没有问题的,只是将所有图形转换为eps即可。光栅图用photoshop或paintshop转
组别: 荣誉会员
金钱: 3321 Pt 换,pdf图用acrobat转换,然后用gsview修剪一下。
帖子数量: 45
精华帖数: 1
被删帖数: 0
用户编号: 20
注册时间: 2002年04月30日

happytex 发帖时间 2002年06月17日 12时34分

我觉得要注意文章的可移植性,

初露锋芒

组别: 荣誉会员
金钱: 6397 Pt
帖子数量: 222
精华帖数: 0
被删帖数: 0
用户编号: 11
注册时间: 2002年04月29日

2004-5-9
钟圣俊 发帖时间 2002年06月17日 15时46分

从图形的角度看,eps图形在pdflatex上的可移植性不好。对于图形,有自动移植的方案吗?

牛刀小试 由于Yap作为预览器可以节省时间,所以在发布前,用LaTeX比pdflatex更自然。

组别: 荣誉会员
金钱: 3321 Pt
帖子数量: 45
精华帖数: 1
被删帖数: 0
用户编号: 20
注册时间: 2002年04月30日

jinxl 发帖时间 2002年06月30日 23时12分

如前文所述go.bak 里的内容是:

牛刀小试 gbkfonts -c -gbk c:\windows\fonts\simsun.ttf ?song ?


gbkfonts -c -gbk c:\windows\fonts\simhei.ttf ?hei ?
gbkfonts -c -gbk c:\windows\fonts\simkai.ttf ?kai ?
组别: 普通用户
金钱: 3321 Pt gbkfonts -c -gbk c:\windows\fonts\simfang.ttf fs ?
帖子数量: 63 gbkfonts -c -gbk c:\windows\fonts\simli.ttf ?li ?
精华帖数: 0
gbkfonts -c -gbk c:\windows\fonts\simyou.ttf ?you
被删帖数: 0
用户编号: 157 在localtexmf\dvipdfm\config下有了gbkfs.map gbkhei.map .... 等几个文件
注册时间: 2002年06月30日 gbkfs.mp的开始两行是:
gbkfs01 none gbkfs01
gbkfssl01 none gbkfs01 -s .167
在config中加了:
f gbksong.map % ?
f gbkhei.map % ?
f gbkkai.map % ?
f gbkfs.map % ?
f gbkli.map % ?
f gbkyou.map %
运行dvipdfm是报错:
warning: Couldn't open font map file gbksong.map
warning: Couldn't open font map file gbkhei.map
warning: Couldn't open font map file gbkkai.map

2004-5-9
warning: Couldn't open font map file gbkfs.map
warning: Couldn't open font map file gbkli.map
warning: Couldn't open font map file gbkyou.map
出来的pdf 还是pk的,哪位大侠可以告诉我这是怎么回事,多谢了^_^

cxterm 发帖时间 2002年06月30日 23时29分

是不是没有刷新文件名数据?

博古论今

组别: 管理员
金钱: 15553 Pt
帖子数量: 685
精华帖数: 1
被删帖数: 15
用户编号: 19
注册时间: 2002年04月30日

jinxl 发帖时间 2002年06月30日 23时30分

引用
牛刀小试 下面引用由钟圣俊在 2002/05/11 05:40pm 发表的内容:
所有的字体配置文件可以从英文MikTeX下拷贝到LocalTeXMF下相应的位置,并将LocalTeXMF在TeXMF
Tree中的位置前置,以优先使用。
组别: 普通用户
金钱: 3321 Pt
帖子数量: 63 TeXMF Tree是什么?怎么看那个在前面,怎么把LocalTeXMF的位置前置啊,不好意思,
精华帖数: 0 俺初来乍道,不懂的东西比较多^_^
被删帖数: 0
用户编号: 157
注册时间: 2002年06月30日

jinxl 发帖时间 2002年06月30日 23时33分

引用
牛刀小试 下面引用由cxterm在 2002/06/30 11:29pm 发表的内容:
是不是没有刷新文件名数据?

组别: 普通用户
金钱: 3321 Pt 不好意思,我是新手,能不能说的详细一点^_^
帖子数量: 63 怎么刷新啊?
精华帖数: 0

2004-5-9
被删帖数: 0
用户编号: 157
注册时间: 2002年06月30日

shredder 发帖时间 2002年07月01日 11时22分

TEXMF 就是那个 texmf 目录和它的各级子目录,这些目录里有上万个文件,你想想那些程序,你告诉它:

小有所成 “使用 gbksong 的字体。”它怎么知道在哪里? 它可能每次运行都去搜索整个目录,所以TeX系统是依靠


kpathsea的文件名数据库寻找文件的。所以每次在目录里加入新的文件或者改动了文件的位置就要运行
texhash
组别: 版主
金钱: 10187 Pt 刷新文件名数据库。
帖子数量: 394
精华帖数: 4
被删帖数: 23
用户编号: 131
注册时间: 2002年06月06日

jinxl 发帖时间 2002年07月02日 22时35分

引用
牛刀小试 下面引用由shredder在 2002/07/01 11:22am 发表的内容:
它可能每次运行都去搜索整个目录,所以TeX系统是依靠kpathsea的文件名数据库寻找文件的。所以
每次在目录里加入新的文件或者改动了文件的位置就要运行
组别: 普通用户 texhash
金钱: 3321 Pt 刷新文件名数据库。
帖子数量: 63
精华帖数: 0
被删帖数: 0 这位大侠好,我用的是win2k,用ctex2.0安装.在miktex目录下没有找到kpathsea和texhash文件,这是怎么回
用户编号: 157 事啊?
注册时间: 2002年06月30日

jinxl 发帖时间 2002年07月02日 23时15分

嘿嘿,搞定了,在win2k下要运行

牛刀小试 initexmf -u
来更新目录
呵呵,看到type1,真是爽啊,放到1600%还是那么清晰,嘿嘿
组别: 普通用户
金钱: 3321 Pt 感谢各位大侠喔^_^
帖子数量: 63

2004-5-9
精华帖数: 0
被删帖数: 0
用户编号: 157
注册时间: 2002年06月30日

aloft 发帖时间 2002年07月02日 23时30分

miktex有个工具的,可以在菜单里找到,MikTeX Options
里面有刷新数据库和其他一些配置选项

--------------------
Committed To EXcellence
追 求 卓 越
Advanced Language Of Formula Typesetting

登峰造极 只有偏执狂才能生存

组别: 管理员
金钱: 478157 Pt
帖子数量: 3688
精华帖数: 1
被删帖数: 172
用户编号: 1
注册时间: 2002年04月21日

jinxl 发帖时间 2002年07月02日 23时49分

嘿嘿,找到了,这个东东好啊,可以配置很多东西啊^_^

牛刀小试 呵呵,我装好了以后,把开始里面miktex的菜单给删了,
想就是一个编译器,菜单也没有用^_^
真是蠢啊^_^
组别: 普通用户
金钱: 3321 Pt
帖子数量: 63
精华帖数: 0
被删帖数: 0
用户编号: 157
注册时间: 2002年06月30日

aloft 发帖时间 2002年07月03日 23时37分

2004-5-9
呵呵,miktex 的配置工具是越来越好用了,不过也就越来越 windows dependent 了

--------------------
Committed To EXcellence
追 求 卓 越
Advanced Language Of Formula Typesetting

只有偏执狂才能生存
登峰造极

组别: 管理员
金钱: 478157 Pt
帖子数量: 3688
精华帖数: 1
被删帖数: 172
用户编号: 1
注册时间: 2002年04月21日

« 上一个主题 | 中文处理 | 下一个主题 »

(2) [1] 2

---- 中文处理 Go

[ 程序执行时间: 0.1470 秒 ] [ 数据库查询: 12 次 ] [ GZIP 开启 ]

IPB中文HyPER版 © 2003 FreeIPB.COM


Powered by Invision Power Board(U) v1.2 © 2003 IPS, Inc.

2004-5-9

Vous aimerez peut-être aussi