Tikzpictures 未在 gitbook 中呈现,即使它们出现在 pdf_book
Tikzpictures not rendering in gitbook, even though they appear in pdf_book
我正在使用 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
中更进一步(出现图形标题并出现 "broken image link" 符号,我试过跨浏览器,如上所述)但仍然没有图像。
关于如何让它工作的任何想法?
fig.ext='pdf'
您正在创建一个您的浏览器无法包含的 PDF 文件。相反,您可以使用 fig.ext=if(knitr:::is_latex_output()) 'pdf' else 'png'
之类的东西将 PDF 输出与 LaTeX 和 PNG 输出一起用于所有其他情况。或者,您可以完全删除 fig.ext
并使用默认值。鉴于这些更改之一,您的示例对我来说适用于 HTML/Gitbook 和 PDF/LaTeX 输出。
我正在使用 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
中更进一步(出现图形标题并出现 "broken image link" 符号,我试过跨浏览器,如上所述)但仍然没有图像。
关于如何让它工作的任何想法?
fig.ext='pdf'
您正在创建一个您的浏览器无法包含的 PDF 文件。相反,您可以使用 fig.ext=if(knitr:::is_latex_output()) 'pdf' else 'png'
之类的东西将 PDF 输出与 LaTeX 和 PNG 输出一起用于所有其他情况。或者,您可以完全删除 fig.ext
并使用默认值。鉴于这些更改之一,您的示例对我来说适用于 HTML/Gitbook 和 PDF/LaTeX 输出。