如何在錯誤訊息中包含輸入檔名?

如何在錯誤訊息中包含輸入檔名?

當用戶(通常是我...)忘記或弄亂巨集調用序列時,我想向我正在構建的類別添加錯誤訊息。我可以做這個:

\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 文檔檔案名稱而不是類別定義檔案名稱。此後加載的每個文件都會產生正確的結果。

相關內容