七.安装texlive2007(iso by WangYue)
这里有安装教程:
http://mailboxpublic.googlepages.com/texlive2007cjkchinesehowto
我现在的系统是GBK的,所以我有小小的改动。
1.mount -o loop /home/xujian/soft/texlive2007-live-20070212.iso /mnt/iso
2.cd /mnt/iso ; sudo ./install-tl
|
选s进入安装模式选择,我选择了full(默认)。
选c进入选择,去掉不必要的documentation,选r返回
选l进入语言选择,我保留了American,CJK,Greek typesetting,Latin
选d可以修改默认安装的目录,我这里没有修改。
选o可以修改一些选项,包括创建到/usr/bin的软链接
选i开始安装,一共900MB。
安装信息上传到这里:
|
3.安装中文字体:
方法一:gbkfonts(这是何博亮版本的)
chmod 755 gbkfonts; /ln -s /home/xujian/soft/gbkfonts /usr/bin/gbkfonts (要使用绝对路径,不然不行)
为了避免和原系统混淆,我先检查一下刚装的tex系统,然后在一个独立的文件夹内生成字体。
检查TDS:
kpsewhich texmf.cnf
/usr/local/texlive/2007/texmf/web2c/texmf.cnf
kpsewhich --format="web2c files" updmap.cfg
/usr/local/texlive/2007/texmf-var/web2c/updmap.cfg
kpsewhich CJK.sty
/usr/local/texlive/2007/texmf-dist/tex/latex/CJK/CJK.sty
kpsewhich -var-value=TEXMF
{/home/xujian/.texlive2007/texmf-config,/home/xujian/.texlive2007/texmf-var,/home/xujian/texmf,
!!/usr/local/texlive/2007/texmf-config,!!/usr/local/texlive/2007/texmf-var,!!/usr/local/texlive/2007/texmf,
!!/usr/local/texlive/2007/../texmf-local,!!/usr/local/texlive/2007/texmf-dist}
检查texmf和texmf-var,以及texmf-local,texmf-dist目录
关于TDS请看我写的另外的一篇blog???
在/usr/local/texlive/2007/texmf-dist/tex/latex/CJK/GB目录下发现了CJK(4.7.0)宏包以及
相应的fd文件。
测试一下:
vi test.tex\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{GBK}{song}
你好
\end{CJK}
\end{document}
latex test.tex
说找不到fd里定义的字体,就是找不到相应的tfm文件,需要自己造,或者用mktextfm来造???
说明这些fd文件只是例子,必须自己手动添加字体才行。可以参看:
http://www.linuxsir.org/bbs/showthread.php?t=40321
http://my.donews.com/chenyufei/2006/07/31/ypatfurmbmjvrfhkftmknkumeqiidqltneam/
发现如果是新安装CJK宏包或者texlive自带的CJK都是把CJK目录下的texinput目录copy到某一个TDS树下
的latex目录下,有一些字体定义文件(fd文件),但是不提供相应的字体,(ttf,pfb文件),这就是我们要做的工作了。
texmf.cnf中的TEXMF定义为:
TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,
!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
可以对比上面的结果会更清楚:
kpsewhich -var-value=TEXMF
{/home/xujian/.texlive2007/texmf-config,/home/xujian/.texlive2007/texmf-var,/home/xujian/texmf,
!!/usr/local/texlive/2007/texmf-config,!!/usr/local/texlive/2007/texmf-var,!!/usr/local/texlive/2007/texmf,
!!/usr/local/texlive/2007/../texmf-local,!!/usr/local/texlive/2007/texmf-dist}
WangYue在他的texlive2007安装指南中让cjk的字体文件都放在~/.texlive2007/texmf-var下边,也就是
TEXMFVAR,这里你可以选择TEXMFHOME,或者TEXMFVAR,也可以调整TEXMF里的位置。
我选择TEXMFVAR.
cd ~/.texlive2007/texmf-var
里边默认有fonts和web2c两个目录
mkdir ~/fonts(试验用的,过后可以删掉)
copy simkai.ttf到这个目录下,执行:gbkfonts simkai.ttf kai
生成了tex和fonts两个目录.
tex:tex/latex/CJK/GB/c19kai.fd
fonts:afm enc map tfm type1
现在的gbkfonts是按最新的TDS结构来生成字体的,所以不需要移动文件。
关于各种fonts目录下的文件的作用,请看另一篇文章????,这里只说操作。
cp -r /home/xujian/fonts/fonts/ .
cp -r /home/xujian/fonts/tex/ .
这样的话tex肯定能找到你新加的这个字体文件。
有了c19kai.fd,latex编译时就应该能通过了(这时不生成字体)。
有了fonts/map/ttf2pf/ttfonts.map,dvi就应该能生成了,因为可以造simkai的pk字体了嘛。
have a try:
vi test.tex
|
latex test.tex #注意一个问题,第一个要写GBK,不要写GB,这样会去找c10kai.fd及对应的tfm,我们没生成这样的tfm。
这样就生成了dvi文件,编译通过。
但是用xdvi test.dvi时报错,说:kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 gbkkai43
mktexpk: Running ttf2pk -q gbkkai43 600
ttf2pk: ERROR: Cannot find `simkai.ttf'.
grep: gbkkai43.log: No such file or directory
我们没有按texmf.cnf里规定的TTFONTS的目录把simkai.ttf放进去,这样ttf2pk生成不了pk文件,xdvi
自然无法看到了,也就是说kpsewhich simkai.ttf得不到任何结果。
texmf.cnf里关于字体的位置:
TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//
PKFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}//
TTFONTS = .;$TEXMF/fonts/truetype//;$OSFONTDIR//
//指的是下一个子目录,ex:tfm/chinese/gbkkai/gbkkai*.tfm
我们把simkai.ttf链接到$TEXMF/fonts/truetype里就好了。
cd ~/.texlive2007/texmf-var/fonts
mkdir truetype;cd truetype
ln -s /home/xujian/.fonts/simkai.ttf simkai.ttf
再执行一下kpsewhich确认一下。
结果还是不能生成pk,说bad pk file。怀疑是map没有加进去,而且dvips时也是同样的报错。
参考WangYue的安装指南,决定把刚生成的fonts/map/dvips/cjk.map加进去
先建立自己家目录下的updmap.cfg文件,以免以后升级后失效了。
cp /usr/local/texlive/2007/texmf-var/web2c/updmap.cfg /home/xujian/.texlive2007/texmf-var/web2c/
kpsewhich --format="web2c files" updmap.cfg /home/xujian/.texlive2007/texmf-var/web2c/updmap.cfg
texhash
updmap --enable Map cjk.map
输出:
updmap: This is updmap, version 1167072206updmap: using transcript file `/home/xujian/.texlive2007/texmf-var/web2c/updmap.log'
updmap: initial config file is `/home/xujian/.texlive2007/texmf-var/web2c/updmap.cfg'
updmap: configuration file updated: `/home/xujian/.texlive2007/texmf-config/web2c/updmap.cfg'
updmap is creating new map files using the following configuration:
config file: `/home/xujian/.texlive2007/texmf-config/web2c/updmap.cfg'
dvips output directory: `/home/xujian/.texlive2007/texmf-var/fonts/map/dvips/updmap'
pdftex output directory: `/home/xujian/.texlive2007/texmf-var/fonts/map/pdftex/updmap'
dvipdfm output directory: `/home/xujian/.texlive2007/texmf-var/fonts/map/dvipdfm/updmap'
prefer outlines: `true'
texhash enabled: `true'
download standard fonts (dvips): `false' ???
download standard fonts (pdftex): `true'
download standard fonts (dvipdfm): `true'
updmap: Scanning for Map entries:
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/ai/aifonts.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/antt/antt.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/archaic/archaicprw.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/arev/arev.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/ascii/ascii.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/augie/augie.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/aurical/aurical.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/belleek/belleek.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/bera/bera.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/arphic/bsmiu.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/psnfss/charter.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/cheq/cheq.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/ocherokee/cherokee.map'
updmap: using map file `/home/xujian/.texlive2007/texmf-var/fonts/map/dvips/cjk.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/cm-lgc/cm-lgc.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/dictsym/dictsym.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/doublestroke/dstroke.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/epiolmec/epiolmec.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/esvect/esvect.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/foekfont/foekfont.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/fourier/fourier.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/psnfss/fpls.map'
updmap: using map file `/usr/local/texlive/2007/texmf-dist/fonts/map/dvips/garuda/garuda.map'
updmap在fonts/map/dvips,dvipdfm,pdftex下都新建了一个updmap的目录。
这样xdvi,dvips,dvipdfm都可以正常用了,奇怪,ttfonts和dvipdfm/gbkkai.map我都没有加进去就可以了。
试一下dvipdfmx:
** ERROR ** Could not find encoding file "UniGB-UCS2-H".
这个文件我们装了acroread-chfonts就会有的,或者cmap-adobe-*也会有的:
dpkg -L acroread-chfonts
/usr/lib/Adobe/Acrobat7.0/Resource/CMap/UniGB-UCS2-H
texmf.cnf中:
CMAPFONTS = .;$TEXMF/fonts/cmap//
mkdir -p ~/.texlive2007/texmv-var/fonts/cmap/dvipdfmx
cd ~/.texlive2007/texmv-var/fonts/cmap/dvipdfmx
cp /usr/lib/Adobe/Acrobat7.0/Resource/CMap/UniGB-UCS2-H .
再试:
** WARNING ** Could not find CID-to-Code mapping for "Adobe-GB1".
** WARNING ** I tried to load (one of) the following file(s):
Adobe-GB1-UCSms-UCS4 Adobe-GB1-UCSms-UCS2 Adobe-GB1-UCS4 Adobe-GB1-UCS2
** WARNING ** Please check if this file exists.
** ERROR ** Cannot continue...
cp /usr/lib/Adobe/Acrobat7.0/Resource/CMap/Adobe-GB1-* .
dvipdfmx test.dvi
终于成功了(虽然有warning** WARNING ** Trying to redefine already defined code mapping. (ignored):)
而且可以复制,粘贴,搜索中文,都不用加cid-x.map到dvipdfmx.cfg里.
总结一下:
xdvi可以使用pk或pfb字体(type1),再没有加入cjk.map之前,只能使用pk字体,这时要用ttf2pk来生成pk
字体,ex:mktexpk: Running ttf2pk -q gbkkai51 600
如果找不到ttfonts.map(map/ttf2pk目录下),则不能显示dvi文件,
可以用ttf2pk -t gbkkai51来测试是否能找到ttfonts.map。
同样dvips,ps2pdf转出的ps,pdf也可以用pk字体,前提是你没有把cjk.map加入updmap.cfg,加入后默认使用type1字体(pfb),这时xdvi和pdf都用的type1字体。
pdftex目录下的map可以指定,或者加入updmap.cfg,WangYue的安装指南上用的第一种办法。参照
ctex-fonts中的做法:map/dvips/t1-gbkkai.map,map/pdftex/ttf-gbkkai.map,我们可以重命名以上两种
map(dvipdfm一般不用,它的map就删掉吧,cid-x.map保留),这里我们直接用ctex-fonts的字体,这里的字体是经过fontforge加粗的,效果比gbkfonts制作的好些。
开始安装:
参照这篇文章:为texlive2007安装ctex-fonts
http://www.linuxsir.org/bbs/showthread.php?t=303487
我windows下的ctex有点老4.3.0,我又不想考一些多余的东西,所以就按照前面分析的格式只考些需要的东西。
i.copy ttf字体
由于我没找到ctex-fonts把window下的truetype字体放到那儿了,所以就自己考了一些字体,
cp /mnt/winxp/WINDOWS/Fonts/SIMYOU.TTF /home/xujian/.fonts/
cp /mnt/winxp/WINDOWS/Fonts/simfang.ttf /home/xujian/.fonts/
cp /mnt/winxp/WINDOWS/Fonts/simsun.ttc /home/xujian/.fonts/
cp /mnt/winxp/WINDOWS/Fonts/simkai.ttf /home/xujian/.fonts/
cp /mnt/winxp/WINDOWS/Fonts/SIMLI.TTF /home/xujian/.fonts/
cp /mnt/winxp/WINDOWS/Fonts/simhei.ttf /home/xujian/.fonts/
cd ~/.fonts
cp simsun.ttc simsun.ttf
mv SIMLI.TTF simli.ttf
mv SIMYOU.TTF simyou.ttf
cd ~/.texlive2007/texmf-var
ii.copy并修改fd文件
windows下ctex-fonts会把新定义的fd文件放到localtexmf/tex/latex/CJK/GB目录下,其中的内容和
gbkfonts生成的是一样的:
vi c19song.fd
|
rm c19com.fd
修改fd,粗体时使用黑体,斜体时使用楷体
sed -i "s/\(it.*gbk\)[a-z]*/\1kai/" *.fd
sed -i "s/\(bx.*gbk\)[a-z]*/\1hei/" *.fd
iii.copy map
mkdir -p /home/xujian/.texlive2007/texmf-var/fonts/map/dvips
cd /home/xujian/.texlive2007/texmf-var/fonts/map/dvips
cp /mnt/winxp/CTeX/localtexmf/dvips/chinese/*.map
cd ..
mkdir pdftex
cp /mnt/winxp/CTeX/localtexmf/pdftex/chinese/ttf-gbk* /home/xujian/.texlive2007/texmf-var/fonts/map/pdftex/
iv. copy enc
mkdir -p /home/xujian/.texlive2007/texmf-var/fonts/enc/pdftex
cp -r /mnt/winxp/CTeX/localtexmf/pdftex/chinese/gbk* /home/xujian/.texlive2007/texmf-var/fonts/enc/pdftex/
v.copy tfm
cp -r /mnt/winxp/CTeX/localtexmf/fonts/tfm/chinese/* /home/xujian/.texlive2007/texmf-var/fonts/tfm/
tfm:dvips,dvipdfmx,pdflatex都要用,所以tfm没有下面的细分的目录
vi. copy afm
cp -r /mnt/winxp/CTeX/localtexmf/fonts/afm/chinese/* /home/xujian/.texlive2007/texmf-var/fonts/afm/
vii. copy pfb
cp -r /mnt/winxp/CTeX/localtexmf/fonts/type1/chinese/* /home/xujian/.texlive2007/texmf-var/fonts/type1/
viii.copy updmap.cfg
cp /usr/local/texlive/2007/texmf/web2c/updmapl.cfg /home/xujian/.texlive2007/texmf-config/web2c/
确认一下:
kpsewhich --format="web2c files" updmap.cfg
/home/xujian/.texlive2007/texmf-config/web2c/updmap.cfg
viiii. ln -s truetype
cd truetype
ln -s /home/xujian/.fonts/simkai.ttf simkai.ttf
ln -s /home/xujian/.fonts/simsun.ttf simsun.ttf
ln -s /home/xujian/.fonts/simyou.ttf simyou.ttf
ln -s /home/xujian/.fonts/simhei.ttf simhei.ttf
ln -s /home/xujian/.fonts/simli.ttf simli.ttf
ln -s /home/xujian/.fonts/simfang.ttf simfang.ttf
x.copy ttfonts.map
cp /mnt/winxp/CTeX/localtexmf/ttf2tfm/base/ttfonts.map /home/xujian/.texlive2007/texmf-var/fonts/map/ttf2pk/
xi.修订权限:
从xp拷贝过来的文件可能有权限问题,需要修订一下
- find ~/.texlive/2007/texmf-var -type f -exec chmod 644 {} \;
- find ~/.texlive/2007/texmf-var -type d -exec chmod 755 {} \;
测试:
还是上边的test.tex
latex test.tex
xdvi test.dvi
dvips test.dvi
ps2pdf test.ps
这样得到的pdf文件效果很差,因为使用pk字体嘛,看一下。

加载map
dvips:
updmap --enable Map t1-gbksong.map
就是修改了kpsewhich --format="web2c files" updmap.cfg
指示的这个updmap.cfg.
我们直接修改这个文件:
加入:
Map ttf-gbkkai.map
Map ttf-gbksong.map
Map ttf-gbkhei.map
Map ttf-gbkli.map
Map ttf-gbkfs.map
Map ttf-gbkyou.map
Map t1-gbksong.map
Map t1-gbkhei.map
Map t1-gbkli.map
Map t1-gbkfs.map
Map t1-gbkyou.map
Map t1-gbksong.map
texhash
updmap
这时pdflatex test.tex
效果好很多,毕竟是type1(ttf)???

用dvips编译时不行,说什么header files有问题,看了一下t1-gbkkai.map,和用gbkfonts做出来的不一样,怀疑是哪里没做好,所以只能用gbkfonts生成的map,或者手动修改。
这样都不行,还是把gbkfonts做好的fonts和tex目录直接考过来完事。
note:好像有没有cid-x.map都行???研究一下。
这里每个字体对应着两个map,如果以后你用gbkfonts或着fontforge制作了新的字体,都要对应着把map的名字改成相同的格式,便于记忆和管理。 #map,fd等文件都可以手动写的,格式对了就可以。
测试dvipdfmx生成中文书签:
vi test.bookmark.tex
|
latex ; dvipdfmx # ok,done
安装ccmap:
复制ferretel-iso里的/mnt/iso/texmf-local/tex/latex下的ccmap到~/.texlive2007/texmf-var/tex/latex/目录下,修改权限,texhash,ok.
vi test.ccmap.tex
|
latex ; pdflatex #ok,done.
新加字体:
jinglei.ttf
安装beamer宏包:
下载:
https://sourceforge.net/projects/latex-beamer/
分别下载beamer,pgf,xcolor三个包,解压缩到某一个TDS下。
我这里放到了~/.texlive2007/texmf-var/tex/latex下面:
mv latex-beamer-3.07 /home/xujian/texmf/tex/latex/
mv pgf-1.01 /home/xujian/texmf/tex/latex/
mv xcolor /home/xujian/texmf/tex/latex/
texhash
安装revtex4宏包:
下载:
http://authors.aps.org/revtex4/
解压缩到
~/.texlive2007/texmf-var/tex/latex
texhash



