enumerate : alignement vertical des labels

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.

enumerate : alignement vertical des labels

Messagepar gguillon » Mercredi 07 Septembre 2016, 08:03

Bonjour,

J'ai un élève aveugle dans ma classe et je tente d'utiliser un convertisseur LaTeX -> Braille (NetBraille qui fait une conversion LaTeX -> hmtl/mathml -> braille).
Mais, pour des questions de normes de présentation braille, il faudrait que mes listes se présentent ainsi

blabla

1.
2.
3 a.
3 b.
3 c. i.
3 c. ii.

blabla

et ce :
- avec tous les labels alignés verticalement (cad sans indentation supplémentaire à chaque nouveau niveau de liste)
- avec une indentation du premier niveau.

Je dirais que peu m'importe l'alignement du texte derrière les items (mais si j'ai des possibilités de réglage, ce serait bien pour les tests avec le transcripteur braille)

Je me suis plongé dans enumitem et fait divers tests mais je n'y arrive pas.

Auriez-vous, svp, une aide à m'apporter.
Merci d'avance.

Gaëtan
Dernière édition par gguillon le Mercredi 07 Septembre 2016, 19:17, édité 3 fois.
gguillon
Utilisateur
 
Messages: 5
Inscription: Mercredi 07 Septembre 2016, 07:49
Statut actuel: Lycée | Terminale S

Publicité

Re: format de liste help ;-)

Messagepar marco56 » Mercredi 07 Septembre 2016, 10:47

Comme ceci ?
Code: Tout sélectionner
\documentclass{article}
\usepackage[francais]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{textcomp}

\usepackage [T1]{fontenc}
\usepackage{xcolor}

\usepackage{enumitem}


\setenumerate[1]{label=\textcolor{red}{\bf \arabic*.}}
\setenumerate[2]{label=\textcolor{red}{\bf \arabic*.\alph*.}}
\setenumerate[3]{label=\textcolor{red}{\bf \arabic*.\alph*.\roman{*} }}


\begin{document}

\begin{enumerate}
\item ble
\item bli
\begin{enumerate}[leftmargin=0cm]
\item ble
\item bli
\begin{enumerate}[leftmargin=0cm]
\item ble
\item bli
\end{enumerate}
\end{enumerate}
\end{enumerate}

\end{document}
marco56
Giga-utilisateur
 
Messages: 777
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: format de liste help ;-)

Messagepar gguillon » Mercredi 07 Septembre 2016, 13:16

Merci pour la réponse.

Plusieurs éléments/question :
1) quand je travaille sous Miktex (mis à jour), j'ai le fichier pdf joint (http://guillonprof.myds.me/tmp/test_enumitem_miktex.pdf) alors que lorsque je compile sous linux avec TexLive 2016, j'ai un rendu différent(http://guillonprof.myds.me/tmp/test_enumitem_linux.pdf). Je ne comprends pas pourquoi ?? : réglé avec miktex ré-installé

2) j'ai un peu modifié pour que les compteurs se suivent MAIS, je voudrais que les labels soient alignés à gauche (et pas à droite comme ici), c'est à dire que les labels de premier niveau soient alignés verticalement.
J'ai testé de rajouter un align=left mais j'ai un petit décalage qui s'installe à chaque niveau de liste (et qui va en créer un dans le fichier braille je pense) ET mon premier niveau n'est plus décalé par rapport à la marge (donc pas de trou dans la transcription braille)

visualisation du problème ici : http://guillonprof.myds.me/tmp/test_enumitem_forum.pdf

Une idée pour éviter ça ?

Code utilisé pour le fichier test_enumitem_forum

Code: Tout sélectionner
    \setenumerate[1]{label=\textcolor{red}{\bf \arabic*.}, align=left}
    \setenumerate[2]{label*=\textcolor{red}{\bf \alph*.}, align=left}
    \setenumerate[3]{label*=\textcolor{red}{\bf \roman{*} }, align=left}


3) Il y aussi un problème si on imbrique directement deux listes avec les labels qui se superposent : on a par exemple 2. et 2.a. qui se superposent. Exemple ici :http://guillonprof.myds.me/tmp/test_enumitem_probleme.pdf

Merci d'avance.
gguillon
Utilisateur
 
Messages: 5
Inscription: Mercredi 07 Septembre 2016, 07:49
Statut actuel: Lycée | Terminale S

Re: format de liste help ;-)

Messagepar balf » Mercredi 07 Septembre 2016, 15:35

Voici 5 possibilités :
Code: Tout sélectionner
    \documentclass[12pt]{article}
    \usepackage[showframe]{geometry}
    \usepackage{enumitem}
 
    \begin{document}

{ \setlist[enumerate]{wide=1em, }
 \setlist[enumerate,2] {label = \theenumi\,\alph*. , before =\refstepcounter{enumi}}
 \setlist[enumerate,3] {label = \theenumii\,\roman*. , before =\refstepcounter{enumii}}
\begin{enumerate}
  \item Bla bla
  \item  Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  \begin{enumerate}
           \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
           \item Bli bli bli bli bli bli
            \begin{enumerate}
                   \item Blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo
                   \item  Blo blo
                 \end{enumerate}
         \end{enumerate}
\end{enumerate}}

\hrule
{\setlist[enumerate]{wide = 1em, leftmargin =\labelindent}
 \setlist[enumerate,2] {wide=0em, label = \theenumi\,\alph*. , before =\refstepcounter{enumi}}
 \setlist[enumerate,3] {wide=0em, label = \theenumii\,\roman*. , before =\refstepcounter{enumii}}
\begin{enumerate}
  \item Bla bla
  \item  Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  \begin{enumerate}
           \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
           \item Bli bli bli bli bli bli
            \begin{enumerate}
                   \item Blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo
                   \item  Blo blo
                 \end{enumerate}
         \end{enumerate}
\end{enumerate}}

\hrule
{\setlength\fboxsep{0pt}
\setlist[enumerate, 1]{wide=1em, label=\arabic*., leftmargin=*}
 \setlist[enumerate,2] {wide=\dimexpr1.25em-\leftmargini, label = \theenumi\,\alph*. , before =\refstepcounter{enumi}, labelsep =.2em, leftmargin =*}
 \setlist[enumerate,3] {wide=-\dimexpr\leftmarginii+\labelsep-0.15em, label=\theenumii\,\roman*., before=\refstepcounter{enumii},%
  labelsep=-0.75em, leftmargin = *}
\begin{enumerate}
  \item Bla bla
  \item  Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  \begin{enumerate}
           \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
           \item Bli bli bli bli bli bli
            \begin{enumerate}
                   \item Blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo
                   \item  Blo blo
                 \end{enumerate}
         \end{enumerate}
\end{enumerate}}
\hrule

\newpage

{ \setlist[enumerate]{wide=0em, }
 \setlist[enumerate,2] {label=\theenumi\,\alph*. , before=\refstepcounter{enumi}}
 \setlist[enumerate,3] {label=\theenumii\,\roman*., before=\refstepcounter{enumii}}
\begin{enumerate}
  \item Bla bla
  \item  Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  \begin{enumerate}
           \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
           \item Bli bli bli bli bli bli
            \begin{enumerate}
                   \item Blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo
                   \item  Blo blo
                 \end{enumerate}
         \end{enumerate}
\end{enumerate}}

\hrule
{\setlength\fboxsep{0pt}
\setlist[enumerate, 1]{wide=0pt, label=\arabic*., leftmargin=*}
 \setlist[enumerate,2] {wide=\dimexpr1.25em-\leftmargini, label = \theenumi\,\alph*. , before =\refstepcounter{enumi}, labelsep =.2em, leftmargin =*}
 \setlist[enumerate,3] {wide=-\dimexpr\leftmarginii+\labelsep-0.15em, label=\theenumii\,\roman*., before=\refstepcounter{enumii},%
  labelsep=-0.75em, leftmargin = *}
\begin{enumerate}
  \item Bla bla
  \item  Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  \begin{enumerate}
           \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
           \item Bli bli bli bli bli bli
            \begin{enumerate}
                   \item Blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo blo
                   \item  Blo blo
                 \end{enumerate}
         \end{enumerate}
\end{enumerate}}
\hrule
    \end{document}


Résultat en p.j.

B. A.
Fichiers joints
listetobraille.pdf
(11.43 Kio) Téléchargé 90 fois
balf
Zetta-utilisateur
 
Messages: 3856
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: format de liste help ;-)

Messagepar gguillon » Mercredi 07 Septembre 2016, 16:59

Bonjour,

Merci beaucoup pour ces différentes options. C'est exactement ce que je cherchais.

Je vais pouvoir faire différents tests et trouver ce qui convient le mieux pour la transcription (et au passage comprendre quelques réglages pour la prochaine fois).

Encore un grand merci.

Gg
gguillon
Utilisateur
 
Messages: 5
Inscription: Mercredi 07 Septembre 2016, 07:49
Statut actuel: Lycée | Terminale S

Re: enumerate : alignement vertical des labels

Messagepar gguillon » Mercredi 07 Septembre 2016, 19:28

Re -

Bernard, il me reste deux problèmes (que j'illustre dans la partie haute du fichier pdf ici http://guillonprof.myds.me/tmp/test_enumitem_suite.pdf et je mets le code en dessous ici

- le premier se passe lors d'une liste imbriquée sans élément à l'étage supérieur, type :
Code: Tout sélectionner
\begin{enumerate}
\item
\begin{enumerate}
\item bla bla bla
...


On se retrouve avec du 1. 2a. bla bla bla
au lieu de 1.a. bla bla bla

Edit :
En mettant :

\setlist[enumerate]{wide=1em,listparindent=-\leftmargin }
\setlist[enumerate,2] {label* = \alph*. }
\setlist[enumerate,3] {label* = \roman*. }

je règle le décalage de numérotation, mais pas le problème de mise en page et de numérotation

- le second est que lors d'un nouveau paragraphe à l'intérieur d'un \item, la première ligne est alignée sur le label et non sur la marge (voir dans le fichier le 3.)
Je pense avoir réglé le problème en mettant

\setlist[enumerate]{wide=1em, listparindent=-\leftmargin}


Cela fonctionne mais est-ce correct ?

Enfin, si je veux que les listes itemize aient un comportement identique, j'adapte en mettant [itemize] à la place de [enumerate] ?

Merci d'avance.

Gg
gguillon
Utilisateur
 
Messages: 5
Inscription: Mercredi 07 Septembre 2016, 07:49
Statut actuel: Lycée | Terminale S

Re: enumerate : alignement vertical des labels

Messagepar balf » Mercredi 07 Septembre 2016, 23:53

Pour le second point, je pense que ce n'est pas que ça aligne sur le label, c'est que ça indente les nouveaux paragraphes de la valeur de \listparindent, qui en l'occurrence doit valoir 1 cadratin (1em, en TeX), qui est la valeur choisie pour wide=….

Mais je n'arrive pas à reproduire ce comportement, et en plus je ne sais pas très bien quelle variante vous avez choisie, donc je vaticine à vide. Pourriez-vous poster le code qui aboutit à ce résultat ? Il y a parfois des interactions imprévues entre les différents paramètres de liste. J'espère avoir un peu de temps demain (ou aujourd'hui plutôt) en fin de journée pour regarder tout ça.

B. A.
balf
Zetta-utilisateur
 
Messages: 3856
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: enumerate : alignement vertical des labels

Messagepar gguillon » Jeudi 08 Septembre 2016, 06:01

Oups, j'ai oublié le code.

Pas d'urgence. Ce n'est pas à la journée près !


Code: Tout sélectionner
  \documentclass[12pt]{article}
        \usepackage[showframe]{geometry}
        \usepackage{enumitem}
     
        \begin{document}

    { \setlist[enumerate]{wide=1em, }
     \setlist[enumerate,2] {label* = \alph*. }
     \setlist[enumerate,3] {label* = \roman*. }
    \begin{enumerate}
      \item
      \begin{enumerate}
      \item blibli
      \end{enumerate}
      \item  Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
     
      Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
      \begin{enumerate}
               \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
               
               bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
               
             \end{enumerate}
    \end{enumerate}}
   
    \hrule
   
    { \setlist[enumerate]{wide=1em,listparindent=-\leftmargin }
     \setlist[enumerate,2] {label* = \alph*. }
     \setlist[enumerate,3] {label* = \roman*. }
    \begin{enumerate}
      \item
      \begin{enumerate}
      \item blibli
      \end{enumerate}
      \item  Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
     
      Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
      \begin{enumerate}
               \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
               
               bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
               
             \end{enumerate}
    \end{enumerate}}


        \end{document}
gguillon
Utilisateur
 
Messages: 5
Inscription: Mercredi 07 Septembre 2016, 07:49
Statut actuel: Lycée | Terminale S

Re: enumerate : alignement vertical des labels

Messagepar balf » Dimanche 11 Septembre 2016, 16:21

Bonjour,

J'ai testé le code. Un façon d'arranger ça est d'insérer entre le premier enumerate et le second, non pas \item, mais \item[\refstepcounter{enumi}].

Je ne garantis pas que ça marche aussi bien s'il ya plusieurs environnement imbriqués sans \item, et j'aimerais bien automatiser tout cela, mais il faudrait d'une part que je voie toutes les situations possibles, d'autre part que je me plonge dans les arcanes de enumitem.

Code: Tout sélectionner
      \documentclass[12pt]{article}
            \usepackage[showframe]{geometry}
            \usepackage{enumitem}
\usepackage{xparse}
\makeatletter
\newcommand{\emptyitem}{\item[\ifcase\enit@depth\or  \stepcounter{enumi}\or  \stepcounter{enumii} \or \stepcounter{enumiii} \fi]}
\makeatother
            \begin{document}


        { \setlist[enumerate]{wide=1em, listparindent = 0pt}
         \setlist[enumerate,2] {label* = \alph*.}
         \setlist[enumerate,3] {label* = \roman*.}
        \begin{enumerate}
          \item blibli
          \begin{enumerate}[before = \hspace*{-\leftmargini}\vspace{-\dimexpr\baselineskip + \topsep + \partopsep\relax}]
\emptyitem%[\stepcounter{enumi}]
          \begin{enumerate}
\item[\stepcounter{enumi}]
          \item blibli
\item bloblo
\item blublu
\end{enumerate}
\end{enumerate}
          \item Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

          Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
          \begin{enumerate}
                   \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli

                   bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli

                 \end{enumerate}
        \end{enumerate}}

\hrule
        { \setlist[enumerate]{wide=1em, listparindent=0pt}
         \setlist[enumerate,2] {label*=\alph*.}
         \setlist[enumerate,3] {label*=\roman*.}
        \begin{enumerate}
         \emptyitem%
          \begin{enumerate}[before = \hspace*{-\leftmargini}\vspace{-\dimexpr\baselineskip + \topsep + \partopsep\relax}]
          \item blibli niveau 2
         \refstepcounter{enumii}
          \begin{enumerate}
          \item blibli niveau 3
    \item bloblo
    \item blublu
    \end{enumerate}
    \end{enumerate}
          \item Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

          Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli
          \begin{enumerate}
                   \item Bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli

                   bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli bli

                 \end{enumerate}
        \end{enumerate}}

        \end{document}


B.A.
Fichiers joints
listetobraille2.pdf
(11.13 Kio) Téléchargé 76 fois
balf
Zetta-utilisateur
 
Messages: 3856
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], gigiair, Google Adsense [Bot], Yandex [Bot] et 24 invités