N'hésitez pas à réaliser une inscription gratuite afin de bénéficier de l'ensemble des fonctionnalités proposées par le site. La publicité est désactivée pour tous les utilisateurs inscrits.
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.
\def\foo{\textbf{Bonjour}}
\catcode`\@11
\def\firstto@nil#1#2\@nil{#1}
\foo % affiche Bonjour en gras.....pas de problème
Résultat 1 : \firstto@nil\foo\@nil % affiche bonjour en gras.....pas de problème
Résultat 2 : \expandafter\firstto@nil\foo\@nil toto % affiche toto avec t en gras.....PROBLEME !
\catcode`\@12
C'est le résultat 2 qui me surprend... Je pensais que le \expandafter allait dvper \foo en "bonjour" en gras et finalement avoir l'affichage "btoto"
Encore une subtilité qui m'a échappée...
zariski63 a écrit : ↑jeudi 25 avril 2024, 10:59
C'est le résultat 2 qui me surprend... Je pensais que le \expandafter allait dvper \foo en "bonjour" en gras et finalement avoir l'affichage "btoto"
Encore une subtilité qui m'a échappée...
Cela est normal, car seule la commande \textbf est gardée, et toto n'est pas entre des accoloades, donc c'est comme si tu faisais \textbf toto où seul le premier token t de toto est mangé par \textbf.
\documentclass{article}
\begin{document}
\def\foo{\textbf{Bonjour}}
\catcode`\@11
\def\firstto@nil#1#2\@nil{#1}
\foo % affiche Bonjour en gras.....pas de problème
Résultat 1 : \firstto@nil\foo\@nil % affiche bonjour en gras.....pas de problème
Résultat 2 : \expandafter\firstto@nil\foo\@nil toto % affiche toto avec t en gras. NORMAL !
C'est comme : \textbf toto
Résultat 2 bis : \expandafter\firstto@nil\foo\@nil {toto} % affiche bien toto en gras
\catcode`\@12
\end{document}
En fait je fais des essais à partir du livre de Christian Tellechea... Dur dur TeX ! J ai essayé expl3 mais en fait c est pas mieux, tres (trop) verbeux et de toute façon faut déjà maitriser TeX.
Pour revenir à mon problème, en fait le \expandafter développe d abord \textbf mais pas \textbf{bonjour}, c est ça ?
Dernière modification par zariski63 le jeudi 25 avril 2024, 20:49, modifié 1 fois.
zariski63 a écrit : ↑jeudi 25 avril 2024, 13:06
Pour revenir à mon problème, en fait le \expandafter développe d abord \textbf mais pas \textbf{bonjour}, c est ça ?
Sans le \expandafter, \firstto@nil# voit le token \foo suivi de rien, et c'est juste \foo et ce qui suit qui va être mangé par $\TeX$.
Avec le \expandafter, \firstto@nil# voit le token \textbf suivi de {Bonjour}, et c'est juste \textbf et ce qui suit qui va être mangé par $\TeX$.
zariski63 a écrit : ↑jeudi 25 avril 2024, 13:06
J'ai essayé expl3 mais en fait c est pas mieux, tres (trop) verbeux et de toute façon faut déjà maitriser TeX.
Je ne suis pas de cet avis. Je ne pige pas grand-chose à la programmation $\TeX$, car il faut sans cesse se demander ce qui sera mangé par $\TeX$, et moi, je préfère aller danser. Avec $\LaTeX3$, on revient à une manière de coder plus naturelle en limitant au strict nécessaire les gestions d'expansion.
En fait je galère effectivement sur "ce qui va être mangé"... Merci pour vos explications.
Ce que je reproche à LATEX3 c'est surtout le manque de doc en français et les contre-sens sont vite faits dans mon cas.
De mon côté j'ai fait une "traduction" avec ajout d'exemples de la doc expl3 de plus de 300 pages...
Sauf que je ne peux la partager tant j'imagine que c'est truffé de bêtises.
De toute façon ce n'est pas pédagogique pour deux sous.
zariski63 a écrit :En fait je fais des essais à partir du livre de Christian Telechea... Dur dur TeX
Je suis d'accord et je n'arrive pas à me motiver. Je n'ai jamais appris à programmer, cela explique peut-être cela aussi. Cet auteur fait aussi des vidéos.
Arathorn a écrit : ↑jeudi 25 avril 2024, 20:38
Je suis d'accord et je n'arrive pas à me motiver. Je n'ai jamais appris à programmer, cela explique peut-être cela aussi. Cet auteur fait aussi des vidéos.
Il y a différents paradigmes de programmation. Celui de $TeX$ est très spécial...
Ah d accord... vous avez eu son autorisation ? Je crois qu il a pris la mouche il y a qcq mois... est-il revenu sur le forum ? Sûrement que non sinon il aurait répondu à mon mess