符号替换
写作的时候经常会出现这种情况:写作初期有些名称没有定下来,后期很可能要改。比如你文章中提出了一个算法,但是算法名字还没想好,文章中到处需要引用这个名字。与运算是用 & 还是 &&?更是有的时候遇到没节操的甲方,改来改去,改来改去,改来改去,改来改去,改来改去,改来改去……
LaTeX 解决这种问题的思路很简单,定义一个命令就好了,文章继续往下写,以后要改的话重新定义命令就好了。
\newcommand{\myalg}{NIMLE}
\newcommand{\AND}{\&{}}
...
This paper proposed a novel algorithm named \myalg. ...
0xFF \AND 0xEF ...
Word 也可以实现类似的功能。这里介绍一种利用域来实现这种符号定义的方法。
Word 中有各种各样的域,其中一种域叫做 DOCVARIABLE,语法格式为:
{ DOCVARIABLE sym }
域 DOCVARIABLE 的作用就是把变量 sym 显示出来。举个建国:ICS = “工业控制系统”,那么域 DOCVARIABLE 会将所有的 { DOCVARIABLE ICS } 替换成 ”工业控制系统“。
所以在 Word 中实现 LaTeX 中的宏替换功能需要以下几步:
1、在变量集合 Variables 中添加 ICS,并给其赋值;
2、按 Ctrl +F9 插入域,手动输入 DOCVARIABLE ICS。
相当的没有效率,被 LaTeX 甩几条街有木有。但是不用担心,Word 自有它的过人之处:VBA。下面介绍一种方法来简化这个过程。
点击菜单中的宏,如下图所示,宏名随便填,然后点击创建,如下图所示。
删除代码框中的所有代码,然后将下列代码复制进去。
Sub UpdateVariable()
' Clear variables
For Each Var In ActiveDocument.Variables
Var.Delete
Next
' Set the file path
Dim MyFile As Object
Set MyFile = CreateObject("Scripting.FileSystemObject")
Dim FilePath As String
FilePath = ActiveDocument.Path & "\Symbols.xlsx"
' If can't find the file, show error message and exit sub
If Not MyFile.FileExists(FilePath) = True Then
MsgBox "Can't find file: Symbols.xlsx", Title:="Error"
Exit Sub
End If
' Read the excel file "Symbols.xlsx"
Dim ExcelObject As Object
Set ExcelObject = GetObject(FilePath)
Set Table = ExcelObject.Sheets(1).UsedRange()
For i = 1 To Table.Rows.Count
V1 = Table.Cells(i, 1).Text
V2 = Table.Cells(i, 2).Text
ActiveDocument.Variables.Add Name:=V1, Value:=V2
Next
' Update field
ActiveDocument.Fields.Update
End Sub
Sub InsertSymbol()
' Show inputbox
Symbol = InputBox("Input symbol")
' Insert field
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
' Insert parameter
Selection.TypeText Text:="DOCVARIABLE " & Symbol
' Update field
ActiveDocument.Fields.Update
End Sub
如下图所示
这样两个宏就创建好了,为了方便的调用,将这两个宏添加到工具栏中。打开自定义工具栏窗口。找到刚刚新建的两个宏,将他们添加到开始选项卡中(凭个人喜好,爱放哪放哪)。
然后重新设置他们的名字和图标,此步骤可省略,如下图所示。
这样这两个宏就被添加到工具栏中了,如下图所示。
为了配合这两个宏的使用,我们需要一个外部文件来储存各种变量和对应值。这里采用的是 Excel 文件。在当前 Word 文档的所在目录内,新建名为 Symbols.xlsx 文件,必须是这个名字,因为在上面的代码中被写死了,如果你想换个名字,要把这行代码一并改了。
FilePath = ActiveDocument.Path & "\Symbols.xlsx"
然后打开这个 Excel 文件,然后添加你要用到的符号,如下图所示。
左边一列是变量的名称,右面一列是变量的值。用法就是点击 Word 工具栏上的”更新符号“按钮,Word 会读取所有的变量值。如果想在某处插入作者,点击”插入符号“按钮,在弹出的对话框中填 ”AU“,然后点击确定,如下图所示。
然后就出现你事先在 Excel 中定义好的内容了,如下图所示。
如果后期想修改符号,只需要在 Excel 中统一修改,保存后点击 Word 工具栏上的”更新符号“按钮,Word 中所有的 DOCVARIABLE 域都会更新。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>