在枚举环境中,在项目标签后的新行上开始项目的内容

在枚举环境中,在项目标签后的新行上开始项目的内容

如何让enumerate项目的全部内容从项目标签和编号下方的新行开始,并与文档左边距对齐?

这个问题与另一个问题密切相关 在枚举环境中,强制在项目编号后换行。但是提供的解决方案只是调整了第一行左边距,而不是调整项目的全部内容。

我用的是这个enumitem包。

实际代码:

\documentclass{article}  
\usepackage{enumitem}   

\setlength\parindent{0pt}

\makeatletter   
\def\itemq{\@ifnextchar[ \@itemq{\@noitemargtrue\@itemq[\@itemlabel]}}
\def\@itemq[#1]{\item[#1]\mbox{}\\\hspace*{\dimexpr-\labelwidth-\labelsep}}  
\makeatother 

\begin{document}

Nunc convallis tincidunt scelerisque. Praesent ac mattis ligula, dictum 
condimentum enim. Donec convallis id lorem vel lobortis. Duis dapibus metus ut
 risus egestas, in lobortis elit ultricies. Nam eu odio aliquam, ullamcorper
 quam sed, placerat massa.

\begin{enumerate}[align=left,label=\textbf{Question \arabic*},leftmargin=!]
\itemq Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed accumsan
 pulvinar magna, eget suscipit ligula feugiat in. Nam iaculis egestas est sed
 dictum. Nulla suscipit leo et luctus facilisis. Vivamus a lorem at libero 
elementum blandit eu quis diam. Fusce mollis lorem a diam consequat, non 
fermentum massa auctor.
\itemq Vivamus fringilla eget nisl at mattis. Sed commodo iaculis est,
 adipiscing pretium magna adipiscing eget. Donec sed ante at massa tincidunt 
porttitor vitae vel lectus. Sed facilisis feugiat felis, ultricies aliquam ante
 iaculis et. Suspendisse fringilla, purus nec convallis cursus, nunc lectus
 pharetra ipsum, nec hendrerit sem nunc eu nulla. Nam neque magna, faucibus
 vitae ante nec, hendrerit bibendum nunc.
\end{enumerate}

\end{document}

期望的输出是这样的:

\documentclass{article}

\setlength\parindent{0pt}

\begin{document}

Nunc convallis tincidunt scelerisque. Praesent ac mattis ligula, dictum 
condimentum enim. Donec convallis id lorem vel lobortis. Duis dapibus metus ut
 risus egestas, in lobortis elit ultricies. Nam eu odio aliquam, ullamcorper 
quam sed, placerat massa.

\medskip\textbf{Question 1}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed accumsan pulvinar
 magna, eget suscipit ligula feugiat in. Nam iaculis egestas est sed dictum.
 Nulla suscipit leo et luctus facilisis. Vivamus a lorem at libero elementum 
blandit eu quis diam. Fusce mollis lorem a diam consequat, non fermentum massa
 auctor.

\medskip\textbf{Question 2}

Vivamus fringilla eget nisl at mattis. Sed commodo iaculis est, adipiscing
 pretium magna adipiscing eget. Donec sed ante at massa tincidunt porttitor
 vitae vel lectus. Sed facilisis feugiat felis, ultricies aliquam ante iaculis
 et. Suspendisse fringilla, purus nec convallis cursus, nunc lectus pharetra
 ipsum, nec hendrerit sem nunc eu nulla. Nam neque magna, faucibus vitae ante
 nec, hendrerit bibendum nunc.

\end{document}

答案1

以下仅依赖于enumitem通过 创建特殊newline对齐方式\SetLabelAlign。它允许以抽象方式获取您想要的对齐方式,可以合并到特定样式中(如果需要),并且不会影响全部enumerate像在这样的环境贡萨洛的回答

在此处输入图片描述

\documentclass{article}
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\SetLabelAlign{newline}{\makebox[\dimexpr\linewidth-\labelsep][l]{#1}}%
\begin{document}

Nunc convallis tincidunt scelerisque. Praesent ac mattis ligula, dictum 
condimentum enim. Donec convallis id lorem vel lobortis. Duis dapibus metus 
ut risus egestas, in lobortis elit ultricies. Nam eu odio aliquam, 
ullamcorper quam sed, placerat massa.

\begin{enumerate}[
  align=newline,
  label=\textbf{Question \arabic*},
  leftmargin=0pt,
  itemindent=\dimexpr\labelwidth+\labelsep]
  \item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed accumsan 
    pulvinar magna, eget suscipit ligula feugiat in. Nam iaculis egestas est sed 
    dictum. Nulla suscipit leo et luctus facilisis. Vivamus a lorem at libero 
    elementum blandit eu quis diam. Fusce mollis lorem a diam consequat, non 
    fermentum massa auctor.
  \item Vivamus fringilla eget nisl at mattis. Sed commodo iaculis est, 
    adipiscing pretium magna adipiscing eget. Donec sed ante at massa tincidunt 
    porttitor vitae vel lectus. Sed facilisis feugiat felis, ultricies aliquam 
    ante iaculis et. Suspendisse fringilla, purus nec convallis cursus, nunc 
    lectus pharetra ipsum, nec hendrerit sem nunc eu nulla. Nam neque magna, 
    faucibus vitae ante nec, hendrerit bibendum nunc.
\end{enumerate}

\end{document}

答案2

调整值以labelsep使其成为-\labelwidth

\documentclass{article}  
\usepackage{enumitem}   
\usepackage{etoolbox}

\makeatletter
\expandafter\apptocmd\expandafter{\csname\string\enumerate\endcsname}{\apptocmd{\@item}{\mbox{}\\*}{}{}}{}{}
\makeatother

\begin{document}

Nunc convallis tincidunt scelerisque. Praesent ac mattis ligula, dictum condimentum enim. Donec convallis id lorem vel lobortis. Duis dapibus metus ut risus egestas, in lobortis elit ultricies. Nam eu odio aliquam, ullamcorper quam sed, placerat massa.

\begin{enumerate}[align=left,label=\textbf{Question \arabic*},leftmargin=!,labelsep=-\labelwidth]
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed accumsan pulvinar magna, eget suscipit ligula feugiat in. Nam iaculis egestas est sed dictum. Nulla suscipit leo et luctus facilisis. Vivamus a lorem at libero elementum blandit eu quis diam. Fusce mollis lorem a diam consequat, non fermentum massa auctor.
\item Vivamus fringilla eget nisl at mattis. Sed commodo iaculis est, adipiscing pretium magna adipiscing eget. Donec sed ante at massa tincidunt porttitor vitae vel lectus. Sed facilisis feugiat felis, ultricies aliquam ante iaculis et. Suspendisse fringilla, purus nec convallis cursus, nunc lectus pharetra ipsum, nec hendrerit sem nunc eu nulla. Nam neque magna, faucibus vitae ante nec, hendrerit bibendum nunc.
\end{enumerate}

\end{document}

在此处输入图片描述

在上面的例子中,我还对原始代码做了一些修改,使用etoolbox包来改变枚举环境内部的行为\item,使得标签后的文本将在新行开始(我借用了一些代码Philippe Goutet's answer在下一行开始枚举的枚举?)。当然,这是可选的,您可以使用原始设置以及密钥的建议值labelsep

相关内容