You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rmarkdown中使用natbib引用包编译报错,求解决方法

解决Rmarkdown使用natbib编译PDF时的未定义引用问题

问题原因

指定citation_package: natbib后,Rmarkdown会调用LaTeX的natbib包处理引用,但natbib需要额外的编译步骤生成并解析参考文献,而默认的citeproc引擎会自动完成这些流程,因此注释掉该配置后编译正常。此外,bib文件中的无效字段(如month = {00})也可能干扰natbib的解析。

解决方案

方案1:配置natbib选项并确保多轮编译

在YAML头部添加natbib样式选项,同时在RStudio中执行两次编译(第一次生成辅助文件,第二次解析引用):

---
output: 
  pdf_document:
     citation_package: natbib
     natbiboptions: square, numbers, comma, sort&compress
bibliography: test_library.bib
---

如果RStudio未自动多轮编译,可以手动点击两次"Knit"按钮。

方案2:手动执行LaTeX编译流程

若自动编译仍失败,可手动完成以下步骤:

  1. 点击"Knit"生成对应的.tex文件
  2. 用pdflatex编译该.tex文件,生成.aux辅助文件
  3. 运行命令 bibtex your_file.aux(替换your_file为你的文件名)生成.bbl参考文献文件
  4. 再次用pdflatex编译.tex文件两次,完成引用解析

方案3:修正bib文件格式

移除bib文件中无效的month = {00}字段,并修正页码的空格(natbib对格式更敏感):

@article{GoelThakor2008, 
year = {2008}, 
title = {{Overconfidence, CEO selection, and corporate governance}}, 
author = {Goel, Anand M and Thakor, Anjan V}, 
journal = {Journal of Finance}, 
pages = {2737--2784}, 
volume = {63}
}

内容的提问来源于stack exchange,提问作者user416

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:40:09