史上最干净的Tex 中文环境安装方法

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40

史上最干净的Tex 中文环境安装方法

#1

帖子 syrano » 2009-01-28 19:26

——既不需要安装其他版本tex环境如XeTeX,也不需要用到受限字体如windows下的宋体;所以干净。

参考http://linuxdesktop.cn/2008/02/26/confi ... buntu.html写成

一、安装TexLive+Latex+CJK:

打开终端,执行下述命令安装TexLive和常用的一些Latex宏包(可以根据自己的需要增改):

代码: 全选

sudo apt-get install texlive texlive-math-extra texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-pictures texlive-science texlive-bibtex-extra texlive-common latex-beamer
安装完后,就可以安装CJK的相关软件包了,如果只需要获得中文支持,那么执行:

代码: 全选

sudo apt-get install latex-cjk-chinese ttf-arphic-* hbf-*
二、生成中文字体包

方法一(自己编译字体,否则用我编译好的文泉驿正黑和文鼎宋体见方法二):

安装一个软件──fontforge用于生成字体:

代码: 全选

sudo apt-get install fontforge
生成字体前,请自己准备你需要生成的字体文件
主要在/usr/share/fonts/truetype/arphic/和/usr/share/fonts/truetype/wqy/里
gbsn00lp.ttf(宋)gkai00mp.ttf(楷)ukai.ttc(楷)uming.ttc(明体)wqy-zenhei.ttf(正黑)等,
这里以gbsn00lp.ttf和wqy-zenhei.ttf为例
准备好后下载下面这个包,解压到一个地方,如自己的主目录~/font:
http://ftp.ubuntu.org.cn/home/syrano/tex/font.tar.bz2
先配置宋体
把gbsn00lp.ttf也复制到~/font里去,执行下面的命令生成字体地图:

代码: 全选

cd ~/font
time fontforge -script subfonts.pe gbsn00lp.ttf song Unicode.sfd
加time是为了计算时间,因为比较耗时,在我的amd3000+(1.6GHz)生成song花了2个小时,生成hei花了50分钟,仅供参考。
字体生成好了,再建立一个描述文件吧。
在~/font下,建立一个makemap文件,内容如下:

代码: 全选

for i in *.tfm
do
cat >> song.map << EOF
${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
EOF
done
然后在终端下执行:chmod +x makemap让文件加上执行权限,最后执行:

代码: 全选

./makemap
再建立一个一个c70song.fd文件:

代码: 全选

% This is c70song.fd for CJK package.
% created by Edward G.J. Lee
% modify by Yue Wang
\ProvidesFile{c70song.fd}
\DeclareFontFamily{C70}{song}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{song}{m}{n}{<-> CJK * song}{}
\DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * song}{\CJKbold}
\endinput
好的,相关文件都已生成,开始复制字体使其生效。
执行下面的命令,在你的主目录下生成隐藏的个人Tex配置,如果你哪天不需要了,也可以删除:

代码: 全选

mkdir -p ~/.texmf-var/fonts/map/dvips/CJK
mkdir -p ~/.texmf-var/fonts/tfm/CJK/song
mkdir -p ~/.texmf-var/fonts/type1/CJK/song
mkdir -p ~/.texmf-var/tex/latex/CJK/UTF8
建立完这层层叠叠的目录以后,就把刚刚生成的字体复制进去吧。

代码: 全选

