Каков был бы ваш минималистический список пожеланий относительно новых примитивов программирования TeX?

Каков был бы ваш минималистический список пожеланий относительно новых примитивов программирования TeX?

За эти годы я написал много «странного» TeX и никогда не сталкивался с ситуацией, когда среда программирования TeX была бы совершенно неадекватной. Однако я часто желал простонемного больше помощи при написании сложных макросов. Обнаружение жонглирования скобками, условными операторами и \string, а также \romannumeral-1...трюка было забавным, но показалось немного слишком идиосинкразическим. Теперь (только месяц назад, если кто-то может в это поверить! а я использую TeX уже более двадцати лет!), когда я посмотрел на код LaTeX3 ( expl3точнее, я все еще не могу заставить себя использовать LaTeX), я нашел несколько тех же трюков, которые мне почти стыдно было использовать (я даже подобрал пару немного более коротких способов достижения некоторых эффектов).

Итак, после этого длинного вступления, каковы бы были ваши пожелания относительно расширения TeX, которое устраняло бы недостатки программирования оригинального TeX, и почему, если это возможно?

В идеале это будеткороткий список(5 предметов или меньше). Толькопрограммированиеследует рассмотреть среду (т. е. ничего, связанного с обработкой TeX, скажем, шрифтов, других типографских проблем и т. д. Статья Франка Миттельбаха по этой теме рассматривает эту область довольно хорошо). Обратите внимание, что мне нравится минималистская философия TeX и макропрограммирование в целом (хотя у меня такое чувство, будто у меня вырастают крылья, когда я переключаюсь на написание встроенного кода на C), поэтому я ищу ответ, более соответствующий духу TeX, а не «просто используйте LuaTeX» (я ничего не имею против LuaTeXкак таковойпросто это немного похожедля этого случая; Я также считаю, что создание программированияслишком легконе очень хорошая идея). Если ответ 'e-TeX (или какое-либо другое расширение) уже делает все это, и вот почему выбор e-TeX лучше', пожалуйста, дополните.

Начну со своего списка пожеланий:

\xxpandafter{tokens}-- расширяет токен, следующий за группой

\iftoks{token list}{token list}-- сравнивает два списка токенов (то же самое, \def\listone{...}\def\listtwo{...}\ifx\listone\listtwo ...но с возможностью расширения)

\unlet token-- расширяется до кода категории, токена кода символа или ничего, если токен не является активным символом/управляющей последовательностью, допускающей такой символ

\numexpr-- то же самое, что и e-TeX (только хотелось бы, чтобы он был в паре \endnumexprс \relax)

\batchxmode{...}позволяет автоматически восстанавливаться после ошибок для кода, расширенного внутри фигурных скобок, сам расширяется в ничто (т.е. то же самое, \batchmode ... \errorstopmodeно расширяется в ничто)

Связанный контент