设置在枚举环境中中断项目的位置

设置在枚举环境中中断项目的位置

我正在创建一个两列文档,其中包含一个长枚举环境,其中每个编号项后面跟着一个带有字母(a) - (e)的嵌套枚举环境,如下所示:

\begin{enumerate}
    \setlength{\itemsep}{2em}
    \item prompt
        \begin{enumerate}
            \item choice a
            \item choice b
            \item choice c
            \item choice d
            \item choice e
        \end{enumerate}
    \item prompt
        \begin{enumerate}
            \item choice a
            \item choice b
            \item choice c
            \item choice d
            \item choice e
        \end{enumerate}
\end{enumerate}

我想告诉 latex 仅在每个提示之前放置分栏符和分页符,而不是在其他地方中断列表。我该怎么做?

答案1

定义一个promptlist环境,将其内容设置在minipage

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem,multicol}

\newenvironment{promptlist}
  {\par\nobreak\noindent
   \begin{minipage}{\linewidth}
     \begin{enumerate}}
  {  \end{enumerate}
   \end{minipage}}

\raggedcolumns % ...might be a good idea

\begin{document}

\begin{multicols}{2}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum porttitor 
cursus viverra. Sed vitae libero condimentum, dapibus enim quis, aliquam mi. 
Ut cursus, mauris eu ultricies bibendum, diam enim euismod magna, ut 
sollicitudin ipsum mi at dolor. Etiam ac cursus quam. In hac habitasse platea 
dictumst. Nam pretium metus a libero pretium, vitae lacinia nunc tincidunt. 
Duis vitae posuere dolor. Mauris et nisl nisl. Sed rutrum eros sed erat 
hendrerit, nec iaculis velit ornare.

Sed posuere molestie turpis in eleifend. Aenean vestibulum at turpis eu 
pulvinar. Nam ligula quam, aliquet vitae lorem sed, venenatis tincidunt 
ligula. Integer quis sapien quis nulla interdum ultrices. Quisque et arcu 
placerat, elementum dolor at, accumsan justo. In hac habitasse platea 
dictumst. Phasellus volutpat elit lectus, vel sollicitudin nulla volutpat ut. 
Sed vel dui ornare, blandit leo eget, tempor massa. Mauris pellentesque 
lacinia arcu, ac rutrum tellus blandit vel. Pellentesque fringilla ut magna 
eu lobortis. Pellentesque dictum ipsum et orci mollis luctus.

Phasellus tristique quam ligula, non sagittis ipsum ullamcorper et. 
Maecenas a accumsan lectus, eu vestibulum arcu. Fusce vel felis ligula. 
Nullam non tempus metus. Nam sagittis feugiat leo, eu accumsan neque ornare 
eget. Mauris sem neque, tempor nec consequat non, imperdiet id est. Proin 
id pretium neque. Aliquam mollis, nisl sit amet consectetur sollicitudin, 
nisl ipsum convallis purus, molestie tincidunt arcu erat dictum erat. 
Maecenas vehicula nunc non sapien ornare cursus.

\begin{enumerate}[itemsep = 2em]
  \item prompt A
    \begin{promptlist}
      \item choice A.a
      \item choice A.b
      \item choice A.c
      \item choice A.d
      \item choice A.e
    \end{promptlist}
  \item prompt B
    \begin{promptlist}
      \item choice B.a
      \item choice B.b
      \item choice B.c
      \item choice B.d
      \item choice B.e
    \end{promptlist}
  \item prompt C
    \begin{promptlist}
      \item choice C.a
      \item choice C.b
      \item choice C.c
      \item choice C.d
      \item choice C.e
    \end{promptlist}
  \item prompt D
    \begin{promptlist}
      \item choice D.a
      \item choice D.b
      \item choice D.c
      \item choice D.d
      \item choice D.e
    \end{promptlist}
\end{enumerate}

Quisque pharetra aliquam ante, non eleifend nisi pharetra a. Pellentesque 
quis imperdiet nunc, in blandit lectus. Quisque sed egestas metus. Aenean 
diam magna, scelerisque sed urna tincidunt, semper ultrices leo. Suspendisse 
porta ut neque id maximus. In hac habitasse platea dictumst. Pellentesque 
tristique risus facilisis, condimentum risus ut, mattis ante.

\end{multicols}

\end{document}

由于您可能将大量文本推送到后续列,因此发布\raggedbottom听起来是个好主意。


或者,将提示作为环境参数的一部分。这将允许您在 中promptlist设置整个\item和子,确保它们始终保持在一起:\itemminipage

\usepackage{enumitem,multicol}

\newenvironment{promptlist}[1]
  {\begin{minipage}{\linewidth}
     \item \rule{0pt}{2em}#1
     \begin{enumerate}}
  {  \strut\end{enumerate}
   \end{minipage}}
\newlist{prompts}{enumerate}{1}
\setlist[prompts]{itemsep=2em,label=\arabic*,topsep=0pt}

% ...

\begin{prompts}
  \begin{promptlist}{prompt A}
    \item choice A.a
    \item choice A.b
    \item choice A.c
    \item choice A.d
    \item choice A.e
  \end{promptlist}
  \begin{promptlist}{prompt B}
    \item choice B.a
    % ...

相关内容