将来を見据えたコマンド

将来を見据えたコマンド

私の序文にはこうあります。

\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

関連情報