Octree LogoOctree

LaTeX Lists

Lists are fundamental for organizing information in documents. LaTeX provides three core list environments – itemize for bulleted lists,enumerate for numbered lists, and description for definition-style lists – along with powerful packages for customization.

Unordered Lists (itemize)

The itemize environment creates a bulleted (unordered) list. Each entry begins with the \item command:

\begin{itemize}
  \item First item
  \item Second item
  \item Third item
\end{itemize}

By default, LaTeX uses a solid bullet (\\textbullet) for first-level items. You can add as many \item entries as you need.

Itemize with Custom Markers

Override the default bullet for a single item by placing the desired symbol in square brackets:

\begin{itemize}
  \item Default bullet
  \item[-] Dash marker
  \item[*] Asterisk marker
  \item[$\diamond$] Diamond marker
\end{itemize}

Ordered Lists (enumerate)

The enumerate environment produces a numbered (ordered) list. LaTeX automatically handles the numbering:

\begin{enumerate}
  \item First step
  \item Second step
  \item Third step
\end{enumerate}

The default numbering style is Arabic numerals (1, 2, 3, ...) at the first level, lowercase letters (a, b, c, ...) at the second, Roman numerals (i, ii, iii, ...) at the third, and uppercase letters (A, B, C, ...) at the fourth.

Description Lists

A description list highlights a term followed by its explanation. Use \item[Term] to set the label:

\begin{description}
  \item[LaTeX] A document preparation system for high-quality typesetting.
  \item[TikZ] A package for creating graphics programmatically.
  \item[BibTeX] A tool for managing bibliographic references.
\end{description}

The term inside the brackets is rendered in bold by default, making description lists ideal for glossaries, feature lists, and FAQs.

Nested Lists

LaTeX supports nesting lists up to four levels deep. You can mix different list types freely:

Nested Itemize

\begin{itemize}
  \item Fruits
    \begin{itemize}
      \item Apples
      \item Bananas
        \begin{itemize}
          \item Cavendish
          \item Plantain
        \end{itemize}
    \end{itemize}
  \item Vegetables
\end{itemize}

Each nesting level automatically uses a different bullet symbol:\\textbullet, \\textendash,\\textasteriskcentered, and \\textperiodcentered.

Mixed Nesting (Itemize inside Enumerate)

\begin{enumerate}
  \item Prepare the ingredients
    \begin{itemize}
      \item 200g flour
      \item 100ml milk
      \item 2 eggs
    \end{itemize}
  \item Mix everything together
  \item Bake at 180\textdegree C for 25 minutes
\end{enumerate}

Enumerate inside Itemize

\begin{itemize}
  \item Morning routine
    \begin{enumerate}
      \item Wake up
      \item Exercise
      \item Breakfast
    \end{enumerate}
  \item Evening routine
    \begin{enumerate}
      \item Dinner
      \item Read
      \item Sleep
    \end{enumerate}
\end{itemize}

Customizing Bullet Styles

You can change bullet symbols on a per-item basis or globally for each nesting level.

Per-Item Symbols

\begin{itemize}
  \item[$\bullet$] Bullet
  \item[$\circ$] Circle
  \item[$\star$] Star
  \item[$\rightarrow$] Arrow
  \item[$\checkmark$] Checkmark
\end{itemize}

Global Defaults with renewcommand

Place these commands in your preamble to change the default markers for all itemize lists throughout the document:

% Change first-level bullet to a dash
\renewcommand{\labelitemi}{--}

% Change second-level bullet to a circle
\renewcommand{\labelitemii}{$\circ$}

% Change third-level bullet to a star
\renewcommand{\labelitemiii}{$\star$}

% Change fourth-level bullet to a diamond
\renewcommand{\labelitemiv}{$\diamond$}

The commands \labelitemi through \labelitemivcorrespond to nesting levels 1 through 4 respectively.

Customizing Numbering

The enumerate package (or the more powerful enumitempackage) lets you specify the label format for numbered lists.

Using the enumitem Package

\usepackage{enumitem}

% Lowercase letters in parentheses: (a), (b), (c)
\begin{enumerate}[label=(\alph*)]
  \item First item
  \item Second item
  \item Third item
