No meu preâmbulo tenho:
\newcommand{\myvecb}[1]{\vb{#1}}
Suponha que em algum contexto matemático eu use:
\myvecb{F}_y
enquanto em alguns outros eu tenho:
\myvecb{F_T}
Meu problema
Percebi que no futuro talvez queira mudar tudo \myvecb{F}_y
para \myvecb{F_y}
(ou, em algum outro contexto, talvez vice-versa). Em vez de fazer tudo manualmente (porque uma simples substituição de regex pode ser muito complicada por algum motivo), é possível definir a \myvecb
definição de comando de forma que eu possa manipular o problema declarado dentro da definição?
Responder1
Isso verifica se a _
está seguindo e, nesse caso, pega o seguinte _{..}
e o coloca como um subscrito dentro de \vb{..}
.
\makeatletter
\newcommand*\myvecb[1]{\@ifnextchar_{\myvecbaux{#1}}{\vb{#1}}}
\def\myvecbaux#1_#2{\vb{#1_{#2}}}
\makeatother