latex转word公式java(latextoword,latex_word,latex。。。

latex转word公式java(latextoword,latex_word,latex。。。
latex_word
主要⽬的:
给⼤家分享⼀个我的原创⼯具:latex转为word公式(omml)⼯具 [java]
此⼯具主要⽤于将含有latex公式的⽂本下载成word时,将latex转换为word格式的公式
被更多⼈使⽤,共同维护更新
扫把头背景:
需要将html格式且带有latex公式的试题下载成word版的试卷
html转到word版并且要求⼀定的排版,还有⼀些可配置显⽰,这块也⽐较难弄,我的另⼀篇⽂章有分享
起初⽤了⼀些别⼈编写的转换⼯具,⼤多是先将latex转为mathml,再由mathml转为omml(word的公式),但其中有很多公式
转换不出来或转换出错,转换出错的再⽤另⼀种将latex转换为图⽚的形式,这样做到⼀个折中的⽅案,但在显⽰效果上图⽚相
对于word公式还是有很⼤差距的,另外图⽚的公式不能编辑,不是很理想,于是打算⾃⼰写⼀个转换⼯具
家用水处理器因此我的第⼀个原创⼯具出现了,给⼤家分享⼀下
latex:mathml:omml:
⼀般转换步骤:\(\sqrt[3]{2+x}\)<math
xmlns="/1998/Math/MathML">
<mroot><mrow><mn>2</mn><mo>+</mo>
<mi>x</mi></mrow><mn>3</mn></mroot>
</math>
<m:oMath><m:rad>
定位装置
<m:deg><m:r>
<m:t>3</m:t></m:r>
</m:deg><m:e>
<m:r>
<m:t>2+x</m:t>
</m:r></m:e>
</m:rad>
</m:oMath>
我的⼯具:\(\sqrt[3]{2+x}\)不需做中转,直接转omml <m:oMath><m:rad> <m:deg><m:r>
<m:t>3</m:t></m:r> </m:deg><m:e>
<m:r>
<m:t>2+x</m:t>
</m:r></m:e>
</m:rad>
</m:oMath>
简介:
⽀持以 \( \),\[ \],$ $,$$ $$ 为公式边界的latex代码的转换
\(\sqrt[3]{2+x}\)  \[\{\frac{3-a}{2+x}\}\]    $3^(x+1)$    $$sum\limits_{i=1}^n$$
⽀持较复杂公式的转换
\(f(x)= \begin{cases}x,x>0 \\ 0,x=0 \\-x,x<0 \end{cases}\)
\(\left\{ \begin{array}{l}{x+y-1≥0} \\ {x-1≤0} \\ {ax-y+1≥0} \end{array} \right.\)
\(7+97+997+9997+\cdots\underbrace{99\cdots9}_{10个9}7\)
⽀持部分字体转换
筋膜仪\(37.5^\circ {\rm C}\)  \(str\bf{B}C^\circ\)
使⽤⽅法:
给诸位献上我的⼯具包:github/mao-yuwei/latex_word.git
将下载下来的 jar导⼊本地maven库
依赖jar:jar
mvn install:install-file -Dfile=(jar包的位置) -DgroupId=com.latextoword -DartifactId=latex-word -Dversion=1.0.x -Dpackaging=jar
pom添加依赖
<dependency>
<groupId>com.latextoword</groupId>
<artifactId>latex-word</artifactId>
<version>1.0.x</version>
</dependency>
<dependency>
<groupId>com.</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.3</version>
圆弧齿同步带
</dependency>
调⽤代码
public static void main(String[] args) {
String latexStr="\\(\\sqrt[3]{2+x}\\)";
String omml= Latex_Word.latexToWord(latexStr);
煤矿井下定位设备
System.out.println(omml);
}
如果在调⽤之前你已经处理掉公式边界,⽤下⾯的⽅法
public static void main(String[] args) {
String latexStr="\\sqrt[3]{2+x}";
String omml= Latex_Word.latexToWordAlreadyClean(latexStr);
System.out.println(omml);
}
输出:⽆异常输出
<m:oMath><m:rad><m:deg><m:r><m:t>3</m:t></m:r></m:deg><m:e><m:r><m:t>2+x</m:t></m:r></m:e></m:rad></m:oMath>
输出:有异常
ERROR
有异常时⽇志会打印发⽣异常的位置(这种情况时,先检查latex公式有没有错误,如果没错请告诉我不能解析的公式,以便我及时修复,完善)
五⽉ 16, 2019 2:39:43 下午 com.latextoword.Latex_Word latexToWordAlreadyClean
信息: [latexToWord:ERROR]:ERROR:解析标记:[\sqqq]没有对应的解析规则
ERROR
验证公式转换的是否正确:
1.  >>新建word⽂档
2. >>将word⽂档另存为 Word Xml ⽂档(*.xml)的格式
3. >>⽤NotePad++等⼯具以⽂本的形式打开另存后的.xml⽂件
4. >>在<w:p..></w:p>标签之间粘贴进出转换后的omml公式,保存
5. >>直接打开.xml⽂件就可以看见公式在word⾥⾯显⽰了
⼩结:
此⼯具已经过⼤量公式测试,但应该还有不能转换的公式,如果有遇到敬请告知
公式展⽰字体相对⼤⼩这块没兼顾
在内容完整度上还是可以的
代码开源地址:github/mao-yuwei/latex-omml
如果有将html的题⽂下载成word的需求可以看下⾯这篇⽂章
html试题试卷下载成word案例分享:
如果你觉得这个⼯具对你还有⼀点⽤处或将来能⽤到,请⾛这⾥,不要太多意思意思就⾏了
有想法的,有问题的请⾛这⾥:mao_yuwei@163

本文发布于:2024-09-22 12:53:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/166094.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:公式   转换   不能   还有   下载   形式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议