html rmarkdown 中的 Kable 列宽

Kable column width in html rmarkdown

我想在 html rmarkdown 中显示宽 kable table 以显示第一列有没有任何换行符的长文本。当我使用 column_spec 设置第一列的宽度时,它似乎对结果 html table 没有任何影响。这是我的代码。有没有办法让第一列没有任何换行符?谢谢!

df <- data.frame(v1 = c('Long text without line breaks', 'Long text without line breaks', 'Long text without line breaks'),
                 v2 = c('text', 'text', 'text'),
                 v3 = c('text', 'text', 'text'),
                 v4 = c('text', 'text', 'text'),
                 v5 = c('text', 'text', 'text'),
                 v6 = c('text', 'text', 'text'),
                 v7 = c('text', 'text', 'text'),
                 v8 = c('text', 'text', 'text'),
                 v9 = c('text', 'text', 'text'),
                 v10 = c('text', 'text', 'text'),
                 v11 = c('text', 'text', 'text'),
                 v12 = c('text', 'text', 'text'),
                 v13 = c('text', 'text', 'text'),
                 v14 = c('text', 'text', 'text'),
                 v15 = c('text', 'text', 'text'),
                 v16 = c('text', 'text', 'text'),
                 v17 = c('text', 'text', 'text'),
                 v18 = c('text', 'text', 'text'),
                 v19 = c('text', 'text', 'text')
                 )

gctbl <- kable(df, col.names = colnames(df), escape = F) %>%
  kable_styling(full_width = T) %>%
  column_spec(1, width = '10in')
  
gctbl

您需要在 column_spec 中设置 width_min。我认为 3in 对于示例中的第 1 列已经足够了。

如果您出于某种原因确实需要 10in,您可以添加 scroll_box() 以在 table 中启用 x-axis 滚动(不包括在我的回答中)。

kable(df, col.names = colnames(df), escape = F) %>%
  kable_styling(full_width = T) %>%
  column_spec(1, width_min = '3in')