v/+v-Argumenttyp, der das wörtliche Trennzeichen beibehält?

v/+v-Argumenttyp, der das wörtliche Trennzeichen beibehält?

Angenommen, Sie verwendenxparseund haben

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

Mit \macro{some text}gelangt man in die .aux-Datei zu so etwas wie \@writefile{foo}{some text}.

Von Zeit zu Zeit wünsche ich mir, dass verarbeitetes Material auf ähnliche Weise unter dem Verbatim-Catcode-Regime tokenisiert wird. D.h.

\verbmacro|some text
some text
some text|

sollte (mit \newlinechar=\endlinecharund sofortigem Schreiben, um sicherzustellen, dass die Änderung \newlinecharbeim Schreiben in die AUX-Datei wirksam ist) in der AUX-Datei etwa Folgendes ergeben:

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

\@writeVerbatimArgFilekönnte sein zweites Argument als +vArgument vom Typ - verarbeiten.

Der entscheidende Punkt ist:

Wenn Sie \verbmacrodas Argument zu einem +v-Typ-Argument machen, wird das umgebende Worttrennzeichen entfernt. Es ist jedoch erforderlich, da es \@writeVerbatimArgFileauch in der .aux-Datei und im -Eintrag erscheinen soll.

Daher lautet meine Frage:

Ergibt das Hinzufügen zuxparseIst ein v/ +v-ähnlicher Argumenttyp, bei dem das wörtliche Trennzeichen nicht entfernt wird, sinnvoll?

Gehören die Leute, die das nutzen würden, zu einer so kleinen Minderheit, dass die Umsetzung inxparseist der Aufwand nicht wert?

Bitte verstehen Sie mich nicht falsch: Dies ist keine "Mach es für mich!"-Frage. Ich habe bereits meine eigenen Routinen (nicht basierend aufxparse) für solche Dinge. Beispielsweise die Routine \UDcollectverbargim zweiten Beispiel vonmeine Antwortzur Frage "Eindeutige Anforderungs-IDs und Liste der entsprechenden Testmethoden" sammelt verbalisierte Argumente sowohl ohne als auch mit Trennzeichen.

Die Frage ist: Würde ein solcher Argumenttyp oft genug verwendet werden, sodass sich der Aufwand für seine Implementierung und der Einsatz von Speicherressourcen zum Speichern der zugrunde liegenden Makromechanismen lohnen würden?


Auf den ersten Blick könnte man an eine Definition denken \verbmacro, bei der vor dem Schreiben in die .aux-Datei |dem +vTypargument vorangestellt und angehängt wird.

Wenn Sie das tun würden, könnten Sie nicht Dinge tun wie

\verbmacro?some text with | in it?

mehr.

Bei einem fest codierten Eintrag würden Sie einen Eintrag wie diesen |erhalten :\@writeVerbatimArgFile

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

Dies könnte ein Problem sein.

Wenn das Worttrennzeichen nicht fest codiert, sondern weitergegeben wird, erhalten Sie:

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

, was kein Problem sein sollte …

verwandte Informationen