Latex语法学习08:打通latex、mathml和word公式转换 |
您所在的位置:网站首页 › 在线导入word › Latex语法学习08:打通latex、mathml和word公式转换 |
目录 1 基于工具的转换 1.1 获取mathml源码 1.2 将mathml代码转换为latex 1.3 latex向mathml的转换 1.4 mathml粘贴到word 1.5 word转mathml 1.5.1 干法 1.5.2 注意要点 2 离线工具 2.1 mathml2latex 2.2 latex转word 2.2.1 一个前端开源项目 2.2.2 一个pyqt的界面程序 2.2.3 使用神器typora 2.3 从word获取mathml 3 其他参考连接 通过science direct阅读论文时,看到有别人写好的公式,不想自己敲怎么办?这篇小文章带你快速将生成公式代码,并粘贴到word中。 首先在SD中随便打开一篇文章,随便选择一个公式,如下图的约束3: 我们可以得到如下源码: ∑ ( i , j ) ∈ A x i j k − ∑ ( n + i , j ) ∈ A x n + i , j k = 0 ∀ i ∈ P , ∀ k ∈ K , 1.2 将mathml代码转换为latex转换网站 网站的操作也很简单,步骤如下: 将代码粘贴到左侧框内选择原类型选择目标类型点击convert按钮刚才提取的公式转换结果如下: \begin{array}{cl} & {\sum\limits_{(i,j) \in A}x_{ij}^{k} - \sum\limits_{(n + i,j) \in A}x_{n + i,j}^{k} = 0\quad\forall i \in P,\forall k \in K,} \\ \end{array}显示如下: 这样我们就完美的实现mathml向latex的转换 1.3 latex向mathml的转换同样是这个网站,我们将原类型和目标类型换换,就可以实现latex到mathml的转换 由于并不是每个人都精通latex,一部分小伙伴还是喜欢word那种简单粗暴的方式,有没有办法将这个公式搞到word里边吗?当然有,我们直接把mathml源码粘贴到word中,然后选择只保留文本即可。 不过貌似不太好玩,里边的空格还需要咱自己拖拖拽拽。没办法,能偷的懒已经偷了;如有高手能一步到位,欢迎指教。 1.5 word转mathml 1.5.1 干法如果一个公式是word敲的,你还想偷懒直接干成latex,有没办法呢?也有,咱慢慢来。 操作也不难,直接选中公式,找个记事本粘贴一下,你会得到如下内容: ∑(i,j)∈Axijk-∑n+i,j∈Axn+i,jk=0,∀i∈P,∀k∈K, 这一坨是啥,咱也看不懂,也不敢问,干就是了。还是前面那个网站,设置如下: 原类型选mathml目标类型选tex我们得到了如下tex代码: \begin{matrix} & {{\sum\limits_{(i,j) \in A}x_{ij}^{k}} - {\sum\limits_{{({n + i,j})} \in A}x_{n + i,j}^{k}} = 0,\forall i \in P,\forall k \in K,} \\ \end{matrix}显示一下这个公式: 也能正常显示,但是两个代码的还是有区别的: 使用SD提供的mathml源码得到的latex用的是array环境使用word干出来的mathml源码得到的latex用的是matrix环境 1.5.2 注意要点看我操作的贼溜,有些小伙伴可能从word粘贴公式到记事本,并不是mathml源码。这里要做一个设置: 上面一通操作,都是必须得有网。没网就瞎了,这时候,我们的python神器就排上用场了。 2.1 mathml2latex这里要使用一个github的一个开源项目: GitHub - oerpub/mathconverter: Converts from AsciiMath, LaTeX, MathML to LaTeX, MathMLConverts from AsciiMath, LaTeX, MathML to LaTeX, MathML - GitHub - oerpub/mathconverter: Converts from AsciiMath, LaTeX, MathML to LaTeX, MathML 实现的源码也贼简单: import os from lxml import etree def mathml2latex_yarosh(equation): """ MathML to LaTeX conversion with XSLT from Vasil Yaroshevich """ xslt_file = os.path.join('xsl_yarosh', 'mmltex.xsl') dom = etree.fromstring(equation) xslt = etree.parse(xslt_file) transform = etree.XSLT(xslt) newdom = transform(dom) return newdom mathml = """∑(i,j)∈Axijk-∑n+i,j∈Axn+i,jk=0,∀i∈P,∀k∈K,""" tex = mathml2latex_yarosh(mathml) print(tex)转换结果如下: $ \begin{array}{cc}& \sum _{(i,j)\in A}{x}_{ij}^{k}-\sum _{\left(n+i,j\right)\in A}{x}_{n+i,j}^{k}=0,\forall i\in P,\forall k\in K,\end{array}$ 2.2 latex转word 2.2.1 一个前端开源项目可以通过github的一个开源项目可以直接粘贴到word
$∑(i,j)∈Axijk−∑(n+i,j)∈Axn+i,jk=0,∀i∈P,∀k∈K,$ 2.2.3 使用神器typora直接在公式上右键,复制为mathml源码 注意这里的公式不能是行内公式,即通过如下方式插入的公式块 word公式中做如下设置: 相当于之前的拟操作 3 其他参考连接公式图片转latex神器Mathpix以及latex公式与word公式的相互转换 - 简书 (jianshu.com) https://binb.droppages.com/ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |