[LaTeX] Problème de mise en forme (itemize)
nicotendo
Messages postés
197
Statut
Membre
-
yenaralebol -
yenaralebol -
Bonjour,
Pour faire simple, voici le résultat que j'obtient avec de simples itemize :
blablabla
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaa
- bbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbb
Et je souhaiterais obtenir :
blablabla
- aaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
- bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbb
Je pense avoir été clair avec mes exemples :)
Merci de bien vouloir me dire comment faire ce type d'alignement dans les itemizes.
Cordialement
Pour faire simple, voici le résultat que j'obtient avec de simples itemize :
blablabla
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaa
- bbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbb
Et je souhaiterais obtenir :
blablabla
- aaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
- bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbb
Je pense avoir été clair avec mes exemples :)
Merci de bien vouloir me dire comment faire ce type d'alignement dans les itemizes.
Cordialement
Configuration: Linux Debian Mozilla 1.8.1.10
17 réponses
-
En fait il vaudrait mieux nous donner le texte exact. En effet a priori tu n'as pas à gérer les retour à la ligne, latex le fait pour toi. TU peux forcer un retour à la ligne avec \\. Si le texte "aaaaaa..." dépasse de ta page c'est peu être que latex ne peux pas le faire retourner à la ligne : par exemple tu utilises des espaces insécables, ou un objet trop large (équation, figure etc...).
Bonne chance -
En allant fouiller dans le fichier latex.ltx, j'ai trouvé une solution pas très élégante, mais fonctionnelle :
Juste après le \begin{document}, placer :\makeatletter \def\list#1#2{% \ifnum \@listdepth >5\relax \@toodeep \else \global\advance\@listdepth\@ne \fi \rightmargin\z@ \listparindent\z@ \itemindent\z@ \csname @list\romannumeral\the\@listdepth\endcsname \def\@itemlabel{#1}% \let\makelabel\@mklab \@nmbrlistfalse #2\relax \@trivlist \parskip\parsep \parindent\listparindent \ignorespaces} \def\itemize{% \ifnum \@itemdepth >\thr@@\@toodeep\else \advance\@itemdepth\@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \expandafter \list \csname\@itemitem\endcsname% {\def\makelabel##1{\hss{##1}}}% \fi} \def\@item#1{% \if@noparitem \@donoparitem \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}% \fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{% \@minipagefalse \global\@newlistfalse \if@inlabel \global\@inlabelfalse {\setbox\z@\lastbox \ifvoid\z@ \kern-\itemindent \fi}% \box\@labels \penalty\z@ \fi \if@nobreak \@nobreakfalse \clubpenalty \@M \else \clubpenalty \@clubpenalty \everypar{}% \fi}% \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter\@listctr \fi \fi \sbox\@tempboxa{\makelabel{#1}}% \global\setbox\@labels\hbox{% \unhbox\@labels \hskip \itemindent %\hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa >\labelwidth \box\@tempboxa \else \hbox to\labelwidth {\unhbox\@tempboxa}% \fi \hskip \labelsep}% \ignorespaces} \makeatother -
Bonjour à tous,
J'ai été confronté à ce problème et j'en ai trouvé la solution. Il suffit de définir un environnement de liste personnalisé comme ceci :
\newenvironment{maliste}% { \begin{list}% {$\bullet$}% {\setlength{\labelsep}{5pt}% --> espace entre la puce et le début du texte \setlength{\leftmargin}{0pt}% --> espace entre le texte et la marge gauche (sauf pour la premiere ligne) \setlength{\labelwidth}{0pt}% --> taille de la boite contenant la puce. Aligné à droite. Si taille < taille de la puce, la taille de la boite est egale à la taille de la puce \setlength{\listparindent}{\parindent}% --> indentation des paragraphe dans la liste \setlength{\itemindent}{25pt}% --> espace entre la marge et la puce \setlength{\itemsep}{0pt}% --> espace entre les items (auquel s'ajoute \parsep} }}% { \end{list} }
Voilà, en tout cas chez moi cela donne le rendu souhaité. A savoir, quelque chose du type :
- item1 blablablablabl blabl blablabl balbalb ablablab bab blabla blab blablabalb bla - item2 bl blabl blablabl balbalb ablablab ba b blabla blab blabla ... et ainsi de suite. -
Zut je suis désolé, je vois que ce que je voulais vous faire voir n'est pas apparu une fois le message envoyé...
Enfaite, lorsque je fais des itemizes, lorsque ma phrase est un peu longue et dépasse en longueur, latex me met le ébut de la seconde ligne juste "sous la première lettre de ma phrase".
En résumé, je voudais que ma phrase, lors du changement de ligne, commence le plus à gauche possible comme l'exemple suivant : (chose classique dans l'édition de texte)
- aaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
kklssdklfjlskdfj sfjsd
Voici ce que me fais latex :
- aaaaaaaaaaaaaaaaaaaaaa
[-espace]aaaaaaaaaaaa
[-espace]klqshkwdjhksjdhs
Merci c'est assez urgent :)
bonne journée -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Voici ce que je souhaiterai obtenir : - aaaaaaaaaaaaaaaaaaaaaakqhsfishdfhdsdshdskkdfsj aaaaaaaaaaaakhskjdshfkjdfhkjsfdskjlfskldjfhkldshflqdshfkqds klqshkwdjhksjdhsksdhfsdjhfskldhfuleufhkjhdkjfhdsfhj Voici ce que me fais latex : - aaaaaaaaaaaaaaaaaaaaaasdhkjshfkldshfkbh aaaaaaaaaaaamsdehfsdhfsdhskdfkdshhfsdf klqshkwdjhksjdhssd:jfhkdsfsqdkjfdkkhjdf -
Ca y est j'ai compris ton problème :-) En fait ça dépend de ton style. Il y a peut être moyen de passer une option au niveau du itemize ou des item, il faudrait voir. Sinon il faut modifier le style lui même. J'avoue que comme le rendu latex me convient je n'ai jamais chercher à changer ce genre de paramètre...
-
Merci d'avoir compris mon problème, mais comment le résoudre? :s
Merci de votre aide.
Cordialement -
-
Désolé mais je n'ai pas la réponse. A part creuser les pistes que je t'ai donné dans <5> je ne sais pas trop quoi te dire.
Bonne chance -
Merci pour le tuyau :-)
-
Je viens de trouver une méthode plus élégante : utiliser le paquet "enumitem".
Il permet toutes les mises en forme pour les listes itemize, enumerate, description.
Plus d'info : http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=enumitem -
Merci pour ces tuyaux mais un peu complex pour moi, quelqu'un aurait-il la solution de ces documents à mon problème?
(oui toujours d'actualité ^^) -
Ps: j'ai tester ton code pat25, c'est exactement ce que je cherchais!!
Le seul problème est que les "itemizes" apparaissent maintenant comme : [ - ] au lieu de - simplement :s -
-
-
-
Au cas où le pb ne serait toujours pas résolu, voici l'astuce que j'ai trouvée. Pas idéal mais ça marche:
Faire avec l'environnement {description} auquel on supprime l'indentation (ce qui semble ne pas marcher avec {itemize}) et ajouter des espaces aux puces; ecemple:
\begin{description}[leftmargin=0pt]
\item[\ \ \textbullet] blablablablablablablablablablablablablablablablablablablablablablablablablabla
\item[\ \ \textbullet] blablablablablablablablablablablablablablablablablablablablablablablablablabla
\end{description}
Ne pas oublier les "\ \ " dans les puces bien sûr, c'est tout l'intérêt de ma "méthode"