我想将 MathML 转换为 LaTeX

我想将 MathML 转换为 LaTeX

我正在尝试将我在 Microsoft Office Word 2013 中制作的方程式转换为 LaTeX,因为我想将我在 Word 中制作的方程式发布到math.stackexchange.com

我可以将其转换为 MathML。但如果我将其发布到这里,它看起来确实不像应该的那样。是否可以将 MathML 转换为 LaTeX?

<math xmlns:mml="http://www.w3.org/1998/Math/MathML">
    <mtable>
        <mtr>
            <mtd>
                <mrow>
                    <maligngroup/>
                    <mi>a</mi>
                    <mo>&lt;</mo>
                    <mi>x</mi>
                    <mo>&lt;</mo>
                    <mi>a</mi>
                    <mo>+</mo>
                    <msub>
                        <mrow>
                            <mi>δ</mi>
                        </mrow>
                        <mrow>
                            <mn>1</mn>
                        </mrow>
                    </msub>
                    <malignmark/>
                    <mo>⇒</mo>
                    <mfenced open="|" close="|" separators="|">
                        <mrow>
                            <msub>
                                <mrow>
                                    <mi>f</mi>
                                </mrow>
                                <mrow>
                                    <mn>1</mn>
                                </mrow>
                            </msub>
                            <mfenced separators="|">
                                <mrow>
                                    <mi>x</mi>
                                </mrow>
                            </mfenced>
                            <mo>-</mo>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>1</mn>
                                </mrow>
                            </msub>
                        </mrow>
                    </mfenced>
                    <mo>&lt;</mo>
                    <mfrac>
                        <mrow>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>1</mn>
                                </mrow>
                            </msub>
                            <mo>-</mo>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>2</mn>
                                </mrow>
                            </msub>
                        </mrow>
                        <mrow>
                            <mn>2</mn>
                        </mrow>
                    </mfrac>
                </mrow>
            </mtd>
        </mtr>
        <mtr>
            <mtd>
                <mrow>
                    <maligngroup/>
                    <malignmark/>
                    <mo>⇒</mo>
                    <msub>
                        <mrow>
                            <mi>L</mi>
                        </mrow>
                        <mrow>
                            <mn>1</mn>
                        </mrow>
                    </msub>
                    <mo>-</mo>
                    <mfrac>
                        <mrow>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>1</mn>
                                </mrow>
                            </msub>
                            <mo>-</mo>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>2</mn>
                                </mrow>
                            </msub>
                        </mrow>
                        <mrow>
                            <mn>2</mn>
                        </mrow>
                    </mfrac>
                    <mo>&lt;</mo>
                    <msub>
                        <mrow>
                            <mi>f</mi>
                        </mrow>
                        <mrow>
                            <mn>1</mn>
                        </mrow>
                    </msub>
                    <mfenced separators="|">
                        <mrow>
                            <mi>x</mi>
                        </mrow>
                    </mfenced>
                    <mo>&lt;</mo>
                    <msub>
                        <mrow>
                            <mi>L</mi>
                        </mrow>
                        <mrow>
                            <mn>1</mn>
                        </mrow>
                    </msub>
                    <mo>+</mo>
                    <mfrac>
                        <mrow>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>1</mn>
                                </mrow>
                            </msub>
                            <mo>-</mo>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>2</mn>
                                </mrow>
                            </msub>
                        </mrow>
                        <mrow>
                            <mn>2</mn>
                        </mrow>
                    </mfrac>
                </mrow>
            </mtd>
        </mtr>
        <mtr>
            <mtd>
                <mrow>
                    <maligngroup/>
                    <malignmark/>
                    <mo>⇒</mo>
                    <mfrac>
                        <mrow>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>1</mn>
                                </mrow>
                            </msub>
                            <mo>+</mo>
                            <msub>
                                <mrow>
                                    <mi>L</mi>
                                </mrow>
                                <mrow>
                                    <mn>2</mn>
                                </mrow>
                            </msub>
                        </mrow>
                        <mrow>
                            <mn>2</mn>
                        </mrow>
                    </mfrac>
                    <mo>&lt;</mo>
                    <msub>
                        <mrow>
                            <mi>f</mi>
                        </mrow>
                        <mrow>
                            <mn>1</mn>
                        </mrow>
                    </msub>
                    <mo>(</mo>
                    <mi>x</mi>
                    <mo>)</mo>
                </mrow>
            </mtd>
        </mtr>
    </mtable>
    <mi> </mi>
</math>

它看起来应该是这样的:

https://skydrive.live.com/redir?resid=8FEA31C0ACCF70F0!135

在此处输入图片描述

答案1

XSLT 位于

https://github.com/davidcarlisle/web-xslt/tree/master/pmml2tex

将 MathML 转换为 TeX 它多年来得到了广泛的应用,包括生成 MathML3 规范第 4 章中的几乎所有图像(作为从内容 MathML 到演示 MathML 到 TeX 再到图像的管道的一部分。)

它目前跳过maligngroup并产生

在此处输入图片描述

来自提供的 XML。

&手动添加额外的内容以恢复对齐是微不足道的。更改matrixaligned并添加两个&会产生

在此处输入图片描述

答案2

我的回答可能不是直接回答你的问题,但我认为有必要提一下Mathtype 方程编辑器。这是一款插入 Word 的商业产品,它允许直接从 Word 文档导出或转换为 LaTeX 公式。这将从您的工作流程中省去一个步骤,如果您需要进行多次转换,这可能很有意义。

相关内容