Что означает «@» в начале имени команды?

Что означает «@» в начале имени команды?

Theответы на этот вопросупоминают такие команды, как \@authorи \@director, и latex.ltx полон их. Однако, когда я использую \@authorв своем документе, он просто выводит слово "author". Что означают @имена команд in?

решение1

В начале @имени команды — это распространенный способ реализациичастное пространство имен,то есть, чтобы определить команды, которые скрыты от пользователя. Поэтому пользователь не может непреднамеренно изменить их. Это ремень безопасности.

Идентификатор команды — текст после \символа — должен быть последовательностью букв. Идея TeX о том, какой символ является буквой, а какой нет, определяется таблицейкошачьи коды,который можно перенастроить во время выполнения.

Многие пакеты считают полезным определитьчастныймакросы, к которым пользователь не может легко получить доступ, тем самым предотвращая непреднамеренное изменение или использование пользователем. Это достигается с помощью catcodes следующим образом:

  1. Расположите так, чтобы @получился код буквы.
  2. @Определите частные макросы, имеющие в своем названии букву .
  3. Расположите так, чтобы @больше не было кода буквы.

Когда код пользователя берет на себя управление потоком выполнения после шага 3, он не может непреднамеренно взаимодействовать с макросами, имеющими @в своем имени символ .

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