
Я хочу добавить сообщение об ошибке в класс, который я создаю, когда пользователь (которым обычно буду я...) забывает или путает последовательность вызова макроса. Я могу сделать это:
\expandafter\ifblank\expandafter{\MyClass@requiredvalue}
{\ClassError{myclass}{Entry requires version selection using
\protect\selectversion \on@line}{}}
{}}
в последней части последовательности, но поскольку у меня есть куча файлов, которые включены друг в друга, номер строки бесполезен без имени файла. Есть ли какой-то способ получить имя файла в дополнение к/вместо номера строки?
решение1
Thecurrfile
упаковкапредоставляет несколько методов для получения имени и пути текущего файла. Например, вы можете использовать макрос \currfilename
:
\ClassError{myclass}{Entry requires version selection using
\protect\selectversion \on@line (\currfilename)}{}
Обратите внимание, что в некоторых случаях это может не работать. Например, если вы загрузите пакет currfile
в файл определения класса, \currfilename
вместо имени файла определения класса будет указано имя файла документа tex. Каждый загруженный после этого файл даст правильный результат.