
Theответы на этот вопросупоминают такие команды, как \@author
и \@director
, и latex.ltx полон их. Однако, когда я использую \@author
в своем документе, он просто выводит слово "author". Что означают @
имена команд in?
решение1
В начале @
имени команды — это распространенный способ реализациичастное пространство имен,то есть, чтобы определить команды, которые скрыты от пользователя. Поэтому пользователь не может непреднамеренно изменить их. Это ремень безопасности.
Идентификатор команды — текст после \
символа — должен быть последовательностью букв. Идея TeX о том, какой символ является буквой, а какой нет, определяется таблицейкошачьи коды,который можно перенастроить во время выполнения.
Многие пакеты считают полезным определитьчастныймакросы, к которым пользователь не может легко получить доступ, тем самым предотвращая непреднамеренное изменение или использование пользователем. Это достигается с помощью catcodes следующим образом:
- Расположите так, чтобы
@
получился код буквы. @
Определите частные макросы, имеющие в своем названии букву .- Расположите так, чтобы
@
больше не было кода буквы.
Когда код пользователя берет на себя управление потоком выполнения после шага 3, он не может непреднамеренно взаимодействовать с макросами, имеющими @
в своем имени символ .