在我的序言中我有:
\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