我有一个 docx 文件,其中包含不同页面中的几个方程式。使用 Python 和 lxml,我成功地提取了内容。我现在需要将 Word 中的方程式转换为 Latex。一些方程式显示为:
- eq \\f (sinx,\\r(1 - sin 2 x))
是否有任何工具的 Python 库可用于将方程式转换为 Latex 格式?
这是我从 docxfile/word/document.xml 获得的 XML 文件的片段:
<w:p w:rsidR="00677018" w:rsidRPr="007D05E5" w:rsidRDefault="00677018" w:rsidP="00677018">
<w:pPr>
<w:pStyle w:val="w" />
<w:jc w:val="both" /></w:pPr>
<w:r w:rsidRPr="007D05E5">
<w:tab/>
<w:t>a.</w:t>
</w:r>
<w:r w:rsidRPr="007D05E5">
<w:tab/></w:r>
<w:r w:rsidR="00453EF1" w:rsidRPr="007D05E5">
<w:fldChar w:fldCharType="begin" /></w:r>
<w:r w:rsidRPr="007D05E5">
<w:instrText xml:space="preserve">eq \b\bc\[(\a\co2\hs4(7,-3,-1,2))</w:instrText>
</w:r>
<w:r w:rsidR="00453EF1" w:rsidRPr="007D05E5">
<w:fldChar w:fldCharType="end" /></w:r>
<w:r w:rsidRPr="007D05E5">
<w:tab/>
<w:t>b.</w:t>
</w:r>
<w:r w:rsidRPr="007D05E5">
<w:tab/></w:r>
<w:r w:rsidR="00453EF1" w:rsidRPr="007D05E5">
<w:fldChar w:fldCharType="begin" /></w:r>
<w:r w:rsidRPr="007D05E5">
<w:instrText xml:space="preserve">eq \f(5,8)</w:instrText>
</w:r>
<w:r w:rsidR="00453EF1" w:rsidRPr="007D05E5">
<w:fldChar w:fldCharType="end" /></w:r>
<w:r w:rsidR="00453EF1" w:rsidRPr="007D05E5">
<w:fldChar w:fldCharType="begin" /></w:r>
<w:r w:rsidRPr="007D05E5">
<w:instrText xml:space="preserve">eq \b\bc\[(\a\co2\hs4(7,-3,-1,2))</w:instrText>
</w:r>
<w:r w:rsidR="00453EF1" w:rsidRPr="007D05E5">
<w:fldChar w:fldCharType="end" /></w:r>
</w:p>
我不确定这本身是否构成一个答案,但也许在通往答案的路上。
前一段时间我一直在寻找这样的工具,但没有找到,所以我认为简短的回答是否定的。
Word 支持多种格式的方程式。您拥有的类型称为“Word EQ Field equation”。 http://office.microsoft.com/en-us/word-help/field-codes-eq-equation-field-HP005186148.aspx
我在搜索中找不到任何 Python 解决方案,而且我知道某些 python-docx 不支持它。希望我有更好的消息告诉你:(
如果您下定决心,似乎有一些非 Python 解决方案可以执行此转换,如果您决定自己动手,它们可能是替代方案或学习示例 :)