¿Cómo incluir el nombre del archivo de entrada en el mensaje de error?

¿Cómo incluir el nombre del archivo de entrada en el mensaje de error?

Quiero agregar un mensaje de error a una clase que estoy creando para cuando el usuario (que generalmente seré yo...) olvide o estropee una secuencia de llamada de macro. Puedo hacer esto:

\expandafter\ifblank\expandafter{\MyClass@requiredvalue}
{\ClassError{myclass}{Entry requires version selection using
      \protect\selectversion \on@line}{}}
{}}

en la última parte de la secuencia, pero debido a que tengo un montón de archivos incluidos entre sí, el número de línea no es útil sin el nombre del archivo. ¿Hay alguna forma de obtener el nombre del archivo además/en lugar del número de línea?

Respuesta1

Elcurrfilepaqueteproporciona varios métodos para obtener el nombre y la ruta del archivo actual. Por ejemplo, puedes usar la \currfilenamemacro:

\ClassError{myclass}{Entry requires version selection using
  \protect\selectversion \on@line (\currfilename)}{}

Tenga en cuenta que es posible que no funcione en algunos casos. Por ejemplo, si carga el currfilepaquete en un archivo de definición de clase, \currfilenamese le dará el nombre del archivo del documento tex en lugar del nombre del archivo de definición de clase. Cada archivo cargado después de eso producirá resultados correctos.

información relacionada