O livro de Lamport lista vários parâmetros para o layout de listas (coisas como \topsep
,
\itemsep
e \parsep
), mas falha ao não mencionar que eles são definidos automaticamente dentro das listas padrão (definidas pelo LaTeX). Isso acontece porque cada lista executa um comando \@list
‹depth› (a profundidade aparecendo como um numeral romano em letra minúscula); além disso, o
\@listi
do primeiro nível geralmente é redefinido quando o tamanho da fonte é alterado. Consequentemente, fica bem complicado para o usuário controlar o espaçamento em listas. Com certeza, a solução verdadeira é usar uma classe de documento projetada com um espaçamento de lista mais modesto, mas todos nós sabemos que essas coisas são difíceis de encontrar. A classe memoir não fornece listas mais compactas, mas oferece ao usuário controle sobre o espaçamento de lista usando \firmlist
e \tightlist
(e as versões com *deles); veja a seção 8.6 do manual de memoir.
Existem pacotes que fornecem algum controle do espaçamento de listas, mas eles raramente abordam a separação da lista em relação ao texto adjacente (definido por
\topsep
). O pacote expdlist , entre seus muitos controles da aparência de listas de description
, oferece um parâmetro de compactação (veja a documentação); o pacote mdwlist
oferece um comando \makecompactlist
para as definições de lista próprias dos usuários, e o utiliza para definir listas compactas dos tipos
itemize*
, enumerate*
and
description*
. Na verdade, você pode escrever listas tais como definidas por esses comandos de forma bem direta — por exemplo:
O pacote paralist fornece vários métodos para compactação de listas:\newenvironment{itemize*}% {\begin{itemize}% \setlength{\itemsep}{0pt}% \setlength{\parskip}{0pt}}% {\end{itemize}}
asparaenum
formata cada item como se fosse um parágrafo iniciado pelo rótulo de enumeração (o que economiza espaço se os textos dos itens forem longos);
compactenum
é o mesmo tipo de lista compacta que é fornecida em expdlist e
mdwlist; e
inparaenum
produz uma lista “no parágrafo”, ou seja, sem quebra de linha entre os itens, o que é uma grande economia de espaço se os textos dos itens da lista forem curtos.
enumerate
, assim como faz o pacote
enumerate.
O Paralist também fornece equivalentes ao itemize
(asparaitem
, etc.), e equivalentes ao description
(asparadesc
, etc.).
O pacote multenum oferece uma forma mais regular do inparaenum
do
paralist; você define uma grade nocional na qual as entradas da lista devem aparecer, e os itens da lista sempre aparecerão nas posições dessa grade. O efeito é semelhante ao das teclas de ‘tabulação’ de máquinas de escrever tradicionais; o pacote foi desenvolvido para páginas de exemplos ou listas de respostas nos apêndices de um livro.
Os pacotes expdlist, mdwlist e paralist oferecem outros recursos para configuração de lista: você não deve tentar as abordagens do tipo “faça você mesmo” descritas abaixo se for precisar de um dos pacotes para algum outro propósito de configuração de lista.
Para máxima flexibilidade (incluindo manipulação do \topsep
), o pacote
enumitem permite o ajuste de parâmetros de lista usando um formato tipo “chave=‹valor›”. Por exemplo, pode-se escrever
para suprimir todo o espaçamento acima e abaixo da sua lista, ou\usepackage{enumitem} ... \begin{enumerate}[topsep=0pt, partopsep=0pt] \item ... \item ... \end{enumerate}
para definir o espaçamento entre itens e entre parágrafos dentro de itens. O Enumitem também permite a manipulação do formato de rótulo de uma forma mais “básica” (e, portanto, mais flexível) do que o pacote enumerate.\usepackage{enumitem} ... \begin{enumerate}[itemsep=2pt,parsep=2pt] \item ... \item ... \end{enumerate}
O máximo em compactação (de todo tipo) é oferecido pelo pacote savetrees, incluindo compactação de listas. O objetivo principal do pacote é economizar espaço a cada oportunidade: não o utilize se você estiver sob qualquer restrição de design!
This answer last edited: 2012-10-30
This question on the Web: http://latex.net.br/faq/FAQ-complist.html
Do you have any question? Ask on: latex.net.br - we love qood questions!