
Предположим, вы используетеxparseи имеют
\NewDocumentCommand{\macro}{+m}{%
\addcontentsline{foo}{#1}%
}%
Если \macro{some text}
вы попадете в .aux-файл, что-то вроде \@writefile{foo}{some text}
.
Время от времени мне хотелось бы, чтобы материал, токенизированный в режиме verbatim-catcode-régime, был обработан аналогичным образом. Т.е.
\verbmacro|some text
some text
some text|
должно (с \newlinechar=\endlinechar
и немедленной записью для обеспечения того, чтобы изменение \newlinechar
вступило в силу при записи в aux-файл) в .aux-файле выдать что-то вроде:
\@writeVerbatimArgFile{foo}|some text
some text
some text|
\@writeVerbatimArgFile
может обрабатывать свой второй аргумент как +v
аргумент -type.
Важнейший момент:
Если вы сделаете \verbmacro
аргумент +v
-type-argument, окружающий его verbatim-delimiter будет удален. Но он необходим, поскольку он \@writeVerbatimArgFile
также должен появиться в .aux-файле, в -entry.
Поэтому мой вопрос:
Добавляет ли кxparseимеет ли смысл использовать тип аргумента, подобный v
/ +v
, в котором дословный разделитель не удаляется?
Неужели люди, которые будут это использовать, принадлежат к такому незначительному меньшинству, что внедрение этого вxparseне стоит усилий?
Пожалуйста, не поймите меня неправильно: это не вопрос типа «Сделай это за меня!». У меня уже есть свои собственные процедуры (не основанные наxparse) для выполнения таких вещей. Например, процедура \UDcollectverbarg
во втором примеремой ответна вопрос "Уникальные идентификаторы требований и список соответствующих методов испытаний" собирает дословно дословные аргументы как без разделителя, так и с ним.
Вопрос в следующем: будет ли такой тип аргумента использоваться достаточно часто, чтобы усилия по его реализации и затраты ресурсов памяти на хранение базовых макромеханизмов были оправданы?
На первый взгляд можно подумать об определении \verbmacro
таким образом, чтобы |
is добавлялся к началу и концу +v
аргумента -type перед записью в .aux-файл.
Если бы вы это сделали, вы бы не смогли делать такие вещи, как
\verbmacro?some text with | in it?
больше.
При жестком кодировании |
вы получите \@writeVerbatimArgFile
такую запись:
\@writeVerbatimArgFile{foo}|some text with | in it|
Это может быть проблемой.
Если дословный разделитель не задан жестко, а передан, то получится:
\@writeVerbatimArgFile{foo}?some text with | in it?
, что не должно быть проблемой...