# Tighter-spaced bulleted list should have ordinary line spacing to paragraphs/lines above and below

To get tighter line spacing (my document's main spacing is 1.5-spacing, and I'm using memoir), I normally use a self-defined "tight list" (tightlist in the code below). This works well. However I would like the list's spacing to the text above and below to be identical to the ordinary (here: 1.5) line spacing, that is I would like the list to behave like a vertical line-like atom with respect to the rest of the document.

In the following document

\documentclass{memoir}

\OnehalfSpacing

\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
}%
}%
{\end{list}\end{Spacing}}

\begin{document}

Text. HHHHHHHHHH

Text. HHHHHHHHHH

\begin{mytightlist}{$$\bullet$$}{1.5em}{0.5em}
\item Text. HHHHHHHHHH
\item Text. HHHHHHHHHH
\end{mytightlist}

Text. HHHHHHHHHH

Text. HHHHHHHHHH

\end{document}


the spacing within line pairs 2/3 and 4/5 is slightly less than the intended spacing, namely that found within line pairs 1/2 and 5/6. Why? How can one fix this?

Btw, I don't care about whether a list "belongs" to a paragraph around it: for me, such spacing should be uniform. ("LaTeX goes to a lot of effort to distinguish in-paragraph lists from end- or start-of-paragraph lists"; comment (quoted approximately) by David Carlisle)

Using the MySpacing environment from this answer to a related question about spacing around blocks instead of Spacing doesn't do the trick in this context.

-
i've processed your test file, extended it a bit to look at multi-line paragraphs, printed it out, and measured carefully. i don't see any difference in the interline or inter-paragraph spacing except within the list block. this may be a version difference; i'm still working with (the original) tex live 2012 and can supply version numbers if desired. – barbara beeton Jun 8 '13 at 15:52
@barbarabeeton Thanks for testing! In addition to compiling it on my present machine (pdfTeX, Version 3.1415926-2.4-1.40.13 (MiKTeX 2.9 64-bit)), I've pasted the code into the LaTeX-Online-Compiler V0.2 of the Martin-Luther-Universität Halle-Wittenberg. The compiler there uses pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian). I need to look at it at a large magnification level (1600% will do) to notice that lines 2&3 are about 7% closer than lines 1&2. – Lover of Structure Jun 9 '13 at 5:58
What about just changing the spacing after opening the list? – Tobias Jul 4 '13 at 5:31
@Tobias Good idea! This will cause an extraneous empty line, like here, but this is easily fixed by writing \end{Spacing}\vspace*{0pt}\end{list} in the environment finalization code. Unfortunately the spacing between lines 4/5 will then be (visually/roughly at least) identical to that between lines 3/4. – Lover of Structure Jul 4 '13 at 10:53

## 3 Answers

As to why it exists, I can't say. As to how to fix it (at least for your MWE), I add a symmetric \vspace of .049\baselineskip before and after the environment.

\documentclass{memoir}
\def\vertoffset{.049\baselineskip}

\OnehalfSpacing

\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
\vspace{\vertoffset}%
}%
}%
{\end{list}\vspace{\vertoffset}\end{Spacing}}

\begin{document}

Text. HHHHHHHHHH

Text. HHHHHHHHHH

\begin{mytightlist}{$$\bullet$$}{1.5em}{0.5em}
\item Text. HHHHHHHHHH
\item Text. HHHHHHHHHH
\end{mytightlist}

Text. HHHHHHHHHH

Text. HHHHHHHHHH

\end{document}

-
I initially thought it might have something to do with the height of the \strutbox, but I could find no obvious connection. In the end, I brute forced it. Perhaps .049\baselineskip which is 0.73494pt for this case, will jog someone's memory on a "lost" dimension. – Steven B. Segletes Jun 25 '13 at 13:43
Did you determine the value 0.049\baselineskip manually (by trial/error/adjustment)? – Lover of Structure Jun 27 '13 at 8:48
@LoverofStructure: Yes, at 2600% magnification – Steven B. Segletes Jul 1 '13 at 9:44
Interesting how adding vertical space symmetrically seems to work. I'm also wondering what a more generally applicable solution is (one that is proven to work everywhere). Bounty well deserved! I'll reopen a larger one now. – Lover of Structure Jul 1 '13 at 19:59
@LoverofStructure Thanks. I agree that the symmetrical nature of the "fix" just screams something important. But I just can't tell you what. – Steven B. Segletes Jul 1 '13 at 20:02

You're using different baselineskips and you don't take care of this aspect.

\documentclass{memoir}

