尽管大部分常见的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. TcxVerticalGrid 汇总

    赋值 AOrder.LoadSimpleFromFile(sDefineFile); grdRowFileDefine_PostalCode.Properties.Value := AOrder.Or ...

  2. xmbc 资源

    http://raspberrypi.diandian.com/post/2013-02-25/40048470423 http://blog.csdn.net/lincyang/article/de ...

  3. iOS 之NSJSONReadingOptions说明【转】

    首先用代码来说明NSJSONReadingMutableContainers的作用: NSString *str = @"{\"name\":\"kaixuan ...

  4. [GC]一个简单的Garbage Collector的实现

    前言: 最近看了google的工程师写的一个非常简单的垃圾收集器,大概200多行C代码,感叹大牛总能够把复杂的东西通过很简单的语言和代码表达出来.为了增加自己的理解,决定把大牛的想法和代码分析一遍,与 ...

  5. KNN及其改进算法的python实现

    一. 马氏距离 我们熟悉的欧氏距离虽然很有用,但也有明显的缺点.它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求.例如,在教育研究中,经常遇到对人的分析和判别,个体 ...

  6. Ubuntu安装JDK1.6

    1.下载JDK 网址: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-4 ...

  7. fuse文件系统

    用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统.目前Linux通过内核模块对此进行支持.一些文件系统如ZFS,glus ...

  8. python 使用__future__

    Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动.有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了. 从Python 2.7到Pytho ...

  9. iOS语音播放之切换听筒和扬声器的方法解决方案

    关于流媒体播放的相关知识可以加本人QQ:564702640 一起来讨论 [[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; // ...

  10. 转载StringBuilder说明

    动态串StringBuilder 利用System.Text.StringBuilder类实现动态字符串,动态的含义是指在修改字符串时,系统不需要创建新的对象,不会重复开辟新的内存空间,而是直接在原来 ...