\end{enumerate}

% Lowercase Roman numerals: (i), (ii), (iii)
\begin{enumerate}[label=(\roman*)]
  \item First item
  \item Second item
  \item Third item
\end{enumerate}

% Custom prefix: Step 1:, Step 2:, Step 3:
\begin{enumerate}[label=Step \arabic*:]
  \item Gather materials
  \item Assemble components
  \item Test the result
\end{enumerate}

% Uppercase letters: A., B., C.
\begin{enumerate}[label=\Alph*.]
  \item Section one
  \item Section two
  \item Section three
\end{enumerate}

Label Format Tokens

TokenOutputExample
\arabic*1, 2, 3label=\arabic*.
\alph*a, b, clabel=(\alph*)
\Alph*A, B, Clabel=\Alph*)
\roman*i, ii, iiilabel=\roman*.
\Roman*I, II, IIIlabel=\Roman*.

Compact Lists

By default, LaTeX adds vertical spacing between list items. The enumitempackage provides options to remove or reduce this spacing for tighter lists.

Using nosep

The nosep option removes all extra vertical spacing (before, after, and between items):

\usepackage{enumitem}

\begin{itemize}[nosep]
  \item First item
  \item Second item
  \item Third item
\end{itemize}

Using noitemsep

The noitemsep option removes spacing between items but preserves spacing before and after the list:

\begin{enumerate}[noitemsep]
  \item Step one
  \item Step two
  \item Step three
\end{enumerate}

Custom Spacing

For fine-grained control, set specific spacing values:

\begin{itemize}[
  topsep=4pt,        % Space above/below the list
  itemsep=2pt,       % Space between items
  parsep=0pt,        % Space between paragraphs within an item
  partopsep=0pt,     % Extra space added at top if list starts a paragraph
  leftmargin=1.5em   % Left indent
]
  \item First item
  \item Second item
  \item Third item
\end{itemize}

Inline Lists

The enumitem package provides starred versions of list environments that render items inline (within the running text), perfect for short sequences:

\usepackage[inline]{enumitem}

The primary colors are
\begin{enumerate*}[label=(\arabic*)]
  \item red,
  \item blue, and
  \item yellow.
\end{enumerate*}

The requirements are:
\begin{itemize*}[label=\textbullet]
  \item a compiler,
  \item a text editor, and
  \item a PDF viewer.
\end{itemize*}

Load enumitem with the [inline] option to enable the enumerate* and itemize* environments.

Multi-Column Lists

Combine the multicol package with list environments to display items in multiple columns, saving space for long lists:

\usepackage{multicol}

\begin{multicols}{2}
\begin{itemize}[nosep]
  \item Alpha
  \item Beta
  \item Gamma
  \item Delta
  \item Epsilon
  \item Zeta
\end{itemize}
\end{multicols}

You can also use the multicols environment with enumeratefor numbered multi-column lists:

\begin{multicols}{3}
\begin{enumerate}[nosep]
  \item Item 1
  \item Item 2
  \item Item 3
  \item Item 4
  \item Item 5
  \item Item 6
  \item Item 7
  \item Item 8
  \item Item 9
\end{enumerate}
\end{multicols}

Quick Reference Table

EnvironmentPurposeDefault Style
itemizeUnordered (bulleted) listBullet symbols that vary by nesting level
enumerateOrdered (numbered) list1, 2, 3 at level 1; a, b, c at level 2
descriptionDefinition / term listBold label followed by description text
enumerate*Inline numbered listItems rendered within running text
itemize*Inline bulleted listItems rendered within running text

Common Packages

PackagePrimary Use
enumitemCustomise labels, spacing, and create inline lists. The most versatile list package.
paralistProvides compact and inline list environments (compactitem, inparaenum).
tasksCreate horizontally distributed "task" lists, ideal for exercise sheets and exams.
multicolRender any list in multiple columns for space-efficient layouts.

Next Steps

Free LaTeX Tools

Write LaTeX lists faster with AI

Octree's AI editor helps you generate and format LaTeX lists, nested structures, and custom numbering – so you can focus on your content instead of syntax.

Try Octree Free →