LINUX.ORG.RU

Как TeX передаёт аргументы в макрос?

 


0

1

Читая TheTeXbook дошёл до определений макросов и примера рекурсии, но не совсем понимаю, почему оно работает именно так.

\def\length#1{{\count0=0 \getlength#1\end \number\count0}}
\def\getlength#1{\ifx#1\end \let\next=\relax
  \else\advance\count0 by1 \let\next=\getlength\fi \next}

Собственно вот пример кода и getlength принимает по одному символу. Почему? Где хранятся остальные символы аргумента?

Есть догадка: это происходит из-за того, что аргумент уже токенизирован техом при чтении length, но верна ли она?