如何为R Markdown的kable/flextable表格设置独立默认行间距?
实现全文行间距1.5、表格行间距1的两种方案
方案一:全局LaTeX设置(推荐)
flextable和kableExtra生成的PDF表格最终都会调用LaTeX的tabular环境,直接通过LaTeX命令为该环境单独指定行间距,就能一次性解决两类表格的格式问题,无需修改R代码。
在你的R Markdown的YAML头部补充以下内容:
--- linestretch: 1.5 header-includes: - \usepackage{setspace} - \AtBeginEnvironment{tabular}{\setstretch{1}} ---
\usepackage{setspace}:加载LaTeX行间距设置包\AtBeginEnvironment{tabular}{\setstretch{1}}:指定进入表格的tabular环境时,自动将行间距设为1
方案二:针对表格包单独设置默认值
如果不想全局修改LaTeX环境,可以分别为flextable和kableExtra设置默认行间距。
针对flextable
使用set_flextable_defaults函数统一配置所有flextable的行间距,只需在代码开头运行一次:
library(flextable) # 设置所有flextable默认行间距为1 set_flextable_defaults(line_spacing = 1) # 示例表格 flextable(head(mtcars))
若仅需修改单个表格,直接调用line_spacing函数:
flextable(head(mtcars)) %>% line_spacing(1)
针对kableExtra
通过kable的extra参数添加LaTeX行间距命令,或设置全局默认选项:
全局默认设置
library(kableExtra) # 全局指定kable生成表格的行间距为1 options(knitr.table.format = "latex") knitr::opts_chunk$set( kable.extra = "\\renewcommand{\\arraystretch}{1}" ) # 示例表格 kable(head(mtcars)) %>% kable_styling()
单个表格设置
kable(head(mtcars), format = "latex", extra = "\\renewcommand{\\arraystretch}{1}") %>% kable_styling()
内容的提问来源于stack exchange,提问作者Mark Davies
相关产品推荐
相关产品推荐

