引用在Knitr/RMarkdown中准备的Beamer演示文稿中截断

Twi*_*ity 8 latex r beamer knitr r-markdown

我目前正准备在RStudio中进行演示(使用RMarkdown和Knitr,输出到Beamer演示文稿),其中有很多参考文献.

我使用的是非常典型的YAML标头:

---
title: "Title"
author: "Me"
date: "February 27th, 2016"
output: 
  beamer_presentation
csl: ../../apa.csl
bibliography: ../../RefenceDesk.bib 
---
Run Code Online (Sandbox Code Playgroud)

此演示文稿编译并且引用按原样显示,但不幸的是它们都出现在一张幻灯片上(实际上是在页面上运行).有没有办法让参考文献出现在多张幻灯片上?

sco*_*coa 10

{.allowframebreaks}是投影机中多滑道参考书目的解决方案.它使用常规的pandoc模板开箱即用(参见我之前的回答).但是,knitr通过重新定义\widowpenalties其beamer模板,有一个设置可以阻止它.您可以验证是否检查了该.tex文件keep_tex: true.

在我看来,这是一个错误.快速修复将重置\widowpenalties为其默认值.它可以在您的yaml前端事项中完成:

---
title: Title
header-includes:
  - \widowpenalties 1 150
output: 
  beamer_presentation
---
Run Code Online (Sandbox Code Playgroud)

然后,您可以指示参考部分:

## References {.allowframebreaks}
Run Code Online (Sandbox Code Playgroud)


Mar*_*ila 8

正如上面@David 在评论中所说:

对我来说,它不适用于 ## References {.allowframebreaks},但它适用于 # References {.allowframebreaks}。

我想指出的是,显然是参考幻灯片工作,你必须创建与设置相同的标题级别ES最后的幻灯片slide_level: __YAML部分。

因此,用户应设置以下其中一项:

  • # 引用 {.allowframebreaks}。对于那些使用slide_level: 1, 或
  • ## 引用 {.allowframebreaks}。对于那些使用slide_level: 2, 或
  • ### 引用 {.allowframebreaks}。对于那些使用slide_level: 3等等...