关于 bibtex-hygiene
用于检查和清理 LaTeX 文稿 BibTeX 文件的技能,结合内置检查器处理元数据问题,并在构建中核验引用。
主要功能
- 01检查 BibTeX 文件
- 02检测重复键和重复文献
- 03核对必需字段与格式
- 04安全规范部分字段
- 05检查构建日志中的引用
适用场景
- 01投稿前查找重复参考文献
- 02修正 DOI 和作者元数据
- 03统一参考文献格式
- 04编译后检查未解析引用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill bibtex-hygiene安装后在 Claude Code 中输入/bibtex-hygiene确认已加载。
附带文件scripts/bib_lint.py
详细介绍
BibTeX 规范
整洁的参考文献列表关系到正确性,而非外观:重复条目会虚增参考文献数量,缺失字段会在 PDF 中显示为“?”,首字母缩写未大写会让审稿人觉得不够严谨,而错误的 DOI 会把读者引向别人的论文。
工作流
-
检查。 对稿件使用的每个
.bib文件运行随附的检查器:python scripts/bib_lint.py references.bib python scripts/bib_lint.py references.bib --json > bib-report.json # for programmatic triage退出代码
0表示无问题,1表示发现问题,2表示输入无法解析。 -
先修复错误,按以下顺序处理:
duplicate-key:两个条目使用了相同的键,因此 LaTeX 会静默采用第一个。重命名其中一个,并更新\cite{}调用(grep -rn "\\cite.*{oldkey" *.tex)。duplicate-work:同一篇论文使用了两个键(DOI 或标题相同)。保留一个,并将引用改指向该条目。missing-field:从出版商页面或 Crossref 补充字段,切勿凭记忆填写。doi-format/year-format/author-format:根据权威记录修正。
-
然后处理警告:
title-case:用花括号括起首字母缩写、专有名词以及化学符号或基因符号:title = {{BERT}: Pre-training of Deep Bidirectional Transformers},{Bayesian}、{CRISPR}-{Cas9}、{\textit{E. coli}}。 只括起单词,不要括起整个标题。将整个标题括起来会破坏句首字母大写样式。doi-url:存储不带前缀的 DOI(10.1038/s41586-021-03819-2)。样式会添加解析器前缀。author-others:作者少于三人时,列出所有作者。
-
核实预印本。 对每条
preprint注释,检查是否已有经过同行评审的版本(在 Crossref/OpenAlex 上搜索标题,或使用citation-verification技能)。 引用已发表版本;如果出版渠道允许,则在eprint中保留 arXiv ID。 -
规范化(可选,仅进行安全的机械修正:不带前缀的 DOI、页码范围使用
--、字段顺序一致):python scripts/bib_lint.py references.bib --fix references.clean.bib diff references.bib references.clean.bib # review before replacing -
验证构建。 编译并查看日志:
grep -i "warning.*citation\|undefined" main.log。 每个\cite都必须能解析,且不能有条目显示为??。
值得遵循的规范
| 主题 | 规则 |
|---|---|
| 键 | authorYEARword,使用小写 ASCII,例如 vaswani2017attention。不同作品不得重复使用同一个键 |
| 作者 | Last, First and Last, First。机构作者使用双花括号:{{World Health Organization}} |
| 出版渠道 | 同一文件中对每个出版渠道使用同一种拼写(根据期刊样式,选择全名或 ISO4 缩写) |
| 会议论文 | 使用带 booktitle 的 @inproceedings,而不是带 journal 的 @article |
| 软件/数据 | 使用(BibLaTeX 的)@software / @dataset,或带有 version、doi/url、year 的 @misc |
| Unicode | 使用 biber 时保留 UTF-8;使用传统 BibTeX 时转义重音符号({\"u}) |
| URL + DOI | 如果有 DOI,就删除出版商 URL;仅网络来源保留 url(并附上 urldate) |
反模式
- 凭记忆或借助 LLM 生成 BibTeX。请始终从出版商、Crossref(
https://api.crossref.org/works/{doi}/transform/application/x-bibtex)、DBLP 或参考文献管理器导出。 - 不加核实地复制 Google Scholar 的 BibTeX:它经常缺少 DOI、使用错误的条目类型,并会错误处理大小写。
- 为了“修正”大小写而用双花括号括起整个标题。
- 在带 DOI 的文章中保留
note = {Accessed ...}。
相关技能
citation-verification:检查每个条目是否与真实记录相符(可发现虚构的参考文献)。reference-manager-interop:在 Zotero/Mendeley/EndNote 导出、RIS、CSL-JSON 和 BibTeX 之间转换。citation-management:从文献数据库中搜索并检索参考文献。
评论
支持 Markdown