0

我正在尝试使用 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 输出中,我们如何渲染数学方程?

4

1 回答 1

0

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>

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

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

于 2019-05-22T01:47:37.237 回答