Word VBA:MathType公式与Latex公式切换
目录
一、准备
1.调用MathType库
(1)点开发工具-工具-引用
(2)勾选【MathTypeCommands】类
2.内部方法/命令
二、操作方法
1.假设需求
2.处理速度对比
(1)循环方法
(2)直接运行
三.分析
四、完整思路与代码
1.思路
2.最终推荐代码
一、准备
1.调用MathType库
(1)点开发工具-工具-引用
(2)勾选【MathTypeCommands】类
2.内部方法/命令
MathTypeCommands.MTCommand_TeXToggle
意思是在MathType格式和Latex格式之间,切换所选区域公式的格式
二、操作方法
因为是通过VBA代码编写我们既可以写循环(对选区的每个公式单独选中,切换),又可以一步完成(全选需要处理的所有公式,直接写一条语句即可完成)。简单对比一下:
1.假设需求
这里准备了两内容相同的文档,都是34页公式,我们对全文公式操作。
2.处理速度对比
(1)循环方法
A.示例代码
Rem 运行此代码请先勾选上MathType库
Sub mtEqToLatex()Dim fd As FieldDim fw As RangeDim i As Longt0 = NowSet fw = Selection.RangeIf fw.Start = fw.End Then Exit SubApplication.ScreenUpdating = FalseFor Each fd In fw.FieldsIf fd.Code Like "*EMBED Equation.*" Thenfd.SelectMathTypeCommands.MTCommand_TeXTogglei = i + 1End IfNextfw.SelectApplication.ScreenUpdating = TrueSet fw = NothingSet fd = NothingDebug.Print DateDiff("s", t0, Now)MsgBox Format(i, "完成 共处理了0个公式")
End Sub
B.测试结果
全选【文档1】,运行上面的代码
在立即窗口看到,运行完成用了149秒,速度挺慢。
(2)直接运行
A.示例代码
Rem 运行此代码请先勾选上MathType库
Sub mtEqToLatex_All()Dim fd As FieldDim fw As RangeDim i As Longt0 = NowSet fw = Selection.RangeIf fw.Start = fw.End Then Exit SubApplication.ScreenUpdating = FalseFor Each fd In fw.FieldsIf fd.Code Like "*EMBED Equation.*" Theni = i + 1End IfNextMathTypeCommands.MTCommand_TeXTogglefw.SelectApplication.ScreenUpdating = TrueSet fw = NothingSet fd = NothingDebug.Print DateDiff("s", t0, Now)MsgBox Format(i, "完成 共处理了0个公式")
End Sub
B.测试结果
全选【文档2】,运行上面的代码
在立即窗口看到,运行完成用了???秒。
大概运行了4-5分钟,屏幕还在一直抖动,因为运行太慢,就手动停止了。(此时还只运行到第5页)
这种方法运行更慢,不可取。
三.分析
最初还以为全选一次运行可以更快,因为我认为MathType插件里面应该优化了方法,本来就是循环。但是最终的结果并不是。
所以说有时候代码操作和手动操作的区域还是很大的。
四、完整思路与代码
1.思路
(1)选择区域,防止误操作
(2)遍历区域内的域,因为MathType公式的域代码必定包含【EMBED Equation.】,用like方法比较判断是否为MathType公式
注:此处可以用MathType内部方法逐个选中公式,有兴趣可先自行研究,后面可能会专门讲
(3)如果是MathType公式,则选中这个域(公式)所在区域,执切换命令,然后计数
(4)循环完成,操作结束
2.最终推荐代码
Rem 运行此代码请先勾选上MathType库
Sub mtEqToLatex()Dim fd As FieldDim fw As RangeDim i As Longt0 = NowSet fw = Selection.RangeIf fw.Start = fw.End Then Exit SubApplication.ScreenUpdating = FalseFor Each fd In fw.FieldsIf fd.Code Like "*EMBED Equation.*" Thenfd.SelectMathTypeCommands.MTCommand_TeXTogglei = i + 1End IfNextfw.SelectApplication.ScreenUpdating = TrueSet fw = NothingSet fd = NothingDebug.Print DateDiff("s", t0, Now)MsgBox Format(i, "完成 共处理了0个公式")
End Sub
Word VBA:MathType公式与Latex公式切换相关推荐
- Office word中mathtype公式与LaTex公式代码互转
在word中,输入好的mathtype公式已经嵌入到word内容中了,如何转成LaTex公式代码呢? 很简单,mathtype已经内置了相关功能和快捷键,按钮在word中[MathType]-[Pub ...
- 如何在office word or ppt 中插入Latex公式
以前一直使用Mathtype在word 或者ppt中编辑公式,其实也可以使用Latex插入公式,而且其强大的公式自动排版功能可以使插入的公式更加美观. 安装CTEX 套装.(经常使用者,这一步就免了) ...
- LaTeX公式转成word公式(LaTeX公式转MathML / latex2mathml的使用)
2021年3月10日更新 批量一键转换公式 因为又遇到了不得不往Word里放一大堆公式的作业,一个一个弄太慢了,决定弄一个一键执行的版本,效果如下. 只需要在input.txt里放入LaTeX公式,执 ...
- Word中MathType公式与LaTeX公式的转换
1. 对Word文档中用MathType输入的公式,在word中,选中mathtype公式,按住"Alt+\"键,可以将MathType公式转换成Latex格式. 2. 同样,将L ...
- Latex公式与Word公式相互转换(使用MathType)
Latex公式转Word公式 在MathType中敲好的公式,将 预置->剪切和复制 中选项改为MathML 复制公式后,打开Word并粘贴到相应位置,出现如下弹窗 选择创建OMML公式并点击确 ...
- Mathtype / Word OMML / Latex 公式相互转换
文章目录 Part.I 快应用 Part.II 详细操作 Chap.I Mathtype ↔ Word Chap.II Mathtype ↔ Latex Chap.III Latex ↔ Word P ...
- Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)
Word插入Latex公式的几种方式 向Word和PowerPoint插入LaTeX公式的小工具 2006-01-28 by 陈硕 讨论.下载请前往:http://bbs.ctex.org/foru ...
- Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)...
Word插入Latex公式的几种方式 向Word和PowerPoint插入LaTeX公式的小工具 2006-01-28 by 陈硕 讨论.下载请前往:http://bbs.ctex.org/foru ...
- 【MathType】彻底解决公式大小与文章文字大小不统一(含字体的字号与磅(pt)和像素(px)之间的换算关系)
文章目录 1.大小不一致原因 2.字体的字号与磅(pt)和像素(px)之间的关系 3.彻底解决方法 在使用Mathtype的时候,有时候会出现公式大小不统一的情况,这时候手动去拖动大小的话非常不理想, ...
- 通过小狼毫/rime输入法在飞书中输入Tex/Latex公式的效果
下面展示一个通过小狼毫输入法(rime输入法)在飞书文档中输入Tex公式(latex公式)的使用效果
最新文章
- IDEA tomcat 配置虚拟目录怎么
- 物联网入门怎么学?物联网基础知识
- java spring框架 注解_史上最全的java spring注解
- python中的模块原则_python 的模块与包
- 简单一“录”,轻松完成金融业务审核!
- JavaScript操作DOM元素
- 二十一、Hadoop学记笔记————kafka的初识
- HEVC/H265 HM10.0 分析(三)TAppDecTop.cpp
- VSCODE远程连接服务器,远程开发。
- MySQL数据库技术与应用:数据查询
- 今天终于结束了考试,不知道结果
- Hybrid 接口应用
- priority_queue的优先级设置
- 第七次全国人口普查,数据来了!
- HTTP权威指南 笔记
- wim工具扫描linux磁盘,图文解说WIMTOOL的安装及利用该工具编辑WIM文件
- php ucenter home登录,UCenter Home
- linux6.9 fc cache,(转载, 已看)fc-cache出错解决办法.
- 年底了,清空自己,让心归零!
- 换ssd后Oracle,PS4更换480G SSD,终于流畅了!附更换教程