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 了。

3 参考列表

http://www.tug.org/texlive/doc/texlive-zh-cn/texlive-zh-cn.pdf
http://code.google.com/p/ctex-kit/wiki/CTeXPackage
http://code.google.com/p/ctex-kit/wiki/UnixFonts
http://seisman.info/texlive-2013-under-linux.html

posted on 2014-04-19 14:57  lienhua34  阅读(41907)  评论(7编辑  收藏  举报

导航