Como incluir o nome do arquivo de entrada na mensagem de erro?

Como incluir o nome do arquivo de entrada na mensagem de erro?

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

Ocurrfilepacotefornece vários métodos para obter o nome e o caminho do arquivo atual. Por exemplo, você pode usar a \currfilenamemacro:

\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 currfilepacote em um arquivo de definição de classe, \currfilenamefornecerá 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.

informação relacionada