LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1810|回复: 21

Portage 中的 TeX Live 2010 的安装与中文支持指南

[复制链接]
发表于 2011-4-28 09:37:22 | 显示全部楼层 |阅读模式
本文只面向那些希望使用对中文排版以及中文字体支持更为友好的 XeTeX/XeLaTeX 的 Gentoo 用户,并且是在 /etc/make.conf 文件中进行类似以下设定的 Gentoo 用户:
  1. ACCEPT_KEYWORDS="~x86"
复制代码

另外,本文主要是根据一些回忆撰写的(因为我是 ConTeXt Minimals 控),其中可能会有不正确的地方,在下面我们可以再做讨论。

1. 安装系统包
  1. $ echo "app-text/texlive-core xetex cjk" | sudo tee -a /etc/portage/package.use
  2. $ sudo emerge -avt texlive-xetex texlive-latexrecommended cjk-latex texlive-langcjk
复制代码

其中 texlive-langcjk 包含了 CTeXKit 包,见:http://code.google.com/p/ctex-kit/wiki/OurPackageAtCTAN


2. 测试

建立测试文件 test.tex:
  1. \documentclass{ctexart}
  2. \begin{document}
  3. 你好 CTeX 文档类
  4. \end{document}
复制代码

然后使用 xelatex 命令编译:
  1. $ xelatex test
复制代码

正常情况下,编译会出错,通常是提示说找不到字体 SimSun 之类。这是因为 CTeXKit 包的开发者们考虑到 MS Windows 世界的小白太多,所以为他们提供了默认的字体配置,而 Linux 用户天生就是穷折腾的命,杯具啊@#¥%……都 21 世纪了,这样搞种族歧视的,while (1) {printf ("有木有!!!"};}

3. 字体配置

这里所说的字体配置是指 TTF/OTF 格式的字体配置,主要解决主要如何让 fontconfig 程序找到你的字体的问题。这个问题其实跟 TeX Live 配置无关,跟 X Window 上层的桌面环境有关。这是因为 XeTeX 的字体渲染部分是基于 freetype 库实现的,它自然要用 fontconfig 进行字体配置。也就是说,只要你的 fc-list 命令所能查到的字体,理论上皆可被 XeTeX 所用。这方面的知识,MS Windows 用户所知远不及 Linux 桌面用户

在进行字体配置之前,请先检查一下系统中所安装的中文字体有哪些,运行命令:
  1. fc-list :lang=zh
复制代码

默认情况下,CTeXKit 包需要宋体 (SimSun)、仿宋 (simfang)、黑体 (simhei)、楷体 (simkai)、隶书(LiSu)、幼圆 (YouYuan) 这六套 Windows 字体的支持。详见:
  1. $ nano `kpsewhich ctex-xecjk-winfonts.def`
复制代码

如果你想使用这些字体,可以从 MS Windows 系统中获取它们,然后扔到 fontconfig 能查到的目录(详见 /etc/fonts/fonts.conf 文件中的字体路径定义)中,例如 /usr/share/fonts/non-free 目录。

然后再编译上一节中的 test.tex,现在应该可以编译通过。

4. 更复杂的测试
  1. $ cp /usr/local/share/texmf/tex/latex/ctex/test/test-xetex.tex /tmp
  2. $ cd /tmp
  3. $ xelatex test-xetex
复制代码

可能你还会遭遇编译出错,这次可能是因为你没有安装 Adobe 字体的缘故。你需要安装 Adobe Song Std(宋体)、Adobe Heiti Std(黑体)、Adobe Kaiti Std(楷体)、Adobe FangsongStd(仿宋)。这四款字体,前两款是免费字体,你可以无偿使用,后两款是非免费字体,自己想办法获取吧。将这四款字体扔到 /usr/share/fonts/adobe 目录下,然后编译 test-xetex.tex 文件,这次可能就成功了。

5. 如果你是一个志士不饮盗泉之水的人

除了对你深表敬意之外,还要告诉你自己配置字体的方法,请参考 http://code.google.com/p/ctex-kit/wiki/CTeXPackage 页中的“可能改变兼容性的配置”一节。
发表于 2011-4-28 10:28:09 | 显示全部楼层
好帖子,多谢斑竹了~
等偶装好gentoo就去试试看,
回复 支持 反对

使用道具 举报

发表于 2011-4-28 10:42:29 | 显示全部楼层
专家出手,厉害呀!

我昨天刚写了一点心得本想抛砖的,结果玉自己出来了

写了个pdf没有写完。

想半天,还是把砖头扔出来,自己做个备份,同时激励自己把这个文档写完。

