내 서문에는 다음이 있습니다.
\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