问题描述
习惯上以斜体显示数学(the tradition dates to Ancient Greece)。但是对于非正式的演讲,我不太喜欢它的外观。我正在尝试使用自己的字体进行数学显示,或者至少要消除斜体字。在YAML中使用pdf_document:
和mathfont: my-math-font
来更改latex_engine: xelatex
的数学字体很简单,但是对于HTML输出,事实证明它更加复杂。
显然,MathJax用于通过Pandoc渲染方程。我尝试过通过外部CSS文件或按照this stackoverflow question中的建议在YAML的正下方添加CSS规则。显然,Pandoc将类.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}
$$