R语言使用KableExtra导出PNG时如何保留表格标题上标格式
方法1:使用HTML原生上标标签(兼容性最高)
save_kable导出PNG的底层逻辑是先渲染HTML页面再截图,优先使用原生HTML标签不需要额外依赖公式渲染组件,修改代码如下:
library(kableExtra) library(tidyverse) iris[1:10, ] %>% kable( caption = "Exemple<sup>SuperScriptText</sup>", escape = FALSE # 必须设置为FALSE,避免HTML标签被转义为纯文本 ) %>% kable_classic() %>% save_kable("test_save.png")
这里把原来的LaTeX上标语法换成HTML的<sup>标签,配合escape = FALSE就能正常识别上标格式。
方法2:保留LaTeX语法,开启MathJax渲染
如果不想修改原有LaTeX格式的标题,只需要在导出时开启MathJax支持即可:
library(kableExtra) library(tidyverse) iris[1:10, ] %>% kable(caption = "Exemple$^{SuperScriptText}$") %>% kable_classic() %>% save_kable( "test_save.png", mathjax = "cdn" # 加载MathJax渲染LaTeX公式 )
注意:使用该方法需要保证导出时设备可以正常访问公网加载MathJax资源,否则还是会出现格式丢失的问题。
前置依赖检查
如果导出仍然异常,请先确认已经安装了截图依赖:
- 安装webshot2包:
install.packages("webshot2") - 不需要额外安装PhantomJS,webshot2自带Chromium内核渲染,比旧版webshot兼容性更好。
内容的提问来源于stack exchange,提问作者Patricia Bermudi
相关产品推荐
相关产品推荐

