Linespacing exception for tables and itemize and enumerate

With

\setlength{\parindent}{4em}
\setlength{\parskip}{1em}
\renewcommand{\baselinestretch}{2.0}


I am able to set the linespacing of my whole document. But I want to have my tables and itemize/enumerate of normal linespacing. How can I do this? (I know I can do this at each individual table).

Ideally I want to do this before the \begin{document}

• – leandriis Oct 20 '19 at 9:14
• With the help of the itemsep option introduced by th eenumitem package you can control the spacing between adjacent items in an itemize or enumerate list. – leandriis Oct 20 '19 at 9:15
• @leandriis why not use \AtBeginEnvironment{itemize}{\renewcommand\baselinestretch{1}} and the like with \usepackage{etoolbox}, seems easier than playing with the itemsep option. – Skillmon Oct 20 '19 at 9:47
• @Skillmon: good point. – leandriis Oct 20 '19 at 9:49

For your tabular environments, the answer is easy: just change your \arraystretch after you change your \baselinestretch:

\renewcommand{\baselinestretch}{2.0}
\renewcommand{\arraystretch}{0.5}


Notice that it's half of what \baselinestretch is; so since \baselinestretch is 2, you need to set \arraystretch to 0.5 to get it back to 1.

Your itemize lengths are a bit tricker. Here, I think your best option is the etoolbox package, which lets you manipulate what happens when an environment is invoked without having to alter the environment itself. Here, I'd use the following:

\usepackage{etoolbox}
\AtBeginEnvironment{itemize}{\baselineskip=1.25em}


Or whatever value you think makes it look best. The inter-item spacing would be double, though, unless you also used enumitem (the package) to change itemsep, as suggested in one of the comments:

\usepackage{enumitem}
\setlist{itemsep=-0.5em}


You can massage the spacing until you get what you want, but this seems to be just about right. Here's my complete example document:

\documentclass{article}
\usepackage{lipsum}
\usepackage[width=7in,height=10in]{geometry}
\usepackage{etoolbox}
\AtBeginEnvironment{itemize}{\baselineskip=1.25em}
\usepackage{enumitem}
\setlist{itemsep=-0.5em}

\parindent=4em
\parskip=1em
\renewcommand{\baselinestretch}{2.0}
\renewcommand{\arraystretch}{0.5}

\begin{document}

\lipsum[1]

\begin{tabular}{ll}
One & line \\
Two & lines \\
Three & lines \\
\end{tabular}

\lipsum[2]

\begin{itemize}
\item One thing here to see what happens.
\item A second thing here; and I'll make sure this one
covers more than one line so that we can confirm the right
thing still happens.  It's important, after all.
\end{itemize}

\lipsum[3]

\end{document}


(geometry was included just to make it all fit on one page.) And here's the result: