Linux环境下安装texlive
概述
本片文章主要讲解在Ubuntu18.04环境下安装texlive2017的过程,以及配置latex支持中文环境所需操作。
texlive简介
TexLive是tex及其相关程序在GNU/Linux及其他类Unix系统、MacOSX和Windows系统下的⼀套发⾏版。你可以直接下载TexLive,也可以在Tex⽤户组织给会员分发的TexcollectionDVD中找到。
可参考texlive指南
一.获取texlive的iso镜像文件
可以访问以下网站下载texlive的iso文件,现在已经更新到texlive2019版本了。
在linux环境下可通过浏览器进入网站进行下载,也可以在windows下访问网站将iso文件下载好,拷贝到linux下也是可以的。
二.texlive的安装
安装过程以 Ubuntu18.04安装texlive2017为例
1.为了使用图形化界面进行安装texlive,需要安装perl-tk
sudo apt-get install perl-tk
2.挂载iso镜像文件
进入到你下载好的iso文件所在目录下
sudo mount -o loop texlive2017.iso /mnt #将iso文件挂载到mnt文件夹下,要挂载到哪个文件夹可以自己指定
cd /mnt #进入到到挂载后的文件夹下,才会找到install.tl文件
./install-tl -gui #执行install.tl这个文件,-gui使用图形界面开始安装
执行 ./install-tl -gui 命令后跳出的安装界面如下,点击安装texlive 开始安装
(如果是命令行安装根据提示 输入i 进行安装) 图仅供参考
安装路径一般就默认路径:/usr/local/texlive/2017/…
安装完成后如下图所示
3.环境配置
通过命令vim ~/.bashrc
进入.bashrc文件,在文件最后添加如下信息
# TeXLive2017-path
export PATH=/usr/local/texlive/2017/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2017/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2017/texmf-dist/doc/info:$INFOPATH
(根据操作系统位数不同,64位的是x86_64-linux,如果是32位的则是 i386-linux )
环境配置完成后执行source ~/.bashrc
使配置的环境生效,或者重启。
4.测试是否安装成功
输入tex --version
或者 tex -v
指令查看是否有texlive的信息,有则表示安装成功了
如果返回的结果是‘command not found’而非版本和版权信息,或者显示了旧版本的信息,很有可能是因为你没有把正确的bin子目录添加到PATH中
安装完成后卸载挂载的文件不让它占用空间 (mnt文件夹指的是挂载镜像文件的文件夹)
sudo umount /mnt
5.支持中文字体配置
安装完成texlive后,用vim写tex的文档,想支持文档中的中文输出, 你需要了解如下内容。
1.texlive本身的ctex-xecjk-winfonts.def这个文件里设置了六种自带的中文字体(宋体,黑体,楷书,仿宋,隶书,幼圆)
ctex-xecjk-winfonts.def此文件的默认路径为:/usr/local/texlive/2017/texmf-dist/tex/latex/ctex/fontset/
安装了texlive就会有这个文件,但是我并没有发现,我也是自己创建的,如果有此文件打开查看字体名字是否跟ubuntu系统里字体名字是否一致,
可用此指令 fc-list :lang=zh-cn
查看ubuntu系统下字体名字,对ctex-xecjk-winfonts.def文件里字体名字不一致的地方进行修改
完整文件内容如下:
\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]
{SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{FangSong}
\setCJKfamilyfont{zhsong}{SimSun}
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhkai}{KaiTi}
\setCJKfamilyfont{zhfs}{FangSong}
\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
想要使用这些字体也简单啊,在tex文档中直接指名道姓的用就完了,
例如{\SimSun 这是用宋体写的内容}
嘿嘿,坑来了,报错内容如下是吧!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "simsun" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.3 \setmainfont[BoldFont=STZhongsong]{simsun}
?
这是因为在Ubuntu系统里根本就没有找到这个字体的存在,所以呢要把texliive自带的这些字体添加到Ubuntu系统中去,编译的时候系统才能找到相应的字体来匹配。
2.解决找不到字体问题的办法有两个,我当然推荐你用第二个了。
- 把texlive那自带的可怜的几个中文字体放到系统字体里去,可以使用少许的几种中文字体,需要如下操作。
sudo cp /usr/local/texlive/2017/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
sudo fc-cache -fsv
- 想要使用更多种类的中文字体,这会是个不错的选择
把windows下的字体拷贝过来,这个中文字体种类就比较多了
Windows系统下的字体路径为 C:\Windows\Fonts ,将Fonts文件夹拷贝到linux下
(用的是虚拟机,拖拽或者共享文件夹等实现拷贝工作) 我用拖拽的方式将Fonts文件夹放到了主目录下
# 创建一个winfonts文件夹用于存放所有字体
sudo mkdir /usr/share/fonts/winfonts
# 将字体从Fonts文件中拷贝到winfonts中
sudo cp ~/Fonts/* /usr/share/fonts/winfonts/
# 进入到字体文件夹
cd /usr/share/fonts/winfonts/
# 修改字体访问权限
sudo chmod 744 *
# 回到主目录
cd ~
# 更新字体信息,使其生效
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv
至此更多的字体都设置到Ubuntu系统中了,并且可以使用了。
可通过 fc-list :lang=zh-cn
查看中文字体及字体在系统中的具体名字
注:如果有需要使用自定义的字体,方法也是重走第二中方案即可。
例如:我想使用 思源黑体
将下载好的字体文件放到winfonts文件夹下,修改权限,更新字体信息,就可以了。
在文档中使用新配置的中文字体
例如我想在文档中使用新配置的思源黑体
\documentclass{ctexart}
\setCJKfamilyfont{syht}{Source Han Sans CN}
\newcommand{\siyuanheiti}{\CJKfamily{syht}}
\begin{document}
{\siyuanheiti 这是用思源黑体写的内容}
\end{document}
值得注意的是对于字体设定的这个语法,
\setCJKfamilyfont{syht}{Source Han Sans CN}
\newcommand{\siyuanheiti}{\CJKfamily{syht}}
可以在ctex-xecjk-winfonts.def文件里添加设定,在文档中直接使用即可,
就不用每次都在文档中对字体进行设定了
参考
Linux下安装配置TEXLive2015的方法
Linux系统下安装TeX Live及中文支持
texlive测试是否安装成功
Linux下自定义位置安装TeXLive2018