在Revealjs演示文稿中的kable表内使用LaTeX表达式

eanckbw9  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(119)

自从Quarto发布以来,我一直热衷于使用Revealjs幻灯片来展示数据项目,这是一种很好的交互式格式。
就像在Rmarkdown中一样,在幻灯片中使用LaTeX表达式很容易:一个月一个月一个月。
我在表中使用LaTeX表达式时从来没有遇到过问题(多亏了kableExtra),它会产生以下输出(参见列名):

但是,我不确定Revealjs中当前是否支持它,但尽管使用escape = FALSE,列名显示如下:$cos^2 (F_1)$
为了避免这种情况,我不希望在Revealjs表格中使用LaTeX,这会导致:

那么,对于我的问题,有人知道是否有办法在Revealjs输出中使用kable内部的LaTeX表达式吗?
下面是一些代码的示例:

依赖项

library(kableExtra)
library(ggplot2)
library(tidyverse)

随机 Dataframe

x <- data.frame(cbind(rnorm(5, mean=50, sd=10),
                      rnorm(5, mean=50, sd=10),
                      rnorm(5, mean=50, sd=10)))

names(x) <- c("some text", "$Cont(F_1)$","$\\frac{1}{n^2}$")

凯布尔

color_1 = ifelse(x[,1] > mean(x[,1]),
       "green","red")

x %>%
kable(booktabs = T ,escape = F, align = 'c') %>%
    kable_classic(full_width = F,
                  position = "center",font_size = 35) %>%
column_spec(2,color = color_1)
rjee0c15

rjee0c151#

您可以将format = "markdown"添加到您的kable()函数中。请注意,这样做会破坏您的颜色编码。有关kable在四夸托中的工作方式与Rmarkdown不同的原因,请参见here

编辑1

您可以使用format = "latex"[parse-latex](https://github.com/tarleb/parse-latex)过滤器的组合:

---
format: revealjs
filters:
  - parse-latex
---

```{r}
library(kableExtra)
library(ggplot2)
library(tidyverse)

x <- data.frame(cbind(
  rnorm(5, mean = 50, sd = 10),
  rnorm(5, mean = 50, sd = 10),
  rnorm(5, mean = 50, sd = 10)
))

names(x) <- c("some text", "$Cont(F_1)$", "$\\frac{1}{n^2}$")
color_1 <- ifelse(x[, 1] > mean(x[, 1]),
  "green", "red"
)

x %>%
  kable(booktabs = T, escape = F, align = "c", digits = 2, format = "latex") %>%
  kable_classic(
    full_width = F,
    position = "center", font_size = 15
  ) %>%
  column_spec(2, color = color_1)

相关问题