LaTeX VERY compact itemize
LatexLatex Problem Overview
I am trying to build a very compact itemize with LaTeX, because I want to fit it in a table without whitespace everywhere.
What I need:
- No whitespace before list
- No whitespace after list
- No whitespace between lines
- Less indent before the bulletpoints
I have tried many packages (paralist
, mdwlist
, enumitem
) but non of them can fully do it.
I tried it myself (with the help of paralist
) and could get rid of everything except the whitespace after the list. This is my current solution:
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\newenvironment{ilist}%
{
%from parlist package, reduces indent before bulletpoints
\setdefaultleftmargin{1em}{1em}{}{}{}{}
\compress %places itemize into minipage, removing whitespace before
\begin{itemize}%
\setlength{\itemsep}{0pt}%
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\parskip}{0pt}}%
{\end{itemize}}
However, I am unable to get rid of the space after the list. I can do it with a negative vspace
but this is:
- Ugly
- Does not work for tables: The rule after the row in which the list is will still be one line below.
Can anyone tell me how to do it? I have googled so much, but it somehow seems that I am the first human that ever tried to insert an itemize into a table :D
Latex Solutions
Solution 1 - Latex
To change these settings globally
\usepackage{enumitem}
\setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}
(And you can use the \setenumerate
, \setdescription
or \setlist
commands for other types of lists)
Or for just a single list
\usepackage{enumitem}
...
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
\item item 1
\item item 2
\item item 3
\end{itemize}
Solution 2 - Latex
The accepted answer is not up to date as mentioned in the comments. This is what I used to get a compact list:
\usepackage{enumitem}
\setlist{topsep=0pt, leftmargin=*}
Then use \begin{itemize}
as usual to start a list.
Solution 3 - Latex
Solution 4 - Latex
This solution was provided in a comment by @damien-pollet but every time I come back here to find it again, I always have a hard time finding it because it is a comment, so I am putting it as answer for the benefit of my future-self who will be looking for this answer again.
The compactitem
environment of the paralist package works wonders:
\usepackage{paralist}
...
\begin{compactitem}
\item Item 1
\item Item 2
\end{compactitem}
Solution 5 - Latex
You get the desired layout with the savetrees
package (caveat: this will also compactify the rest of your document)
\documentclass{article}
\usepackage{savetrees}
\begin{document}
text
\begin{itemize}
\item No whitespace before list
\item No whitespace after list
\item No whitespace between lines
\item Less indent before the bulletpoints
\end{itemize}
text
\end{document}
Solution 6 - Latex
In the preamble:
\newcommand{\bbb}[1]{\indent$\bullet$ #1\\}
In the document:
\bbb{hello world}