我有一组adoc文档,我正在转换为markdown。对于其中的大多数,我已经能够转换它们:
asciidoc -b docbook -o temp.xml <infile>
pandoc -f docbook -t markdown_strict --atx-headers --mathjax temp.xml -o <outfile>
然后是一些正则表达式来清理一些损坏的图像链接并修复标题。然而,这对内联数学方程不起作用。在adoc中,它们的语法是:latexmath:[$some_equation_here$]
有时没有美元符号的多行方程。
当它被转换成DocBook XML时,它似乎被保留了下来,并且是以下格式:
<inlineequation>
<alt><![CDATA[$some_equation_here$]]></alt>
<inlinemediaobject><textobject><phrase></phrase></textobject></inlinemediaobject>
</inlineequation>
但是当pandoc将其转换回markdown时,它会忽略这些xml块。在pandoc转换期间,我如何将其保持为markdown可读的方程($some_equation_here$)格式?mathjax
扩展似乎对此操作没有帮助。
我尝试使用一个单独的python正则表达式,它将使用re.sub(r'latexmath:\[\$?(.*?)\$?\]', r'$\g<1>$', file_contents
来保留$,但它会导致一些双转义文本,然后必须手动修复,并且有时会给出一些额外的/sup
标记。尝试对XML文件做类似的事情,结果也是类似的。
1条答案
按热度按时间aoyhnmkz1#
查看pandoc代码,似乎DocBook读者希望公式位于
<inlineequation>
下面的<mathphrase>
元素中。因此,将<alt>
标记替换为<mathphrase>
就足以让pandoc获取公式。这通常会产生无效的DocBook XML,因为<inlineequation>
应该包含 either a<mathphrase>
or<inlinemediaobjects>
,但这对Pandoc来说无关紧要请注意,pandoc插入的是美元本身,因此这些美元也应该被删除。
unwrap-math.lua
包含