在Linux Mint或Ubuntu下轻松搭建TeX环境(基于TeX Live 2009)

写在前面

TeX Live 2009对中文的支持度较以往有了很大提升,在Linux Mint下配置这个TeX环境应该是像我这样Linux+TeX多重菜鸟的首选。TeX Live同样支持FreeBSD,以后playin BSD的时候也可以试着玩一下。这里仅简要记录我在Linux Mint下安装TeX Live 2009及配置中文环境的过程,技术含量不高,大部分都是根据网上已有资料的提示加上自己的实践得出,具体操作方法也一定不是最简洁的,敬请各位看官雅正。

(此文所述的安装配置方法大部分应亦适合Ubuntu 9.10)

1 配置安装环境

打开终端,输入:

sudo apt-get install perl-tk

(安装perl-tk,下文采用的的GUI安装方式需要此组件)

2 下载TeX Live网络安装向导

http://ftp.ctex.org/mirrors/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz

1.6MB左右,下载后解压至任意文件夹。

3 选择下载镜像

进入解压生成的文件夹,在空白处点击右键,Open in Terminal,在弹出的终端中输入:

sudo perl install-tl --gui --location http://oss.ustc.edu.cn/CTAN/systems/texlive/tlnet/

此处指定使用中科大的CTAN镜像下载TeX Live 2009安装所需的全部文件。
除此此外,还有很多CTAN镜像,请根据您的具体网络情况寻找最快的镜像进行下载。

4 安装TeX Live 2009

信息读取完毕后,出现Tex Live 2009的图形界面安装向导:

Screenshot-Tex-Live-Install

在这个界面可以根据自己的需要进行所有的配置。
当然,如果你和我一样是新手,并且没有特殊需求,可以直接点击Install,进行默认安装。如果你的硬盘空间并不宽裕,在这里可以去掉一些不需要的语言支持,以节约空间。

图为终端开始根据之前的配置下载所需的文件。可以看到需要下载1981个文件。

tex-live-installation-downloading

经过漫长与痛苦的等待,下载安装完成。“欢迎来到TeX Live的世界!”

tex-live-welcome

5 配置环境变量

此步骤非必须,但建议执行。
打开/etc/目录,在空白处右键,Open as root,在弹出的窗口中打开文件 bash.bashrc,在此文件的末尾添加:

PATH=/usr/local/texlive/2009/bin/i386-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2009/texmf/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2009/texmf/doc/info:$INFOPATH; export INFOPATH

在 /etc/manpath.config 文件的

# set up PATH to MANPATH mapping

这行下面的列表后增加一条:

MANPATH_MAP     /usr/local/texlive/2009/bin/i386-linux        /usr/local/texlive/2009/texmf/doc/man

在 /etc/environment 文件中添加:

/usr/local/texlive/2009/bin/i386-linux

修改后的文件大致应该如下所示:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/texlive/2009/bin/i386-linux"
LANGUAGE="en_US:en"
LANG="en_US.UTF-8"

注:若您使用x86_64版本的系统,只需把此步骤中出现的字符串'i386-linux'替换为'x86_64-linux',关于两种系统的区别,可以参考 [6]、[7],关于配置系统环境变量的详细讨论,参见 [4]、[5]。

注销并重新登录,使设置生效。

6 配置中文支持环境

这里有几种方案可以选择。(如大贤罗素所云:多姿多彩乃幸福的本源。)

我参考了 [4] 中给出的解决方案和 [9] 中提供的实现细节,由于之前的积累的tex模板不多,所以选用了 [4] 中提供的XeTeX高层方案,在Mint中的详细配置过程如下:

打开 /usr/local/texlive/2009/bin/i386-linux 目录。
在空白处右键,Open as root.
在弹出的窗口中右键,Open in terminal,在弹出的终端输入:

tlmgr install xecjk ctex

程序会自动下载xetex和ctex宏包并进行安装,速度也很快。输出大致如下:

