linpandr的个人博客分享 http://blog.sciencenet.cn/u/linpandr

博文

[转载]2种办法把MathType公式转换为Word公式

已有 402 次阅读 2024-5-29 09:06 |个人分类:Word|系统分类:科研笔记|文章来源:转载

2种办法把MathType公式转换为Word公式

MathType插件提供了把Word自带公式转换为MathType公式的功能,却没有提供把MathType公式转换为Word公式的功能。出于某些特别的要求,需要把MathType公式转换为Word公式,应该怎么做呢?

注意,这里所说的Word公式,是指Word2007及以后版本中所提供的新公式,又叫OMML公式。OMML的全称是Office Math Markup Languageoffice数学公式标记语言。

一、高版本Word可以直接转换

Word2016及以后版本(不知道Word2013是否可以),可以右击MathType公式,在弹出菜单中单击“Equation”对象,在弹出的二级菜单中单击转换为Office Math,具体操作见如下链接。这个过程应该可以编写vba代码实现一键全文档转换,但本机没有安装Word2016或以后版本,没有办法实验。

如何将mathtype公式转化为OMML公式-百度经验

二、低版本Word可以间接转换

Word2010及以前版本并没有转换为Office Math”的功能可用。但可以通过MathType插件把MathType公式变成MathML代码,再把MathML代码粘贴到一个空的Word公式中,即可生成Word公式。

1. MathType公式变成MathML代码

MathType插件可以批量把Word文档中的MathType公式转换成MathML代码。操作路径如下图所示。

单击MathType选项卡,单击Convert Equations(转换公式),弹出Convert Equations对话框。在Equations types to convert(要转换的公式)标签下勾选MathType or Equations Editor equations;在Range(范围)标签下选择Whole document(整个文档);Convert equations to(把公式转换为)标签下选择Text using Math Type translator,然后在下拉框中选择MathML 2.0(namespace attr),下拉框下面的Include translator name as a commentInclude MathType data as a comment最好也勾选;最后单击Convert按钮完成全文档的公式转换。

image.png

MathType公式变成MathML代码

转换后的一个MathML代码如图,仅一个公式的代码就很多。

image.png

MathML代码

 

2. MathML代码粘贴到一个空的Word公式即可

Alt+=组合键,插入一个空的公式,如下图。

image.png

 

复制一个公式的代码,把MathML代码粘贴到空公式内即可得到Word公式。如果是第一次粘贴,会出现如下图所示的提示,请选择创建一个OMML公式,并勾选记住我的选择,下次粘贴就不会出现这样的提示。

 

image.png创建一个OMML公式

 

 

以上是一个手动的过程,如果文档中公式不多,可以采用;如果在大量公式需要转换,则会非常费时。

为了解决这个重复费时的工作,可以写一段vba代码,让其自动执行。代码如下,代码参考了这个文章http://blog.sina.com.cn/s/blog_145cd12f80102wwio.html。代码参考了文章所述的思路,但在后半段作了较大修改,在Word2010MathType 6.9的环境下运行良好。关于在Word中如何使用vba代码的操作,请百度,有很多教程。

Sub MathML2OMML()

Dim i As Integer

i = 0

'设置查找表达式,查找转换后的MathML代码

With Selection.Find

    .ClearFormatting

    .Replacement.ClearFormatting

    .Text = "\<\!-- MathType*5\@ --\>^13"

    .Replacement.Text = ""

    .Forward = True

    .Wrap = wdFindStop

    .Format = False

    .MatchWildcards = True

 

    Selection.SetRange 0, 0 '回到文首

 

    Do While .Execute

        With Selection

            .Cut '剪切MathML代码

            .TypeParagraph '插入一个空段

            .OMaths.Add Range:=.Range '插入一个空OMML公式。创建时自动选中

            .PasteAndFormat (wdFormatPlainText) '无格式粘贴MathML代码

        End With

        i = i + 1

    Loop

End With

 

MsgBox "共转换" & i & "个公式"

End Sub

 

2种办法把MathType公式转换为Word公式

