一行命令使用 Docker 编译 Latex 文件,简单优雅
使用 Docker 编译 LaTeX 文章
LaTeX 是一种常用的排版系统,它可以帮助用户创建漂亮、专业的文档。但是,安装和配置 LaTeX 比较麻烦,特别是对于初学者而言。
Docker 是一个开源平台,可以让用户通过容器化技术来构建、发布和运行应用程序。使用 Docker 容器可以避免依赖问题,从而使得在不同平台上的部署变得更加简单。
为了简化 LaTeX 安装和文件编译流程,可以使用下面的步骤,通过 Docker 运行 Latex 镜像来编译 LaTeX 文章。
注意:这里给出的方法需要提前安装好 docker,所以也不是完全适用于纯小白……只是把安装配置 LaTeX 的麻烦转变为了安装配置 Docker 的麻烦。但是胜在一劳永逸!
下面是如何使用 Docker 编译 LaTeX 文章的步骤。
步骤 0: 编写你的 LaTeX 文件
步骤 1:编写 .latexmk 文件
为了方简化编译命令,可以在编写 LaTeX 文件的目录下,额外添加一个名为 .latexmk 的文件,用于告诉 latexmk 脚本如何处理 LaTeX 文档。具体来说,它包含了一些变量和设置,如下所示:
$pdf_mode = 1;
$bibtex_use = 2;
$out_dir = 'build';
$clean_ext = 'aux bbl blg log nav out snm toc';
@default_files = ('main.tex');
其中,
$pdf_mode = 1
表示使用 pdflatex 工具生成 PDF 输出文件,如果文档存在中文字符的话,设为 3 表示使用 xelatex 工具编译;$bibtex_use = 2
表示使用 biber 来管理 BibTeX 参考文献,用于处理参考文献的引用;$out_dir = 'build'
表示生成的输出文件(中间过程文件、pdf 文件等)存储在当前目录的 build 文件夹中;$clean_ext = 'aux bbl blg log nav out snm toc'
设置要清理的文件类型;@default_files = ('main.tex')
表示默认编译main.tex
文件,也就是说,你的要编译的 Latex 文件名为 main.tex ,如果不设置该选项,则默认编译所有 tex 文件。
步骤 2:运行 Docker 命令
接下来,我们需要运行一个 Docker 命令,用于编译 LaTeX 文章。具体来说,命令如下所示:
docker run --rm -t \
--user="$(id -u):$(id -g)" \
--net=none \
-v "$(pwd):/tmp" \
--workdir /tmp \
leplusorg/latex \
latexmk
这行命令使用了 Docker 镜像 leplusorg/latex,运行 latexmk 编译当前工作目录下的 LaTeX 文章。
命令会自动依据 .latexmk
文件中的设定,编译 tex 文件并输出生成的 PDF。如果需要重新编译,只需要修改 LaTeX 文件后再次运行上面的命令即可。
最后
使用到的 docker 镜像为 leplusorg/latex,更多信息参见链接:GitHub - leplusorg/docker-latex: A convenient way to run LaTeX on various platform using Docker (latexmk, pdflatex...). 上面的 docker 命令为 Linux 下的命令,Windows 下的命令在这里可以找到。
本质上是用了 latexml 编译工具对文件进行编译,所以更多选项参见这个工具的使用说明:Using Latexmk - homepage