使用bookdown撰写论文时knitr::kable无法生成标题的问题
解决bookdown中knitr::kable()不生成表格标题的问题
我之前也碰到过一模一样的问题,咱们一步步来搞定它:
- 在R控制台运行时让标题显示:
默认情况下,knitr::kable()在控制台输出的是simple格式,这个格式本身不支持表格标题。你只需要手动指定format = "markdown"(或者format = "pipe"),就能让标题正常输出了:
knitr::kable(head(mtcars[, 1:4], 4), booktabs = TRUE, caption = 'A table.', format = "markdown")
运行后你会得到带标题的标准Markdown表格:
Table: (#tab:unnamed-chunk-1) A table.
mpg cyl disp hp Mazda RX4 21.0 6 160 110 Mazda RX4 Wag 21.0 6 160 110 Datsun 710 22.8 4 108 93 Hornet 4 Drive 21.4 6 258 110
- 在bookdown环境中确保标题生效:
- 确认输出格式支持标题:bookdown的专用输出格式(比如
bookdown::gitbook、bookdown::pdf_book、bookdown::html_book)都原生支持kable的caption参数。如果你的项目YAML里用的是普通output: markdown_document,改成bookdown的专用格式试试。 - 推荐搭配
kableExtra包:它不仅能保证标题正常显示,还能美化表格,完美适配bookdown的各种输出场景,代码示例:library(kableExtra) knitr::kable(head(mtcars[, 1:4], 4), booktabs = TRUE, caption = 'A table.') %>% kable_styling(full_width = FALSE) - 别删自动生成的标题标记:bookdown会自动生成
Table: (\#tab:xxx)这样的行,这是它管理表格编号和交叉引用的关键,不要手动删除。
另外,如果你项目里加载了pander这类包,可能会覆盖kable的默认行为,试试暂时卸载或禁用这类包,看标题是否恢复正常。
内容的提问来源于stack exchange,提问作者Erik
相关产品推荐
相关产品推荐

