為 Microsoft Word 定義數學快捷方式/宏

為 Microsoft Word 定義數學快捷方式/宏

在任何版本的 Microsoft Word 中,是否可以為重複出現的數學運算式定義捷徑? (最好是在需要時允許一次更新所有事件的方式)

例如,在量子力學中,循環結構是狀態符號|ψ⟩* 和⟨ψ|。根據上下文,更複雜的結構可能會重複出現,例如χ⁽²⁾。在 LaTeX 中,我用來\newcommand定義快捷方式,通常是參數化的。

儘管自舊版Word 以來發生了許多變化,但從理論上講,這將使其成為科學寫作的可行替代方案(或至少在某些實體只接受MS Word 文件時可行),定義此類「宏」的能力對我來說至關重要。 MS Word 現在支援這樣的東西嗎?

為了創造重複結構,我會使用 AutoHotKey。然而,Word 內部解決方案可能會提供更多功能和便利性。

*編輯*我指的是特別參數化的結構,即相當於\newcommand{\ket}[1]{|#1\rangle}.


*我在這裡使用了可能並非所有系統都支援的 unicode 符號。等效的乳膠代碼依此順序為:|\psi\rangle\langle\psi|\chi^{(2)}

答案1

通常的方法是使用自動更正,如本頁底部所述:http://office.microsoft.com/en-us/word-help/auto Correct-spelling-and-insert-text-and-symbols-HA010354277.aspx

本質上,您可以定義一個等效文本,Word 將自動替換一個符號或一組符號。例如:

若要在最新版本的 Word 中新增自動更正項目:

  • 點擊左上角的“Office”按鈕,然後點擊“Word 選項”按鈕 Word 選項對話框

  • 按一下左側清單中的“校對”,然後按一下“自動修正選項”按鈕。 單字選項 - 自動更正

  • 按一下「數學自動修正」標籤並檢查該條目是否已存在。

  • 如果清單中尚未包含,請在左側方塊中輸入您要使用的文本,例如我在螢幕截圖中輸入的「|Y)」。在右側方塊中輸入符號,然後按一下「新增」按鈕。

數學自動修正

  • 確定,返回文檔。

現在,每次您鍵入左側文字時,它都會被右側條目取代。

答案2

現在是(2022年)有點可能的。 「參數化」是透過對話框完成的。

以下是一個簡單的「Create Bra|Ket」對話方塊範例,其中包含四個控制項:一個用於輸入自訂 LaTeX 字串的文字方塊; “Bra”和“Ket”命令按鈕將其轉換為 LaTeX 中的其他內容並將它們附加到選擇中;和“建立方程式”命令按鈕,用於將選擇轉換為方程式編輯器物件。

第一張圖顯示了按下「Bra」按鈕後的對話方塊和文件。

圖1

為了允許額外的處理,我不會自動將選擇轉換為方程式。例如,如果接下來插入“ket”,則底層程式碼會合併兩個垂直條(在“bra”的末尾和“ket”的開頭):

圖2

現在,「製作方程式」命令按鈕會將其轉換為方程式編輯器物件:

圖3


下面的程式碼並不是萬無一失的——它只是演示了概念證明。

第一個子程序是關鍵:這兩行將選擇內容轉換為方程式編輯器對象,然後解析 LaTeX 字串。當“Make Equation”按鈕(又名 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 命令巨集複雜得多——但一旦你完成了這麼多工作,它就很容易擴展。為最喜歡的巨集創建單獨的小對話框或搜尋和替換材料(警告:我不知道如何搜尋方程式編輯器物件並懷疑它可能不可能)。或者,建立一個怪物對話框以從選項清單中進行選擇。

相關內容