3

firstly, sorry for my english, I'm French. Secondly, I've a problem with enumerate, when I have multiple levels of enumeration. An example is better than long speeches :

\documentclass[12pt]{article}
\usepackage{enumitem} % Listes
\usepackage[top=1.5cm,bottom=1.5cm,right=1.5cm,left=1.5cm]{geometry} % Marges   

\makeatletter
\newcommand{\listintertext}{\@ifstar\listintertext@\listintertext@@}
\newcommand{\listintertext@}[1]{% \listintertext*{#1}
  \hspace*{-\@totalleftmargin}#1}
\newcommand{\listintertext@@}[1]{% \listintertext{#1}
  \hspace{-\leftmargin}#1}
\makeatother

\begin{document}
\begin{enumerate}[label=\textbf{\arabic*.}]
 \item 1.
 \begin{enumerate}[label=\textbf{(\alph*)}]
  \item 1.(a)
 \end{enumerate}

Blabla

 \begin{enumerate}[label=\textbf{(\alph*)},resume]
  \item 2.(b)
  \begin{enumerate}[label=\textbf{\roman*.}]
   \item 2.(b).i.
  \end{enumerate}

\listintertext*{blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla}

  \begin{enumerate}[label=\textbf{\roman*.},resume]
   \item 2.(b).ii.
  \end{enumerate}
 \end{enumerate}
\end{enumerate}
\end{document}

gives this :

enter image description here

My problem is now : I want long text (blabla [...] blabla) to be aligned in the left of the page, and not aligned with the enumerate item.

Any ideas ? Thank you

9
  • 6
    You don't need to start each of your posts with an apology for your English. It's absolutely fine as far as I am concerned. (Plus we can tell that you are from a French-speaking country by the spaces before : and ? ;-))
    – moewe
    Dec 8, 2018 at 14:33
  • Ok, thanks ;) Ah, I didn't know this is a French language speciality
    – Alex
    Dec 8, 2018 at 14:35
  • Do you want it aligned with the bold 1?
    – Sigur
    Dec 8, 2018 at 14:35
  • 1
    Can't you just \end the enumerate before the Blabla? At the moment they live within the enumerate and so take its indentation.
    – moewe
    Dec 8, 2018 at 14:37
  • 1
    Mhhh, maybe tex.stackexchange.com/q/135726/35864 can help you.
    – moewe
    Dec 8, 2018 at 14:54

1 Answer 1

3

I'd use an environment where you set \parshape=0. Also some other bookkeeping is necessary; no need to break and resume the enumerate.

\documentclass[12pt]{article}
\usepackage{enumitem} % Listes
\usepackage[top=1.5cm,bottom=1.5cm,right=1.5cm,left=1.5cm]{geometry} % Marges   

\makeatletter
\newenvironment{breakenum}
 {% issue \par as defined in a list
  % then reset it to the primitive
  \par\let\par\@@par
  % add spacing like for an item
  \vspace{\itemsep}%
  % reset \parshape to 0
  \parshape\z@
  % reset \@totalleftmargin and \linewidth
  \@totalleftmargin=\z@
  \linewidth=\columnwidth
 }
 {\par}
\makeatother

\begin{document}


blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla
\begin{enumerate}[label=\textbf{\arabic*.}]
  \item 1.
  \begin{enumerate}[label=\textbf{(\alph*)}]
    \item 1.(a)
  \end{enumerate}

  Blabla

  \begin{enumerate}[label=\textbf{(\alph*)},resume]
    \item 2.(b)
    \begin{enumerate}[label=\textbf{\roman*.}]
      \item 2.(b).i.

\begin{breakenum}
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla
\end{breakenum}

      \item 2.(b).ii.
    \end{enumerate}
  \end{enumerate}
\end{enumerate}

\end{document}

enter image description here

A different implementation with two environments: breakenum* only removes the current \leftmargin, whereas breakenum goes all the way.

\documentclass[12pt]{article}
\usepackage{enumitem} % Listes
\usepackage[top=1.5cm,bottom=1.5cm,right=1.5cm,left=1.5cm]{geometry} % Marges   

\makeatletter
\newenvironment{breakenum}
  {\breakenum@reset{\@totalleftmargin}}
  {\par}
\newenvironment{breakenum*}
  {\breakenum@reset{\leftmargin}}
  {\par}
\newlength{\normalparindent}
\AtBeginDocument{\setlength{\normalparindent}{\parindent}}
\newenvironment{breakenum+}
  {%
   \breakenum@reset{\leftmargin}
   \setlength{\parindent}{\normalparindent}%
   \setlength{\parskip}{0pt}% 
  }
  {\par}

\newcommand{\breakenum@reset}[1]{%
  % issue \par as defined in a list
  \par
  % add spacing like for an item
  \vspace{\itemsep}%
  % reset \@totalleftmargin and \linewidth
  \addtolength{\linewidth}{#1}%
  \addtolength{\@totalleftmargin}{-#1}%
  % reset \parshape
  \parshape\@ne\@totalleftmargin\linewidth
 }
 {\par}
\makeatother

\begin{document}


blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla
\begin{enumerate}[label=\textbf{\arabic*.}]
  \item 1.
  \begin{enumerate}[label=\textbf{(\alph*)}]
    \item 1.(a)

\begin{breakenum*}
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla

blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla
\end{breakenum*}

    \item 2.(b)
    \begin{enumerate}[label=\textbf{\roman*.}]
      \item 2.(b).i.

\begin{breakenum}
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla

blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla
\end{breakenum}

      \item 2.(b).ii.
    \end{enumerate}
  \end{enumerate}
\begin{breakenum+}
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla

blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla 
blabla
\end{breakenum+}

\item 3
\end{enumerate}

\end{document}

enter image description here

3
  • Hi, it works but I want : 1) to have possibility (but no obligation) to have an indentation before a new paragraph 2) in the last 'blabla' paragraph (after 2(b)i), I want the text takes all the width of the page (Am I clear ? Not sure)
    – Alex
    Feb 1, 2019 at 15:20
  • @Alex I fixed the second implementation and added also a breakenum+ environment that does normal indentation.
    – egreg
    Feb 1, 2019 at 16:07
  • It works perfectly !! Thank you very much ! I just changed a little to have that I want, but it's perfect ! Thank you again !
    – Alex
    Feb 2, 2019 at 13:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.