【问题标题】:Beamer: use the document main font in plots when using tikzDeviceBeamer:使用 tikzDevice 时在绘图中使用文档主字体
【发布时间】:2018-03-20 20:05:33
【问题描述】:

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

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

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

Heres 是一个使用 tikz 的简单投影仪演示。如何使绘图具有相同的 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)
```

【问题讨论】:

    标签: r knitr r-markdown beamer tikzdevice


    【解决方案1】:

    你需要告诉 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图中字体样式一致性的人可能太少了。无论如何,这是我喜欢德语的首要原因 :) 请在可以/想要的时候接受答案。
    • @YihuiXie 你的意思是你喜欢德国人是因为我们很可爱很迂腐吗?我感到很荣幸! ;-)
    • @CL。哈哈,是的,“可爱迂腐”,或者“一丝不苟”。
    猜你喜欢
    • 2014-02-27
    • 1970-01-01
    • 2014-12-02
    • 2023-03-26
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多