How can I force the text of an enumerate
item to start on a new line below the item number?
1 Answer
As egreg mentioned in a comment, using
\item\mbox{}\\
will do the job. If you want to have the job done for you automatically, you could define a command behaving like \item
, but adding the \mbox{}\\
:
\documentclass{article}
\makeatletter
\def\myitem{%
\@ifnextchar[ \@myitem{\@noitemargtrue\@myitem[\@itemlabel]}}
\def\@myitem[#1]{\item[#1]\mbox{}\\}
\makeatother
\begin{document}
\begin{enumerate}
\item\mbox{}\\First.
\item\mbox{}\\Second.
\end{enumerate}
\begin{enumerate}
\myitem First.
\myitem Second.
\end{enumerate}
\end{document}
If you additionally want the item text to start left aligned with the item label, you can use the enumitem
package to define a new list which behaves like a standard enumerate
, but with left aligned labels; and a modification to the \myitem
command from above will be necessary:
\documentclass{article}
\usepackage{enumitem}
\makeatletter
\def\myitem{%
\@ifnextchar[ \@myitem{\@noitemargtrue\@myitem[\@itemlabel]}}
\def\@myitem[#1]{\item[#1]\mbox{}\\\hspace*{\dimexpr-\labelwidth-\labelsep}}
\makeatother
\newlist{mylist}{enumerate}{2}
\setlist[mylist,1]{align=left,label=\arabic*.}
\setlist[mylist,2]{align=left,label=(\alph*)}
\begin{document}
\begin{mylist}
\myitem First item.
\myitem Second item.
\begin{mylist}
\myitem First subitem.
\myitem Second subitem.
\end{mylist}
\myitem Third item.
\end{mylist}
\end{document}
-
1I would probably use e.g.
\widowpenalty=10000
in such lists to prevent a page break directly after the number. Sep 26, 2011 at 10:52 -
1This only left-align the first line. It's better to use
leftmargin=0pt,labelwidth=*
in list options instead of\hspace*{\dimexpr-\labelwidth-\labelsep}
.– AlbertMay 4, 2020 at 4:59
\item\mbox{}\\
suffices.