使用python实现的一个latex转Mathml的命令行小工具(方便latex公式放到word里使用)

哇,又到了要写论文的时间,总是会有喜欢latex数学语法的同学,会烦恼怎么把latex的公式搞进word里。
(word2019明明说好了支持latex语法的,但就是转换不出来,很难受)
于是就有了下面的内容

事前准备

  • 安装好python环境
  • word2019(其他版本没实验过,应该都是可行的)
  • pip install latex2mathml

mathml 获取latex的解析能力

  • pip install pyperclip

pyperclip 方便将输出好的mathml直接复制到剪贴板上,然后复制就好了

l2m.py

import latex2mathml.converter
import pyperclip as pp

def parser_latex(latex_string):
    latex_input = latex_string #latex代码写在这里!!!!!
    mathml_output = latex2mathml.converter.convert(latex_input)
    pp.copy(mathml_output)
    print(">>",mathml_output)

def main():
    print("欢迎使用latex转mathml程序,输入latex后就可以直接粘贴到word里用了\n")
    while True:
        option = input("请输入要解析的latex的代码:\n>> ")
        if option == 'exit' or option == 'quit':
            print(">> 退出!\n")
            break
        elif option == '':
            print(">> 输入为空\n")
        elif option == 'help' or option == '-h':
            print(">> 将latex代码粘贴过来,回车就可以解析成mathml\n")
        else:
            parser_latex(option)
            print("已经复制好了,去word里粘贴一下吧\n")

if __name__ == '__main__':
    main()

使用

比如说下面这个公式
在这里插入图片描述
启动

python .\l2m.py
欢迎使用latex转mathml程序,输入latex后就可以直接粘贴到word里用了

请输入要解析的latex的代码:
>> g(x,y) = \frac{1}{n^2} \sum_{i=[n/2]}^{n/2} \sum_{j=[n/2]}^{n/2} f(x+i,x+j)
>> <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>g</mi><mo stretchy="false">&#x00028;</mo><mi>x</mi><mi>,</mi><mi>y</mi><mo stretchy="false">&#x00029;</mo><mo>&#x0003D;</mo><mfrac><mrow><mn>1</mn></mrow><mrow><msup><mi>n</mi><mn>2</mn></msup></mrow></mfrac><msubsup><mo>&#x02211;</mo><mrow><mi>i</mi><mo>&#x0003D;</mo><mrow><mi>n</mi><mo>&#x0002F;</mo><mn>2</mn></mrow></mrow><mrow><mi>n</mi><mo>&#x0002F;</mo><mn>2</mn></mrow></msubsup><msubsup><mo>&#x02211;</mo><mrow><mi>j</mi><mo>&#x0003D;</mo><mrow><mi>n</mi><mo>&#x0002F;</mo><mn>2</mn></mrow></mrow><mrow><mi>n</mi><mo>&#x0002F;</mo><mn>2</mn></mrow></msubsup><mi>f</mi><mo stretchy="false">&#x00028;</mo><mi>x</mi><mo>&#x0002B;</mo><mi>i</mi><mi>,</mi><mi>x</mi><mo>&#x0002B;</mo><mi>j</mi><mo stretchy="false">&#x00029;</mo></mrow></math>
已经复制好了,去word里粘贴一下吧

请输入要解析的latex的代码:
>>

打开word,粘贴就可以看到下面的公式了

在这里插入图片描述
上面的虚线空格要消去,可以在里面打一个空格号

注意 word文档要用docx,而不是doc,否则显示不出公式

参考

https://blog.csdn.net/Aldielshala/article/details/104784081
https://blog.csdn.net/qq_39241986/article/details/105781202

做完这些发现论文还没写多少的我,不禁瑟瑟发抖了起来

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值