Sie können dies erreichen, indem Sie \expandafter
verwenden. Zum Beispiel:
Wenn Sie \expandafter
nicht verwenden, kommt es zu einem Rekursionsproblem. Sie können mehr darüber hier lesen.
Verwendet die Eingabe dieser Frage zum Generieren
%Vor%(sorry brian, aber das war das anschaulichste Beispiel, das ich mir vorstellen konnte)
Die Skizze kann Ihnen helfen, eine einfache Todo-Liste mit etwas wie:
zu erstellen %Vor%Ich hoffe, das kann jemandem helfen, der versucht, Strings für diesen Zweck zu verwenden.
Das Problem ist, dass die Definition von \textstring
überschreibt, anstatt auf die alte Referenz zu verweisen. Um anhängen zu können, wird standardmäßig der TeX-Befehl \edef
verwendet, der die Definition erweitert, bevor etwas zugewiesen wird. Also, wenn Sie
LaTeX wird die rechte Seite von \edef
in Hello world
ändern und dann diese% ce_de% zuweisen, was Sie wollen. Stattdessen erweitert die \textstring
in Ihrer aktuellen Version nicht die rechte Seite. Wenn Sie also \newcommand
verwenden, wird sie auf \textstring
erweitert, die ihrerseits auf \textstring world
erweitert wird. , die sich selbst erweitert ... zu dir kommt die Idee.
Ähnlich wie David Underhill's Antwort ist das folgende
%Vor% Das Makro g@addto@macro
erzielt den gleichen Effekt und kann etwas besser lesbaren Code erzeugen (besonders wenn Ihr Code in einem Paket / Stil ist oder wenn Sie sich bereits in einer \makeatletter
& amp; \makeatother
-Situation befinden)