Wie schließe ich den eingegebenen Dateinamen in die Fehlermeldung ein?

Wie schließe ich den eingegebenen Dateinamen in die Fehlermeldung ein?

Ich möchte einer Klasse, die ich erstelle, eine Fehlermeldung hinzufügen, die ausgegeben wird, wenn der Benutzer (das bin normalerweise ich) eine Makroaufrufsequenz vergisst oder durcheinander bringt. Ich kann Folgendes tun:

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

im späteren Teil der Sequenz, aber da ich eine Reihe von Dateien habe, die ineinander verschachtelt sind, ist die Zeilennummer ohne den Dateinamen nicht hilfreich. Gibt es eine Möglichkeit, den Dateinamen zusätzlich zur/anstelle der Zeilennummer dort zu erhalten?

Antwort1

DercurrfilePaketbietet mehrere Methoden, um den Namen und den Pfad der aktuellen Datei abzurufen. Sie können beispielsweise das \currfilenameMakro verwenden:

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

Beachten Sie, dass es in manchen Fällen nicht funktionieren könnte. Wenn Sie das Paket beispielsweise currfilein eine Klassendefinitionsdatei laden, \currfilenamewird der Dateiname des Tex-Dokuments anstelle des Klassendefinitionsdateinamens zurückgegeben. Jede danach geladene Datei liefert korrekte Ergebnisse.

verwandte Informationen