使用knitr和.Rnw for LaTeX,如何在PDF输出中打印完整的参考书目?
我似乎无法通过黑客破解所有的可能性,在RStudio的PDF输出中插入完整的参考书目,使用knitr和.Rnw for LaTeX,如何在PDF输出中打印完整的参考书目?,r,pdf,latex,knitr,bibliography,R,Pdf,Latex,Knitr,Bibliography,我似乎无法通过黑客破解所有的可能性,在RStudio的PDF输出中插入完整的参考书目,knitr、一个.Rnw脚本和“编译PDF”按钮。PDF中所需的文本将是引用作品的详细信息 这是一个小人国bibtex文件,名为jabrefbibtest.bib,保存在工作目录中 @Book{GreentargetEngagement2012, Title = {"2012 - In - House Counsel New Media Engagement Surve
knitr
、一个.Rnw脚本和“编译PDF”按钮。PDF中所需的文本将是引用作品的详细信息
这是一个小人国bibtex文件,名为jabrefbibtest.bib
,保存在工作目录中
@Book{GreentargetEngagement2012,
Title = {"2012 - In - House Counsel New Media Engagement Survey"},
Author = {"Inside Counsel "},
Publisher = {"Greentarget"},
Year = {"2012"},
Pages = {"20"},
Plots = {"9"},
Tables = {"0"},
Url = {"http://www.greentarget.com/wp-content/uploads/2012/01/2012GTZGICSurveyReportFinal-WebsiteVersion.pdf"}
}
@Book{CitiprivateBank,
Title = {"Intellectual Leadership with Law Watch"},
Author = {""},
Publisher = {""},
Year = {"2008"},
Pages = {"2"},
Plots = {"1"},
Tables = {"4"},
Url = {"http://www.citigroup.com/privatebank/lawassociates/pdfs/lawwatch/slipsheet.pdf"}
}
精简后的.Rnw
脚本
\documentclass[11pt]{article}
\usepackage[backend=bibtex]{biblatex}
% \addbibresource{} # not sure if this is needed
\begin{document}
<<bibbackground, echo=FALSE, include=FALSE>>=
setwd("~/R/knitr docs/")
Sys.setenv(TEXINPUTS=getwd(),
BIBINPUTS=getwd(),
BSTINPUTS=getwd())
@
\bibliographystyle{plain}
\bibliography{jabrefbibtest}
Here is one citation \cite{GreentargetEngagement2012} and here is a second \cite{CitiprivateBank}.
Now do full References show below?
\printbibliography
\end{document}
\documentclass[11pt]{article}
\usepackage[backend=bibtex]{biblatex}
%\addbibresource{}#不确定是否需要此选项
\开始{document}
=
setwd(“~/R/knitr docs/”)
Sys.setenv(TEXINPUTS=getwd(),
bibinput=getwd(),
BSTINPUTS=getwd())
@
\书目样式{plain}
\参考书目{jabrefbibtest}
这里是一个引文{GreentargetEngagement2012},这里是第二个引文{CitiprivateBank}。
下面有完整的参考资料吗?
\印刷书目
\结束{document}
日志:
! Package biblatex Error: '\bibliographystyle' invalid.
See the biblatex package documentation for explanation.
Type H <return> for immediate help.
...
l.59 \bibliographystyle{plain}
Use the package option 'style' instead.
I'm ignoring this command.
! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.60 \bibliography
{jabrefbibtest}
Your command was ignored.
Type I <command> <return> to replace it with another command,
or <return> to continue without it.
LaTeX Warning: Citation 'GreentargetEngagement2012' on page 1 undefined on inpu
t line 62.
[more omitted]
!包biblatex错误:“\书目样式”无效。
有关说明,请参阅biblatex软件包文档。
键入H以获得即时帮助。
...
l、 59\书目样式{plain}
改为使用包选项“样式”。
我忽略了这个命令。
! LaTeX错误:只能在前言中使用。
有关说明,请参阅LaTeX手册或LaTeX配套手册。
键入H以获得即时帮助。
...
l、 60\参考书目
{jabrefbibtest}
你的命令被忽略了。
键入I以用另一个命令替换它,
或者继续没有它。
LaTeX警告:inpu第1页引用“GreentargetEngagement2012”未定义
第62行。
[更多省略]
除了Latex Companion,谢一辉(Yihui Xie)的动态文档R和knitr,还有两个Latex引物和262页的biblatex I手册,都在这些网站复杂的建议中苦苦挣扎。毫无结果
评论后编辑
PDF文件包含以下内容:
参考资料
这是一条引文,这是第二条引文。
下面是否显示了完整的参考信息?正如错误消息告诉您的那样:
\书目样式{plain}
(这不适用于biblatex);改用\usepackage[]{biblatex}
中的样式
选项李>
\参考书目{jabrefbibtest}
必须放在前言而不是正文中\documentclass[11pt]{article}
\usepackage[backend=bibtex]{biblatex}
\bibliography{jabrefbibtest}
% or use \addbibresource{jabrefbibtest.bib}
\begin{document}
Here is one citation \cite{ABFWomenFirstChairs2015} and
here is a second \cite{ACCGCSkills2013}.
Now do full References show below?
\printbibliography
\end{document}
顺便说一句,RStudio可能不支持
biblatex
的默认后端biber
,因此使用了backend=bibtex
选项。我使用下面的设置来获得(注意,我不喜欢在knitr/rmarkdown中更改wd
,并删除了该选项;而且您在Rnw中的密钥与mwe中的密钥不匹配):
\documentclass[11pt]{article}
\usepackage[美国]{babel}
\usepackage[style=apa,backend=biber,bibencoding=latin1]{biblatex}
\声明语言应用{american}{american apa}
\addbibresource{jabrefbibtest.bib}
\开始{document}
=
#setwd(“~/R/knitr docs/”)
Sys.setenv(TEXINPUTS=getwd(),
bibinput=getwd(),
BSTINPUTS=getwd())
@
%\书目样式{plain}
这里是一个引文{GreentargetEngagement2012},这里是第二个引文{CitiprivateBank}。
下面有完整的参考资料吗?
\印刷书目
\结束{document}
在Rnw编织之后,我还必须通过LaTeX编译器运行tex文件,以便第一次呈现引用。我总是将
\subscription{jabrefbibtest}
放在脚本末尾,我希望引用出现的地方。要将.bib文件中的所有引用包含在参考书目中,也就是说,即使是你最后没有引用的,也包括这一行
\nosite{*}
就在第\print书目
行之前,如果注释掉/删除\usepackage[backend=bibtex]{biblatex}
行,会发生什么@本博克:注释掉这一行会产生一个PDF文件——进度!——但是cites是空的[?],没有完整的参考资料。PS谢谢你的编辑。没有意识到我可以格式化bibtex和视图日志。在Rnw文件中使用setwd()
也可能是个坏主意。如果你拿出围兜背景
块会怎么样?非常感谢你抽出时间。我删除了块,但没有改进,PDF也没有生成。查看日志的部分内容是:“LaTeX警告:输入行3上的空` The书目'环境。}。它找不到.bib文件,尽管它在工作目录中。[这就是为什么我认为需要该块;告诉knitr等在哪里找到bibtex文件])尝试显式地将.bib放在\书目{jabrefbibtest.bib}你回答了@Yihui,我留下了我的回答,虽然这是一样的,以防它也能提供信息。谢谢你,Yihui。我运行了你的代码,它生成了cites,但不是我最后想要的全部参考书目。这是PDF,这是一个引文GreentargetEngagement2012,这是第二个花旗私人银行现在做的下面显示了完整的参考资料?很抱歉我说得太慢了,但是你的答案的最后一句话是什么意思,以及“通过LaTeX编译器运行tex文件”是什么意思?我打开miktex并通过它运行.tex文件(RStudio/knitr从Rnw文件生成tex)。这添加了参考资料(在此之前,没有参考章节和引文显示为黑体字)。一旦您运行一次tex文件,只要您不更改引用,您就可以在此之后在RStudio中运行rnw文件。如果您更改引用,则需要重新运行tex文件以使引用再次工作。这可能是Yihui对biber和RStudio的引用。
\documentclass[11pt]{article}
\usepackage[american]{babel}
\usepackage[style=apa,backend=biber,bibencoding=latin1]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{jabrefbibtest.bib}
\begin{document}
<<bibbackground, echo=FALSE, include=FALSE>>=
#setwd("~/R/knitr docs/")
Sys.setenv(TEXINPUTS=getwd(),
BIBINPUTS=getwd(),
BSTINPUTS=getwd())
@
%\bibliographystyle{plain}
Here is one citation \cite{GreentargetEngagement2012} and here is a second \cite{CitiprivateBank}.
Now do full References show below?
\printbibliography
\end{document}