Utilisation de \def en TeX

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 : 520
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Utilisation de \def en TeX

Message non lu par zariski63 »

Je me posais la question suivante... est ce qu'on peut écrire lors d'un \def une séquence de contrôle avec n'importe quel caractère, nombre par exemple. J'ai essayé et cela semble marcher...
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 995
Inscription : vendredi 12 juin 2009, 22:35
Statut actuel : Enseignant
Localisation : Chambéry

Re: Utilisation de \def en TeX

Message non lu par un bon petit »

zariski63 a écrit : vendredi 19 février 2021, 09:47J'ai essayé et cela semble marcher...
On ne peut écrire le nom d'une séquence de contrôle qu'avec des tokens de catcode 11 (c'est différent pour les caractères de contrôle) avec la méthode directe \def\<caractères>

Par défaut, les caractères de catcode 11 sont les lettres (a-z et A-Z). Les chiffres et les caractères de ponctuation ont par défaut un catcode de 12 et ne peuvent pas faire partie des caractères. Puisque vous ne donnez aucun exemple de vos expérimentations, il va me falloir en inventer :roll: .

On ne peut pas définir une macro \texte1 ainsi :

Code : Tout sélectionner

\def\texte1{Mon texte 1}
Cela semble pourtant « marcher », en reprenant l'expression que vous affectionnez

Code : Tout sélectionner

\def\texte1{Mon texte 1}
Voici '\texte1'.
Mais ce qui se passe est que vous définissez la macro \texte et vous lui imposez d'être suivie de "1".
Si par la suite, vous essayez

Code : Tout sélectionner

\def\texte1{Mon texte 1}
Voici '\texte1'.
\def\texte2{Mon texte 2}
Voici 'texte2'
Cela semble « marcher » encore. Mais essayez d'exécuter \texte1 et vous verrez...

Si vous voulez définir la macro \texte1, vous devez passer par un changement de catcode du caractère 1 ou par \csname...\endcsname. Je vous renvoie à des ouvrages traitant du sujet.
Programmer en TeX, TeXpérimental
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 520
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: Utilisation de \def en TeX

Message non lu par zariski63 »

Pardonnez moi pour certaines de mes expressions... Sinon vos explications sont très claires comme d'habitude. Merci beaucoup !!