I don't understand why when using \vbox of a certain height, there is some extra space added below it.
I'm trying - towards grid typesetting - to put for example graphics in the vbox of a certain height (say 2 \baselineskip), so the picture should occupy the multiplicity of \baselineskip. However, it fails, since some extra space is added below the \vbox. Why?
I've tried to use \nointerlineskip after the \vbox, but no result.
I'm aware of the post How can I get interline spacing to ignore a vbox? , but it does not help me.
There is a MWE below, I include some rulers to more easily clarify the problem:
\documentclass[11pt]{article}
\usepackage{lipsum}
%%% rulers
\usepackage{atbegshi,picture}
\makeatletter
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
\put(\dimexpr
\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + 1in\relax,
-\dimexpr\topmargin + 1in + \headheight + \headsep\relax){%
\begin{picture}(0,0)%
\setlength{\unitlength}{13bp}%
\setlength{\dimen0 }{0pt}%
\@whiledim\dimen0<\dimexpr\textheight+1sp\relax\do{%
\put(0,-\dimen0){\line(1,0){\textwidth}}%
\addtolength{\dimen0 }{\unitlength}%
}%
\end{picture}%
}%
}%
}
\makeatother
\makeatletter
\setlength{\topskip}{13bp}
\renewcommand\normalsize{%
% \baselineskip to 13bp for \normalsize
\@setfontsize\normalsize\@xipt{13bp}%
% the following values are taken from size11.clo.
\abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI
}
\usepackage{parskip}
\setlength{\parskip}{13bp}
\makeatother
\begin{document}
\lipsum[1]
\vbox to 2\baselineskip{ }
\lipsum[1]
\end{document}

\vboxwrite\vbox to 2\baselineskip{\leaders\vrule width 1pt\vfill}– egreg Feb 07 '13 at 22:52