哇,又到了要写论文的时间,总是会有喜欢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">(</mo><mi>x</mi><mi>,</mi><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><msup><mi>n</mi><mn>2</mn></msup></mrow></mfrac><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>n</mi><mo>/</mo><mn>2</mn></mrow></mrow><mrow><mi>n</mi><mo>/</mo><mn>2</mn></mrow></msubsup><msubsup><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mrow><mi>n</mi><mo>/</mo><mn>2</mn></mrow></mrow><mrow><mi>n</mi><mo>/</mo><mn>2</mn></mrow></msubsup><mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo>+</mo><mi>i</mi><mi>,</mi><mi>x</mi><mo>+</mo><mi>j</mi><mo stretchy="false">)</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
做完这些发现论文还没写多少的我,不禁瑟瑟发抖了起来