【问题标题】:R Markdown code chunk does not show math equationsR Markdown 代码块不显示数学方程式
【发布时间】:2021-09-17 10:22:40
【问题描述】:

基本上我想用 R Markdown 构建一个随机选择题生成器。对于这个任务,markdown 的代码块中需要有方程式。

下面的工作就像一个魅力,并给出了等式“greekbeta = 1”

---
title: "test"
author: "me"
output:
    word_document: default
---

```{r eval=TRUE, echo=FALSE,results = "asis"}
"$\beta = 1$"
```  

相比之下,当使用其他一些数学符号时,这将不起作用,例如:

---
title: "test"
author: "me"
output:
    word_document: default
---

```{r eval=TRUE, echo=FALSE,results = "asis"}
"$\sum_{n=1}^{\infty}$"
``` 

按下knit后,出现错误(不幸的是错误消息是德语,基本上是这样的:“'\s'是字符串中以“$/s”开头的未知转义序列)。

我对此感到非常困惑,尤其是因为例如 \frac{1}{2} 有效,但 \hat{x} 无效。 “正常”降价文本中的方程式根本没有问题。但对于我的任务,方程式必须在代码块部分中。

有人有解决这个问题的方法吗?我尝试使用“$\hat{x}$”甚至“$$\hat{x}$”,但错误消息仍然相同。 我正在使用 pandoc 2.11.4、R 4.1.0 和 knitr 1.33

【问题讨论】:

  • 如果你正在创建一个 R 块,你需要有有效的 R 代码。看起来您根本没有尝试在那里编写 R 代码。为什么不将 R 代码块之外的 $\sum_{n=1}^{\infty}$ 移到文档本身?
  • 本例中没有 R 代码,因为我想保持部分简短。但在现实中会有r代码(从excel表中随机选择一个问题加上答案的随机排序)。

标签: r latex r-markdown markdown


【解决方案1】:

使用cat()escape the escapes

---
title: "test"
author: "me"
output:
    word_document: default
---

```{r eval=TRUE, echo=FALSE,results = "asis"}
cat("$\\beta = 1$", '\n\n')
cat("$a^2+b^2 = c^2$", '\n\n')
cat("$\\sum_{n=1}^{\\infty}x_i$", '\n\n')
```

【讨论】:

  • 这行得通,非常感谢!我之前尝试过 cat() ,但只有一个反斜杠。加上两个反斜杠,这绝对没问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 2018-01-03
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
相关资源
最近更新 更多