\catcode`\@=11
\newdimen \gouttiere \gouttiere = 10pt
\newskip \bottomskip \bottomskip = 0pt
\def \columns{ \par
\line \bgroup \def \raggedbottom{ \global \bottomskip 0pt plus 1fil
\relax}
\dimen@i = \baselineskip
\advance \dimen@i by -\splittopskip
\afterassignment \c@lumns
\count@=} \def \c@lumns{ \advance \hsize by \gouttiere \divide \hsize by \count@ \advance \hsize by -\gouttiere \boxmaxdepth = \z@ \splitmaxdepth = \z@
\setbox0 = \vbox \bgroup \prevdepth = \dimen@i} \def \endcolumns{ \egroup \vbadness = 10000 \dimen@ = \ht0 \divide \dimen@ by \count@ \loop
\balancec@lumns \ifdim \dimen@i > \dimen@ \advance \dimen@ by \jot \repeat \loop \setbox1 = \vsplit0 to \dimen@
\vtop{ \unvbox1
\vskip \bottomskip
\hrule height \z@ depth \z@ width \hsize} \hss
\advance \count@ by -1
\ifnum \count@ > 1
\repeat
\vtop{ \unvbox0
\vskip \bottomskip
\hrule height \z@ depth \z@ width \hsize} \egroup} \def \balancec@lumns{{ \setbox2 = \copy0 \loop
\setbox1 = \vsplit2 to \dimen@
\advance \count@ by -1
\ifnum \count@ > 1
\repeat
\global \dimen@i = \ht2 }} \catcode`\@=12

—
Syracuse — Dernière modification : 22 octobre 2002 (0.08s - 3438594 - 30 août 2008)