我在C++/Python中有幾個代碼項目,其中使用LaTeX格式描述和標籤來生成使用LaTeX + pstricks製作的PDF文檔或圖形。但是,我們也有一些純文本輸出,比如文檔的HTML版本(我已經有了編寫最小標記的代碼)以及一個不支持TeX的劇情渲染器。以編程方式將LaTeX代碼轉換/解析爲純文本
對於這些我想要消除例如必需的TeX標記。代表物理單位。這包括非分裂(細)空格,\ text,\ mathrm等。爲了純文本輸出(和),將諸如\ frac {#1} {#2}的內容解析爲#1 /#2也很好。使用MathJax作爲HTML)。由於目前我們已經有了這個系統,我需要能夠從Python完成這項工作,例如理想情況下我正在尋找一個Python包,但是我可以從Python調用非Python可執行文件並且趕上輸出字符串也會沒事的。
我知道similar question on the TeX StackExchange site,但沒有任何真正的程序化解決方案:我已經看過detex,plasTeX和pytex,它們都顯得有點死了,並沒有真正做我所做的需要:將TeX字符串編程轉換爲代表性的純文本字符串。
我可以嘗試編寫一個基本的TeX解析器, pyparsing,但a)這可能是陷阱 - 載入和幫助將不勝感激和b)肯定有人曾嘗試過,或知道一種方法鉤入TeX本身以獲得更好的結果?
更新:感謝所有的答案......它確實似乎有點尷尬的要求!我可以用LaTeX來做一般的解析,但是在循環中考慮解析器而不是正則表達式的原因是我希望能夠很好地處理嵌套的宏和多參數宏,並獲得大括號匹配才能正常工作。然後我可以首先減少像\ text和\ mathrm這樣的txt無關宏,然後像\ frac last一樣處理txt相關的宏......甚至可以使用適當的圓括號!那麼,我可以夢想......現在正則表達式並沒有做這麼糟糕的工作。
你是對的,TeX的pyparsing是一件殘酷的事情,但其他人已經取得了一些進展。 matplotlib包含一個pyparsing TeX解析器,你可以彎曲你的目的。您也可以嘗試在pyparsing郵件列表上發帖,看看過去曾經完成過TeX工作的一些人是否可以提供幫助。 – PaulMcG 2011-01-25 14:12:47
請參閱http://stackoverflow.com/questions/3610551/math-in-restructuredtext-with-latex。 – 2011-01-31 21:00:04
感謝:我會先看看matplotlib ...這也是我的一個軟件包的預先存在的依賴項,所以如果我非常幸運,我可以通過mpl API使用它!歡呼:) – andybuckley 2011-01-31 21:10:54