在使用HUGO中的blogdown包的.md文件中,关于R语言的数学问题。

5
我想知道是否有人能够帮助我修复R blogdown包在Hugo静态网站中的数学渲染问题?
我制作了一个屏幕截图,展示了Latex代码和输出结果。
这些公式在Atom Markdown-Preview-Plus中渲染得很好。公式字体大小似乎也有点大,但我猜那更多是一种风格问题:)
更新1: 我将问题缩小到了Hugo Academic主题中的数学渲染问题(感谢@bethanyP提供的链接)。
如果我使用默认的RStudio huge-lithium主题,则代码可以正常渲染。
更新2: 将下面的脚本添加到head_custom.html文件中,如果你像这样写数学表达式$$ math expression$$,在Hugo Academic中公式就可以正常工作。
<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


注意:cdn.mathjax.org即将到达其生命周期的尽头,参见https://www.mathjax.org/cdn-shutting-down/。 - Peter Krautzberger
3个回答

2

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

如果您想在使用RStudio blogdown包编写.Hugo-academic中的高级Latex数学(注意:是纯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;
}

使用``反引号来标记$内联公式$或$$显示公式$$

希望这有所帮助!

最好的祝愿


注意: cdn.mathjax.org 即将停用,详见 https://www.mathjax.org/cdn-shutting-down/. - Peter Krautzberger
@Cristoph,如果您想要在rmd文件中编写呢? - Cristóbal Alcázar
仅供参考:如果您通过不支持MathJax的Hugo主题呈现网站,则RMD仍将无法正常工作...我是通过艰难的方式学到的。 - RK1

1
尝试使用正斜杠后面的下划线来表示分数:
 $2/_3$ 

enter image description here

我希望你能获得像上面图片中的除号。

这对我来说很有效...我重新输入了你的文本,似乎没问题,除了一个空格错误或者其他我看不到的原因导致它不能工作:

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

请见下方屏幕截图:

enter image description here

带斜杠时,请再试一次 /_,但对于大方程的其余部分,最好有代码而不是图像,这样我就可以复制粘贴测试您的代码,进行微调并重新发布。


谢谢快速回复!@你对$2/3$的解决方案:在我的看法中,使用下划线只是一个变通方法,因为数字会被渲染成“/”的下标。但是这是一个不错的变通方法,谢谢!使用\frac{}{}也可以解决问题,但有时我只想使用“/”。显然存在解释纯“/”的问题。@begin{align}:你是使用RStudio的blogdown包还是裸用Hugo?如果使用blogdown包,则只有在使用.RMD文件时才能正确呈现,而在.md文件中则不能。我已将代码添加到了我的问题中以便复制/粘贴,感谢您指出这一点。 - Christoph
1
我想我看到了问题所在...所以在常规的markdown中,数学引擎是不同的,你需要在转义的括号对内运行方程 \( 在这里输入你的数学内容 )\。有一个很好的资源可以用于使用blogdown,查看一些差异,你应该能够克服你面临的障碍。是的,我正在使用rMarkdown,在某些情况下是不同的...https://bookdown.org/yihui/blogdown/output-format.html - sconfluentus
非常感谢提供的链接。使用默认的huge-lithium主题,数学公式渲染效果很好,问题似乎在于Hugo Academic主题如何处理数学表达式。我会在问题中明确说明这一点。 - Christoph

0
一个老问题,但是遇到了同样的问题。 在params.yaml中,默认情况下禁用了math,所以将选项更改为TRUE。
math: enable: TRUE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接