【问题标题】:Wrapping footnote to second line to fit table in kable (LaTeX .Rmd)将脚注包装到第二行以适合 kable 中的表格(LaTeX .Rmd)
【发布时间】:2018-04-11 16:08:18
【问题描述】:

我想知道是否有一种方法可以使用 R 中的kable 强制脚注适应表格的宽度(并换行到第二行)(我正在将 .Rmd 编​​织成 PDF 所以格式是乳胶)。我用过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 是的,但这会破坏我的字幕/标题,并且似乎也迫使我的表格在 PDF 中左对齐。诚然,我在 LaTex 方面很差,所以我猜想修复最简单的理由很简单,但它只是删除了我的部分标题。我在上面编辑/附加了一个 MWE。
  • 我几乎忘记了我在 add_footnote 中有这样的 hack,因为它实际上是使用多列来做脚注......好吧,在开发版本中,add_footnote 我添加了“none”到notation。你可以试试看。
  • 不走运。它给了我一个错误,我需要使用 c('alphabet', 'number', 'symbol') 之一
  • “in the dev version”表示需要从github安装

标签: r latex r-markdown kable footnotes


【解决方案1】:

按照@hao 的建议设置threeparttable = TRUE 对我有用:

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

【讨论】:

    【解决方案2】:

    下面是@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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2021-05-23
      相关资源
      最近更新 更多