latex转word公式 java (latextoword,latex_word,latex2word,latex_omml)
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="http://www.w3.org/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\)
使用方法:
- 给诸位献上我的工具包:https://github.com/mao-yuwei/latex_word.git
- 将下载下来的 latex-word-1.0.x.jar导入本地maven库
- 依赖jar:jackson-databind-2.9.x.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.fasterxml.jackson.core</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
- 验证公式转换的是否正确:
- >>新建word文档
- >> 将word文档另存为 Word Xml 文档(*.xml)的格式
- >>用NotePad++等工具以文本的形式打开另存后的.xml文件
- >> 在<w:p..></w:p>标签之间粘贴进出转换后的omml公式,保存
- >> 直接打开.xml文件就可以看见公式在word里面显示了


小结:
此工具已经过大量公式测试,但应该还有不能转换的公式,如果有遇到敬请告知
公式展示字体相对大小这块没兼顾
在内容完整度上还是可以的
如果有将html的题文下载成word的需求可以看下面这篇文章
html试题试卷下载成word案例分享:https://www.cnblogs.com/maoyuwei/p/11637738.html
如果你觉得这个工具对你还有一点用处或将来能用到,请走这里,不要太多意思意思就行了

有想法的,有问题的猿请走这里:mao_yuwei@163.com
latex转word公式 java (latextoword,latex_word,latex2word,latex_omml)的更多相关文章
- LaTeX技巧:如何高效地将LaTeX代码转为Word公式
LaTeX转换为word这么刺激的做法是很多国内用户咨询的问题,有些用户只得把LaTeX排版好的转换为word,这里给大家推荐几个用法,或许能够帮助到诸位. 第一种方法:MathType的Toggle ...
- latex与word之间的各种转化方法
https://blog.csdn.net/communix/article/details/49965233 https://blog.csdn.net/yaoqi_isee/article/det ...
- Latex 转 word 技法大全
Latex 转 word 技法大全 在稿件接收后,经常会遇到出版社要求变更稿件格式,其中最多的是latex变为word格式.如果手工操作,是非常麻烦的,还容易出错.如果钱多得花不了,可以让出版社找人去 ...
- 图片转换成word 公式
1 下载安装mathpix, 利用该软件将图片转换成LaTeX公式 2 参考此帖,将LaTeX公式转换成word公式 https://www.douban.com/note/648629593/ ht ...
- 在windows10+word2010中完美使用北大方正word公式输入法总结
如果在安装输入法时遇到了无法安装的情况,请首先百度下VC运行库安装下(32位64位都安就是),然后安装北大方正word公式输入法,此时不会再提示无法安装,接着(关键)在word应用程序图标右键-> ...
- word公式的使用
插入->公式->插入新公式 优点:可以表示一些特殊符号,而且word公式的字更好看. 方法: 1.Shift+Enter,公式转入下一行 2.选择内嵌或显示 3.选择性粘贴->粘贴成 ...
- ppt/word公式LaTeX环境配置
PPT使用Latex说明 一.下载IguanaTex_v1_57 http://www.jonathanleroux.org/software/iguanatex/download.html Inst ...
- MathType转Word公式(OMML)
背景 由于之前个人喜欢在Word里做笔记,而有很多笔记里存在着大量的公式.在早期,由于对Word自身的公式的不理解,所以便使用了MathType这个工具来编写公式.但是现在本人已经转战到LatTeX了 ...
- 亲测可以使用的Axmath和MathPix插入word公式
Axmath破解版链接 链接:https://pan.baidu.com/s/1Phak8mc3msKAMQ6H_5EN5g 提取码:glti MathPixTool和Axmath共同使用向word插 ...
随机推荐
- P4570 [BJWC2011]元素 线性基 + 贪心
题意 给定n个物品,每个物品有一个编号和价值,问如何取使得拿到的物品价值总和最大,并且取得物品的编号的子集异或和不能为0. 思路 这是个贪心,我们先按照价值从大到小排序,然后贪心地取,如果当前要取的物 ...
- codeforces 816 E. Karen and Supermarket(树形dp)
题目链接:http://codeforces.com/contest/816/problem/E 题意:有n件商品,每件有价格ci,优惠券di,对于i>=2,使用di的条件为:xi的优惠券需要被 ...
- 在javascript中的浏览器兼容问题以及兼容浏览器汇总(默认事件,阻止冒泡,事件监听。。。)以及解决方式详解
在javascript中常见的浏览器兼容问题,以及解决方式. 在前端工作当中我们遵循这样的原则:渐进增强和优雅降级 渐进增强(progressive enhancement): 针对低版本浏览器进 ...
- PHP如何解决表单重复提交
利用session 表单隐藏域中存放session(表单被请求时生成的标记).采用此方法在接收表单数据后,检查此标志值是否存在,先进行删除,然后处理数据; 若不存在,说明已提交过,忽略本次提交. ...
- pageable多字段排序问题
Sort sort = new Sort(Sort.Direction.DESC, "createdate") .and(new Sort(Sort.Direction.AES, ...
- Java第三次作业第三题
3. 请补充下面的Socket通信程序内容: (1)Socket通信中的服务端程序:ChatServerSocket.java package naizi; import java.io.*; imp ...
- 001:photoshop教程
1:添加辅助线:有个位移的坐标系图标:点击标志中,鼠标按着不动.之后拖动到对应的位置. 2:量距离:第一行.第二个图标.直接测量像素. 3:切割图片: 3.1:第三行.第一列:选择切片工具 3.2:之 ...
- Android嵌入式开发初学者的几个注意点
一:首先你必须了解ARM平台 Android 移植与驱动核心开发,当然也可以是X86和其他的平台,不过其他平台的Android智能终端开发并不是很多. Android嵌入式智能操作系统是基于Linux ...
- linux iconv 转换文件编码
查看文件编码file -i filename 递归转换(包括子文件夹)find default -type d -exec mkdir -p utf/{} \;find default -type f ...
- [AWS] EC2 & GPU
Amazon Elastic Compute Cloud (Amazon EC2) EC 2的使用 机型的选择 经验谈 Ref: Amazon EC2 实例类型 实践派 搭建网站:MediaWiki ...