[Tex/LaTex] Make an invisible vbox

boxespdfplain-texspacingxetex

I'm placing a PDF meta information in a \vbox in a plain XeTeX document, and I would like it to behave as if there were no box at all (so any additional \vskip after the \vbox will appear). Right now, I'm using the following:

\nointerlineskip\vbox to 0pt { … }\nointerlineskip

I've tried \nointerlineskip{\offinterlineskip\vbox …} as well, but that left a gap afterwards, even when there was no skip meant to be.

How can I make this vertical box seamless in every context?

Best Answer

I'd say that the correct procedure is

\edef\theprevdepth{\the\prevdepth}\nointerlineskip
\vbox to 0pt{...}\prevdepth=\theprevdepth

Example

\def\metabox#1{\edef\theprevdepth{\the\prevdepth}\nointerlineskip
  \vbox to0pt{#1\vss}\prevdepth=\theprevdepth}

\leavevmode\vbox{\hsize=.3\hsize
  some text some text some text some text 
  some text some text some text some text 

  \metabox{META INFO}

  some text some text some text some text 
  some text some text some text some text }%
\quad
\vbox{\hsize=.3\hsize
  some text some text some text some text
  some text some text some text some text

  some text some text some text some text
  some text some text some text some text }

\vskip2cm

\hrule

\leavevmode\vbox{\hsize=.3\hsize
  \metabox{META INFO}

  some text some text some text some text 
  some text some text some text some text }%
\quad
\vbox{\hsize=.3\hsize
  some text some text some text some text
  some text some text some text some text }

\vskip1cm
\hrule
\leavevmode\vbox{\hsize=.3\hsize
  some text some text some text some text
  some text some text some text some text }

\bye
Related Question