无法使用 AsciidoctorJ 使用 asciimath

Not able to use asciimath using AsciidoctorJ

我正在尝试使用 AsciidoctorJ 将包含数学表达式的 asciidoc 文件转换为 html,但到目前为止没有成功。

这是我要转换的 math.asciidoc。

= My Diabolical Mathmatical Opus
Jamie Moriarty

sample1

asciimath:[sqrt(4) = 2] 
stem:[sqrt(4) = 2]

我在 Asciidoc 中使用以下配置

Attributes attributes = AttributesBuilder.attributes()
            .math("asciimath")
            .get();

Options options = OptionsBuilder.options()
            .attributes(attributes)
            .docType("article")
            .safe(SafeMode.SERVER)
            .backend("html5")
            .get();

asciidoctor.convert(asciiDoc, options);

输出总是这样:

sample1

$sqrt(4) = 2$
$sqrt(4) = 2$

在上面生成的 HTML 输出中,我们如何渲染数学方程式?

Asciidoctor 支持 asciimath 和 latexmath 语法,asciimath 生成的输出可以使用 http://asciimath.org js 库在浏览器上呈现(也可以使用其他 asciimath 库)。

Asciidoctorj 使用 $ 作为 asciimath 标记的分隔符,因此我们需要使用以下配置来配置 MathJax:

<html>
<head>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
       asciimath2jax: {
           delimiters: [['\$','\$'], ['`','`']]
       }
    });
</script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
...
</head>
//rest of html
</html>

在 html 的 <head> 部分包含上述代码片段后,asciimath 渲染应该可以正常工作。

我们可以参考Asciidoctor文档的这一部分来激活asciidocs中对asciimath的支持:https://asciidoctor.org/docs/user-manual/#activating-stem-support