Lists: Enumerate, itemize, description and how to change them

Latex distinguishes between three different enumeration/itemization environments. Each of them provide four levels, which means you can have nested lists of up to four levels.

Enumerate:

\begin{enumerate}
\item ...
\end{enumerate}

The enumerate-environment is used to create numbered lists.
If you like to change the appearance of the enumerator, the simplest way to change is to use the enumerate-package, giving you the possibility to optionally choose an enumerator.

\usepackage{enumerate}
...
\begin{enumerate}[I]%for capital roman numbers.
\item
\end{enumerate}

 

\begin{enumerate}[(a)]%for small alpha-characters within brackets.
\item
\end{enumerate}

Itemize:

\begin{itemize}
\item ...
\end{itemize}

Itemization is probably the mostly used list in Latex. It also provides four levels. The bullets can be changed for each level using the following command:

\renewcommand{\labelitemi}{$\bullet$}
\renewcommand{\labelitemii}{$\cdot$}
\renewcommand{\labelitemiii}{$\diamond$}
\renewcommand{\labelitemiv}{$\ast$}

Amongst the more commonly used ones are $\bullet$ (\bullet), $\cdot$ (\cdot), $\diamond$ (\diamond), $-$ (-), $\ast$ (\ast) and $\circ$ (\circ).

Description:

\begin{description}
\item[] ...
\end{description}

The description list might be the least known. It comes in very handy if you need to explain notations or terms. Its neither numbered nor bulleted.

Example:

\begin{description}
\item[Biology] Study of life.
\item[Physics] Science of matter and its motion.
\item[Psychology] Scientific study of mental processes and behaviour.
\end{description}

And in a PDF it would look like this:

Example of a description list.

Example of a description list.

Note:

The space between different items can be controlled with the \itemsep command (can only be added just after “begin”):

\begin{itemize}\itemsep2pt
\item
\end{itemize}


78 Responses to “Lists: Enumerate, itemize, description and how to change them”

  • mbork

    Well, I used to use the enumerate package too – but only until I found out about another one, called enumitem. It’s way more flexible and (in some cases) easier to use. (For example, it’s a bit tricky to obtain enumerations with _bold_ letters: (a), (b) etc with the enumerate package – try it! With enumitem, it’s much easier.)

    Also, I hardly ever use itemize and description – and enumerate all the time.

  • nguyenminhhaivn

    Thanks a lot, your blog is very helpful. Btw, do you know how to insert pieces of source code into documents? I have tried some packages already, but they are a little ugly. Perhaps I have not figured out how to configure them yet :( .

  • tom

    Hi there,

    Thanks for your comment. Please check my post on how to include source code into your documents here.

    Cheers,
    Tom

  • Joe Python

    Is it possible to create fancy frames like the one you created in your html for the description list?

  • tom

    Hi Joe,

    It is possible to crate fancyframes using \mbox or the fancybox package. Nevertheless, I think you will have problems creating a frame similar to the html above, as figure is a floating environment, which can’t be put into a box.

    Tom.

  • Ana

    Hi Ana,

    I moved your comment here.

    Thanks,
    Tom

  • joana

    Hi!

    Is it possible to begin the enumeration with 0?

    0. something
    1. something
    2. something

    Thanks!

  • DIYANA

    how to tab the item in the itemize.

    i want to move the item a bit right.

    1 cm to the right, then start the itemize.

    • tom

      One thing you can do is to use \hspace{1cm} between your \item and its content. However this will separate the dot (or whatever you are using) from the text which is probably not what you are looking for.
      If so, try this:
      \parbox[1cm]{\textwidth}{
      \begin{itemize}
      ...
      \end{itemize}
      }

      Cheers, Tom.

      • Wouter

        Hello Tom,

        Your solution does only works partially. When your description has a text length longer then \textwidth, the text wont be cut of at \textwidth but at \textwidth + 1cm

        Do you maybe have a solution which prevents that? I tried to use…

        \parbox[1cm]{\textwidth – 1cm}{ … }

        but that doesn’t work since it can’t do the math :P

      • tom

        You are right of course. Thanks for pointing this out. Try the following instead:

        \begin{list}{\labelitemi}{\leftmargin=1cm}
        \item ...
        \end{list}

        Sorry for that, Tom.

  • Tamer

    Is there any way to get enumeration as follows:

    A1.

    A2.

    A3.

    Thanks.

    • tom

      Hi!

      Probably the easiest way is to use the optional argument of \item[], which lets you customize your list and would look something like this:
      \begin{enumerate}
      \item[A1.] First item
      \item[A2.] Second item
      \item[A3.] Third item
      \end{enumerate}

      However, if you have many items and don’t want to adapt the number for each item, you can also redefine the counter of the list. This is done through the following line of code:
      \renewcommand{\theenumi}{A\arabic{enumi}}

  • Brit

    Hi
    Hope you can help. When I use enumerate and change the counter the indent disapeares. When I don’t add a counter there is an indent.

    This:
    \begin{enumerate}[a.]
    \item text 1
    \item text 2
    \item text 3
    \end{enumerate}

    Looks like this:
    Some text
    a. text 1
    b. text 2
    c. text 3
    Some more text.

    But I would like:

    Some text
    (space here)a. text 1
    b. text 2
    c. text 3
    Some more text.

    How do I get that?

    Brit

  • sharad

    Is there any way to get enumeration as follows:

    [1] Text should be followed like this as
    next line should start just below the first word of first line (for example, below the Text)

    • tom

      Is this what you are looking for:

      \begin{enumerate}
      \item This is my first item.\\
      On several lines.
      \item This is my second item.
      \end{enumerate}

      If not, please post a text example.

      Cheers, Tom.

  • sharad

    Dear Tom,
    Thanks for reply,
    But I am looking for to get enumerate like this (as described below) ”

    [1] This is my first item.
    On several lines.
    [2] This is my second item.
    On several lines.
    [3] This is my third item.
    On several line

    • tom

      Hi!

      Add this line to your preamble. This will change the style of your enumeration accordingly.

      \renewcommand{\labelenumi}{[\arabic{enumi}]}

      Cheers, Tom.

  • sharad

    Hi,
    Hi,

    I tried your suggestion but it looks like:

    1. This is my first item.
    On several lines.
    2. This is my second item.

    But I want like:

    [1] This is my first item.
    On several lines.
    [2] This is my second item.

  • Snap

    Hi,
    I wonder if it is possible to do something like this:
    —————————————-
    1. First Section Big Heading
    Some normal text followed by a list numbered by section then item number:
    1.1 First list item
    1.2 Second list item (which will be referenced)

    2. Second Section Big Heading
    Some more normal text.
    2.1 Another other item
    2.2 A reference to a previous list item in this list (see item 2.1)
    2.3 A reference to a previous list item in a different list (see item 1.2)
    —————————————-
    I want to be able to label and refer to items in the list, much like they way that equations are numbered. Thanks in advance!

    • tom

      You can use \label{itm:item1} and \ref{itm:item1} just like for figures, equations, etc.

      Besides, to get the numbering as proposed in your example (section.item), use:

      \renewcommand{\theenumi}{\thesection.\arabic{enumi}}

      Cheers, Tom.

  • Sameer

    I am using MikTex…and I want 4th level of numbers like shown below..How to get that…I am just 5 day old MikTex user..!

    1. Topic
    1.1 Subtopic
    1.1.1 Sub-Sub Topic
    1.1.1.1 Sub-Sub-Sub Topic

    -Sameer

    • tom

      Hi Sameer,

      The following code explains how to produce up to six levels in depth including numbering as well as adding the headings to the table of contents.

      \documentclass[a4paper]{report}
      \setcounter{secnumdepth}{5} % Section depth to be numbered
      \setcounter{tocdepth}{5} % Table of contents depth
      \begin{document}
      \tableofcontents
      \chapter{test}
      \section{test}
      \subsection{test}
      \subsubsection{test}
      \paragraph{test}
      \subparagraph{test}
      \end{document}
      

      Cheers, Tom.

  • Adam

    I’m running into a bit of difficulty with all this. When I try to reference an embedded enumeration, rather than getting just “I” I get “Ia”. Here’s my big long preamble, but I think the only relevant package for this problem is the enumerate package.

    \documentclass[12pt, letterpaper]{article}
    \usepackage{amsmath}
    \usepackage{amsthm}
    \usepackage{amssymb}
    \usepackage[pdftex]{graphicx}
    \DeclareGraphicsExtensions{.pdf,.png,.jpg,.gif}
    \usepackage{natbib}
    \bibpunct{(}{)}{;}{a}{}{,}
    \usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
    \usepackage{enumerate}
    \usepackage[usenames,dvipsnames]{color}
    \usepackage{setspace}
    \usepackage{stmaryrd}
    \usepackage{textcomp}
    \usepackage{multirow}
    \usepackage{ifsym}
    \usepackage[table]{xcolor}
    \usepackage{soul}
    \usepackage{cancel}
    \usepackage{ulem}
    \usepackage{units}
    \usepackage{pifont}
    \newcommand{\verteq}[0]{\rotatebox{90}{$=$}} \definecolor{newyellow}{RGB}{255,150,0} \definecolor{newgray}{RGB}{250,250,250}
    \begin{document}
    \long\def\symbolfootnote[#1]#2{\begingroup%
    \def\thefootnote{\fnsymbol{footnote}}\footnote[#1]{#2}\endgroup}

    Then when I go to enter something like

    \begin{enumerate}
    \renewcommand{\theenumi}{\arabic{enumi}}
    \renewcommand{\labelenumi}{\theenumi}
    \begin{minipage}{14cm}
    \item\label{Numbers and Basic Operations} …

    and then something like

    \begin{enumerate}
    \renewcommand{\theenumi}{\Roman{enumi}}
    \renewcommand{\labelenumi}{\theenumi}

    \begin{minipage}{13.11cm}
    \item\label{NatNum}…

    and then I later try to reference this, the reference to “Numbers and Basic Operations” comes out perfect but the reference to “NatNum” comes out “Ia” when I want it to come out just “I”.

    Any ideas?

    • tom

      Hi Adam,

      I can’t really reproduce your issue, it works for me. Here is the code, maybe it helps:

      \documentclass[12pt, letterpaper]{article}
      \begin{document}
      \begin{enumerate}
      \renewcommand{\theenumi}{\arabic{enumi}}
      \item\label{itm:numop} Numbers and Basic Operations
      \end{enumerate}
      and then something like
      \begin{enumerate}
      \renewcommand{\theenumi}{\Roman{enumi}}
      \item\label{itm:natnum} Test
      \end{enumerate}
      This is a reference to \ref{itm:numop} and \ref{itm:natnum}.
      \end{document}

      Have you tried deleting all meta-files that are generated when typesetting?
      Another thing that I would recommend is using relative values for the minipage width:

      \begin{minipage}{0.5\textwidth}

      Best, Tom.

  • Adam

    Hello Tom,

    Im using the enumerate command and noticed that the list has 1.5 line spacing between lines. How can I chance the justification to 1 line spacing?

    Thanks,
    Adam

  • Amber

    I would really like to do something like the following, but when I try to embed a 5th level, I get errors. Is there any way to change settings to allow this:

    \begin{enumerate}[label=(\Roman{*})]
    \item Example I
    \item Example II
    \begin{enumerate}[label=(\Alph{*})]
    \item Example II, A
    \item Example II, B
    \item Example II, C
    \begin{enumerate}[label=(\arabic{*})]
    \item Example II, C, 1
    \item Example II, C, 2
    \begin{enumerate}[label=(\alph{*})]
    \item Example II, C, 2, a
    \item Example II, C, 2, b
    \begin{enumerate}[label=(\roman{*})]
    \item Example II, C, 2, b, i
    \item Example II, C, 2, b, ii
    \end{enumerate}
    \end{enumerate}
    \item Example II, C, 3
    \end{enumerate}
    \end{enumerate}
    \item Example III
    \end{enumerate}

    Thanks for your helpful post

    • tom

      Hi Amber,

      You can either use an itemize-environment within if you are comfortable with having bullets instead of numerated items for one level. If not, the enumitem package provides commands that let you define a list with a custom depth. Make sure you have the latest version (version 3.0 or higher), as some stuff was only added recently.

      \usepackage{enumitem}
      \newlist{longenum}{enumerate}{5}
      \setlist[longenum,1]{label=\Roman*}
      \setlist[longenum,2]{label=\Alph*}
      \setlist[longenum,3]{label=\arabic*}
      \setlist[longenum,4]{label=\alph*}
      \setlist[longenum,5]{label=\roman*}

      Use this code in your preamble, remove the label definitions from your code and replace all enumerate-environments with longenum.
      Hope it helps, Tom.

  • Nicolai

    Hey Tom.
    I was wondering if you had an idea, how to use enumerate if I want to get the item to look like this:
    [1]
    [2]
    [3]
    etc.

    Thanks ahead.

    • tom

      Hi Nicolai,

      You can either do it the classic way:

      \renewcommand\theenumi{\arabic{enumi}}
      \renewcommand\labelenumi{[\theenumi]}

      Or using the enumitem-package:

      \usepackage{enumitem}
      ...
      \begin{enumerate}[label={[\arabic*]}]

      Best, Tom.

  • Mariam

    Hi how can ı write this rows with latex?
    ı mean how to enumerate
    thank you.

    There are two option :
    a) a maximum b) a minimum

    • tom

      Try this:

      \documentclass[11pt]{article}
      \usepackage{enumerate}
      \begin{document}
      \begin{enumerate}[a)]
      \item a maximum
      \item a minimum
      \end{enumerate}
      \end{document}

      Best, Tom.

  • Alison

    Hi Tom,

    How would I begin enumerating a later number than 1?

    e.g.

    3.
    4.
    5.

    Cheers.

  • Jesse

    I am trying to get a continuous list of examples throughout the document – i.e., all the examples are in sequence but with lots of text in between:


    (1) ___
    (2) ___
    ….

    ..
    .
    (3) ___
    (4) ___
    (5) ___

    Is this possible to do automatically? It seems so basic, but I can’t figure it out. Thanks.

    • tom

      Hi Jesse,

      I think what you are looking for is this. Hope it helps. Let me know if you have any questions. Tom.

    • Andreas

      I think you might be looking for the suspend/resume commands provided by the mdwlist package:

      \begin{enumerate}
      \item First item.
      \item Second item.
      \suspend{enumerate}
      Text in the middle of the list.
      \resume{enumerate}
      \item Third item.
      \end{enumerate}

  • ofer

    is there a possibility to reveres the order of enumerated list

    • tom

      I was a little surprised by your question, but there is indeed a package called etaremune (enumerate backwards). It’s usage is straight forward:

      \documentclass[11pt]{article}
      \usepackage{etaremune}
      \begin{document}
      \begin{etaremune}[start=5]
      \item Fifth item
      \item Fourth item
      \item Third item
      \end{etaremune}
      \end{document}

      You’ll have to typeset the document twice for the numbers to be correct. Also, there is another package that offers similar functionality, called revnum, but my distribution at least doesn’t come with it by default. So you would probably have to manually install it.

      You can find the package documentation here.

      Best, Tom.

  • Reverse enumerate or etaremune « LaTeX Matters

    [...] I stumbled across this package recently thanks to a comment by ofer. [...]

  • txinitomandarin

    I love the snowflakes

  • milemist

    Quick question: Is it possible to change the colour of the bullets in the itemize environment?

    I am using coloured headings, and it would look much better if I can add colour to bullet points and footnote lines, but for the time being, I’d be happy with bullets (or numbers).

    Thanks!

    • tom

      Hi there,

      Try this:

      \documentclass[11pt]{article}
      \usepackage{color}
      \begin{document}
      \renewcommand{\labelitemi}{${\color{red}\bullet}$}
      \begin{itemize}
      	\item first
      	\item second
      \end{itemize}
      \end{document}

      Cheers, Tom.

  • asd

    >Each of them provide four levels, which means you can have nested lists of up to four levels.
    And how do you create such levels?

    • tom

      Just nest the lists, e.g.:

      \begin{enumerate}
      	\item First item
      	\begin{enumerate}
      		\item First sub-item
      		\item ...
      	\end{enumerate}
      	\item Second item
      \end{enumerate}

      Best, Tom.

  • kala

    Hi, is it possible to put label to math equation in every item? e.g.
    i) x+y=z (1)
    ii) k-l=2 (2)

    • tom

      Hey Kala,

      Try the code below. I hope it’s roughly what you were looking for.

      \newcounter{eqncounter}
      \newcommand{\eqnlabel}{
      \addtocounter{eqncounter}{1}
      \roman{eqncounter})\;}
      \begin{equation}
      \eqnlabel x+y=z
      \end{equation}
      \begin{equation}
      \eqnlabel k-l=2
      \end{equation}
      

      Best, Tom.

  • Emilio.

    Hi Tom, I have used

    \renewcommand{\labelenumi}{(\roman{enumi})}
    \begin{enumerate}
    	\item First line
    	\item Second line
    \end{enumerate}

    but my problem is the format. I expect
    (i) First line
    (ii) Second line

    but instead I have

    (I) First line
    (II) Second line

    that is, capital romans, but they are smaller than the original ones.
    I am using Kile, in Ubuntu 11.04. Okular as my default pdf viewer.

    Do you know what is the possible problem?
    Greetings,
    Emilio

    • tom

      Hi Emilio,

      Thanks for the comment with the code example. From your description it seems as if you are using small capitals, e.g.:

      \renewcommand{\labelenumi}{(\sc\roman{enumi})}

      Would you mind providing a complete minimal example? It may be due to a package you are loading or some other code you use.

      Best, Tom.

      • asvhen

        That’s solution:
        \usepackage[spanish,es-lcroman]{babel}
        es-lcroman
        \roman (o “i”) pasa a minúsculas (recuérdese que en español esto es una falta de ortografía).

  • Mark

    Hi,

    I would like to use my own item labels \item[...], but I want the labels to flush left, rather than flush right, ie

    Main text:
    short label: blahblah….
    loooooooooong label: blahblah….

    rather than what seems to be the default,

    Main text:
    short label: blahblah….
    loooooooooong label: blahblah….

    Ooops, the webpage doesn’t like my formatting. In the second example, the colons align, and loooooooong label sticks into the margin

    Thanks, Mark

    • tom

      Hi Mark,

      Have a look at the examples below using the tabular and description environments. I’m sure, from there you’ll be able to adapt the examples to your needs. You may also find the enumitem documentation useful.
      Best, Tom.

      \documentclass[11pt]{article}
      \usepackage{enumitem}
      \usepackage{array}
      \begin{document}
      \subsubsection*{Tabular:}
      \begin{tabular}{>{\bf}ll}
      short label: &blahblah\\
      loooooooooong label: &blahblah\\
      \end{tabular}
      \vspace{1cm}
      \subsubsection*{Description flushleft:}
      \begin{description}[leftmargin=5cm, style=sameline, align=left]
      \item[short label: ]blahblah\\
      \item[loooooooooong label: ]blahblah\\
      \end{description}
      \end{document}
  • kokorins

    Hi, you might now how to add something like this:
    \begin{itemize}
    \item[step 1] Text
    \item[step 2] Text
    \end{itemize}
    But [step 1] [step 2] should be aligned to left, not to the center as it’s by default

    • tom

      Hello!

      There was a very similar question in the previous comment. Here is a minimal example:

      \documentclass[11pt]{article}
      \usepackage{showframe}
      \usepackage{enumitem}
      \begin{document}
      \begin{description}[style=multiline,leftmargin=3cm,font=\normalfont]
      \item[step 1] Text
      \item[step 2 blabla] Text is a very long text is a very long text is a very long text is a very long text
      \end{description}
      \end{document}

      If you don’t need your text to start from the same position, use the following line of code instead:

      \begin{description}[align=left, font=\normalfont]

      Best, Tom.

  • Shehab

    I wanted to use the following:

    \begin{description}
    \item[First] The first item
    \item[Second] The second item
    \item[Third] The third etc \ldots
    \end{description}

    My document starts like as follows:

    \documentclass{ws-jktr}
    \usepackage{subfig}
    \usepackage{textcomp}
    \usepackage{wrapfig}
    \newtheorem{thm}{Theorem}[section]
    \newtheorem{conj}[thm]{Conjecture}
    \newtheorem{defn}[thm]{Definition}
    \newtheorem{exmp}[thm]{Example}
    \newtheorem{prop}[thm]{Proposition}
    \begin{document}

    I am using TeXworks Version 0.2.3 (r.466) on Ubuntu.

    I am getting the following error.

    ! LaTeX Error: Environment description undefined.

    Please help.

    • tom

      Hi Shehab,

      Try using itemize, it seems the description environment is not available in this particular documentclass.

      \begin{itemize}
      	\item[\bf First] The first item
      	\item[\bf Second] The second item
      	\item[\bf Third] The third etc \ldots
      \end{itemize}
      

      Cheers, Tom.

  • Humberto

    Hi Tom,

    How I can enumerate chapters and sections (Ex. Chapter I, I.1) in Roman numbers, and figures, tables and equations in arabic numbers (Ex. Figure 2.1, Table 4.1, (5.1))?

    Thanks
    Humberto

    • tom

      Hi Humberto,

      Here is a minimal example. It works similarly for tables and equations.

      \documentclass[11pt]{report}
      \usepackage{blindtext}
      \renewcommand*{\thechapter}{\Roman{chapter}}
      \renewcommand*{\thesection}{\thechapter.\Roman{section}}
      \renewcommand*{\thefigure}{\arabic{chapter}.\arabic{figure}}
      \begin{document}
      \tableofcontents
      \listoffigures
      \blinddocument
      \begin{figure}[ht]
      \centering
      \rule{4cm}{3cm}
      \caption{Figure placeholder.}
      \end{figure}
      \end{document}

      Best, Tom

  • Kshatresh

    Hi Tom,
    How can I list my content such that second line of item starts with some space i.e after one two word of Ist line of item.

    Thanks in advance
    Kshatresh

    • tom

      Hi!

      Use itemindent of the enumitem package to create hanging indent in lists.

      \documentclass[11pt]{article}
      \usepackage{lipsum, enumitem}
      \begin{document}
      \begin{itemize}[itemindent=-2em]
      \item \lipsum[66]
      \item \lipsum[66]
      \end{itemize}
      \end{document}

      Best, Tom.

  • Colin

    I am having a problem where my enumerated list is running over my page width. I get the error: Overfull \hbox. Any ideas how to fix that?

    Thanks,
    Colin

    • tom

      Hi Colin,

      Unless you are using long words that are hard to hyphenate (e.g. hyperlinks), LaTeX will automatically line-breaks when the text reaches the margin. See my minimal working example below. Can you provide some code to illustrate the problem?

      Thanks, Tom.

      \documentclass[11pt]{article}
      \usepackage{blindtext}
      \begin{document}
      \begin{enumerate}
      \item \blindtext
      \item \blindtext
      \end{enumerate}
      \end{document}
      • Colin

        I think you were right and it just had to do with long words at the end of the sentence. I just added manual line breaks for the 2 words that caused the problems. Thanks for the reply.

      • tom

        Glad you found a solution that worked for you. Cheers, Tom.

  • Radoslav

    Hi guys, I have one question.. How can I insert in Latex an enumerator like this (*) to indicate my equation? And is there any way to insert a matrix (for example) and write a title “My matrix” below it.

    Best,
    Rado

    • tom

      Referencing equations can be done as shown in the code below. Concerning matrices in LaTeX, please see my answer to your other question.

      Cheers, Tom.

      \documentclass[11pt]{article}
      \begin{document}
      \begin{equation}
      	\label{eqn:pythagoras}
      	a^2+b^2=c^2
      \end{equation}
      Reference to \ref{eqn:pythagoras}.
      \end{document}
      
    • Radoslav

      And the other thing that I forgot to ask .. how to insert a text into the matrix..I want to get something like this:
      (text textfafaf)
      (text text )
      That is a matrix with 2 rows.

      • tom

        Hi Rado,

        You can use \textnormal{} in any math environment form normal text.

        Best, Tom.

        \documentclass[11pt]{article}
        \usepackage{amsmath}
        \begin{document}
        \[
         \begin{pmatrix}
          \textnormal{text} & \textnormal{text with space} \\
          \textnormal{text} & \textnormal{text} \\
          \end{pmatrix}
        \]
        \end{document}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 316 other followers