逐語的区切り文字を保持する v/+v 引数型?

逐語的区切り文字を保持する v/+v 引数型?

使用すると仮定しますxparseそして

\NewDocumentCommand{\macro}{+m}{%
   \addcontentsline{foo}{#1}%
}%

次の\macro{some text}ような .aux ファイルに入ります\@writefile{foo}{some text}

時々、私は処理された素材を同様の方法で逐語的キャットコード制度の下でトークン化したいと考えます。つまり、

\verbmacro|some text
some text
some text|

.aux ファイル内の( と\newlinechar=\endlinechar即時書き込みを使用して、 の変更が\newlinecharaux ファイルへの書き込み中に有効であることを保証) は次のようになります。

\@writeVerbatimArgFile{foo}|some text
some text
some text|

\@writeVerbatimArgFile2 番目の引数を+v-type 引数として処理できます。

重要な点は次のとおりです。

\verbmacroの引数を-type 引数にすると+v、周囲の逐語的区切り文字は削除されます。ただし、これは .aux ファイルの -entry にも表示されるため必要です\@writeVerbatimArgFile

したがって、私の質問は次のとおりです。

追加するとxparsev逐語的区切り文字が削除されない/+vのような引数タイプは意味がありますか?

これを利用する人は、それを実装するほど少数派なのでしょうか?xparse努力する価値がないのでしょうか?

誤解しないでください。これは「私にやらせてください!」という質問ではありません。私はすでに自分のルーチンを持っています(xparse)のようなことを行うためのルーチンです。例えば\UDcollectverbarg私の答え質問に対して固有の要件IDと対応するテスト方法のリスト" は、区切り文字の有無にかかわらず、逐語的に表現された引数を収集します。

問題は、そのような引数タイプが頻繁に使用されるかどうかです。そのため、それを実装し、基礎となるマクロ メカニズムを格納するためにメモリ リソースを費やす労力は価値があるでしょうか。


一見すると、.aux ファイルに書き込む前に、-type 引数の先頭と末尾に を追加する\verbmacro方法で定義することが考えられます。|+v

そうすると、次のようなことはできない

\verbmacro?some text with | in it?

もう。

ハードコードすると、次のようなエントリ|が取得されます\@writeVerbatimArgFile

\@writeVerbatimArgFile{foo}|some text with | in it|

これは問題になるかもしれません。

逐語的区切り文字がハードコードされずに渡される場合、次のようになります。

\@writeVerbatimArgFile{foo}?some text with | in it?

、これは問題にならないはずです...

関連情報