Word公式自动转为Latex
生活大爆炸

Word公式自动转为Latex

hualala
2022-09-05 / 0 评论 / 1,359 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年09月06日,已超过590天没有更新,若内容或图片失效,请留言反馈。

exe与源码 下载链接:https://sxf1024.lanzouv.com/b09tjx45a
密码:bgmy

背景说明

复制Word中的公式,有时候是对的,有时候是乱码,比如:

latex是识别不正确的:

手动转换方法

一种可行的方法是,先将Word的公式复制设置为“MathML”:

然后选中公式,并复制:

这时得到的MathML长这样:

pxy^=(A1TA1)-1A1Tb1

反正就是很长很看不懂。
然后用转换网页转为latex:
https://johnmacfarlane.net/texmath.html

这时候就可以正确识别latex了:

脚本设计自动转换

但每次都这样操作也太麻烦了吧。
所以设计了一个自动转换的脚本:

  1. 运行脚本后,在后台监听剪切板;
  2. 我们手动复制Word中的公式;
  3. 脚本检测到剪切板复制了东西进来,先判断是不是MathML格式;
  4. 如果是,就自动完成转换;
  5. 将转换后的结果,复制到剪切板;
  6. 我们直接Ctrl+V就可以了。
    看下效果:

    (虽然有这个选择界面,但目前还只是支持“MathMl转其他格式”)

实现代码

(由于代码编辑器会自动丢失部分代码,所以请进最上面的“下载链接”下载源码)

如果要打包成exe,使用:

pyinstaller -F .\mathml格式转latex.py --hidden-import plyer.platforms.win.notification

自己搭建转换服务器

转换用到的texmath是开源的,我们现在用的他的服务器。但用别人的,总担心哪天就挂了。因此我们也可以自己搭一个服务器:

  1. 首先免费领取(或购买)腾讯云轻量服务器:
  1. 创建Ubuntu环境,具体步骤可以参考这篇博文的“免费领取轻量应用服务器”和“SSH连接服务器”,非常详细。记得再开通一个3000端口哦:
    http://xfxuezhang.cn/index.php/archives/418/

  2. 输入安装命令:

    sudo apt install haskell-stack -y

  3. 将 texmath 作为服务器运行

    stack install --flag texmath:server

    如果运气不好,跟我一样遇到了Timeout,就需要设置一下hosts文件。

    首先查一下“raw.githubusercontent.com”对应的IP是什么。

  • 进入这个网站:https://ipaddress.com
  • 分别搜索raw.githubusercontent.com和hackage.haskell.org
  • 随便选一个IPv4的;
  • 编辑hosts文件:
    sudo vim /etc/hosts
  • 在最后添加:
    185.199.111.133 raw.githubusercontent.com
    199.232.4.68 hackage.haskell.org

    这时候再去执行上面的指令,应该就可以了,只不过等的有点久。。。

  1. 然后在端口 3000 上运行服务器,
    texmath-server -p 3000
2

评论 (0)

取消