Mint8 i386-linux # tlmgr install xecjk ctex
tlmgr: package repository http://oss.ustc.edu.cn/CTAN/systems/texlive/tlnet
[1/2, ??:??/??:??] install: ctex [347k]
[2/2, 00:08/00:13] install: xecjk [258k]
tlmgr: package log updated at /usr/local/texlive/2009/texmf-var/web2c/tlmgr.log
running mktexlsr ...
done running mktexlsr.

至此中文支持环境配置完成。下一步配置中文字体。

注:这里可能会出现要求更新tlmgr的要求,因为我在首次安装了Tex Live 2009很长时间以后才去配置中文支持,tlmgr版本比较老了。我们按照图示要求,输入 tlmgr update --self 进行更新,然后再运行 tlmgr install xecjk ctex 即可。

tlmgr-update

7 安装中文字体

找到以下四款Adobe公司开发的字体:Adobe Song Std, Adobe Heiti Std, Adobe Kaiti Std, Adobe FangsongStd,在/usr/share/fonts/下新建一个目录(需root权限),将上述字体复制进去(请在使用之前确认您具有使用以上字体的合适授权,必要时可请通过合理的渠道购买许可)。不妨假设这个目录叫做 /texfonts.

进入终端,执行:

cd /usr/share/fonts/texfonts/
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv

上面的命令生成了一些字体相关信息,最后刷新了字体缓存。至此,中文字体安装完毕。

由于我们使用的是在pdf输出时墨色更为均匀的Adobe中文字体,所以要注意在使用ctexart类前要加上 [adobefonts] 选项,参见下文中的例子。不得不说一下,默认的 [winfonts] 我尝试了N+个小时都没有配置成功,xelatex 在编译生成字体信息时总是报错,也许是和我没怎么读文档有关吧,估计需要手动进行mod才可以,有兴趣的同学可以尝试一下。

(本节特别感谢:Ai.Freedom同学)

8 Hello, World!

到此为止,Mint下的TeX Live中文环境配置完成,做下测试。

documentclass[adobefonts]{ctexart}
begin{document}
测试\
劳歌一曲解行舟,\
红叶青山水急流。\
日暮酒醒人已远,\
满天风雨下西楼。
end{document}

使用 xelatex 编译,直接生成了pdf。速度也很快,效果如图。

tex-live-hello-world-pdf

9 编译出来的pdf不能显示中文?

一个可能的原因是,Mint自带的pdf阅读工具evince不能显示中文,解决方法,在终端输入:

sudo apt-get install  poppler-data

10 关于编辑器

编辑器方面,仁者见仁,智者见智,可以在安装时选择下载安装XeTeX的作者Jonathan Kew开发的TeXWorks,还可以下载TexMaker一类的编辑器自行配置,我在这里就使用了TeXMaker.

编译安装TexWorks的方法:

sudo aptitude install build-essential subversion libpoppler-qt4-dev libhunspell-dev libdbus-1-dev
svn checkout http://texworks.googlecode.com/svn/trunk/ texworks-read-only
cd texworks-read-only
qmake-qt4
make

TeXMaker在Mint的Software Manager目录中有下载,有预览图和介绍。

下图是我自己TeXMaker的配置。

Configure-Texmaker

一些有用的链接:

[1] TeX Live - TeX Users Group

[2] Ubuntu9.10 Tex Live 2009 简单安装教程, dylan@USTC

[3] 在 Ubuntu 9.10 (9.04)下网络安装配置 Tex Live 2009 十步, jswxm@CTeXBBS

[4]TeX Live 2009 的 LaTeX 中文支持, Jjgod Jiang

[5] Linux操作系统下三种配置环境变量的方法

[6] Ubuntu Set User Profile Under Bash Shell

[7] 請問Linux i386跟x86_64版本?

[8] CPU Naming Schemes - x86 (386,486,586), AMD 64, IA64 & EM64T

[9] TeX Live 2008 安装 & 配置中文支持 (下), Ai.Freedom

写在后面

