\ begin {itemize} [終了]の前のスペースを削除します


101

ラテックスで、アイテム化する前に挿入されたスペースを削除するにはどうすればよいですか?

\begin{itemize} % produces lots of vertical space
\item ...
\item ...
\end{itemize}

6
TeX-LaTeXの方が適しているため、この質問はトピック外として締めくくります。
ヴェルナー


tex.stackexchange.com/q/86054/157031にこの質問に対する正しい答えがあります。(PatrickTによって共有されたリンクも有効です)
Cyriac Antony

回答:


64

項目化する\vspace{-5mm}前に試してください。


106
\ vspaceは破滅への道です。あなたはLaTeXと戦うのではなく、それを受け入れるべきです。
エリック、

26
はい、しかし時々戦いは対処するには多すぎる。
Stefano Borini、

30
あなたは抱擁を処理するには多すぎて、戦いが簡単であることを意味します:-)
ヨアヒム・ブライトナー

1
これは\ vspace {-3.5mm}である必要があります。
Jason

10
@ジェイソンとすべて:以下のパオロの答えもシンプルではるかに優れています:\ vspace {-\ topsep}
Joce

114

この種の問題を修正する方法は、関連するリスト環境を再定義することです。enumitemパッケージには、この種のものを行うには私のお気に入りの方法です。すべてのリストに対して、または各リストに対して個別に変更できる多くのオプションとパラメーターがあります。

これが私があなたが望むと思うもの(のようなもの)を行う方法です:

\ usepackage {enumitem}
\ setlist {nolistsep}

または

\ usepackage {enumitem}
\ setlist {nosep}

2
完璧です。[Stefano Borini]の答えと同じくらい簡単ですが、このソリューションはネストされたリストがある場合でも機能します。ありがとうございました。
devsnd

27
オプションを[topsep = 0px、partopsep = 0px]に設定しても、リストが表示される前の垂直スペース-したがって、この答えは機能しません。
ロバート

2
@ロバート、負の数を使ってみませんか?これは私にとっては\begin{enumerate}[topsep=-5px,partopsep=0px] ...
うまくいき

@Robert:enumitem docsによると、リストの前後の垂直方向のスペースはによって与えられるため、の正の値を補正するには、\parsep + \topsep [+ \partopsep]を設定する\topsep\partopsep、負の数に設定する必要があり\parsepます。
バル

44

\vspace{-\topsep}前に使用し\begin{itemize}ます。

\setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}後に使用し\begin{itemize}ます。

また、リストの後のスペースには、\vspace{-\topsep}afterを使用し\end{itemize}ます。

\vspace{-\topsep}
\begin{itemize}
  \setlength{\parskip}{0pt}
  \setlength{\itemsep}{0pt plus 1pt}
  \item ...
  \item ...
\end{itemize}
\vspace{-\topsep}

5
いいね!残念ながらenumitemはBeamerと互換性がないため、パッケージに依存しないメソッドが好きです。topsep私にはあまりにも攻撃的だったので、\ vspace {-0.5 \ topsep} `を使用しました
craq

14

これを達成するための最もクリーンな方法は、enumitemパッケージ(https://ctan.org/pkg/enumitem)を使用することです。例えば、

ここに画像の説明を入力してください

\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}

さらに、この設定をリスト全体でグローバルに使用したい場合は、

\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\setlist[itemize]{noitemsep, topsep=0pt}

ただし、このパッケージは、Latexでプレゼンテーションを行うために使用されるBeamerパッケージとはうまく機能しないことに注意してください。


他の場所で述べられた(そして修正された)ように、enumitemの最近のバージョンには[nosep]オプションが含まれています。これは、リストの上下およびアイテム間のスペースを削除するように設計されています...ただし、 parskipパッケージ。HerbertVoßがこの解決策をcttに投稿しました— \ setlist {partopsep =-\ parskip、parsep = 0pt}
Peter Flynn

13

それを行う「適切な」LaTeXの方法は、必要な間隔を指定できるパッケージを使用することです。そのようなパッケージがいくつかあり、これらの2つのページはそれらのリストにリンクしています...


4
CTAN(ctan.org)を指すことは決して悪い考えではありません。
dmckee ---元モデレーターの子猫

20
ただし、latexで何かを行うには「適切な」方法があると主張することは一般に悪い考えです;)
チェシャーコウ2012

7

私はパラリストパッケージにとても満足しています。スペースを削除するオプションを追加するだけでなく、itemizeのコンパクトバージョン、列挙、環境の説明など、その他の便利な機能も追加します。


1
具体的には、Fabianはasparaitem、asparaenum、asparadesc、および他のCompactittem、Compactenum、Compactdescなどを指します。asparaはまだ新しい段落を作成します。私がそうであるように、前の段落のない表にそれらを置く場合、これはまだ少し厄介ですが、これを修正するためにそれほど醜くないハックがあると思います。
Thomas Levine 2012年

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}

2
これにより、リスト周辺の多くの空白が削減されますが、リストのすぐ上とすぐ下の空白の一部は削除されません。
jevon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.