@ Дебильски - я написал что-то похожее на ваш активный * код для сокращений в моей диссертации. Я активировал <, а затем \ def <# 1>, чтобы напечатать аббревиатуру, а также расширение, если оно встречается впервые. Я также немного вышел из глубины, позволив определить расширения в строке и использовать файлы .aux для отправки расширений «вовремя», если они используются до их объявления, или для сообщения об ошибках, если аббревиатура никогда не объявляется.
В целом, казалось, что в то время это было бы хорошей идеей - мне редко требовалось <быть catcode 12 в моем реальном тексте (поскольку все мои макросы были в отдельном файле .sty), и я заставил его вести себя в математический режим, поэтому я не мог предвидеть никаких трудностей. Но мальчик был хрупким ... Я не знаю, сколько раз я случайно ломал свою сборку, изменяя что-то, казалось бы, не связанное. Так что все, что нужно сказать, будьте <em>очень осторожно активирующими персонажей, которые даже отдаленно часто используются.
С другой стороны, для XeTeX и более высоких символов Юникода это, вероятно, намного безопаснее, и, как правило, существуют простые способы ввода этих дополнительных символов, такие как создание многослойной (или составной) клавиши (обычно я сопоставляю либо numlock, либо один из ключей Windows к этому), так что, например, мульти - - производит ¡). Или, если вы работаете в emacs, вы можете использовать C- \, чтобы ненадолго переключиться в режим ввода TeX, чтобы вставить юникод, набрав для него команду TeX (хотя это затрудняет фактический ввод документов TeX, поскольку он перехватывает ваш фактический \ и, пожалуйста, не пытайтесь определить свой собственный побег!)