使用 R Markdown 和 HTML 输出将数学表达式显示为非斜体

display math expression as non-italic using R Markdown and HTML output

习惯上用斜体显示数学 (the tradition dates to Ancient Greece)。但是对于非正式的演示,我不太喜欢它的外观。我正在尝试使用我自己的字体进行数学显示,或者至少摆脱斜体。在 YAML 中使用 mathfont: my-math-fontlatex_engine: xelatex 更改 pdf_document: 的数学字体很简单,但对于 HTML 输出,它被证明更复杂。

显然,MathJax 用于通过 Pandoc 呈现方程。我尝试通过外部 CSS 文件添加 CSS 规则,或者按照 中的建议直接在 YAML 下添加。显然 Pandoc 将 class .math { } 应用于所有 MathJax 表达式......但是我不太了解 CSS 因此证明正确的参数很困难。据我所知,我的额外 CSS 规则只是被忽略了,因为当我在 R Studio 中编织时斜体仍然存在。

我希望有人有解决办法?这是我正在使用的代码的一个最小示例;要重现它,只需复制粘贴到 .Rmd 文件中,然后使用 ctrl + shift + k :

编织
---
title: "How to change math font for HTML output?"
output:
 html_document
---

```{css}
.math {
  font-family: Sans-Serif;
  font-style: normal;
}
```

This math equation is still rendered with italics: $\rho~=~\frac{m_{water}}{m_{oven-dry~soil}}$

方法如下:

---
title: "Change MathJax font"
author: "Stéphane Laurent"
date: "05/11/2020"
output: html_document
---

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  "HTML-CSS" : {
    availableFonts : ["STIX"],
    preferredFont : "STIX",
    webFont : "STIX-Web",
    imageFont : null
  }
});
</script>

$$
\int_0^1 f(x) dx = 0
$$

编辑

现在不行了。要使用不同的字体,您必须下载它们并使用 MathJax 的本地副本。我尝试了所有可用的字体,但所有字体的渲染效果都不佳。

我认为更好的解决方案是使用标准字体并使用 \mathrm:

$$
\mathrm{\int_0^1 f(x) dx = 0}
$$