Ubuntu 下安装 Texlive 并设置 CTeX 中文套装
1 安装 texlive2013
1.1 下载 texlive2013
下载地址:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/texlive2013-20130530.iso
1.2 挂载 iso并安装texlive2013
将下载的 texlive2013-20130530.iso 挂载到/mnt 目录下并运行 install-tl进行安装
1 sudo mount -t -iso9660 -o loop texlive2013-20130530.iso /mnt 2 cd /mnt/ 3 sudo ./install-tl
出现选项之后,输入 I 直接安装即可,几分钟即可安装完毕。安装完成之后,将 texlive2013-20130530.iso 卸载。
1 cd / 2 sudo umount /mnt/
1.3 修改环境变量
texlive 默认的安装目录是/usr/local/texlive/2013/bin/i386-linux/,为了让 shell 能够自动找到 tex 的 bin 文件,我们需要修改环境变量 PATH。
如果我们希望系统也能够自动找到 texlive 的 man 或 info 文档,我们一并修改环境变量 MANPATH 和 INFOPATH。打开 /.bashrc,在其中添加下面的内容。
PATH=/usr/local/texlive/2013/bin/i386-linux:$PATH; export PATH MANPATH=/usr/local/texlive/2013/texmf-dist/doc/man:$MANPATH; export MANPATH INFOPATH=/usr/local/texlive/2013/texmf-dist/doc/info:$INFOPATH; export INFOPATH
1.4 测试安装是否成功
(1)首先确认我们安装的 tex 版本
lienhua34:text$ tex --version TeX 3.1415926 (TeX Live 2013) kpathsea version 6.1.1 Copyright 2013 D.E. Knuth.
(2)编写一个简单的 tex 文件,然后编译它
新建一个 test.tex 文件,然后输入下面内容
1 \documentclass{article} 2 \begin{document} 3 Hello \LaTeX! 4 \end{document}
然后运行下面命令即可生成 test.pdf。
1 lienhua34:text$ xelatex test.tex
双击打开 test.pdf,看到如下内容
ok,texlive正常工作。
(3)测试 ctex 套装
要 使 我 们 的 texlive 支 持 中 文, 我 们 使 用 ctex 套 装。 关 于 ctex的 介 绍 见 http://www.ctex.org/HomePage。texlive 安 装 包 默 认 携带 了 ctex 宏 包,ctex 宏 包 的 目 录 为/usr/local/texlive/2013/texmf-dist/tex/latex/ctex。我们新建一个 ctex.tex 文件,输入下面的内容
1 \documentclass{ctexart} 2 \begin{document} 3 您好,\LaTeX! 4 \end{document}
保存,然后运行下面命令
1 lienhua34:text$ xelatex ctex.tex
编译失败,xelatex 命令报如下错误
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! fontspec error: "font-not-found" ! ! The font "SimSun" cannot be found. ! ! See the fontspec documentation for further information. ! ! For immediate help type H <return>. !............................................... l.5 {SimSun} ?
这 是 因 为 ctex 宏 包 默 认 使 用 的 是 windows 系 统 的 字 体, 而 我 的ubuntu 下 没 有 windows 系 统 的 字 体, 所 以 这 里 报 了 找 不 到 宋 体(SimSun)的错误。那么我们就需要进行字体配置,这是下一节要讲的事。
现在可以确认我们的 texlive 已经安装成功,只是还没有支持中文字符而已。
2 配置 ctex 中文套装
ctex 宏包提供了三个字体选项:nofonts、adobefonts 和 winfonts,默认使用的是 winfonts。如果在 tex 源文件中没有使用其他选项修改字体配置,则需要操作系统中安装有中文 Windows 操作系统自带的四种 TrueType 字体:宋体(simsun)、黑体(simhei)、仿宋体(simfang)、楷体(simkai)。
如果使用 adobefonts 选项,则需要操作系统中安装有 Adobe 公司的四款 OpenType 字体:Adobe 宋体、Adobe 黑体、Adobe 仿宋、Adobe 楷体。
此处我们打算使用 nofonts 选项,然后通过 CJK 中文方案将 ubuntu自带的中文字体设置成中文的默认字体。
2.1 使用 nofonts 选项设置字体
我们先通过命令 fc-list :lang-zh 查看 ubuntu 系统自带的中文字体
lienhua34:text$ fc-list :lang-zh | sort AR PL UKai CN:style=Book AR PL UKai HK:style=Book AR PL UKai TW MBE:style=Book AR PL UKai TW:style=Book AR PL UMing CN:style=Light AR PL UMing HK:style=Light AR PL UMing TW MBE:style=Light AR PL UMing TW:style=Light ... 文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular 文泉驿等宽正黑,文泉驛等寬正黑,WenQuanYi Zen Hei Mono:style=Regular 文泉驿点阵正黑,文泉驛點陣正黑,WenQuanYi Zen Hei Sharp:style=Regular 文泉驿微米黑,文泉驛微米黑,WenQuanYi Micro Hei:style=Regular 文泉驿正黑,文泉驛正黑,WenQuanYi Zen Hei:style=Regular
我们打开之前的 ctex.tex 文件,然后输入以下内容
1 \documentclass[nofonts]{ctexart} 2 \setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体 3 \setCJKsansfont{WenQuanYi Zen Hei} %设置文泉驿正黑字体作为中文无衬线字体 4 \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置文泉驿等宽正黑字体作为中文打字机字体 5 \begin{document} 6 您好,\LaTeX! 7 \end{document}
保存,然后运行命令
1 lienhua34:text$ xelatex ctex.tex
编译成功,输出了 ctex.pdf 文件,我们双击打开 ctex.pdf 文件,看到如下内容
ok。我们的 texlive 已经能够处理中文字符。但是。。。
2.2 自定义 mylinuxfonts.sty 宏包
通过 setCJKmainfont 等命令我们可以使用 texlive 处理中文字符了,但是要在每个中文文档都写这么一段命令,确实是个烦人的事情。我们可以通过将这段命令写入到自定义的宏包文件 mylinuxfonts.sty 中,然后在文档中以命令 \usepackage{mylinuxfonts} 使用这个自定义宏包即可。
1 % mylinuxfonts.sty 2 \ProvidesPackage{mylinuxfonts} 3 \setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体 4 \setCJKsansfont{WenQuanYi Zen Hei} %设置中文无衬线字体为文泉驿正黑 5 \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置中文打字机(等宽)字体为文泉驿正黑 6 \endinput
然后修改 ctex.tex 的内容如下即可。
1 \documentclass[nofonts]{ctexart} 2 \usepackage{mylinuxfonts} 3 \begin{document} 4 您好,\LaTeX! 5 \end{document}
那么我们要将 mylinuxfonts.sty 放在什么地方,texlive 才能够自动找得到呢?texlive 提供一个变量 TEXMFHOME(默认为~/texmf),给用 户 存 放 自 己 独 立 安 装 的 宏 包、 字 体 等。 宏 包 文 件 需 要 放 置 到 目 录TEXMFHOME/tex/latex 或 者 它 的 子 目 录 下。 我 们 将 mylinuxfonts.sty放到目录~/texmf/tex/latex 下,然后编译 ctex.tex 文件。ok,成功!
当然,如果将 mylinuxfonts.sty 放到目录~/texmf/tex/latex 下,只有当前用户才能够使用。如果我们希望这个宏包对于能够登录当前机器的所有用户都可用,那怎么办?texlive 另外提供了一个变量 TEXMFLOCAL(默认为 /usr/local/texlive/texmf-local),给系统管理员用来安装供整个系统使用的额外的宏包或者字体。宏包文件需要放到目录 TEXMFLOCAL/tex/latex 或者它的子目录下。我们将 mylinuxfonts.sty 文件放到这个目录下。
1 lienhua34:latex$ sudo cp mylinuxfonts.sty /usr/local/texlive/texmf-local/tex/latex/local
然后编译 ctex.tex 文件,但提示找不到 “mylinuxfonts.sty” 文件,
这是因为 TEXMFLOCAL 目录需要一个保持更新的文件名数据库,否则新增的文件就无法找到。我们通过命令 mktexlsr 来更新它。
lienhua34:latex$ sudo mktexlsr mktexlsr: Updating /usr/local/texlive/2013/texmf-config/ls-R... mktexlsr: Updating /usr/local/texlive/2013/texmf-dist/ls-R... mktexlsr: Updating /usr/local/texlive/2013/../texmf-local/ls-R... mktexlsr: Updating /usr/local/texlive/2013/texmf-var/ls-R... mktexlsr: Done.
此时再编译 ctex.tex。ok,没有问题了。
2.3 优化配置
现在我们的 texlive 已经支持中文了,但我们还可以再优化一下我们的ctex 配置。
在我的 ubuntu 下没有安装 windows 系统的字体。而 ctex 默认是使用的字体配置选项是 winfonts,那么我们每个要使用 ctex 宏包的 tex 文档中都要设置 nofonts 选项。
ctex 宏包提供了一个配置文件 ctexopts.cfg,该文件中的代码会在 ctex宏包的开头(选项定义后面)执行。我们可以使用此文件设置 ctex 宏包的默认选项。
1 lienhua34:text$ cd /usr/local/texlive/2013/texmf-dist/tex/latex/ctex/cfg 2 lienhua34:cfg$ sudo cp ctexopts.cfg.template ctexopts.cfg 3 lienhua34:cfg$ sudo vi ctexopts.cfg
然后输入一下内容
1 % ctexopts.cfg: set default options 2 \ExecuteOptions{nofonts} 3 \endinput
保存,然后运行 mktexlsr 命令。ok,此时 ctex 宏包默认的字体选项便改为nofonts 了。
Ubuntu 12.04安装使用Texlive2012 http://www.linuxidc.com/Linux/2013-05/84540.htm
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/120634.htm