[Tex/LaTex] Enumerate with Properties

#enumeratelists

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.?

Best Answer

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}

enter image description here

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:

enter image description here

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}

enter image description here