原文: http://basiccoder.com/latex-cjk-slackware.html
过几天要做presentation,想借这个机会把LaTeX好好学学,今天在解决中文问题的时候着实把我卡住了,广泛搜索了各方面的资料,一直搞了好几个小时才弄好,把过程总结一下。
首先下载CJK,我在CJK的官网上下载的cjk-4.8.2.tar.gz,解压之后把里面的texinput目录拷贝到/usr/share/texmf/tex/latex/CJK目录下,CJK这个目录默认是没有的,自己创建一个。
从/media/win/WINDOWS/Fonts目录下找到simsun.ttc,simfang.ttf, simhei.ttf,simkai.ttf这四个字体文件,把ttc改成ttf,然后把这四个文件拷贝到/usr/share/texmf/fonts/truetype/chinese目录下就可以了,chinese目录可能默认也没有,自己创建一个。
下载gdbfonts,记不清是在哪里下载的了,gbkfonts-linux-0.3.tar.bz2,里面有三个可执行文件appendconf,go,gbkfonts-glibc2.3,前两个是脚本文件。把gbkfonts-glibc2.3重命名为gbkfonts,并将这三个文件拷贝到/usr/local/bin里面(这样做纯粹是为了以用调用方便)。
进入/usr/share/texmf目录(也可以是一个自己创建的目录,生成的所有和CJK相关的文件都会保存在这个目录里面,不使用系统目录的目的是可以在将来重装系统的时候继续保留中文配置,我估计我也不太可能会重装系统了,也不想弄出各种目录,就直接用系统目录了),然后执行
1 | go fonts/truetype/chinese |
根据ttf字体来生成TeX字体,并生成各种各样的配置文件。
接着执行下面的命令来组织配置文件
1 | appendconf /usr/share/texmf |
生成字体之后会有几个map文件,这些map文件里面定义了字体名字和字体文件名之间的映射关系,为了让dvips这样的工具能知道使用哪个map文件,需要修改下面的配置文件
1 | vi /usr/share/texmf/dvips/config/config.ps |
找到o |lpr这一行注释掉并在后面加上 p +cjk.map这一行。
如果/usr/share/texmf/fonts/map/dvips目录下没有cjk.map这个文件,那么找到这个文件把它复制过来。
最后更新一下TeX字体数据库就可以了
1 | mktexlsr |
这个时候其实已经算成功了,结果输出的虽然是中文,可都是些乱七八糟的字,根本不是我想要的,我写个“中国”,它显示“涓球”,然后这个问题我郁闷了三个多小时,最后怀疑是vim的原因,以前在新建文件的时候都会先touch一个文件,然后再用vim打开编辑,突然想到touch出来的这个文件是用utf8编码的,而且vim的编码方式设置的也是utf8,而CJK的字符集是GBK,会不会和这个有关系,后来就改了一下vim的编码格式
1 | :set encoding=gb2312 |
OK,再编译就成功地看到中文了,哎,就这么点事我就从中午一直搞到晚上,郁闷啊。
===========================必不可少的实践==============================
我使用的是texlive-2013 和 CJK 4.8.3
大体过程差不多,只是有些目录位置不一样。
上文中的 /usr/share/texmf 对于我这里是 /usr/local/texlive/2013/texmf-dist
进入 /usr/local/texlive/2013/texmf-dist,执行 (如果没有chinese目录,可以自己建立)
go fonts/truetype/chinese然后
appendconf /usr/local/texlive/2013/texmf-dist
vi /usr/local/texlive/2013/texmf-dist/dvips/config.ps找到o |lpr这一行注释掉(我这里已经被注释了),并在后面加上 p +cjk.map这一行。
我使用find命令,发现cjk.map在这里
/usr/local/texlive/2013/texmf-dist/dvips/cjk.map
要把它拷贝到/usr/local/texlive/2013/texmf-dist/fonts/map/dvips/ , 于是执行:
cp /usr/local/texlive/2013/texmf-dist/dvips/cjk.map /usr/local/texlive/2013/texmf-dist/fonts/map/dvips/
最后:
mktexlsr
建立测试文件: test.tex
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GBK}{hei}
哈哈,你好CJK!
\end{CJK*}
\end{document}
我用vim编辑之后,编码是utf-8。
转换编码用iconv命令:
iconv -f utf8 -t gbk test.tex -o test2.tex
生成pdf
pdflatex test2.tex
看看test2.pdf是不是有中文啦。哈哈哈
http://www.ctex.org/documents/shredder/programs.html
Tex Live iso下载地址
http://mirror.hust.edu.cn/CTAN/systems/texlive/Images/
==============================二次总结==================================
texlive在安装的时候可以选择安装那些软件包,其中ctex包可以很好的支持中文。(我是用 ./install-tl -gui 图形界面全部安装的。关于perl-Tk的安装见这里)
完全安装需要大于3G的空间。。。安装之后要测试安装是否成功,见中文帮助的3.5节。
我在测试第8个xetex的时候,收到 “Invalid fontname ‘Latin Modern Roman/ICU’…” 这样的错误信息,就说明需要配置
系统才能找到 TEX Live 自带的字体。参见第 3.4.4 节。
要在整个系统中使用 TEX Live 的字体 (假定你有足够的权限),请依照下面的步骤来做:
1. 将 texlive-fontconfig.conf 文件复制到 /etc/fonts/conf.d/09-texlive.conf。
2. 运行 fc-cache -fsv。
如果你没有足够的权限执行上述操作,或者只需要把 TEX Live 字体提供给你自己,可以这么做:
1. 将 texlive-fontconfig.conf 文件复制到 ~/.fonts.conf,其中 ~ 是你的主目录。
2. 运行 fc-cache -fv。
你可以运行 fc-list 来查看系统字体的名称。命令 fc-list : family style file spacing 可
以列出一些有趣的信息。
根据上面的昨晚,再次测试第8个例子,就成功了。可以用 latex做中文简历啦。嘎嘎。
ps:“上面的必不可少的总结”可以不看了。照着二次总结的做就好了。
参考: http://www.360doc.com/content/11/1112/15/532901_163797486.shtml#
http://huxuan.org/2012/07/14/chinese-font-problem-of-ctex-in-texlive-under-linux/
还有关于字体的安装。其实最简单的办法是直接拷贝windows的字体(在C:\windows\fonts)到linux下,然后双击安装。。。。。Tahoma就是这么成功的。。。。汗。。。。