尽管大部分常见的linux系统的包管理器内都会包含texlive,然而最好还是安装TUG发布的原版texlive。这是由于:1,软件仓库内的texlive通常版本较陈旧;2,由于版权因素一些tex宏包没有被软件仓库收录;3,软件仓库内的texlive分割混乱,更新和维护都不方便,事实上,texlive本身的TDS结构就已经相当清晰完善了。

这里以Linux Mint 18系统为例,介绍如何安装和配置原版的texlive 2016。


安装前准备

如果已经安装了其它版本的texlive,需要先卸载掉。

texlive 的安装有两种方式,一是下载一个安装脚本然后在线安装,二是从本地的光盘镜像安装。这里采用后者。最新的texlive光盘镜像文件texlive2016.iso可以从CTAN上下载。CTAN 国内镜像有很多,教育网用户可以选择清华或者中科大等高校的镜像,一般宽带用户可以选择阿里云镜像,视网速而定。

此外,为了使用图形化安装界面,需要安装perl的tk组件:

sudo apt-get install perl-tk

安装texlive 2016

加载镜像文件

sudo mount -o loop texlive2016.iso /mnt

启动安装程序的图形化界面进行配置

cd /mnt
sudo ./install-tl -gui

如图,其中要说明的选项有以下几点。

  • 选择安装方案。初级用户推荐直接选择 scheme-full 全部安装。如果磁盘空间有限也可以选择small或者median模式。高级用户可以选择scheme-custom进一步定制。这里我选择了scheme-custom,并且在“进一步定制”里去掉了自己不会用到的一些语言包和ConTeXt相关组件。
  • 由于这里是安装到系统里,因此portable setup选择了否,安装路径为默认。
  • 选项里面选择默认为A4纸张大小,其它一些选项基本都选了是。其中要注意的是创建符号链接会在 /usr/local/bin里面创建指向可执行程序的软链接,从而可以直接使用latex,pdflatex等命令,此外还可以使用man latex等命令查看帮助。
  • 建议在最后的get package updates一项选否,等安装好了之后手动安装更新。

安装texlive

点击安装TeX Live进行安装

最后出现下图说明安装完成

点击完成,卸载镜像文件

cd /; sudo umount /mnt

Windows和macOS下的安装

  • windows10可以直接双击iso文件进入,windows 7以及之前版本需要用虚拟光驱软件加载iso文件。双击其中的install-tl-advanced.bat文件可以弹出类似的安装界面。进行类似的配置后可以安装。
  • macOS 系统推荐安装macTeX, 这是mac版本的texlive,位于CTAN镜像的/CTAN/systems/mac/mactex/MacTeX.pkg

安装后操作

更新源配置

配置合适的CTAN源可以加快宏包更新的网速,以中科大的源为例:

sudo tlmgr option repository http://mirrors.ustc.edu.cn/CTAN/systems/texlive/tlnet

之后可以利用tlmgr进行网络更新。CTAN 上的包更新很频繁,所以即便是最新版的texlive2016,其中也有大量的宏包需要更新(可能包括tlmgr程序本身)

sudo tlmgr update --self --all

字体配置

XeTeX 和 LuaTeX 可以直接使用系统字体。然而 texlive 自带的字体并不在系统的字体目录里面。为了让系统可以使用texlive所带的字体,需要进行如下配置。

  • 将texlive的字体配置文件复制到系统内
sudo cp /usr/local/texlive/2016/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf

建议将 /etc/fonts/conf.d/09-texlive.conf包含type1字体的那行删掉,以避免在其它软件中显示成百上千的type1字体,即删掉

<dir>/usr/local/texlive/2016/texmf-dist/fonts/type1</dir>
  • 刷新系统字体缓存
sudo fc-cache -fsv

dummy package 安装

texlive2016安装之后需要“告诉”系统texlive相关软件包都安装好了。这样在系统安装依赖于tex的软件(比如R)时就不必重新下载软件仓库中的旧版 texlive 相关软件。也不会造成不同版本 tex 命令的冲突。dummy package 就是解决这样的软件依赖问题的“虚包”。

Debian/Ubuntu下的dummy package 的制作可以参考 TUG上的官方说明. 这里 已经制作了一个 texlive2016 的dummy package, 下载后直接安装即可:

sudo dpkg -i texlive-local_2016-1_all.deb

关于其它系统

编辑器安装

安装了dummy package之后,可以通过dpkg、系统的软件仓库、以及PPA来安装编辑器。比如texworks, texstudio, KDE桌面下常用的kile, 以及半可视化的LyX。RHEL 系的linux发行版也有相应的软件仓库。