\newlength{\tightlisttopsep}
\AtBeginDocument{
\setlength{\tightlisttopsep}{-\baselineskip}
\addtolength{\tightlisttopsep}{\fontchardp\fontj}% a descender
\addtolength{\tightlisttopsep}{.15pt} % some overshoot
\OnehalfSpacing
\addtolength{\tightlisttopsep}{.7\baselineskip}% height of strut
% Show the baselines
\edef\myrule{\noexpand\smash{\vrule depth\the\baselineskip\kern-.4pt}}
}

\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{\tightlisttopsep}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
}%
}%
{\end{list}\end{Spacing}}

\begin{document}

1. HHHHHHHHH\myrule H

2. HHHHHHHHHH\myrule

\begin{mytightlist}{$$\bullet$$}{1.5em}{0.5em}
\item 3. HHHHHHHHHH
\item 4. \myrule HHHHHHHHHH
\end{mytightlist}

5. HHHHHHHHHH

6. HHHHHHHHHH

\end{document}


This is without hope if the mytightlist is used when a different font size is in force, because the settings are made just for the standard size.

The result is surely poor typography, in my opinion.

-
How does the ideal typographic relationship of bulleted lists with paragraphs above and below look like, in your opinion? Any opinions, rambling, and detours are appreciated. Perhaps you could give an opinion for both a "uniform spacing throughout" case and a "paragraphs are required to be 1.5-spaced" case. – Lover of Structure Jul 4 '13 at 22:04
@LoverofStructure Typography ≠ 1.5 spacing. And this kind of tight spacing in a sea of wide spacing is horrible. Give it more room before and below, rather than the same as normal interline spacing. – egreg Jul 4 '13 at 22:05
Well, I'm definitely with you on that (as I say elsewhere), though I must admit that I now find that text with a lot of in-paragraph math can benefit from >1-spacing (not "1.5-spacing" though, which I think translates to something like a 1.3 spacing parameter in memoir). In any case, (La)TeX does a certain thing when it comes to lists in between paragraph text, and I find its default spacing too wide (this is a very strong opinion on mine). So I really am interested in what your opinion on this general situation is, assuming something like single-spacing for the main body. – Lover of Structure Jul 4 '13 at 22:07
@LoverofStructure 10/15.6 is definitely too spaced. Depending on the font, 10/13 or 10/13.5 might do; 10/14 is already too much, I believe. – egreg Jul 4 '13 at 22:09
And how would you embed lists in paragraph text? I'm asking about the spacing just before and after the list and the line-spacing within the list (which I think should be identical or might even be tighter)? – Lover of Structure Jul 4 '13 at 22:10

Reading your question I am not sure if you want also a 1.5 within the list environment. If this matter, then the fix of Steven is not complete since spacing between normal text lines items is15pt whereas between items is only 12pt.

My attempt to fix both problems is simply change two of the \setlenghts of your macro to:

\setlength{\topsep}{.7pt}%
\setlength{\itemsep}{3pt}%


To see how good is this fix, an easy test is that \vspace{-15pt} after some line or item must produce a perfect overlapping with the next line or item. In the next image I used some \phantom spaces in overlapping lines and red color in the whole overlapped line-item to check it better. At 400% this is the output:

The source code to test yourself:

\documentclass{memoir}
\usepackage{xcolor}
\OnehalfSpacing

\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{.7pt}% .1ex
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{3pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
}%
}%
{\end{list}\end{Spacing}}

\begin{document}

Text. {\color{red}HHHHHHHHHH (1-2 li\vspace{-15pt}}

Text. HHHHHHHHHH \phantom{(1-2 li}ne)

Text. HHHHHHHHHH (3 line)

Text. {\color{red}HHHHHHHHHH (4-1 line \vspace{-15pt}}

\begin{mytightlist}{$$\bullet$$}{1.5em}{.5em}
\item Text. HHHHHHHHHH  \phantom{(4-1 line}item)
\item Text. HHHHHHHHHH (2 item)
\item {\color{red}Text. HHHHHHHHHH (3-4 it}\vspace{-15pt}
\item Text. HHHHHHHHHH \phantom{(3-4 it}em)
\item Text. HHHHHHHHHH (5 item)
\item {\color{red}Text. HHHHHHHHHH (6-1 item\vspace{-15pt}}
\end{mytightlist}

Text. HHHHHHHHHH \phantom{(6-5 item}line)

Text. HHHHHHHHHH (6 line)

Text. {\color{red}HHHHHHHHHH (7-8 li\vspace{-15pt}}

Text. HHHHHHHHHH \phantom{(7-8 li}ne)

\end{document}
`
-
Within the list I want single spacing, but thanks for your contribution and approach! – Lover of Structure Jul 8 '13 at 22:34