我想定义\AfterAtBeginDocument
类似于以下操作的命令\AtBeginDocument
:收集代码,然后将其放在AtBeginDocument
生成的代码之后。
因此,代码
\AfterAtBeginDocument{
2
}
\AtBeginDocument{
1
}
\begin{document}
3
\end{document}
应该产生123
这是 MWE,但我不知道该怎么做\AtBeginDocument
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\AfterAtBeginDocumentText}{}{}
\NewDocumentCommand{\AfterAtBeginDocument}{ +m }{%
\let\tmpAfterAtBeginDocumentText\AfterAtBeginDocumentText
\RenewDocumentCommand{\AfterAtBeginDocumentText}{}{\tmpAfterAtBeginDocumentText#1}%
}
\RenewDocumentCommand{\AtBeginDocument}{ +m }{}
\AfterAtBeginDocument{
2
}
\AtBeginDocument{
1
}
\begin{document}
3
\end{document}
答案1
使用新的 LaTeX 内核,您可以使用\AddToHook{begindocument/end}
。
\documentclass{article}
\def\AfterAtBeginDocument{\AddToHook {begindocument/end}}
\AfterAtBeginDocument{2}
\AtBeginDocument{1}
\begin{document}
3
\end{document}