参考文献和书目与 knitr、ESS 和 AUCTEX

参考文献和书目与 knitr、ESS 和 AUCTEX

我正在尝试使用 ESS、AUCTex、TeXLive 和 natbib 在 knitr Rnw 文档中获取参考资料。

这是一个简单的例子:

\documentclass{article}
\usepackage{natbib}

\begin{document}

<<setup, include=FALSE, cache=FALSE>>=
library(knitr)
@

<<normal-sample, echo=FALSE>>=
x <- rnorm(100)
plot(x)
@

The moon in June is like a big balloon \citep{smith2012}.

\bibliographystyle{apalike}
\bibliography{/path/to/my/references/refs}

\end{document}

当我使用 then 运行theness-swv-knit时,我看到如下错误:ess-swv-PDFM-n rM-n P

软件包 natbib 警告:第 23 页的引用 Smith2014 在输入行 374 上未定义

我认为这是正在发生的事情。运行ess-swv-PDF只需调用pdflatex,但是为了获得正确的引用,需要运行 正确数量的bibtex和命令。pdflatex

M-n r有没有办法通过简单运行来实现这一点M-n P

答案1

未经测试的解决方案(我不使用 ESS):

init.el将其写入您的(或其他 emacs 文件)中:

(defun compile-ESS ()
  "compilation" 
  (ess-swv-PDF)
  (tex-bibtex-file)
  (ess-swv-PDF)
  (ess-swv-PDF)
)
(global-set-key "the shortcut you want to use" 'compile-ESS)

the shortcut you want to use用您想要使用的替换。尽量不要使用已经绑定的。

然后M-n rthe shortcut you want to use你想做的事。

答案2

将变量设置ess-swv-pdflatex-commandslatexmk,以便运行ess-swv.elM-n P)调用latexmk而不是pdflatex似乎有效,尽管我还没有进行广泛的测试。

更新:我已经使用了几天,它latexmk做得正确,因为它只运行生成最终文档所必需的内容。

相关内容