LaTeX Tips for arXiv

如果有人告诉你 arXiv 上传 LaTeX 特别麻烦,所有参考文献都要放在 tex 文件里,图片都要跟 tex 放在同一层目录下,你千万不要相信,事实上非常简单。

上传

arXiv 支持所有东西一整个 zip 压缩包上传,上传后会自动解压,所以只需要把图片、bbl、tex 文件按如下方式组织即可

1
2
3
4
5
6
.
├── manuscript.tex
├── ref.bbl
├── figure
| └── subfold1
| └── subfold2

注意,是 bbl 文件,不是 bib 文件,arXiv 不支持编译 bib,所以要上传本地编译好的 bbl 文件。

编译

上传完 tex 和相关文件后,下一步便是编译,可以下载编译完成的 PDF。需要仔细核对下生成的 PDF,如果你跟我一样是马大哈,可能会发现所有的参考文献都是 ??。仔细看下面的编译信息,给出的是 latex ‘manuscript.tex’ failed.

慢着,说好的不应该是 pdflatex 么,怎么变成 latex 编译了。原来 arXiv 默认的是采用 latex,根据 https://arxiv.org/help/submit_tex 里面提到的,如果想要采用 pdflatex,需要在 tex 文件的前五行加入 \pdfoutput=1。 重新上传编译后就会发现参考文献的引用都对了。

还有需要提到的一点是,arXiv 目前是采用 TeX Live 2016 来编译。考虑到论文经常会遇到同样的 tex 代码在 MiKTeX 和 TeX Live 编译出来效果不一样的现象,所以这又是一个为什么要用 TeX Live 2016 的原因了。

cleveref

虽然把参考文献的引用搞定了,但我还是遇到了所有用 cleveref 宏包 \cref 命令的引用(公式、图表)全部都还是??。根据http://tex.stackexchange.com/questions/276801/how-does-one-use-cleveref-in-an-arxiv-submission,原来问题出在 cleveref 必须在 hyperref之后 load。为了贴近发表后的效果,我是没有用 hyperref 宏包,但 arXiv 的编译系统会自动添加 hyperref 宏包,这也就是为什么每篇 arXiv 论文都用红色和绿色引用方框的原因了。

避免出现 \cref 引用 ?? 的解决办法是自己在 cleveref 之前 load hyperref,也就是

1
2
\usepackage{hyperref}
\usepackage{cleveref}

Check List

综上所述,把论文从期刊投稿版本变成 arXiv 版本只需要在上传 check 一下下面三件事:

  • 在前 5 行 添加 \pdfoutput=1
  • 显式在 cleveref 之前调用 hyperref
  • 参考文献 bib 文件的路径正确

Change Log

  • 2017-03-28: 第一次提交。

如果您觉得我的文章对您有所帮助,不妨小额捐助一下,您的鼓励是我长期坚持的动力。

Alipay_Middle Wechat_Middle