
我正在使用這個包braket
來記錄我的實體筆記,這大大加快了速度,但我不斷地寫\ket{\psi}
或\bra{\psi}
,並且因為這對特定的胸罩和胸罩經常出現,所以這會重複,我想要一個宏來加快速度。然而,由於該braket
包僅在數學模式下工作,所以當我在文字模式下編寫時,我的嘗試\newcommand{\ketp}{$\ket{\psi}}$
有效,但當我在數學模式下編寫時,它會中斷(毫不奇怪)。
有什麼方法可以讓這個指令在數學模式和文字模式下運作,而不必定義兩個不同的宏,每個宏一個?
預先感謝您的任何幫助。
PS 我確信這是一個非常簡單的問題,但我幾乎找不到對此功能的解釋。
答案1
您可以使用
\newcommand{\ketp}{\ensuremath{\ket{\psi}}}
然而,目前尚不清楚這樣做是否總是一個好主意。 TeX 標記是基於一種在文字和數學命令之間有明顯區別的設計,假設作者始終知道正在使用哪種模式,並且通常在文字和數學中使用的類似命令具有不同的名稱,例如比較\^
和\hat
也就是說,\ensuremath
它被添加到 LaTeX 中來完全按照您的要求進行操作,所以如果您想使用它,它就在那裡...
答案2
有一個命令正是用於此目的:\ensuremath{…}
。如果在數學模式下使用,它的參數不變;如果在文字模式下使用,它給出其參數,但放入數學模式。
所以\newcommand{\ketp}{\ensuremath{\ket{\psi}}}
會照你的要求去做。
關於其使用的一些很好的指導:正確使用方法ensuremath
;什麼時候不是使用ensuremath
。