エラーメッセージに入力ファイル名を含めるにはどうすればいいですか?

エラーメッセージに入力ファイル名を含めるにはどうすればいいですか?

ユーザー (通常は私) がマクロ呼び出しシーケンスを忘れたり、間違えたりしたときのために、構築中のクラスにエラー メッセージを追加したいと考えています。次のようにします。

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

シーケンスの後半部分ですが、相互にインクルードされているファイルが多数あるため、ファイル名がないと行番号は役に立ちません。行番号に加えて/行番号の代わりにファイル名を取得する方法はありますか?

答え1

currfileパッケージ現在のファイルの名前とパスを取得するためのいくつかの方法を提供します。たとえば、\currfilename次のマクロを使用できます。

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

場合によっては機能しない可能性があることに注意してください。たとえば、currfileクラス定義ファイルでパッケージをロードすると、\currfilenameクラス定義ファイル名ではなく tex ドキュメント ファイル名が与えられます。その後にロードされるすべてのファイルでは正しい結果が得られます。

関連情報