在Ubuntu下安装和编译LaTex

876次阅读  |  发布于5年以前

LaTex简介

1、LaTeX 是由美国计算机学家Lamport博士于1985年开发成功的。
2、它是当今世界上最流行和使用最为广泛,以 TeX 为引擎的高质量格式化排版系统。
3、它构筑在 TeX 的基础之上,并且加进了很多新功能,使得使用者可以更为方便的利用 TeX 的强大功能。
即使使用者并不是很了解 TeX,也可以在很短的时间内制成高质量的文件。

LaTex有很多发行版,Linux下的发行版为TexLive,本文安装环境为 Ubuntu 14.04.1 64 位系统,软件版本为 TeXLive 2014,更详细的教程请看官方TeXLive 指南

安装前准备

下载 TeXLive 2014 镜像文件

下载地址:TeXLive 2014
推荐厦门大学开源软件镜像,下载速度很可观:TEXLive

删除旧版

sudo apt-get purge tex-common  

安装 Perl::TK 模块

install-tl 是一个 Perl 脚本,要在专家 GUI 模式下安装,需要加入 XFT 支持的 Perl::TK 模块,可用以下方法添加:

sudo apt-get install perl-tk  

安装主程序

挂载 iso 镜像文件

sudo mount -o loop path_to.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 的字体 (假定你有足够的权限),请依照下面的步骤来做:

$ sudo cp /usr/local/texlive/2014/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf  

中文字体安装与配置

中文字体安装

先写一个简单的测试 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 下的六种中意字体复制到该文件夹,比如从Windows的C:/Windows/Fonts下拷贝最常使用的几种字体:
msyh.ttf(微软雅黑) simfang.ttf(仿宋) simhei.ttf(黑体) simkai.ttf(楷体) simsun.ttc(宋体),并更改字体权限

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 文件。

下面,打开新的终端,执行如下命令:

fc-list :lang=zh-cn  

输出大约如下

NSimSun,新宋体:style=Regular  
    KaiTi,楷             体:style=Regular,Normal,obyčejne,Standard,Κανονικά,Normaali,Normal,Normale,Standaard,Normalny,Обычный,Normalne,Navadno,Arrunta  
    SimSun,宋体:style=RegularUnibit:style=Regular  

WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑:style=Regular
……

下面需要做的就是将 ctex-xecjk-winfonts.def 中的字体名字改成上面四行的行首的内容,注意,要将原文件中的 [SIMKAI.TTF] 中括号同时删去。
重新编译以下,发现成功了。

另外,若想添加 Adobe 字体,设置方法与 Windows 字体大致相同,此处不再赘述。

pdfLaTeX 中文字体配置

在上边添加了 Windows 字体的基础之上可以为 pdfLaTeX 添加中文字体支持

在 /usr/local/texlive/2014/texmf.cnf 文件中设置 OSFONTDIR 变量,即添加如下信息:
自己为pdflatex设置的OSFONTDIR变量指向中文字体文件
OSFONTDIR=/usr/share/fonts/winfonts
论文中正常显示中文

新建一个.tex文件,在文件里面添加下面两句就能正常显示中文了:
\usepackage{xeCJK}
\setCJKmainfont{STSong}

LaTeX 学习文档下载:

http://download.csdn.net/detail/longerzone/4703133

Linux 配置环境变量后无法登录的解决方案

Linux 的环境变量读取机制

无法登录的原因

由上可知,系统启动时会先读取 /etc/profile,然后读取 /etc/environment,最后才是 ~/.profile 文件,而在 /etc/environment 中也设置有环境变量 PATH,如果你在 ~/.profile 中也设置了环境变量 PATH,那么就会覆盖原来的 /etc/environment 中设置的环境变量 PATH。

因此,~/.profile 文件中的环境变量设置一定不可大意,且在其设置的环境变量中要重新载入之前的环境变量,即添加 $PATH,且以冒号分割。

比如以我安装的 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  

解决方法一

在登录界面可以通过 Ctrl + Alt + F1~F6< 的方式进入命令行,再通过Ctrl + Alt + F7的方式进入图形界面。

因此我们可以进入图形界面登录 root 账户,将之前修改的环境变量删除或者更正即可。

注意事项:我们在登录不同的账户时,~所对应的目录是不同的,例如 John 用户对应 /home/John/,而 root 用户对应 /root/,因此在以 root 用户登陆时,一定要注意环境变量文件的路径。

解决方法二

若命令行下打开文件乱码,可考虑新建用户并登录,然后以 root 权限修改之前用户的配置文件,关于如何新建用户此处不再赘述。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8