来自 KableExtra 的 R 笔记本格式中的数学符号未正确呈现 table objects

Math symbols not rendered correctly in R notebook format from KableExtra table objects

更新:KableExtra 创建者 haozhu233 添加了对包的 mathjax 支持。请参阅我的原始问题和他对 Github 的评论:https://github.com/haozhu233/kableExtra/issues/473#issuecomment-668224096

当我尝试使用 kable 和 kableExtra 创建 table 时,我无法正确显示数学符号。我能够像预期的那样在普通的 kable tables 中生成数学字符。我已经尝试了选项 escape = FALSE 和 protect_latex = T 的不同变体,但没有任何运气。如果我编织成 PDF 或 HTML,数学符号可以正确显示,只是显示原始字符的内联显示(和预览)和笔记本显示。

据我从 HTML 输出中可以看出,kable table 和 kableExtra table 之间的唯一区别是后者包含一些关于 class和风格。 R objects 也是不同的 class,这让我想知道问题是否可能是没有调用 mathjax 来渲染 kableExtra objects?如果是这样,有没有一种方法可以告诉 Rstudio 在从 kableExtra objects 渲染 HTML 时调用 mathjax?

我已经在两台不同的计算机上使用 RStudio Cloud 重现了这个问题。

注意:我提交了 Github Issue but realized that it might be more appropriate to ask here. I've also posted on the Rstudio community 没有得到回复,所以我想我会在这里试试运气。

代表:

---
title: "Kable Extra Math Symbols"
output: html_notebook
---

```{r}

math_symb <- c(1,2,3,4)

kable_table <- knitr::kable(math_symb, col.names = "$R^{2}$") 
styled_kable_table <- kableExtra::kable_styling(kable_table)

kable_table
styled_kable_table
```{}

在示例中,object kable_table 使用列名称 "R2", which is what I want to achieve whereas the styled_kable_table object is displayed with the the undesired column name "$R^2$"

呈现

Session 信息:

R 版本 3.6.3 (2020-02-29) 平台:x86_64-w64-mingw32/x64(64 位) 运行 下:Windows 10 x64(内部版本 18363)

矩阵产品:默认

语言环境: 2 LC_COLLATE=挪威博克马l_Norway.1252 LC_CTYPE=挪威博克马l_Norway.1252 [3] LC_MONETARY=挪威语 Bokmål_Norway.1252 LC_NUMERIC=C [5] LC_TIME=挪威语l_Norway.1252

附加基础包: 2 stats graphics grDevices utils datasets methods base

通过命名空间加载(未附加): 2 Rcpp_1.0.4.6 rstudioapi_0.11 xml2_1.3.2 knitr_1.28 magrittr_1.5 hms_0.5.3 [7] munsell_0.5.0 rvest_0.3.5 viridisLite_0.3.0 colorspace_1.4-1 R6_2.4.1 rlang_0.4.6 [13] stringr_1.4.0 httr_1.4.1 highr_0.8 tools_3.6.3 webshot_0.5.2 xfun_0.14 [19] htmltools_0.4.0 ellipsis_0.3.0 yaml_2.2.1 digest_0.6.25 tibble_3.0.1 lifecycle_0.2.0 [25] crayon_1.3.4 kableExtra_1.1.0 readr_1.3.1 vctrs_0.3.0 glue_1.4.1 evaluate_0.14 [31] rmarkdown_2.1 stringi_1.4.6 compiler_3.6.3 pillar_1.4.4 scales_1.1.1 pkgconfig_2.0.3

您正在制作一个 HTML 文档,因此您需要使用 HTML:

来格式化您的 header
math_symb <- c(1,2,3,4)
math_symb %>%  kable(col.names = "R<sup>2</sup>")

给予

这个有效:

```{r, results ='asis'}

math_symb <- c(1,2,3,4)

kable_table <- knitr::kable(math_symb, col.names = "$R^{2}$") 
styled_kable_table <- kableExtra::kable_styling(kable_table)

kable_table
cat(styled_kable_table)
```

但是,我必须调查它为什么有效。