请参考:
http://www.linuxsir.cn/bbs/thread380923.html
回复 支持 反对

使用道具 举报

发表于 2011-4-28 11:16:59 | 显示全部楼层
Post by LiYanrui;2136804


2. 安装 CTeXKit

主要是安装 CTeXKit 中的 ctex 与 zhmetrics 包,其他包在安装系统包的过程中被依赖安装。完整的 CTeXKit 见:http://code.google.com/p/ctex-kit/wiki/OurPackageAtCTAN

ctex 包的下载地址:http://tug.ctan.org/tex-archive/language/chinese/ctex
zhmetrics 包的下载地址:http://tug.ctan.org/tex-archive/fonts/metrics/zhmetrics

将下载的包解开后,扔到 /usr/local/share/texmf/tex/latex 目录,如果没有该目录,可手动建立,然后运行更新 TeX Live 目录树的命令:
  1. $ sudo mktexlsr
复制代码

这是我的world中的texlive:

app-text/dvipdfm
app-text/dvipdfmx
app-text/xdvik
dev-tex/cjk-latex
dev-texlive/texlive-basic
dev-texlive/texlive-langcjk
dev-texlive/texlive-langenglish
dev-texlive/texlive-metapost
dev-texlive/texlive-xetex

感觉你的第二步可以略去,理由如下:
$ find /usr/share/ -name 'ctex'
/usr/share/texmf-dist/tex/latex/ctex
$ find /usr/share/ -name 'zhmetrics'
/usr/share/texmf-dist/fonts/tfm/zhmetrics
/usr/share/texmf-dist/tex/latex/zhmetrics
/usr/share/texmf-dist/tex/generic/zhmetrics

其次,最原始的cjk+latex模式没有被提及,特别是关于ttf2pk的map路径问题,这个感觉是gentoo中texlive的维护组需要修改的部分。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-4-28 11:36:41 | 显示全部楼层
嗯,可能是我没装那个 texlive-langcjk 包的缘故。下午我测试一下看看。

我觉得原始的 cjk + latex 可以放弃了,即便是早期的文档,只需要把字体配置部分修改一下应该也很容易编译通过。另外 http://code.google.com/p/ctex-kit/wiki/CTeXPackage 中也讲述了 pdftex + cjk 的配置。
回复 支持 反对

使用道具 举报

发表于 2011-4-28 11:49:53 | 显示全部楼层
Post by LiYanrui;2136828
嗯,可能是我没装那个 texlive-langcjk 包的缘故。下午我测试一下看看。

我觉得原始的 cjk + latex 可以放弃了,即便是早期的文档,只需要把字体配置部分修改一下应该也很容易编译通过。另外 http://code.google.com/p/ctex-kit/wiki/CTeXPackage 中也讲述了 pdftex + cjk 的配置。


其实我倒觉得用dvi没什么不好,浏览速度快,没必要都改成xelatex,特别是在evince还没有支持反向搜索功能之前。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-4-28 12:39:54 | 显示全部楼层
Post by easior lars;2136832
其实我倒觉得用dvi没什么不好,浏览速度快,没必要都改成xelatex,特别是在evince还没有支持反向搜索功能之前。

既然如此,那也没啥必要用 tl 2010 了阿,2008 就可以。

另外,evince 配合 gedit 的一个插件就可以使用 synctex,何况 texworks 可以直接支持 synctex。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-4-28 12:49:28 | 显示全部楼层
刚才确认了一下, texlive-langcjk 中的确包含着 ctex、zhmetrics 等包。现在修订了首帖。
回复 支持 反对

使用道具 举报

发表于 2011-4-28 12:59:50 | 显示全部楼层
Post by LiYanrui;2136844
既然如此,那也没啥必要用 tl 2010 了阿,2008 就可以。

另外,evince 配合 gedit 的一个插件就可以使用 synctex,何况 texworks 可以直接支持 synctex。

我比较钟爱emacs,可惜还没有哪个pdf viewer跟他配合的很好?当然,我也不能太落伍,要紧跟时代的脚步,所以有新版本是一定要用的。

另外,你是不是在字体配置部分少说了texmf.cnf的OSFONTDIR的设置?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-4-28 13:00:42 | 显示全部楼层
Post by easior lars;2136846
我比较钟爱emacs,可惜还没有哪个pdf viewer跟他配合的很好?

另外,你是不是在字体配置部分少说了texmf.cn的OSFONTDIR的设置?

首帖一开始就说了,只面向 xetex 用户。xetex 是不需要 OSFONTDIR 的,只有 pdftex 之类的需要。另外,在首帖的步骤 3 中也略讲了 xetex 是如何获得字体路径的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表