面向未來的命令

面向未來的命令

在我的序言中我有:

\newcommand{\myvecb}[1]{\vb{#1}}

假設在某些數學上下文中我使用:

\myvecb{F}_y

而在其他一些我有:

\myvecb{F_T}

我的問題

我注意到,將來我可能想全部更改\myvecb{F}_y\myvecb{F_y}(或者,在其他情況下,也許反之亦然)。是否可以定義\myvecb命令定義,以便我可以操縱定義中的規定問題,而不是手動執行所有操作(因為簡單的正規表示式替換可能由於某種原因過於複雜)?

答案1

這會檢查 a 是否_在後面,在這種情況下,它會獲取以下內容_{..}並將其作為下標放入 內\vb{..}

\makeatletter
\newcommand*\myvecb[1]{\@ifnextchar_{\myvecbaux{#1}}{\vb{#1}‌​}}
\def\myvecbaux#1_#2{\vb{#1_{#2}}}
\makeatother

相關內容