无法使用AsciidoctorJ使用asciimath

时间:2019-04-28 07:27:28

标签: asciidoctor asciimath

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

1 个答案:

答案 0 :(得分:0)

Asciidoctor支持asciimath和latexmath语法,并且可以使用http://asciimath.org js库在浏览器上呈现asciimath产生的输出(也可以使用其他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