我想用中的代码knitr
创建PDF 报告以引用。但是,文内引用始终未定义,并且不会打印任何参考书目。相同的参考书目与存储在同一文件夹中且包含相同引用、相同文件路径等的纯文档完美兼容。但是,对于所有参考文献(也使用),我必须编译两次。我认为这可能是 的问题(编译仅运行一次),但对图表的引用运行良好。知道使用时参考书目可能出现什么问题以及如何解决问题吗?LaTeX
RStudio
biblatex
.tex
.bib
hyperref
knitr
hyperref
knitr
梅威瑟:
\documentclass{article}
\usepackage[style=authoryear-comp, maxnames=1, bibencoding=utf8, backend=biber]{biblatex}
\bibliography{ZoteroOutput.bib}
\begin{document}
According to the literature \parencite{gonzalez2003} we can assume...
\printbibliography
\end{document}
来自文件log
:
Package biblatex Warning: Please (re)run Biber on the file:
(biblatex) mwe
(biblatex) and rerun LaTeX afterwards.
答案1
RStudio 允许您使用自定义 LaTeX 程序接着就,随即
- 您可以设置一个脚本来执行适当的处理
- 对此有自动解决方案,例如
latexmk
,像这样:(Sys.setenv(RSTUDIO_PDFLATEX = "/Library/TeX/texbin/latexmk")
或者任何路径)
另一个选择是 RStudio 允许为项目指定构建工具。这可能是
- Makefile
- 或者再次自定义脚本
此外,您可能想告诉 RStudio 开发人员在 Sweave 文档中需要有参考书目。您可以告诉他们我也需要它 :-)
答案2
knitr
使用withLaTeX
代码来RStudio
生成PDF 以供引用实际上非常容易biblatex
。
您必须使用bib_engine = "biber"
包tinytex::latexmk
内的选项knitr::knit2pdf
。
就像这里一样:knitr::knit2pdf(file.Rnw, bib_engine = "biber")
答案3
我认为问题出在你身上backend
,因为 Rstudio 用于texi2dvi
编写 pdf,因此它不知道biber
。
尝试改变:
\usepackage[backend=biber]{biblatex}
和
\usepackage[backend=bibtex]{biblatex}
在序言中。
通常这是可行的。
答案4
当我按两次编译按钮时,这个功能就起作用了。这只是一个丑陋的系统调用biber
。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{Doe,author={John Doe},title={Title}}
\end{filecontents}
\usepackage[backend=biber]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
Test \cite{Doe}
\printbibliography
\end{document}
<<biber>>=
system(paste("biber", sub("\\.Rnw$", "", current_input())))
@