繁体   English   中英

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

[英]References Truncated in Beamer Presentation prepared in Knitr/RMarkdown

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

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

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

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

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

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

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

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

## References {.allowframebreaks}

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

对我而言,它并没有使用## References {.allowframebreaks},但它使用了#References {.allowframebreaks}。

我想指出的是,显然要使参考幻灯片工作,你必须创建一个最后一张幻灯片,其中标题级别由slide_level: __设置slide_level: __YAML部分。

因此,用户应设置以下之一:

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

虽然这不使用常规的pandoc引用模板,但我发现了另一种可用于将引用放在幻灯片上的方法,但它依赖于natbib引用包。

在YAML前面,我补充说:

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

参考幻灯片没有获得标题,我似乎无法调整字体大小(通过在.Rmd文件的末尾使用\\scriptsize ),但至少它们是连贯的。

编辑:对于简约性,我删除了csl: ../../apa.csl行,因为natbib不需要它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM