tikz
当 Rmarkdown 文件以 PDF 格式呈现时,代码可以正确呈现(这很有意义)。为了使其在 HTML 文件中工作,需要将代码放入 R 块中,并使用附加选项engine = "tikz"
使其工作。
我正在尝试使用该包生成图表pgfplots
。就像tikz
,当 .Rmd 文件以 PDF 格式呈现时,它会生成图表,但似乎没有任何引擎选项使其以 HTML 格式工作,因为engine = "tikz"
会产生错误。
有没有办法pgfplots
在编织为 HTML 文件的 Rmarkdown 文件中生成可视化效果?
我的最小可重复示例:
---
title: "Hello World"
author: "Me"
date: "February 17, 2015"
output: html_document
header-includes:
- \usepackage{tikz}
- \usepackage{pgfplots}
---
## TikZ picture
- Here is a TikZ picutre
\begin{tikzpicture}
\draw (0,0) circle (2cm);
\end{tikzpicture}
- Here is another TikZ picutre
\begin{tikzpicture}
\begin{axis}[xmax=9,ymax=9, samples=50]
\addplot[blue, ultra thick] (x,x*x);
\addplot[red, ultra thick] (x*x,x);
\end{axis}
\end{tikzpicture}
答案1
你可以使用tex4ht
它来转换由 Knitr 和 Pandoc 从 RMarkdown 转换而来的 TeX 文件。它支持 TikZ 和大多数 LaTeX 包。
如果你想将 TikZ 代码转换为 SVG,最好使用特殊的驱动程序,该驱动程序需要手动安装不幸的是。要请求驱动程序,请在文件中添加一行.rmd
:
---
title: "Hello World"
author: "Me"
date: "February 17, 2015"
output: html_document
header-includes:
- \ifdefined\HCode\def\pgfsysdriver{pgfsys-dvisvgm4ht.def}\fi
- \usepackage{tikz}
- \usepackage{pgfplots}
---
## TikZ picture
- Here is a TikZ picutre
\begin{tikzpicture}
\draw (0,0) circle (2cm);
\end{tikzpicture}
- Here is another TikZ picutre
\begin{tikzpicture}
\begin{axis}[xmax=9,ymax=9, samples=50]
\addplot[blue, ultra thick] (x,x*x);
\addplot[red, ultra thick] (x*x,x);
\end{axis}
\end{tikzpicture}
然后可以手动转换文件:
make4ht -f html5+preprocess_input sample.rmd "svg"
制作4小时是 的编译脚本tex4ht
。-f html5+preprocess_input
选项执行make4ht
可以处理 RMD 源的扩展。
这是生成的 HTML 文档: