Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I want to make the enumerate environment look like this:

    1. First item [...]
[first item continued]
    2. Second item [...]

That is, the text should look like normal body text except with indented numbers. I'd like to be able to control the vertical spacing between items as well, so that I have the option of changing it from the default value to zero.

Here is an MWE:

\documentclass{article}
\usepackage{lipsum}
\begin{document}

\begin{enumerate}
   \item \lipsum[1]
   \item \lipsum[2]
\end{enumerate}

\end{document}
share|improve this question

2 Answers 2

up vote 4 down vote accepted

A leftmargin of 0pt and non-zero itemindent works:

enter image description here

\documentclass{article}
\usepackage{enumitem,lipsum}
\begin{document}
\lipsum[1]
\begin{enumerate}[leftmargin=0pt,itemindent=2em]
  \item \lipsum[2]
  \item \lipsum[4]
\end{enumerate}
\lipsum[3]
\end{document}

Vertical spacing between items can be set via itemsep.

share|improve this answer
3  
You'll need to change itemsep and parsep to get the desired output. And, for consistency, it would be better to do \setlist[enumerate]{leftmargin=0pt,itemindent=2em,parsep=0pt,itemsep=0pt}. –  Gonzalo Medina Jul 10 at 23:53

This is not dissimilar to Werner's answer but the item labels do not spill back into the margin. That is, if you add align=left, the item numbers will be flush left and aligned with the text area rather than to the left of the text area. I find this theoretically more satisfying but admit this is likely irrational!

I've also set the paragraph indent for the list. If you drop the vertical separation between items, you'll want to do so between paragraphs within an item as well, as Gonzalo Medina points out. But you still need something to distinguish paragraph breaks so you will want to stop the list environment setting the paragraph indent to zero.

\documentclass{article}
\usepackage{enumitem,lipsum}
\begin{document}
  \lipsum[1]
  \begin{enumerate}[labelindent=0pt, labelwidth=*, leftmargin=0pt, itemindent=!, itemsep=0pt, parsep=0pt, listparindent=\parindent]
    \item \lipsum[2]
    \item \lipsum[4-5]
  \end{enumerate}

  \lipsum[3]
\end{document}

list

EDIT

As Gonzalo Medina points out in comments, it is easier to use such settings consistently if you set them globally in your preamble.

I would do this by creating a new list environment with these settings:

\documentclass{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{1}
\setlist[mylist]{labelindent=0pt, labelwidth=*, leftmargin=0pt, itemindent=!, itemsep=0pt, parsep=0pt, listparindent=\parindent}
...

This would then enable me to use the environment mylist in the document itself:

\begin{mylist}
  \item ...
\end{mylist}

So to create the above example, I'd use this code:

\documentclass{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{1}
\setlist[mylist]{label={\arabic*.}, labelindent=0pt, labelwidth=*, leftmargin=0pt, itemindent=!, itemsep=0pt, parsep=0pt, listparindent=\parindent}
\usepackage{lipsum}
\begin{document}
  \lipsum[1]
  \begin{mylist}
    \item \lipsum[2]
    \item \lipsum[4-5]
  \end{mylist}

  \lipsum[3]
\end{document}

If you only want this type of numbered list, then you could instead change the default settings for enumerate in the preamble with:

\setlist[enumerate]{labelindent=0pt, labelwidth=*, leftmargin=0pt, itemindent=!, itemsep=0pt, parsep=0pt, listparindent=\parindent}

or

\setlist[enumerate,1]{labelindent=0pt, labelwidth=*, leftmargin=0pt, itemindent=!, itemsep=0pt, parsep=0pt, listparindent=\parindent}

which will only use these settings for the first level enumeration.

share|improve this answer
    
Again, for consistency, it'd be better to do \setlist[enumerate]{labelindent=0pt, labelwidth=*, leftmargin=0pt, itemindent=!, itemsep=0pt, parsep=0pt, listparindent=\parindent} in the preamble. –  Gonzalo Medina Jul 11 at 0:12
    
@GonzaloMedina I guess if you are sure you don't want the regular enumerate settings... If I wanted to use these settings multiple times, I'd be more inclined to do \newlist{mylist}{enumerate}{1} and then \setlist[mylist]{labelindent=0pt, labelwidth=*, leftmargin=0pt, itemindent=!, itemsep=0pt, parsep=0pt, listparindent=\parindent} and use \begin{mylist}...\end{mylist} in the document itself. –  cfr Jul 11 at 0:20
1  
The first OP's sentence suggests that the settings are to be applied to all the enumerate environments; in any case, a global setting (either for enumerate or for a new list) is preferable, in my opinion. –  Gonzalo Medina Jul 11 at 0:23
1  
The same result can be obtained setting the shorter options: [wide=\parindent,noitemsep]. Writing nosep instead of no itemsep gives a text which perfectly undistinguishable from ordinary text except numbering. –  Bernard Jul 11 at 0:34
    
@Bernard Huh. Thanks. I didn't know about wide. (I see it is marked as 'new' in the manual but I also see it must be at least 3 years ago!) –  cfr Jul 11 at 0:43

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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