Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 2

17 Déc '15, 09:09

unbonpetit's gravatar image

unbonpetit
1.8k18

Tout d'abord, votre code n'est pas compilable en l'état ; ce n'est pas un ECM. Ensuite, la ligne `\FPtrunc{\entier}{\alea}{0}` donne à la macro `\entier` un texte de remplacement constitué d'un nombre *entier* de 1 à 6. Ainsi, la macro `\entier` peut être affichée telle quelle. La primitive `\number` convertit l'entier interne qui la suit en un nombre entier fait de caractères affichable (base 10 et chiffres arabes). Par exemple \number`P % affiche 80 car `P est l'entier 80 (le charcode de la lettre P) dans les cas où TeX attend de lire un nombre entier. Enfin, la primitive de eTeX `\numexpr` convertit une enchainement d'opérations arithmétiques en un entier interne, c'est pourquoi elle doit être précédée de `\number` si on veut afficher le résultat ou le stocker dans une macro avec `\edef`. Par exemple, \number\numexpr3*(1+2*4)-5 % affiche 22 Dans votre code, `\numexpr` est inutile car il n'y a aucune opération à effectuer. Le code de votre macro `\nbalea` aurait pu être \def\nbalea{\FPeval{\valeurde}{trunc(random*6+1,0)}} Dernier truc : vous avez un espace parasite dans votre macro : `}` doit être immédiatement suivie de `%` sans quoi l'espace entre les deux est pris en compte.
cliquez ici pour masquer/afficher la révision 1

17 Déc '15, 09:04

unbonpetit's gravatar image

unbonpetit
1.8k18

Tout d'abord, votre code n'est pas compilable en l'état ; ce n'est pas un ECM. Ensuite, la ligne `\FPtrunc{\entier}{\alea}{0}` donne à la macro `\entier` un texte de remplacement constitué d'un nombre *entier* de 1 à 6. Ainsi, la macro `\entier` peut être affichée telle quelle. La primitive `\number` convertit l'entier interne qui la suit en un nombre entier fait de caractères affichable (base 10 et chiffres arabes). Par exemple \number`P % affiche 80 car `P est l'entier 80 (le charcode de la lettre P) dans les cas où TeX attend de lire un nombre entier. Enfin, la primitive de eTeX `\numexpr` convertit une enchainement d'opérations arithmétiques en un entier interne, c'est pourquoi elle doit être précédée de `\number` si on veut afficher le résultat ou le stocker dans une macro avec `\edef`. Par exemple, \number\numexpr3*(1+2*4)-5 % affiche 22 Dans votre code, `\numexpr` est inutile car il n'y a aucune opération à effectuer. Le code de votre macro `\nbalea` aurait pu être \def\nbalea{\FPeval{\valeurde}{trunc(random*6+1,0)}} Dernier truc : vous avez un espace parasite dans votre macro : `}` doit être immédiatement suivie de `%` sans quoi l'espace entre les deux est pris en compte.