File:
[LON-CAPA] /
capa /
capa51 /
Manual /
multicol.sty
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Fri Jul 14 18:30:33 2000 UTC (24 years, 2 months ago) by
albertel
Branches:
MAIN
CVS tags:
version_2_9_X,
version_2_9_99_0,
version_2_9_1,
version_2_9_0,
version_2_8_X,
version_2_8_99_1,
version_2_8_99_0,
version_2_8_2,
version_2_8_1,
version_2_8_0,
version_2_7_X,
version_2_7_99_1,
version_2_7_99_0,
version_2_7_1,
version_2_7_0,
version_2_6_X,
version_2_6_99_1,
version_2_6_99_0,
version_2_6_3,
version_2_6_2,
version_2_6_1,
version_2_6_0,
version_2_5_X,
version_2_5_99_1,
version_2_5_99_0,
version_2_5_2,
version_2_5_1,
version_2_5_0,
version_2_4_X,
version_2_4_99_0,
version_2_4_2,
version_2_4_1,
version_2_4_0,
version_2_3_X,
version_2_3_99_0,
version_2_3_2,
version_2_3_1,
version_2_3_0,
version_2_2_X,
version_2_2_99_1,
version_2_2_99_0,
version_2_2_2,
version_2_2_1,
version_2_2_0,
version_2_1_X,
version_2_1_99_3,
version_2_1_99_2,
version_2_1_99_1,
version_2_1_99_0,
version_2_1_3,
version_2_1_2,
version_2_1_1,
version_2_1_0,
version_2_12_X,
version_2_11_X,
version_2_11_5_msu,
version_2_11_5,
version_2_11_4_uiuc,
version_2_11_4_msu,
version_2_11_4,
version_2_11_3_uiuc,
version_2_11_3_msu,
version_2_11_3,
version_2_11_2_uiuc,
version_2_11_2_msu,
version_2_11_2_educog,
version_2_11_2,
version_2_11_1,
version_2_11_0_RC3,
version_2_11_0_RC2,
version_2_11_0_RC1,
version_2_11_0,
version_2_10_X,
version_2_10_1,
version_2_10_0_RC2,
version_2_10_0_RC1,
version_2_10_0,
version_2_0_X,
version_2_0_99_1,
version_2_0_2,
version_2_0_1,
version_2_0_0,
version_1_99_3,
version_1_99_2,
version_1_99_1_tmcc,
version_1_99_1,
version_1_99_0_tmcc,
version_1_99_0,
version_1_3_X,
version_1_3_3,
version_1_3_2,
version_1_3_1,
version_1_3_0,
version_1_2_X,
version_1_2_99_1,
version_1_2_99_0,
version_1_2_1,
version_1_2_0,
version_1_1_X,
version_1_1_99_5,
version_1_1_99_4,
version_1_1_99_3,
version_1_1_99_2,
version_1_1_99_1,
version_1_1_99_0,
version_1_1_3,
version_1_1_2,
version_1_1_1,
version_1_1_0,
version_1_0_99_3,
version_1_0_99_2,
version_1_0_99_1,
version_1_0_99,
version_1_0_3,
version_1_0_2,
version_1_0_1,
version_1_0_0,
version_0_99_5,
version_0_99_4,
version_0_99_3,
version_0_99_2,
version_0_99_1,
version_0_99_0,
version_0_6_2,
version_0_6,
version_0_5_1,
version_0_5,
version_0_4,
version5-1-2-first_release,
stable_2002_spring,
stable_2002_july,
stable_2002_april,
stable_2001_fall,
loncapaMITrelate_1,
language_hyphenation_merge,
language_hyphenation,
conference_2003,
bz6209-base,
bz6209,
STABLE,
HEAD,
GCI_3,
GCI_2,
GCI_1,
CAPA_5-1-6,
CAPA_5-1-5,
CAPA_5-1-4_RC1,
BZ4492-merge,
BZ4492-feature_horizontal_radioresponse,
BZ4492-feature_Support_horizontal_radioresponse,
BZ4492-Support_horizontal_radioresponse
- added the manual
1: %%
2: %% This is file `multicol.sty', generated
3: %% on <1994/6/23> with the docstrip utility (2.2h).
4: %%
5: %% The original source files were:
6: %%
7: %% multicol.dtx (with options: `package,badness,check,marktrace')
8: %%
9: %% IMPORTANT NOTICE:
10: %% This file is part of the `tools' bundle
11: %% in the LaTeX2e distribution.
12: %%
13: %% You are not allowed to distribute this file.
14: %% For distribution of the original source see
15: %% the copyright notice in the source file, and
16: %% in the file readme.txt distributed with the
17: %% tools bundle.
18: %%
19: \def\fileversion{v1.5g}
20: \def\filedate{1994/06/07}
21: \def\docdate {1994/05/28}
22: %% \CheckSum{1293}
23: %% \CharacterTable
24: %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
25: %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
26: %% Digits \0\1\2\3\4\5\6\7\8\9
27: %% Exclamation \! Double quote \" Hash (number) \#
28: %% Dollar \$ Percent \% Ampersand \&
29: %% Acute accent \' Left paren \( Right paren \)
30: %% Asterisk \* Plus \+ Comma \,
31: %% Minus \- Point \. Solidus \/
32: %% Colon \: Semicolon \; Less than \<
33: %% Equals \= Greater than \> Question mark \?
34: %% Commercial at \@ Left bracket \[ Backslash \\
35: %% Right bracket \] Circumflex \^ Underscore \_
36: %% Grave accent \` Left brace \{ Vertical bar \|
37: %% Right brace \} Tilde \~}
38: %%
39: %% Package `multicol' to use with LaTeX2e
40: %% Copyright (C) 1989-1994 Frank Mittelbach, all rights reserved.
41: %%
42: %%
43: %% In addition to the general distribution terms for this `tools'
44: %% bundle, which are specified in readme.txt, this package, multicol,
45: %% is distributed subject to the following condition:
46: %%
47: %% ** The use of this package as a standard part of a commercial
48: %% ** application is not allowed without the explicit permission of the
49: %% ** author of this package. Such commercial usage will be subject to
50: %% ** the payment of a licence fee. The size of this fee is to be
51: %% ** determined, in each instance, by the commercial user, depending on
52: %% ** his judgement of the value of the code for his application.
53: %%
54: %% Note that the above condition does not apply to non-commercial use of
55: %% this package, or to the use of this package in a commercial
56: %% environment for `individual' tasks rather than as a standard part of
57: %% a commercial application. In these cases the General Terms, as
58: %% specified in readme.txt, apply.
59: %%
60: \NeedsTeXFormat{LaTeX2e}
61: \ProvidesPackage{multicol}[\filedate\space
62: \fileversion\space multicolum formatting]
63: \DeclareOption{twocolumn}
64: {\PackageWarning{multicol}{May not work
65: with a twocolumn layout}}
66: \newcount\c@tracingmulticols
67: \DeclareOption{errorshow}
68: {\c@tracingmulticols\z@}
69: \DeclareOption{infoshow}
70: {\c@tracingmulticols\@ne}
71: \DeclareOption{balancingshow}
72: {\c@tracingmulticols\tw@}
73: \DeclareOption{markshow}
74: {\c@tracingmulticols\thr@@}
75: \DeclareOption{debugshow}
76: {\c@tracingmulticols5\relax}
77: \ProcessOptions
78: \def\multicols#1{\col@number#1\relax
79: \ifnum\col@number<\tw@
80: \PackageWarning{multicol}%
81: {Using `\number\col@number'
82: columns doesn't seem a good idea.^^J
83: I therefore use two columns instead}%
84: \col@number\tw@ \fi
85: \ifnum\col@number>10
86: \PackageError{multicol}%
87: {Too many columns}%
88: {Current implementation doesn't
89: support more than 10 columns.%
90: \MessageBreak
91: I therefore use 10 columns instead}%
92: \col@number10 \fi
93: \@ifnextchar[\mult@cols{\mult@cols[]}}
94: \def\mult@cols[#1]{\@ifnextchar[%
95: {\mult@@cols{#1}}%
96: {\mult@@cols{#1}[\premulticols]}}
97: \def\mult@@cols#1[#2]{%
98: \par
99: \ifinner \@boxedmulticolstrue
100: \else
101: \ifnum \doublecol@number>\z@
102: \@boxedmulticolstrue
103: \fi
104: \fi
105: \mult@info\z@
106: {Starting environment with
107: \the\col@number\space columns%
108: \if@boxedmulticols\MessageBreak
109: (boxed mode)\fi
110: }%
111: \enough@room{#2}%
112: {#1\par}\addvspace\multicolsep
113: \begingroup
114: \prepare@multicols
115: \if@boxedmulticols
116: \setbox\mult@box\vbox\bgroup
117: \fi
118: \ignorespaces}
119: \newif\if@boxedmulticols
120: \@boxedmulticolsfalse
121: \newbox\mult@box
122: \def\enough@room#1{%
123: \if@boxedmulticols\else
124: \par
125: \bgroup\@nobreakfalse\addpenalty\z@\egroup
126: \page@free \pagegoal
127: \advance \page@free -\pagetotal
128: \@tempskipa#1\relax
129: \mult@info\z@
130: {Current page:\MessageBreak
131: height=%
132: \the\pagegoal: used \the\pagetotal
133: \space -> free=\the\page@free
134: \MessageBreak
135: needed \the\@tempskipa
136: \space(for #1)}%
137: \ifdim \page@free <#1\newpage \fi
138: \fi}
139: \def\prepare@multicols{%
140: \multicol@leftmargin\@totalleftmargin
141: \@totalleftmargin\z@
142: \parshape\z@
143: \doublecol@number\col@number
144: \multiply\doublecol@number\tw@
145: \advance\doublecol@number\mult@rightbox
146: \if@boxedmulticols
147: \let\l@kept@firstmark\kept@firstmark
148: \let\l@kept@botmark\kept@botmark
149: \global\let\kept@firstmark\@empty
150: \global\let\kept@botmark\@empty
151: \else
152: \nointerlineskip {\topskip\z@\null}%
153: \output{%
154: \global\setbox\partial@page\vbox
155: {%
156: \ifvoid\partial@page\else
157: \PackageError{multicol}%
158: {Error saving partial page}%
159: {The part of the page before
160: the multicols environment was
161: nearly full with^^Jthe result
162: that starting the environment
163: will produce an overfull
164: page. Some^^Jtext may be lost!
165: Please increase \premulticols
166: either generally or for this%
167: ^^Jenvironment by specifying a
168: suitable value in the second
169: optional argument to^^Jthe
170: multicols environment.}
171: \unvbox\partial@page
172: \box\last@line
173: \fi
174: \unvbox\@cclv
175: \global\setbox\last@line\lastbox
176: }%
177: \prep@keptmarks
178: \global\let\kept@topmark\firstmark
179: }\eject
180: \advance\@colroom-\ht\partial@page
181: \set@mult@vsize\relax
182: \output{\multi@column@out}%
183: \init@mult@footins
184: \reinsert@footnotes
185: \fi
186: \vbadness\@Mi \hbadness5000
187: \tolerance\multicoltolerance
188: \pretolerance\multicolpretolerance
189: \setemergencystretch\col@number\hsize
190: \set@floatcmds
191: \advance\baselineskip\multicolbaselineskip
192: \hsize\linewidth \advance\hsize\columnsep
193: \advance\hsize-\col@number\columnsep
194: \divide\hsize\col@number
195: \full@width\linewidth
196: \linewidth\hsize
197: }
198: \def\init@mult@footins{%
199: \multiply\count\footins\col@number
200: \multiply\skip \footins\col@number
201: }
202: \def\set@mult@vsize#1{%
203: \vsize\@colroom
204: \@tempdima\baselineskip
205: \advance\@tempdima-\topskip
206: \advance\vsize\@tempdima
207: \vsize\col@number\vsize
208: \advance\vsize-\@tempdima
209: #1\advance\vsize
210: \c@collectmore\baselineskip}
211: \newdimen\multicol@leftmargin
212: \def\endmulticols{\par
213: \if@boxedmulticols
214: \egroup
215: \balance@columns
216: \return@nonemptymark{first}%
217: \kept@firstmark
218: \return@nonemptymark{bot}%
219: \kept@botmark
220: \page@sofar
221: \global\let\kept@firstmark
222: \l@kept@firstmark
223: \global\let\kept@botmark
224: \l@kept@botmark
225: \mult@info\tw@
226: {Restore kept marks to\MessageBreak
227: first: \meaning\kept@firstmark
228: \MessageBreak bot\space\space:
229: \meaning\kept@botmark }%
230: \else
231: \penalty\z@
232: \output{\balance@columns@out}\eject
233: \ifvbox\partial@page
234: \unvbox\partial@page\fi
235: \global\let\kept@firstmark\@empty
236: \global\let\kept@botmark\@empty
237: \mult@info\tw@
238: {Make kept marks empty}%
239: \fi
240: \@checkend{multicols}%
241: \endgroup
242: \if@boxedmulticols\else
243: \reinsert@footnotes
244: \fi
245: \global\c@unbalance\z@
246: \enough@room\postmulticols
247: \addvspace\multicolsep
248: \mult@info\z@
249: {Ending environment
250: \if@boxedmulticols
251: \space(boxed mode)\fi
252: }}
253: \newcount\c@unbalance
254: \newcount\c@collectmore
255: \newcount\doublecol@number
256: \newcount\multicoltolerance
257: \newcount\multicolpretolerance
258: \newdimen\full@width
259: \newdimen\page@free
260: \newdimen\premulticols
261: \newdimen\postmulticols
262: \newskip\multicolsep
263: \newskip\multicolbaselineskip
264: \newbox\partial@page
265: \newbox\last@line
266: \c@unbalance = 0
267: \c@collectmore = 0
268: \col@number = 1
269: \multicoltolerance = 9999
270: \multicolpretolerance = -1
271: \premulticols = 50pt
272: \postmulticols= 20pt
273: \multicolsep = 12pt plus 4pt minus 3pt
274: \multicolbaselineskip=0pt
275: \def\process@cols#1#2{\count@#1\relax
276: \loop
277: #2%
278: \advance\count@\tw@
279: \ifnum\count@<\doublecol@number
280: \repeat}
281: \def\page@sofar{%
282: \process@cols\mult@rightbox
283: {\wd\count@\hsize}%
284: \mult@info\z@
285: {Column spec:\MessageBreak
286: (\the\multicol@leftmargin\space -->
287: \the\full@width\space = \the\hsize
288: \space x \the\col@number)%
289: }%
290: \ifvmode\else\errmessage{Multicol Error}\fi
291: \moveright\multicol@leftmargin
292: \hbox to\full@width{%
293: \process@cols\mult@gfirstbox{\box\count@
294: \hss\vrule\@width\columnseprule\hss}%
295: \box\mult@rightbox
296: \rlap{\phantom p}%
297: }%
298: }
299: \def\reinsert@footnotes{\ifvoid\footins\else
300: \insert\footins{}\fi}
301: \def\multi@column@out{%
302: \ifnum\outputpenalty <-\@M
303: \speci@ls \else
304: \splittopskip\topskip
305: \splitmaxdepth\maxdepth
306: \dimen@\@colroom
307: \divide\skip\footins\col@number
308: \ifvoid\footins \else
309: \leave@mult@footins
310: \fi
311: \process@cols\mult@gfirstbox{%
312: \setbox\count@
313: \vsplit\@cclv to\dimen@
314: \set@keptmarks
315: \ifshr@nking
316: \setbox\count@
317: \vbox to\dimen@
318: {\unvbox\count@\vfill}%
319: \fi
320: }%
321: \setbox\mult@rightbox
322: \vsplit\@cclv to\dimen@
323: \set@keptmarks
324: \ifshr@nking
325: \setbox\mult@rightbox\vbox to\dimen@
326: {\unvbox\mult@rightbox\vfill}%
327: \fi
328: \ifvoid\@cclv \else
329: \unvbox\@cclv
330: \penalty\outputpenalty
331: \ifvoid\footins\else
332: \PackageWarning{multicol}%
333: {I moved some lines to
334: the next page.\MessageBreak
335: Footnotes on page
336: \thepage\space might be wrong}%
337: \fi
338: \ifnum \c@tracingmulticols>\thr@@
339: \hrule\allowbreak \fi
340: \fi
341: \ifx\@empty\kept@firstmark
342: \let\firstmark\kept@topmark
343: \let\botmark\kept@topmark
344: \else
345: \let\firstmark\kept@firstmark
346: \let\botmark\kept@botmark
347: \fi
348: \let\topmark\kept@topmark
349: \mult@info\tw@
350: {Use kept top mark:\MessageBreak
351: \meaning\kept@topmark
352: \MessageBreak
353: Use kept first mark:\MessageBreak
354: \meaning\kept@firstmark
355: \MessageBreak
356: Use kept bot mark:\MessageBreak
357: \meaning\kept@botmark
358: \MessageBreak
359: Produce first mark:\MessageBreak
360: \meaning\firstmark
361: \MessageBreak
362: Produce bot mark:\MessageBreak
363: \meaning\botmark
364: \@gobbletwo}%
365: \setbox\@cclv\vbox{\unvbox\partial@page
366: \page@sofar}%
367: \@makecol\@outputpage
368: \global\let\kept@topmark\botmark
369: \global\let\kept@firstmark\@empty
370: \global\let\kept@botmark\@empty
371: \mult@info\tw@
372: {(Re)Init top mark:\MessageBreak
373: \meaning\kept@topmark
374: \@gobbletwo}%
375: \global\@colroom\@colht
376: \process@deferreds
377: \@whilesw\if@fcolmade\fi{\@outputpage
378: \global\@colroom\@colht
379: \process@deferreds}%
380: \mult@info\@ne
381: {Colroom:\MessageBreak
382: \the\@colht\space
383: after float space removed
384: = \the\@colroom \@gobble}%
385: \set@mult@vsize \global
386: \fi}
387: \def\leave@mult@footins{%
388: \advance\dimen@-\skip\footins
389: \advance\dimen@-\ht\footins
390: }
391: \def\speci@ls{%
392: \ifnum\outputpenalty <-\@Mi
393: \PackageWarning{multicol}%
394: {Floats and marginpars not
395: allowed inside `multicols'
396: environment!
397: \@gobble}%
398: \unvbox\@cclv\reinsert@footnotes
399: \xdef\@freelist{\@freelist\@currlist}%
400: \gdef\@currlist{}%
401: \else \@doclearpage \fi
402: }
403: \def\process@deferreds{%
404: \@floatplacement
405: \@tryfcolumn\@deferlist
406: \if@fcolmade\else
407: \begingroup
408: \let\@tempb\@deferlist
409: \gdef\@deferlist{}%
410: \let\@elt\@scolelt
411: \@tempb \endgroup
412: \fi}
413: \newif\ifshr@nking
414: \def\raggedcolumns{%
415: \@bsphack\shr@nkingtrue\@esphack}
416: \def\flushcolumns{%
417: \@bsphack\shr@nkingfalse\@esphack}
418: \def\balance@columns@out{%
419: \setbox\mult@box\vbox{\unvbox\@cclv}%
420: \balance@columns
421: \global\vsize\@colroom
422: \global\advance\vsize\ht\partial@page
423: \unvbox\partial@page
424: \return@nonemptymark{first}\kept@firstmark
425: \return@nonemptymark{bot}\kept@botmark
426: \page@sofar
427: \penalty\z@
428: }
429: \def\balance@columns{%
430: \setbox\mult@box\vbox{%
431: \penalty-\@M
432: \unvbox\mult@box
433: \remove@discardable@items
434: }%
435: \get@keptmarks\mult@box
436: \@tempdima\topskip
437: \splittopskip\@tempdima
438: \@plus\multicolundershoot
439: \@minus\multicolovershoot
440: \splitmaxdepth\maxdepth
441: \setbox\@tempboxa\vsplit\mult@box to\z@
442: \@tempdima\ht\mult@box
443: \advance\@tempdima\dp\mult@box
444: \divide\@tempdima\col@number
445: \count@\@tempdima
446: \divide\count@\baselineskip
447: \dimen@\count@\baselineskip
448: \advance\dimen@\topskip
449: \ifdim \dimen@ >\@tempdima
450: \advance\dimen@-\baselineskip
451: \fi
452: \advance\dimen@\c@unbalance\baselineskip
453: \mult@info\@ne
454: {Balance columns\on@line:
455: \ifnum\c@unbalance=\z@\else
456: (off balance=\number\c@unbalance)\fi
457: \@gobbletwo}%
458: \ifnum\dimen@<\topskip
459: \mult@info\@ne
460: {Start value
461: \the\dimen@ \space ->
462: \the\topskip \space (corrected)}%
463: \dimen@\topskip
464: \fi
465: \vbadness\@M
466: \vfuzz \col@number\baselineskip
467: \last@try-\p@
468: \loop
469: {\process@cols\mult@grightbox
470: {\global\setbox\count@
471: \box\voidb@x}}%
472: \global\setbox\mult@grightbox
473: \copy\mult@box
474: \global\too@badfalse
475: {\process@cols\mult@firstbox{%
476: \global\setbox\count@
477: \vsplit\mult@grightbox to\dimen@
478: \ifnum\c@tracingmulticols>\@ne
479: \@tempcnta\count@
480: \advance\@tempcnta-\mult@grightbox
481: \divide\@tempcnta \tw@
482: \message{^^JColumn
483: \number\@tempcnta\space
484: badness: \the\badness\space}%
485: \fi
486: \ifnum\badness>\c@columnbadness
487: \ifnum\c@tracingmulticols>\@ne
488: \message{too bad
489: (>\the\c@columnbadness)}%
490: \fi
491: \global\too@badtrue
492: \fi
493: }}%
494: \boxmaxdepth\maxdepth
495: \global\setbox\mult@grightbox
496: \vbox{\unvbox\mult@grightbox}%
497: \setbox\mult@nat@firstbox
498: \vbox{\unvcopy\mult@firstbox}%
499: \ifnum\c@tracingmulticols>\@ne
500: \message{^^JFirst column
501: = \the\dimen@\space
502: (\the\ht\mult@nat@firstbox)}\fi
503: \ifshr@nking
504: \global\setbox\mult@firstbox
505: \copy\mult@nat@firstbox
506: \fi
507: \ifnum\c@tracingmulticols>\@ne
508: \message{<> last column =
509: \the\ht\mult@grightbox^^J}%
510: \fi
511: \ifdim\ht\mult@grightbox >\dimen@
512: \too@badtrue
513: \else
514: \global\setbox\mult@grightbox
515: \vbox to\dimen@
516: {\unvbox\mult@grightbox}%
517: \ifnum\c@tracingmulticols>\@ne
518: \message{Final badness:
519: \the\badness}%
520: \fi
521: \ifnum\badness>\c@finalcolumnbadness
522: \global\setbox\mult@grightbox
523: \vbox to\dimen@
524: {\unvbox\mult@grightbox\vfill}%
525: \ifnum\c@tracingmulticols>\@ne
526: \message{ setting natural
527: (> \the\c@finalcolumnbadness)}%
528: \fi
529: \fi
530: \fi
531: \ifdim\ht\mult@nat@firstbox<\dimen@
532: \ifdim\ht\mult@nat@firstbox>\last@try
533: \too@badtrue
534: \dimen@\ht\mult@nat@firstbox
535: \last@try\dimen@
536: \advance\dimen@-\p@
537: \fi
538: \fi
539: \iftoo@bad
540: \advance\dimen@\p@
541: \repeat
542: \dimen@\ht\mult@firstbox
543: \ifdim\dimen@>\@colroom
544: \dimen@\@colroom
545: \fi
546: \process@cols\mult@rightbox
547: {\@tempcnta\count@
548: \advance\@tempcnta\@ne
549: \setbox\count@\vbox to\dimen@
550: {%
551: \vskip \z@
552: \@plus-\multicolundershoot
553: \@minus-\multicolovershoot
554: \unvbox\@tempcnta
555: \ifshr@nking\vfill\fi}}%
556: }
557: \newbox\mult@rightbox
558: \newbox\mult@grightbox
559: \newbox\mult@gfirstbox
560: \newbox\mult@firstbox
561: \newbox\@tempa\newbox\@tempa
562: \newbox\@tempa\newbox\@tempa
563: \newbox\@tempa\newbox\@tempa
564: \newbox\@tempa\newbox\@tempa
565: \newbox\@tempa\newbox\@tempa
566: \newbox\@tempa\newbox\@tempa
567: \newbox\@tempa\newbox\@tempa
568: \newbox\@tempa\newbox\@tempa
569: \newbox\@tempa
570: \let\@tempa\relax
571: \@ifundefined{emergencystretch}
572: {\newdimen\emergencystretch}{}
573: \def\setemergencystretch#1#2{%
574: \emergencystretch 4pt
575: \multiply\emergencystretch#1}
576:
577: \def\set@floatcmds{%
578: \let\@dblfloat\@dbflt
579: \def\end@dblfloat{\par
580: \vskip\z@
581: \color@endgroup
582: \outer@nobreak
583: \egroup
584: \ifnum\@floatpenalty<\z@
585: \@cons\@deferlist\@currbox
586: \fi
587: \ifnum\@floatpenalty=-\@Mii
588: \@Esphack
589: \fi}}
590: \def\kept@topmark{{}{}}
591: \let\kept@firstmark\@empty
592: \let\kept@botmark\@empty
593: \def\return@nonemptymark#1#2{%
594: \ifx#2\@empty
595: \else
596: \mult@info\tw@
597: {Returned #1 mark:\MessageBreak
598: \meaning#2}%
599: \toks@\expandafter{#2}%
600: \mark{\the\toks@}%
601: \nobreak
602: \fi}
603: \def\get@keptmarks#1{%
604: \begingroup
605: \vbadness\@M
606: \setbox#1\copy#1%
607: \setbox#1\vsplit#1to\maxdimen
608: \set@keptmarks
609: \endgroup
610: }
611: \def\set@keptmarks{%
612: \ifx\kept@firstmark\@empty
613: \expandafter\gdef\expandafter
614: \kept@firstmark
615: \expandafter{\splitfirstmark}%
616: \ifx\kept@firstmark\@empty\else
617: \mult@info\tw@
618: {Set kept first mark:\MessageBreak
619: \meaning\kept@firstmark%
620: \@gobbletwo}%
621: \fi
622: \fi
623: \expandafter\def\expandafter\@tempa
624: \expandafter{\splitbotmark}%
625: \ifx\@tempa\@empty\else
626: \global\let\kept@botmark\@tempa
627: \mult@info\tw@
628: {Set kept bot mark:\MessageBreak
629: \meaning\kept@botmark%
630: \@gobbletwo}%
631: \fi}%
632: \def\prep@keptmarks{%
633: \if@boxedmulticols \else
634: \get@keptmarks\partial@page
635: \fi}
636: \def\remove@discardable@items{%
637: \unskip\unpenalty\unkern
638: \unskip\unpenalty\unkern
639: \unskip\unpenalty\unkern
640: \unskip\unpenalty\unkern
641: }
642: \newif\iftoo@bad
643: \newcount\c@columnbadness
644: \c@columnbadness=10000
645: \newcount\c@finalcolumnbadness
646: \c@finalcolumnbadness=9999
647:
648: \newdimen\last@try
649:
650: \newdimen\multicolovershoot
651: \multicolovershoot=2pt
652: \newdimen\multicolundershoot
653: \multicolundershoot=2pt
654: \newbox\mult@nat@firstbox
655: \def\mult@info#1#2{%
656: \ifnum\c@tracingmulticols>#1%
657: \GenericWarning
658: {(multicol)\@spaces\@spaces}%
659: {Package multicol: #2}%
660: \fi
661: }
662:
663: %%
664: \newwrite\example@out
665: \newenvironment{example}%
666: {\begingroup% Lets Keep the Changes Local
667: \@bsphack
668: \immediate\openout \example@out \jobname.exa
669: \let\do\@makeother\dospecials\catcode`\^^M\active
670: \def\verbatim@processline{%
671: \immediate\write\example@out{\the\verbatim@line}}%
672: \verbatim@start}%
673: {\immediate\closeout\example@out\@esphack\endgroup%
674: \par\small\addvspace{3ex plus 1ex}\vskip -\parskip
675: \noindent
676: \makebox[0.45\linewidth][l]{%
677: \begin{minipage}[t]{0.45\linewidth}
678: \vspace*{-2ex}
679: \setlength{\parindent}{0pt}
680: \setlength{\parskip}{1ex plus 0.4ex minus 0.2ex}
681: \begin{trivlist}
682: \item\input{\jobname.exa}
683: \end{trivlist}
684: \end{minipage}}%
685: \hfill%
686: \makebox[0.5\linewidth][l]{%
687: \begin{minipage}[t]{0.50\linewidth}
688: \vspace*{-1ex}
689: \verbatiminput{\jobname.exa}
690: \end{minipage}}
691: \par\addvspace{3ex plus 1ex}\vskip -\parskip
692: }
693: %%
694: \newwrite\capacode@out
695: \newenvironment{capacode}%
696: {\begingroup%
697: \@bsphack
698: \immediate\openout \capacode@out \jobname.exa
699: \let\do\@makeother\dospecials\catcode`\^^M\active
700: \def\verbatim@processline{%
701: \immediate\write\capacode@out{\the\verbatim@line}}%
702: \verbatim@start}%
703: {\immediate\closeout\capacode@out\@esphack\endgroup%
704: \par\small\addvspace{3ex plus 1ex}\vskip -\parskip
705: \centerline{\noindent
706: \makebox[0.95\linewidth][l]{%
707: \fbox{\footnotesize
708: \begin{minipage}[t]{.95\linewidth}
709: \vspace*{1ex}
710: \verbatiminput{\jobname.exa}
711: \end{minipage}}
712: } }
713: \par\addvspace{3ex plus 1ex}\vskip -\parskip
714: }
715: \endinput
716: %%
717: %% End of file `multicol.sty'.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>