首页 > 代码库 > 安装TeX及中文支持

安装TeX及中文支持

1、Ubuntu卸载旧的Texlive2009

Try the following commands, one after another. If you progress, respective folders may already be deleted:

    sudo apt-get purge texlive*
    rm -rf /usr/local/texlive/2009 and rm -rf ~/.texlive2009
    rm -rf /usr/local/share/texmf
    rm -rf /var/lib/texmf
    rm -rf /etc/texmf
    sudo apt-get remove tex-common --purge
    rm -rf ~/.texlive

2、安装texlive 2013

这个安装比较简单,我用的是ubuntu12.04.4。 具体步骤是,mount一下你下载的iso文件。

    sudo mkdir /media/texlive 
    sudo mount texlive2013-20130530.iso  /media/texlive

然后进入到 /media/texlive目录下,执行:
   ./install-tl

提示输入的时候,输入I (大写的i,会看到提示的)

安装完成后,可以向/etc/profile文件的最后一行添加如下代码,注意,我的系统是64位的,你要看看你自己的系统是不是在这个目录下有latex命令。

   export PATH=/usr/local/texlive/2013/bin/x86_64-linux:$PATH

如果你想使用帮助的话,还可以向~/.bashrc中添加下面两行:
   export MANPATH=/usr/local/texlive/2013/texmf-dist/doc/man:$MANPATH
   export INFOPATH=/usr/local/texlive/2013/texmf-dist/doc/info:$INFOPATH

到这里,我一般会重启一下。

测试一下上面的配置是否正确:

   which latex

如果找到了latex,那就可以继续了,找不到的话,你需要重新看一下自己是不是没有配置好环境PATH


3、搞定中文字体

(1)测试中文字体

先写一个简单的测试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 <return>.
!............................................... 

下面就要解决这个问题。

(2)解决中文字体问题

错误里说了,"font-not-found"!所以要先安装SimSun字体。

先执行如下命令:

   cd /etc/fonts/conf.d
   sudo ln -s /usr/local/texlive/2013/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts 09-texlive.conf

上面的命令是为了让系统可以使用texlive的字体。

再做如下操作可以使用自定义的字体。

   mkdir ~/.fonts
   #如果目录不存在需要自己建。
   cp *.ttf ~/.fonts
   #将字体拷贝到.fonts 

然后执行如下命令,修改字体权限并更新字体缓存:
   sudo chmod 644 *.ttf
   sudo mkfontscale
   sudo mkfontdir
   sudo fc-cache -fsv

执行成功后,再做如下操作:

   cd  /usr/local/texlive/2013/texmf-dist/tex/latex/ctex/fontset/
   sudo vim ctex-xecjk-winfonts.def
文件定义了xeCJK字体设置,内容大致如下:
% 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

输出大约如下:
AR PL UMing TW:style=Light
AR PL UMing HK:style=Light
文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular
仿宋,FangSong:style=Normal,oby?ejné,Standard,Κανονικ?,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
標楷體,DFKai\-SB:style=Regular
AR PL UMing CN:style=Light
新宋体,NSimSun:style=常规,Regular
楷体,KaiTi:style=Normal,oby?ejné,Standard,Κανονικ?,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
微软雅黑,Microsoft YaHei:style=Normal,oby?ejné,Standard,Κανονικ?,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
Adobe 楷体 Std,Adobe Kaiti Std,Adobe Kaiti Std R,Adobe 楷体 Std R:style=R,Regular
Microsoft YaHei UI,Microsoft YaHei UI Light:style=Light,Regular

下面需要做的就是将ctex-xecjk-winfonts.def中的字体SIMFANG.TTF改为FangSong,SIMKAI.TTF改为KaiTi。

如果你用vim,可以在vim里执行如下命令:

:%s/\[SIMFANG.TTF\]/FangSong/g
:%s/\[SIMKAI.TTF\]/KaiTi/g

(3)测试问题解决

重新执行一下,那个编译命令吧:
xelatex test.tex
现在应该没有问题了。

(4)调用系统字体

虽然上述方法解决了一些问题,但却还是不能使用微软雅黑之类的字体,下面是解决方案
测试文档是:
\documentclass{ctexart}
\setCJKfamilyfont{Microsoft YaHei}{微软雅黑}   
\newcommand{\yah}{\CJKfamily{Microsoft YaHei}}
\begin{document}
注意:UTF-8编码,用XeLaTeX编译,{\yah 这里示例为微软雅黑}。\效果还可以。
\end{document}

效果是这样:


   大功告成。