TexLive安装配置教程
在写文档/论文的时候,最常用的莫过于Markdown和TeX语言了,不过,由于Markdown编辑的多样性受到严格限制,所以,安装一个TeX编译环境非常必要。本文将从安装配置的角度描述整个过程,并作部分原理上的阐述,毕竟授之以鱼不如授之以渔。
我究竟需要什么?
TeX是一种语言,但是由于其包含的命令比较复杂,因此将其组合打包成不同的宏包以供文档编写者使用,常见的有:
- Plain TeX:Knuth提供的最小的宏集合;
- LaTeX:一种更常用的宏集合。
为了能够把写好的TeX文件编译产生PDF文档,需要用到编译工具TeX、PDFTeX以及XeTeX等:
- TeX编译工具中的TeX命令: 最初的由Knuth大神开发的将Plain TeX文件编译成.div;
- PDFTeX编译工具中的PDFTeX命令:把Plain Tex文件直接编译成 PDF文件;
- XeTeX编译工具中的XeTeX命令:把Plain TeX文件直接编译成 PDF文件,支持Unicode编码和直接访问操作系统字体;
- PDFTeX编译工具中的PDFLaTeX命令:PDFTeX中的命令,把LaTeX文件直接编译成 PDF文件;
- XeTeX编译工具中的XeLaTeX命令:XeTeX中的命令,把LaTeX文件直接编译成 PDF文件,支持Unicode编码和直接访问操作系统字体。
那么,什么工具提供这些编译工具呢?常用的有:TeXLive、MikTex等。
TeXLive怎么安装?
很多人喜欢下载完整的TeXLive,然后直接打开编辑器(如VSCode)编辑代码并声称。但是,一个完整的iso文件太大了,也不利于以后出了错误进行调试。因此,这里用最小版从头开始安装TeXLive。基本步骤如下:
- 到清华的开源软件镜像站下载TexLive的安装器https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/install-tl.zip;
- 解压以后进入解压后的文件夹并执行这个命令来安装
./install-tl --gui
(如果提示需要安装某些插件的话,请配合安装,例如Ubuntu下sudo apt install wish
)。这里,可能要明白几个概念,首先,为了保证下载速度,选择一个镜像仓库地址,这个可以在界面的首页选择;其次,在安装的时候可以选择便携式安装(也就是portable),我个人习惯尽量不把这个东西安装在系统路径,以防后面重装系统;再次,根据需要选择初始安装的包,我在这里一般选择最小化安装(minimal)以方便后期我自己添加需要的包;最后,在选项里面选择allow execution of restricted list of programs via \write18
和create all format files
,另外两个安装文档树的选项不用勾选,但是一定要记得勾选生成格式化文件那个选项); - 等待一段时间的下载和安装以后,最小化的TeXLive系统就安装好了,这时候记得配置环境变量,让命令行可以顺利的访问基本命令。
TeXLive在VSCode下如何编译TeX文件?
这里,可以使用相应的命令加上tex文件,例如:xelatex XXX.tex
,其中的编译选项就不在此列出了。VSCode需要安装Latex Workshop这个扩展,然后对VSCode的Preferences: Open Settings (JSON)这个文件进行编辑,下面给出一个Linux下我常用的配置文件:
{
"latex-workshop.synctex.synctexjs.enabled": true,
"latex-workshop.showContextMenu":true,
"latex-workshop.intellisense.package.enabled": true,
"latex-workshop.message.log.show": false,
"latex-workshop.message.warning.show": false,
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.synctex.afterBuild.enabled": true,
"editor.wordWrap": "on",
"workbench.startupEditor": "newUntitledFile",
// 对应Clean up auxiliary files命令需要清楚的临时文件类型
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.bcf",
"*.cut",
"*.dvi",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.xml",
"*.pdf",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.synctex.gz",
"*.fdb_latexmk",
"*.gz"
],
// 这个viewer的配置好像不太需要,因为在对应的View Latex PDF命令里面可以选浏览方式
"latex-workshop.view.pdf.viewer": "tab",
// 重点:这决定了下面的recipes调用不同TeX命令具体的执行方式
"latex-workshop.latex.tools": [
{
"name": "pdflatex",
"command": "/path/to/pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"%DOCFILE%.tex"
]
},
{
"name": "xelatex",
"command": "/path/to/xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"%DOCFILE%.tex"
]
},
{
"name": "bibtex",
"command": "/path/to/bibtex",
"args": [
"%DOCFILE%.aux"
]
},
{
"name": "biber",
"command": "/path/to/biber",
"args": [
"%DOCFILE%.bcf"
]
}
],
// 这个会生成在Commands里面的recipe
"latex-workshop.latex.recipes": [
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "bibtex",
"tools": [
"bibtex"
]
},
{
"name": "biber",
"tools": [
"biber"
]
}
]
}
TeXLive怎么安装其他软件包?
在TeXLive中,包含一个非常有用的包管理器,叫做tlmgr(TeXLive Manager)。这个包管理器有一些基本的命令需要了解(在Linux或者Mac上,这个命令是tlgmr
,在windows上是tlmgr.bat
,这里就用tlmgr
举例):
tlmgr init-usertree
:用来给你建立一个工作区域管理存放后续安装的东西,这个要首先执行。tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
:用来更换仓库源以加快下载速度。tlmgr install XXX
:用来安装XXX这个包。tlmgr info XXX
:用来搜索并展示包含XXX的包。
这样就可以愉快的使用安装好的包了。
TeXLive后续问题汇总(持续更新)
问:最小化TeXLive无法执行XeLaTeX命令。
答:这里需要重新安装XeTeX,tlmgr install --reinstall xetex
。
问:找不到格式化文件,例如,I can't find the format file `xelatex.fmt'!。
答:解决步骤同上。
问:编译过程中发现字体有问题。
答:这里可以用tlmgr info
命令搜索需要下载的字体并从CTAN官网下载。一般这个时候也会有对应的路径,比如texmf-dist/fonts/。把下载的字体解压放在这些路径下,然后分别运行mktexlsr
和sudo fc-cache
。如果是Windows下发现mktexmf: empty or non-existent rootfile!这种错误的,请重新为所有用户安装字体文件(右键点击xxx.ttf或者xxx.otf,然后“为所有用户安装”),然后运行fc-cache
。
问:在VSCode的编译过程中出现extractbb --versionsh: extractbb: command not found
。
答:原因可能和VSCode本身执行方式有关,有待排查。临时解决方案为在命令行中运行xelatex xxx.tex
看是否报错,如果出现类似的编译错误,请使用xelatex xxx.tex -shell-escape
。
如果大家还有什么问题也可以在下面留言,我会尽力解决。