
Скажем, я хотел бы иметь команду, которая бы помещала text A
под text B
. Но я не хочу писать аргументы своей команды в \commandname{A,B}
моде. Вместо этого я хотел бы написать что-то вроде этого кода: \put A \under B
Возможны ли такие конструкции с командами TeX и как их создать?
решение1
Да, можно, но не следует:
\def\put#1\under#2{...something with #1 and #2...}
Вы можете назвать это так
\put A\under B
или
\put A\under {BC}
Если второй аргумент состоит из более чем одного токена, избежать скобок невозможно.
И тогда вы скоро пожалеете об этом, потому что вы обнаружите, что \put
это уже команда LaTeX и что вы ее переопределяете. Если вы говорите о Plain TeX, то проблем нет.
Обратите внимание, что если вы позвоните
\put A \under B
затем #1
будет A
стоять пробел, который может иметь значение или нет в зависимости от различных факторов.
Вы можете прочитать оразграниченныймакроаргументы в TeX по темам ( texdoc texbytopic
в вашей системе илиэта ссылка) или в TeXbook.