【问题标题】:Python Markdown messed up math formulaPython Markdown 搞砸了数学公式
【发布时间】:2018-04-16 18:26:48
【问题描述】:

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

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

转换成

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

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

【问题讨论】:

    标签: python markdown python-markdown


    【解决方案1】:

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

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

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

      <div>${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$</div>
      
    2. 使用third-party extension(也称为here),它提供了一种将文档的一部分标记为数学的方法。您需要安装其中一个扩展,然后告诉 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 团队的不同成员开发的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-13
      • 2014-01-16
      • 1970-01-01
      • 2019-08-08
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多