我正在制作一个rmarkdown文档,将其编织成PDF,并有一个图(图1)和一个表(表1),其中表更详细地说明了该图。我没有给任何一个提供标准标题的问题,但我想将表标题更改为“图1的说明”。有什么办法吗?
下面列出了代码块,如果需要提供更多信息,请告诉我:
YAML:
- \usepackage{caption} #and several others
output:
bookdown::pdf_document2:
keep_tex: no
latex_engine: xelatex
代码块: 图1:
```{r figure-1, fig.cap="Figure"}
ggplot()
```
表1:
```{r table, fig.cap="Explanation of Figure \@ref(fig:figure-1)"}
knitr
kableExtra::kable(caption = "Explanation of Figure \@ref(fig:figure-1)")
```
带有一个反斜杠的主要错误消息是“错误:'@'是字符串中无法识别的转义”,并建议我忘记引用字符选项,这是不正确的。
文档带有两个反斜杠,但会产生标题“图形说明reffig:table”
3个反斜杠:与1相同的错误。
4个反斜杠:错误是“ pandoc-citeproc:未找到引用引用。!程序包标题错误:\ caption在float之外。”
感谢任何建议!
答案 0 :(得分:0)
我尝试了多种不同的方法text references,kable函数中的块标题,标题参数,并且我确定某个地方有一个聪明的解决方案,所以这里只是使用Latex的一种解决方法。
在带有数字的块之前添加带有label
的乳胶块:
```{=latex}
\begin{figure}
\caption{Figure 1}
\label{Fig-1}
```
```{r figure-1, echo = FALSE}
ggplot(mtcars) +
geom_point(aes(cyl, gear))
```
```{=latex}
\end{figure}
```
现在,您可以使用普通的乳胶代码Fig-1
,在乳胶标题中引用\ref{Fig-1}
了:
```{=latex}
\begin{table}
\caption{Explanation of Figure \ref{Fig-1}}
```
```{r table}
kableExtra::kable(x = mtcars)
```
```{=latex}
\end{table}
```
注意:
*我认为这只是一种解决方法。
*不可能同时使用块选项fig.cap = ""
和乳胶代码