在任何版本的 Microsoft Word 中,是否可以定义重复数学表达式的快捷方式?(最好以一种允许在需要时一次更新所有出现的方式)
例如,在量子力学中,循环结构是状态符号|ψ⟩
* 和⟨ψ|
根据上下文,更复杂的结构可能会重复出现,例如χ⁽²⁾
。在 LaTeX 中我用它\newcommand
来定义我的快捷方式,通常是参数化的。
尽管自旧版 Word 以来发生了许多变化,但从理论上讲,这使其成为科学写作的可行替代方案(或者至少在某些实体只接受 MS Word 文档时是可行的),定义此类“宏”的能力对我来说至关重要。MS Word 现在支持类似的东西吗?
为了创造重复结构,我会使用 AutoHotKey。但是 Word 内部解决方案可能会提供更多功能和便利。
*编辑*我指的是特别参数化的结构,即相当于\newcommand{\ket}[1]{|#1\rangle}
。
*我在这里使用了 unicode 符号,但并非所有系统都支持。等效的 latex 代码应按以下顺序排列:|\psi\rangle
、\langle\psi|
和\chi^{(2)}
。
答案1
通常的方法是使用自动更正功能,如本页底部所述:http://office.microsoft.com/en-us/word-help/autocorrect-spelling-and-insert-text-and-symbols-HA010354277.aspx
本质上,您需要定义一个文本等效项,Word 会自动用该文本替换一个符号或一组符号。例如:
要在最新版本的 Word 中添加自动更正条目:
点击左上角的“Office”按钮,然后点击“Word 选项”按钮
单击左侧列表中的“校对”,然后单击“自动更正选项”按钮。
单击“数学自动更正”选项卡并检查该条目是否已存在。
如果列表中没有,请在左侧框中输入要使用的文本,例如我在屏幕截图中输入的“|Y)”。在右侧框中输入符号,然后单击“添加”按钮。
- 单击“确定”,返回文档。
现在,每次您输入左侧文本时,它将被右侧的条目替换。
答案2
现在 (2022)有点可能的。 “参数化”是通过对话框完成的。
这是一个带有四个控件的“创建 Bra|Ket”对话框的简单示例:一个文本框,用于输入自定义 LaTeX 字符串;“Bra”和“Ket”命令按钮,用于将其转换为 LaTeX 中的其他内容并将其附加到选择中;以及“制作公式”命令按钮,用于将选择转换为公式编辑器对象。
第一幅图显示了按下“Bra”按钮后的对话框和文档。
为了允许进行额外的处理,我不会自动将选择转换为等式。例如,如果接下来插入“ket”,则底层代码会合并两个竖线(在“bra”的末尾和“ket”的开头):
现在,“制作公式”命令按钮将把它转换为公式编辑器对象:
以下代码并不是万无一失的——它仅演示了概念证明。
第一个子程序是关键:这两行将所选内容转换为公式编辑器对象,然后解析 LaTeX 字符串。当“制作公式”按钮(又名 CommandButton1
) 被点击时:
Private Sub Text2Equation()
Selection.OMaths.Add Range:=Selection.Range
Selection.OMaths.BuildUp
End Sub
其余的只是对话代码。 这是通过字符串连接实现 TeX 宏的地方。Click()
事件代码演示了您可以计算文本,根据需要对其进行修改,从而根据对话框中输入的材料创建您想要的任何自定义 LaTeX 字符串。
Private Sub CommandButton_Ket_Click()
Dim s As String
s = Trim(Selection.Text)
If Len(s) > 0 Then
If Mid(s, Len(s), 1) = "|" Then
Selection.InsertAfter Text:=Bra_Ket.TextBox1.Text & "\rangle_^*"
Else
Selection.InsertAfter Text:="|" & Bra_Ket.TextBox1.Text & "\rangle_^*"
End If
End If
End Sub
Private Sub CommandButton_Bra_Click()
Selection.InsertAfter Text:="\langle " & Bra_Ket.TextBox1.Text & "|"
End Sub
Private Sub CommandButton1_Click()
Text2Equation
End Sub
这种方法有点复杂——比编写 LaTeX 命令宏复杂得多——但一旦你完成了这么多工作,它就很容易扩展。为喜欢的宏或搜索和替换材料创建单独的小对话框(警告:我不知道如何搜索公式编辑器对象,怀疑这可能行不通)。或者,创建一个怪物对话框以从选项列表中进行选择。