使用RMarkdown在html_document中使用tikz

时间:2016-12-14 12:58:45

标签: r svg r-markdown tikz

问题: 有没有办法在Rmarkdown文档中使用tikz表示法而无需将文档编译为pdf?

并且(朝着同一方向):

问题 在我想要编译为html的RMarkdown文档中添加多个tikz图形的最佳方法是什么(同时保持flexibilty将文件编译为pdf或word in后期也是如此)?

我已经阅读了很多帖子(例如TikZ in R MarkdownHow can I use TikZ to make standalone (SVG) graphics?)的答案,这些答案会提出类似的问题,但我仍然不完全确定,因此问题也是如此。

我基本上想要运行这段代码

---
output: pdf_document
header-includes: 
  - \usepackage{tikz}
---

## TikZ picture

Some picture

\begin{tikzpicture}
 \draw (0,0) circle (2cm);
\end{tikzpicture}

而不是pdf_document我想要html_document +一些魔法自动将tikz图形转换为html可以理解的东西。有什么建议吗?

1 个答案:

答案 0 :(得分:7)

我刚刚发现您在修改引擎选项时可以在Rmarkdown的代码块中添加tikz代码:

---
output: html_document
---

Some picture

```{r,engine='tikz'}
\begin{tikzpicture}
 \draw (0,0) circle (2cm);
\end{tikzpicture}
```

问题是图形是像素化的,并且不遵守比例。解决这个问题的一种方法可能是改变图形输出的扩展(到pdf)以及块大小选项的宽度和高度(例如等于3英寸):

```{r,engine='tikz',fig.ext='pdf',fig.width=3}
\begin{tikzpicture}
 \draw (0,0) circle (2cm);
\end{tikzpicture}
```

我确定有更好的解决方案,但这是一种使用tikz代码进行html输出的简单方法。