将脚注换行以适应kable表格(LaTeX .Rmd)

5

我想知道在R中是否有一种方法可以使用kable强制将脚注适应表格的宽度(并换行到第二行)(我正在将.Rmd转换为PDF,因此格式为latex)。 我已经使用了add_footnote()footnote()两种方法。 add_footnote函数实际上会将脚注换行到第二行,如果超出了表格的宽度,但它也会强制使用上标(对于这个目的来说,我不能在我的表格中使用上标)。 footnote让我有选择去除上标,但我不确定如何使其与add_footnote的格式匹配,并将宽于表格的脚注换行到第二行。 另一个解决方案是从add_footnote中删除上标。

\captionsetup[table]{labelformat=empty}
```{r packs}
library(pacman)
p_load(tidyverse,knitr,kableExtra,janitor)

mydf <-data_frame(x=1:4,y=2:5,z=3:6)

fn1='This the footnote 1'
fn2='This is footnote 2 and is much longer'

mydf %>%
  kable(format='latex',booktabs=T,
        col.names=c('X','Y','Z'),
        caption=c('This method stretches', 'my table out in an ugly way')) %>%
  kable_styling(latex_options = c('hold_position')) %>%
  footnote(general=c(fn1, fn2),general_title="")

mydf %>%
  kable(format='latex',booktabs=T,
        col.names=c('X','Y','Z'),
        caption=c('This method ruins my title', 'and left justifies my table')) %>%
  kable_styling(latex_options = c('hold_position')) %>%
  footnote(general=c(fn1, fn2),general_title="",threeparttable = T)

mydf %>%
  kable(format='latex',booktabs=T,
        col.names=c('X','Y','Z'),
        caption=c('This is pretty close to perfect', 'if I could remove the superscripts')) %>%
  kable_styling(latex_options = c('hold_position')) %>%
  add_footnote(c(fn1, fn2))
```

一张针织PDF的截图: 在这里输入图片描述


有一个名为threeparttable的选项。 - Hao
@Hao 是的,但这会破坏我的字幕/标题,并且似乎强制我的表格在 PDF 中左对齐。我承认我不擅长LaTex,所以我猜修复左对齐很简单,但它会删除我的标题的某些部分。我已经编辑/附上了一个MWE。 - c.custer
1
我差点忘记在 add_footnote 函数中有这样一个 hack,它实际上是使用多列来处理脚注...嗯,在开发版本中,对于 add_footnote 我将 "none" 添加到了 notation 参数中。你可以试一下。 - Hao
没有运气。它给了我一个错误,说我需要使用其中之一:c('alphabet', 'number', 'symbol') - c.custer
“in the dev version” 意味着您需要从 GitHub 安装。 - Hao
2个回答

4

按照 @hao 的建议,将 threeparttable = TRUE 设置为真,对我有效:

add_footnote(c(fn1, fn2), threeparttable = TRUE) 

1
以下是@hao建议的notation="none"选项。它是居中对齐的。
mydf %>%
  kable(format='latex',booktabs=T,
        col.names=c('X','Y','Z'),
        caption=c('Notation="none"') %>%
  kable_styling(latex_options = c('hold_position')) %>%
  add_footnote(c(fn1, fn2), notation="none")

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接