Como usar \ AtEndDocument com o exame de classe?

Sep 30 2020

Usar \ AtEndDocument produz uma nova página com o exame da classe, se não for colocada antes de \ documentclass {exame}.

Fiz um pacote que modifica alguns elementos-chave da classe, mas o pacote precisa escrever algo no final do documento para funcionar corretamente. Para ser preciso, ele usa \ glsaddallunused do pacote de glossários.

Eu li neste mesmo site que usar \ RequirePackage deve funcionar antes de \ documentclass, mas mesmo usando \ RequirePackage para carregar os pacotes que uso em meu pacote, ele produz um monte de erros (incluindo alguns pacotes xkeyval carregados antes de \ documentclass) :

Package xkeyval Error: xkeyval loaded before \documentclass. ...keyval loaded before \protect\documentclass}

Como posso contornar isso para adicionar coisas na que deveria ser a última página do meu arquivo de exame?

Respostas

2 DavidCarlisle Sep 30 2020 at 05:00

Você só precisa adicionar o texto antes que a classe adicione a quebra de página ao mesmo gancho

\AtEndDocument{bar}
\documentclass{exam}
\begin{document}
foo
\end{document}
1 Melchisedech Oct 02 2020 at 15:02

Graças ao conselho de @DavidCarlisle, consegui encontrar uma solução para o meu problema: carregar o pacote etoolbox e usar a função \ AtEndEnvironment {} {}.

MWE:

\documentclass{exam}
\usepackage{etoolbox}
\AtEndEnvironment{document}{some text or command}
\begin{document}
foo
\end{document}