N'hésitez pas à consulter les offres premium proposées par le service de stockage en ligne pCloud et inscrivez-vous afin d'obtenir 10Go de stockage gratuits.
Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex. [participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Bonjour !
Voilà je butte sur un truc qui m'échappe bien que cela soit expliqué dans le livre "Apprendre à programmer avec TeX".
On trouve cette macro :
Évidemment ça ne marche pas car il est dit que "pt" sont 2 caractères de catcode 12... (une solution est proposée mais pour l'instant c'est pas cela qui m'intéresse)
Pourtant, selon moi, le \expandafter va 1-développer \the\foo pour rendre 15.7pt et ensuite va agir \removept sur 15.7pt qui devrait donner 15.7.
Visiblement j'ai raté un truc sur les macros ... Mais lequel ?
Lorsqu'on écrit \def\removept#1.#2pt{#1\ifnum#2>0 .#2\fi} les tokens «p» et «t» ont un catcode de 11.
Lorsqu'on écrit \expandafter\removept\the\foo on obtient 15.7pt avec les tokens «p» et «t» de catcode 12.
La macro \removept ne peut donc pas capturer l'argument délimité #2 car le délimiteur « pt » de catcodes 11 ne correspond pas avec ce qui est donné où « pt » ont des catcodes de 12.
Voilà pourquoi « ça ne marche pas ». C'est exactement ce qui est expliqué dans le bouquin, ceci dit.
je vois le problème effectivement mais ce que je n'arrive pas à saisir c'est pourquoi dans 15.7pt après le \expandafter, p et t voit leur catcode passer à 12. J'ai dû manquer une règle ...
zariski63 a écrit : ↑samedi 01 mai 2021, 19:43J'ai dû manquer une règle ...
Oui, il y a une règle qui dit que \the<dimension> renvoie une nombre décimal suivi des tokens p et t de catcode 12. C'est comme ça, on ne peut rien y changer, c'est codé en dur dans TeX.
Raaaah je me disais aussi. Là tout devient clair !
Pardonnez moi pour ces questions qui, je le sens, vous semblent désolantes mais TeX n’est pas facile à apprivoiser.
Je vous remercie de prendre le temps de me répondre.
Bonne soirée.
CE