我正在使用字幕(https://cran.r-project.org/web/packages/captioner/vignettes/using_captioner.html)在Rmarkdown中创建表标题-主要原因是因为我正在使用huxtable进行条件格式设置并导出到word。这是我发现的唯一具有编号字幕的编号。
我试图引用标题,但是当引用标题时,标题编号不是按顺序排列的,仅当table_nums(...,display =“ cite”)在表格之前时才使用。我试图提供表号的范围,它改变了最后一个表的号。如果在字幕后加上r table_nums('third_cars_table',display =“ cite”),则数字不会更改。有没有办法确保表号保持顺序?我也希望为字幕提供更好的解决方案。
可复制的示例:
---
title: "Untitled"
output: bookdown::word_document2
---
```{r setup, include=FALSE}
library(captioner)
library(huxtable)
library(knitr)
library(pander)
table_nums <- captioner(prefix = "Table")
fig_nums <- captioner(prefix = "Figure")
knitr::opts_chunk$set(echo = TRUE)
```
## Description of tables
I am trying to put a description of tables
and say that these results are shown table numbers ranging
from the first table (`r table_nums('first_cars_table',display = "cite")`)
to the last table (`r table_nums('third_cars_table',display = "cite")`)
```{r, results='asis',echo=FALSE,eval.after=TRUE}
tablecap1=cat(table_nums(name="first_cars_table",caption='First car table'))
kable((cars[1:5,]))
tablecap2=cat(table_nums(name="second_cars_table",caption='second car table'))
kable(cars[6:10,])
tablecap3=cat(table_nums(name="third_cars_table",caption='third car table'))
kable(cars[10:15,])
```
答案 0 :(得分:0)
一个(可怕的)解决方法是使用display = FALSE
手动给数字排序。例如,在表格的开头插入以下内容将确保t1-t5
顺序编号,无论表格或第一个引文出现在何处:
`r table_nums('t1', display = FALSE)`
`r table_nums('t2', display = FALSE)`
`r table_nums('t3', display = FALSE)`
`r table_nums('t4', display = FALSE)`
`r table_nums('t5', display = FALSE)`
我没有检查captioner
代码,但是我希望从上至下读取一次文档,因此编号以先到先得的方式存储。因此,我不确定还有其他方法可以解决此问题,因为这将涉及某种预处理阶段。