Zukunftssichere Steuerung

Zukunftssichere Steuerung

In meiner Präambel steht:

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

Angenommen, ich verwende in einem mathematischen Kontext:

\myvecb{F}_y

während ich in einem anderen habe:

\myvecb{F_T}

Mein Problem

Mir ist aufgefallen, dass ich in Zukunft möglicherweise alles \myvecb{F}_yin ändern möchte \myvecb{F_y}(oder in einem anderen Kontext vielleicht umgekehrt). Anstatt alles manuell zu machen (weil ein einfaches Ersetzen durch reguläre Ausdrücke aus irgendeinem Grund zu kompliziert sein kann), ist es möglich, die \myvecbBefehlsdefinition so zu definieren, dass ich das angegebene Problem innerhalb der Definition manipulieren kann?

Antwort1

Dies prüft, ob ein _folgt. In diesem Fall greift es auf das Folgende zu _{..}und fügt es als Index darin ein \vb{..}.

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

verwandte Informationen