\ vspace é o caminho para a ruína. Você não deve lutar contra o LaTeX, mas sim abraçá-lo.
Eric
26
sim, mas às vezes a luta é demais para suportar.
Stefano Borini
30
Quer dizer que o abraço é demais para aguentar e a luta é mais fácil :-)
Joachim Breitner
1
Deve ser \ vspace {-3,5 mm} .
Jason
10
@Jason e tudo: a resposta de Paolo abaixo também é simples e muito melhor: \ vspace {- \ topsep}
Joce
114
A maneira de corrigir esse tipo de problema é redefinir o ambiente de lista relevante. O enumitempacote é minha maneira favorita de fazer esse tipo de coisa; ele tem muitas opções e parâmetros que podem ser variados, seja para todas as listas ou para cada lista individualmente.
Veja como fazer (algo como) o que acho que você quer:
Perfeito. Tão fácil quanto a resposta de [Stefano Borini], mas essa solução funciona mesmo se houver listas aninhadas. Obrigado.
devsnd
27
Mesmo se eu definir as opções para [topsep = 0px, partopsep = 0px], o espaço vertical antes da lista ainda está lá - portanto, IMHO, esta resposta não funciona.
Robert
2
@Robert, por que não usar um número negativo? Isso funciona para mim: \begin{enumerate}[topsep=-5px,partopsep=0px] ...
zkurtz
@Robert: De acordo com os documentos enumitem, o espaço vertical antes e depois de uma lista é fornecido por \parsep + \topsep [+ \partopsep], então você deve definir \topsepou \partopsepcomo um número negativo para compensar qualquer valor positivo de \parsep.
balu
44
Use \vspace{-\topsep}antes \begin{itemize}.
Use \setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}depois \begin{itemize}.
E para o espaço após a lista, use \vspace{-\topsep}depois \end{itemize}.
\vspace{-\topsep}\begin{itemize}\setlength{\parskip}{0pt}\setlength{\itemsep}{0pt plus 1pt}\item ...\item ...\end{itemize}\vspace{-\topsep}
Agradável! Infelizmente, enumitem é incompatível com o beamer, então gosto de métodos independentes de pacote. topsepera muito agressivo para mim, então optei por \ vspace {-0.5 \ topsep} `
\documentclass{article}\usepackage{enumitem}% http://ctan.org/pkg/enumitem\begin{document}\noindent Here is some text and I want to make sure
there is no spacing the different items. \begin{itemize}[noitemsep]\item Item 1\item Item 2\item Item 3\end{itemize}\noindent Here is some text and I want to make sure
there is no spacing between this line and the item
list below it.\begin{itemize}[noitemsep,topsep=0pt]\item Item 1\item Item 2\item Item 3\end{itemize}\end{document}
Além disso, se você quiser usar essa configuração globalmente nas listas, você pode usar
Conforme observado (e corrigido) em outro lugar, as versões recentes de enumitem incluem uma opção [nosep] que é projetada para remover espaço acima e abaixo da lista, bem como entre os itens ... mas não faz isso se você também estiver usando o pacote parskip. Herbert Voß postou uma solução para isso em ctt - \ setlist {partopsep = - \ parskip, parsep = 0pt}
Peter Flynn
13
A maneira "apropriada" do LaTeX de fazer isso é usar um pacote que permite que você especifique o espaçamento que deseja. Existem vários desses pacotes, e essas duas páginas possuem links para listas deles ...
Nunca é uma má ideia apontar para CTAN ( ctan.org ).
dmckee --- ex-moderador gatinho
20
No entanto, geralmente é uma má idéia afirmar que existe uma maneira "adequada" de fazer qualquer coisa no látex;).
cheshirekow
7
Estou muito feliz com o pacote do paralista . Além de adicionar a opção de eliminar o espaço, ele também adiciona outras coisas interessantes, como versões compactas de itens, enumerar e descrever ambientes.
Especificamente, Fabian está se referindo a asparaitem, asparaenum e asparadesc e a outras coisas como compactittem, compactenum e compactdesc. aspara cria um novo parágrafo ainda. Isso ainda é um pouco irritante se você os colocar em uma tabela sem um parágrafo anterior, como eu, mas suspeito que haja um hack menos feio para consertar isso.
Thomas Levine
6
\renewcommand{\@listI}{%\leftmargin=25pt\rightmargin=0pt\labelsep=5pt\labelwidth=20pt\itemindent=0pt\listparindent=0pt\topsep=0pt plus 2pt minus 4pt\partopsep=0pt plus 1pt minus 1pt\parsep=0pt plus 1pt\itemsep=\parsep}
Respostas:
Experimente
\vspace{-5mm}
antes de detalhar.fonte
A maneira de corrigir esse tipo de problema é redefinir o ambiente de lista relevante. O
enumitem
pacote é minha maneira favorita de fazer esse tipo de coisa; ele tem muitas opções e parâmetros que podem ser variados, seja para todas as listas ou para cada lista individualmente.Veja como fazer (algo como) o que acho que você quer:
ou
fonte
\begin{enumerate}[topsep=-5px,partopsep=0px] ...
\parsep + \topsep [+ \partopsep]
, então você deve definir\topsep
ou\partopsep
como um número negativo para compensar qualquer valor positivo de\parsep
.Use
\vspace{-\topsep}
antes\begin{itemize}
.Use
\setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}
depois\begin{itemize}
.E para o espaço após a lista, use
\vspace{-\topsep}
depois\end{itemize}
.fonte
topsep
era muito agressivo para mim, então optei por \ vspace {-0.5 \ topsep} `A maneira mais limpa de fazer isso é usar o pacote enumitem ( https://ctan.org/pkg/enumitem ). Por exemplo,
Além disso, se você quiser usar essa configuração globalmente nas listas, você pode usar
No entanto, observe que este pacote não funciona bem com o pacote beamer que é usado para fazer apresentações em Latex.
fonte
A maneira "apropriada" do LaTeX de fazer isso é usar um pacote que permite que você especifique o espaçamento que deseja. Existem vários desses pacotes, e essas duas páginas possuem links para listas deles ...
fonte
Estou muito feliz com o pacote do paralista . Além de adicionar a opção de eliminar o espaço, ele também adiciona outras coisas interessantes, como versões compactas de itens, enumerar e descrever ambientes.
fonte
fonte