I want to insert a block of text (could contain anything) that takes up no vertical space, but also aligns with the normal text baseline. (I feel like this is probably a duplicate, but I can't it.)
\vbox to 0pt is as close as I can get, but it aligns with the top of the box rather than the text baseline. I find the extra space (height of tallest character in first line) this creates annoying and ugly.
The goal is to insert answers below questions without disturbing the layout obtained when no answers are shown. Any method of achieving this is acceptable.
MWE
What I have so far:
\documentclass[twocolumn]{article}
\usepackage{ifluatex}
\ifluatex
\usepackage{lua-visual-debug}
\fi
\usepackage{enumitem}
\setlist[enumerate]{itemsep=2cm}
\newdimen\savedparindent
\newdimen\savedparskip
\newcommand{\blap}[1]{%
\savedparindent\parindent
\savedparskip\parskip
\noindent
\leavevmode\vbox to 0pt{%
\hsize\linewidth\noindent\parbox{\linewidth}{%
\parindent\savedparindent
\parskip\savedparskip
#1}%
\vss}%
\vspace*{-\parskip}\vspace*{-\baselineskip}}
\pagestyle{empty}
\begin{document}
\begin{enumerate}
\item First item.
\blap{This should not take up any vertical space, but should align at
normal text baseline.}
\item Second item.
\end{enumerate}
\blap{This should not take up any vertical space, but should align at normal
text baseline.}
\vspace{2cm}
More text.
\newpage
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\vspace{2cm}
More text.
\end{document}

\vbox to 0ptwith\vtop to 0ptdo what you want? My test on your example seems to work. – corporal Jun 29 '18 at 01:54