我希望能够获取一个(可能很复杂的)LaTeX文档并取出将在mathmode
中呈现的LaTeX源代码。我能想到的选项是
-
equation
、$$
等的Grep - 使用LaTeX的
extract
包 - 使用像
pandoc
这样的转换器,从更简单的格式中提取表达式 - 使用来自渲染器的中间DOM (
plasTeX
似乎适合于此)
不幸的是,grep
是hacky的,不与宏工作;extract
似乎工作,但是笨拙的使用;pandoc
和plasTeX
在处理复杂的"真实世界"文档时都存在问题。
我是否忽略了任何更简单/更健壮的方法来做到这一点?
虽然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