我想在bookdown
文档中添加一个 TikZ 图形,以包含一些精美的图形。
我的主要输出格式是 LaTeX,这意味着我基本上可以在 Rmarkdown 文件中逐字包含 TikZ 图形,它会渲染得很好。然而,有两个问题困扰着我:
- 我希望 TikZ 图形成为图形环境的一部分(用于编号、标题等)。
- 我希望能够将相同的代码呈现给 PDF (LaTeX) 和 Gitbook (HTML)。
现在我有以下块,当我渲染为 pdf 时,它可以很好地生成相关图形作为图形。
```{r, echo=FALSE, engine='tikz', out.width='90%', fig.ext='pdf', fig.cap='Some caption.'}
\begin{tikzpicture}[scale=.7]
\draw [fill=gray!30,very thick] (0,-1) rectangle (5,1);
\draw [very thick] (5, 0) -- (13,0);
\node [below] at (2,-1) {\large Hello};
\node [below, align=center] at (0,-1) {\large Two\\ lines};
\end{tikzpicture}
```
但是,代码存在两个问题:
knitr
渲染到 gitbook(使用andbookdown
)时,我没有得到任何输出。但是,我确实得到了图形标题,如果我渲染html_document
它,它也可以工作,我可以看到图形。- 对于 PDF,文本使用计算机现代字体呈现。我真的很想更改它,并且 LaTeX 文档中的主要字体已经设置为其他字体。但是,由于代码是由 TikZ 引擎在本地渲染然后插入的,因此它不是完整 LaTeX 文档的一部分。我可以在渲染代码之前添加一些 TikZ 引擎包含的 LaTeX 选项、包等吗?
如果还有其他方法可以将 TikZ 代码包含在图形环境中,那么我很高兴知道。
更新:我想第二点可以通过设置文件engine.opts = list(template = "latex/tikz2pdf.tex")
中包含 LaTeX 的必要设置来解决tikz2pdf.tex
。该文件是使用 LaTeX 读取的,但我想用它xelatex
来解析文件,因为我使用的是fontspec
LaTex 包。无论如何都可以改变吗?