文档编译后,注释是否可以安全地隐藏?

文档编译后,注释是否可以安全地隐藏?

这有点类似于一些 pdf 到 latex 的问题,但角度不同。我不是在寻找完整的 LaTeX 重建方法,我想知道注释是否被安全隐藏。

我的情况是,我想向我的学生分发一个样本测试,其中包括真实测试或一些注释掉的变体——这样我就可以每年保留同一个文件,而不必管理多个文档。我很确定注释掉的内容会从编译的文档中完全删除,但在分发这样的 pdf 之前,我想绝对确定。有没有什么方法可以从最终的 pdf 中提取注释行?如果有什么不同,我可能会使用 XeLaTeX。

答案1

你的问题的答案有两个方面:

是的,编译时注释会被忽略,并且注释文本无法从最终文档中恢复。

但事实并非如此。通常可以判断出源代码中的评论在哪里/多长时间。例如,请看以下场景:

Line 1
Line 2

对阵

Line 1%
Line 2

在编译后的输出中,第一个示例中的换行符Line 1被视为空格并转换为空格,因此输出为Line 1 Line 2。然而,在第二个示例中,注释字符注释掉了空格,因此最终的编译输出为Line 1Line 2。虽然此示例本身没有泄露任何信息,但它确实显示了注释可以多么轻松地以意想不到的方式修改 TeX 文档的结构。

虽然我怀疑这与您的用例是否相关,但它确实可以获得有关评论位置以及评论长度的一些信息,因此最好仔细考虑您的问题/答案以确保您没有以这种方式泄露任何信息(话虽如此,您的学生是否有可能这么想?)。

编辑:发帖后立即发现有人抢先了。抱歉提供了很多重复信息。

答案2

我确信这里的其他答案都是正确的,而且有保证和标准等总是好的,但我想我可以补充一些内容。

如果是我,并且我非常想确保某个过程的输出(PDF)没有混合输入过程(TeX 源)的某些元素,我会将金丝雀添加到输入中,然后在输出中搜索它们。

金丝雀应该是一个可搜索的字符串,它只会作为标记出现在应该丢弃的部分中。

例如,

%The answer to this question is D. ImACanary
...
\begin{comment}
   Explaning stuff, explaining stuff. ImACanary
\end{comment}

然后,您可以使用您最喜欢的十六进制编辑器在输出 PDF 中搜索字符串“ImACanary”。如果您找到金丝雀,请离开煤矿。

相关内容