还有没有其他人注意到,如果引用使用下划线而不是连字符,则rmarkdown不会对表标题进行编号?请参见下面的代码段。或构建this website作为工作示例。
---
title: "Table Captioning"
output:
bookdown::html_document2:
number_sections: true
fig_caption: true
---
# Example
It works in table \@ref(tab:dummy-table) when using hypens.
Table: (\#tab:dummy-table) Some caption.
\```{r dummy-table, echo=FALSE}
knitr::kable(data.frame(a = letters[1:3],
b = 1:3))
\```
But not in table \@ref(tab:dummy_table) when using underscores?
Table: (\#tab:dummy_table) Some caption.
\```{r dummy_table, echo=FALSE}
knitr::kable(data.frame(a = letters[4:6],
b = 4:6))
\```
没什么大不了的,只是让我绊了一下。抱歉,如果某个地方记录了这种行为,而我错过了。
答案 0 :(得分:3)
RMarkdown book中的2.6节表明,下划线可能会给您带来麻烦:
我强烈建议您在标签中仅使用字母数字字符(a-z,A-Z和0-9)和破折号(-),因为它们不是特殊字符,并且肯定适用于所有输出格式。特别是其他字符,空格和下划线,可能会在某些包装中引起麻烦,例如书本。
现在,由于在YAML中进行了设置,因此您正在使用bookdown
:
output:
bookdown::html_document2:
您需要bookdown
选项才能使引用首先生效。默认的rmarkdown html输出为html_document
,它不适用于自动引用。换句话说:R代码块标签中的下划线已超出您的限制。