Beamer:使用tikzDevice时,在图中使用文档主字体

时间:2017-10-09 14:55:50

标签: r knitr r-markdown beamer tikzdevice

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

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

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

Heres是一个使用tikz的简单beamer演示文稿。如何使图表具有相同的sans字体?

---
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)
```

1 个答案:

答案 0 :(得分: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)
```

a plot in beamer and R Markdown