summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tools/multicol.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/tools/multicol.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tools/multicol.sty206
1 files changed, 129 insertions, 77 deletions
diff --git a/Master/texmf-dist/tex/latex/tools/multicol.sty b/Master/texmf-dist/tex/latex/tools/multicol.sty
index 81add474837..652dc29b15a 100644
--- a/Master/texmf-dist/tex/latex/tools/multicol.sty
+++ b/Master/texmf-dist/tex/latex/tools/multicol.sty
@@ -4,11 +4,15 @@
%%
%% The original source files were:
%%
-%% multicol.dtx (with options: `package,badness,check,marktrace,nobalance,colbreak')
+%% multicol.dtx (with options: `package,badness,check,marktrace,nobalance')
%%
%% This is a generated file.
%%
-%% Copyright 1993-2014
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at http://latex-project.org/bugs.html
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%% Copyright 1993-2015
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -31,7 +35,7 @@
%% given in the file `manifest.txt'.
%%
%% Package `multicol' to use with LaTeX2e
-%% Copyright 1989-2014 Frank Mittelbach
+%% Copyright 1989-2015 Frank Mittelbach
%%
%% In addition to the terms of LPPL any distributed version
%% (unchanged or modified) of multicol has to keep the statement
@@ -96,8 +100,8 @@
%%
\NeedsTeXFormat{LaTeX2e}[1997/12/01]
\ProvidesPackage{multicol}
- [2014/10/28 v1.8i multicolumn formatting (FMi)]
-%% \CheckSum{1853}
+ [2015/03/31 v1.8m multicolumn formatting (FMi)]
+%% \CheckSum{1891}
%% \CharacterTable
%% {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
%% 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
@@ -324,7 +328,8 @@
\unvbox\colbreak@box\fi
\fi
\penalty\z@
- \output{\balance@columns@out}\eject
+ \output{\balance@columns@out}%
+ \eject
\ifvbox\partial@page
\unvbox\partial@page\fi
\global\let\kept@firstmark\@empty
@@ -414,19 +419,22 @@
\def\columnseprulecolor{\normalcolor}
\def\reinsert@footnotes{\ifvoid\footins\else
\insert\footins{}\fi}
-\def\vfillmaxdepth{\vskip \z@ \@plus 1fill \@minus \maxdepth}
+\def\vfilmaxdepth{\vskip \z@ \@plus .0001fil
+ \@minus \maxdepth}
\def\multi@column@out{%
\ifnum\outputpenalty <-\@M
- \speci@ls \else
- \ifvoid\colbreak@box\else
- \mult@info\@ne{Re-adding forced
- break(s) for splitting}%
- \setbox\@cclv\vbox{%
- \unvbox\colbreak@box
- \penalty-\@Mv\unvbox\@cclv}%
- \fi
+ \speci@ls \else
+ \ifvoid\colbreak@box\else
+ \mult@info\@ne{Re-adding forced
+ break(s) for splitting}%
+ \setbox\@cclv\vbox{%
+ \unvbox\colbreak@box
+ \penalty-\@Mv
+ \unvbox\@cclv}%
+ \fi
\splittopskip\topskip
\splitmaxdepth\maxdepth
+ \boxmaxdepth\maxdepth
\dimen@\@colroom
\divide\skip\footins\col@number
\ifvoid\footins \else
@@ -446,16 +454,14 @@
\setbox\count@
\vbox to\dimen@
{\unvbox\count@
- \remove@discardable@items
- \ifshr@nking\vfillmaxdepth\fi}%
+ \ifshr@nking\vfilmaxdepth\fi}%
}%
\setbox\mult@rightbox
\vsplit\@cclv to\dimen@
\set@keptmarks
\setbox\mult@rightbox\vbox to\dimen@
{\unvbox\mult@rightbox
- \remove@discardable@items
- \ifshr@nking\vfillmaxdepth\fi}%
+ \ifshr@nking\vfilmaxdepth\fi}%
\let\ifshr@king\ifshr@kingsaved
\ifvoid\@cclv \else
\unvbox\@cclv
@@ -536,18 +542,26 @@
break seen}%
\global\advance\vsize-\pagetotal
\global\setbox\colbreak@box
- \vbox{\ifvoid\colbreak@box
- \else
- \unvbox\colbreak@box
- \penalty-\@Mv
- \fi
- \unvbox\@cclv}
+ \vbox{%
+ \ifvoid\colbreak@box
+ \else
+ \unvbox\colbreak@box
+ \penalty-\@Mv
+ \fi
+ \boxmaxdepth\maxdepth
+ \setbox\@cclv\vbox{%
+ \unvbox\@cclv
+ \remove@discardable@items}%
+ \dimen@\dp\@cclv
+ \unvbox\@cclv
+ \kern-\dimen@
+ }%
\reinsert@footnotes
\else
\PackageWarningNoLine{multicol}%
{Floats and marginpars not
allowed inside `multicols'
- environment!}
+ environment!}%
\unvbox\@cclv\reinsert@footnotes
\xdef\@freelist{\@freelist\@currlist}%
\gdef\@currlist{}%
@@ -573,11 +587,14 @@
\def\balance@columns@out{%
\setbox\mult@box\vbox{%
\ifvoid\colbreak@box\else
- \unvbox\colbreak@box\break
+ \unvbox\colbreak@box
+ \penalty-\@Mv
\mult@info\@ne{Re-adding
forced break(s) in balancing}%
\fi
- \unvbox\@cclv}%
+ \unvbox\@cclv
+ \remove@discardable@items
+ }%
\balance@columns
\iftoo@bad
\mult@info\@ne
@@ -588,7 +605,6 @@
\vskip-\splittopskip
\unvbox\mult@box}%
\multi@column@out
- \break
\else
\global\vsize\@colroom
\global\advance\vsize\ht\partial@page
@@ -606,7 +622,6 @@
\setbox\mult@box\vbox{%
\penalty-\@M
\unvbox\mult@box
- \remove@discardable@items
}%
\@tempdima\topskip
\splittopskip\@tempdima
@@ -648,13 +663,13 @@
\global\setbox\mult@grightbox
\copy\mult@box
\too@badfalse
+ \forcedbreak@leftoverfalse
{\process@cols\mult@firstbox{%
\global\setbox\count@
\vsplit\mult@grightbox to\dimen@
\global\setbox\count@
\vbox to\dimen@
- {\unvbox\count@
- \remove@discardable@items}%
+ {\unvbox\count@}%
\ifnum\c@tracingmulticols>\@ne
\@tempcnta\count@
\advance\@tempcnta-\mult@grightbox
@@ -704,18 +719,28 @@
\ifnum\badness>\c@finalcolumnbadness
\global\setbox\mult@grightbox
\vbox to\dimen@
- {\unvbox\mult@grightbox\vfillmaxdepth}%
+ {\unvbox\mult@grightbox\vfil}%
\ifnum\c@tracingmulticols>\@ne
\message{ setting natural
(> \the\c@finalcolumnbadness)}%
\fi
\fi
\else
+ \@tempdima\@colroom
+ \advance\@tempdima \maxbalancingoverflow
+ \ifdim \dimen@ < \@tempdima
\too@badtrue
- \ifnum\c@tracingmulticols>\@ne
- \typeout{Rejected: unprocessed
- forced break(s) in last column!}%
- \fi
+ \ifnum\c@tracingmulticols>\@ne
+ \typeout{Rejected: unprocessed
+ forced break(s) in last column!}%
+ \fi
+ \else
+ \forcedbreak@leftovertrue
+ \ifnum\c@tracingmulticols>\@ne
+ \typeout{Failed: columns too large
+ with unprocessed forced break(s)!}%
+ \fi
+ \fi
\fi
\fi
\ifdim\ht\mult@nat@firstbox<\dimen@
@@ -733,42 +758,46 @@
\iftoo@bad
\advance\dimen@\p@
\repeat
- \if@boxedmulticols\else
- \ifdim\dimen@>\@colroom
- \dimen@\@colroom
+ \ifforcedbreak@leftover
+ \too@badtrue
+ \else
+ \if@boxedmulticols\else
+ \ifdim\dimen@>\@colroom
+ \dimen@\@colroom
+ \fi
\fi
- \fi
- \process@cols\mult@rightbox
- {\@tempcnta\count@
- \advance\@tempcnta\@ne
- \vfuzz\z@
- \setbox\count@\vbox to\dimen@
- {%
- \vskip \z@
- \@plus-\multicolundershoot
- \@minus-\multicolovershoot
- \unvbox\@tempcnta
- \ifshr@nking\vfillmaxdepth\fi
- }%
- \ifnum\badness>\@M
- \vfuzz\maxdimen % no overfull warning
- \setbox\@tempboxa \vbox to\dimen@
- {\vskip-\maxbalancingoverflow
- \unvcopy\count@}%
+ \process@cols\mult@rightbox
+ {\@tempcnta\count@
+ \advance\@tempcnta\@ne
+ \vfuzz\z@
+ \setbox\count@\vbox to\dimen@
+ {%
+ \vskip \z@
+ \@plus-\multicolundershoot
+ \@minus-\multicolovershoot
+ \unvbox\@tempcnta
+ \ifshr@nking\vfilmaxdepth\fi
+ }%
\ifnum\badness>\@M
- \mult@info\@ne
- {Balanced column more than
- \the\maxbalancingoverflow\space
- too large}%
- \too@badtrue
- \else
- \mult@info\@ne
- {Balanced column
- too large, but less than
- \the\maxbalancingoverflow}%
+ \vfuzz\maxdimen % no overfull warning
+ \setbox\@tempboxa \vbox to\dimen@
+ {\vskip-\maxbalancingoverflow
+ \unvcopy\count@}%
+ \ifnum\badness>\@M
+ \mult@info\@ne
+ {Balanced column more than
+ \the\maxbalancingoverflow\space
+ too large}%
+ \too@badtrue
+ \else
+ \mult@info\@ne
+ {Balanced column
+ too large, but less than
+ \the\maxbalancingoverflow}%
+ \fi
\fi
- \fi
- }%
+ }%
+ \fi
}
\newdimen\maxbalancingoverflow
\maxbalancingoverflow=12pt
@@ -850,15 +879,31 @@
\if@boxedmulticols \else
\get@keptmarks\partial@page
\fi}
+\skip0=0pt
+\edef\the@zero@skip{\the\skip0}
\def\remove@discardable@items{%
- \unskip\unpenalty\unkern
- \unskip\unpenalty\unkern
- \unskip\unpenalty\unkern
- \unskip\unpenalty\unkern
+ \unpenalty
+ \edef\@tempa{\the\lastskip}%
+ \unskip
+ \ifx\@tempa\the@zero@skip
+ \edef\@tempb{\the\lastskip}%
+ \ifx\@tempb\the@zero@skip
+ \else
+ \unskip
+ \ifnum \lastpenalty=\@M
+ \vskip\@tempb\vskip\@tempa\relax
+ \else
+ \remove@discardable@items
+ \fi
+ \fi
+ \else
+ \remove@discardable@items
+ \fi
}
\newif\iftoo@bad
\def\too@badtrue{\global\let\iftoo@bad\iftrue}
\def\too@badfalse{\global\let\iftoo@bad\iffalse}
+\newif\ifforcedbreak@leftover
\newcount\c@columnbadness
\c@columnbadness=10000
\newcount\c@finalcolumnbadness
@@ -890,9 +935,16 @@
\fi
\begin{multicols}
}
- \@namedef{endmulticols*}{\ifshr@nking\else
- \vfillmaxdepth\nointerlineskip\null
- \fi
+\@namedef{endmulticols*}{%
+ \ifdim\lastskip>\z@ \vskip-\lastskip \fi
+ \ifdim \prevdepth>\z@
+ \vskip-\ifdim\prevdepth>\boxmaxdepth
+ \boxmaxdepth
+ \else \prevdepth \fi
+ \fi
+ \ifshr@nking\else
+ \vfil
+ \fi
\end{multicols}}
\mathchardef\@Mv=10005
\def\columnbreak{%