Friday, March 4, 2016

[转]ubuntu 下安装 texlive 并设置 ctex 中文套装

转载自 http://www.cnblogs.com/lienhua34/p/3675027.html


1 安装 texlive2013

1.1 下载 texlive2013

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 参考列表

Thursday, February 25, 2016

Ubuntu fonts

查找字体:
fc-list :lang=zh | sort

列出字体到文件:
fc-list -f "%{family}\n" :lang=zh > zhfont.txt

安装字体:
下载 .ttf true type fonts,双击,安装。

Install LaTex packages manually on Ubuntu

The following four steps permit manual installation of packages on Debian/Ubuntu (and presumably other Linux) systems.
If you have .sty file already, ignore step 1 and 2.
  1. Download the package from CTAN (e.g., xCJKnumb.tar).
  2. Extract the files and place them in an appropriate directory (e.g., /usr/local/share/texmf/tex/latex/xCJKnumb). This location is preferable to the main installation tree (/usr/share/texmf-texlive/tex/latex/) as the files are more likely to be preserved during upgrades.
  3. Generate the .sty file by running latex on the appropriate source files (e.g., latex xCJKnumb.ins and latex xCJKnumb.dtx).
  4. Update the ls-R file in this source tree (e.g., cd /usr/local/share/texmf/ ; sudo mktexlsr). Because /usr/local/share/texmf/tex/ is not searched recursively by kpathsea (cf. kpsepath tex), the ls-R file at the root directory of this search path must be updated to make the system aware of the new package.
References: 

把握現在: Latex 章節名稱及目錄改為中文

把握現在: Latex 章節名稱及目錄改為中文: Latex章節預設的名稱是Chapter 1 2 3 這樣一直下去 如果要改成中文"第一章" 這樣的話需要 titlesec, titletoc,CJKnumb這三個package 如果是使用XeLatex最後一個要改成xCJKnumb 這個package...