首页 > 解决方案 > 如何防止 RMarkdown 将数学解释为 MathJax?

问题描述

我有一个巨大的小标题,我要从中拉出几张 kable 表。它们都是对问题的开放式答案。几个答案是“$$$”或“我没有 $$$$”。

当我在本地运行代码时,我得到了我期望的结果(提供了一个干净的答案表),但是当我尝试编织到 HTML 时,它被解释为“MathJax”并显示原始 HTML 而不是表格:

渲染的 Mathjax[来源2

我似乎无法重现确切的行为(仅在 HTML 中中断,而不是在我在 RStudio 中渲染块时),但是如果我在微弱的随机小标题中添加一些美元符号并生成一个 `kable :

habits <- tribble(
    ~Habit, ~Description,
    "Q1_apple", "$$$", 
    "Q1_pineapple", "Random Thought", 
    "Q1_passionfruit", "$$$$", 
    "Q1_honeydew", "Not even pretending this makes sense."
  ) 

kable(habits)

我得到的错误表明它遇到了同样的问题——TeX 想要将“$$$”解释为一个等式:

[WARNING] Could not convert TeX math '$ </td>
    </tr>
    <tr>
     <td style="text-align:left;"> Q1_bathe </td>
     <td style="text-align:left;"> Random Thought </td>
    </tr>
    <tr>
     <td style="text-align:left;"> Q1_hair </td>
     <td style="text-align:left;"> ', rendering as TeX:
  $ </td>
  ^
  unexpected '$'

我如何告诉 TeX(或 Knitr?)忽略这个特定块中的任何潜在数学?

标签: knitrmathjaxtex

解决方案


我找不到只说“不要将其解释为数学”的标志,但我可以在 $ 周围添加对我有用的空格:

kable(
habits %>% 
  mutate(Description = str_replace_all(Description, "\\$", " $ "))
)

推荐阅读