กำจัดช่องว่างก่อน \ start {itemize} [closed]


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 Antony

คำตอบ:


64

ลอง\vspace{-5mm}ก่อนลงรายการ


106
\ vspace คือเส้นทางสู่ความพินาศ คุณต้องไม่ต่อสู้กับ LaTeX แต่ควรยอมรับมัน
Eric

26
ใช่ แต่บางครั้งการต่อสู้ก็มากเกินไปที่จะรับมือได้
Stefano Borini

30
คุณหมายถึงการโอบกอดนั้นมากเกินไปที่จะรับมือและการต่อสู้นั้นง่ายกว่า :-)
Joachim Breitner

1
นี้ควรจะเป็น\ vSpace {}
Jason

10
@ Jason and all: คำตอบของ Paolo ด้านล่างนั้นง่ายเกินไปและดีกว่ามาก: \ vspace {- \ topsep}
Joce

114

วิธีแก้ไขปัญหาประเภทนี้คือการกำหนดสภาพแวดล้อมรายการที่เกี่ยวข้องใหม่ enumitemแพคเกจเป็นวิธีที่ชื่นชอบการทำเรียงลำดับของสิ่งนี้; มีตัวเลือกและพารามิเตอร์มากมายที่สามารถเปลี่ยนแปลงได้ทั้งสำหรับรายการทั้งหมดหรือสำหรับแต่ละรายการทีละรายการ

นี่คือวิธีทำ (บางอย่างเช่น) สิ่งที่ฉันคิดว่าคุณต้องการ:

\ usepackage {enumitem}
\ setlist {nolistsep}

หรือ

\ usepackage {enumitem}
\ setlist {nosep}

2
สมบูรณ์แบบ. ง่ายเหมือนคำตอบของ [Stefano Borini] แต่วิธีนี้ใช้ได้ผลแม้ว่าจะมีรายการซ้อนกัน ขอบคุณ.
devsnd

27
แม้ว่าฉันจะตั้งค่าตัวเลือกเป็น [topsep = 0px, partopsep = 0px] ช่องว่างแนวตั้งก่อนรายการก็ยังคงอยู่ด้วยเหตุนี้ IMHO จึงใช้คำตอบนี้ไม่ได้
Robert

2
@ โรเบิร์ตทำไมไม่ใช้จำนวนลบล่ะ? สิ่งนี้ใช้ได้กับฉัน: \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 เข้ากันไม่ได้กับ 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}

อย่างไรก็ตามโปรดทราบว่าแพ็กเกจนี้ใช้ไม่ได้ดีกับแพ็คเกจบีมเมอร์ซึ่งใช้ในการนำเสนอในลาเท็กซ์


ตามที่ระบุไว้ (และแก้ไข) ที่อื่น enumitem เวอร์ชันล่าสุดมีตัวเลือก [nosep] ซึ่งออกแบบมาเพื่อลบช่องว่างด้านบนและด้านล่างรายการรวมทั้งระหว่างรายการ ... แต่จะไม่ทำเช่นนี้หากคุณใช้ แพคเกจพาร์สคิป Herbert Voßโพสต์วิธีแก้ปัญหานี้ใน ctt - \ setlist {partopsep = - \ parskip, parsep = 0pt}
Peter Flynn

13

วิธี LaTeX ที่ "เหมาะสม" คือการใช้แพ็กเกจที่ช่วยให้คุณระบุระยะห่างที่คุณต้องการได้ มีหลายแพ็คเกจดังกล่าวและสองหน้านี้เชื่อมโยงไปยังรายการของพวกเขา ...


4
ไม่ใช่ความคิดที่ดีที่จะชี้ไปที่CTAN ( ctan.org )
dmckee --- อดีตผู้ดูแลลูกแมว

20
อย่างไรก็ตามโดยทั่วไปแล้วเป็นความคิดที่ไม่ดีที่จะอ้างว่ามีวิธีที่ "เหมาะสม" ในการทำอะไรก็ได้ในน้ำยาง;)
cheshirekow

7

ฉันมีความสุขมากกับแพคเกจ paralist นอกจากการเพิ่มตัวเลือกในการกำจัดพื้นที่แล้วยังเพิ่มสิ่งที่ดีอื่น ๆ เช่นการลงรายการในเวอร์ชันกะทัดรัดแจกแจงและอธิบายสภาพแวดล้อม


1
โดยเฉพาะอย่างยิ่ง Fabian หมายถึงแอสพาราอิเทมแอสปาราอีนั่มและแอสปาราเดสก์และสิ่งอื่น ๆ เช่นขนาดกะทัดรัดกะทัดรัด aspara สร้างย่อหน้าใหม่ยัง สิ่งนี้ยังคงน่ารำคาญเล็กน้อยหากคุณวางไว้ในตารางโดยไม่มีย่อหน้าก่อนหน้าเหมือนฉัน แต่ฉันสงสัยว่ามีแฮ็คที่น่าเกลียดน้อยกว่าที่จะแก้ไขปัญหานี้
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
ซึ่งจะช่วยลดช่องว่างรอบ ๆ รายการได้มาก แต่ไม่สามารถลบช่องว่างบางส่วนได้ทันทีทั้งด้านบนและด้านล่างของรายการ
jevon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.