Преобразуйте tex источник так, чтобы все макросы были заменены их определением

Действительно ли возможно видеть вывод TEX 'препроцессор', я.   e. промежуточный шаг, прежде чем эффективная выходная мощность сделана, но со всеми пользовательскими замененными макросами и только подмножество оставленных примитивов TEX?

Или нет ли никакой такой промежуточный шаг?

6
задан Alexey Malistov 17 March 2010 в 17:16
поделиться

4 ответа

Запишите

\edef\xxx{Any text with any commands. For example, $\phantom x$.}

А затем для вывода в файл журнала

\show\xxx

или для вывода в вашем документе

\meaning\xxx
7
ответ дан 8 December 2019 в 12:58
поделиться

Попробуйте Selective Macro Expander .

4
ответ дан 8 December 2019 в 12:58
поделиться

В TeX нет "препроцессора". Текст замены для любой управляющей последовательности на любом этапе может быть различным (это используется для многих вещей!). Например,

\def\demo{\def\demo{cde}}
\demo

сначала \demo будет определено одним способом, а затем изменено. Таким же образом можно перенаправлять примитивы TeX. Например, ядро LaTeX перемещает \input во внутреннюю позицию и изменяет его. Упрощенная версия:

\let\@@input\input
\def\input#1{\@@input#1 }
3
ответ дан 8 December 2019 в 12:58
поделиться

TeX имеет множество встроенных инструментов отслеживания различий, включая расширение макроса трассировки. Это отслеживает только живые макросы по мере их фактического раскрытия, но это все еще весьма полезно. Полная информация в The TeXbook и, возможно, в других местах.

Когда я пытаюсь отладить проблему с макросами, я обычно просто использую большой молоток:

\tracingall\tracingonline

затем я копаюсь в выходных данных или файле .log в поисках того, что я хочу знать.

4
ответ дан 8 December 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: