% 和 %% 之间的区别

% 和 %% 之间的区别

我最近浏览了一些教程,其中一些使用了%,而另一些使用了%%,两者似乎都像注释一样。我只是想知道两者之间是否有区别,如果有区别,何时使用%,何时使用%%

答案1

对于 TeX 解析器(更准确地说,是 TeX 的“眼睛”和“嘴巴”)而言,

% A comment starting with a single "%" sign.

%% A comment starting with a double "%" sign.

事实上,一旦%看到第一个,后面的所有内容,直到输入行的末尾,都会被忽略,因此 TeX 甚至不会注意到%接下来是否有第二个。

然而,上述两条评论在处理方式上存在显著差异文档条程序。请允许我在这里稍微说一下题外话。

为 (La)TeX 应用程序编写代码的程序员通常会使用文档包(和其他包,根据需要)将实际代码和一些解释性注释合并到一个文件中,可以使用 LaTeX 格式化以生成将 TeX 代码与其文档相结合的文档,就像 Knuth 的“文学编程”一样。文档条程序可以用来(除其他外)从此类文件中剥离文档部分,生成一个仅包含 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'.

当然,也有可能一个程序员——也许在看到由文档条程序——决定使用两个或更多百分号只是为了让注释更加明显。

相关内容