Documentation/Basic Formatting/Advanced Lists: Nested, Custom, and Description Lists in LaTeX
Basic Formatting

Advanced Lists: Nested, Custom, and Description Lists in LaTeX

LaTeX supports three built-in list environments: itemize (bullets), enumerate (numbers), and description (term–definition pairs). With the enumitem package you can fully customize their appearance.

Nested Lists

Place one list inside another—LaTeX automatically changes the bullet or numbering style at each level (up to 4 levels deep):

\begin{itemize}
  \item Fruits
    \begin{itemize}
      \item Apples
      \item Oranges
        \begin{itemize}
          \item Blood orange
          \item Navel orange
        \end{itemize}
    \end{itemize}
  \item Vegetables
\end{itemize}
Output: A multi-level bullet list with different bullet styles at each indentation level.

Description Lists

Use the description environment for glossaries, definitions, or key–value style lists:

\begin{description}
  \item[LaTeX] A document preparation system for typesetting.
  \item[BibTeX] A tool for formatting bibliographies.
  \item[TikZ] A package for creating vector graphics.
\end{description}
Output: Each term appears in bold followed by its description on the same line.

Custom Bullets with enumitem

The enumitem package lets you change labels, spacing, and formatting:

\usepackage{enumitem}

% Custom bullet symbol
\begin{itemize}[label=\textbullet]
  \item Default bullet
\end{itemize}

\begin{itemize}[label={--}]
  \item Dash bullet
\end{itemize}

% Custom numbering
\begin{enumerate}[label=\roman*)]
  \item First  % i)
  \item Second % ii)
\end{enumerate}

\begin{enumerate}[label=Step \arabic*:]
  \item Do this  % Step 1:
  \item Do that  % Step 2:
\end{enumerate}
Output: Lists with dashes, Roman numerals, and custom prefixes like 'Step 1:'.

Inline Lists

Use enumitem's inline option to create horizontal lists inside a paragraph:

\usepackage[inline]{enumitem}

The primary colors are
\begin{enumerate*}[label=\textbf{(\alph*)}]
  \item red,
  \item blue, and
  \item yellow.
\end{enumerate*}
Output: The primary colors are (a) red, (b) blue, and (c) yellow.

💡 Tips

  • Use \setlist{nosep} to remove extra spacing between all list items globally
  • Combine enumerate and itemize nesting freely—LaTeX handles it
  • enumitem's resume option continues numbering across separate enumerate blocks
  • For checklists, use label={$\square$} or the pifont package for special symbols

Try This in Bibby AI

Write LaTeX faster with AI auto-complete and instant compilation.

Start Writing Free

Related Tutorials

Advanced Lists: Nested, Custom, and Description Lists in LaTeX | Bibby AI | Bibby AI