Dans le code suivant, je ne comprends pas pourquoi il n'y a pas d'espace entre chacun des nombres de ma liste :

Ouvrir dans l'éditeur Overleaf
\documentclass{minimal}
\usepackage{etoolbox}

\newcount\i
\def\liste{,}
\def\eaddto#1#2{%
   \edef\tmp{#2}%
   \expandafter\listadd\expandafter#1\expandafter{\tmp}
}
\def\liste{}
\def\test#1#2{\def\toto{#1}\i=#2%
\loop\ifnum\i>0\eaddto{\liste}{\toto, }\edef\toto{\number\numexpr\toto+1}
\advance\i-1\repeat\liste}

\begin{document}
   \test{18}{20} 
\end{document}

J'obtiens ceci : alt text

Je sais qu'en remplaçant {\toto, } par {\toto,\ } le rendu est celui attendu. J'aimerais comprendre.

Posée 29 Jul, 21:19

Nikopol's gravatar image

Nikopol
3156
Taux d'acceptation : 44%

Modifiée 14 Aoû, 13:17

Pathe's gravatar image

Pathe ♦♦
2.0k661


En mode mathématique (entre deux dollars) TeX absorbe les espaces. Ici \test{18}{20} est (en quelque sorte) équivalente à 18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $. Pour voir ça il suffit de remplacer 20 par n'importe quel nombre impair (\test{18}{21} par exemple). En effet, la commande \listadd est définie par

Ouvrir dans l'éditeur Overleaf
\newrobustcmd{\listadd}[2]{%
        \ifblank{#2}{}{\appto#1{#2|}}}

avec | a pour code de catégorie le nombre 3, i.e. =$. Voir la note de bas de page 29.

Lien permanent

Publiée 30 Jul, 10:08

touhami's gravatar image

touhami
2.8k26
Taux d'acceptation : 51%

Modifiée 30 Jul, 10:38

Je m'attendais à un soucis plus TeXnique, au temps pour moi, j'aurais du vérifier le code de \listadd avant.

(30 Jul, 11:25) Nikopol Nikopol's gravatar image

@Nikopol Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.

(30 Jul, 13:44) denis ♦♦ denis's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×3
×3

Question posée : 29 Jul, 21:19

Question vue : 98 fois

Dernière mise à jour : 30 Jul, 13:44