为什么 `\@startsection` 是这样定义的?(有办法修复它吗?)

为什么 `\@startsection` 是这样定义的?(有办法修复它吗?)

在试图弄清楚发生了什么事情时在 AMS 文档类中用 \subsection 交换材料\@startsection我终于看了一下in的定义latex.ltx。我对它在创建运行头(如用于amsart's 的头\subsection)时的作用的最佳理解是这样的:

它不直接打印页眉,而是将要打印的内容信息保存为页眉,并将其打印在后面第一个段落的开头。

问题 1这样做有什么好处?(与立即打印标题并处理后续的标记相反?)

问题2上面链接的问题中可以看到一个副作用。使用该framed包时,如果\begin{framed}...\end{framed}在运行部分开始后立即使用构建框架框,则似乎\everypar在打印框架框之前,部分命令定义中的永远不会被触发。(虽然我承认我不知道到底发生了什么导致首先打印框架框。)避免此类事情的最佳做法是什么?

(实际上,你可以通过手动\leavevmode\par开始和结束一个段落来清除页眉,然后将文本转储回去。但这感觉很黑客?)

相关内容