MathType插件提供了把Word自带公式转换为MathType公式的功能,却没有提供把MathType公式转换为Word公式的功能。出于某些特别的要求,需要把MathType公式转换为Word公式,应该怎么做呢?

注意,这里所说的Word公式,是指Word2007及以后版本中所提供的新公式,又叫OMML公式。OMML的全称是Office Math Markup Languageoffice数学公式标记语言。

一、高版本Word可以直接转换

Word2016及以后版本(不知道Word2013是否可以),可以右击MathType公式,在弹出菜单中单击“Equation”对象,在弹出的二级菜单中单击转换为Office Math,具体操作见如下链接。这个过程应该可以编写vba代码实现一键全文档转换,但本机没有安装Word2016或以后版本,没有办法实验。

如何将mathtype公式转化为OMML公式-百度经验

二、低版本Word可以间接转换

Word2010及以前版本并没有转换为Office Math”的功能可用。但可以通过MathType插件把MathType公式变成MathML代码,再把MathML代码粘贴到一个空的Word公式中,即可生成Word公式。

1. MathType公式变成MathML代码

MathType插件可以批量把Word文档中的MathType公式转换成MathML代码。操作路径如下图所示。

单击MathType选项卡,单击Convert Equations(转换公式),弹出Convert Equations对话框。在Equations types to convert(要转换的公式)标签下勾选MathType or Equations Editor equations;在Range(范围)标签下选择Whole document(整个文档);Convert equations to(把公式转换为)标签下选择Text using Math Type translator,然后在下拉框中选择MathML 2.0(namespace attr),下拉框下面的Include translator name as a commentInclude MathType data as a comment最好也勾选;最后单击Convert按钮完成全文档的公式转换。

MathType公式变成MathML代码

 

 

转换后的一个MathML代码如图,仅一个公式的代码就很多。

 

MathML代码

 

 

2. MathML代码粘贴到一个空的Word公式即可

Alt+=组合键,插入一个空的公式,如下图。

 

复制一个公式的代码,把MathML代码粘贴到空公式内即可得到Word公式。如果是第一次粘贴,会出现如下图所示的提示,请选择创建一个OMML公式,并勾选记住我的选择,下次粘贴就不会出现这样的提示。

 

创建一个OMML公式

 

以上是一个手动的过程,如果文档中公式不多,可以采用;如果在大量公式需要转换,则会非常费时。

为了解决这个重复费时的工作,可以写一段vba代码,让其自动执行。代码如下,代码参考了这个文章http://blog.sina.com.cn/s/blog_145cd12f80102wwio.html。代码参考了文章所述的思路,但在后半段作了较大修改,在Word2010MathType 6.9的环境下运行良好。关于在Word中如何使用vba代码的操作,请百度,有很多教程。

Sub MathML2OMML()

Dim i As Integer

i = 0

'设置查找表达式,查找转换后的MathML代码

With Selection.Find

    .ClearFormatting

    .Replacement.ClearFormatting

    .Text = "\<\!-- MathType*5\@ --\>^13"

    .Replacement.Text = ""

    .Forward = True

    .Wrap = wdFindStop

    .Format = False

    .MatchWildcards = True

 

    Selection.SetRange 0, 0 '回到文首

 

    Do While .Execute

        With Selection

            .Cut '剪切MathML代码

            .TypeParagraph '插入一个空段

            .OMaths.Add Range:=.Range '插入一个空OMML公式。创建时自动选中

            .PasteAndFormat (wdFormatPlainText) '无格式粘贴MathML代码

        End With

        i = i + 1

    Loop

End With

 

MsgBox "共转换" & i & "个公式"

End Sub

 

以上就是在Word中,把MathType公式转换成Word自动公式的方法和步骤,希望对大家有帮助。这里是阿德办公图文,有什么不明白的,可以评论或私信交流。



https://blog.sciencenet.cn/blog-111625-1436033.html

上一篇:[转载]Visio将一个形状复制到其他文件颜色变了怎么办/visio复制粘贴时怎样保持原图形形状不变
收藏 IP: 124.66.52.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-26 09:24

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部