# tabbing environment with no surrounding vertical space

This probably applies to tabbing, enumerate and itemize blocks, if not others.

How to get rid of (or specify) the default vertical spacing that "wraps" / surrounds the block of items? Normally I want this, as it looks nice. But for some proofs, I want the entire block of lines to have the same vertical spacing as lines around the block.

So for an example of a given tabbing block, such as this:

\begin{tabbing}
$f \in ND ~~~\= \iff \varphi_f(x)<x$ \quad \quad \quad \= by definition of $ND$ \\
$\varphi_f(x)<x \> \iff \varphi_g(x)<x$ \> by our assumption of $Range(\varphi_f) = Range(\varphi_g)$ \\
$\varphi_g(x)<x \> \iff g \in ND$ \> by definition of $ND$
\end{tabbing}


This result is the default, but I don't want this extra vertical spacing around the block:

• Ok, will do. Have done it before. Didn't think it was that necessary for this question. I even thought that someone would yell at me, so I should have c/p it in. Will do it now... Thank you. – delrocco Feb 26 at 2:50
• Question edited w/ code. Given my question though, any enumerate, itemize, tabbing block will give the same result by default that I am trying to avoid. My code was just an example of something in my document. A very simple tabbing example would also work. – delrocco Feb 26 at 2:56
• Ok, I will completely rewrite this question... Should I delete this one first? My document is way to long to pick apart. I guess you need me to post a very minimal version of a document with a single tabbing block in it. – delrocco Feb 26 at 3:14
• Well, which documentclass does your document use? Add it to the code snippet. Copy that into a file mwe.tex and compile. You get errors. Correct them by copying the relevant packages you load in your original document. Please do not just copy all used packages, only that one relevant to this issue. This art of creating a MWE (minimal working example) helps you and us to understand your issue. – Mensch Feb 26 at 3:18
• @delrocco - Future readers of this query would likely be very confused if the code in your example only vaguely resembles what's used in the answer(s). Since your initial code apparently "worked" for me, no real need to change it, right? – Mico Feb 26 at 5:49

I suggest you use either an array or a tabular environment.

First the array-based solution:

\documentclass{article}
\usepackage{amsmath}  % for '\DeclareMathOperator' macro
\usepackage{array}    % for '\newcolumntype' macro
\DeclareMathOperator{\Range}{\mathit{Range}}
\newcolumntype{L}{>{$}l<{$}}
\newcommand{\ND}{\mathit{ND}}

\begin{document}
Assume $\Range(\varphi_f)=\Range(\varphi_g)$.

$\begin{array}{@{}l@{}l@{\qquad}L@{}} f\in\ND &{}\iff\varphi_f(x)<x & by definition of$\ND$\\ \varphi_f(x)<x &{}\iff\varphi_g(x)<x & by our assumption of$\Range(\varphi_f)=\Range(\varphi_g)$\\ \varphi_g(x)<x &{}\iff g\in\ND & by definition of$\ND$\\ \end{array}$

This weak form of \dots
\end{document}


Second, with the preamble material given above, it's just as easy to achieve your formatting objective by employing a tabular environment. All you'd need to change is to replace

$\begin{array}{@{}l@{}l@{\qquad}L@{}}  with \begin{tabular}{@{}L@{}L@{\qquad}l@{}}  and to replace \end{array}$ with \end{tabular}.