如何从latex文档中提取数学



我希望能够获取一个(可能很复杂的)LaTeX文档并取出将在mathmode中呈现的LaTeX源代码。我能想到的选项是

  • equation$$等的Grep
  • 使用LaTeX的extract
  • 使用像pandoc这样的转换器,从更简单的格式中提取表达式
  • 使用来自渲染器的中间DOM (plasTeX似乎适合于此)

不幸的是,grep是hacky的,不与宏工作;extract似乎工作,但是笨拙的使用;pandocplasTeX在处理复杂的"真实世界"文档时都存在问题。

我是否忽略了任何更简单/更健壮的方法来做到这一点?

虽然pandoc不能表示更复杂的布局,但它确实支持数学,并且pandoc LaTeX阅读器非常可靠地检测数学环境。因此,我建议编写一个pandoc过滤器,删除除Math元素外的所有内容。你也可以用python编写过滤器,但在Haskell中可以这样写:

#!/usr/bin/env runhaskell
-- dropNonMath.hs
import Text.Pandoc.JSON
main = toJSONFilter dropNonMath
  where dropNonMath (Math x y) = Math x y
        dropNonMath _ = []

然后运行:

pandoc --filter dropNonMath.hs -f latex -t latex input.tex

最新更新