我正在写一个论文类文件,我想延迟代码的运行后加载特定的包:
\AtEndOfOtherPackage{listings}{%
\lstset{language=Python}}
是否有针对该任务的现有命令?如果没有,该如何执行?
答案1
使用scrlfile
get \AfterPackage
,只有在包加载后才会执行,并且在包结束时执行。所以
\RequirePackage{scrlfile}
\AfterPackage{listings}{\lstset{language=Python}}
应该是你想要的。
答案2
如果您需要加载包裹,请按照 Herbert 所示进行操作,
\RequirePackage{listings}
\lstset{language=Python}
如果你想有条件地运行包后面的东西如果用户在序言中加载它,那么默认情况下没有可用于此的包结束钩子(在\AtEndOfPackage
加载包时清除所使用的钩子)因此正常的做法是使用开始文档钩子
\AtBeginDocument{\@ifpackageloaded{listings}%
{\typeout{yes}}%
{\typeout{no}}%
}
答案3
\RequirePackage{listings}
\lstset{language=Python}
如果之前已经加载,\RequirePackage
则不会发生任何事情并\lstset
会照常使用。