我正在尝试创建一个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)
```
答案 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)
```