使用 HUGO 的 .md 文件中的 R blogdown 包中的数学问题

Problems with Math in R blogdown package in .md files with HUGO

提问人:Christoph 提问时间:3/22/2017 最后编辑:Christoph 更新时间:3/24/2017 访问量:1358

问:

我想知道是否有人可以帮助我解决 Hugo 静态网站的 R blogdown 包中的数学渲染问题?

我制作了一个屏幕截图,显示了 Latex 代码,并在我得到的输出下方。

公式在 Atom Markdown-Preview-Plus 中呈现良好。公式的字体大小似乎也很大,但我想这更像是一个风格问题:)

更新1:我将问题缩小到Hugo Academic主题中数学渲染的一些问题(谢谢@bethanyP链接)

如果我使用默认的 RStudio huge-lithium 主题,代码呈现良好。

更新2:

将下面的脚本添加到文件head_custom.html中,如果您编写数学,例如在美元符号之前和之后使用反引号,则可以使公式在 Hugo Academic 中起作用:$$ math expression$$

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
  }
});
</script>
<script async type="text/javascript"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

更新3:

所以,我终于解决了所有问题。将以下代码添加到 huge-academic.css 或按照 hugo academic 说明添加自定义 css 文件:

code .MathJax {
  color: black;
  background-color: white;
}

现在所有公式都正确呈现并以黑色呈现:)

复制/粘贴代码:

1:

$$\begin{align}
\alpha & = 1 \\
\alpha & = 2 \\
\end{align}$$

2:

$$\underbrace{P(Jar~1 | Nut~Cookie)}_{\text{posterior}} = \frac{\overbrace{P(Nut~Cookie | Jar~1)}^{\text{likelihood}}\overbrace{P(Jar~1)}^{\text{prior}}}{\underbrace{P(Nut~Cookie)}_{\text{normalizing constant}}}$$

截图:

blogdown math problems

R Hugo 博客下

评论

0赞 Peter Krautzberger 4/11/2017
注意:cdn.mathjax.org 已接近其生命周期的尽头,参见 mathjax.org/cdn-shutting-down

答:

1赞 sconfluentus 3/22/2017 #1

对于分数,请尝试正斜杠后面的下划线:

 $2/_3$ 

enter image description here

应该会得到像上图一样的除法符号

这对我来说很好用......我重新输入了您的文本,似乎没问题,除了间距错误或我看不出为什么它不起作用之外:

 $$\begin{align}
 \alpha & =1 \\
 \alpha & = 2 \\
 \end{align}$$

请参阅下面的屏幕截图:

enter image description here

使用斜杠,再次尝试 /_,但大方程式的其余部分会有所帮助,拥有代码而不是图像,这样我就可以剪切和粘贴以测试您的、调整和重新发布。

评论

0赞 Christoph 3/22/2017
感谢您的快速回复!@您的解决方案,价格为 2 美元/3 美元:使用下划线只是一种解决方法,因为该数字随后被呈现为“/”的下标。但是一个很好的解决方法,谢谢!使用 \frac{}{} 也可以,但有时我只想要“/”。仅解释普通的“/”似乎存在问题。@begin{align}:你使用的是 RStudio 的 blogdown 包还是普通的 Hugo?使用 blogdown 包,它只有在我使用 .RMD 文件,但不在 .md 文件中。我将代码添加到我的问题中以进行复制/粘贴,感谢您指出这一点
1赞 sconfluentus 3/22/2017
我想我看到了问题..所以在常规的 Markdown 中,数学引擎是不同的,你需要在一对转义的括号内运行方程式 '( Your Mathy stuff in here )'。有一个很好的资源可以使用blogdown,看看一些差异,你应该克服你面临的障碍。是的,我使用的 rMarkdown 在某些情况下是不同的。bookdown.org/yihui/blogdown/output-format.html
0赞 Christoph 3/23/2017
谢谢很多链接。Math 在默认的 huge-lithium 主题下渲染得很好,问题似乎是 Hugo Academic 主题如何处理数学表达式。我会在问题中明确说明这一点。
2赞 Christoph 3/24/2017 #2

我终于让它工作了,谢谢@bethanyP你的帮助!

如果你想在 Hugo-academic 中使用 RStudio 编写高级 Latex 数学 blogdown 包。MD(注意:普通 markdown 文件而不是 R-markdown 文件)文件,您必须执行以下操作:

使用以下代码将名为“head_custom.html”的文件添加到layouts/partials/中,从而启用MathJax:

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
  }
});
</script>
<script async type="text/javascript"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

然后转到 themes/hugo-academic/static/css/hugo-academic.css 并添加以下代码以黑色字体渲染数学:

 code .MathJax {
  color: black;
  background-color: white;
}

在 $inline-math$ 或 $$display-math$$ 周围使用“”反引号

希望对您有所帮助!

最好

评论

0赞 Peter Krautzberger 4/11/2017
注意:cdn.mathjax.org 已接近其生命周期的尽头,参见 mathjax.org/cdn-shutting-down
0赞 Cristóbal Alcázar 7/29/2017
@Cristoph,如果你想写一个rmd文件?
0赞 RK1 12/3/2018
只是一个免责声明:如果您通过默认情况下不支持 MathJax 的 hugo 主题渲染您的网站,RMD 仍然无法工作......从艰难的方式中学会了这一点
0赞 jimken 11/30/2023 #3

一个古老的questin,但遇到了同样的问题。 在 params.yaml 中,默认情况下禁用 math,因此将选项更改为 TRUE。

math: enable: TRUE