bachotex2008-david-kastrup-pearl1.tex
bachotex2008-david-kastrup-pearl1.tex
—
TeX document,
1 KB (1242 bytes)
Zawartość pliku
%%% fixing \vtop \catcode`\|13 \def\stripit#1>{} \def|#1|{{\tt\toks0{#1}\edef\next{\the\toks0}% \expandafter\stripit\meaning\next}\unskip} |\vtop| happens to lose the correct top of line information when it starts with a whatsit. We can reconstitute this in the following manner\footnote*{The trick here is to use |\vsplit| which pads the followup box sufficiently to reach a given line height on the top line. We essentially tell it to make this line fit |\maxdimen| minus a safety margin and see how far it gets. Then we remove the padding with another split and start the box with a strut that establishes the corrected height.}: \def\fvtop#{\vtop\bgroup \setbox0\vbox\bgroup \aftergroup\fvboxii \let\next=} \def\fvboxii{\setbox0\vtop{\break\unvbox0}% \dimen0=\maxdimen \ifdim\dp0>0pt \advance\dimen0-\dp0 \fi {\splittopskip\dimen0 \setbox0\vsplit0to0pt}% \advance\dimen0-\ht0% {\splittopskip-\maxdimen\setbox0\vsplit0to0pt}% \advance\dimen0\ht0% \hrule height\dimen0 depth-\dimen0 \unvbox0 \egroup} \def\example{\hbox{First good line}% \hbox{Second good line}% \hbox{Third good line}} \leavevmode \vtop{\example}\vtop{\write-1{}\example}\fvtop{\write-1{}\example} \end
Akcje Dokumentu