当使用kbl()函数在R中创建表格时,如果表格的标题太长,则会出现此问题。如果标题太长,文本开始换行,但随后变为左对齐。
有时候标题很短,可以通过在样式选项中添加landscape参数来解决,但我希望有一个更灵活的解决方案。kbl的样式选项提供了很多工具来操作表格单元格,但我在处理表格标题时遇到了困难。下面是导致我遇到的问题的示例代码。
kbl(mtcars, caption = "This is a really long title that will go past the borders when knitting to PDF in portrait mode. I'd love to figure out how to keep it centered even if the text is really long.",
booktabs = TRUE, linesep = "", align = "c") %>%
kable_styling(latex_options = c("striped", "hold_position"))
添加“hold_position”参数可以使表格保持居中,但标题的行为不一样。此外,如果将标题添加到HTML中,也可以,但我希望在将标题添加到PDF中时,也能使用此解决方案。
另外,使用\n来做换行符似乎不像它在其他包(如ggplot())中那样工作。
2条答案
按热度按时间zzlelutf1#
您可能需要使用LaTeX的
caption
包和justification=centering
选项(即YAML部分的header-includes
字段中的\usepackage[justification=centering]{caption}
)。a1o7rhls2#
如果没有@卡洛斯Luis里维拉展示的额外LaTeX包,我无法找到任何可能的方法通过使用
kable
来居中标题。因此,如果您不需要额外的LaTeX包,我建议使用flextable
包而不是kable
和kableExtra
。在下面的示例中,我使用pdf-latex
:生成的PDF表格: