
Há algum tempo tentei definir algo como figure*
Plain TeX. Isso resultou em alturas de coluna erradas.
(Ver:Figura larga na saída de duas colunas em Plain TeX)
Havia uma dica para memorizar o vsize, então tentei isso. Por favor, observe o seguinte MWE:
% For Plain LuaTeX
\catcode`@=11
\raggedbottom
\newdimen\fullhsize
\newdimen\columnsep
\columnsep 1cm
\fullhsize\hsize
\advance\hsize-\columnsep
\divide\hsize\tw@
\newdimen\fullvsize
\fullvsize\vsize
\def\fullline{\hbox to\fullhsize}
\def\makeheadline{\vbox to\z@{\vskip-22.5\p@
\fullline{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip}
\def\makefootline{\baselineskip24\p@\lineskiplimit\z@
\fullline{\the\footline}}
% Twocolumn output
\newif\if@firstcolumn \@firstcolumntrue
\newbox\firstcolumn
\output={\ifvoid\widetopins\else%%%%%%%% try to change vsize
\global\advance\vsize-\ht\widetopins
\global\advance\vsize-\dp\widetopins\fi
\if@firstcolumn \global\setbox\firstcolumn=\columnbox
\global\@firstcolumnfalse
\else
\doubleformat \global\@firstcolumntrue\fi
\ifnum\outputpenalty>-20000 \else\dosupereject\fi}
\def\doubleformat{\shipout\vbox{
\makeheadline
\ifvoid\widetopins\else\fullline{\box\widetopins}\fi
\fullline{\box\firstcolumn\hfil\columnbox} \makefootline}
\advancepageno
\global\vsize\fullvsize}% reset \vsize
\def\columnbox{\leftline{\pagebody}}
% like figure* in LaTeX
\newinsert\widetopins
\skip\widetopins\z@skip
\count\widetopins=0 %%%%%%%% to change vsize manually
\dimen\widetopins=.5\vsize
\def\widetopinsert{\p@gefalse\par\begingroup
\setbox\z@\vbox\bgroup\hsize\fullhsize}
\def\endwideinsert{\egroup
\insert\widetopins{\penalty100 % floating insertion
\splittopskip\z@skip
\splitmaxdepth\maxdimen \floatingpenalty\z@
\ifp@ge \dimen@\dp\z@
\vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
\else \box\z@\nobreak\bigskip\fi}\endgroup}
\def\mypicture{\vrule height 100pt depth 40pt width300pt}
\def\text{Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.}
\text\text\text
\widetopinsert
\centerline{\mypicture}
\endwideinsert
\text\text\text\text\text
\bye
Como você pode ver na imagem, ambas as colunas estão erradas. Ambos vão para a margem inferior e o segundo tem espaço em branco na parte superior. O que eu fiz errado? Como isso pode \vsize
ser alterado corretamente?