ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ACM 论文提交 arXiv 报 line number 错误:TeX 源码排查与配置骨架

ACM 论文提交 arXiv 报 line number 错误:TeX 源码排查与配置骨架 1. ACM 论文提交 arXiv 被 line number 卡住的真实场景你投 ACM 会议或期刊本地用sample-manuscript.tex编译一切正常PDF 也漂亮结果上传 arXiv 后状态直接变成on-hold邮件里写着Line numbers: Your article is currently in on-hold status because it contains line numbers in margins, which arXiv does not allow.翻译成人话就是arXiv 不允许正文两侧出现行号而你的 PDF 里每一行左边都挂着数字。这个坑我第一次踩的时候也懵因为本地看 PDF 明明没觉得哪里不对后来才发现是 ACM 模板默认开了review选项review会加载lineno宏包把行号打到页边距上。arXiv 的自动检查会扫描 PDF 文本层和版面特征一旦检测到连续的行号序列就直接把稿件挂起不让你进入submitted状态。核心检索词先摆清楚arXiv 投稿、line number 报错、TeX 源码排查、ACM 模板、lineno宏包冲突。适合谁看正在用 ACM 模板写论文、准备上传 arXiv、被on-hold卡住、想快速定位并修复的作者。你要做的事其实不复杂但必须同时改对源码、清掉中间文件、本地和 arXiv 双端验证否则改一半还是会复发。下面我按“先定位冲突点再给可复制配置最后双端验证”的顺序讲每一步都能直接跟做。2. 上传前用 TaoToken 做一次源码级排查与配置核对在动手改 TeX 之前我习惯先把排查思路和要用的工具链理清楚。TaoToken 在这里的定位不是替代你的编辑器而是帮你快速核对宏包冲突、生成排查清单、验证配置骨架是否自洽。你可以把它当成一个懂 LaTeX 的助手用来问“lineno和review在 ACM 模板里怎么互相触发”这类具体问题。官网入口在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 这个不加 UTM。如果你要长期做论文写作和 Agent 辅助编码可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 只是想验证模型对话能力用模型对话页https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。我试过把 ACM 模板的\documentclass那一行和报错邮件一起丢进去问它能很快指出review选项是行号的源头。但注意TaoToken 只做辅助排查真正的编译验证必须在你本地和 arXiv 上跑别指望它替你编译。拿 Key 的步骤很简单进 console 创建 API Key地址是 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果你用 Claude Code 做批量源码检查参考 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-anthropicutm_campaignrewrite 。注意TaoToken 是辅助排查和配置核对的工具不是 arXiv 的替代品也不是编辑器替代品。最终编译必须走本地 TeX 工具链和 arXiv 官方流程。3. 可复制的宏包注释与配置骨架3.1 定位review选项和lineno加载点ACM 模板的sample-manuscript.tex开头通常长这样\documentclass[manuscript,review,anonymous]{acmart}这里的review就是罪魁祸首。acmart类在检测到review选项时会加载lineno宏包并设置\linenumbers把行号打到页边距。arXiv 不允许这个所以第一步就是把review去掉。改成\documentclass[manuscript]{acmart}如果你还需要匿名审稿anonymous可以保留但review必须删。有些作者会写成[manuscript,review]或[sigconf,review]处理方式一样把review这个 token 删掉即可。3.2 检查手动加载的lineno和\linenumbers有些作者在导言区自己加了\usepackage{lineno} \linenumbers或者\modulolinenumbers[5]这些都要注释掉。配置骨架如下% \usepackage{lineno} % arXiv 不允许行号注释掉 % \linenumbers % 同上 % \modulolinenumbers[5] % 同上如果你用的是review宏包而不是lineno也要一并处理% \usepackage[switch]{lineno} % \usepackage{review}3.3 检查\usepackage{lineno}的间接引入有时候你没直接写lineno但某个自定义宏包或\input的子文件里加载了它。用下面命令全局搜索grep -rn lineno\|linenumbers\|review . --include*.tex --include*.sty --include*.cls输出里凡是出现在你源码目录的都要逐个确认。ACM 官方acmart.cls里的lineno是受review选项控制的你只要不传review就不会触发不用去改acmart.cls本身。3.4 清理中间文件避免旧行号残留改完源码后必须清掉.aux、.bbl、.log、.pdf等中间文件否则旧的行号信息可能残留在 PDF 里。命令latexmk -C rm -f *.aux *.bbl *.blg *.log *.out *.pdf *.synctex.gz然后重新编译latexmk -pdf sample-manuscript.tex3.5 arXiv 上传的源码骨架清单arXiv 要求你上传源码包不是只传 PDF。建议目录结构如下arxiv-submit/ ├── sample-manuscript.tex ├── acmart.cls ├── ACM-Reference-Format.bst ├── references.bib ├── figures/ │ └── ... └── README.txtREADME.txt里写清楚主文件是哪个、编译命令是什么。arXiv 会自动跑latex或pdflatex你本地能编过它基本也能编过。4. 本地与 arXiv 双端验证编译通过4.1 本地验证确认 PDF 无行号编译完成后打开 PDF重点看正文左侧页边距。如果还有数字说明review或lineno没清干净。可以用pdftotext抽文本层检查pdftotext sample-manuscript.pdf - | head -50如果输出里每行前面有连续数字那就是行号还在。正常论文的文本层不应该有这种序列。4.2 arXiv 验证重新上传并 reprocess登录 arXiv进入你的 submission点Update source files把清理后的源码包重新上传然后点Reprocess。等几分钟看状态。如果之前是on-hold修复后重新提交状态应该自动变成submitted。arXiv 的检查逻辑是扫描 PDF 版面行号一旦消失Line numbers这条 condition 就会清掉。如果还有其他 condition比如Missing references或Font embedding那是另外的问题本篇只解决行号。4.3 双端一致性检查表检查项本地命令/动作arXiv 动作预期结果review选项grep review *.tex上传后 reprocess无输出lineno宏包grep lineno *.tex同上无输出中间文件latexmk -C重新上传源码无旧 auxPDF 行号pdftotext检查看 reprocess 状态无行号编译日志grep -i error *.log看 arXiv 编译日志无 error5. 本篇常见错排查5.1 改了review但 arXiv 还是报 line number最常见原因是中间文件没清。你本地改了源码但上传的源码包里还带着旧的.aux或.pdfarXiv 可能直接用了旧 PDF。解决上传前删掉所有中间文件只传.tex、.cls、.bst、.bib和图片。5.2\linenumbers写在\begin{document}之后有些人把\linenumbers放在正文里grep时容易漏。搜索时不要只搜导言区全文搜grep -n linenumbers sample-manuscript.tex5.3 子文件\input里藏了lineno如果你的论文拆成多个.tex文件主文件干净不代表子文件干净。用第 3.3 节的grep -rn全局搜别只搜主文件。5.4acmart.cls版本差异导致review行为不同不同版本的acmart.cls对review的处理略有差异但核心逻辑一致review触发lineno。如果你用的是旧版模板建议从 ACM 官网下载最新acmart.cls避免类文件本身有 bug。5.5 arXiv 编译超时或字体问题被误判为行号有时候 arXiv 报的是Font embedding或Compilation timeout但邮件里混着Line numbers的描述。先确认邮件里Line numbers是不是独立 condition。如果是按本篇处理如果是其他 condition先解决那个。5.6 本地 PDF 没行号但 arXiv 有这种情况通常是 arXiv 用了不同的编译引擎或旧缓存。解决在 arXiv 的Process页面点Recompile或者删掉 submission 重新建一个。另外确认你上传的源码包里没有多余的.pdf。6. 修复后继续用 TaoToken 做接入与验证行号问题解决后如果你还要继续做论文相关的自动化检查、参考文献格式核对、或者用 Agent 批量处理 TeX 源码可以走 TaoToken 的接入流程。API Key 在 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。想先验证模型对话能力用 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。长期做编码和 Agent 任务看 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。最后提醒一句arXiv 的on-hold邮件里如果同时列了多个 condition先逐条解决别只盯着 line number。每次改完源码本地latexmk -C清干净再编译上传前确认源码包里没有中间文件这样基本一次过。
返回列表