Skip to content

latex-lint:LaTeX 写作规范检查 ​

写论文带脚本,结果可复核Python 3.9+,无第三方依赖下载源码(ZIP)

按论文写作规范检查 LaTeX 源文件,33 条规则,每条结果带文件、行号和对应的规范条款。

能做什么 ​

用脚本对 LaTeX 源文件做机械检查,再由 Agent 逐条判断真假、给出改法。规则来自课题组整理的论文写作规范:

类别检查什么
结构标题超过 15 个词;摘要不在 150~200 词、没有具体数值;结论没有未来工作
引用\ref 引用了不存在的标签;图表没有在正文中被引用;编号公式没有被引用;\cite 的条目在 .bib 中不存在
数学行间公式结尾没有标点;sin、max 写成斜体;$Loss$ 这样的多字母变量
写作缩写没有定义,或者只在摘要中定义;句子以数学符号开头;dataset 和 data set 混用;“we”和被动句混用
版面负的 \vspace、geometry、修改行距(desk reject 的常见原因);插入位图;正文里的 TODO
参考文献标题重复的条目;同一个会议有几种写法
双盲\author、\thanks、致谢、带用户名的 GitHub 链接、“our previous work”、邮箱

全部规则见 rules.md。

安装 ​

装到当前项目(.claude/skills/),macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/latex-lint.zip && mkdir -p .claude/skills && unzip -o latex-lint.zip -d .claude/skills
装到个人目录,所有项目都能用,macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/latex-lint.zip && mkdir -p ~/.claude/skills && unzip -o latex-lint.zip -d ~/.claude/skills
装到当前项目,Windows PowerShell
Invoke-WebRequest https://skills.bnuai.com/download/skills/latex-lint.zip -OutFile latex-lint.zip; Expand-Archive latex-lint.zip -DestinationPath .claude\skills -Force

压缩包从本站下载,不需要 Node.js 或 GitHub。带脚本的技能需要 Python 3.9 以上。更新时重新下载解压、覆盖原文件夹即可。

怎么用 ​

在论文所在的目录打开 Agent,直接说:

text
我下周要投一个双盲会议,帮我检查一下 paper/ 目录里这篇论文的 LaTeX,只汇报,先不要改。

也可以说“帮我看看论文格式有没有问题”“投稿前检查一下 tex”。Agent 会运行检查脚本,逐条打开原文确认,把真问题和误报分开列出来。

示例 ​

对一篇故意写了很多问题的示例论文运行检查(节选):

text
# LaTeX 检查结果:main.tex

正文约 149 词,图 2 个,表 0 个,引用 2 篇(.bib 中共 2 条)。
发现 8 处必须改、13 处建议改、7 处请确认。

## 必须改(8)
- [margins] main.tex:3 用 geometry 修改页边距。私自调整版面是 desk reject 的常见理由(规范 3.3)
- [anon-author] main.tex:5 匿名投稿:\author 中有作者信息(规范 3.3)
- [undefined-ref] main.tex:27 引用了不存在的标签:tab:missing(规范 3.3)
- [cite-missing] main.tex:36 引用的 missing2020 在 .bib 文件中不存在(规范 3.3)
- [anon-link] main.tex:36 匿名投稿:链接中有 GitHub 用户名 zhangsan,改用 anonymous.4open.science 等匿名链接(规范 3.3)
...

## 建议改(13)
- [math-function] main.tex:13 公式中的函数名 sin 应该用正体,写成 \sin(规范 3.1)
- [display-punct] main.tex:14 行间公式结尾没有标点。公式是句子的一部分,结尾要加逗号或句号(规范 3.2)
- [abbr-abstract-only] sections/intro.tex:2 缩写 LLM 只在摘要中给出了全称。摘要和正文是独立的,正文第一次出现时要再写一次全称(规范 3.2)
...

直接运行脚本 ​

不通过 Agent 也可以直接运行:

bash
python3 skills/latex-lint/scripts/texlint.py 论文目录/ --anonymous   # 双盲投稿
python3 skills/latex-lint/scripts/texlint.py main.tex                # 单个文件(会读取同目录的 .bib)
python3 skills/latex-lint/scripts/texlint.py paper.zip --json         # Overleaf 导出的 zip,输出 JSON

在论文目录放一个 .latexlint.json 可以调整规则,见定制成课题组的技能。

权限说明 ​

只读取论文文件,不联网,不执行其他命令,不编译 LaTeX。

局限 ​

  • 规则是启发式的,会有误报,例如把领域通用的缩写报成“没有定义”。Agent 会帮你区分,但最终要自己判断。
  • 只检查规范,不评价论证和写作质量。参考文献是否真实存在用 cite-verify 核对,编译后的 PDF 用 submission-check 检查。