用途:在 R 环境中管理 BibTeX 参考文献全生命周期,包括解析 .bib 文件、从 DOI/ISBN/arXiv ID 生成条目、合并多个文献库、去重并导出格式统一的 .bib 文件。适用于 R Markdown 或 Quarto 项目新建文献库、合并协作者文献、清理复制粘贴积累的重复条目、按标识符批量生成条目以及标准化键名与字段排序。
主要能力:用 RefManageR::ReadBib 解析 .bib 为 BibEntry 对象;用 GetBibEntryWithDOI 从 DOI 获取完整元数据;用 c() 合并多个文献库;按 DOI、标题(Jaro-Winkler 相似度 >0.95)或两者去重;用 sort() 排序并通过 WriteBib 导出。
必要用法:先安装并加载 RefManageR、bibtex、stringdist;解析示例为 RefManageR::ReadBib("references.bib", check = FALSE);导出示例为 RefManageR::WriteBib(sorted_bib, file = "references.bib", biblatex = FALSE)。
限制与注意:DOI 解析依赖 CrossRef API,可能限流,建议批量请求间加 Sys.sleep(1);合并时键冲突不会覆盖,而是经 make.unique(keys, sep = ":") 变为 Smith2020:1,需先手动消歧并保留新旧键对应关系;标题相似度阈值过高可能误删,可改用 method = "doi";注意编码(可用 iconv -f ISO-8859-1 -t UTF-8 old.bib > new.bib 转换)、花括号配对与标题中的 LaTeX 命令。输出文件需通过 ReadBib 与 bibtex::read.bib() 验证可解析、DOI 唯一、条目含键与必要字段。具体收费与平台支持暂未提供。