星期四, 十二月 04, 2008

Configure CJK on Fedora 10

Check your texlive installation list:

$ rpm -qa |grep texlive
texlive-utils-2007-35.fc10.x86_64
texlive-texmf-errata-2007-4.fc9.noarch
texlive-texmf-latex-2007-26.fc10.noarch
texlive-texmf-errata-afm-2007-4.fc9.noarch
texlive-texmf-2007-26.fc10.noarch
texlive-texmf-fonts-2007-26.fc10.noarch
texlive-2007-35.fc10.x86_64
texlive-latex-2007-35.fc10.x86_64
texlive-afm-2007-35.fc10.x86_64
texlive-texmf-errata-dvips-2007-4.fc9.noarch
texlive-texmf-errata-fonts-2007-4.fc9.noarch
texlive-dvips-2007-35.fc10.x86_64
texlive-texmf-dvips-2007-26.fc10.noarch
texlive-texmf-east-asian-2007-26.fc10.noarch
texlive-texmf-errata-latex-2007-4.fc9.noarch
texlive-texmf-afm-2007-26.fc10.noarch

Typically, if you installed default texlive:

# yum install texlive-afm texlive-texmf-afm fontforge -y

# cd /usr/share/texmf/fonts/truetype/

# wget http://cjk.ffii.org/cjk-4.8.1.tar.gz

# wget http://cjk.ffii.org/cjk-4.8.1-doc.tar.gz

# tar zxvf cjk-4.8.1.tar.gz

# tar zxvf cjk-4.8.1-doc.tar.gz

# mv cjk-4.8.1 /usr/share/texmf/tex/latex/cjk

# rm *gz

# cp [from somewhere] simfang.ttf [for example] .

# wget http://delloye.free.fr/Unicode.sfd

# cp /usr/share/texmf/tex/latex/cjk/utils/subfonts/subfonts.pe .

# time fontforge -script subfonts.pe simfang.ttf simfang Unicode.sfd

Create the following two shell script files:

mkpsmap:
for i in *.tfm
do
cat >> simfangps.map <<EOF
${i%.tfm} ${i%.tfm} <${i%.tfm}.pfb
EOF
done

mkmap:
for i in *.enc
do
cat >>simfang.map <<EOF
${i%.enc} <simfang.ttf <$i
EOF
done

# chmod +x mkmap mkpsmap

# ./mkmap; ./mkpsmap

# mkdir -p /usr/share/texmf/fonts/{type1,afm,tfm,enc}/winfonts/simfang

# mkdir -p /usr/share/texmf/fonts/map/winfonts /usr/share/texmf/fonts/map/dvips/winfonts /usr/share/texmf/tex/latex/cjk/utf8/

# mv *.pfb /usr/share/texmf/fonts/type1/winfonts/simfang

# mv *.afm /usr/share/texmf/fonts/afm/winfonts/simfang

# mv *.tfm /usr/share/texmf/fonts/tfm/winfonts/simfang

# mv *.enc /usr/share/texmf/fonts/enc/winfonts/simfang

# mv simfangps.map /usr/share/texmf/fonts/map/dvips/winfonts

# mv simfang.map /usr/share/texmf/fonts/map/winfonts

# echo simfang@Unicode@ Identity-H :0:simfang.ttf >>/usr/share/texmf/fonts/map/dvipdfm/cid-x.map

# echo Map simfang.map >>/usr/share/texmf/web2c/updmap.cfg

# echo f simfang.map >>/usr/share/texmf/dvipdfm/config/config

# echo p +simfangps.map >>/usr/share/texmf/dvips/config/config.ps

In /usr/share/texmf/tex/latex/cjk/utf8/ create file c70simfang.fd with content:
% This is c70simfang.fd for CJK package.
% created by Edward G.J. Lee
% modify by Yue Wang & Xijiang
\ProvidesFile{c70simfang.fd}
\DeclareFontFamily{C70}{simfang}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{simfang}{m}{n}{<-> CJK * simfang}{}
\DeclareFontShape{C70}{simfang}{bx}{n}{<-> CJKb * simfang}{\CJKbold}
\endinput

# mktexlsr

# exit

$ updmap

Now let's enjoy:

$ mkdir /tmp/test

$ cd /tmp/test

Create file test.tex:

\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{simfang}
嗨,有谁愿意把这一大段命令写成 shell/perl script 么?
\end{CJK}
\end{document}


$ pdflatex test

12 条评论:

Unknown 说...

您好,我把您的帖子转载到我的博客上了,一晚上都在找这个配置CJK的,非常感谢。要是您觉得不合适,我把转载的给删掉。

Unknown 说...

请问一下,字体文件拷贝到/usr/share/texmf/fonts/truetype/编译之后,可以删掉吗

xijiang 说...

那些字体仍然需要,不能删除。

xijiang 说...

另转载使用最后版本的script,只要说明出处,尽管转载。

xijiang 说...

另外其中的usepackage{CJK}最好改成{CJKutf8},否则pdf文件中的中文不能拷贝。

核桃 说...

弄了一晚上,最后没有搞定,郁闷!@

核桃 说...

我用simsun做的,我把你所有命令中的simfang改成了simsun,simfang.ttf改成了simsun.ttc.编译能通过,不过我看到有一个
Waring:pdfTeX warning: pdflatex (file simsun.ttc): cannot open Type 1 font file for reading.

这是怎么回事啊

核桃 说...

刚才我又试了一下,如果用latex编译成功后,再用dvipdf把dvi文件转成pdf就能正常显示了,但是直接用pdflatex生成的pdf里汉字无法显示,是空白。
烦扰你了,谢谢!

xijiang 说...

我的这个东西似乎对ttc文件不大适用,试试用ttf文件,并且用我最近贴出来的script。

核桃 说...

谢谢你!我试试。

匿名 说...

您好,我遇到的问题和核桃类似
我完全按照你的帖子的步骤装simfang
用的是simfang.ttf
用latex编译成功后,再用dvipdf把dvi文件转成pdf能正常显示
但是直接用pdflatex就报错!
!pdfTeX error: pdflatex (file simfang.ttf): cannot open TrueType font file for reading

是要将tty文件复制到哪里吗?
还是要怎么做让pdflatex命令找到字体……
写啦

xijiang 说...

请参阅
http://xijiang.blogspot.com/2009/01/fedora-10-cjk-configuration.html
这是最后的版本,我已经在很多机器上运行了,应该没有什么问题。
如果能够看懂那些script最好,以防万一你要分次添加字体。最好一次把要加的字体加全。