如何根据文档部分使用 env hooks 执行命令?

如何根据文档部分使用 env hooks 执行命令?

考虑测试用例:

\documentclass{report}
\usepackage{appendix}

\title{Title}\author{}\date{}

\newcommand\hooktest{this shouldn't be printed}
\AddToHook{begindocument/before}{
    \renewcommand\hooktest{hook before title}
}
\AddToHook{cmd/maketitle/after}{
    \renewcommand\hooktest{hook before ToC}
}
\AddToHook{cmd/tableofcontents/after}{
    \renewcommand\hooktest{hook before main part}
}
\AddToHook{env/appendices/begin}{
    \renewcommand\hooktest{hook before Appendices}
}


\begin{document}
\hooktest\maketitle\newpage

\hooktest\tableofcontents\newpage

\hooktest\chapter{Test1}\newpage

\begin{appendices}
\hooktest\chapter{Test2}
\end{appendices}
\end{document}

文档有 4 个部分(标题、目录、正文、附录),需要运行相关\renewcommand程序。基于钩子文档中的示例使用了三种不同的钩子类型和三种不同的位置。这是不一致的,而且env/appendices/begin似乎只被正确使用,很有趣

是否\maketitle\tableofcontents自己的内部环境,可以使用env钩子访问?例如:

\AddToHook{env/someTitleEnvironment/begin}{
    \renewcommand\hooktest{hook before title}
}
\AddToHook{env/someTocEnvironment/begin}{
    \renewcommand\hooktest{hook before ToC}
}
\AddToHook{env/someTocEnvironment/end}{
    \renewcommand\hooktest{hook before main part}
}

欢迎提出有关替代解决方案的建议。

相关内容