在使用Knitr/RMarkdown制作Beamer演示文稿时,参考文献被截断了。

17

我目前正在使用RMarkdown和Knitr在RStudio中准备演示文稿,并输出到Beamer演示文稿。该演示文稿包含很多参考资料。

我使用了一个相当典型的YAML头:

---
title: "Title"
author: "Me"
date: "February 27th, 2016"
output: 
  beamer_presentation
csl: ../../apa.csl
bibliography: ../../RefenceDesk.bib 
---

这个演示文稿已经编译完毕,参考文献也按照应有的方式出现了,但不幸的是它们都在同一张幻灯片上(而且实际上超出了页面范围)。是否有任何方法可以让参考文献出现在多张幻灯片上?

3个回答

15

{.allowframebreaks} 是解决beamer多页文献的方案。它可以直接在常规pandoc模板中使用(请参见 我的先前回答)。然而,knitr 在其beamer模板中重新定义了\widowpenalties,从而阻止了它的功能。如果您使用keep_tex: true检查.tex文件,就会发现这一点。

在我看来,这是一个错误。快速修复方法是将\widowpenalties重置为其默认值。这可以在您的yaml头信息中完成:

---
title: Title
header-includes:
  - \widowpenalties 1 150
output: 
  beamer_presentation
---

然后,你可以像这样指定参考章节:

## References {.allowframebreaks}

有趣!昨晚我发现了{.allowframebreaks},但它好像没有起作用。我刚刚尝试添加了header-includes - 但实际上似乎并没有改变.tex文件中的值。编译后,如果我打开.tex文件,它仍然显示\widowpenalties 1 10000 - Twitch_City
对我来说,使用 ## References {.allowframebrakes} 没有效果,但使用 # References {.allowframebrakes} 却可以。 - David

9
如评论中的@David所说:
对我来说,使用## References {.allowframebreaks}无效,但使用# References {.allowframebreaks}有效。
我想指出的是,显然要使参考幻灯片起作用,您必须创建一个具有与“YAML”部分中设置的slide_level: __相同标题级别的最后一张幻灯片。
因此,用户应设置以下之一:
- #References {.allowframebreaks}。 对于使用slide_level:1的人, - ## References {.allowframebreaks}。 对于使用slide_level:2的人 - ### References {.allowframebreaks}。 对于使用slide_level:3等等...

1
如果有人因为拼写错误而失败,那就是 {.allowframebreaks} 而不是 {.allowframebrakes}。 - shouldsee
是否可以为所有幻灯片(所有级别)设置allowframebreaks? - John Smith
1
是的,可以。只需在每个幻灯片标题后附加选项{.allowframebreaks}即可。(可能有一种方法可以在yaml选项中更改所有幻灯片的设置,但我不知道。) - Marcelo Avila

3

虽然这超出了使用常规pandoc引文模板的范围,但我发现另一种方法可以用于将参考文献放置在幻灯片上,但它依赖于natbib引文包。

在YAML前置部分中,我添加了:

---
title: "Title"
output: 
  beamer_presentation:
    citation_package: natbib
bibliography: ../../RefenceDesk.bib 
biblio-style: "apalike"
---

参考幻灯片没有标题,我似乎无法通过在.Rmd文件的末尾使用\scriptsize来调整字体大小,但至少它们看起来连贯。编辑:为了简化起见,我删除了csl: ../../apa.csl行,因为natbib不需要它。

1
对我有用!如果有人遇到natbib引起的错误“!LaTeX错误:\ newblock未定义。”,那么只需添加此行\newcommand{\newblock} {} - akhmed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接