使用 knitr 的 R markdown 中 LaTeX 图的图形标题
Figure caption for LaTeX diagram in R markdown using knitr
我正在编写要使用 knitr 转换为 .pdf 的 .rmd 文件。在我的 markdown 文件中,我有一系列以块的形式生成的经典 R 图,因此都由 knitr 进行编号和标题。
现在,我想在显示我的 R 图之前添加一个在 LaTeX 中生成的简单因果图并为其添加标题。如何让我的 LaTeX 图按照与其他 R 图相同的顺序编号为图?为我的 LaTeX 图添加标题如何?
我的rmarkdown文档的一个简单例子来说明:
---
title: "Figure captions"
output:
pdf_document:
fig_caption: yes
number_sections: yes
header-includes:
- \usepackage{tikz}
- \usetikzlibrary{arrows, shapes, positioning, calc}
---
# A simple LaTeX diagram with no caption
This LaTeX diagram should register as 'Figure 1':
\tikzset{line/.style = {draw, -latex},
cloud/.style = {draw, ellipse, node distance=3cm,
minimum height=2em}
}
\begin{tikzpicture}[node distance = 6cm, auto]
\node [cloud] (init) {Z1};
\node [cloud, below left = 2 of init] (X1) {X1};
\node [cloud, below right = 2 of init] (Y1) {Y1};
\node [cloud, below = of init] (Z2) {Z2};
\path [line] (X1) -- (Y1);
\path [line] (init) -- ($(X1)!0.5!(Y1)$);
\path [line] (Z2) -- ($(X1)!0.5!(Y1)$);
\end{tikzpicture}
# A simple R plot with a caption
Here is a generic R plot that should be 'Figure 2', but is generated as 'Figure 1':
```{r figure2, echo=FALSE, fig.cap="This should be called Figure 2"}
library(ggplot2)
qplot(mpg, wt, data = mtcars)
```
换句话说,我正在寻找一种方法让 knitr 将我的 LaTeX 图识别为与我的代码块中生成的图相当的图,因此我可以简单地将它算作序列中的另一个图。我该怎么做?
看起来你已经在你的 markdown 文件中包含了 LaTeX 代码,你能把你的 tikz 代码包装在一个标准的 figure 环境中吗?我相信编号是由 LaTeX 完成的,而不是由 knitr 完成的,所以 knitr 不需要知道这是一个数字。
我正在编写要使用 knitr 转换为 .pdf 的 .rmd 文件。在我的 markdown 文件中,我有一系列以块的形式生成的经典 R 图,因此都由 knitr 进行编号和标题。
现在,我想在显示我的 R 图之前添加一个在 LaTeX 中生成的简单因果图并为其添加标题。如何让我的 LaTeX 图按照与其他 R 图相同的顺序编号为图?为我的 LaTeX 图添加标题如何?
我的rmarkdown文档的一个简单例子来说明:
---
title: "Figure captions"
output:
pdf_document:
fig_caption: yes
number_sections: yes
header-includes:
- \usepackage{tikz}
- \usetikzlibrary{arrows, shapes, positioning, calc}
---
# A simple LaTeX diagram with no caption
This LaTeX diagram should register as 'Figure 1':
\tikzset{line/.style = {draw, -latex},
cloud/.style = {draw, ellipse, node distance=3cm,
minimum height=2em}
}
\begin{tikzpicture}[node distance = 6cm, auto]
\node [cloud] (init) {Z1};
\node [cloud, below left = 2 of init] (X1) {X1};
\node [cloud, below right = 2 of init] (Y1) {Y1};
\node [cloud, below = of init] (Z2) {Z2};
\path [line] (X1) -- (Y1);
\path [line] (init) -- ($(X1)!0.5!(Y1)$);
\path [line] (Z2) -- ($(X1)!0.5!(Y1)$);
\end{tikzpicture}
# A simple R plot with a caption
Here is a generic R plot that should be 'Figure 2', but is generated as 'Figure 1':
```{r figure2, echo=FALSE, fig.cap="This should be called Figure 2"}
library(ggplot2)
qplot(mpg, wt, data = mtcars)
```
换句话说,我正在寻找一种方法让 knitr 将我的 LaTeX 图识别为与我的代码块中生成的图相当的图,因此我可以简单地将它算作序列中的另一个图。我该怎么做?
看起来你已经在你的 markdown 文件中包含了 LaTeX 代码,你能把你的 tikz 代码包装在一个标准的 figure 环境中吗?我相信编号是由 LaTeX 完成的,而不是由 knitr 完成的,所以 knitr 不需要知道这是一个数字。