mv ~/font/song.map ~/.texmf-var/fonts/map/dvips/CJK
mv ~/font/*.tfm ~/.texmf-var/fonts/tfm/CJK/song
mv ~/font/*.pfb ~/.texmf-var/fonts/type1/CJK/song
mv ~/font/c70song.fd ~/.texmf-var/tex/latex/CJK/UTF8
复制完后就执行命令刷新缓存,让它生效:

代码: 全选

sudo texhash
updmap --enable Map song.map
接下来配置黑体
然后把wqy-zenhei.ttf也复制到~/font里去,执行下面的命令生成字体地图:

代码: 全选

cd ~/font
time fontforge -script subfonts.pe wqy-zenhei.ttf hei Unicode.sfd
字体生成好了,再建立一个描述文件吧。
在~/font下,建立一个makemap文件,内容如下:

代码: 全选

for i in *.tfm
do
cat >> hei.map << EOF
${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
EOF
done
然后在终端下执行:chmod +x makemap让文件加上执行权限,最后执行:

代码: 全选

./makemap
再建立一个一个c70hei.fd文件:

代码: 全选

% This is c70hei.fd for CJK package.
% created by Edward G.J. Lee
% modify by Yue Wang
\ProvidesFile{c70hei.fd}
\DeclareFontFamily{C70}{hei}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{hei}{m}{n}{<-> CJK * hei}{}
\DeclareFontShape{C70}{hei}{bx}{n}{<-> CJKb * hei}{\CJKbold}
\endinput
好的,相关文件都已生成,开始复制字体使其生效。
执行下面的命令,在你的主目录下生成隐藏的个人Tex配置

代码: 全选

mkdir -p ~/.texmf-var/fonts/tfm/CJK/hei
mkdir -p ~/.texmf-var/fonts/type1/CJK/hei
建立完这层层叠叠的目录以后,就把刚刚生成的字体复制进去吧。

代码: 全选

cp ~/font/hei.map ~/.texmf-var/fonts/map/dvips/CJK
cp ~/font/*.tfm ~/.texmf-var/fonts/tfm/CJK/hei
cp ~/font/*.pfb ~/.texmf-var/fonts/type1/CJK/hei
cp ~/font/c70hei.fd ~/.texmf-var/tex/latex/CJK/UTF8
复制完后就执行命令刷新缓存,让它生效:

代码: 全选

sudo texhash
updmap --enable Map hei.map
方法二:
下载下面两个文件到一个地方,如自己的主目录。
http://ftp.ubuntu.org.cn/home/syrano/te ... ng.tar.bz2
http://ftp.ubuntu.org.cn/home/syrano/tex/wqyhei.tar.bz2
解压

代码: 全选

cd ~/
tar xf wqyhei.tar.bz2
tar xf arphicsong.tar.bz2
执行下面的命令,在你的主目录下生成隐藏的个人Tex配置,如果你哪天不需要了,也可以删除:

代码: 全选

mkdir -p ~/.texmf-var/fonts/map/dvips/CJK
mkdir -p ~/.texmf-var/fonts/tfm/CJK/hei
mkdir -p ~/.texmf-var/fonts/type1/CJK/hei
mkdir -p ~/.texmf-var/fonts/tfm/CJK/song
mkdir -p ~/.texmf-var/fonts/type1/CJK/song
mkdir -p ~/.texmf-var/tex/latex/CJK/UTF8
建立完这层层叠叠的目录以后,就把刚刚生成的字体复制进去吧。

代码: 全选

cp ~/song/song.map ~/.texmf-var/fonts/map/dvips/CJK
cp ~/song/*.tfm ~/.texmf-var/fonts/tfm/CJK/song
cp ~/song/*.pfb ~/.texmf-var/fonts/type1/CJK/song
cp ~/song/c70song.fd ~/.texmf-var/tex/latex/CJK/UTF8
cp ~/hei/hei.map ~/.texmf-var/fonts/map/dvips/CJK
cp ~/hei/*.tfm ~/.texmf-var/fonts/tfm/CJK/hei
cp ~/hei/*.pfb ~/.texmf-var/fonts/type1/CJK/hei
cp ~/hei/c70hei.fd ~/.texmf-var/tex/latex/CJK/UTF8
复制完后就执行命令刷新缓存,让它生效:

代码: 全选

sudo texhash
updmap --enable Map song.map
sudo texhash
updmap --enable Map hei.map
假如一切顺序的话, 就测试一下我们安装的字体是否能用吧。
在任意位置编辑这个文件,然后保存为test.tex(支持UTF-8格式):

代码: 全选

\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{song}
你好!这里是Ubuntu下的TexLive+CJK环境!\\
\end{CJK}
\begin{CJK}{UTF8}{hei}
你好!这里是Ubuntu下的TexLive+CJK环境!
\end{CJK}
\end{document}
执行生成pdf文档:

代码: 全选

latex test.tex
dvipdf test.dvi
screenshot1.png
用同样的方法搞定ming和kai等常用中文标准字体,开始享受你的Tex吧!

参考资料是:
在Ubuntu下简易配置Tex UTF-8中文环境
E=m c^2
头像
photor
论坛版主
帖子: 11004
注册时间: 2008-04-26 12:41

Re: 史上最干净的Tex 中文环境安装方法

#3

帖子 photor » 2009-01-28 22:16

按照楼主的办法基本成功了。不过,必须要用utf8吗?有没有可以直接用\begin{CJK}{GBK}{song}的办法?
上次由 photor 在 2009-02-01 13:15,总共编辑 1 次。
ti8er
帖子: 497
注册时间: 2006-10-18 8:48

Re: 史上最干净的Tex 中文环境安装方法

#4

帖子 ti8er » 2009-01-29 13:19

Linux当然要用UTF8,别用什么GBK.不然其他人的中文环境要是没配置好就看不了你的PDF。
头像
photor
论坛版主
帖子: 11004
注册时间: 2008-04-26 12:41

Re: 史上最干净的Tex 中文环境安装方法

#5

帖子 photor » 2009-01-29 15:32

问题在于我是用双系统,以前在windows下写的那些tex文件都是\begin{CJK}{GBK}{song},不能让我一个个改吧?
再说,即便是一个个改成utf8了,回windows以后还能正常编译吗?
上次由 photor 在 2009-02-01 13:16,总共编辑 1 次。
头像
ws_105
帖子: 313
注册时间: 2008-10-24 8:02

Re: 史上最干净的Tex 中文环境安装方法

#6

帖子 ws_105 » 2009-01-30 14:24

这玩意儿也够麻烦了,直接使用 ConTEXt 就可以啊,可以直接使用 otf ttf 字体文件,挺方便的啊
Ubuntu 8.04 @ Intel Pentium D 925 + Intel 945G Chipset + DDR2 1.0G + SATA 160G
http://hi.baidu.com/ws_105
xeoc
帖子: 1994
注册时间: 2007-05-06 10:12

Re: 史上最干净的Tex 中文环境安装方法

#7

帖子 xeoc » 2009-01-30 15:58

我感觉应该用上xetex,然后不用xeCJK什么的断字,把Dejavu Mono的英文和文泉驿正黑的其它合并成一个新的完美的字体,用就好了
头像
eagle5678
帖子: 1900
注册时间: 2006-07-08 14:07

Re: 史上最干净的Tex 中文环境安装方法

#8

帖子 eagle5678 » 2009-01-30 20:21

生成字体太麻烦了
头像
ws_105
帖子: 313
注册时间: 2008-10-24 8:02

Re: 史上最干净的Tex 中文环境安装方法

#9

帖子 ws_105 » 2009-02-04 10:36

eagle5678 写了:生成字体太麻烦了
那就使用 ConTEXt 啊,直接使用 Linux 下的ttf字体就可以,或者不介意盗版的话,使用 windows 下的字体或者 Adobe 的四款字体
顺便说一句, Adobe 的四款字体确实非常漂亮!
Ubuntu 8.04 @ Intel Pentium D 925 + Intel 945G Chipset + DDR2 1.0G + SATA 160G
http://hi.baidu.com/ws_105
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
联系:

Re: 史上最干净的Tex 中文环境安装方法

#10

帖子 lerosua » 2009-02-04 10:53

收藏学习之
spadgeletov
帖子: 92
注册时间: 2008-04-01 0:10

Re: 史上最干净的Tex 中文环境安装方法

#11

帖子 spadgeletov » 2009-02-27 0:57

貌似生成字体的时间非常久呢 :em06
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

Re: 史上最干净的Tex 中文环境安装方法

#12

帖子 zhuqin_83 » 2009-02-27 2:27

那是因为ubuntu还在texlive2007,利用本地中文字体xetex,luatex那个不比这个简单。
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
sunzhaoyu2000
帖子: 700
注册时间: 2006-10-18 15:48

Re: 史上最干净的Tex 中文环境安装方法

#13

帖子 sunzhaoyu2000 » 2009-02-27 9:34

我还是我的xetex + lyx吧
phomeray
帖子: 524
注册时间: 2006-05-30 20:48

Re: 史上最干净的Tex 中文环境安装方法

#14

帖子 phomeray » 2009-02-27 10:50

感觉对新手来说还是很复杂
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

Re: 史上最干净的Tex 中文环境安装方法

#15

帖子 Jarson » 2009-02-27 11:35

phomeray 写了:感觉对新手来说还是很复杂
这东东还不会用呢 :em06
回复