1

我正在尝试创建一个使用 tikz 设备进行绘图输出的 Rmd 文档模板。通常,在 Rweave (sweave) 文档中执行相同操作时,tikz 图形中的字体与文档中的字体相同,因为 tikz 接管了设置字体的文档前导。

在 Rmarkdown 中,我只能在设置块选项时实现这一点external = F。这样,tikz grpahics 就不会被预编译。

但是我想使用这种外部性,并且在最终的 pdf 输出中的图形中仍然具有相同的字体。

Heres 是一个使用 tikz 的简单投影仪演示。如何使绘图具有相同的无字体?

---
title: "TikZ"
author: "Martin Schmelzer"
date: "10/9/2017"
output: beamer_presentation
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, dev = "tikz")
```

## Slide with Plot

```{r pressure}
plot(pressure)
```
4

1 回答 1

3

你需要告诉tikzDevice你正在使用 beamer 类,否则它不知道并且会假设一个正常的\documentclass{article}. 如果您查看帮助页面?tikzDevice::tikz,您可能会看到可以通过选项声明文档类tikzDocumentDeclaration,例如,

options(tikzDocumentDeclaration = '\\documentclass{beamer}')

完整示例(我减小了绘图大小,以便您可以在绘图中更清楚地看到字体样式):

---
title: "TikZ"
author: "Martin Schmelzer"
date: "10/9/2017"
output: beamer_presentation
---

```{r setup, include=FALSE}
options(tikzDocumentDeclaration = '\\documentclass{beamer}')
knitr::opts_chunk$set(echo = FALSE, dev = "tikz")
```

## Slide with Plot

```{r pressure, fig.width=5, fig.height=4}
plot(pressure)
```

投影仪和 R Markdown 中的绘图

于 2017-10-09T17:10:54.210 回答