注:本文的大部分内容来自于Ubuntu 下安装并配置 TeXLive,因为其中涉及到一点个人见解,特标记为原创,如果涉及到版权问题,本人愿意更正,谢谢。特此注明。
前言:本文安装环境为 Ubuntu 14.04 LTS 64 位系统,软件版本为 TeXLive 2014,更详细的教程请看官方 TeXLive 指南,Latex简单教程一份不太简短的latex2e介绍
安装前准备
下载 TeXLive 2014 镜像文件
下载地址:TeXLive 2014
删除旧版
$ sudo apt-get purge tex-common
# 如果装有TeXLive2013,请选择使用
$ sudo tlmgr -gui # 删除TeXLive2013
安装 Perl::TK 模块
install-tl 是一个 Perl 脚本,要在专家 GUI 模式下安装,需要加入 XFT 支持的 Perl::TK 模块,可用以下方法添加:
$ sudo apt-get install perl-tk
安装主程序
挂载 iso 镜像文件
$ sudo mount -o loop path_to_TeXLive2014.iso /mnt
$ cd /mnt
启动安装程序
在加入了 XFT 支持的 Perl::TK 模块后,可以用以下方法启动专家 GUI 模式进行安装:
$ sudo ./install-tl -gui
在图形界面中将 Create symlinks in system directories 选项更改为 Yes,点击 Install TeX Live 开始安装。
=====================================================================
这一部分在实际操作的时候并没有涉及,只是原文中提及到,保留至此。
配置环境变量
可根据安装结束时的文本提示进行相应的环境变量配置,我在安装时进行了如下配置。
在 ~/.bashrc 和 ~/.profile 文件结尾添加如下代码:
# 自己为texlive配置的环境变量
PATH=/usr/local/texlive/2014/bin/x86_64-linux:\$PATH; export PATH
MANPATH=/usr/local/texlive/2014/texmf-dist/doc/man:\$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2014/texmf-dist/doc/info:\$INFOPATH; export INFOPATH
为了配置全局的环境变量,可在 /etc/manpath.config 文件的 # set up PATH to MANPATH mapping. 下添加:
MANPATH_MAP /usr/local/texlive/2014/bin/x86_64-linux \
/usr/local/texlive/2014/texmf-dist/doc/man
之后注销即可。
注:如果环境变量配置出错导致无法登录,可以参见我的另一篇博文进行解决:Linux 配置环境变量后无法登录的解决方案
注:以上部分,本人并没有实际操作,请慎重为之。谢谢!
=====================================================================
测试安装是否成功
首先确认你可以执行 tex 程序:
$ tex --version
TeX 3.14159265 (TeX Live ...)
Copyright ... D.E. Knuth.
...
如果你安装了 xetex 包,可以按如下步骤测试它能否访问系统字体(会生成文件,可在无用目录下执行):
$ xetex opentype-info.tex
This is XeTeX, Version 3.14...
...
Output written on opentype-info.pdf (1 page).
Transcript written on opentype-info.log.
如果你收到 “Invalid fontname ‘Latin Modern Roman/ICU’…” 这样的错误信息,就说明需要配置系统才能找到 TEX Live 自带的字体。
XeTEX 和 LuaTEX 的系统字体配置
XeTEX 和 LuaTEX 可以使用任何系统安装的字体,而不只是 TEX 目录树中的那些。它们使用类似但不完全一致的方式实现这一功能。
在 Windows 下 TEX Live 提供的字体会自动为 XeTEX 所用。但如果你在 Unix 兼容的系统中安装了 xetex 软件包,则需要把系统配置一番 XeTEX 才能找到随 TEX Live 安装的那些字体。
要在整个系统中使用 TEX Live 的字体 (假定你有足够的权限),请依照下面的步骤来做:
将 texlive-fontconfig.conf 文件复制到 /etc/fonts/conf.d/09-texlive.conf。
$ sudo cp /usr/local/texlive/2014/texmf-var/fonts/conf/texlive-fontconfig.conf \
/etc/fonts/conf.d/09-texlive.conf
运行
$ sudo fc-cache -fsv
如果你没有足够的权限执行上述操作,或者只需要把 TEX Live 字体提供给你自己,可以这么做:
将 texlive-fontconfig.conf 文件复制到 ~/.fonts.conf,其中 ~ 是你的主目录。
运行
$ fc-cache -fv
此时执行第2步,问题已经解决。
中文字体安装与配置
中文字体安装
先写一个简单的测试 tex 文件。起名为 test.tex
\documentclass[UTF8]{ctexart}
\begin{document}
我爱中国!
\end{document}
然后执行如下命令编译
$ xelatex test.tex
系统会报错,大致信息如下:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: “font-not-found”
!
! The font “SimSun” cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H .
!………………………………………..
下面就要解决这个问题,错误里说了,”font-not-found”!
$ sudo mkdir /usr/share/fonts/winfonts
然后把 Windows 下的六种中易字体(其中的四种字体simsun.ttf,simkai.ttf,simfang.ttf,simhei.ttf,另外simsun.ttc本人也复制到其中,因为在使用pdflatex命令时用到了该字体)复制到该文件夹,并更改字体权限
$ sudo chmod 644 /usr/share/fonts/winfonts/*
刷新字体库
$ sudo mkfontscale
$ sudo mkfontdir
$ sudo fc-cache -fsv
xeLaTeX 中文字体配置
如果使用 xeLaTeX 的话,需要 xeCJK 宏包的支持,需要修改 /usr/local/texlive/2014/texmf-dist/tex/latex/ctex/fontset 下的 ctex-xecjk-winfonts.def 文件。
文件内容,如下
% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字体设置,默认为六种中易字体
% vim:ft=tex
\setCJKmainfont[BoldFont={SimHei},ItalicFont={[SIMKAI.TTF]}]
{SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{[SIMFANG.TTF]}
\setCJKfamilyfont{zhsong}{SimSun}
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhkai}{[SIMKAI.TTF]}
\setCJKfamilyfont{zhfs}{[SIMFANG.TTF]}
% \setCJKfamilyfont{zhli}{LiSu}
% \setCJKfamilyfont{zhyou}{YouYuan}
\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体
\newcommand*{\heiti}{\CJKfamily{zhhei}} % 黑体
\newcommand*{\kaishu}{\CJKfamily{zhkai}} % 楷书
\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋
% \newcommand*{\lishu}{\CJKfamily{zhli}} % 隶书
% \newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圆
\endinput
下面,打开新的终端,执行如下命令:
$ fc-list :lang=zh-cn
输出大约如下
/usr/share/fonts/winfonts/simkai.ttf: KaiTi,楷体:style=Regular...
/usr/share/fonts/winfonts/simfang.ttf: FangSong,仿宋:style=Regular...
/usr/share/fonts/winfonts/simsun.ttf: SimSun,宋体:style=Regular...
/usr/share/fonts/winfonts/simhei.ttf: SimHei,黑体:style=Regular...
将 ctex-xecjk-winfonts.def的字体名字分别改成了上面四行路径后的第一个名字,即KaiTi,FangSong,SimSun,SimHei,并且将[SIMKAI.TTF] 类的字体中的中括号删去。例如:
\setCJKfamilyfont{zhkai}{[SIMKAI.TTF]}
\setCJKfamilyfont{zhfs}{[SIMFANG.TTF]}
改为
\setCJKfamilyfont{zhkai}{KaiTi}
\setCJKfamilyfont{zhfs}{FangSong}
重新编译一下,发现成功了。
另外,若想添加 Adobe 字体,设置方法与 Windows 字体大致相同,此处不再赘述。
pdfLaTeX 中文字体配置
在上边添加了 Windows 字体的基础之上可以为 pdfLaTeX 添加中文字体支持
在* /usr/local/texlive/2014/texmf.cnf *文件中设置 OSFONTDIR 变量,即添加如下信息:
% 自己为pdflatex设置的OSFONTDIR变量指向中文字体文件
OSFONTDIR=/usr/share/fonts/winfonts