【问题标题】:Latex math expression in RMarkdown table column nameRMarkdown 表列名中的乳胶数学表达式
【发布时间】:2017-02-20 15:31:42
【问题描述】:

我想在我的 Markdown 文档中显示一个表格,并将列名设置为 Latex 数学公式,例如 $\dot(m)_1$。

我试过了:

knitr::kable(my.df[, c("Time", "MassFlowRate")],
             row.names = FALSE,
             col.names = c("Time", "$\dot{m}_1$"))

但它不起作用。

我最后生成的不是PDF,而是Word文档。所以直接对 Latex 表进行编码不是一种选择。

【问题讨论】:

    标签: r latex knitr r-markdown


    【解决方案1】:

    您需要将\ 转义到R 代码中,所以\dots 应该是\\dots

    ```{r}
    my.df <- data.frame(Time=rnorm(10), MassFlowRate = rnorm(10))
    knitr::kable(my.df[, c("Time", "MassFlowRate")],
                 row.names = FALSE,
                 col.names = c("Time", "$\\dot{m}_1$"))
    ```
    

    【讨论】:

    • 任何想法为什么我不能让它在add_header_above 中工作?我正在写 PDF,我的代码类似于 add_header_above(c('5% $\\leq$'=2
    • 这是一个旧答案,我不知道......你应该问一个新问题,显示你的输出有什么问题(我猜\` is rendered as \textbacklash{}`)
    【解决方案2】:

    要使当前答案起作用,您需要在kable() 中添加, escape = FALSE

    另外,比起data.frame,我更喜欢使用tibble。这样我就可以直接在列名中指定 LaTeX 代码。无需使用col.names

    ```{r}
    library(tibble)
    my_df <- tibble(Time=rnorm(10), `$\\dot{m}_1$` = rnorm(10))
    knitr::kable(my_df, escape = FALSE)
    ```
    

    【讨论】:

    • 非常感谢 - 帮助我解决了我的问题。这就是说,不需要使用tibble,一些帖子警告不要使用它。 base R data.frame 也可以正常工作 - 只需指定 check.names = FALSE 就不会发生强制转换
    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2021-02-21
    • 2019-08-03
    相关资源
    最近更新 更多