\nameofcompany
我在文档末尾使用命令插入名称和许可证,如下所示:
\nameofcompany
\end{document}
现在,我想将其推广到一些文档,因为我找到了,\AtEndDocument{\nameofcompany}
但它的结果与并不完全相同\nameofcompany \end{document}
。似乎使用\AtEndDocument
,命令仅在之后执行\end{document}
,而我希望它在之前执行。
我也尝试document
像这样重新定义环境
\renewenvironment{document}%
{\begin{document}}
{%
\nameofcompany
%
\end{document}%
}
但它也不起作用。
是否有类似的命令\beforTheEndDocument
?
答案1
\AtEndDocument{<stuff>}
简写相当于
<stuff>
\end{document}
为什么?看看\enddocument
(来自latex.ltx
):
\def\enddocument{%
\let\AtEndDocument\@firstofone
\@enddocumenthook
\@checkend{document}%
\clearpage
\begingroup
\if@filesw
\immediate\closeout\@mainaux
\let\@setckpt\@gobbletwo
\let\@newl@bel\@testdef
\@tempswafalse
\makeatletter \@@input\jobname.aux
\fi
\@dofilelist
\ifdim \font@submax >\fontsubfuzz\relax
\@font@warning{Size substitutions with differences\MessageBreak
up to \font@submax\space have occurred.\@gobbletwo}%
\fi
\@defaultsubs
\@refundefined
\if@filesw
\ifx \@multiplelabels \relax
\if@tempswa
\@latex@warning@no@line{Label(s) may have changed.
Rerun to get cross-references right}%
\fi
\else
\@multiplelabels
\fi
\fi
\endgroup
\deadcycles\z@\@@end}
\@enddocumenthook
是通过以下方式更新的钩子\AtEndDocument
:
\def\AtEndDocument{\g@addto@macro\@enddocumenthook}
您可以通过查看以下链接来考虑其他文档结尾钩子:atveryend
包裹。它提供了以下钩子,所有钩子都会被执行后钩子\AtEndDocument
,除了第一个:
BeforeClearDocument{<code>}
\clearpage
该代码在最终的之前被调用\enddocument
。然而,目前尚不清楚最后一页是否已经发出,或者这是否会由最终的触发\clearpage
。
\AfterLastShipout{<code>}
该代码在主文件关闭之前 或之后调用。 例如,这是记住文件中最后一页
\clearpage
的正确位置。\enddocument
.aux
.aux
\AtVeryEndDocument{<code>}
文件关闭并再次读入后会调用此代码
.aux
。它是进行最终检查、重新运行提示和最终消息的地方。
\AtEndAfterFileList{<code>}
在文件关闭和读取之后,
.aux
如果 请求,LaTeX 会打印文件列表\listfiles
。然后执行此钩子。
\AtVeryVeryEnd{<code>}
此代码在最终之前被调用
\@@end
。
请参阅的定义\enddocument
以了解上述挂钩的大致位置。