通常当我在rmarkdown pdf演示文稿中包含r代码时,我想使用整个幻灯片的空间,因此想要并排显示代码和输出。
在纯LaTex
中,我会选择\begin{columns}...\end{columns}
,然后使用lstlistings
或其他一些代码突出显示库手动包含代码/输出。但如果我超过几个代码示例,这证明是乏味的。
现在我想使用RMarkdown进行演示,并希望获得类似的结果。
但是,以下代码会引发错误:
## This is slide 1
\begin{columns}[t]
\begin{column}{0.5\textwidth}
```{r, eval=F}
plot(1:10)
```
\end{column}
\begin{column}{0.5\textwidth}
```{r, echo=F}
plot(1:10)
```
\end{column}
\end{columns}
省略knitr
代码块并用文本替换它们。
我知道它与pandoc
引擎(see here)有关,但是想问一下是否有人找到解决此问题的方法。
答案 0 :(得分:4)
好吧,我可能应该更广泛地关注一下。 这是一个适用于Python的解决方案,但可以很容易地适应Rmarkdown:https://stackoverflow.com/a/26069751/3048453
我最终得到了这段代码:
header.tex
中的
\newcommand{\columnsbegin}{\begin{columns}}
\newcommand{\columnsend}{\end{columns}}
presentation.Rmd
中的
---
title: "Two-column codes in RMarkdown"
author: "My Name"
date: "February 4, 2017"
output:
beamer_presentation:
includes:
in_header: header.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Testslide with Columns
\columnsbegin
\column{.5\textwidth}
```{r, eval=F}
plot(mtcars[, 1:3])
```
\column{.5\textwidth}
```{r, echo=F}
plot(mtcars[, 1:3])
```
\columnsend
这导致了这个