数学建模社区-数学中国

标题: word中的公式编号 [打印本页]

作者: 顺风航    时间: 2011-8-11 11:39
标题: word中的公式编号
1.利用Word域
Word的域功能十分强大和有用,其中联合使用STYLEREF和SEQ两个域,可以方便地为文档中的公式进行编号,便于在文档中其他地方引用。下面的指令是一个示例:
{STYLEREF 1 \s} - {SEQ Equation \* ARABIC \s 1}
在文档中插入这样的域后,就会显示1-1的编号。而
{SEQ Equation \* GB2 \s 1}   显示(1)的编号
在文档中每个公式的后面都加上一个这样的域,Word会自动对它们编号管理。选中编号,建立书签,你需要引用公式的地方,
也只需要插入相应的域引用就可以了。插入引用十分方便,只需要打开Word的交叉引用窗口,选中需要的公式即可。


2.利用Mathtype工具栏图标进行
点Insert display equation,number on right按钮,进入mathtype,输入公式后,公式自动居中,编号自动居右。在文中引用公式时,可以点Insert equation reference,然后点击要引用的公式编号。
缺点是公式的标号带有章节记号,比如1-1,1-2,。。。,如果要换成1,2.。。这样的编号,同时编号居右,似乎不太容易。
一个可行的改动是应用样式,随便在空白处应用“插入右编号方程”,点“ 格式->样式和格式”查看,发现此时的样式是“MTDisplayEquation”,进入编辑,看到具体的样式结构为:
正文 + 宋体: 小四,制表位: 19.81字符,居中 + 39.52字符,右对齐
按照此样式制作新样式:InsEqR(实际上在使用了一次“插入右编号方程”后,样式“MTDisplayEquation”就保留下来,并不需要制作新样式),结合1中的域功能(如:{SEQ Equation \* ARABIC \s 1}),即可以自己定义想要的编号,然后,公式前加tab,编号前加tab,就可以实现自动编号,编号居右,公式居中。
3.利用宏
一种更好的办法是创建一个宏命令来完成实现更加高级的功能。下面的一段VBA代码可以直接复制到你的模板中使用。它创建了一个宏按钮域和一个唯一的对应书 签,以后你可以使用GOTOBUTTON域来引用。格式是:{GOTOBUTTON bookmark {ref bookmark \* meregeformat}}。
  1. Sub InsertEquationMacroButton()

  2. '

  3. ' Macro recorded 5/7/2003 by Zhanshan Dong

  4. '

  5. Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _

  6. PreserveFormatting:=False

  7. Selection.TypeText Text:="macrobutton MTPlaceRef \* mergeformat "

  8. Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _

  9. PreserveFormatting:=False

  10. Selection.TypeText Text:="seq MTEqn \h \* mergeformat"

  11. Selection.MoveRight Unit:=wdCharacter, Count:=2

  12. Selection.TypeText Text:="[]"

  13. Selection.Delete Unit:=wdCharacter, Count:=1

  14. Selection.MoveLeft Unit:=wdCharacter, Count:=1

  15. Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _

  16. PreserveFormatting:=False

  17. Selection.TypeText Text:="STYLEREF \s 1 \* mergeformat"

  18. Selection.MoveRight Unit:=wdCharacter, Count:=3

  19. Selection.MoveLeft Unit:=wdCharacter, Count:=1

  20. Selection.TypeText Text:="-"

  21. Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _

  22. PreserveFormatting:=False

  23. Selection.TypeText Text:="SEQ MTEqn \c \* Arabic \* mergeformat"

  24. Selection.MoveRight Unit:=wdCharacter, Count:=4

  25. Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend

  26. Selection.Fields.ToggleShowCodes

  27. Selection.Fields.Update

  28. mydate = Date

  29. mytime = Time

  30. myserial = CStr(Round(CDbl(mydate) * 100000 + CDbl(Time) * 100000))

  31. With ActiveDocument.Bookmarks

  32. .Add Range:=Selection.Range, Name:="Eqn" + myserial

  33. .DefaultSorting = wdSortByName

  34. .ShowHidden = False

  35. End With

  36. End Sub
复制代码

作者: zcw@#¥    时间: 2011-8-15 18:08
谢谢。。。。
作者: 科大小韩    时间: 2011-8-23 08:17
学习一下,呵呵,到时候会有用
作者: 天之海    时间: 2011-8-24 21:13
表示只会第二种
作者: llchdyz    时间: 2011-9-7 10:19
nice~
作者: 不明白    时间: 2011-9-7 18:49
有用的东西!
作者: 1546397057    时间: 2011-12-3 10:48

作者: weige2010    时间: 2012-1-7 18:43
真给力啊!
作者: shumomxs    时间: 2012-1-10 21:48
这个还是很有用的啊
作者: alair005    时间: 2012-2-7 11:41
3x,you are so great6541777215323162
作者: xiang1990    时间: 2012-7-2 15:03
确实给力,分享下哈

作者: 50infivedays    时间: 2012-7-16 16:01
正找这个呢~~谢谢你喔·~
作者: 50infivedays    时间: 2012-7-16 16:09
正找这个呢~~谢谢你喔·~
作者: 扑克王    时间: 2012-8-9 18:47
很高级哦!!!!!!!!!!!!!!!!
作者: 斌11斌    时间: 2013-6-7 18:34
好高级   完全看不栋  大神
作者: 千叶迦南    时间: 2013-8-9 18:42
lz好人呀!
作者: 忘了好多密码    时间: 2013-9-12 13:13

作者: 暗夜№☆修罗    时间: 2013-12-1 23:58
谢了。。。。。。。。。
作者: 喵喵喵喵    时间: 2014-1-10 19:49
赞一个,,,,楼主好人呀
作者: 空木葬花    时间: 2014-2-23 14:37
非常感谢楼主的福利!
作者: 专属雨天    时间: 2014-7-4 11:52
好好学习一下
作者: 835500170    时间: 2014-7-13 13:46
写的不错,挺高深
作者: junesmile    时间: 2014-7-15 21:22
感谢分享,好东西。。
作者: 一个胖虫子    时间: 2014-7-15 23:12
顶顶顶顶顶顶顶顶顶顶顶
作者: Beato777    时间: 2014-12-26 19:32
谢谢分享

作者: 一度~如是    时间: 2015-1-3 12:16
表示赞                     

作者: mmmonica    时间: 2015-1-15 09:25


作者: pandengyao    时间: 2015-8-30 09:26
学习了,谢谢楼主

作者: dong1540194894    时间: 2015-10-18 14:41
感谢楼主分享!!!!!!!!





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5