为何RStudio中knitr::kable的LaTeX样式无法正常显示?
问题原因与解决办法
原因
RStudio的.Rmd预览窗口(默认是HTML预览)无法解析LaTeX格式的表格代码——LaTeX是专为PDF排版设计的语言,HTML环境没有对应的渲染能力,所以只会显示空白框;而编织成PDF时,TexWorks会处理LaTeX代码,所以表格能正常显示。
解决办法
如果想同时在预览窗口和PDF中都看到正常表格,推荐用以下两种方式:
- 自动适配输出格式:不指定
kable的格式参数,让它根据当前输出环境自动切换(预览时用HTML样式,PDF用LaTeX样式),代码如下:
form_o3 <- tibble( Quartile = c("0 (Min)",".25", ".5 (Median)", ".75", "1 (Max)","IQR"), Value = c(o3_quart[1],o3_quart[2],o3_quart[3],o3_quart[4],o3_quart[5],IQR(o3_raw$ozone_ppm))) kable(form_o3, col.names = c('Quartile','Value'))
- 用
kableExtra增强适配性:如果需要更定制化的表格样式,安装并加载kableExtra包,它能自动适配HTML和PDF输出:
install.packages("kableExtra") # 首次使用需安装 library(kableExtra) form_o3 <- tibble( Quartile = c("0 (Min)",".25", ".5 (Median)", ".75", "1 (Max)","IQR"), Value = c(o3_quart[1],o3_quart[2],o3_quart[3],o3_quart[4],o3_quart[5],IQR(o3_raw$ozone_ppm))) kable(form_o3, col.names = c('Quartile','Value')) %>% kable_styling(bootstrap_options = "striped") # 添加HTML预览时的条纹样式
如果只是想在预览时查看LaTeX代码(而非渲染后的表格),可以给代码块加上results='asis'选项,但预览窗口依然不会显示可视化表格,只会输出原始LaTeX代码。
内容的提问来源于stack exchange,提问作者Wil Cleveland
相关产品推荐
相关产品推荐

