使用 Beamer 在 Rmarkdown 中发布居中图 class

Issue centering plots in Rmarkdown with Beamer class

我在输出类型为 'beamer presentation.' 的 Rmd 文档中将绘图居中时遇到问题 当输出类型设置为 'pdf_document' 时,相同的代码工作正常。呈现我的文档时出现错误:

! Missing $ inserted.
<inserted text> 
                $
l.74 \end{frame}

pandoc: Error producing PDF
Error: pandoc document conversion failed with error 43

奇怪的是,我在使用命令 render("slideshow.Rmd",output_file = "Demo slideshow.pdf") 编织时以及在 Rstudio GUI 中按 'Knit' 时都遇到了这个错误,但在后者中,我看到了一个无论如何,情节居中的 pdf。

Edit: in hindsight, this may not have been true. When rendering through the console statement, output is printd in the 'console' tab of the console. When rendering through the 'Knit'-button, output is printed to the 'R markdown' tab of the console, and after it finishes it goes back to the 'console' tab automatically, where the error of the previous render statement is still displayed.

我试过了

```{r, results = 'asis', echo = FALSE, fig.width=5, warning=FALSE, message=FALSE}

在这种情况下不会出现错误,但绘图是左对齐的。将此代码块包装在 \begin{center}\end{center} 中让我再次遇到同样的错误。

感谢任何帮助,提前感谢您的任何建议。


slideshow.Rmd

---
title: Oh man
subtitle: this issue is
author: really bugging me
fontsize: 10pt
output: beamer_presentation

---

```{r setup, include=FALSE, warning=FALSE, message=FALSE}
knitr::opts_chunk$set(echo = T)

df=data.frame(x=c(1,2,3),y=c(1,2,3))

```


### This is a title
And this is some text 

```{r, results = 'asis', echo = FALSE, out.width='80%', warning=FALSE, message=FALSE, fig.align='center'}

plot(df$x,df$y)

```

为了将来参考,如果其他人可能会遇到这个问题,我想我已经解决了。我这样设置 'keep_tex=TRUE:

output:
  beamer_presentation:
    keep_tex: true

我调查了第 74 行附近的 tex 文件(因为错误中提到了该行 l.74 \end{frame} 在那之前的两行是:

\begin{center}\includegraphics[width=0.8\linewidth]
  {--path--/Demo slideshow_files/figure-beamer/unnamed-chunk-1-1} \end{center}

这里 --path-- 是缩写。正如我在生成的文件名中指定的那样,演示和幻灯片之间有一个 space。这似乎是导致错误的原因。

render("slideshow.Rmd",output_file = "Demo_slideshow.pdf")

工作正常。