将 R Markdown 转换为 pdf 时的围栏代码块
fenced code blocks when converting R Markdown to pdf
当我将 R Markdown 文档编译为 HTML 文档时,非 R 代码块的格式很好。但是当我将以下 R Markdown 文档编译为 pdf 时,唯一添加的代码格式是在字体中。没有阴影、围栏、高亮等
---
output: pdf_document
---
```
code
```
我不想对输出进行微观管理,我只是想添加一些常识性的格式来清楚地将代码与文章分开。我在 MAc 上使用 TeXShop,引擎如下。
#!/bin/bash
/Library/Frameworks/R.framework/Versions/Current/Resources/bin/Rscript -e "rmarkdown::render(\"\", encoding='UTF-8')"
在 ```
中,您引入了一个普通的 markdown 代码块,而不是 knitr
代码块。但是您期望的输出(围栏、突出显示、阴影)是 knitr
添加到其代码块的样式。
因此,使用 ```{r}
将代码包装在 knitr
块中(如果您不想对代码求值,请使用 eval = FALSE
)。这也可以用于 non-R 代码块:只要不评估代码,语言无关紧要。
但是,对于 non-R 代码,这将导致错误或缺少语法突出显示。要获得正确的语法突出显示,请使用 option engine
if the language is among the supported language engines.
下面的示例显示了一个痛苦降价块、一个评估和未评估的 R 代码块、一个(未评估的)Python 块没有突出显示,最后两个(未评估的)Python 块正确突出显示.
---
output:
pdf_document
---
```
Plain markdown code block.
```
```{r}
print("This is a knitr code chunk.")
```
```{r, eval = FALSE}
print("This is a knitr code chunk that isn't evaluated.")
```
Chunk with Python code (borrowed from *wrong* (no) highlighting:
```{r, eval = FALSE}
if self._leftchild and distance - max_dist < self._median:
yield self._leftchild
```
Chunk with Python code, *correct* highlighting:
```{r, eval = FALSE, engine = "python"}
if self._leftchild and distance - max_dist < self._median:
yield self._leftchild
```
Chunk with Python code, *correct* highlighting (alternative notation):
```{python, eval = FALSE}
if self._leftchild and distance - max_dist < self._median:
yield self._leftchild
```
当我将 R Markdown 文档编译为 HTML 文档时,非 R 代码块的格式很好。但是当我将以下 R Markdown 文档编译为 pdf 时,唯一添加的代码格式是在字体中。没有阴影、围栏、高亮等
---
output: pdf_document
---
```
code
```
我不想对输出进行微观管理,我只是想添加一些常识性的格式来清楚地将代码与文章分开。我在 MAc 上使用 TeXShop,引擎如下。
#!/bin/bash
/Library/Frameworks/R.framework/Versions/Current/Resources/bin/Rscript -e "rmarkdown::render(\"\", encoding='UTF-8')"
在 ```
中,您引入了一个普通的 markdown 代码块,而不是 knitr
代码块。但是您期望的输出(围栏、突出显示、阴影)是 knitr
添加到其代码块的样式。
因此,使用 ```{r}
将代码包装在 knitr
块中(如果您不想对代码求值,请使用 eval = FALSE
)。这也可以用于 non-R 代码块:只要不评估代码,语言无关紧要。
但是,对于 non-R 代码,这将导致错误或缺少语法突出显示。要获得正确的语法突出显示,请使用 option engine
if the language is among the supported language engines.
下面的示例显示了一个痛苦降价块、一个评估和未评估的 R 代码块、一个(未评估的)Python 块没有突出显示,最后两个(未评估的)Python 块正确突出显示.
---
output:
pdf_document
---
```
Plain markdown code block.
```
```{r}
print("This is a knitr code chunk.")
```
```{r, eval = FALSE}
print("This is a knitr code chunk that isn't evaluated.")
```
Chunk with Python code (borrowed from *wrong* (no) highlighting:
```{r, eval = FALSE}
if self._leftchild and distance - max_dist < self._median:
yield self._leftchild
```
Chunk with Python code, *correct* highlighting:
```{r, eval = FALSE, engine = "python"}
if self._leftchild and distance - max_dist < self._median:
yield self._leftchild
```
Chunk with Python code, *correct* highlighting (alternative notation):
```{python, eval = FALSE}
if self._leftchild and distance - max_dist < self._median:
yield self._leftchild
```