Will's Blog
873 字
4 分钟
LaTeX 中的命令行操作

基本命令#

# 打开latex
tex
latex

# 显示版本
tex --version
pdftex --version
xetex --version
latex --version
pdflatex --version
xelatex --version
lualatex --version

tlmgr 命令#

设置镜像#

tlmgr option repository https://mirrors.nju.edu.cn/CTAN/systems/texlive/tlnet # 设置镜像
tlmgr option repository ctan # 使用最近的镜像(可能会出现问题)

宏包管理#

更新宏包是有必要的,因为宏包的更新可能会修复一些 bug, 每年的 iso 镜像都有一点问题和过时.

tlmgr update --self # 更新tlmgr
tlmgr update --all # 更新所有宏包(建议安装完后执行一次)
tlmgr update --self --all # 更新tlmgr和所有宏包
tlmgr update --package <package_name> # 更新指定宏包
tlmgr install <package_name> # 安装宏包(最好知道自己在干什么)

常见问题:

  1. tlmgr 自身更新失败

自行下载update-tlmgr-latest.exe , 然后重新执行更新命令.

  1. 运行 tlmgr update —all 时出现错误,升级到一半就停止了

请使用这条命令,强制更新所有宏包.

tlmgr update --all --reinstall-forcibly-removed

texdoc 命令#

texdoc <package_name> # 查看宏包文档
texdoc -l en <package_name> # 查看宏包文档(英文)
texdoc -l zh-cn <package_name> # 查看宏包文档(中文)

用命令行编译文章#

基本编译操作#

最好在工作文件夹中执行编译命令.

# 编译tex文件
pdflatex <file_name>.tex
# 或者
xelatex <file_name>.tex

添加编译选项#

# 遇到错误时不停止编译
pdflatex -interaction=nonstopmode <file_name>.tex
xelatex -interaction=nonstopmode <file_name>.tex

# 双向链接
pdflatex -synctex=1 -interaction=nonstopmode <file_name>.tex
xelatex -synctex=1 -interaction=nonstopmode <file_name>.tex

# 错误行数
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error   <file_name>.tex
xelatex -synctex=1 -interaction=nonstopmode -file-line-error   <file_name>.tex

# 交互式(比如使用minted宏包)
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error   -shell-escape <file_name>.tex
xelatex -synctex=1 -interaction=nonstopmode -file-line-error   -shell-escape <file_name>.tex

解释:

  • -interaction=nonstopmode: 遇到错误时不停止编译.
  • -synctex=1: 双向链接,可以在 pdf 中点击跳转到 tex 文件中.
  • -file-line-error: 显示错误行数.
  • -shell-escape: 交互式,比如用于 minted 宏包.

事实上你可以在 VSCode 配置文件中找到这些选项. 参见文章使用 VSCode 作为 LaTeX 前端

删除中间文件#

# 删除中间文件
rm *.aux *.log *.out *.toc *.synctex.gz

多次编译#

# bib文件更新后需要多次编译
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error   <file_name>.tex
bibtex <file_name>.aux
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error   <file_name>.tex
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error   <file_name>.tex

# 或者
xelatex -synctex=1 -interaction=nonstopmode -file-line-error   <file_name>.tex
bibtex <file_name>.aux
xelatex -synctex=1 -interaction=nonstopmode -file-line-error   <file_name>.tex

latexmk 命令#

我们在使用目录,参考文献等功能时,会遇到需要多次编译的情况,这时可以使用 latexmk 命令,达到只需要一次编译的效果.在 VSCode 中的 latexworkshop 插件中,默认使用 latexmk 命令进行编译.更深入的使用方法可以参考latexmk 文档 .但大多数配置文件并没有使用 latexmk 的全部功能,可以参考这篇文章给出的配置.替换掉文章使用 VSCode 作为 LaTeX 前端中的配置的"latex-workshop.latex.tools"部分和"latex-workshop.latex.recipes"部分,从而达到简化编译的目的. 这里列举一些常用的命令.

# 基本命令
latexmk <file_name>.tex

# 输出pdf
latexmk -pdf <file_name>.tex

# 输出pdf, 并且删除中间文件
latexmk -pdf -c <file_name>.tex

# 输出pdf, 并且删除中间文件, 并且不显示编译信息
latexmk -pdf -c -silent <file_name>.tex

# 输出pdf, 并且删除中间文件, 并且不显示编译信息, 并且不显示警告信息
latexmk -pdf -c -silent -interaction=nonstopmode <file_name>.tex

# 预览结果
latexmk -pdf -pvc <file_name>.tex

# 指定编译器
latexmk -pdf -pdflatex <file_name>.tex
latexmk -pdf -xelatex -synctex=1 -interaction=nonstopmode -file-line-error -shell-escape <file_name>.tex

# 编译bib文件
latexmk -pdf -bibtex <file_name>.tex

其他命令#

在目录C:\texlive\texmf-local\tex\latex\local放入自定义模板或者宏包,需要执行以下命令.

texhash

参考文献#

一份简短的关于 LATEX 安装的介绍

LaTeX 中的命令行操作
https://will-c137.vercel.app/posts/latex中的命令行操作/
作者
Will
发布于
2023-02-28
许可协议
CC BY-NC-SA 4.0