多级枚举的缩进问题

多级枚举的缩进问题

首先,抱歉我的英语不好,我是法国人。其次,当我有多个枚举级别时,我在枚举方面遇到了问题。一个例子比长篇大论要好:

\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}

给出这个:

在此处输入图片描述

我现在的问题是:我希望长文本(blabla [...] blabla)在页面左侧对齐,而不是与枚举项对齐。

有什么想法吗?谢谢

答案1

我会使用您设置的环境\parshape=0。还需要进行一些其他记账;无需中断和恢复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}

在此处输入图片描述

具有两个环境的不同实现:breakenum*仅删除当前的\leftmargin,而breakenum一直删除。

\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}

在此处输入图片描述

相关内容