gpt4 book ai didi

markdown - 如何使用 markdown 语法在 Hugo 中编写数学?

转载 作者:行者123 更新时间:2023-12-05 04:58:20 25 4
gpt4 key购买 nike

我是 Hugo 或任何网络开发的新手。我想建立一个个人网站来分享我的数学笔记,这些笔记是用 markdown 写的。准确地说,我使用模板 hugo-book .但是我发现它不支持 markdown 中的数学模式,即如果我在 $$ 之间写方程式,它就不起作用。 .我确实找到了一些写数学方程式的方法,例如,我可以使用 {{< katex >}} ,但是我的markdown笔记每次都改这个不方便。那么,有没有一种方法可以让我使用 $$在此模板中编写数学方程式?

谢谢!

最佳答案

对于 Mathjax 3,将它放在页面源代码的某处。我把它放在layouts/partials/head-additions.html ,但也许这是特定于 ananke 主题的:

<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

现在您可以将它放在您的页面上并呈现它:

Raw Mathjax block:


$$a_4 \ne b_4$$

如您所料。

请记住,根据 commonmarkspec (雨果跟随因为它使用 goldmark内部),你需要在标点符号前加两个反斜杠,如([ .所以:

This shows as Mathjax \\(a \ne b\\), but this doesn't \(a \ne b\)

Likewise, this shows as Mathjax

\\[a \ne b\\]

but this doesn't:

\[a \ne b\]

当然,您可以使用 $$ TeX Source $$ 来避免这种情况.

你可以在这里停下来。

但我更进一步,因为我不喜欢 Mathjax 如何为您提供一闪而过的无样式内容 (FOUC),如 issue 131 中所述。 .我修改了那个问题中建议的方法。把它放在页面源代码中,而不是两个简单的 <script>上面的标签:

{{- if or (.HasShortcode "mathjax/block") (.HasShortcode "mathjax/inline") -}}
<style>
.has-mathjax {
visibility: hidden;
}
</style>

<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

<script>
window.MathJax = {
startup: {
pageReady: () => {
return MathJax.startup.defaultPageReady().then(() => {
for (let element of document.getElementsByClassName("has-mathjax")) {
element.style.visibility = "visible"
}
});
}
}
};
</script>
{{- end -}}

将其放入 layouts/shortcodes/mathjax/block.html :

<div class="has-mathjax">
{{ .Inner }}
</div>

这在 layouts/shortcodes/mathjax/inline.html 中:

<span class="has-mathjax">{{ .Inner }}</span>

现在您可以将其放入您的页面源代码中:

Mathjax block:

{{< mathjax/block >}}
\[a \ne 0\]
{{< /mathjax/block >}}

Inline shortcode {{< mathjax/inline >}}\(a \ne 0\){{< /mathjax/inline >}} with
Mathjax.

如您所见,使用短代码还可以解决需要在标点符号前添加两个反斜杠的问题,例如 ([ .

(完全披露:这种方法也出现在 an article on my blog 上)

关于markdown - 如何使用 markdown 语法在 Hugo 中编写数学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64050359/

25 4 0