diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tools/multicol.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/tools/multicol.sty | 206 |
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{% |