我可以挂接到文档末尾但在`\clearpage`*之后吗?

我可以挂接到文档末尾但在`\clearpage`*之后吗?

代码\enddocument开始于:

\def\enddocument{%
   \let\AtEndDocument\@firstofone
   \@enddocumenthook
   \@checkend{document}%
   \clearpage
   \begingroup

我想放一些东西\clearpage。 最简单的方法是什么? 或者,我可以将一个额外的内容放入\clearpage我想转储到那里的代码中。 发出比严格必要的更多的 s 是否存在问题?在 the 之前\clearpage使用 a 是否会导致问题(可以使用结束文档钩子与其他内容进行交互)?\clearpage\@checkend{document}

具体用例是(对于那些认为我可能会问严肃的问题)TikZ/PGF。当 TeX 处理包含 PGF 内容的文档时,它会存储一些需要放在文档开头的内容。它使用一个令牌寄存器来执行此操作,该寄存器\pgfutil@everybye通过 调用\AtEndDocument{\the\pgfutil@everybye}。这很好用除了如果在最后一页的页眉和页脚中将内容添加到此列表中 - 这些内容似乎无法及时添加到列表中以添加到文档中(这在查看时显现出来直接在填充命令中定义淡入淡出样式提问者想要定义标题中的淡入淡出。这存在各种问题,而这个问题似乎相当重要。)

答案1

atveryend套餐提供

\AfterLastShipout{<code>}

来自文档:

该代码在主文件关闭之前或之后调用。例如,这是记住文件中最后一页\clearpage的正确位置。\enddocument.aux.aux

答案2

如果没有具体的 MWE,测试起来会有点困难,但是如果你插入\clearpage,之后的\@enddocumenthook第二个\clearpage应该不会产生影响。

只要您没有在自己的内容后添加任何内容\clearpage,就会导致生成空白页。

如果其他方法都失败了,您可以进行修补\clearpage\@enddocumenthook在其后添加一些内容。

我承认这有点模糊,但为了得到更具体的信息,我们确实需要一个测试示例。

答案3

以下似乎有效(使用test.tex):

\documentclass{article}
\AtEndDocument{%
  \let\oldclearpage\clearpage%
  \renewcommand{\clearpage}{%
    \oldclearpage
    \typeout{stuff}% Your stuff
}}
\begin{document}
test
\end{document}

作为 的一部分,在 的处理完成test.log之前显示“你的东西”适合:test.aux

...
{c:/texlive/2011/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
stuff
(./test.aux) 

相关内容