blob: 0c4859d7df6b42aad4045a5465ca916f3fbf1915 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
\catcode`@=11 % from plain.tex
\newdimen\pagewidth \newdimen\pageheight \newdimen\ruleht
\newif\ifvrule\vruletrue
% These values were modified:
%\hsize and \vsize are also used in the \output routine
\hsize=35pc \vsize=54pc \maxdepth=2.2pt \parindent=2pc
\hoffset=.4in
\pagewidth=\hsize \pageheight=\vsize \ruleht=.5pt
% This routine is used by \output ; this is different from
% the one found in App. E since some are not needed here.
\def\onepageout#1{\shipout\vbox{\offinterlineskip
\vbox to \pageheight {\makeheadline
#1 % the content of page
\makefootline \boxmaxdepth=\maxdepth}}
\advancepageno}
\output{\onepageout{\unvbox255}}
\newbox\partialpage
\def\begindoublecolumns{\begingroup
\output={\global\setbox\partialpage=\vbox{\unvbox255\bigskip}}\eject
\output={\doublecolumnout} \hsize=17pc \vsize=109pc}
% Again the sizes have been changed !! %note new values for \hsize and \vsize
% this needs to be done more tidily
\def\enddoublecolumns{\output={\balancecolumns}\eject
\endgroup \pagegoal=\vsize}
\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth
\dimen@=54pc \advance\dimen@ by-\ht\partialpage
% Need to change the value of \dimen@ also...
\setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
\onepageout\pagesofar
\unvbox255 \penalty\outputpenalty}
\def\pagesofar{\unvbox\partialpage
\wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil
\ifvrule\vrule\fi\hfil\box2}}
\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0
\advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
\divide\dimen@ by2 \splittopskip=\topskip
{\vbadness=10000 \loop \global\setbox3=\copy0
\global\setbox1=\vsplit3 to\dimen@
\ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}
\setbox0=\vbox to\dimen@{\unvbox1}
\setbox2=\vbox to\dimen@{\dimen2=\dp3 \unvbox3\kern-\dimen2 \vfil}
\pagesofar}
\vrulefalse
%Example use:
% \hrule \bigskip
% \centerline{THE BEAUTY AND THE MOUSE} \bigskip
% Once upon a time, there lived a beautiful girl in a place far, far away...
% \begindoublecolumns
% Her only friend was a computer that came with a mouse as its input device.
% \enddoublecolumns
% The beauty and the mouse lived happily ever after.
% \end
|