texworks, texstudio都自带PDF浏览器,kile配合PDF浏览器okular也可以实现正反向搜索。

Linux 系统下原版 texlive 2016 的安装与配置的更多相关文章

  1. Linux 系统下用源码包安装软件

    Linux系统下用源码包安装软件 by:授客 QQ:1033553122 下载源码安装包,解压或者直接双击打开(如果有安装zip或rar等压缩/解压缩软件的话),查找相关的安装说明文件,一般是READ ...

  2. Linux系统下Apache2.4.17的安装过程

    Linux系统下安装Apache Server2.4.17.还是先声明一下,Linux命令我不进行讲解,因为我不是讲Linux命令的.有需要注意的地方,我会上图,没什么值得的注意的地方,我就不上图了. ...

  3. Win7 32位系统下Java开发环境的安装及配置

    目录: Java JDK安装. Java JDK系统环境的配置. 配置常见问题的解决. Java JDK的安装 Java Jdk(Java Development Kit)Java开发不可缺少的环境, ...

  4. linux系统下使用apt-get install 方法安装lamp环境

    1.更新源,获得最近的软件包的列表,列表中包含一些包的信息,比如这个包是否更新过. sudo apt-get update 2.更新系统中已安装的软件包 sudo apt-get upgrade 3. ...

  5. Linux系统下rz/sz工具的安装

    (1)编译安装 root 账号登陆后,依次执行以下命令: wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz tar zxvf lrzs ...

  6. Win7 32位系统下Sublime text 3的安装以及配置C/C++、java、python的开发环境方法

    本人初学者,此文仅是对这几天鼓捣subime text 3一点微不足道的经验总结,如有明显错误,欢迎指正! 好了,废话少说,进入正题,之前编程java一直用的是eclipse,java的主流IDE,后 ...

  7. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  8. Linux系统环境下MySQL数据库源代码的安装

    Linux系统环境下MySQL数据库源代码的安装 基本环境:CentOS Linux release 7.8.2003 (Core).MySQL5.6 一.      安装环境准备 若要在Linux系 ...

  9. Linux系统下Redis安装(一)

    最近项目要使用Redis,特将这段时间将Redis的学习经验与大家分享,算是对这段时间学习成果的总结和技术提炼,不足之处还望大家批评指正. 项目背景: 有些很少改动的数据和经常使用的数据(例如系统中下 ...

随机推荐

  1. adaboost学习资料收集

    很通俗易懂的一篇博文 http://blog.csdn.net/haidao2009/article/details/7514787 百度搜索研发部的一篇文章 http://stblog.baidu- ...

  2. jdk源码调试功能

    JDK源码重新编译——支持eclipse调试JDK源码--转载 最近在研究jdk源码,发现debug时无法查看源码里的变量值. 因为sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt. ...

  3. C++ 模板类解析

    具体模板类作用这边就不细说了,下面主要是描述下模板类的使用方法以及注意的一些东西. #include <iostream> using namespace std; template &l ...

  4. Pyhton 一行代码求Fibonacci第N项

    递归定义很简单,效率当然很低下,且极易超出栈空间大小. 这样做纯粹是为了体现python的语言表现力而已, 并没有任何实际意义. def fib(x): return fib(x-1) + fib(x ...

  5. leetcode@ [208] Implement Trie (Prefix Tree)

    Trie 树模板 https://leetcode.com/problems/implement-trie-prefix-tree/ class TrieNode { public: char var ...

  6. [学姿势]使用AngularJS+CodeIgniter框架经验谈

    这篇文章作为总结总结7月份参与项目时遇到的新东西和问题,包括这两个框架(CodeIgniter.AngularJS)以及两个功能实现.有前端调试显示动态认证,也有用php实现功能模块. 1.添加设备 ...

  7. setResult()设置无效,onActivityResult没有被调用

    情况1 呃,被坑了几个小时,后来发现,在调用setResult的时候,requestCode随便传了个Activity的RESULT_OK,而这个常量的值是-1,导致onActivityResult没 ...

  8. linux中ctime,mtime,atime的区别

    st_atime Time when file data was last accessed. Changed by  the            following   functions:    ...

  9. 射频识别技术漫谈(10)——识别号的格式变化【worldsing笔记】

    从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里.ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出 ...

  10. ios开发-确定/自适应textView的高度

    昨天在做学院客户端的时候,随手clean了下项目. 不过xcode又闹脾气了,textview里面的字体大小居然在真机运行的时候普遍小了2号.. 这下蛋疼了.应该我项目里面textview的frame ...