\ begin {itemize} [닫힘] 전에 공백 제거


101

Latex에서 항목 화하기 전에 삽입 된 공간을 어떻게 제거합니까?

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

6
나는이 질문이 TeX-LaTeX 에 더 적합하기 때문에 주제를 벗어난 것으로 종결하기로 투표하고 있습니다.
Werner


tex.stackexchange.com/q/86054/157031 에이 질문에 대한 정답이 있습니다. (링크 PatrickT 공유 지점에 있습니다)
Cyriac 안토니

답변:


64

\vspace{-5mm}항목 화하기 전에 시도하십시오 .


106
\ vspace는 파멸의 길입니다. LaTeX와 싸우지 말고 포용해야합니다.
Eric

26
예,하지만 때로는 싸움이 너무 많아서 감당할 수 없습니다.
Stefano Borini

30
당신은 포옹이 핸들에 너무 많은 의미, 그리고 싸움은 :-) 쉽게
요아킴 Breitner

1
\ vspace {-3.5mm} 여야합니다 .
제이슨

10
@Jason과 모두 : 아래 Paolo의 대답은 너무 간단하고 훨씬 좋습니다. \ vspace {-\ topsep}
Joce

114

이러한 종류의 문제를 해결하는 방법은 관련 목록 환경을 재정의하는 것입니다. enumitem패키지는 이런 종류의 작업을 수행하는 나의 마음에 드는 방법입니다; 모든 목록 또는 각 목록에 대해 개별적으로 변경할 수있는 많은 옵션과 매개 변수가 있습니다.

내가 원하는 것을 수행하는 방법은 다음과 같습니다.

\ usepackage {enumitem}
\ setlist {nolistsep}

또는

\ usepackage {enumitem}
\ setlist {nosep}

2
완전한. 그냥 [스테파노 Borini]의 대답은 쉽게로, 하지만 이 솔루션은 중첩 된 목록이있는 경우에도 작동합니다. 감사합니다.
devsnd

27
옵션을 [topsep = 0px, partopsep = 0px]로 설정하더라도 목록 이전의 세로 공간은 여전히 ​​존재합니다. 따라서 IMHO이 답변은 작동하지 않습니다.
Robert

2
@Robert, 왜 음수를 사용하지 않습니까? 이것은 나를 위해 작동합니다 : \begin{enumerate}[topsep=-5px,partopsep=0px] ...
zkurtz

@Robert : enumitem 문서에 따르면 목록 앞뒤의 세로 공간은에서 제공 \parsep + \topsep [+ \partopsep]하므로 양수 값을 보상하려면 \topsep또는 \partopsep음수 로 설정해야합니다 \parsep.
balu

44

\vspace{-\topsep}전에 사용하십시오 \begin{itemize}.

사용 \setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}\begin{itemize}.

그리고 목록 후 공간, 사용 \vspace{-\topsep}\end{itemize}.

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

5
좋은! 불행히도 enumitem은 비머와 호환되지 않으므로 패키지 독립적 인 방법을 좋아합니다. 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에서 프레젠테이션을 만드는 데 사용되는 비머 패키지 와 잘 작동하지 않습니다 .


다른 곳에서 언급하고 수정 한 것처럼 최근 버전의 enumitem에는 목록 위와 아래뿐만 아니라 항목 사이의 공간을 제거하도록 설계된 [nosep] 옵션이 포함되어 있습니다. parskip 패키지. 허버트 VOSS는 CTT에 대한 해결책을 게시 - \ 연주곡 {partopsep = - \ parskip, parsep = 0pt이다}
피터 플린

13

이를위한 "적절한"LaTeX 방법은 원하는 간격을 지정할 수있는 패키지를 사용하는 것입니다. 이러한 패키지가 여러 개 있으며이 두 페이지는 목록으로 연결됩니다.


4
CTAN ( ctan.org ) 을 가리키는 것은 결코 나쁜 생각이 아닙니다 .
dmckee --- 전 중재자 새끼 고양이

20
그러나 일반적으로 라텍스에서 어떤 작업을 수행하는 "적절한"방법이 있다고 주장하는 것은 좋지 않습니다.).
cheshirekow

7

나는 paralist 패키지에 매우 만족 합니다 . 공간을 제거하는 옵션을 추가하는 것 외에도 항목 화, 열거 및 환경 설명의 컴팩트 버전과 같은 다른 멋진 기능도 추가합니다.


1
특히 Fabian은 asparaitem, asparaenum 및 asparadesc 및 compactittem, compactenum 및 compactdesc와 같은 다른 것들을 지칭합니다. 아스파라는 여전히 새 단락을 만듭니다. 내가 그렇듯이 앞 단락이없는 테이블에 배치하는 경우 여전히 약간 성가신 일이지만,이 문제를 해결할 수있는 덜 추한 해킹이 있다고 생각합니다.
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}

2
이렇게하면 목록 주위의 많은 공백이 줄어들지 만 목록 자체의 바로 위와 아래에있는 일부 공백은 제거하지 못합니다.
제번
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.