有人在 \end{document} 之后放置了什么东西吗?

有人在 \end{document} 之后放置了什么东西吗?

就像http://programming.itags.org/tex/137196/我注意到 之后的所有内容\end{document}都被忽略了。 有什么意义\end{document}? 似乎编译器可以只读取到文件末尾,而不是直到\end{document}。 那么,这\end{document}只是为了完整性,因为它关闭了document环境,还是在 之后放置东西有实际用途\end{document}

答案1

频繁地有超出范围的东西\end{document}!这对于调试来说非常有价值。有时我有一些复杂的 TeX 代码,它出了严重的问题,但我无法确切地找出错误在哪里(例如,beamer 倾向于在帧结束时报告错误 - 因为那是它遇到它们的时候 - 但实际错误深藏其中)。然后采取\end{document}明智的步骤可以帮助我通过在源文件中定位它来找到错误的可能原因。

另一个用途(这些应该放在不同的答案中吗?)是测试代码。这是我在这里回答问题时的一个特殊用途。如果有一些代码我想保存(可能是提问者的原始代码)但不想处理(也许我正在研究替代方案),那么可以快速轻松地将其推到 之外\end{document}。这比注释它更好,因为它将不同的部分分开,并且我的编辑器仍然会对其进行语法突出显示。

在我发现版本控制之前,我曾经使用补丁来\end{document}保存文章的片段,这些片段可能仍然适合某个地方,但我不确定在哪里。现在我使用版本控制,我不会这样做,因为我知道我总是可以从旧副本中恢复它。为了强调这是多么愚蠢,我认为我没有曾经实际上是复活了代码,但它给了我安全网,这意味着我更乐意删除需要删除的文章的大部分内容,而不必担心丢失有价值的东西。

答案2

TeX 读取文件直到它读取一个原始调用\end,此时它完成排版。因此,任何 TeX 文件只要“用尽指令”,就意味着 TeX 将显示提示*并等待更多输入。因此,您必须正确“完成”。

在大多数情况下,您不想\end直接调用。在 LaTeX 中,原语\end被重命名为\@@end,并且该名称\end用于环境,因此无论如何您都无法轻松地直接使用原语。在 LaTeX 文档的末尾,实际上有很多事情需要整理,例如完成文件.aux。这一切都包含在内\end{document},作为最后一幕,它将触发\end原语以完成 TeX 运行。

(通常,最后一页也要添加填充内容,因此即使在纯 TeX 中,也通常也会包含一些额外的说明\end。在纯文本中,这是通过\bye宏完成的。)

答案3

\end{document}命令可能会调用必要的清理宏,如果文件刚刚结束,这在 LaTeX 中是不可能实现的(因为 LaTeX 不是直接编译的,而是用 TeX 编写并解释的)。因此,它\end{document}有一个非常具体的用途,即使它之后的任何文本都会被忽略,因此只不过是一个美化的评论。

答案4

我经常使用后面的空间\end{document}作为便笺本来处理在主文档中没有合适位置的文本。

相关内容