Недавно я просматривал несколько руководств, и некоторые из них использовали %
, а другие использовали %%
, хотя оба, похоже, вели себя как комментарии. Я просто хотел узнать, есть ли разница между ними, и если есть, когда использовать , %
а когда использовать %%
.
решение1
Что касается парсера TeX (точнее, «глаз» и «рта» TeX), то между ними нет никакой разницы.
% A comment starting with a single "%" sign.
и
%% A comment starting with a double "%" sign.
Действительно, как только %
появляется первый символ, все, что следует за ним, вплоть до конца входной строки, игнорируется, так что TeX даже не замечает, %
появился ли второй символ или нет.
Однако существует существенная разница в том, как два приведенных выше комментария трактуются вдокументацияпрограмма. Позвольте мне сделать небольшое отступление.
Программисты, которые пишут код для приложений (La)TeX, обычно используют возможности, предлагаемыедокпакет (и другие пакеты, в зависимости от потребностей) для объединения фактического кода и некоторых пояснительных комментариев в одном файле, который может быть отформатирован с помощью LaTeX для создания документа, объединяющего код TeX с его документацией, как в «грамотном программировании» Кнута.документацияПрограмма может использоваться (помимо прочего) для удаления из таких файлов части документации, создавая файл, содержащий только код TeX, почти без комментариев, и, следовательно, может вводиться с более высокой скоростью (двадцать лет назад это было гораздо более актуально, чем сегодня).
Точнее,документацияпрограмма удаляет любую строку, котораяначинаетсясодинокий %
символ. Иногда, однако, хочется, чтобы комментарий был сохранен и в файле «кода», например, потому что он содержит критическое предупреждение, которое пользователи должны обязательно увидеть. Для этогодокументацияпрограмма вводит понятие «мета-комментарий»: строка, которая начинается со строки, содержащейся в \MetaPrefix
макросе, передается в файл «кода», даже если это комментарий. Значение по умолчанию \MetaPrefix
— \DoubleperCent
(так в оригинале), который, в свою очередь, определяется как %%
; на практике это означает, что при настройке по умолчанию комментарии, начинающиеся с %%
в столбцах 1 и 2, остаются в коде, а не удаляются, как остальные.
Кроме того, для обеспечения согласованности,документацияПрограмма вставляет \MetaPrefix
в начале каждой строки преамбулы и постамбулы, которые она автоматически добавляет в файлы кода. Таким образом, обычно можно увидеть файлы пакетов или классов, которые начинаются с
%%
%% This is file `somepack.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
и так далее, и заканчивая
%%
%% End of file `somepack.sty'.
Конечно, также возможно, что программист, возможно, увидев примеры комментариев, сгенерированныхдокументацияпрограмма решает использовать два или даже больше знаков процента, чтобы сделать комментарий более заметным.