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}
    \begin{itemize}
        \item Primeiro item
        \item Segundo item
    \end{itemize}
\end{document}

Dá para aninhar listas, indo até o quarto nível:

\begin{itemize}
    \item Primeiro item
    \item Segundo item
        \begin{itemize}
            \item Primeiro subitem
            \item Segundo subitem
        \end{itemize}
    \item Terceiro item
\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:

\begin{enumerate}
    \item Primeiro item
    \item Segundo item
    \item Terceiro item
\end{enumerate}

Dá para aninhar listas nesse ambiente também:

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

Também dá para mesclar essa lista, feita com enumerate com a lista feita com itemize:

\begin{enumerate}
    \item Primeiro item
    \item Segundo item
        \begin{itemize}
            \item Primeiro subitem
            \item Segundo subitem
        \end{itemize}
    \item Terceiro item
\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
    ...
        \begin{itemize}
            \item[a] Primeiro subitem
            ...
        \end{itemize}
    ...
\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:

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

Ele tem um argumento opcional que especifica o nível das listas que serão afetadas (afeta todas se não for especificado) e um argumento obrigatório com 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. Essa opção muda o marcador da lista. No caso, foi definido que o marcador seria uma letra maiúscula do alfabeto usando o comando \Alph. Eu poderia usar outros comandos:

  • \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. Exemplos:

\setlist[1]{label=\Alph*, font=\bfseries}
\setlist[1]{label=\Alph*, font=\sffamily\bfseries}

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

Outra opção que pode ser usada é a nolistsep. Ela retira o espaço vertical que é dado no início e no final da lista.

Note que as alterações estão sendo aplicadas ao primeiro nível da lista por conta do argumento opcional passado ao comando \setlist, que especifica isso. Porém, é possível retirar esse nível e aí ele vai ser aplicado a todos os níveis. Quando há listas não-ordenadas, é necessário remover a opção label, porque não dá pra colocar uma label que é específica para listas ordenadas em listas não-ordenadas.

Uma alternativa para esse problema é usar o comando \setitemize, que tem o funcionamento do \setlist, mas é específico para listas não-ordenadas. Também há o \setenumerate, que também tem o mesmo funcionamento do \setlist, mas é específico para listas ordenadas.

Listas de definição

Existem também as listas de definição. Elas 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[Termo 1] Definição 1
    \item[Termo 2] Definição 2
\end{description}