Microsoft Word のどのバージョンでも、繰り返し使用される数式のショートカットを定義することは可能ですか? (できれば、必要に応じてすべての出現箇所を一度に更新できるような方法で)
例えば、量子力学では、循環構造は状態記法|ψ⟩
*であり、⟨ψ|
文脈によっては、より複雑な構造が繰り返し現れることもある。例えば、χ⁽²⁾
\newcommand
LaTeX では、多くの場合パラメーター化されたショートカットを定義するために使用します。
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)」と入力しています)。右側のボックスに記号を入力し、「追加」ボタンをクリックします。
- ドキュメントに戻るには、[OK] をクリックします。
これで、左側のテキストを入力するたびに、右側のエントリに置き換えられます。
答え2
今(2022年)ちょっと可能。 「パラメータ化」はダイアログ ボックスで実行されます。
これは、4 つのコントロール (カスタム LaTeX 文字列を入力するためのテキスト ボックス、それを LaTeX 内の別のものに変換して選択範囲に追加するための「Bra」および「Ket」コマンド ボタン、選択範囲を数式エディター オブジェクトに変換する「数式を作成」コマンド ボタン) を含む「Bra|Ket の作成」ダイアログの簡単な例です。
最初の図は、「Bra」ボタンを押した後のダイアログとドキュメントを示しています。
追加の処理を可能にするために、選択範囲を自動的に方程式に変換しません。たとえば、次に「ket」が挿入されると、基になるコードによって 2 つの縦棒 (「bra」の終わりと「ket」の始め) が結合されます。
ここで、「方程式を作成」コマンド ボタンはこれを方程式エディター オブジェクトに変換します。
次のコードは完全なものではなく、単に概念実証を示すものです。
最初のサブルーチンが鍵となります。これらの2行は、選択範囲を数式エディタオブジェクトに変換し、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 コマンド マクロを記述するよりもずっと複雑ですが、これだけの作業ができるようになれば、簡単に拡張できます。お気に入りのマクロ用またはマテリアルの検索と置換用に、個別の小さなダイアログを作成します (警告: 数式エディター オブジェクトの検索方法がわからないため、おそらく不可能と思われます)。または、オプションのリストから選択するための巨大なダイアログを 1 つ作成します。