Listas

  1. Listas não-ordenadas
  2. Listas ordenadas
  3. Substituindo o marcador do item
  4. Personalizando as listas
  5. Listas de definição

Listas não-ordenadas

Listas criadas com o ambiente itemize são aquelas listas que tem símbolos e a ordem dos itens não importa. Exemplo de documento com essa lista:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazilian]{babel}

\begin{document}
  \section{Países da América do Norte}
    \begin{itemize}
      \item México
      \item Estados Unidos
      \item Canadá
    \end{itemize}
\end{document}

Observe como a ordem não importa nesse caso. Por isso, foi usada uma lista não-ordenada.

Dá para aninhar listas, indo até o quarto nível, se necessário. A lista abaixo usa dois níveis:

\section{Américas e seus países}
  \begin{itemize}
    \item América do Sul
      \begin{itemize}
        \item Brasil
        \item Argentina
        \item Chile
        \item Uruguai
        \item Paraguai
        \item Venezuela
        \item Colômbia
        \item etc...
      \end{itemize}
    \item América Central
      \begin{itemize}
        \item Jamaica
        \item Cuba
        \item Haiti
        \item Costa Rica
        \item etc...
      \end{itemize}
    \item América do Norte
      \begin{itemize}
        \item México
        \item Estados Unidos
        \item Canadá
      \end{itemize}
  \end{itemize}

Veja que, a cada nível, o símbolo usado para marcar os itens muda:

Documento de LaTeX que mostra uma lista não-ordenada com dois níveis

Listas ordenadas

Listas ordenadas, também chamadas de listas enumeradas, são aquelas listas onde a ordem importa. Elas são criadas com o ambiente enumerate:

\section{Maiores países do mundo em extensão}

  \begin{enumerate}
    \item Rússia
    \item Canadá
    \item Estados Unidos
    \item China
    \item Brasil
  \end{enumerate}

Dá para aninhar listas nesse ambiente também:

\section{Artilharia}

  \begin{enumerate}
    \item Time A (45 gols)
      \begin{enumerate}
        \item Lucas - 10 gols
        \item Pedro - 8 gols
        \item Carlinhos - 7 gols
      \end{enumerate}
    \item Time B (40 gols)
      \begin{enumerate}
        \item Diego - 10 gols
        \item Gabriel - 8 gols
        \item Müller - 7 gols
      \end{enumerate}
    \item Time C (33 gols)
      \begin{enumerate}
        \item Márcio - 10 gols
        \item Marcos - 8 gols
        \item Paulinho - 7 gols
      \end{enumerate}
  \end{enumerate}

Também dá para mesclar uma lista feita com enumerate com uma feita com itemize, e vice-versa:

\section{Países com maior PIB per capita}

  \begin{enumerate}
    \item Luxemburgo (US\$ 113.196)
      \begin{itemize}
        \item População: 602.005
        \item Capital: Luxemburgo
      \end{itemize}
    \item Suíça (US\$ 83.716)
      \begin{itemize}
        \item População: 8.570.146
        \item Capital: Berna
      \end{itemize}
    \item Noruega (US\$ 77.975)
      \begin{itemize}
        \item População: 5.391.369
        \item Capital: Oslo
      \end{itemize}
    \item etc...
  \end{enumerate}

Substituindo o marcador do item

O comando \item tem um argumento opcional, que é o marcador que será impresso no item. Usá-lo substitui o marcador padrão do LaTeX pelo marcador especificado:

\begin{enumerate}
  \item[x] Primeiro item
  \item Segundo item
    \begin{itemize}
      \item[a] Primeiro subitem
      \item Segundo subitem
    \end{itemize}
  \item Terceiro item
\end{enumerate}

Personalizando as listas

Apesar de ser possível substituir o marcador de apenas um item, o mais comum é substituir o marcador de uma lista inteira. Ficar substituindo item por item é tedioso e dificulta a manutenção do documento.

Para fazer substituições para a lista inteira, é só usar o pacote enumitem. Com esse pacote, é possível configurar listas ordenadas e não ordenadas. Serão usados três comandos para configurar as listas.

O primeiro comando é o \setlist. Ele influencia todos os tipos de lista. Coloque esse comando no final do preâmbulo:

\usepackage{enumitem}
\setlist[1]{label=\Alph*}

O argumento opcional especifica o nível das listas que serão afetadas (afeta todas se não for especificado). O argumento obrigatório é uma lista de opções separadas por vírgula no estilo chave=valor. Muitas opções são suportadas. Algumas delas serão explicadas. Nem todas exigem um valor.

No exemplo, foi usada apenas a opção label, que muda o marcador da lista. No caso, foi definido que o marcador seria uma letra maiúscula do alfabeto usando o comando \Alph. Há outros comandos também:

Comando Descrição
\alph Letras minúsculas
\arabic Números decimais
\roman Números romanos minúsculos
\Roman Números romanos maiúsculos

Outra opção que pode ser usada no \setlist é a font, que simplesmente modifica a fonte do marcador:

\setlist[1]{label=\Alph*, font=\bfseries} % deixa a fonte em negrito
\setlist[1]{label=\Alph*, font=\sffamily\bfseries} % deixa a fonte em negrito e sem serifa

Também há a opção noitemsep. Ela retira o espaço vertical entre os itens da lista:

\setlist[1]{label=\Alph*, noitemsep}

A opção nolistsep remove o espaço vertical que é dado no início e no final da lista:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazilian]{babel}
\usepackage{enumitem}
\usepackage{lipsum}
\setlist[1]{label=\Alph*, nolistsep} % remove o espaço antes e depois das listas

\begin{document}
	\lipsum[1]
	\begin{enumerate}
		\item Primeiro item
		\item Segundo item
		\begin{itemize}
			\item Primeiro subitem
			\item Segundo subitem
		\end{itemize}
		\item Terceiro item
	\end{enumerate}
	\lipsum[1]
\end{document}

A opção label não pode ser aplicada a listas não-ordenadas se ela definir um marcador que só pode ser usado em listas ordenadas. Compilar a marcação abaixo resulta em erros por conta disso.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazilian]{babel}
\usepackage{enumitem}
\setlist{label=\Alph*} % Esse marcador só pode ser usado em listas ordenadas

\begin{document}
  \begin{enumerate}
    \item Primeiro item
    \item Segundo item
      \begin{itemize}
        \item Primeiro subitem
        \item Segundo subitem
      \end{itemize}
    \item Terceiro item
  \end{enumerate}
\end{document}

Uma alternativa para esse problema é usar o comando \setenumerate, que tem o funcionamento do \setlist, mas é específico para listas ordenadas:

\setenumerate{label=\Alph*, noitemsep}

Também há o \setitemize, que é específico para listas ordenadas:

\setitemize{noitemsep}

Listas de definição

Essas listas são bem simples. Cada item contém um termo e a definição dele. O termo é um argumento opcional de cada item. Esse tipo de lista é criado com o ambiente description:

\begin{description}
  \item[Reiterar] Dizer ou fazer de novo; repetir; iterar.
  \item[Termo 2] Carne salgada e seca ao sol.
\end{description}