mcpField
B
bibtex-hygiene

bibtex-hygiene

github.com/kalarislabs文档处理7359 次安装3 天前更新
代码仓库

关于 bibtex-hygiene

用于检查和清理 LaTeX 文稿 BibTeX 文件的技能,结合内置检查器处理元数据问题,并在构建中核验引用。

主要功能

  1. 01检查 BibTeX 文件
  2. 02检测重复键和重复文献
  3. 03核对必需字段与格式
  4. 04安全规范部分字段
  5. 05检查构建日志中的引用

适用场景

  1. 01投稿前查找重复参考文献
  2. 02修正 DOI 和作者元数据
  3. 03统一参考文献格式
  4. 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 会把读者引向别人的论文。

工作流

  1. 检查。 对稿件使用的每个 .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 表示输入无法解析。

  2. 先修复错误,按以下顺序处理:

    • duplicate-key:两个条目使用了相同的键,因此 LaTeX 会静默采用第一个。重命名其中一个,并更新 \cite{} 调用(grep -rn "\\cite.*{oldkey" *.tex)。
    • duplicate-work:同一篇论文使用了两个键(DOI 或标题相同)。保留一个,并将引用改指向该条目。
    • missing-field:从出版商页面或 Crossref 补充字段,切勿凭记忆填写。
    • doi-format / year-format / author-format:根据权威记录修正。
  3. 然后处理警告:

    • 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:作者少于三人时,列出所有作者。
  4. 核实预印本。 对每条 preprint 注释,检查是否已有经过同行评审的版本(在 Crossref/OpenAlex 上搜索标题,或使用 citation-verification 技能)。 引用已发表版本;如果出版渠道允许,则在 eprint 中保留 arXiv ID。

  5. 规范化(可选,仅进行安全的机械修正:不带前缀的 DOI、页码范围使用 --、字段顺序一致):

    python scripts/bib_lint.py references.bib --fix references.clean.bib
    diff references.bib references.clean.bib   # review before replacing
    
  6. 验证构建。 编译并查看日志: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