Comment utiliser \ AtEndDocument avec l'examen de classe?
L'utilisation de \ AtEndDocument produit une nouvelle page avec l'examen de classe, si elle n'est pas placée avant \ documentclass {examen}.
J'ai créé un package qui modifie certains éléments clés de la classe, mais le package doit écrire quelque chose à la fin du document pour fonctionner correctement. Pour être précis, il utilise \ glsaddallunused du package glossaries.
J'ai lu sur ce même site que l'utilisation de \ RequirePackage devrait fonctionner avant \ documentclass, mais même en utilisant \ RequirePackage pour charger les packages que j'utilise dans mon package, cela génère un tas d'erreurs (y compris à propos d'un package xkeyval chargé avant \ documentclass) :
Package xkeyval Error: xkeyval loaded before \documentclass. ...keyval loaded before \protect\documentclass}
Comment puis-je éviter cela pour ajouter des éléments sur ce qui aurait dû être la dernière page de mon dossier d'examen?
Réponses
Il vous suffit d'ajouter le texte avant que la classe ajoute le saut de page au même hook
\AtEndDocument{bar}
\documentclass{exam}
\begin{document}
foo
\end{document}
Grâce aux conseils de @DavidCarlisle, j'ai pu trouver une solution à mon problème: charger le package etoolbox et utiliser la fonction \ AtEndEnvironment {} {}.
MWE:
\documentclass{exam}
\usepackage{etoolbox}
\AtEndEnvironment{document}{some text or command}
\begin{document}
foo
\end{document}