How can I easily customize the \enumerate environment so that, instead of each line being numbered 1., 2., etc., they are numbered Property 1., Property 2., etc.?
Asked
Active
Viewed 1.3k times
22
lockstep
- 250,273
jamaicanworm
- 29,114
1 Answers
26
You can use for example the enumitem package to customize the enumerate environment.
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=Property \arabic*.,itemindent=*]
\item First
\item Second
\end{enumerate}
\end{document}
enumitem also allows you to define your own list environment:
\documentclass{article}
\usepackage{enumitem}
\newlist{Properties}{enumerate}{2}
\setlist[Properties]{label=Property \arabic*.,itemindent=*}
\begin{document}
\begin{Properties}
\item First
\item Second
\end{Properties}
\end{document}

Setting the itemindent to * automatically calculates the necessary width for the entire label. Without this the label will run into the left margin.
If an item text is too long to fit on one line, the next line will be indented a little from the left margin:

If you want this second line to be aligned with the start of the item text, use leftmargin=* instead of itemindent=*. If you want the second line to not be indented, use leftmargin=0pt in addition to itemindent=*. The following example sums this up:
\documentclass{article}
\usepackage{showframe}
\usepackage{enumitem}
\begin{document}
Just changing the label:
\begin{enumerate}[label=Property \arabic*.]
\item First, with a very long text that should extend to the next line if I'm not very much mistaken.
\item Second.
\end{enumerate}
\hrule\medskip
With \verb|itemindent=*|:
\begin{enumerate}[label=Property \arabic*.,itemindent=*]
\item First, with a very long text that should extend to the next line if I'm not very much mistaken.
\item Second.
\end{enumerate}
\hrule\medskip
With \verb|leftmargin=*|:
\begin{enumerate}[label=Property \arabic*.,leftmargin=*]
\item First, with a very long text that should extend to the next line if I'm not very much mistaken.
\item Second.
\end{enumerate}
\hrule\medskip
With \verb|itemindent=*,leftmargin=0pt|:
\begin{enumerate}[label=Property \arabic*.,itemindent=*,leftmargin=0pt]
\item First, with a very long text that should extend to the next line if I'm not very much mistaken.
\item Second.
\end{enumerate}
\end{document}

Torbjørn T.
- 206,688
leftmargin? – Gonzalo Medina Dec 09 '11 at 18:23leftmarginparameter so it doesn't extend into the margins? – jamaicanworm Dec 09 '11 at 18:33leftmargin=*does it – cmhughes Dec 09 '11 at 18:36*is a little more convenient. – Torbjørn T. Dec 09 '11 at 18:38itemindent=*,leftmargin=0pt, see my edited answer. – Torbjørn T. Jan 07 '14 at 10:40