如何在knitr文件中为R包自动创建BibTex引用?

时间:2013-10-17 16:38:34

标签: r latex knitr sweave bibtex

我不确定这是R,LaTeX还是BibTex问题。

我正在尝试自动生成包含R软件包引文的.bib文件,然后在最后列出它们。我能够生成BibTex文件,我没有看到BibTex文件有任何问题,但是在编译PDF时没有出现这些条目。

我不确定R是否正确生成BibTex文件,如果某些LaTeX语法错误,或者BibTex文件是否需要预编译或其他什么。我注意到\bibliography{NOT A REAL FILENAME}会产生一个没有抱怨的引用部分,但我认为这不是问题。

最小的工作示例:

\documentclass[10pt]{amsart}
\usepackage[margin=1in, headheight=20pt, footskip=20pt]{geometry}

\begin{document}

<<label='Create References'>>=
require(knitr) # Needed for write_bib()

# Load some packages to the session:
require(xtable)
require(ggplot2)

# Select packages to cite:
citPkgs <- names(sessionInfo()$otherPkgs)
# Write the bibtex file:
write_bib(citPkgs, file="R-Pckgs.bib")
@

\nocite{*}
\bibliographystyle{plain}
\bibliography{R-Pckgs.bib}

\end{document}

任何帮助或建议都将不胜感激。

2 个答案:

答案 0 :(得分:7)

只需将\bibliography{R-Pckgs.bib}替换为\bibliography{R-Pckgs},它就可以正常使用。

在Windows 7上,使用最新的MikTeX安装和当前的R和R软件包,以下工作:

  1. 将可重现的示例放在名为"eg.Rnw"的文件中,然后进行编辑以删除无关的".bib"
  2. 启动R并导航到"eg.Rnw"所在的目录。
  3. library(knitr); knit2pdf("eg.Rnw")
  4. 注意:*.Rnw*.pdf显然有很多工作流程,但如果您想使用knit2pdf()(至少),请确保您从包含要处理的*.Rnw的目录中运行它。

答案 1 :(得分:4)

在文档中添加\nocite{dummycite} - 创建引文,以便打印参考书目。

请注意,如果您的文档中已有其他引文,则此内容已过时。