关于TeX Live,网上的各种版本的安装攻略和细节实在是太多了,多到横跨N个版本,多到几乎人人有写,当然我也不例外。TeX激发了大家的写作与探索热情,这是一件不可多得的幸事。但一个无法回避的事实是,大部分攻略都存在着语焉不详甚至众口不一的问题,文档也来源各异,不够统一,这可苦了我这样的小菜鸟,新手入门确实要confusing一阵子。尤其到了Unix平台下,这个问题就更加突出,毕竟win下还有CTEX、ChinaTeX这些TeX普及性质的项目。正如贝吉塔所言,人们Confuse的程度随着Information的增加先增后减。有如二次项系数小于0的二次函数图像。这该如何是好呢。

Jan 20, 2010
寒假临行前

在Linux Mint或Ubuntu下轻松搭建TeX环境(基于TeX Live 2009)》上有 13 条评论

  1. 也用过一段时间 TeX Live 2009,不过除了它庞大的身躯几乎没啥印象了。
    比较习惯 CTeX 环境下 直接用 ctex foo.tex 这种方式编译,好处是中文和英文混排时,中间的空格不会被吞掉(不然只能加 ~)。
    不知道 TeX Live 是不是有类似的解决方案 :wink:

  2. 没有用过ctex,不过linux下,emacs23(这个新版本中文支持好)+auctex+preview-latex-style+textlive+bibliography非常的强大快捷和方便,缺点就是emacs需要熟悉一段时间他的特殊键位绑定(其实这种绑定是科学的,因为不需要方向键,和离主键盘区域远的键位),但是熟悉之后你可以快速的写任何的程序,尤其如果你经常写大的R的程序的话,eamcs+ess可以极大的提高工作效率。

      • 我一直在用emacs。写英文和一般中文文档,很方便。
        但是,我现在遇到一个问题,比较难办:中文预览。

        如果是用ctexart作为文档类型,无法是用emacs+auctex中的preview功能。

        只能切换成article类型,外加cjk宏包。

  3. 你好!我按照你的说明,xelatex编译得到的pdf文件中文是乱码。安装poppler-data也无效。但是evince看其他的pdf都正常。。

  4. 搞定了,发现忘了执行install xecjk ctex
    非常感谢你的文章~~

    • 编译成功了还只是第一步, 重写已有模板是很麻烦的事情 .. 总之我觉得配置中文支持麻烦透了 .. 如果不做中文相关的配置应该会好多了. 而且这种模式很适合懒人, 配置好了不想升级的话估计扔在那几年不动都可以. :wink:

  5. 在输入“sudo tlmgr install xecjk ctex”的时候,提示“sudo: tlmgr: command not found”,该怎么解决,已经切换到了/usr/local/texlive/2009/bin/i386-linux,Path也设置好了。

    • Good question. 我原来是直接用了图形界面中的Open as root先取得权限-> Open In Teminal, 再执行 tlmgr install xecjk ctex, 避免了在终端中使用sudo命令.

      至于sudo不能的深层次原因,我猜可能是这个?
      http://blog.pcware.cn/it/linux/debian-sudo-command-not-found.html

      而文献texlive-zh-cn.pdf中还说到:
      如果返回的结果是 'command not found' 而非版本和版权信息,或者显示了旧版本的信息,很有可能是因为你没有把正确的bin子目录添加到PATH 中。
      不过在这里应该不是这个原因。 :)

  6. 问一下主人的TeXMaker的配置,您的图片中Latex项不全。我也用TeXMaker但是无法编译xetex,配置不对。

    • 哈哈,实在是对不住,这些天忙着些别的乱七八糟的事情,那天把评论审核通过了以后竟然就完全忘记回了 .. 结果今天又想起来 .. :mrgreen:

      LaTeX:
      "/usr/local/texlive/2009/bin/i386-linux/xelatex" -interaction=nonstopmode %.tex

      其实,我只是把前半部分,也就是XeLaTeX的路径选了一下 后面的参数部分是TeXMaker自己加上的 ..

      我在TeXMaker界面上直接run一下这个"LaTeX", 就能够直接生成PDF. 如果不成功,也可能是由于其他因素,比方说之前的配置有误或者TeX文档本身有错,可以适当关注一下输出的日志。

  7. 安装好了试着编制了一个文件,可是在生成时提示ctexart.cls not found?这是怎么回事?

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: