\expandafter

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.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 539
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

\expandafter

Message non lu par zariski63 »

Bonjour !
Pouvez-vous svp me dire pourquoi ces lignes ne me donnent pas le résultat que j'avais cru comprendre ?

Code : Tout sélectionner

\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...
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2282
Inscription : samedi 29 décembre 2007, 00:58

Re: \expandafter

Message non lu par projetmbc »

Il serait plus utile d'indiquer ce que tu cherches à faire, car, via $\LaTeX3$, on peut éviter l'usage de \expandafter dans beaucoup de situations.
Dernière modification par projetmbc le jeudi 25 avril 2024, 12:34, modifié 1 fois.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2282
Inscription : samedi 29 décembre 2007, 00:58

Re: \expandafter

Message non lu par projetmbc »

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.

Afficher ou masquer le code

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 539
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: \expandafter

Message non lu par zariski63 »

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.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2282
Inscription : samedi 29 décembre 2007, 00:58

Re: \expandafter

Message non lu par projetmbc »

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. :D Avec $\LaTeX3$, on revient à une manière de coder plus naturelle en limitant au strict nécessaire les gestions d'expansion.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 539
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: \expandafter

Message non lu par zariski63 »

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.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2282
Inscription : samedi 29 décembre 2007, 00:58

Re: \expandafter

Message non lu par projetmbc »

J'ai pour projet de rédiger des petits cas pratiques sur $\LaTeX3$ in french. Début de rédaction en juin.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 539
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: \expandafter

Message non lu par zariski63 »

Oh punaise c'est génial ça !!!

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.
Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 292
Inscription : mercredi 24 avril 2013, 19:47
Statut actuel : Enseignant

Re: \expandafter

Message non lu par Arathorn »

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.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 539
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: \expandafter

Message non lu par zariski63 »

je viens de regarder vos vidéos, punaise j'ignorais la chose. Bravo, c'est très intéressant ! :)
Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 292
Inscription : mercredi 24 avril 2013, 19:47
Statut actuel : Enseignant

Re: \expandafter

Message non lu par Arathorn »

Ce ne sont pas mes vidéos mais celles de M. Tellechea.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2282
Inscription : samedi 29 décembre 2007, 00:58

Re: \expandafter

Message non lu par projetmbc »

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...
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 539
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: \expandafter

Message non lu par zariski63 »

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
Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 292
Inscription : mercredi 24 avril 2013, 19:47
Statut actuel : Enseignant

Re: \expandafter

Message non lu par Arathorn »

zariski63 a écrit :vous avez eu son autorisation ?
C'est sa chaîne youtube.