Autour des listes

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Autour des listes

Messagepar bcfp » Jeudi 28 Mai 2015, 23:10

Bonjour,

Je viens de découvrir par hasard ce qu'engendre le code :

Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}% ou \usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\begin{document}
   \begin{enumerate}
      \item Toto
      \begin{enumerate}
         \item Toto
      \end{enumerate}
      \item
      
      Toto
      \item
      Toto
   \end{enumerate}
\end{document}

Il me semble que c'est dû à la définition de \par induite par la commande \@doendpe : \def\par{\@restorepar\everypar{}\par\@endpefalse}.

Pourquoi un \if@inlabel n'y est-il pas ajouté : \def\par{\@restorepar\if@inlabel\else\everypar{}\fi\par\@endpefalse} ?
Ou bien, d'une autre façon, pourquoi ne pas avoir ajouté un \@restorepar dans la commande \@item ?

Il doit y avoir une excellente raison mais je ne vois pas...

Merci d'avance pour vos réponses.
bcfp
Utilisateur
 
Messages: 7
Inscription: Jeudi 28 Mai 2015, 22:32
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Autour des listes

Messagepar marco56 » Vendredi 29 Mai 2015, 17:11

Personne ne répond, alors je m'y colle : je ne suis peut-être pas assez confirmé mais je ne comprends rien à votre message.
marco56
Giga-utilisateur
 
Messages: 712
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Autour des listes

Messagepar bcfp » Vendredi 29 Mai 2015, 20:04

Bonjour,

En tout cas merci d'avoir répondu !

Le code que j'ai posté fournit "une erreur" (deux labels se superposent) à cause de la ligne vide, plus précisément à cause de l'enchaînement : \end{enumerate}\item\par.

J'ai essayé de comprendre ce qui se passait à l'aide du document "The LaTeX 2e Sources" disponible en ligne.

J'y ai lu qu'un \end{enumerate} redéfinit la commande \par via la commande \@doendpe, comme suit : \def\par{\@restorepar\everypar{}\par\@endpefalse}, relativement à la technique utilisée pour supprimer l'indentation après une liste qui commence alors que l'interrupteur \@inlabel est faux (interrupteur mis vrai par la commande \item et qui reste vrai tant que TeX ne repasse pas en mode horizontal).

Pour en revenir à l'enchaînement \end{enumerate}\item\par, la commande \item redéfinit aussi \everypar (via \@item) de manière importante et cette définition ne tient pas à cause du \par juste après qui vide \everypar ; pour éviter cela, on peut penser à modifier \@doendpe en changeant ainsi la définition de \par : \def\par{\@restorepar\if@inlabel\else\everypar{}\fi\par\@endpefalse}.

Ceci n'est pas fait, certainement pour une très bonne raison. Comme moi non plus je ne suis pas confirmé, je voudrais que l'on me l'explique afin de progresser...
bcfp
Utilisateur
 
Messages: 7
Inscription: Jeudi 28 Mai 2015, 22:32
Statut actuel: Actif et salarié | Enseignant

Re: Autour des listes

Messagepar marco56 » Vendredi 29 Mai 2015, 21:44

Pour ma part, tout fonctionne correctement, je n'ai pas envie de me plonger dans le code "source".
Quel os ? Quelle méthode de compilation ? latex, ...
Quel message d'erreur (fichier log) ?
[edit] Le code me donne la PJ.
Fichiers joints
document.pdf
(4.65 Kio) Téléchargé 63 fois
marco56
Giga-utilisateur
 
Messages: 712
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Autour des listes

Messagepar bcfp » Vendredi 29 Mai 2015, 21:53

Non, cela compile bien (latex) mais on voit les points 2 et 3 de l'énumération se superposer...
bcfp
Utilisateur
 
Messages: 7
Inscription: Jeudi 28 Mai 2015, 22:32
Statut actuel: Actif et salarié | Enseignant

Re: Autour des listes

Messagepar marco56 » Vendredi 29 Mai 2015, 22:00

Décidément, j'ai du mal.
Et cela ?
Code: Tout sélectionner
    \documentclass[a4paper,10pt]{article}
    \usepackage[utf8]{inputenc}% ou \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage[frenchb]{babel}
    \begin{document}
       \begin{enumerate}
          \item Toto
          \begin{enumerate}
             \item Toto
             \item Tutu
          \end{enumerate}
          \item Tata
          \item Titi
       \end{enumerate}
    \end{document}
marco56
Giga-utilisateur
 
Messages: 712
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Autour des listes

Messagepar bcfp » Vendredi 29 Mai 2015, 22:07

Oui, là ça fonctionne bien, en enlevant le \par après le \item qui suit le \end{enumerate}...
bcfp
Utilisateur
 
Messages: 7
Inscription: Jeudi 28 Mai 2015, 22:32
Statut actuel: Actif et salarié | Enseignant

Re: Autour des listes

Messagepar pg » Samedi 30 Mai 2015, 06:28

Le fait qu'il n'y a aucune raison de mettre ainsi un \par juste après un \item explique probablement à lui tout seul pourquoi \@doendpe ne prend pas en compte ce cas.

La solution proposée de rajouter le \if@label a peut-être un effet de bord, difficile de savoir sans faire une série complète de tests. Poser la question http://tex.stackexchange.com, certains membres de la latex team y sont et pourront dire probablement dire s'il y a des effets indésirables.
pg
Modérateur
 
Messages: 2590
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Autour des listes

Messagepar bcfp » Samedi 30 Mai 2015, 22:49

Effectivement il n'y a aucune raison de mettre un \par après un \item, mais je me disais que LaTeX pouvait rattraper ce cas...

Je vais voir pour laisser un message à l'adresse que vous m'avez indiquée. Je ne sais pas, après tout ce n'est pas très important !

En tout cas merci pour votre réponse.
bcfp
Utilisateur
 
Messages: 7
Inscription: Jeudi 28 Mai 2015, 22:32
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot], Bing [Bot], Google [Bot], Proximic [Spider] et 16 invités