You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何pandoc命令与Haskell库解析Markdown数学公式结果不同?

问题原因及解决方法

核心差异在于扩展启用状态:

  • 命令行调用pandoc时,默认开启了tex_math_dollars扩展,该扩展会自动将$包裹的内容识别为行内数学公式,因此输出Math InlineMath类型。
  • 直接使用Pandoc Haskell库解析时,默认并未启用tex_math_dollars扩展,所以$(\lambda x.M)$会被当作普通字符串处理,输出Str类型。

要让Haskell库的解析结果和命令行一致,只需在解析时显式启用tex_math_dollars扩展,示例代码如下:

import Text.Pandoc
import Text.Pandoc.Extensions (enableExtension, texMathDollars)

main = do
  let readerOpts = def { readerExtensions = enableExtension texMathDollars (readerExtensions def) }
  mdContent <- readFile "example.md"
  parsedResult <- runIO $ readMarkdown readerOpts mdContent
  print parsedResult

内容的提问来源于stack exchange,提问作者F. Zer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:17:02