Quero adicionar uma mensagem de erro a uma classe que estou construindo para quando o usuário (que geralmente serei eu...) esquecer ou bagunçar uma sequência de chamada de macro. Eu posso fazer isso:
\expandafter\ifblank\expandafter{\MyClass@requiredvalue}
{\ClassError{myclass}{Entry requires version selection using
\protect\selectversion \on@line}{}}
{}}
na parte posterior da sequência, mas como tenho vários arquivos incluídos uns nos outros, o número da linha não é útil sem o nome do arquivo. Existe alguma maneira de obter o nome do arquivo além/em vez do número da linha?
Responder1
Ocurrfile
pacotefornece vários métodos para obter o nome e o caminho do arquivo atual. Por exemplo, você pode usar a \currfilename
macro:
\ClassError{myclass}{Entry requires version selection using
\protect\selectversion \on@line (\currfilename)}{}
Observe que pode não funcionar em alguns casos. Por exemplo, se você carregar o currfile
pacote em um arquivo de definição de classe, \currfilename
fornecerá o nome do arquivo do documento tex em vez do nome do arquivo de definição de classe. Cada arquivo carregado depois disso produzirá resultados corretos.