1

将内容从 markdown 转换为 HTML 格式时,以下数学函数

${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$ 

被转换为

${{y_{i}, x_{i1}, ..., x_{id}}}<em>{i=1}^{n}$

有没有办法告诉 Python 的 Markdown 不这样做?谢谢!

4

1 回答 1

5

是的,数学语法与 Markdown 的语法冲突。您需要告诉解析器不要将其视为 Markdown。

您有几种不同的方法可以做到这一点:

  1. 将 Math 函数包装在原始 HTML 中。Markdown 不在原始块级 HTML 中处理。所以把你的数学包装在一个div

    <div>${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$</div>
    
  2. 使用第三方扩展(也在此处),它提供了一种将文档的一部分标记为数学的方法。您需要安装其中一个扩展,然后告诉 Python-Markdown 使用它。例如,要安装Python-Markdown-Math,请执行以下操作:

    pip install python-markdown-math
    

    然后,在你的 Python 代码中,你可以告诉 Markdown 使用扩展:

    markdown.markdown(src, extensions=['mdx-math'])
    

    请注意,为了避免与用于指定货币(正常使用)的美元符号发生冲突,大多数扩展不支持使用单个美元符号作为包装器。在这种情况下,您将需要使用双美元符号 ( $$...$$)。或者您可以打开对单个美元符号的支持,如下所示:

    markdown.markdown(
        src, 
        extensions=['mdx_math'], 
        extension_configs={
            'mdx_math': {'enable_dollar_delimiter': True}
        }
    )
    

    顺便说一句,Arithmatex扩展默认支持单个美元符号。但是,它是更大的扩展包的一部分。如果您只需要一个,Python-Markdown-Math 会很好地为您服务(每个都是由 Python-Markdown 团队的不同成员开发的)。

于 2017-11-04T20:03:10.333 回答