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
Dercurrfile
Paketbietet mehrere Methoden, um den Namen und den Pfad der aktuellen Datei abzurufen. Sie können beispielsweise das \currfilename
Makro 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 currfile
in eine Klassendefinitionsdatei laden, \currfilename
wird der Dateiname des Tex-Dokuments anstelle des Klassendefinitionsdateinamens zurückgegeben. Jede danach geladene Datei liefert korrekte Ergebnisse.