ArXiv 不会为其文件编译许多(衍生)辅助文件,例如 .bbl 和 .ind 文件,这些文件需要与原始源一起上传。
这样做的主要问题是这些文件对版本错误非常敏感。因此,要将文档上传到 arXiv,我必须以某种方式获取降级版本的 LaTeX。
是否有已知的便携式 LaTeX 发行版或预装了大量 LaTeX 软件包的实时 USB 系统,适用于(当前)arXiv 的版本(不需要做太多工作来设置(例如安装另一个操作系统或手动下载软件包)?或者还有其他方法可以避免所有这些麻烦吗?我可以直接下载、运行并完成吗?
我知道有一些黑客可以让你上传没有源文件的 .pdf,但是我宁愿不这样做(尽管如果没有无忧的解决方案,我想我会这样做 --- 老实说,我现在已经厌倦了)。
答案1
我找到了一种比较简单的解决方案。要求是几 GB 的磁盘空间和足够的权限来运行 docker(我在一台机器上确实遇到了一些问题)。这是基于找到的说明这里. 特别感谢 makisyu 维护本指南中使用的 texlive 2016 图像。
步骤如下(自2018年10月14日起,arXiv的texlive升级时需要修改):
- 安装Docker(Ubuntu 在标准存储库中有它;我猜所有主要发行版也都有它)。
- 导航到包含您的 tex 文件的目录。
- 使用以下命令安装 texlive 2016 镜像:
docker pull makisyu/texlive-2016
- 通过命令运行 pdflatex 所需的次数
docker run --rm --volume $PWD:/workdir --workdir /workdir makisyu/texlive-2016 pdflatex my_texfile.tex
(替换my_texfile.tex
为适当的文件名)。 - 使用命令运行 biber
docker run --rm --volume $PWD:/workdir --workdir /workdir makisyu/texlive-2016 biber my_texfile
(my_texfile
再次用适当的文件名替换)。 - 运行任何其他必要的命令来生成所需的辅助文件。
Christian Clason 在评论中建议,最后三个步骤可以用 代替docker run --rm --volume $PWD:/workdir --workdir /workdir makisyu/texlive-2016 latexmk my_texflile.tex
。我没有测试过(现在也不能),但它应该会使这个过程稍微容易一些。
答案2
也可以同时安装 2016 版的 texlive 和当前版本——可以在以下位置找到:ftp://tug.org/historic/systems/texlive/2016biblatex
,其中包含冻结前所有软件包(包括和)的最新版本biber
——只需在编译前更改环境变量即可。例如,在 Linux 或 macOS 下使用 bash,您可以打开 shell,切换到相应的目录,然后
- 删除全部辅助文件(尤其
*.bbl
是等biblatex
!) - 设置路径(假设您使用标准安装位置):
- Linux:
export PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATH
- 苹果系统:
export PATH=/usr/local/texlive/2016/bin/x86_64-darwin:$PATH
- 视窗:
set path=c:\texlive\2016\bin\win32;%path%
- Linux:
latexmk my_file.tex
latexmk -c
zip
所有内容并上传到 arXiv(他们将忽略所有他们不使用的文件,例如*.pdf
或*.bib
)。
这对我有用(我把它放在一个名为的脚本中arxivmk
)。
编辑:我刚刚看到@samcarter 已经在评论中提出了这个建议;也许这些细节仍然有帮助。