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.sty121
1 files changed, 77 insertions, 44 deletions
diff --git a/Master/texmf-dist/tex/latex/tools/multicol.sty b/Master/texmf-dist/tex/latex/tools/multicol.sty
index c0de0fe6823..4f11a7584fc 100644
--- a/Master/texmf-dist/tex/latex/tools/multicol.sty
+++ b/Master/texmf-dist/tex/latex/tools/multicol.sty
@@ -107,7 +107,7 @@
\DeclareCurrentRelease{}{2018-04-01}
\ProvidesPackage{multicol}
- [2019/12/09 v1.8y multicolumn formatting (FMi)]
+ [2021/10/28 v1.9b multicolumn formatting (FMi)]
%%
\DeclareOption{twocolumn}
{\PackageWarning{multicol}{May not work
@@ -124,7 +124,8 @@
\DeclareOption{debugshow}
{\c@tracingmulticols5\relax}
\let\mc@gridwarn\maxdimen
-\DeclareOption{grid}{\def\mc@gridwarn{\@maxdepth}}
+\DeclareOption{grid}
+ {\def\mc@gridwarn{\@maxdepth}}
\DeclareOption{colaction}{%
\def\mc@col@status@write{%
\protected@write\@auxout{}%
@@ -153,7 +154,8 @@
\MessageBreak
I therefore use 20 columns instead}%
\col@number20 \fi
- \ifx\@footnotetext\mult@footnotetext\else
+ \ifx\@footnotetext\mult@footnotetext
+ \else
\let\orig@footnotetext\@footnotetext
\let\@footnotetext\mult@footnotetext
\fi
@@ -267,10 +269,13 @@
\def\clearpage{%
\ifx\@deferlist\@empty\else
\PackageError{multicol}%
- {Deferred floats not cleared}%
- {A \string\clearpage\space inside multicols acts like
- \string\newpage\space and doesn't clear floats.\MessageBreak
- Move it before the multicols environment if you need it.}%
+ {Deferred floats not cleared}%
+ {A \string\clearpage\space inside
+ multicols acts like
+ \string\newpage\space and doesn't
+ clear floats.\MessageBreak
+ Move it before the multicols
+ environment if you need it.}%
\fi
\newpage}%
\fi
@@ -302,10 +307,12 @@
#1\advance\vsize
\c@collectmore\baselineskip}
\newdimen\multicol@leftmargin
-\mathchardef\@Mvi=10006 % 10005 is \columnbreak
+\mathchardef\@Mvi=10006 % 10005 is
+ % \columnbreak
\def\endmulticols{\par
\if@boxedmulticols
- \remove@discardable@items\color@endgroup\egroup
+ \remove@discardable@items
+ \color@endgroup\egroup
\balance@columns
\return@nonemptymark{first}%
\kept@firstmark
@@ -320,7 +327,7 @@
{Restore kept marks to\MessageBreak
first: \meaning\kept@firstmark
\MessageBreak bot\space\space:
- \meaning\kept@botmark }%
+ \meaning\kept@botmark }%
\else
\ifdim\pagegoal=\maxdimen
\ifvoid\colbreak@box\else
@@ -421,7 +428,7 @@
\def\reinsert@footnotes{\ifvoid\footins\else
\insert\footins{}\fi}
\def\vfilmaxdepth{\vskip \z@ \@plus .0001fil
- \@minus \@maxdepth}
+ \@minus \@maxdepth}
\def\multi@column@out{%
\ifnum\outputpenalty <-\@M
\speci@ls \else
@@ -441,21 +448,21 @@
\ifvoid\footins \else
\leave@mult@footins
\fi
-
\ifvbox \@kludgeins
\advance \dimen@ -\ht\@kludgeins
\ifdim \wd\@kludgeins>\z@
\shr@nkingtrue
\fi
\fi
- \process@cols\mult@gfirstbox{%
+ \process@cols\mult@firstbox{%
\setbox\count@
\vsplit\@cclv to\dimen@
\set@keptmarks
\setbox\count@
\vbox to\dimen@
{\unvbox\count@
- \ifshr@nking\vfilmaxdepth\fi}%
+ \ifshr@nking
+ \vfilmaxdepth\fi}%
}%
\setbox\mult@rightbox
\vsplit\@cclv to\dimen@
@@ -561,8 +568,11 @@
\reinsert@footnotes
\else
\ifnum\outputpenalty = -\@Mvi
- \mult@info\@ne{End penalty of multicols seen}%
- \outputpenalty\@M % pretend we had a natural forced break
+ \mult@info\@ne{End penalty of
+ multicols seen}%
+ \outputpenalty\@M % pretend we had
+ % a natural
+ % forced break
\balance@columns@out
\else
\PackageWarningNoLine{multicol}%
@@ -570,7 +580,8 @@
allowed inside `multicols'
environment!}%
\unvbox\@cclv\reinsert@footnotes
- \xdef\@freelist{\@freelist\@currlist}%
+ \xdef\@freelist{\@freelist
+ \@currlist}%
\gdef\@currlist{}%
\fi
\fi
@@ -618,10 +629,12 @@
\else
\global\vsize\@colroom
\global\advance\vsize\ht\partial@page
- \ifvbox\@kludgeins\insert\@kludgeins
- {\unvbox\@kludgeins}\fi
+ \ifvbox\@kludgeins
+ \insert\@kludgeins
+ {\unvbox\@kludgeins}\fi
\unvbox\partial@page
- \return@nonemptymark{first}\kept@firstmark
+ \return@nonemptymark{first}%
+ \kept@firstmark
\return@nonemptymark{bot}\kept@botmark
\page@sofar
\penalty\z@
@@ -651,12 +664,14 @@
\advance\dimen@-\baselineskip
\fi
\@tempdima\dimexpr
- \topskip +\c@minrows\baselineskip-\baselineskip\relax
+ \topskip +\c@minrows\baselineskip
+ -\baselineskip\relax
\ifnum\dimen@<\@tempdima
\mult@info\@ne
{Start value
\the\dimen@ \space ->
- \the\@tempdima \space (corrected for minrows)}%
+ \the\@tempdima \space
+ (corrected for minrows)}%
\dimen@\@tempdima
\fi
\advance\dimen@\c@unbalance\baselineskip
@@ -683,7 +698,7 @@
\copy\mult@box
\too@badfalse
\forcedbreak@leftoverfalse
- {\process@cols\mult@firstbox{%
+ {\process@cols\mult@gfirstbox{%
\global\setbox\count@
\vsplit\mult@grightbox to\dimen@
\global\setbox\count@
@@ -708,7 +723,7 @@
\global\setbox\mult@grightbox
\vbox{\unvbox\mult@grightbox}%
\setbox\mult@nat@firstbox
- \vbox{\unvcopy\mult@firstbox}%
+ \vbox{\unvcopy\mult@gfirstbox}%
\ifnum\c@tracingmulticols>\@ne
\message{^^JFirst column
= \the\dimen@\space
@@ -821,13 +836,15 @@
\newdimen\maxbalancingoverflow
\maxbalancingoverflow=12pt
-\ifnum\numexpr \count20-\count14-1<41 % = 2 * 20 + 1
+\ifnum\numexpr
+ \count20-\count14-1<40
+ % this is = 2 * 20
\count14=\@cclv
\fi
\newbox\mult@rightbox
\newbox\mult@grightbox
-\newbox\mult@gfirstbox
\newbox\mult@firstbox
+\newbox\mult@gfirstbox
\newbox\@tempa\newbox\@tempa
\newbox\@tempa\newbox\@tempa
\newbox\@tempa\newbox\@tempa
@@ -846,7 +863,6 @@
\newbox\@tempa\newbox\@tempa
\newbox\@tempa\newbox\@tempa
\newbox\@tempa\newbox\@tempa
-\newbox\@tempa
\let\@tempa\relax
\@ifundefined{emergencystretch}
{\newdimen\emergencystretch}{}
@@ -982,24 +998,41 @@
\fi
\end{multicols}}
\mathchardef\@Mv=10005
-\def\columnbreak{%
- \ifnum\col@number<\tw@
- \PackageError{multicol}%
- {\noexpand\columnbreak outside multicols}%
- {This command can only be used within
- a multicols or multicols* environment.}%
- \else
- \ifvmode
- \penalty -\@Mv\relax
+\newcommand\columnbreak[1][4]{%
+ \ifnum\col@number<\tw@
+ \PackageError{multicol}%
+ {\noexpand\columnbreak outside multicols}%
+ {This command can only be used within
+ a multicols or multicols* environment.}%
+ \else
+ \edef\mc@break@pen
+{-\ifcase#1\@m\or 3333\or 6666\or 9999\else\@Mv\fi\relax}%
+ \ifvmode
+ \penalty \mc@break@pen
+ \else
+ \@bsphack
+ \vadjust{\penalty \mc@break@pen}%
+ \@esphack
+ \fi
+ \fi}
+\newcommand\newcolumn{%
+ \ifnum\col@number<\tw@
+ \PackageError{multicol}%
+ {\noexpand\newcolumn outside multicols}%
+ {This command can only be used within
+ a multicols or multicols* environment.}%
\else
- \@bsphack
- \vadjust{\penalty -\@Mv\relax}%
- \@esphack
- \fi
- \fi}
+ \ifvmode
+ \nobreak\vfill\penalty -\@Mv\relax
+ \else
+ \@bsphack
+ \vadjust{\nobreak\vfill\kern\z@\penalty -\@Mv\relax}%
+ \@esphack
+ \fi
+ \fi}
\newbox\colbreak@box
\def\LR@column@boxes{%
- \process@cols\mult@gfirstbox{%
+ \process@cols\mult@firstbox{%
\ifdim\dp\count@>\dimen\tw@
\global\dimen\tw@\dp\count@ \fi
\mc@col@status@write
@@ -1013,13 +1046,13 @@
}
\def\RL@column@boxes{%
- \process@cols\mult@gfirstbox{%
+ \process@cols\mult@firstbox{%
\hskip\hsize
\hss{\columnseprulecolor\vrule
\@width\columnseprule}\hss
}%
\hskip\hsize
- \process@cols\mult@gfirstbox{%
+ \process@cols\mult@firstbox{%
\ifdim\dp\count@>\dimen\tw@
\global\dimen\tw@\dp\count@ \fi
\hskip-\hsize