Knitr/RMarkdown 中准备的 Beamer 演示文稿中的参考文献被截断
References Truncated in Beamer Presentation prepared in Knitr/RMarkdown
我目前正在 RStudio 中准备一个演示文稿(使用 RMarkdown 和 Knitr,输出到 Beamer 演示文稿),其中有很多参考资料。
我使用的是非常典型的 YAML header:
---
title: "Title"
author: "Me"
date: "February 27th, 2016"
output:
beamer_presentation
csl: ../../apa.csl
bibliography: ../../RefenceDesk.bib
---
此演示文稿已编译并且参考文献按应有的方式出现,但不幸的是它们都出现在一张幻灯片上(实际上 运行 离开了页面)。有没有办法让参考文献出现在多张幻灯片上?
{.allowframebreaks}
是 beamer 中多幻灯片参考书目的解决方案。它与常规 pandoc 模板开箱即用(参见 )。但是,knitr
有一个设置可以阻止它,通过在其 beamer 模板中重新定义 \widowpenalties
。您可以验证是否使用 keep_tex: true
.
检查 .tex
文件
在我看来,这是一个错误。一个快速的修复方法是将 \widowpenalties
重置为其默认值。它可以在你的 yaml 前端完成:
---
title: Title
header-includes:
- \widowpenalties 1 150
output:
beamer_presentation
---
然后,您可以这样注明参考部分:
## References {.allowframebreaks}
虽然这超出了使用常规 pandoc 引文模板的范围,但我发现了另一种可用于将参考文献跨幻灯片放置的方法,但它依赖于 natbib
引文包。
在 YAML 前端,我添加了:
---
title: "Title"
output:
beamer_presentation:
citation_package: natbib
bibliography: ../../RefenceDesk.bib
biblio-style: "apalike"
---
参考幻灯片没有标题,我似乎无法调整字体大小(通过在 .Rmd
文件末尾使用 \scriptsize
),但至少它们看起来连贯.
编辑:为了简洁,我删除了 csl: ../../apa.csl
行,因为 natbib 不需要它。
正如上面@David 在评论中所说:
For me it didnt work with ## References {.allowframebreaks} but it worked out with # References {.allowframebreaks}.
我想指出的是,显然要使参考幻灯片正常工作,您必须创建最后一张幻灯片,其标题级别与 slide_level: __
在 YAML节。
因此,用户应设置以下其中一项:
- # 引用 {.allowframebreaks}。对于使用
slide_level: 1
或 的用户
- ## 引用 {.allowframebreaks}。对于使用
slide_level: 2
或 的用户
- ### 引用 {.allowframebreaks}。对于那些使用
slide_level: 3
等等的人...
我目前正在 RStudio 中准备一个演示文稿(使用 RMarkdown 和 Knitr,输出到 Beamer 演示文稿),其中有很多参考资料。
我使用的是非常典型的 YAML header:
---
title: "Title"
author: "Me"
date: "February 27th, 2016"
output:
beamer_presentation
csl: ../../apa.csl
bibliography: ../../RefenceDesk.bib
---
此演示文稿已编译并且参考文献按应有的方式出现,但不幸的是它们都出现在一张幻灯片上(实际上 运行 离开了页面)。有没有办法让参考文献出现在多张幻灯片上?
{.allowframebreaks}
是 beamer 中多幻灯片参考书目的解决方案。它与常规 pandoc 模板开箱即用(参见 knitr
有一个设置可以阻止它,通过在其 beamer 模板中重新定义 \widowpenalties
。您可以验证是否使用 keep_tex: true
.
.tex
文件
在我看来,这是一个错误。一个快速的修复方法是将 \widowpenalties
重置为其默认值。它可以在你的 yaml 前端完成:
---
title: Title
header-includes:
- \widowpenalties 1 150
output:
beamer_presentation
---
然后,您可以这样注明参考部分:
## References {.allowframebreaks}
虽然这超出了使用常规 pandoc 引文模板的范围,但我发现了另一种可用于将参考文献跨幻灯片放置的方法,但它依赖于 natbib
引文包。
在 YAML 前端,我添加了:
---
title: "Title"
output:
beamer_presentation:
citation_package: natbib
bibliography: ../../RefenceDesk.bib
biblio-style: "apalike"
---
参考幻灯片没有标题,我似乎无法调整字体大小(通过在 .Rmd
文件末尾使用 \scriptsize
),但至少它们看起来连贯.
编辑:为了简洁,我删除了 csl: ../../apa.csl
行,因为 natbib 不需要它。
正如上面@David 在评论中所说:
For me it didnt work with ## References {.allowframebreaks} but it worked out with # References {.allowframebreaks}.
我想指出的是,显然要使参考幻灯片正常工作,您必须创建最后一张幻灯片,其标题级别与 slide_level: __
在 YAML节。
因此,用户应设置以下其中一项:
- # 引用 {.allowframebreaks}。对于使用
slide_level: 1
或 的用户
- ## 引用 {.allowframebreaks}。对于使用
slide_level: 2
或 的用户
- ### 引用 {.allowframebreaks}。对于那些使用
slide_level: 3
等等的人...