Sujet : Re: \advance\toks 41{...}
De : tex.boy (at) *nospam* teaser.fr (Texboy)
Groupes : fr.comp.text.texDate : 07. Oct 2023, 17:11:45
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <ufs001$2dann$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
Le 07/10/2023 à 17:45, Gérard Lemenn a écrit :
Bonjour,
Quelqu'un a une référence ou une idée de pourquoi on ne peut pas écrire :
\advance\toks 41{<general text>}
ou
\advance\toks 41\toks 10
Ce qui évidemment serait une concaténation de chaînes de symboles.
Bien sûr on peut créer une macro \toks@advance qui permette cette syntaxe, mais l'idée serait de surtout de rendre plus rapide la concaténation de chaînes.
Bonne journée.
La primitive \advance s'emploie avec la syntaxe suivante
\advance<registre de compteur><[by]><nombre>
\advance<registre de dimension><[by]><dimension>
\advance<registre de ressort><[by]><ressort>
\advance<registre de muressort><[by]><muressort>
Pour la première, elle agit sur un compteur et l'incrémente de l'entier signé <nombre>. Le fonctionnement est identique pour les autres syntaxes.
Elle ne peut pas agir sur un registre de tokens.
Si vous souhaitez une macro qui ajoute un <texte général> à un registre de tokens, vous pouvez définir une macro comme par exemple :
\def\addtotoks#1#2{#1\expandafter{\the#1#2}}
Notez que l'argument #2 n'est pas développé et donc
\addtotoks{\toks41 }{\toks10 }
pourra ne pas fonctionner comme attendu.