|

楼主 |
发表于 2008-9-29 14:29:04
|
显示全部楼层
给CJK增加自己喜欢的字体
这里是TeX中文高级功能:给自己BLFS下的 LaTeX CJK增加新字体:
上面已经提到了,给自己的LaTeX增加字体的简单方法,就是去网站上下载现成的字体包来安装。
如果你对那个新宋体(nsung)和新楷体(nkai)感到相当讨厌,想换自己喜欢的字体,那么该怎么办?
下面就来示范,如何在CJK中添加自己喜欢的文泉驿正黑体0.6.26祈祷版(UTF8编码)。
范例中的命令都是参考命令,请根据自己的路径和系统情况修改。
首先,假定你已经按照1楼的方法,安装好了LaTeX + CJK + (nsung + nkai 字体)。
一、安装fontforge字体管理程序
http://downloads.sourceforge.net ... 96&big_mirror=0
下载后解压,然后
./configure
make && make install
就可以安装到默认的地方:/usr/local/bin
这时你要确保你的PATH中已经有了/usr/local/bin这个路径,没有的话加上去。或者你在configure前面增加--prefix参数安装到别的地方也可以。
输入命令
fontforge -v
测试一下安装正确没有。
二、下载文泉驿正黑0.6.26祈祷版
http://downloads.sourceforge.net ... .gz?use_mirror=osdn
解压后,把ttf文件拷贝到相应的地方。假设你即将工作的目录为~/xfont:
cp *.ttf ~/xfont -v
三、拷贝CJK的工具脚本到工作目录
找到你之前CJK的解压目录,看1楼的文档,想想你当时解到了什么地方,不行就重新下载一个CJK来解压。
相关的工具脚本在CJK目录的:
utils/subfonts
目录下,我们目前需要的脚本为: subfonts.pe
参考命令:
cp ~/cjk-4.8.1/utils/subfonts/subfonts.pe ~/xfont -v
四、获得UTF8编码的通用字体规则包
因为我们要增加的是UTF8编译的字体包,所以需要一个UTF8编码的字体规范。这个包叫做:
Unicode.sfd
获取地址:
http://cvs.savannah.gnu.org/view ... ontrib/ttf2pk/data/
里面有很多规范包,UTF8的规范是Unicode.sfd;如果你需要GBK字体,那么下载相应的包。
下载后,把这个包拷贝到工作目录:
cp Unicode.sfd ~/xfont -v
五、开始生成元字体文件(注意:时间非常长!)
这时候,你的工作目录下,应该有三个文件:
Unicode.sfd
subfonts.pe
wqy-zenhei.ttf
输入下面的命令,将会自成LaTeX需要的相关元字体文件:
fontforge -script subfonts.pe wqy-zenhei.ttf wqyzh Unicode.sfd
这个命令运行的时间很长。
在我的垃圾笔记本上(Pentium M 1.7G HZ, 256MB 内存),时间为10个小时!
在我同事最新的豪华联想品牌机上(Pentium dual E2200 2.2 GHz*2,1G内存),需要的时间为24分钟37秒!
(我目前正在教她学Linux。注意,是:她!)
你可以这样来测试这个命令需要的时间:
time { fontforge -script subfonts.pe wqy-zenhei.ttf wqyzh Unicode.sfd ; }
这可以检验你的机器有多么好(或者是多么垃圾)
执行完毕后,将在你的工作目录生成600多个元字体文件(准确说应该是641个文件),注意观察元字体文件的类型,有tfm、enc、pfb、afm等4种文件。
六、制作映射包map
相关命令:
for i in *.tfm
do
cat >> wqyzh.map << EOF
${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
EOF
done
这时会在你的工作目录下生成wqyzh.map
md5sum wqyzh.map
5d78a9a096d7e4f9e30327fbd8e9110b wqyzh.map
这是我的校验码。
七、制作fd文件包c70wqyzh.fd
文件名:c70wqyzh.fd
内容为:
% This is c70wqyzh.fd for CJK package.
% created by Liu
% 2008-10-19 12:29
%
\ProvidesFile{c70wqyzh.fd}
\DeclareFontFamily{C70}{wqyzh}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{wqyzh}{m}{n}{<-> CJK * wqyzh}{}
\DeclareFontShape{C70}{wqyzh}{bx}{n}{<-> CJKb * wqyzh}{\CJKbold}
\endinput
这是我照抄c70nsung.fd内容的。大家可以参考一下,nsung和nkai的fd文件包应该放在:
~/texmf/tex/latex/CJK/UTF8/
目录下。还有一个fdx文件,我看说明是用了CJK的另一个工具生成的,也在utils/subfonts目录下,名为:makefdx.pl
我不太清楚这个包的作用,也照抄过来了,只是把里面所有的nsung 改为了wqyzh。
可以用sed来改
cp ~/texmf/tex/latex/CJK/UTF8/c70nsung.fdx c70wqyzh.fdx
sed -i 's/nsung/wqyzh/g' c70wqyzh.fdx
八、把所有元字体文件和map、fd、fdx文件放在相应的目录下
不难找到,前面安装的nsung字体,相应的文件都放置于目录
~/texmf/fonts和~/texmf/tex下了。我们只要照抄就可以了。
参考命令:
mkdir -v ~/texmf/fonts/type1/CJK/wqyzh
mkdir -v ~/texmf/fonts/tfm/CJK/wqyzh
mkdir -v ~/texmf/fonts/enc/CJK/wqyzh
mkdir -v ~/texmf/fonts/afm/CJK/wqyzh
cp -v *.pfb ~/texmf/fonts/type1/CJK/wqyzh
cp -v *.tfm ~/texmf/fonts/tfm/CJK/wqyzh
cp -v *.enc ~/texmf/fonts/enc/CJK/wqyzh
cp -v *.afm ~/texmf/fonts/afm/CJK/wqyzh
cp -v wqyzh.map ~/texmf/fonts/map/dvips/CJK/
cp -v c70wqyzh.fd{,x} ~/texmf/tex/latex/CJK/UTF8/
九、重整TeX字体数据库
首先运行texhash刷新字体库:
texhash
然后把map映射文件加入:
root用户执行
updmap-sys --enable Map wqyzh.map
普通用户执行
updmap --enable Map wqyzh.map
十、测试
用一个简单的tex文件来测试一下文泉驿字体安装好了没有:
\documentclass[12pt]{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{wqyzh}
这里是测试文泉驿正黑字体
\end{CJK}
\end{document}
如果成功执行的话,就说明你的字体安装成功了!
附件为三种字体的对比效果。还是文泉驿的好看! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|