如果有人告诉你 arXiv 上传 LaTeX 特别麻烦,所有参考文献都要放在 tex 文件里,图片都要跟 tex 放在同一层目录下,你千万不要相信,事实上非常简单。
上传
arXiv 支持所有东西一整个 zip 压缩包上传,上传后会自动解压,所以只需要把图片、bbl、tex 文件按如下方式组织即可
1 | . |
注意,是 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 | \usepackage{hyperref} |
Check List
综上所述,把论文从期刊投稿版本变成 arXiv 版本只需要在上传 check 一下下面三件事:
- 在前 5 行 添加
\pdfoutput=1
- 显式在
cleveref
之前调用hyperref
- 参考文献 bib 文件的路径正确
Change Log
- 2017-03-28: 第一次提交。
如果您觉得我的文章对您有所帮助,不妨小额捐助一下,您的鼓励是我长期坚持的动力。