I'll try to improve the question: As you can see, the forth column is longer than the values shown and I have learned, that this not an extension of the \vbox, but an overflow. So, TeX does not want to lose content and prints out the overflow. Ok, but that is not, what I want to get. I have been advised to use \vsplit, but I do not know how to use it in this case. I do not get along with \vsplit yet. It is now clear to me, how to get the values of the boxes, they are shown on the left side. Now the improved question: Is it possible to catch the overflow, transfer it to a new box, that is not printed out without being explicitly called by \copy"x". Please give me an example, how to use \vsplit in \setbox3=
\raggedright
\parindent=0pt
\newdimen\columnwidth%
\columnwidth=100pt%
\newdimen\columndepth
\columndepth=100pt
\newdimen\columnheight
\columnheight=180pt
\newwrite\valuesof
\immediate\openout\valuesof=\jobname.val
\def\text{This is the text that fills the boxes. This is the text that fills the boxes.\vskip\baselineskip }
\def\values[#1]{\immediate\write\valuesof{\vbox{\bf Box#1} \vskip0.2\baselineskip height \the\ht#1 \vskip0.2\baselineskip%
depth \the\dp#1 \vskip0.2\baselineskip%
width \the\wd#1 \vskip0.2\baselineskip}}%to show the values in the text
%endofdefinitions
{\bf Questions about vboxes and their dimensions. \vskip\baselineskip Why are the vboxes extended over a given limit?}\vskip\baselineskip
\vskip\baselineskip
\hbox{%
\setbox0=\vtop to \columnheight{\vskip-0.4pt\hsize\columnwidth\hrule width\hsize\vskip\baselineskip %
\text\text\text\vfill
\hrule width\hsize\vskip\baselineskip
} %
\setbox1=\vtop to \dp0 {\vskip-0.4pt\hsize\columnwidth\hrule width\hsize\vskip\baselineskip %
\text\text\text\vfill
\hrule width\hsize\vskip\baselineskip
} %
\setbox2=\vtop to \dp1{ \vskip-0.4pt\hsize\columnwidth\hrule width\hsize\vskip\baselineskip %
\text\text\text\vfill
\hrule width\hsize\vskip\baselineskip
} %
\setbox3=\vtop to \dp2{ \vskip-0.4pt\hsize\columnwidth\hrule width\hsize\vskip\baselineskip %
\text\text\text\text\vfill
\hrule width\hsize\vskip\baselineskip
} %
\values[0]
\copy0
\values[1]
\copy1%
\values[2]
\copy2%
\values[3]
\copy3%
}%
\vskip60pt
\immediate\closeout\valuesof
\input\jobname.val
\bye%
Overfull \vbox (127.34444pt too high) detected at line 37and the box is that much too big. Add\vssif you want it to quietly overflow. (hboxes are just the same) – David Carlisle Nov 14 '22 at 19:28\vboxor an\hboxwill not be broken, so if what is inside it exceeds the defined size (length or width), it will result in an overfull box message. – barbara beeton Nov 14 '22 at 20:14\vsplitI did ask in one of your earlier questions if you wanted\vsplitbut if you just post code without saying what it is supposed to do, we can not tell you what to change, just explain the output you get.\vssis not a "workaround" it is the way to control the position of the overflow, like\rlapand\llapin plain tex just differ by the position of\hss– David Carlisle Nov 14 '22 at 21:18towhich forces the size. – David Carlisle Nov 14 '22 at 22:26\vsplitbut you have not given any clear indication of what you want. I do not know why you have said you have been reproached, – David Carlisle Nov 16 '22 at 01:12