I'm writing up a résumé, and I am very particular about making sure that each section is separated by the exact-right-looking amount of spacing. My sections are divided with an \hrule (although in my real document I use the titlesec package to define their format). The rule makes it easy to notice when one section's spacing is different from another's.
The following example shows several of the elements that I need in my document. I have placed the rules very close to the text, to make the difference even more obvious. Depending on whether a section contains text or a list or columns, the subsequent section gets spaced an irregular amount below it.
Edit: I've used \myrule instead of \hrule and followed other suggestions already given by @Ulrike.
\documentclass[10pt]{article}
\usepackage[letterpaper,margin=1in]{geometry}
\usepackage{enumitem}
\usepackage{multicol}
\newcommand{\sampletext}{Here is some sample text\strut}
\newcommand{\myrule}{\par\vspace{-1\baselineskip}\noindent\strut\rule{\textwidth}{0.4pt}}
\newenvironment{compactlist}%
{\begin{itemize}[topsep=0pt,itemsep=0pt,parsep=0pt,labelindent=0em,partopsep=0pt,leftmargin=*]}
{\end{itemize}}
\begin{document}
\section{Plain}
\sampletext
\myrule
\section{Itemized}
\begin{compactlist}
\item \sampletext
\item \sampletext
\end{compactlist}
\myrule
\section{Itemized With Text}
\noindent\sampletext
\begin{compactlist}
\item \sampletext
\item \sampletext
\end{compactlist}
\myrule
\section{Parbox Itemized}
\hbox{
\parbox[t]{7in}{
\begin{compactlist}
\item \sampletext
\item \sampletext
\end{compactlist}
}
}
\myrule
\section{Parbox Itemized With Text}
\parbox[t]{6.5in}{
\sampletext
\begin{compactlist}
\item \sampletext
\item \sampletext
\end{compactlist}
}
\myrule
\section{Multicols}
\setlength{\multicolsep}{0pt}
\begin{multicols}{3}
\begin{compactlist}
\item \sampletext
\item \sampletext
\item \sampletext
\item \sampletext
\item \sampletext
\item \sampletext
\end{compactlist}
\end{multicols}
\myrule
\end{document}
Is there any way to enforce consistent vertical spacing?
\section,itemizeandmulticolsthat do various things with spacing. – egreg Feb 13 '12 at 0:00\multicolsepcommand, diving into themulticolsource to see what spacing is explicitly added, redefining commands like\addvspaceso I can log other stray space sources, setting lengths like\parskipand\parsep, and finally just adding an arbitrary\vspacehack. I've come to the conclusion that LaTeX is not the best tool for precision typesetting. Hopefully someone can take up this challenge and show me how to gain control of the vertical spacing. – Chad Parry Feb 13 '12 at 2:49\parboxthat confuses it? – Todd Lehman Feb 13 '12 at 3:25\hrulebut a\myruledefined e.g. like this:\newcommand\myrule{\par\noindent\strut\rule{\textwidth}{0.4pt}}– Ulrike Fischer Feb 13 '12 at 10:24\newcommand\myrule{\par\vspace{-1\baselineskip}\noindent\strut\rule{\textwidth}{0.4pt}}. – Chad Parry Feb 13 '12 at 14:48