<>
<DIV align=center>
<DIV align=center>
<DIV align=center>
<TABLE cellSpacing=0 cellPadding=0 width="95%" align=center border=0>
<TR height=30>
<TD align=middle><FONT size=+0><B>公式编辑器高级指南</B></FONT></TD></TR>
<TR height=20>
<TD align=middle>
<HR width="80%" color=#669966 SIZE=1>
</TD></TR>
<TR height=40>
<TD vAlign=top align=middle></TD></TR>
<TR>
<TD><FONT size=+0>MS Office“公式编辑器”是Design Science(http://www.mathtype.com)设计的MathType的简化版本,用它可以十分方便地录入、编排各种数学公式及一些简单的化学公式。其操作直观简单,即使是初学者也能够很容易掌握,是编写科技论文的好帮手。由于工作的需要,笔者经常需要录入、修改大量的数学公式,为了尽可能地提高工作效率,不得不对公式编辑器进行了一番仔细研究,总结了几点心得体会,希望与经常使用公式编辑器的朋友们交流。
1. MathType简介
MathType是“公式编辑器”的功能强大而全面的版本。如果要经常在文档中编排各种复杂的数学、化学公式,则MathType是非常合适的选择。MathType用法与“公式编辑器”一样简单易学,而且其额外的功能使您的工作更快捷,文档更美观。
MathType 包括:
(1)Euclid字体设置了几百个数学符号。
(2)具有应用于几何、化学及其他方面的新样板和符号。
(3)专业的颜色支持。
(4)为全球广域网创建公式。
(5)将输出公式译成其他语言(例如:TeX、AMS-TeX、LaTeX、MathML及自定义语言)的翻译器。
(6)用于公式编号、格式设置及转换Microsoft Word文档的专用命令。
(7)可自定义的工具栏,可容纳最近使用过的几百个符号、表达式和公式。
(8)可自定义的键盘快捷键。
MathType的共享版可以从如下地址下载:
http://download.fzu.edu.cn/sort.php?class=Other&softclass=Math。
2. 公式编辑器的常用技巧
(1)修改公式编辑器提示窗口显示次数。
对于经常录入大量数学公式的朋友来说,最讨厌的就是公式编辑器的提示:每当用户使用了若干次公式编辑器后,就会有一个公式编辑器提示对话框弹出来,问你是否想了解有关“数学类型”的详细内容,如图1所示。若不选择“不再显示此信息”,则弹出间隔为100次;若选择“不再显示此信息”,则弹出间隔为500次,非常烦人。经过多次的研究,笔者发现该对话框虽然无法禁止,但可以延长其发作间隔:将500次延长为32767次。修改方法如下:
图1 公式编辑器的提示
打开注册表,找到表项:
HKEY_CURRENT_USER\Software\Microsoft\Equation Editor\3.0\Options\General
将MTUpgradeDialog的数值改为32767。
(2)用VBA控制文档中的公式。
总的来说,用VBA控制公式编辑器不太容易,特别是公式编辑器中的数据。下面几个小例子以Office 2000提供的公式编辑器3.01为例展示了控制公式编辑器的几种方法,希望能给对VBA感兴趣的同行一点启发。
例1:逐个打开文档中已有公式
Sub 编辑公式()
' 查找并编辑公式
On Error Resume Next '若有错误,执行下一条语句
Num_EQ = False '是否包含公式
' 判断文档中是否包含公式,若包含则进行编辑整理,否则退出退程序
For num = 1 To ActiveDocument.InlineShapes.Count
s = ActiveDocument.InlineShapes(num).OLEFormat.ClassType
If s = "Equation.3" Then
Num_EQ = True
Exit For '包含公式,退出循环
End If
Next num
If Not Num_EQ Then '没有公式,退出子程序
Exit Sub
End If
Search: '开始查找inlineshap对象,包括公式、图形,等等
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^g"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute
If Selection.InlineShapes(1).OLEFormat.ClassType = "Equation.3" Then '如果是公式
Selection.InlineShapes(1).OLEFormat.DoVerb VerbIndex:=1 '打开公式编辑器
Else
GoTo Search '若不是公式,继续查找
End If
End Sub
例2:公式转换,将文档中的字母符号公式转换为公式对象
Sub 公式转换()
Selection.Cut
Selection.InlineShapes.AddOLEObject ClassType:="Equation.3", FileName:= _
"", LinkTofile:=False, DisplayAsIcon:=False
SendKeys "%"
SendKeys "{RIGHT}{down}{down}{down}{down}{enter}"
End Sub
例3:向文档中插入新公式
Sub 插入公式()
' 插入新公式
Selection.InlineShapes.AddOLEObject ClassType:="Equation.3", LinkTofile:= _
False, DisplayAsIcon:=False
End Sub
例4:整理公式,即将公式“过一遍”,使其重新应用定义好的样式尺寸
Sub 整理公式()
' 自动整理公式格式
On Error Resume Next '若有错误,执行下一条语句
Num_EQ = False '是否包含公式
' 判断文档中是否包含公式,若包含则进行编辑整理,否则退出退程序
For num = 1 To ActiveDocument.InlineShapes.Count
s = ActiveDocument.InlineShapes(num).OLEFormat.ClassType
If s = "Equation.3" Then
Num_EQ = True
Exit For '包含公式,退出循环
End If
Next num
If Not Num_EQ Then '没有公式,退出子程序
Exit Sub
End If
Search: '开始查找inlineshap对象,包括公式、图形,等等
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^g"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute
If Selection.InlineShapes(1).OLEFormat.ClassType = "Equation.3" Then '如果是公式
Selection.InlineShapes(1).OLEFormat.DoVerb VerbIndex:=1 '打开公式编辑器
If Tasks.Exists("公式编辑器") = True Then '如果打开了公式编辑器,则激活
With Tasks("公式编辑器")
.Activate
.WindowState = wdWindowStateNormal
End With
SendKeys "%", True '发送推出指令
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{ENTER}", True
End If
Else
GoTo Search '若不是公式,继续查找
End If
End Sub
例5:放大、缩小公式(也可用于行内图形)
Sub 缩小图形()
h = Selection.InlineShapes(1).Height
w = Selection.InlineShapes(1).Width
Selection.InlineShapes(1).Width = w * 0.99
Selection.InlineShapes(1).ScaleHeight = Selection.InlineShapes(1).ScaleWidth
End Sub
Sub 放大图形()
h = Selection.InlineShapes(1).Height
w = Selection.InlineShapes(1).Width
Selection.InlineShapes(1).Width = w * 1.01
Selection.InlineShapes(1).ScaleHeight = Selection.InlineShapes(1).ScaleWidth
End Sub
上述几个例子若配合快捷键使用,会大大提高处理公式的效率。但用VBA处理公式毕竟功能有限,若希望能更全面地用程序控制公式,需要使用MathType。
3. 化学反应式、化学结构式的编排
用公式编辑器可以编排化学反应式和化学结构式,已经有人进行了这方面的尝试,但笔者认为,由于公式编辑器本身的局限性,用它来排化学反应式和化学结构式实在很勉强,且效率低下。在这方面,MathType要比公式编辑器更胜一筹。其实,如果要经常编排化学反应式和化学结构式,如Visio,SmartDraw,甚至WPS Office,还有不计其数的专门编排化学结构式的小软件。
4. 常用快捷键指南
毋庸置疑,快捷键的使用能极大地提高录入公式的效率,公式编辑器的帮助文件中提供了全面的快捷键指南,这里只列出了一些比较重要的和帮助文件中不易找到的快捷键。
矩阵的对齐没有快捷键,普通的对齐命令对其无效,所以有些朋友往往无法对齐矩阵中的公式,其实操作很简单:执行“格式-矩阵”命令,即可弹出矩阵对齐对话框,按照我们的需要操作就行了。</FONT> </TD></TR></TABLE></DIV></DIV></DIV> |