当在类文件中调用时,是否可以强制在整个 LaTeX 中最后调用一个包?

当在类文件中调用时,是否可以强制在整个 LaTeX 中最后调用一个包?

我设计了一个需要包。此包的独特之处在于它需要最后调用,这样它才不会被覆盖。我通常使用“\RequirePackage”在类文件中定义包。有没有办法强制在 .cls 文件中最后调用包,同时可以使用 .tex 文件中的 \usepackage 调用其他包?

答案1

您可以使用以下方法延迟包加载\AtBeginDocument

\AtBeginDocument{\RequirePackage{xepersian}}

这将使包加载在.aux文件读取之后但在前导码的“正确结束”之前,其中所有仅前导码命令都被重新定义为引发错误;从此时起任何\usepackage(或\RequirePackage)都将不起作用。

如果由于某种原因,需要在活动\begin{document}开始之前加载该包,那么您可以加载该etoolbox包并使用:

\BeforeBeginEnvironment{document}{\RequirePackage{xepersian}}

这将\RequirePackage在执行 中的任何内容之前执行 。效果与你将行放在文件之前\begin{document}的效果相同。\RequirePackage\begin{document}.tex

相关内容