我正在使用bookdown
来输入一些数学课程中的笔记。我想将tikzpictures插入我的书中,即使使用render_book("index.Rmd", "pdf_book")
时它们可以完美呈现,但当我使用时,它们在任何浏览器(我尝试过Chrome,Firefox甚至Internet Explorer)上都根本不显示render_book("index.Rmd", "gitbook")
。同样,当使用preview_chapter
代替render_book
时。
以下是可用于渲染我的Tikz图像的代码:
\def\firstcircle{(0:-0.5cm) circle (1.5cm)}
\def\secondcircle{(0:0.4cm) circle (0.5cm)}
\colorlet{circle edge}{blue!50}
\colorlet{circle area}{blue!20}
\tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{scope}
\clip \firstcircle;
\secondcircle;
\end{scope}
\draw[outline] \firstcircle node {$B$};
\draw[outline] \secondcircle node {$A$};
\end{tikzpicture}
\caption{$A$ as a subset of $B$}
\end{figure}
当我使用pdf_book
时,它很漂亮。如果我使用gitbook
,则不会出现。我尝试做与该问题here中描述的操作类似的操作,即使用相同的块,但是用我的代码替换了该代码(尽管我以我的居中),如下所示:
```{r, echo=FALSE, engine='tikz', out.width='90%', fig.ext='pdf', fig.align='center', fig.cap='Some caption.'}
\def\firstcircle{(0:-0.5cm) circle (1.5cm)}
\def\secondcircle{(0:0.4cm) circle (0.5cm)}
\colorlet{circle edge}{blue!50}
\colorlet{circle area}{blue!20}
\tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
\begin{tikzpicture}
\begin{scope}
\clip \firstcircle;
\secondcircle;
\end{scope}
\draw[outline] \firstcircle node {$B$};
\draw[outline] \secondcircle node {$A$};
\end{tikzpicture}
```
当我这样做时,它再次在pdfbook
中呈现精美,实际上我在gitbook
中得到了进一步的扩展(出现图形标题,并出现“残破的图像链接”符号,我已经尝试过使用各种浏览器,如前所述),但仍然没有图像。
关于如何使它工作的任何想法?
答案 0 :(得分:1)
使用fig.ext='pdf'
,您正在创建一个PDF文件,您的浏览器无法包含该文件。相反,对于所有其他情况,您可以使用fig.ext=if(knitr:::is_latex_output()) 'pdf' else 'png'
之类的东西来将PDF输出与LaTeX和PNG输出一起使用。另外,您可以完全删除fig.ext
并使用默认值。有了这些更改之一,您的示例就可以同时使用HTML / Gitbook和PDF / LaTeX输出。