summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-10-12 22:17:41 +0000
committerKarl Berry <karl@freefriends.org>2015-10-12 22:17:41 +0000
commit46d0f1b567232fe2d47924b58b532ce87b671c6e (patch)
tree61f4368d47a1ffe759dfa2364892a269a1631a08 /Master
parentfed5afdcdbbb42457a5a2515e008be46a54575a6 (diff)
paracol (13oct15)
git-svn-id: svn://tug.org/texlive/trunk@38620 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/paracol/README9
-rw-r--r--Master/texmf-dist/doc/latex/paracol/paracol-man.pdfbin315571 -> 614626 bytes
-rw-r--r--Master/texmf-dist/doc/latex/paracol/paracol-man.tex4
-rw-r--r--Master/texmf-dist/source/latex/paracol/impl.dtx936
-rw-r--r--Master/texmf-dist/source/latex/paracol/ltfloat.dtx1314
-rw-r--r--Master/texmf-dist/source/latex/paracol/man.dtx27
-rw-r--r--Master/texmf-dist/source/latex/paracol/paracol.dtx73
-rw-r--r--Master/texmf-dist/source/latex/paracol/probs.dtx38
-rw-r--r--Master/texmf-dist/source/latex/paracol/ref.dtx44
-rw-r--r--Master/texmf-dist/tex/latex/paracol/paracol.sty138
10 files changed, 991 insertions, 1592 deletions
diff --git a/Master/texmf-dist/doc/latex/paracol/README b/Master/texmf-dist/doc/latex/paracol/README
index 440d6a8ed56..eeab4c20645 100644
--- a/Master/texmf-dist/doc/latex/paracol/README
+++ b/Master/texmf-dist/doc/latex/paracol/README
@@ -1,4 +1,4 @@
-paracol (v1.31): a multi-column package to typeset columns in "parallel".
+paracol (v1.32): a multi-column package to typeset columns in "parallel".
===
Copyright (C) 2005-2013
Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
@@ -102,7 +102,12 @@ you need newvbtm.sty being also available in CTAN.
- \backgroundcolor{<regino>}{<color>}[<mode>] to paint the background of a
<region> by <color> (*NEW* for v1.3).
-- A few bugs found in v1.22 have been fixed.
+- \globalcounter* to make all counters global (*NEW* for v1.32).
+
+- Compatible with the new implemenatation of LaTeX (2015/01/10 or
+ later) now (*NEW* for v 1.32).
+
+- A bug found in v1.31 has been fixed.
Enjoy!
diff --git a/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf b/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf
index 9138f4910fa..292e9f8f89f 100644
--- a/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf
+++ b/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/paracol/paracol-man.tex b/Master/texmf-dist/doc/latex/paracol/paracol-man.tex
index 088c81f6963..fd8abb5dc5d 100644
--- a/Master/texmf-dist/doc/latex/paracol/paracol-man.tex
+++ b/Master/texmf-dist/doc/latex/paracol/paracol-man.tex
@@ -1,5 +1,5 @@
%% LaTeX file 'paracol-man'.
-%% Copyright (C) 2005-2013
+%% Copyright (C) 2005-2015
%% Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
%% (Kyoto University)
%% This program can be redistributed and/or modified under the terms
@@ -8,7 +8,7 @@
%% version 1 of the License, or any later version.
\ProvidesFile{paracol-man.tex}
-[2013/10/10 v1.31 ]
+[2015/10/10 v1.32 ]
\documentclass{ltxdoc}\normalmarginpar
\usepackage{color}
\usepackage{paracol}
diff --git a/Master/texmf-dist/source/latex/paracol/impl.dtx b/Master/texmf-dist/source/latex/paracol/impl.dtx
index 06668b8d612..d37e4cec6bb 100644
--- a/Master/texmf-dist/source/latex/paracol/impl.dtx
+++ b/Master/texmf-dist/source/latex/paracol/impl.dtx
@@ -121,7 +121,7 @@
% is the list of bottom floats inserted in the \ccolpage.
%
% \item $\Uidx\dl=\!\@deferlist!$
-% is the list of column-wise floats deferred to the next \colpage.
+% is the list of \cwise{} floats deferred to the next \colpage.
%
% \item $\Uidx\tf=\!\pcol@textfloatsep!$
% is the vertical skip used instead of \!\textfloatsep! for top floats in the
@@ -224,7 +224,7 @@
% (i.e. \!\c@page!) for the page $p$.
%
% \item
-% Iff $\pp^i(p)\neq\bot$, the page $p$ has page-wise floats or the
+% Iff $\pp^i(p)\neq\bot$, the page $p$ has \pwise{} floats or the
% single-column {\em\Uidx\preenv} preceeding \beginparacol{} in the
% {\em\Uidx\spage} where it resides and spannig all columns. In this case
% $\pp^i(p)=i$ represents $\!\insert!{\cdot}i$, often {\em cached}
@@ -270,7 +270,7 @@
% cached} in the macro \Midx{\!\pcol@sptextlist!} and is referred to by
% \!\pcol@buildcolseprule! to draw \cseprule{} and to paint columns and
% \csepgap{} leaving spaces for \mctext{}s. The usage of this element is
-% discussed in \secref{sec:imp-ovv-cswap} a littel bit more detailedly.
+% discussed in \secref{sec:imp-ovv-cswap} a little bit more detailedly.
%
% \item
% $\pp^m(p)=\Arg{\Uidx\mpb_L^l}\Arg{\mpb_L^r}\Arg{\mpb_R^l}\Arg{\mpb_R^r}$
@@ -299,7 +299,7 @@
% a value based on $b_n$ of one of the element, according to \LaTeX's
% setting of marginal note placement. The whole elemnt $\pp^m(p)$ is often
% {\em cached} in the macro \Midx{\!\pcol@mparbottom!}. The usage of this
-% element is discussed in \secref{sec:imp-ovv-cswap} a littel bit more
+% element is discussed in \secref{sec:imp-ovv-cswap} a little bit more
% detailedly.
% \end{itemize}
% 
@@ -355,7 +355,7 @@
% Also note that we also keep $\pp(\ptop)$ in \Midx{\!\pcol@currpage!}
% which is initialized by \!\pcol@output@start! to let $\pp^i(\ptop)$ have
% the \preenv. Then the macro is redefined to have the value representing
-% the new page possibly with $\pp^i(\ptop)$ for page-wise floats in
+% the new page possibly with $\pp^i(\ptop)$ for \pwise{} floats in
% \!\pcol@startpage! by the macro \!\pcol@defcurrpage!. Another
% \!\def!inition is done in \!\pcol@output@switch! also with
% \!\pcol@defcurrpage! to let $\pp^f(\ptop)$ have \Scfnote{}s built in
@@ -915,14 +915,14 @@
%
% {\em Page-wise stuff}
% \UsageIndex{page-wise stuff}
-% spanning all columns, i.e., \spanning{} being \preenv{} or page-wise
+% spanning all columns, i.e., \spanning{} being \preenv{} or \pwise{}
% floats, \mctext{}s, \scfnote{} footnotes and \postenv{} are always placed
% in a left \parapag{}e, while the corresponding regions for them in a right
% \parapag{}e are always blank\footnote{
% 
% So far. In some future, we could implement a special setting to let
% \preenv{}, \postenv{} and \scfnote{} footnotes are split into both
-% \parapag{}es, and to make it possible that a page-wise float or a
+% \parapag{}es, and to make it possible that a \pwise{} float or a
% \mctext{} has its counterpart placed in the corresponding right
% \parapag{}e.}
% 
@@ -1094,7 +1094,7 @@
% \bgr_a^{[c]}=[(x_0-\bge_a^{[c]}(x^-),\;y_0-\bge_a^{[c]}(y^-))\;
% (x_1+\bge_a^{[c]}(x^+),\;y_1+\bge_a^{[c]}(y^+))]
% $$
-% \begingroup\par\hfuzz0.105pt\noindent
+% \begingroup\par\hfuzz0.9pt\noindent
% with the optional shifts specified by the first argument of
% \!\backgroundcolor! as
% \Arg{\hbox{\ttfamily\itshape{a}}\oarg{c}$|(|x^\pm|,|y^\pm|)|$} (for both
@@ -1151,7 +1151,7 @@
% On the other hand, the \mirror{}ing of $\bgr_{\{s,S\}}$ is enabled by the
% specifier `|b|' of \!\twosided!, together with other regions being top
% margin ($t,T$), bottom margin ($b,B$), left margin ($l,L$), right margin
-% ($r,R$), page-wise floats ($f,F$) and \scfnote{} footnotes ($n,N$). The
+% ($r,R$), \pwise{} floats ($f,F$) and \scfnote{} footnotes ($n,N$). The
% geometical specifications $\bgr_a$ for those regions are given as follows,
% but the coordinate origin is at the top-left corner of text area (rather
% than the leftmost column).
@@ -1219,6 +1219,125 @@
%
%
%
+% \subsection{Page-wise Float Placement}
+% \label{sec:imp-ovv-float}
+% \changes{v1.32-3}{2015/10/10}
+% {Add the section ``Page-wise Float Placement'' to discuss the
+% page-wise float problem.}
+%
+% In the release on 2015/01/10, \LaTeX{}'s float placement mechanism was
+% drastically changed to avoid {\em out-of-order\/} appearance of \pwise{}
+% floats as follows. Since the cause of overtaking of a \pwise{} float by a
+% \cwise{} float is that they are in two separated lists \!\@dbldeferlist!
+% for the former and \!\@deferlist! for the latter, in the new implemenation
+% the two lists are merged to let all floats go to \!\@deferlist!. To
+% distinguish \pwise{} and \cwise{} floats in the list, \!\end@dblfloat!
+% lets the \pwise{} float processed by the macro have a special depth of
+% |1sp|, while depth of \cwise{} floats are 0 since \!\@endfloatbox! add a
+% \!\vskip! of 0 at the end of the box of floats.
+%
+% Then all macros invoked in \!\output!-routine examine the depth of floats
+% in the list they are working on against a newly introduced macro
+% \!\f@depth! by also newly introduced \!\@testwrongwidth!, so that they
+% process only floats of a page/column category specified by \!\f@depth!,
+% while those not matching to \!\f@depth! are let go to \!\@deferlist! to
+% inhibit succeeding floats of the same type to overtake them. The
+% \!\def!inition of \!\f@depth! is done only by modified
+% \!\@dblfloatplacement!, always invoked in a group, to let it have |1sp| so
+% that float placement macros usually work on \cwise{} ones with the default
+% setting of $\!\f@depth!=\!\z@!$ except for special occasions in which the
+% placement of \pwise{} floats is tried.
+%
+% Though the mechanism should work well with {\em ordinary\/} multi-columned
+% documents, it is incompatible with \Paracol{} almost inherently. That is,
+% in the first place we have to separate float-related lists into the sets
+% of them corresponding to columns as we do\footnote{
+% 
+% If counters \counter{figure} and \counter{table} are global and we have to
+% avoid inter-column overtaking with respect to, for example, the partial
+% ordering rooted by the top-left corner, merging \cwise{} lists together
+% with the merge of \cs{@deferlist} and \cs{@dbldeferlist} might be a
+% solution to let the depth of a \cwise{} float be $c\,\texttt{sp}$ while
+% that of \pwise{} is $\C$\,\texttt{sp}. However such implementation is not
+% only tough but also doubtful to be worthwhile.}.
+% 
+% Therefore, it is obviously nonsense to merge the list for \pwise{} floats,
+% i.e., \!\@dbldeferlist!, to \!\@deferlist! of a particular column, and
+% thus we have to stick with the conventional implementation to process
+% \pwise{} and \cwise{} floats separately as follows.
+% 
+% \begin{enumerate}\def\labelenumi{(\arabic{enumi})}
+% \item
+% \label{item:ovv-float-end@dblfloat}
+% We \!\def!ine our own \!\end@dblfloat! namely \!\pcol@end@dblfloat!
+% whose definition is exactly same as the old version of \!\end@dblfloat!,
+% and replace the new version with it by \!\let!ting them equivalent in
+% \!\pcol@zparacol! by which start \env{paracol} environments. Therefore,
+% \pwise{} floats composed in a \env{paracol} environment is processed in
+% the traditional way, i.e., being inclueded in \!\@dbldeferlist! rather than
+% \!\@deferlist! and having ordinary depth 0.
+%
+% \item
+% \label{item:ovv-float-@dblfloatplacement}
+% Each invocation of \!\@dblfloatplacement! in our own \!\output!-routine is
+% followed by a \!\let! to nullify the setting of $\!\f@depth!=|1sp|$ done
+% by \!\@dblfloatplacement! by doing \!\f@depth!=\!\z@!. By this setting,
+% \!\@tryfcolumn! in \!\pcol@startpage! and \!\@makefcolumn! in
+% \!\pcol@output@clear! work on their argument \!\@dbldeferlist! in the way
+% exactly same as in 2014 or before.
+%
+% \item
+% \label{item:ovv-float-@addtodblcol}
+% Among \LaTeX's macros in its \!\output!-routine which we use in our own
+% one as well, only \!\@addtodblcol! changed its target from
+% \!\@dbldeferlist! to \!\@deferlist!. That is, if the macro fails to put a
+% \pwise{} float to the page we just have started by \!\pcol@startpage!,
+% the float is added to \!\@deferlist! rather than \!\@dbldeferlist!.
+% Therefore, when we apply \!\@sdblcolelt! to the copy of \!\@dbldeferlist!
+% to invoke \!\@addtodblcol! for each of its element float, we have to save
+% \!\@deferlist! somewhere, to \!\reserved@c! in reality, and clear it prior
+% to the application. Then after all elements are processed, we have to let
+% \!\@dbldeferlist! have what \!\@deferlist! have, while \!\@deferlist!
+% should regain its origial contents from the saved place. A subtle issue
+% is that we might work with \LaTeX{} of 2014 or older in which the floats
+% are returned to \!\@dbldeferlist!. Therefore to make \Paracol{}
+% compatible with both of new and old versions, we have to {\em add}
+% \!\@deferlist! to \!\@dbldeferlist! rather than replacing
+% \!\@dbldeferlist! with \!\@deferlist!. This addition should work well,
+% because we clear both lists before the application of \!\@sdblcolelt! and
+% then one of them will have the still-deferred floats after the application
+% while the other remains empty.
+%
+% \item
+% \label{item:ovv-float-@output@start}
+% We convert \!\@deferlist! to \!\@dbldeferlist! in \!\pcol@output@start! to
+% start a \env{paracol} environment, and peforms the reverse operation in
+% \!\pcol@output@end! to close the environment. Though it is very unlikely
+% (or maybe impossible) that the \!\@deferlist! {\em imported\/} in the
+% former operation has \LaTeX's (i.e., not \Paracol's) double-column floats
+% of |1sp| deep, we make such floats old-fashioned making their depth 0 so
+% that they can be put in a page built in the \env{paracol} environment. On
+% the other hand, the latter cannot {\em export\/} a list having floats of
+% |1sp| deep because they have been produced in the closing \env{paracol}
+% environment or have passed our {\em custom\/} \!\pcol@output@start! when
+% they were imported\footnote{
+% 
+% Therefore, if one try to {\em smuggle\/} a double-column float of the new
+% scheme into a \env{paracol} and to pass it through the environment to
+% another double-column world, the float will become a single-column one.
+% Even if such guy really exists and complains abount this transformation,
+% however, we have good right to say ``don't do that''.}.
+% \end{enumerate}
+% 
+% Note that the operations (1), (2) and (4) are fully compatible with 2014
+% or older version of \LaTeX{}, because with the old version; (1)
+% \!\pcol@end@dblfloat! is equivalent to \!\end@dblfloat!; (2) modification
+% of \!\f@depth! cannot be seen because it does not exist; and (4) we
+% virtually do nothing in the importation. As for (3), we explicitly take
+% care of the compatibility as shown above.
+%
+%
+%
% \section{Interaction with \TeX{} and \LaTeX{}}
% \label{sec:imp-tex}
%
@@ -1305,7 +1424,7 @@
% \spanning{} including \preenv{} $\pp^i(p)$ (\!\pcol@startpage!,
% \!\pcol@output@start!) and \Scfnote{}s $\pp^f(p)$ (\!\pcol@makecol!,
% \!\pcol@output@switch!) in pages, \mvlfloat{}s for main vertical lists in
-% \sync{}ed pages (\!\pcol@synccolumn!), and page-wise floats deferred
+% \sync{}ed pages (\!\pcol@synccolumn!), and \pwise{} floats deferred
% from \env{paracol} to \postenv{} (\!\pcol@output@end!).
% \end{description}
%
@@ -1379,6 +1498,7 @@
% following macros mainly for incrementing another register.
% 
% \begin{quote}\raggedright
+% \!\pcol@F@count!,
% \!\pcol@output!,
% \!\pcol@opcol!,
% \!\pcol@setpnoelt!,
@@ -1519,6 +1639,11 @@
% In addition, the register is used for the top level definition of
% $\!\pcol@op@mcpush!=10000+\mplimit$.
%
+% \item[\Uidx{\!\@Mii!}]
+% is a \!\mathchardef! register to have 10002. It is used in
+% \!\pcol@end@dblfloat! to examine if $\!\@floatpenalty!=-10002$ to mean the
+% float environment to be closed is in horizontal mode.
+%
% \item[\Uidx{\!\@Miv!}]
% is a \!\mathchardef! register to have 10004. It is used in \!\pcol@output!
% to examine if $\!\outputpenalty!=-10004$ for a dummy \!\output! request
@@ -1541,6 +1666,12 @@
% when it finds the \env{paracol} environment to start is at the very
% beginning of a \env{list}-like environment.
%
+% \item[\Uidx{\!\@floatpenalty!}]
+% is a \!\count! register to have the penalty code -10002 or -10003 given by
+% \!\@xfloat! at the beginning of a float environment according to the
+% environment is in horizontal or verticalmode respectively. It is
+% referred to by \!\pcol@end@dblfloat!.
+%
% \item[\Uidx{\!\@topnum!}]
% is a \!\count! register to have the maximum number of top floats which the
% \ccolpage{} can accept further. It is used in \!\pcol@setcurrcol!
@@ -1574,7 +1705,7 @@
% \!\pcol@startpage! reload the register from $\pp^p(\ptop{-}1)$ and then
% increment it by one usually but two in \npaired{} \parapag{}ing, and
% repeat $\pp^p(\ptop)=\page(\ptop)$ and incrementing $\page(p)$ for each
-% \fpage{}s of page-wise floats. Reloading $\page(p)$ to the register from
+% \fpage{}s of \pwise{} floats. Reloading $\page(p)$ to the register from
% $\pp^p(p)$ is also done by \!\pcol@getpelt! for macros using
% \!\pcol@getcurrpage!, and by \!\pcol@outputelt!, \!\pcol@sync! and
% \!\pcol@makeflushedpage! by \!\pcol@getcurrpinfo!. Then the register is
@@ -1620,12 +1751,13 @@
% \npaired{} \parapag{}e.
%
% The other users are \!\localcounter!\marg{ctr} to check
-% $\arg{ctr}\neq\counter{page}$, and \!\pcol@remctrelt! to let
+% $\arg{ctr}\neq\counter{page}$, \!\pcol@remctrelt! to let
% $|\cl@|{\cdot}\theta=\!\pcol@stepcounter!\Arg{\theta}$
% 
% \SpecialArrayIndex{\theta}{\cl@}
% 
-% unless $\theta=\counter{page}$.
+% unless $\theta=\counter{page}$, and \!\pcol@FF! to write it to a log file
+% as a part the logging information of memory leak debugging.
%
% \item[\Uidx{\!\c@footnote!}]
% is \LaTeX's counter \Uidx{\counter{footnote}} being a \!\count! register
@@ -1663,6 +1795,10 @@
% 
% \begin{itemize}
% \item
+% In \!\pcol@F@count!, it is used to measure the cardinality of
+% \!\@freelist!.
+%
+% \item
% In \!\pcol@makecol!, it is used to keep $\page(\ptop)$ gotten by
% \!\pcol@getcurrpinfo! until we store it back by \!\pcol@defcurrpage!.
%
@@ -2106,6 +2242,9 @@
% \!\pcol@makecol!,
% \!\pcol@combinefloats!,
% \!\pcol@nextpelt!,
+% \!\pcol@floatplacement!,
+% \!\pcol@startpage!,
+% \!\pcol@restartcolumn!,
% \!\pcol@outputelt!,
% \!\pcol@ioutputelt!,
% \!\pcol@buildcolseprule!,
@@ -2116,8 +2255,6 @@
% \!\pcol@bg@paint@i!,
% \!\pcol@bg@paintregion!,
% \!\pcol@output@start!,
-% \!\pcol@floatplacement!,
-% \!\pcol@restartcolumn!,
% \!\pcol@putbackmvl!,
% \!\pcol@deferredfootins!,
% \!\pcol@addmarginpar!,
@@ -2144,6 +2281,7 @@
% 
% \begin{quote}\raggedright
% \!\pcol@ShowBox!,
+% \!\pcol@F@count!,
% \!\pcol@makecol!,
% \!\pcol@opcol!,
% \!\pcol@setpnoelt!,
@@ -2749,12 +2887,12 @@
%
% \item[\Uidx{\!\dblfloatsep!}]
% is an API \!\skip! register to have the vertical skip between adjacent
-% page-wise floats, and is used in \!\pcol@startpage! to cancel the skip
+% \pwise{} floats, and is used in \!\pcol@startpage! to cancel the skip
% below the last float.
%
% \item[\Uidx{\!\dbltextfloatsep!}]
% is an API \!\skip! register to have the vertical skip between the last
-% page-wise float and the top of columns, and is used in
+% \pwise{} float and the top of columns, and is used in
% \!\pcol@startpage! to put the skip.
%
% \item[\Uidx{\!\@topsep!}]
@@ -2884,7 +3022,7 @@
%
% \item
% \!\pcol@output@end! to let $\!\pcol@rightpage!=\bot$ if
-% the last page has nothing other than \spanning{} being page-wise floats
+% the last page has nothing other than \spanning{} being \pwise{} floats
% and thus we don't have the right \parapag{}e.
%
% \item
@@ -2980,7 +3118,7 @@
%
% \item\begin{Sloppy}{2100}
% In \!\pcol@cflt! and \!\pcol@startpage!, it has top column-\slash
-% page-wise floats combined by the application of
+% \pwise{} floats combined by the application of
% \!\@comflelt!\slash\!\@comdblflelt! to \!\@toplist!\slash\!\@dbltoplist!
% respectively.
% \end{Sloppy}
@@ -3083,7 +3221,8 @@
% finds that the \!\output! request for a page break outside \env{paracol}
% is sneaked into our own \!\output! routine, in order to avoid that
% \LaTeX's original \!\output! routine misunderstands it is working on a
-% two-columned document.
+% two-columned document. The switch is examined by \LaTeX's own macros
+% including old \!\end@dblfloat! kept in our own \!\pcol@end@dblfloat!.
%
% \item[\Uidx{\CSIndex{if@firstcolumn}}]
% is a switch to be $\true$ iff the first column is being typeset. Its
@@ -3460,13 +3599,13 @@
% \cscan{} when the \sync{}ed \cswitch{} requires explicit page breaks.
%
% \item[\Uidx{\!\dblfigrule!}]
-% is an API macro to draw a horizontal line between the last page-wise
+% is an API macro to draw a horizontal line between the last \pwise{}
% floats and the main vertical list, or to insert whatever it has between
% them. The macro is used in \!\pcol@startpage! to build \spanning{} in
% the page $p$ in $\pp^b(p)$.
%
% \item[\Uidx{\!\topfigrule!}]
-% is an API macro to draw a horizontal line between the last column-wise
+% is an API macro to draw a horizontal line between the last \cwise{}
% top float and the main vertical list, or to insert whatever it has between
% them. The macro is used in \!\pcol@cflt! and \!\pcol@synccolumn! to
% insert it below the last (real) top float. It is also made \!\let!-equal
@@ -3783,7 +3922,9 @@
% \!\aftergroup! with \!\reset@color! invoked in \!\pcol@set@color!, being
% the original version of \!\set@color!, and in \!\pcol@zparacol! to make
% \!\pcol@bg@paintbox! \!\let!-equal to \!\@gobble! to nullify it if any
-% coloring packages have not been loaded.
+% coloring packages have not been loaded. In addition, the macros
+% \!\pcol@F! and \!\pcol@Fe! for logging are made \!\let!-equial to
+% \!\@gobble! at the top level to nullify them.
%
% \item[\Uidx{$\!\@ifundefined!\arg{cs}\arg{then}\arg{else}$}]
% \begin{Hfuzz}{0.8pt}%
@@ -3852,8 +3993,9 @@
% \item[\Uidx{$\!\@ifstar!\arg{then}\arg{else}$}]
% is an internal macro to do $\arg{then}$ or $\arg{else}$ if the character
% following to the macro is `|*|'. It is used in \!\pcol@yparacol!,
-% \!\pcol@switchcolumn!, \!\pcol@footnote!, \!\pcol@footnotemark! and
-% \!\pcol@footnotetext! to examine if the optional `|*|' is specified.
+% \!\globalcounter!, \!\pcol@switchcolumn!, \!\pcol@footnote!,
+% \!\pcol@footnotemark! and \!\pcol@footnotetext! to examine if the optional
+% `|*|' is specified.
%
% \item[\Uidx{$\!\@whilesw!\arg{sw}\cs{fi}\arg{body}$}]
% is an internal macro to iterate $\arg{body}$ while the switch $\arg{sw}$
@@ -3955,7 +4097,7 @@
% \!\pcol@opcol! for the completed \colpage{}.
%
% \item
-% \!\pcol@startpage! for \fpage{}s and \spanning{} for page-wise top
+% \!\pcol@startpage! for \fpage{}s and \spanning{} for \pwise{} top
% floats.
%
% \item
@@ -3975,7 +4117,7 @@
% defined by a column whose main vertical list is empty.
%
% \item
-% \!\pcol@output@end! for the page-wise floats in the \lpage{} if the
+% \!\pcol@output@end! for the \pwise{} floats in the \lpage{} if the
% main vertical list of the page is empty.
% \end{itemize}
% 
@@ -4060,6 +4202,10 @@
% $\cc_c(\vb)$ to \!\@free~list!.
%
% \item
+% \!\pcol@end@dblfloat! to add a \pwise{} float in \!\@currbox! to
+% \!\@dbldeferlist!.
+%
+% \item
% $\!\globalcounter!\<\theta\>$ to add a \gcounter{} $\theta$ to $\CG$.
%
% \item
@@ -4109,9 +4255,14 @@
%
% \item[\Uidx{$\!\@latex@warning@no@line!\arg{msg}$}]
% is an internal macro to report a warning message $\arg{msg}$ without the
-% line number in which the cause lies. It is used \!\pcol@output! if
+% line number in which the cause lies. It is used in \!\pcol@output! if
% a page with floats and very short main vertical list is built.
%
+% \item[\Uidx{\!\@Esphack!}]
+% is an internal macro to put back the horizontal skip and space factor
+% saved by \!\@bsphack! at the end of an environment. It is used in
+% \!\pcol@end@dblfloat!.
+%
% \item[\Uidx{\!\reset@font!}]
% is an internal macro \!\let!-equal to \!\normalfont! to use a starndard
% font. It is used in \!\pcol@fntextbody! for footnote typesetting.
@@ -4237,6 +4388,37 @@
% which uses the original version temporarily disabling \!\addcontentsline!
% if necessary.
%
+% \item[\Uidx{\!\end@float!}]
+% is an internal macro to close a \cwise{} float environment. It is used in
+% \!\pcol@end@dblfloat! (but never invoked because we havd \cs{if@twocolumn}
+% true always).
+%
+% \item[\Uidx{\!\end@dblfloat!}]
+% is an internal macro to close a \pwise{} float environment. It is replaced
+% with our own \!\pcol@end@dblfloat!.
+%
+% \item[\Uidx{\!\@endfloatbox!}]
+% is an internal macro to close a \!\vbox! for a float. It is used in
+% \!\pcol@end@dblfloat!.
+%
+% \item[\Uidx{\!\@largefloatcheck!}]
+% is an internal macro to examine if a float is too large. It is used in
+% \!\pcol@end@dblfloat!.
+%
+% \item[\Uidx{\!\@floatplacement!}]
+% is an internal macro for \!\output! routine to reinitialize \cwise{}
+% float placement parameters. It is used in our own version of it,
+% \!\pcol@floatplacement!.
+%
+% \item[\Uidx{\!\@dblfloatplacement!}]
+% is an internal macro for \!\output! routine to reinitialize \pwise{}
+% float placement paramenters. It is used in \!\pcol@startpage! and
+% \!\pcol@output@clear! prior to processing \pwise{} floats in
+% \!\@dbldeferlist!. As discussed in
+% item-(\ref{item:ovv-float-@dblfloatplacement}) of
+% Section~\ref{sec:imp-ovv-float}, this macro in 2015 or later version of
+% \LaTeX{} lets $\!\f@depth!=|1sp|$.
+%
% \item[\Uidx{\!\p@footnote!}]
% is an internal macro to have the prefix to \!\thefootnote! in the printed
% reference of the counter \counter{footnote}. It is used in
@@ -4259,12 +4441,24 @@
% \!\pcol@fntextbody!\marg{text} to typeset the footnote $\arg{text}$ with
% some other stuff.
%
+% \item[\Uidx{\!\@emptycol!}]
+% is an internal macro for \!\output! routine to put back an empty page to
+% the main vertical list. It is used \!\pcol@output! if a page with floats
+% and very short main vertical list is built.
+%
% \item[\Uidx{\!\@specialoutput!}]
% is an internal macro for \!\output! routine to process an \!\output!
% request made by \LaTeX's original \!\clearpage!, $\!\end!\Arg{float}$ and
% \!\marginpar!. It is used in \!\pcol@specialoutput! to process the
% request for floats or marginal notes.
%
+% \item[\Uidx{\!\@opcol!}]
+% is an internal macro for \!\output! routine to output a page or to keep
+% the first column until the second one is completed. This macro is used in
+% \!\pcol@output! to process a sneaked \!\output! request from outside of
+% \env{paracol}, and in \!\pcol@output@end! for the case \pwise{} floats
+% are left at \Endparacol{} and they are put in \fpage{}s.
+%
% \item[\Uidx{\!\@makecol!}]
% is an internal macro for \!\output! routine to build the ship-out
% image of a column in \!\@outputbox! consisting of top floats, main
@@ -4285,12 +4479,36 @@
% is used in \!\pcol@return@from@color! to go back to the building process
% of the main vertical list as if it were not interrupted.
%
+% \item[\Uidx{\!\@textbottom!}]
+% is an internal macro for \!\output! routine to be put at the bottom of
+% \!\@outputbox! in which a \colpage{} is stored, by \!\@makecol!. This
+% macro is temporarily re\!\def!ined by \!\pcol@makecol! for a \colpage{}
+% having \sync{}ation points so that it has a vertical skip of inifinite
+% stretch and shrink to push up/down the stuff below the last \sync{}ation
+% point in order to adjust its top to the point. After that, its original
+% definition kept in \!\pcol@textbottom! is restored. Another modifiers of
+% the macro are as follows; \!\pcol@makenormalcol! to make the macro
+% \!\let!-equal to \!\relax! temporarily to avoid the insertion of whatever
+% the macro has in \!\@makecol!; and \!\pcol@makeflushedpage! to let the
+% macro have \!\vfil! temporarily so that empty columns in a \lpage{} are
+% made {\em full size} without underfull.
+%
+% \item[\Uidx{\!\@outputpage!}]
+% is an internal macro for \!\output! routine to output a page kept in
+% \!\@outputbox! together with the header and footer. The original
+% definition of this macro is saved in \!\pcol@@outputpage! to be used in
+% \!\pcol@outputpage@l! and \!\pcol@outputpage@r! being calles of our own
+% revised version of \!\@outputpage!. Therefore, any \!\output! request to
+% result in page ship-out reaches our own \!\@outputpage! and then \LaTeX's
+% one after we perform operations for \parapag{}ing and \bgpaint{} onto the
+% ship-out image.
+%
% \item[\Uidx{\!\@combinefloats!}]
% is an internal macro for \!\output! routine to combine top and bottom
% floats in \!\@toplist! and \!\@botlist! respectively with \!\@outputbox!
% in which the main vertical list and footnotes\footnote{
% 
-% In p\LaTeX, footnotes are not in \cs{@outputbox} because of the reveral of
+% In p\LaTeX, footnotes are not in \cs{@outputbox} because of the reversal of
% footnotes and bottom floats.}
% 
% have been put by \!\@makecol!, and to have the result in \!\@outputbox!
@@ -4325,103 +4543,63 @@
%
% \item[\Uidx{$\!\@comflelt!\arg{flt}$}]
% is an internal macro for \!\output! routine to put $\arg{flt}$ being a
-% column-wise top or bottom float to the tail of \!\@tempboxa! which
+% \cwise{} top or bottom float to the tail of \!\@tempboxa! which
% finally has all top\slash bottom floats in a column. It is used in
% \!\pcol@cflt! to apply it to each element of \!\@toplist!.
%
-% \item[\Uidx{\!\@textbottom!}]
-% is an internal macro for \!\output! routine to be put at the bottom of
-% \!\@outputbox! in which a \colpage{} is stored, by \!\@makecol!. This
-% macro is temporarily re\!\def!ined by \!\pcol@makecol! for a \colpage{}
-% having \sync{}ation points so that it has a vertical skip of inifinite
-% stretch and shrink to push up/down the stuff below the last \sync{}ation
-% point in order to adjust its top to the point. After that, its original
-% definition kept in \!\pcol@textbottom! is restored. Another modifiers of
-% the macro are as follows; \!\pcol@makenormalcol! to make the macro
-% \!\let!-equal to \!\relax! temporarily to avoid the insertion of whatever
-% the macro has in \!\@makecol!; and \!\pcol@makeflushedpage! to let the
-% macro have \!\vfil! temporarily so that empty columns in a \lpage{} are
-% made {\em full size} without underfull.
-%
-% \item[\Uidx{\!\@outputpage!}]
-% is an internal macro for \!\output! routine to output a page kept in
-% \!\@outputbox! together with the header and footer. The original
-% definition of this macro is saved in \!\pcol@@outputpage! to be used in
-% \!\pcol@outputpage@l! and \!\pcol@outputpage@r! being calles of our own
-% revised version of \!\@outputpage!. Therefore, any \!\output! request to
-% result in page ship-out reaches our own \!\@outputpage! and then \LaTeX's
-% one after we perform operations for \parapag{}ing and \bgpaint{} onto the
-% ship-out image.
+% \item[\Uidx{$\!\@comdblflelt!\arg{flt}$}]
+% is an internal macro for \!\output! routine to put $\arg{flt}$ being a
+% \pwise{} float to the tail of \!\@tempboxa! which finally has the
+% \spanning{} for \pwise{} floats. It is used in \!\pcol@startpage! to
+% apply to each element of \!\@dbltoplist! to have the \spanning.
%
-% \item[\Uidx{\!\@dblfloatplacement!}]
-% is an internal macro for \!\output! routine to reinitialize page-wise
-% float placement paramenters. It is used in \!\pcol@startpage! and
-% \!\pcol@output@clear! prior to processing page-wise floats in
-% \!\@dbldeferlist!.
+% \item[\Uidx{\!\@startcolumn!}]
+% is an internal macro for \!\output! routine which tries to build a
+% \fcolumn{} for the floats in \!\@deferlist! and, if the column
+% is not built, tries to move floats to \!\@toplist! and \!\@botlist!. This
+% macro is used in \!\pcol@output! to process a sneaked \!\output! request
+% from outside of \env{paracol}, and in \!\pcol@output@end! for the case
+% \pwise{} floats are left at \Endparacol{} after which they become
+% \cwise{} ones.
%
% \item[\Uidx{$\!\@tryfcolumn!\arg{lst}$}]
% is an internal macro for \!\output! routine which examines if a \fcolumn{}
% or a \fpage{} can be built with some floats in $\arg{lst}$ and, if so,
% builds the page in \!\@outputbox! removing floats put in the page from
-% $\arg{lst}$. It is used in \!\pcol@startpage! for page-wise floats in
-% \!\@dbldeferlist!, and in \!\pcol@startcolumn! for column-wise floats in
+% $\arg{lst}$. It is used in \!\pcol@startpage! for \pwise{} floats in
+% \!\@dbldeferlist!, and in \!\pcol@startcolumn! for \cwise{} floats in
% $\cc_c(\dl)$.
%
-% \item[\Uidx{$\!\@sdblcolelt!\arg{flt}$}]
-% is an internal macro for \!\output! routine which examines if a
-% page-wise float $\arg{flt}$ can be added to \!\@dbltoplist! being the
-% list of the floats to be put at the top of a page, and if so, adds
-% $\arg{flt}$ to \!\@dbltoplist!, while it is added to \!\@dbldeferlist!
-% otherwise. It is used in \!\pcol@startpage! to apply to each element of
-% (the copy of) \!\@dbldeferlist!.
-%
-% \item[\Uidx{$\!\@comdblflelt!\arg{flt}$}]
-% is an internal macro for \!\output! routine to put $\arg{flt}$ being a
-% page-wise float to the tail of \!\@tempboxa! which finally has the
-% \spanning{} for page-wise floats. It is used in \!\pcol@startpage! to
-% apply to each element of \!\@dbltoplist! to have the \spanning.
-%
-% \item[\Uidx{\!\@floatplacement!}]
-% is an internal macro for \!\output! routine to reinitialize column-wise
-% float placement parameters. It is used in our own version of it,
-% \!\pcol@floatplacement!.
-%
% \item[\Uidx{$\!\@scolelt!\arg{flt}$}]
% is an internal macro for \!\output! routine which examines if a
-% column-wise float $\arg{flt}$ can be added to \!\@toplist! or
+% \cwise{} float $\arg{flt}$ can be added to \!\@toplist! or
% \!\@botlist! being the list of the floats to be put at the top or bottom
% of a page respectively. Then, if the examination succeeds, $\arg{flt}$ is
% added to \!\@toplist! or \!\@botlist!, while it is added to
% \!\@deferlist! otherwise. It is used in \!\pcol@trynextcolumn! to
% apply to each element of (the copy of) $\cc_c(\dl)$.
%
+% \item[\Uidx{$\!\@sdblcolelt!\arg{flt}$}]
+% is an internal macro for \!\output! routine which examines if a
+% \pwise{} float $\arg{flt}$ can be added to \!\@dbltoplist! being the
+% list of the floats to be put at the top of a page, and if so, adds
+% $\arg{flt}$ to \!\@dbltoplist!, while it is added to \!\@dbldeferlist! or
+% \!\@deferlist! depending on \LaTeX's version otherwise as discussed in
+% item-\ref{item:ovv-float-@addtodblcol} of Section \ref{sec:imp-ovv-float}.
+% It is used in \!\pcol@startpage! to apply to each element of (the copy of)
+% \!\@dbldeferlist!.
+%
+% \item[\Uidx{\!\@addmarginpar!}]
+% is an internal macro for \!\output! routine to add a marginal note. Its
+% original definition is kept in \!\pcol@@addmarginpar! and used in
+% \!\pcol@addmarginpar! being our own \!\@addmarginpar!.
+%
% \item[\Uidx{$\!\@makefcolumn!\arg{lst}$}]
% is an internal macro for \!\output! routine to build a \fcolumn{} with
% some floats at the head of a float list $\arg{lst}$ and to remove the
% floats from the list. It is used in \!\pcol@flushcolumn! and
-% \!\pcol@iflushfloats! for $\cc_c(\dl)$ of column-wise floats, and in
-% \!\pcol@output@clear! for \!\@dbldeferlist! of page-wise floats.
-%
-% \item[\Uidx{\!\@opcol!}]
-% is an internal macro for \!\output! routine to output a page or to keep
-% the first column until the second one is completed. This macro is used in
-% \!\pcol@output! to process a sneaked \!\output! request from outside of
-% \env{paracol}, and in \!\pcol@output@end! for the case page-wise floats
-% are left at \Endparacol{} and they are put in \fpage{}s.
-%
-% \item[\Uidx{\!\@startcolumn!}]
-% is an internal macro for \!\output! routine which tries to build a
-% \fcolumn{} for the floats in \!\@deferlist! and, if the column
-% is not built, tries to move floats to \!\@toplist! and \!\@botlist!. This
-% macro is used in \!\pcol@output! to process a sneaked \!\output! request
-% from outside of \env{paracol}, and in \!\pcol@output@end! for the case
-% page-wise floats are left at \Endparacol{} after which they become
-% column-wise ones.
-%
-% \item[\Uidx{\!\@emptycol!}]
-% is an internal macro for \!\output! routine to put back an empty page to
-% the main vertical list. It is used \!\pcol@output! if a page with floats
-% and very short main vertical list is built.
+% \!\pcol@iflushfloats! for $\cc_c(\dl)$ of \cwise{} floats, and in
+% \!\pcol@output@clear! for \!\@dbldeferlist! of \pwise{} floats.
% \end{description}
%
%
@@ -4439,6 +4617,10 @@
% 
% \begin{itemize}
% \item
+% \!\pcol@F@count! \!\def!ines \!\@elt! as a macro to increment
+% \!\@tempcnta! by one to measure the cardinality of \!\@freelist!.
+%
+% \item
% \!\pcol@cflt! lets $\!\@elt!=\!\@comflelt!$ for $\cc_c(\tl)$, and then
% $\!\@elt!=\!\relax!$ to concatenate \!\@freelist! and $\cc_c(\tl)$.
%
@@ -4448,8 +4630,7 @@
% \item
% \!\pcol@setpnoelt! and \!\pcol@setmpbelt! let $\!\@elt!=\!\relax!$ to add
% $\pp(q)$ to $\PP$. It also uses \!\@elt! to \!\def!ine \!\pcol@currpage!
-% with
-% $\!\@elt!
+% with $\!\@elt!
% \Arg{\pp^p(q)}\<\pp^i(q)\>\<\pp^f(q)\>\~\Arg{\pp^s(p)}\Arg{\pp^m(p)}$.
%
% \item
@@ -4465,9 +4646,9 @@
%
% \item
% \!\pcol@startpage! lets $\!\@elt!=\!\@sdblcolelt!$ for (the copy of)
-% \!\@dbldeferlist!, $\!\@elt!=\!\@comdblflelt!$ for \!\@dbltoplist!,
-% and then $\!\@elt!=\!\relax!$ to concatenate \!\@freelist! and
-% \!\@dbltoplist!.
+% \!\@dbldeferlist!, and $\!\@elt!=\!\@comdblflelt!$ for \!\@dbltoplist!. It
+% also lets $\!\@elt!=\!\relax!$ for the concatenation of \!\@dbldeferlist!
+% and \!\@deferlist!, and that of \!\@freelist! and \!\@dbltoplist!.
%
% \item
% \!\pcol@outputcolumns! lets $\!\@elt!=\!\pcol@outputelt!$ with two arguments
@@ -4511,10 +4692,11 @@
% $\!\@elt!=\!\pcol@bg@advance!$ to go back to addition.
%
% \item
-% \!\pcol@output@start! \!\edef!inies \!\pcol@bg@textheight! with \!\@elt!
-% having height-plus-depth of \preenv{} for \bgpaint{} of it, and
-% \!\def!ines $\pp^m(0)$ having one element in $\mpb_L^l$ or $\mpb_L^r$ for
-% \!\@mparbottom! in \preenv{}.
+% \!\pcol@output@start! lets all floats $f$ imported in \!\@dbldeferlist!
+% have depth 0 by \!\def!ining $\!\@elt!\arg{f}$ to do it, \!\edef!ines
+% \!\pcol@bg@textheight! with \!\@elt! having height-plus-depth of
+% \preenv{} for \bgpaint{} of it, and \!\def!ines $\pp^m(0)$ having one
+% element in $\mpb_L^l$ or $\mpb_L^r$ for \!\@mparbottom! in \preenv{}.
%
% \item
% \!\pcol@makenormalcol! lets $\!\@elt!=\!\relax!$ to concatenate
@@ -4646,7 +4828,7 @@
% \SpecialIndex{\pcol@synccounter}
% \par\endgroup
%
-% \item \begingroup\hfuzz0.37pt
+% \item \begingroup\hfuzz0.51pt
% $\!\pcol@synccounter!\arg{lst}$ lets $\!\@elt!=\!\relax!$ to have the list
% $\arg{lst}$ in \!\reserved@a! by \!\edef!, $\!\@elt!=\!\pcol@loadctrelt!$
% for $\CC_c$, and then $\!\@elt!=\!\pcol@syncctrelt!$ for $\arg{lst}$.
@@ -4723,7 +4905,8 @@
% \begin{quote}
% \!\pcol@cflt! ($\cc_c(\tl)$)\\
% \!\pcol@setpageno! ($\PP$, $\pp(\ptop)$)\\
-% \!\pcol@startpage! ($\cc_c(\dl)$, \!\@dbldeferlist!, \!\@dbltoplist!)\\
+% \!\pcol@startpage! ($\cc_c(\dl)$, \!\@dbldeferlist!, \!\@deferlist!,
+% \!\@dbltoplist!)\\
% \!\pcol@trynextcolumn! ($\cc_c(\dl)$)\\
% \!\pcol@output@start! ($\PP$, $\pp(\ptop)$, $\cc_c(\dl)$)\\
% \!\pcol@makenormalcol! (\!\@midlist! in \preenv)\\
@@ -4780,7 +4963,8 @@
% \!\pcol@synccolumn! ($\cc_c(\vb)$)\\
% \!\pcol@imakeflushedpage! ($\cc_c(\vb)$)\\
% \!\pcol@freshpage! ($\cc_c(\vb)$)\\
-% \!\pcol@output@end! (top float, $\cc_c(\vb)$)
+% \!\pcol@output@end! (top float, $\cc_c(\vb)$)\\
+% \!\pcol@end@dblfloat! (\pwise{} float)
% \end{quote}
%
% \item[\Uidx{\!\@marbox!}]
@@ -4799,6 +4983,7 @@
% \!\pcol@startpage! (\!\@dbltoplist!)\\
% \!\pcol@outputelt! ($\pp^i(q)$)\\
% \!\pcol@ioutputelt! ($\pp^i(q)$, $\pp^f(q)$, $\s_c(q)$)\\
+% \!\pcol@startcolumn! ($\pp^f(\ptop)$)\\
% \!\pcol@output@start! ($\cc_0(\vb)$)\\
% \!\pcol@makenormalcol! (\!\@midlist! in \preenv)\\
% \!\pcol@restartcolumn! ($\cc_c(\vb)$, $\pp^f(p)$ or $\cc_c(\ft)$)\\
@@ -4809,6 +4994,8 @@
% \!\pcol@imakeflushedpage! ($\cc_c(\ft)$)\\
% \!\pcol@output@end! ($\pp^f(\ptop)$, $\cc_c(\vb)$)
% \end{quote}
+% 
+% In addition \!\pcol@F@count! scans its element to have its cardinality.
%
% \item[\Uidx{\!\@nil!}]
% is an internal control sequence which is conventionally used to terminate
@@ -4897,22 +5084,26 @@
% \!\pcol@backgroundcolor@y!.
%
% \item[\Uidx{\!\@dbldeferlist!}]
-% is an internal macro having the list of page-wise floats whose page
+% is an internal macro having the list of \pwise{} floats whose page
% appearance are not yet fixed. It is scanned and then updated in
% \!\pcol@startpage! and \!\pcol@output@clear!, while \!\pcol@output@start!
% lets it have \!\@deferlist! made before \beginparacol, and
-% \!\pcol@output@end! adds page-wise floats to be put in the empty
+% \!\pcol@output@end! adds \pwise{} floats to be put in the empty
% \lpage{} to it and then move the whole of the list to \!\@deferlist!.
+% As discussed in Section~\ref{sec:imp-ovv-float}, 2015 or later version of
+% \LaTeX{} no longer uses this list, but we stick with it for \pwise{}
+% floats produced in \env{paracol} environments and thus have its top level
+% definition with empty body in \Paracol.
%
% \item[\Uidx{\!\@dbltoplist!}]
-% is an internal macro having the list of page-wise floats which
+% is an internal macro having the list of \pwise{} floats which
% \!\@sdblcolelt! decided to be put in the new page. The macro
% \!\pcol@startpage! scans it to put all floats into the page $\ptop$ as its
% \spanning{} $\pp^i(\ptop)$, and then empties it after returning all floats
% to \!\@freelist!.
%
% \item[\Uidx{\!\@deferlist!}]
-% is an internal macro having the list of column-wise floats whose page
+% is an internal macro having the list of \cwise{} floats whose page
% appearance are not yet fixed. It is scanned and then updated in
% \!\pcol@startcolumn!, \!\pcol@trynextcolumn!, \!\pcol@flushcolumn!,
% \!\pcol@makefcolumn! and \!\pcol@iflushfloats!, while the following macros
@@ -4924,6 +5115,12 @@
% before \beginparacol.
%
% \item
+% \!\pcol@startpage! uses it as the interface with \!\@addtodblcol! of 2015
+% or later version of \LaTeX{} as discussed in
+% item-(\ref{item:ovv-float-@addtodblcol}) of
+% Section~\ref{sec:imp-ovv-float}.
+%
+% \item
% \!\pcol@setcurrcol! and \!\pcol@igetcurrcol! saves\slash restores it
% into/from $\cc_c(\dl)$, respectively.
%
@@ -4937,11 +5134,11 @@
%
% \item
% \!\pcol@output@end! lets it have \!\@dbldeferlist! so that it processed as
-% column-wise floats after \Endparacol.
+% \cwise{} floats after \Endparacol.
% \end{itemize}
%
% \item[\Uidx{\!\@toplist!}]
-% is an internal macro having the list of column-wise floats which is
+% is an internal macro having the list of \cwise{} floats which is
% decided to be put at the top of the \ccolpage{} by float environments or by
% \!\pcol@trynextcolumn!. This list is scanned by \!\pcol@cflt! if its
% invoker \!\pcol@combinefloats! finds the macro is not empty. The list is
@@ -4960,7 +5157,7 @@
% \!\pcol@makeflushedpage!.
%
% \item[\Uidx{\!\@botlist!}]
-% is an internal macro having the list of column-wise floats which is
+% is an internal macro having the list of \cwise{} floats which is
% decided to be put at the bottom of the \ccolpage{} by float environments or
% by \!\pcol@trynextcolumn!. The emptiness of this list examined by
% \!\pcol@combinefloats! to invoke the scanner \!\@cflb! unless empty,
@@ -4979,11 +5176,22 @@
% and \!\pcol@igetcurrcol! saves\slash restores the list into/from
% $\cc_c(\ml)$ respectively.
%
+% \item[\Uidx{\!\f@depth!}]
+% is an internal macro having |1sp| or being \!\let!-equal to \!\z@! to
+% specify the float category, \pwise{} or \cwise{} respectively, which
+% float-related macros work on. As discussed in
+% item-(\ref{item:ovv-float-@dblfloatplacement}) of
+% Section~\ref{sec:imp-ovv-float}, this feature introduced in 2015 version
+% of \LaTeX{} is nullified in \env{paracol} environments and thus the
+% setting with |1sp| done by \!\@dblfloatplacement! is overriden by
+% \!\pcol@startpage! and \!\pcol@output@clear! when they invoke the macro.
+%
% \item[\Uidx{\!\cl@@ckpt!}]
% is an internal macro having the list of all counters defined by
% \!\newcounter! and the counter \counter{page}. The original usage of this
% macro is to log the values of all counters into |.aux| by \!\include!, but
-% we use it to obatin all counters in \!\pcol@zparacol!.
+% we use it to obatin all counters in \!\pcol@zparacol! and
+% \!\pcol@globalcounter@s!.
%
% \item[$\cs{cl@}{\cdot}\theta$]
% is an internal macro having the list $\clist(\theta)$ of descendant
@@ -5000,6 +5208,11 @@
% 
% \begin{itemize}
% \item
+% In \!\pcol@Fe!, it is used to keep the cardinality of \!\@freelist! in
+% \!\pcol@F@n! to log it by \!\pcol@FF! after \!\pcol@F@n! is let have
+% another measurement result.
+%
+% \item
% In $\!\pcol@iLogLevel!\<l\>\arg{name}$, it is used to implement
% $\!\let!|\|\arg{name}=|\|\arg{name}{\cdot}l'$ where $l'$ is the roman
% representation of the level $l$.
@@ -5081,7 +5294,7 @@
%
% \item
% In \!\pcol@makeflushedpage!, it is let have an invocation of
-% \!\pcol@bg@paintbox! for page-wise floats in $\pp^i(\ptop)$ together with
+% \!\pcol@bg@paintbox! for \pwise{} floats in $\pp^i(\ptop)$ together with
% the condition of the \bgpaint.
%
% \item
@@ -5267,6 +5480,10 @@
% color is defined or undefined.
% \end{itemize}
%
+% \item[\Uidx{\!\reserved@c!}]
+% is an internal macro for temporary use. It is used in \!\pcol@startpage!
+% to save \!\@deferlist! in it and then to restore the list from it.
+%
% \item[\Uidx{\!\@gtempa!}]
% is an internal macro used as a \!\global!ly modifiable scratchpad. Its
% usages are as follows.
@@ -5328,6 +5545,7 @@
% \begin{quote}\raggedright
% \!\pcol@Log@iii!,
% \!\pcol@Log@ii!,
+% \!\pcol@FF!,
% \!\pcol@makecol!,
% \!\pcol@opcol!,
% \!\pcol@bg@columnleft!,
@@ -5517,9 +5735,9 @@
% \!\pcol@flushcolumn! locally updates the register to scan
% $\PP=\!\pcol@pages!$, and \!\pcol@freshpage! also performs local updates
% but in more weird manner. Besides the updates discussed above, the
-% macros \!\pcol@Log@iii!, \!\pcol@Log@ii!, \!\pcol@makecol!, \!\pcol@opcol!,
-% \!\pcol@setpageno!, \!\pcol@getcurrpage!, \!\pcol@startcolumn!,
-% \!\pcol@output@switch!, \!\pcol@addmarginpar! and
+% macros \!\pcol@Log@iii!, \!\pcol@Log@ii!, \!\pcol@FF!, \!\pcol@makecol!,
+% \!\pcol@opcol!, \!\pcol@setpageno!, \!\pcol@getcurrpage!,
+% \!\pcol@startcolumn!, \!\pcol@output@switch!, \!\pcol@addmarginpar! and
% \!\pcol@fntext! refer to the register to know which page they are
% operating on.
% \end{macro}
@@ -5548,8 +5766,8 @@
% \!\pcol@output@switch! and \!\pcol@restartcolumn! refer to the register
% to examine if they are working on a \colpage{} in the \tpage, while
% \!\pcol@flushcolumn! and \!\pcol@fntext! examines if the \ccolpage{} is
-% behind the \tpage. The register is also referred to by \!\pcol@Log@iii!
-% and \!\pcol@Log@ii! for logging.
+% behind the \tpage. The register is also referred to by \!\pcol@Log@iii!,
+% \!\pcol@Log@ii! and \!\pcol@FF! for logging.
% \end{macro}
% 
% \begin{macro}{\pcol@footnotebase}
@@ -5802,7 +6020,7 @@
% becomes a float in \postenv, and leaves \Scfnote{}s untouched if
% \Mgfnote{} typesetting is in effect. This macro itself turns this switch
% $\false$ if $\CSIndex{ifpcol@dfloats}=\true$ to mean one or more columns
-% in the \lpage{} have deferred column-wise floats and thus the \lpage{}
+% in the \lpage{} have deferred \cwise{} floats and thus the \lpage{}
% must be {\em full size}.
%
% \item
@@ -5953,7 +6171,7 @@
% \spanning{} or not because it is too large, respectively. Then the switch
% is examined by \!\pcol@ioutputelt! or \!\pcol@makeflushedpage! when they
% finds a \spanning{} to be combined to the page to be printed so as to
-% paint the \bground{} for the color of page-wise floats unless the switch is
+% paint the \bground{} for the color of \pwise{} floats unless the switch is
% $\true$ to mean the stuff is pre-environment one rather than floats. Then
% \!\pcol@outputelt! or \!\pcol@makeflushedpage! itself \!\global!ly turns
% the switch $\false$ after printing a page because we no longer have
@@ -6138,7 +6356,7 @@
% {Introduced to know if the last page has deferred column-wise floats.}
% 
% The switch \cs{ifpcol@dfloats} is $\true$ iff one or more columns (in a
-% \lpage) have deferred column-wise floats. Therefore, it is turned
+% \lpage) have deferred \cwise{} floats. Therefore, it is turned
% $\false$ by \!\pcol@sync! before it invokes \!\pcol@measurecolumn! which
% turns it $\true$ when it finds a column $c$ such that
% $\cc_c(\dl)\neq\emptyset$. Then the switch is examined by
@@ -6356,7 +6574,7 @@
% \!\@outputpage!. The macro \!\pcol@output@end! also uses the register to
% paint the \bground{} of the empty counterpart of non-merged \Scfnote{}s in
% it, or to make the register $\bot$ when it have an empty \lpage{} but with
-% \spanning{} of page-wise floats. After closing a \env{paracol}
+% \spanning{} of \pwise{} floats. After closing a \env{paracol}
% environment, the contents of the register
% will be shiped out by
% \!\@outputpage! invoked outside \env{paracol} environment when the
@@ -6571,13 +6789,90 @@
% \end{macrocode}
%
+% \begin{macro}{\pcol@F@write}
+% \changes{v1.32-2}{2015/10/10}
+% {Introduced for debugging memory leak problems.}
+% \begin{macro}{\pcol@F}
+% \changes{v1.32-2}{2015/10/10}
+% {Introduced for debugging memory leak problems.}
+% \begin{macro}{\pcol@FF}
+% \changes{v1.32-2}{2015/10/10}
+% {Introduced for debugging memory leak problems.}
+% \begin{macro}{\pcol@F@count}
+% \changes{v1.32-2}{2015/10/10}
+% {Introduced for debugging memory leak problems.}
+% \begin{macro}{\pcol@F@n}
+% \changes{v1.32-2}{2015/10/10}
+% {Introduced for debugging memory leak problems.}
+% \begin{macro}{\pcol@Fb}
+% \changes{v1.32-2}{2015/10/10}
+% {Introduced for debugging memory leak problems.}
+% \begin{macro}{\pcol@Fe}
+% \changes{v1.32-2}{2015/10/10}
+% {Introduced for debugging memory leak problems.}
+% Another debugging tool is for investigating memory leak problems. Since
+% \Paracol{} uses \!\insert! registers for various purposes, management
+% operations of them especially that for proper release of them are crusial
+% for the correctness of the implmentation. A source of toughness in
+% debugging {\em memory leak} caused by missing a release of a register back
+% to \!\@freelist! is that the resulting shortage is revealed long after the
+% leakage to make it hard to find the point of the leakage.
+%
+% The set of macros is to help such debugging by logging the aquire and
+% release of \!\insert! registers into a file named $\arg{job}|.fls|$
+% associated with \!\pcol@F@write! where $\arg{job}$ is given by
+% \!\jobname!. After opened when \Paracol{} is loaded, the file is written by
+% $\!\pcol@FF!\arg{msg_a}\arg{msg_b}$ with a line of the following form,
+% where $p=\!\pcol@page!$, $c=\!\pcol@currcol!$, $\ptop=\!\pcol@toppage!$,
+% $\page(p)=\!\c@page!$, and $\arg{n}_b=\!\pcol@F@n!$ is the cardinality of
+% \!\@deferlist! counted by \!\pcol@F@count!.
+% 
+% \begin{itemize}\item[]
+% $\arg{msg_a}|(|p|:|c|/|\ptop|:|\page(p)|)|=\arg{n_b}\arg{msg_b}$
+% \end{itemize}
+% 
+% The argument $\arg{msg_b}$ is empty when $\!\pcol@FF!$ is invoked from
+% $\!\pcol@F!\arg{msg_a}$ for snapshot, while
+% $\arg{msg_b}=\hbox{`|<=|$\arg{n_b}$'}$ when invoked from
+% $\!\pcol@Fe!\arg{msg_a}$ paired by $\!\pcol@Fb!=\!\pcol@F@count!$ by which
+% the cardinality of \!\@freelist! is given to $\arg{n_b}$ through
+% \!\pcol@F@n! and then \!\reserved@a!. Therefore, by the pair of
+% \!\pcol@Fb! and \!\pcol@Fe!, the consumption or restitution in a series of
+% operations surrounded by the pair is logged in the file.
+%
+% In the production version, the logging is disabled of course by \!\let!ting
+% \!\pcol@F! and \!\pcol@Fe! be \!\@gobble! and \!\pcol@F! be \!\relax!,
+% while the open of \!\pcol@F@write! is disabled as well by a pair of
+% \cs{iffalse} and \cs{fi}.
+% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% 
+% \begin{macrocode}
+\iffalse
+\newwrite\pcol@F@write
+\immediate\openout\pcol@F@write\jobname.fls
+\fi
+\def\pcol@F#1{\pcol@FF{#1}{}}
+\def\pcol@FF#1#2{\pcol@F@count
+ \immediate\write\pcol@F@write{#1(\number\pcol@page:\number\pcol@currcol/%
+ \number\pcol@toppage:\number\c@page)=\pcol@F@n #2}}
+\def\pcol@F@count{{\@tempcnta\z@
+ \def\@elt##1{\advance\@tempcnta\@ne}\@freelist
+ \xdef\pcol@F@n{\number\@tempcnta}}}
+\let\pcol@Fb\pcol@F@count
+\def\pcol@Fe#1{{\let\reserved@a\pcol@F@n \pcol@FF{#1}{<=\reserved@a}}}
+\let\pcol@F\@gobble
+\let\pcol@Fb\relax
+\let\pcol@Fe\@gobble
+
+% \end{macrocode}
+%
%
%
% \section{\cs{output} Routine}
% \label{sec:imp-output}
%
% \begin{macro}{\pcol@ovf}
-% Before giving the definitions of macros in \!\output! rontine, we define
+% Before giving the definitions of macros in \!\output! routine, we define
% the macro \!\pcol@ovf! invoked if \!\@freelist! is empty on an acquision
% of an \!\insert! by \!\@next! and thus we have to abort the execution by
% \!\PackageError! with a message notifying the shortage. The additional
@@ -6812,6 +7107,8 @@
% \changes{v1.3-3}{2013/09/17}
% {Add \cs{@colht} and \cs{relax} as the first and third argument of
% \cs{pcol@shrinkcolbyfn}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@makecol! is invoked solely from \!\pcol@output! to build
% the shipping image of the \ccolpage{} which just has completed in
@@ -6926,7 +7223,9 @@
\setbox\@cclv\vbox{\pcol@unvbox@cclv\footins}%
\ifnum\pcol@page=\pcol@toppage
\pcol@Log\pcol@makecol{save}\footins
+ \pcol@Fb
\pcol@savefootins\pcol@currfoot
+ \pcol@Fe{makecol(pagefn)}%
\else
\pcol@Log\pcol@makecol{discard}\footins
\setbox\@tempboxa\box\footins
@@ -6954,7 +7253,7 @@
% {Add the assignment of \cs{@maxdepth} to \cs{maxdepth} to nullify
% the temproary setting done by \cs{@addtobot}.}
% \changes{v1.3-6}{2013/09/17}
-% {Add special operations for columns having syncronization point to
+% {Add special operations for columns having synchronization point to
% move the infinite stretch and shrink to let it follow bottom floats
% ratehr than preceding them.}
% \begin{macro}{\pcol@@combinefloats}
@@ -7040,6 +7339,8 @@
% synchronization points.}
% \changes{v1.2-7}{2013/05/11}
% {Replace \cs{maxdepth} with \cs{@maxdepth}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@cflt! is invoked solely from \!\pcol@combinefloats! if
% the \colpage{} for which the macro combines the top floats has
@@ -7084,7 +7385,9 @@
\vskip\pcol@textfloatsep
\unvbox\@outputbox}%
\let\@elt\relax
+ \pcol@Fb
\xdef\@freelist{\@freelist\@toplist}%
+ \pcol@Fe{cflt}%
\global\let\@toplist\@empty}
% \end{macrocode}
@@ -7101,6 +7404,8 @@
% the setting $\cs{boxmaxdepth}\EQ\cs{@maxdepth}$ for depth capping.}
% \changes{v1.3-2}{2013/09/17}
% {Rename \cs{pcol@outputpage} as \cs{pcol@outputcolumns}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@opcol! is invoked from \!\pcol@output! for the ordinary
% completed \colpage{} built by \!\pcol@makecol!, or from the loop creating
@@ -7144,9 +7449,11 @@
% 
% \begin{macrocode}
\def\pcol@opcol{%
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox to\@colht{
\boxmaxdepth\@maxdepth
\pcol@clearcst@unvbox\@outputbox}}\pcol@ovf
+ \pcol@Fe{opcol}%
\expandafter\@cons\csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
\ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
\pcol@nextpage
@@ -7416,7 +7723,7 @@
% 
% The macro \!\pcol@floatplacement! is invoked from \!\pcol@opcol!,
% \!\pcol@output@start!, \!\pcol@flushcolumn!, \!\pcol@freshpage! and
-% \!\pcol@output@end! to reinitialize the parameters of column-wise float
+% \!\pcol@output@end! to reinitialize the parameters of \cwise{} float
% placement at the beginning of a \colpage{} or that of \postenv. The macro
% lets \!\@textfloatsheight! be 0 and then invokes \!\@floatplacement!, as
% \!\@opcol! does its tail\footnote{
@@ -7455,6 +7762,16 @@
% {Revise reflecting the new page context element $\pi^s(p)$.}
% \changes{v1.3-4}{2013/09/17}
% {Revise reflecting the new page context element $\pi^m(p)$.}
+% \changes{v1.32-3}{2015/10/10}
+% {Add $\hbox{\cs{f@depth}}\EQ0$ to override
+% $\hbox{\cs{f@depth}}\EQ\hbox{\texttt{1sp}}$ done by
+% \cs{@dblfloatplacement}.}
+% \changes{v1.32-3}{2015/10/10}
+% {Modify the code to apply \cs{@sdblcolelt} to \cs{@dbldeferlist} so
+% as to work with both 2015 (or newer) and 2014 (or older) versions
+% of \LaTeX.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@startpage! is invoked from \!\pcol@opcol! with
% $\!\pcol@currpage!=\pp(p{-}1)$ to start a new page $p=\!\pcol@page!$, or
@@ -7494,11 +7811,14 @@
% \end{macrocode}
%
% Then, we build \fpage{}s if any as follows. First we invoke
-% \!\@dblfloatplacement! to reinitialize the parameters for page-wise float
-% placement. Then we repeat \!\@tryfcolumn! giving it \!\@dbldeferlist!
-% having page-wise floats not contributed to previous pages yet, while
-% $\CSIndex{if@fcolmade}=\true$ meaning it builds \fpage{}s in
-% \!\@outputbox!. For each \fpage{}, we acquire an \!\insert! from
+% \!\@dblfloatplacement! to reinitialize the parameters for \pwise{} float
+% placement. In addition, we let $\!\f@depth!=0$ to nullify the
+% setting $\!\f@depth!=|1sp|$ possiblly done by \!\@dblfloatplacement! as
+% discussed in the item-(\ref{item:ovv-float-@dblfloatplacement}) of Section
+% \ref{sec:imp-ovv-float}. Then we repeat \!\@tryfcolumn! giving it
+% \!\@dbldeferlist! having \pwise{} floats not contributed to previous
+% pages yet, while $\CSIndex{if@fcolmade}=\true$ meaning it builds \fpage{}s
+% in \!\@outputbox!. For each \fpage{}, we acquire an \!\insert! from
% \!\@freelist! by \!\@next! for $\pp^i(\ptop)$ to let it have the
% followings to represent the \fpage{}.
% 
@@ -7517,11 +7837,13 @@
% the values for the page following the \fpage{}s.
% 
% \begin{macrocode}
- \@dblfloatplacement
+ \@dblfloatplacement \let\f@depth\z@
\@tryfcolumn\@dbldeferlist
\@whilesw\if@fcolmade\fi{%
+ \pcol@Fb
\@next\@currbox\@freelist{%
\global\setbox\@currbox\box\@outputbox}\pcol@ovf
+ \pcol@Fe{startpage(fcol)}%
\global\dimen\@currbox-\maxdimen
\global\skip\@currbox\pcol@topskip
\@cons\pcol@pages{{\number\c@page}\@currbox\voidb@x{}{}}%
@@ -7530,29 +7852,38 @@
\@tryfcolumn\@dbldeferlist}%
% \end{macrocode}
%
-% Next, we copy \!\@dbldeferlist! containing page-wise floats which
+% Next, we copy \!\@dbldeferlist! containing \pwise{} floats which
% could not be included in \fpage{}s to \!\reserved@b!, clear the list, and
% then scan the copied list by applying \!\@sdblcolelt! to each list
% element to invoke \!\@addtodblcol! for adding the element to \!\@dbltoplist!
-% or keeping it in \!\@dbldeferlist!, as \LaTeX's \!\@startdblcolumn!
-% does. If this scan results in empty \!\@dbltoplist! to mean the new page
+% or keeping it in \!\@dbldeferlist! or \!\@deferlist! depending on \LaTeX's
+% version, as \LaTeX's \!\@startdblcolumn! does. In addition, as discussed
+% in item-(\ref{item:ovv-float-@addtodblcol}) of Section
+% \ref{sec:imp-ovv-float}, we also clear \!\@deferlist! after saving it in
+% \!\reserved@c! prior to the scan, and then after the scan we concatenate
+% \!\@dbldeferlist! and \!\@deferlist! to let the former have the result and
+% restore \!\@deferlist! from \!\reserved@c!.
+%
+% Then If this scan results in empty \!\@dbltoplist! to mean the new page
% does not have any \spanning, we invoke \!\pcol@defcurrpage! with
% $\pp^i(\ptop)=\pp^f(\ptop)=\bot$ so that $\pp(\ptop)$ reprsents a page
% without \spanning{} nor \Scfnote{}s.
% 
% \begin{macrocode}
\begingroup
- \let\reserved@b\@dbldeferlist
- \global\let\@dbldeferlist\@empty
+ \let\reserved@b\@dbldeferlist \let\reserved@c\@deferlist
+ \global\let\@dbldeferlist\@empty \global\let\@deferlist\@empty
\let\@elt\@sdblcolelt
\reserved@b
+ \let\@elt\relax \xdef\@dbldeferlist{\@dbldeferlist\@deferlist}%
+ \global\let\@deferlist\reserved@c
\endgroup
\ifx\@dbltoplist\@empty
\pcol@defcurrpage{\number\c@page}\voidb@x\voidb@x{}{}%
% \end{macrocode}
%
% Otherwise, i.e., \!\@dbltoplist! is not empty, we scan all elements in it
-% by letting $\!\@elt!=\!\@comdblflelt!$ to have all page-wise floats in
+% by letting $\!\@elt!=\!\@comdblflelt!$ to have all \pwise{} floats in
% \!\@tempboxa!. Then, after returning all elements to \!\@freelist!, we
% acquire an \!\insert! from \!\@freelist! to be $\pp^i(\ptop)$ by \!\@next!
% and store the contents of \!\@tempboxa! in $\pp^b(\ptop)$ after removing
@@ -7571,7 +7902,7 @@
% \pp^m(\ptop)=\emptyset\quad
% \end{eqnarray*}
%
-% Finally, regardless of the existence of the page-wise floats, we let
+% Finally, regardless of the existence of the \pwise{} floats, we let
% $\!\pcol@footins!=\bot$ to mean the \tpage{} does not have any \Scfnote{}s,
% so far if footnote typesetting is \scfnote, or never otherwise.
% 
@@ -7582,11 +7913,15 @@
\let\@elt\@comdblflelt
\@dbltoplist
\let\@elt\relax
+ \pcol@Fb
\xdef\@freelist{\@freelist\@dbltoplist}%
+ \pcol@Fe{startpage(dbltop)}%
\global\let\@dbltoplist\@empty
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
\unvbox\@tempboxa \vskip-\dblfloatsep \dblfigrule
\vskip\dbltextfloatsep}}\pcol@ovf
+ \pcol@Fe{startpage(spanning)}%
\global\dimen\@currbox\@colht
\global\skip\@currbox\pcol@topskip
\pcol@defcurrpage{\number\c@page}\@currbox\voidb@x{}{}%
@@ -7684,6 +8019,8 @@
% {Add painting of page-wise float page.}
% \changes{v1.3-2}{2013/09/17}
% {Add building a empty right parallel float page.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\ifdim\@tempdima<\z@
@@ -7691,7 +8028,9 @@
\def\pcol@bg@floatheight{\pcol@bg@textheight}%
\setbox\@outputbox\vbox to\textheight{%
\pcol@bg@paintbox{Ff}\unvbox\pcol@spanning}%
+ \pcol@Fb
\@cons\@freelist\pcol@spanning
+ \pcol@Fe{outputelt(spanning)}%
\ifnum\pcol@ncolleft<\pcol@ncol
\setbox\pcol@rightpage\vbox to\textheight{%
\ifpcol@paired\else \advance\c@page\@ne \fi
@@ -7720,7 +8059,7 @@
% Then after the ship-out image building, we \!\global!ly let
% $\CSIndex{ifpcol@firstpage}=\false$ to tell \!\pcol@ioutputelt! and
% \!\pcol@makeflushedpage! that the pages they build are no longer first of
-% a \env{paracol} environment and thus $\pp^i(q)$ should have page-wise
+% a \env{paracol} environment and thus $\pp^i(q)$ should have \pwise{}
% floats rather than \preenv{} hereafter.
% \end{itemize}
% 
@@ -7834,7 +8173,7 @@
% put by \!\unvbox!, painting its \bground{} with $\bgc_{\{F,f\}}$ by
% \!\pcol@bg@paintbox! letting the basic height \!\pcol@bg@floatheight! of
% the paining region $\bgr_{\{F,f\}}$ be the height-plus-depth of $\pp^b(q)$
-% if $q$ is not the first page and thus $\pp^b(q)$ has page-wise floats. We
+% if $q$ is not the first page and thus $\pp^b(q)$ has \pwise{} floats. We
% also return the \!\insert! $\pp^i(q)$ to \!\@freelist! by \!\@cons!.
%
% \item
@@ -7859,6 +8198,9 @@
% 
% \Index{extension of background painting region}
% 
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
+% 
% \begin{macrocode}
\ifpcol@nospan\else
\def\pcol@bg@floatheight{%
@@ -7866,7 +8208,9 @@
\@tempdimb\ht\pcol@spanning \advance\@tempdimb\dp\pcol@spanning
\ifnum#1=\z@
\ifpcol@firstpage\else \pcol@bg@paintbox{Ff}\fi
+ \pcol@Fb
\@cons\@freelist\pcol@spanning \unvbox\pcol@spanning
+ \pcol@Fe{ioutputelt(spanning)}%
\else\ifpcol@firstpage
\ht\pcol@rightpage\ht\pcol@spanning
\dp\pcol@rightpage\dp\pcol@spanning
@@ -7912,6 +8256,9 @@
% $c^g=c-1$ if swapped or $c^g=c$ otherwise, because if swapped the
% column-$c$ is followed by the gap which follows $c-1$ if not swapped.
% 
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
+% 
% \begin{macrocode}
\pcol@buildcolseprule\@tempdima#1#2\@maxdepth \unvbox\@tempboxa
\hb@xt@\textwidth{%
@@ -7921,7 +8268,11 @@
\expandafter\@next\expandafter\@currbox
\csname pcol@shipped\number\@tempcntb\endcsname
\relax{\let\@currbox\voidb@x}%
- \ifvoid\@currbox\else \@cons\@freelist\@currbox \fi
+ \ifvoid\@currbox\else
+ \pcol@Fb
+ \@cons\@freelist\@currbox
+ \pcol@Fe{ioutputelt(page)}%
+ \fi
\expandafter\@tempdima
\csname pcol@columnwidth\number\@tempcntb \endcsname
\pcol@@hfil \hb@xt@\@tempdima{\box\@currbox\hss}%
@@ -7946,12 +8297,17 @@
% are now closing, as done for each \colpage{} and as expected to be applied
% to \Scfnote{}s.
% 
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
+% 
% \begin{macrocode}
\ifvoid\pcol@footins\else
\ifnum#1=\z@
\pcol@Log\pcol@outputelt{output}\pcol@footins
\pcol@putfootins\pcol@footins
+ \pcol@Fb
\@cons\@freelist\pcol@footins
+ \pcol@Fe{ioutputelt(footins)}%
\else
\vskip\skip\pcol@footins \nointerlineskip
\pcol@phantom\pcol@footins \vskip\z@
@@ -8438,6 +8794,11 @@
% \changes{v1.3-3}{2013/09/17}
% {Add \cs{@colht} and \cs{@tempdimb} as the first and third argument of
% \cs{pcol@shrinkcolbyfn}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Fix the memory leak caused by mistakingly preserving $\pi^f(p)$
+% when $p\EQ p_t$.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro $\!\pcol@startcolumn!\arg{f}$ is invoked from \!\pcol@output!
% with $f=1$ and \!\pcol@freshpage! with $f=0$ to start a new \colpage.
@@ -8463,10 +8824,18 @@
% and \!\pcol@trynextcolumn! as done in \LaTeX's \!\@startcolumn!, we
% \!\insert! $\pp^f(p)$, if it is has some footnoes, by letting \!\footins!
% have it by \!\pcol@getcurrfoot! so that \TeX{} will be aware of the
-% footnotes when it examines the page break of the \colpage{}. Then if
-% $p=\ptop$, we also \!\insert! deferred footnotes in $\df$ until their
-% total height reaches \!\@colht! by \!\pcol@deferredfootins! if $f=1$ to
-% mean this macro is invoked from \!\pcol@output!\footnote{
+% footnotes when it examines the page break of the \colpage{}. That is, if
+% $p<\ptop$ the \!\insert!ion is to keep the vertical space for $\pp^f(p)$ in
+% the building process of the \colpage{} in $p$ because any \Scfnote{s}
+% cannot be added to $p$ any more, and thus $\pp^f(p)$ is preserved until
+% the page $p$ is shipped out. On the other hand if $p=\ptop$, \Scfnote{s}
+% in $p$ can grow further and thus \!\insert!ed footnotes will be captured
+% again by \!\pcol@output@switch! or \!\pcol@startpage!. Therefore, if
+% $p=\ptop$, we release $\pp^f(p)$ to \!\@freelist!.
+%
+% Then if $p=\ptop$, we also \!\insert! deferred footnotes in $\df$ until
+% their total height reaches \!\@colht! by \!\pcol@deferredfootins! if $f=1$
+% to mean this macro is invoked from \!\pcol@output!\footnote{
% 
% The \cs{insert}ion of $\pp^f(p)$ also requiers $f=1$ but this examination
% is redundant because $\pp^f(p)=\bot$ definately if $f=0$.}.
@@ -8500,6 +8869,11 @@
\pcol@getcurrfoot\copy
\pcol@Log\pcol@startcolumn{insert}\footins
\insert\footins{\unvbox\footins}%
+ \ifnum\pcol@page=\pcol@toppage
+ \pcol@Fb
+ \@cons\@freelist\pcol@footins
+ \pcol@Fe{startcolumn(pagefn)}%
+ \fi
\fi
\ifnum\pcol@page=\pcol@toppage
\pcol@deferredfootins\pcol@startcolumn \fi
@@ -9523,6 +9897,9 @@
% the invocation of \cs{@outputpage} for too tall pre-environment
% stuff because the page is considered as outside
% \string\texttt{paracol} envrionments.}
+% \changes{v1.32-3}{2015/10/10}
+% {Add depth clearing of imported deferred floats in case that some of
+% them has \texttt{1sp}.}
% 
% The macro \!\pcol@output@start! is invoked solely from
% \!\pcol@specialoutput! to process the special \!\output! request made in
@@ -9533,9 +9910,16 @@
% breaks are processed by our own macros such as \!\pcol@makecol! hereafter.
% Then we let $p=\pbase={\ptop}=0$ and $\PP=()$ because we have nothing for
% $q<\ptop=0$. We also move \!\@deferlist! to \!\@dbldeferlist! and then
-% let \!\@deferlist! be empty because all column-wise dererred floats become
-% page-wise, and let $\df=\bot$ because we don't have any deferred
-% footnotes.
+% let \!\@deferlist! be empty because all \cwise{} dererred floats become
+% \pwise{}. In this float importation, as discussed in
+% item-(\ref{item:ovv-float-@output@start}) of
+% Section~\ref{sec:imp-ovv-float}, we force all floats in the list have
+% depth 0 to ensure no one has |1sp| to conform our own and old-fashioned
+% \pwise{} float placement mechanism\footnote{
+% 
+% Though having \texttt{1sp} is almost imposiible.}.
+% 
+% We then and let $\df=\bot$ because we don't have any deferred footnotes.
%
% Next we caculate $H=H_r-(H_m+H_f+H_b)$ where $H_r=\!\@colroom!$, $H_m$ is
% the height-plus-depth of the main vertical list in \!\@holdpg!, $H_f$ is
@@ -9571,6 +9955,7 @@
\global\pcol@page\z@ \global\pcol@toppage\z@ \global\pcol@basepage\z@
\global\let\pcol@pages\@empty
\global\let\@dbldeferlist\@deferlist \global\let\@deferlist\@empty
+ {\def\@elt##1{\global\dp##1\z@}\@dbldeferlist}%
\setbox\z@\box\pcol@topfnotes
\@tempdima\@colroom
\advance\@tempdima-\ht\@holdpg \advance\@tempdima-\dp\@holdpg
@@ -9649,6 +10034,8 @@
% {Add background painting of pre-environment stuff.}
% \changes{v1.3-4}{2013/09/17}
% {Add initialization of $\pi^m(0)$.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\else
@@ -9666,9 +10053,11 @@
\let\pcol@bg@preposttop\pcol@bg@preposttop@right
\reserved@a \unvbox\pcol@rightpage}%
\fi
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
\let\pcol@bg@preposttop\pcol@bg@preposttop@left
\reserved@a \unvbox\@outputbox}}\pcol@ovf
+ \pcol@Fe{output@start(preenv)}%
\global\dimen\@currbox\@colht
\ifdim\@tempdima=\z@ \@tempskipa\topskip \else \@tempskipa\z@ \fi
\global\skip\@currbox\@tempskipa \global\topskip\@tempskipa
@@ -9685,7 +10074,7 @@
% Then regardless of $H$, we do the followings for all columns $c\In0\C$ to
% build $\cc_c$, after initializing \!\@colroom! to be \!\@colht!, and
% invoking \!\pcol@floatplacement! to reinitialize the parameters of
-% column-wise float placement.
+% \cwise{} float placement.
%
% First, if we have let $\!\topskip!=0$ with the \preenv,
% we let $\cc_c(\vb^b)$ have an invisible \!\hrule! whose
@@ -9735,12 +10124,16 @@
% 
% \changes{v1.0}{2011/10/10}
% {Add clearing of $S_c$.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\global\@colroom\@colht \pcol@floatplacement
\pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
\ifdim\topskip=\z@ \hrule\@height\z@\@width\z@ \fi}}\pcol@ovf
+ \pcol@Fe{output@start(col)}%
\pcol@setcurrcolnf
\global\count\@currbox\z@
\global\dimen\@currbox\@colroom
@@ -9757,6 +10150,8 @@
% is not void.}
% \changes{v1.22}{2013/06/30}
% {Move emptying \cs{pcol@colorstack} to \cs{pcol@zparacol}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% Finally, we let $c=\!\pcol@currcol!=0$ for the first column, and regain the
% parameters in $\cc_0$ by \!\pcol@getcurrcol!. Then before putting
@@ -9776,7 +10171,9 @@
\global\pcol@currcol\z@
\pcol@getcurrcol
\pcol@savecolorstack
+ \pcol@Fb
\@cons\@freelist\@currbox \unvbox\@currbox
+ \pcol@Fe{output@start(col)}%
\ifvoid\footins\else
\pcol@Log\pcol@output@start{insert}\footins
\insert\footins{\box\footins\penalty\interlinepenalty}%
@@ -9798,6 +10195,8 @@
% \changes{v1.3-6}{2013/09/17}
% {Completely redesigined to use \cs{@makecol} if pre-environment
% stuff has bottom floats.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@makenormalcol! is invoked solely from
% \!\pcol@output@start! to let \!\@output~box! have the \preenv{} as
@@ -9879,7 +10278,9 @@
\ifvoid\footins \setbox\@outputbox\box\@holdpg
\else \pcol@combinefootins\@holdpg\footins
\fi
+ \pcol@Fb
\let\@elt\relax \xdef\@freelist{\@freelist\@midlist}%
+ \pcol@Fe{makenormalcol}%
\global\let\@midlist\@empty
\pcol@combinefloats
\else
@@ -9911,6 +10312,8 @@
% \changes{v1.3-4}{2013/09/17}
% {Add $\pi^m(p)\EQ\cs{pcol@mparbottom}$ to the argument of
% \cs{pcol@defcurrpage}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@output@switch! is invoked from
% \!\pcol@specialoutput! to process the special \!\output! request made in
@@ -9986,15 +10389,19 @@
\pcol@shiftspanning\@holdpg
\setbox\@holdpg\vbox{\unvbox\pcol@prespan \unvbox\@holdpg}%
\fi\fi
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{
\pcol@clearcst@unvbox\@holdpg}}\pcol@ovf
+ \pcol@Fe{output@switch}%
\def\pcol@currfoot{\voidb@x}%
\ifvoid\footins\else
\ifpcol@scfnote
\ifnum\pcol@page=\pcol@toppage
\pcol@getcurrpinfo\@tempcnta\@tempdima\@tempskipa
\pcol@Log\pcol@output@switch{save}\footins
+ \pcol@Fb
\pcol@savefootins\pcol@footins
+ \pcol@Fe{output@switch(pagefn)}%
\pcol@defcurrpage{\number\@tempcnta}\pcol@spanning\pcol@footins
{\pcol@sptextlist}{\pcol@mparbottom}%
\else
@@ -10003,7 +10410,9 @@
\fi
\else
\pcol@Log\pcol@output@switch{save}\footins
+ \pcol@Fb
\pcol@savefootins\pcol@currfoot
+ \pcol@Fe{output@switch(colfn)}%
\fi
\fi
\ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
@@ -10125,6 +10534,8 @@
% \changes{v1.0}{2011/10/10}
% {Add \cs{pcol@getcurrfoot} to restore parameters of $\kappa_c(\tau)$
% into \cs{footins}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@restartcolumn! is invoked from \!\pcol@output@switch! or
% \!\pcol@freshpage! to restart the \ccolpage{} $d=\!\pcol@nextcol!$ which
@@ -10140,7 +10551,9 @@
\pcol@getcurrcol
\global\pcol@page\count\@currbox
\global\@colroom\dimen\@currbox
+ \pcol@Fb
\@cons\@freelist\@currbox
+ \pcol@Fe{restartcolumn(col)}%
\pcol@getcurrpage
% \end{macrocode}
% 
@@ -10248,6 +10661,9 @@
% to the penalty, to keep the footnotes and references to them in a page.
% \end{enumerate}
% 
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
+% 
% \begin{macrocode}
\ifpcol@scfnote
\edef\pcol@currfoot{\pcol@footins}%
@@ -10256,7 +10672,9 @@
\pcol@putbackmvl
\if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi
\ifvoid\pcol@footins\else
+ \pcol@Fb
\pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{restartcolumn(pagefn)}%
\pcol@Log\pcol@restartcolumn{insert}\footins
\pcol@shrinkcolbyfn\@colht\footins\@tempdimb
\insert\footins{\unvbox\footins}%
@@ -10275,9 +10693,11 @@
\else
\pcol@putbackmvl
\ifvoid\pcol@currfoot\else
- \pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
- \pcol@Log\pcol@restartcolumn{insert}\footins
- \insert\footins{\unvbox\footins}%
+ \pcol@Fb
+ \pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{restartcolumn(colfn)}%
+ \pcol@Log\pcol@restartcolumn{insert}\footins
+ \insert\footins{\unvbox\footins}%
\fi
\if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi
\fi}
@@ -11630,7 +12050,7 @@
%
%
%
-% \subsection{Syncronization}
+% \subsection{Synchronization}
% \label{sec:imp-sout-sync}
%
% \begin{macro}{\pcol@sync}
@@ -11928,6 +12348,8 @@
% of \cs{pcol@shrinkcolbyfn} for all of three invocations of it.}
% \changes{v1.3-6}{2013/09/17}
% {Add \cs{@maxdepth} as the first argument of \cs{pcol@@makecol}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% The macro \!\pcol@flushcolumn! is invoked for each column $c\In0\C$ from
% \!\pcol@sync! to ship out the \ccolpage{} of $c$ into $\S_c$ if it is not
@@ -12018,7 +12440,11 @@
\pcol@lastpagefalse
\pcol@page\count\@currbox
\setbox\@cclv\vbox{\unvbox\@currbox \vfil}%
- \ifvoid\pcol@currfoot\else \@cons\@freelist\pcol@currfoot \fi
+ \ifvoid\pcol@currfoot\else
+ \pcol@Fb
+ \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{flushcolumn(colfn)}%
+ \fi
\pcol@getcurrfoot\box
\pcol@getcurrpage
\ifvoid\pcol@footins
@@ -12051,6 +12477,8 @@
% 
% \changes{v1.2-2}{2013/05/11}
% {Add \cs{@colht} shrinking by page-wise footnotes.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\advance\pcol@page\@ne
@@ -12062,8 +12490,10 @@
\fi
\@makefcolumn\@deferlist
\if@fcolmade
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
\pcol@ovf
+ \pcol@Fe{flushcolumn(fcol)}%
\expandafter\@cons
\csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
\fi
@@ -12109,10 +12539,14 @@
% {Fix the bug that $\kappa_c(\beta^p)$ is let have \cs{pcol@page},
% which can be less than $p_t\EQ\cs{pcol@toppage}$, to cause the column
% $c$ is lost or moved to a wrong page.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\ifpcol@lastpagesave \pcol@lastpagetrue \fi
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{}}\pcol@ovf
+ \pcol@Fe{flushcolumn(col)}%
\pcol@getcurrpinfo\@tempcnta{\global\@colht}\@tempskipa
\@pageht\@colht
\ifvoid\pcol@footins\else \pcol@shrinkcolbyfn\@colht\pcol@footins\relax \fi
@@ -12265,7 +12699,10 @@
% \begin{macro}{\pcol@makefcolpage}
% \changes{v1.2-7}{2013/05/11}
% {Introduced to implement the operations to make a float column
-% performed in three macros.}
+% performed in three macros.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
+% 
% The macro \!\pcol@makefcolpage! is invoked from \!\pcol@flushcolumn!,
% \!\pcol@makefcolumn! and \!\pcol@imakeflushedpage! to build a \fcolumn{}
% having floats in \!\@toplist!, which is then returned to \!\@freelist! and
@@ -12279,7 +12716,10 @@
\def\pcol@makefcolpage{\vbox to\@colht{
\vskip\@fptop \vskip-\@fpsep
\def\@elt##1{\vskip\@fpsep\box##1}\@toplist \vskip\@fpbot}%
- \xdef\@freelist{\@freelist\@toplist}\global\let\@toplist\@empty}
+ \pcol@Fb
+ \xdef\@freelist{\@freelist\@toplist}\global\let\@toplist\@empty
+ \pcol@Fe{makefcolpage}%
+}
% \end{macrocode}
% \end{macro}
@@ -12381,7 +12821,7 @@
% Finally, we let $\CSIndex{ifpcol@dfloats}=\true$ if
% $\cc_c(\dl)\neq\emptyset$ to tell \!\pcol@makeflushedpage! that the
% \lpage{} must be {\em full size} and \!\pcol@output@end! to flush the
-% deferred column-wise floats.
+% deferred \cwise{} floats.
% 
% \changes{v1.3-6}{2013/09/17}
% {Revise the mechanism to tell \cs{pcol@makeflushedpage} and
@@ -12617,6 +13057,9 @@
% $\cc_c(\tf)<\infty$ but just let succeeding stuff be added to the main
% vertical list as in \cswitch{} without \sync{}ation.
% 
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
+% 
% \begin{macrocode}
\else
\@tempdimb\@tempdima
@@ -12626,9 +13069,11 @@
\ifx\@toplist\@empty
\textfloatsep\z@ \floatsep\z@ \let\topfigrule\relax
\fi
+ \pcol@Fb
\@next\pcol@float\@freelist{\global\setbox\pcol@float\vbox to\z@{
\vskip-\floatsep \topfigrule \vskip\textfloatsep
\unvbox\@currbox \vss}}\pcol@ovf
+ \pcol@Fe{synccolumn(topfloat)}%
\@cons\@toplist\pcol@float
\advance\@tempdimb\textfloatsep \advance\@tempdimb-\floatsep
\advance\@tempdimb\@M\p@
@@ -12805,19 +13250,26 @@
% right parallel-page for each page-wise float page.}
% \changes{v1.3-3}{2013/09/17}
% {Add background painting of float pages.}
+% \changes{v1.32-3}{2015/10/10}
+% {Add $\hbox{\cs{f@depth}}\EQ0$ to override
+% $\hbox{\cs{f@depth}}\EQ\hbox{\texttt{1sp}}$ done by
+% \cs{@dblfloatplacement}.}
% 
% The macro \!\pcol@output@clear! is invoked solely from
% \!\pcol@specialoutput! to process the \!\output! request made by
% \!\clearpage!. The first part up to \!\@outputpage! and the last line of
% this macro are same as \!\pcol@output@flush! to flush the \tpage{} and to
% have a newpage. In the remaining mid part, we invoke \!\pcol@flushfloats!
-% to ship out all deferred column-wise floats in all columns if any, and
-% then do it for page-wise floats by the following invocations enclosed in a
+% to ship out all deferred \cwise{} floats in all columns if any, and
+% then do it for \pwise{} floats by the following invocations enclosed in a
% group; letting $\!\pcol@rightpage!=\bot$ for ordinary paging;
-% \!\@dblfloatplacement! to set up placement parameters; \!\@makefcolumn!
-% with \!\@dbldeferlist! to have a \fpage{} in \!\@outputbox! if any; and a
-% loop of \bgpaint{} of \!\@outputbox! and, if $\CL<\C$, of
-% empty \!\pcol@rightpage!, and \!\@outputpage! followed by \!\@makefcolumn!
+% \!\@dblfloatplacement! to set up placement parameters followed by
+% $\!\f@depth!=0$ to nullify the setting $\!\f@depth!=|1sp|$ possiblly done
+% by it as discussed in the item-(\ref{item:ovv-float-@dblfloatplacement})
+% of Section \ref{sec:imp-ovv-float}; \!\@makefcolumn! with
+% \!\@dbldeferlist! to have a \fpage{} in \!\@outputbox! if any; and a loop
+% of \bgpaint{} of \!\@outputbox! and, if $\CL<\C$, of empty
+% \!\pcol@rightpage!, and \!\@outputpage! followed by \!\@makefcolumn!
% repeated while we have a \fpage{}, i.e., $\CSIndex{if@fcolmade}=\true$.
%
% Note that the mid part is same as that found in \!\@doclearpage! but we
@@ -12845,7 +13297,7 @@
\pcol@flushfloats
\begingroup
\setbox\pcol@rightpage\box\voidb@x
- \@dblfloatplacement
+ \@dblfloatplacement \let\f@depth\z@
\@makefcolumn\@dbldeferlist
\@whilesw\if@fcolmade\fi{%
\def\pcol@bg@floatheight{\pcol@bg@textheight}%
@@ -12928,9 +13380,9 @@
% 
% \!\pcol@rightpage! must have the couterpart in right \parapag{}e if the
% \spanning{} is \preenv, while it is made $\bot$ by \!\pcol@output@end! if
-% page-wise floats.}.
+% \pwise{} floats.}.
% 
-% Since page-wise floats become ordinary floats in \postenv, we cannot paint
+% Since \pwise{} floats become ordinary floats in \postenv, we cannot paint
% its \bground{} and must remove \!\dbltextfloatsep! at the bottom of
% $\pp^i(\ptop)$.
%
@@ -12970,7 +13422,7 @@
% the \spanning{} is \preenv{} having already been painted by
% \!\pcol@output@start!; and the other is the case of
% $\CSIndex{if@tempswa}=\false$ to mean we are working on a truly \lpage{}
-% being empty except for the \spanning{} itself and thus the page-wise
+% being empty except for the \spanning{} itself and thus the \pwise{}
% floats become a part of deferred floats in \postenv{} as discussed in\Tie
% (\ref{item:mfp-last-empty}). In the latter exceptional case, excluding
% the case that the \lpage{} is also the \spage\footnote{
@@ -12990,7 +13442,7 @@
% Then we do the similar procedure for \!\pcol@rightpage! and make its height
% and depth equal to those of \!\@outputbox!\footnote{
% 
-% If page-wise floats become a part of \postenv's floats, \!\pcol@rightpage!
+% If \pwise{} floats become a part of \postenv's floats, \!\pcol@rightpage!
% will be made $\bot$ by \!\pcol@output@end! afterward.}.
% 
% Finally we temporarily add $h$ to \!\topmargin! as done in
@@ -13001,6 +13453,8 @@
% {Revise the condition of leaving page-wise floats as ordinary
% post-environment floats using \cs{if@tempswa} with
% \cs{ifpcol@dfloats}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\begingroup
@@ -13019,7 +13473,9 @@
\reserved@a \unvbox\pcol@spanning
\ifpcol@firstpage\else \if@tempswa\else \unskip \fi\fi}%
\global\setbox\@outputbox\vbox{\box\@outputbox}%
+ \pcol@Fb
\@cons\@freelist\pcol@spanning
+ \pcol@Fe{makeflushedpage(spanning)}%
\ifnum\pcol@ncolleft<\pcol@ncol
\global\setbox\pcol@rightpage\vbox{%
\ifpcol@paired\else \advance\c@page\@ne \fi
@@ -13126,6 +13582,8 @@
% \changes{v1.3-6}{2013/09/17}
% {page-wise footnotes for the last page followed by pages for
% deferred column-wise floats are now put by this macro.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\gdef\pcol@fnheight@lpage{0pt}%
@@ -13142,7 +13600,9 @@
\fi
\global\setbox\@outputbox\vbox{%
\unvbox\@outputbox \pcol@putfootins\pcol@footins}%
+ \pcol@Fb
\@cons\@freelist\pcol@footins \gdef\pcol@footins{\voidb@x}%
+ \pcol@Fe{makeflushedpage(pagefn)}%
\ifdim\pcol@colht=-\maxdimen \global\pcol@colht\z@ \fi
\fi
\fi
@@ -13275,6 +13735,8 @@
% {Remove the examination of $\kappa_c(\lambda_d)$ for
% \cs{if@fcolmade} because it is made unnecesary now by
% \cs{ifpcol@dfloats}.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\hb@xt@\textwidth{%
@@ -13282,7 +13744,11 @@
\pcol@swapcolumn\@tempcntb\pcol@currcol#1#2\relax
\pcol@getcurrcol
\setbox\@cclv\box\@currbox
- \ifvoid\pcol@currfoot\else \@cons\@freelist\pcol@currfoot \fi
+ \ifvoid\pcol@currfoot\else
+ \pcol@Fb
+ \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{imakeflushedpage(colfn)}%
+ \fi
\pcol@getcurrfoot\box
\@tempswafalse
\begingroup
@@ -13324,7 +13790,7 @@
% {Implement variable-width column-separating gaps.}
% 
% The macro \!\pcol@flushfloats! is invoked from \!\pcol@output@clear! and
-% \!\pcol@output@end! to flush all deferred column-wise floats in each
+% \!\pcol@output@end! to flush all deferred \cwise{} floats in each
% column if any. After letting $\!\@colht!=\!\textheight!$ for
% \fcolumn{}s, we iterate shipping out a page having \fcolumn{}s while
% $\CSIndex{if@fcolmade}=\exists c\In0\C:(\cc_c(\dl)\neq())$.
@@ -13542,7 +14008,7 @@
% Next we process one of the following cases.
%
% The first case is for $\CSIndex{ifpcol@dfloats}=\true$ to mean the
-% \lpage{} is followed by one or more pages having deferred column-wise
+% \lpage{} is followed by one or more pages having deferred \cwise{}
% floats and thus \!\pcol@makeflushedpage! builds the ship-out image of the
% \lpage in {\em full size} in \!\@outputbox! unless the page has nothing
% perfectly. Therefore, we ship the image out by \!\@outputbox! unless it
@@ -13576,7 +14042,7 @@
% Before proceeding to the second and third cases, we let
% $\CSIndex{ifpcol@output}=\false$ because we have nothing to ship out.
%
-% Then the second case is for $h=-\infty$ without deferred column-wise
+% Then the second case is for $h=-\infty$ without deferred \cwise{}
% floats to mean all columns in the \lpage{} are empty and the page does not
% have non-merged \Scfnote{}s. In this case, we examine if
% $\Midx{\!\pcol@firstprevdepth!}=\!\relax!$ to mean we have had at least
@@ -13600,7 +14066,7 @@
% has $\!\prevdepth!=\pd'$ just before \beginparacol{} in decimal integer
% representation. Since we have not started any pages in the environment,
% and all columns in the \lpage{} is empty, we have almost nothing in the
-% environment. Note that the environment can have page-wise floats but they
+% environment. Note that the environment can have \pwise{} floats but they
% have not yet put into any pages but are kept in \!\@dbldeferlist!, or
% \Mgfnote{}s but they are merged to those in \postenv. Therefore, the
% \preenv{} and \postenv{} must be {\em connected} naturally and thus we put
@@ -13624,6 +14090,8 @@
% \changes{v1.3-6}{2013/09/17}
% {Remove \cs{unskip} from the operation to let page-wise floats be
% ordinary ones because \cs{pcol@makeflushedpage} does it.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\else
@@ -13633,8 +14101,10 @@
\@tempswatrue \@pagedp\@m\p@ \global\@mparbottom\z@
\global\let\pcol@mparbottom@out\pcol@mparbottom@zero
\ifpcol@nospan\else
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
\pcol@ovf
+ \pcol@Fe{output@end(spanning)}%
\count\@currbox10\relax
{\let\@elt\relax \xdef\@dbldeferlist{\@elt\@currbox\@dbldeferlist}}%
\global\setbox\pcol@rightpage\box\voidb@x
@@ -13723,11 +14193,15 @@
% 
% \changes{v1.2-2}{2013/05/11}
% {Add insertion of page-wise footnotes to be merged.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\ifvoid\pcol@footins\else
\pcol@Log\pcol@output@end{insert}\pcol@footins
+ \pcol@Fb
\insert\footins{\unvbox\pcol@footins}\@cons\@freelist\pcol@footins
+ \pcol@Fe{output@end(pagefn)}%
\fi
\ifvoid\pcol@topfnotes\else \insert\footins{\unvbox\pcol@topfnotes}\fi
% \end{macrocode}
@@ -13757,10 +14231,10 @@
% put to the main vertical list packed in \!\@outputbox!, or are in
% \!\@dbldeferlist!.
%
-% As for deferred page-wise floats produced in the environment, including
+% As for deferred \pwise{} floats produced in the environment, including
% those once put in the \lpage{} but returned to the list by the operation
% described above, we move them to \!\@deferlist! because they are now
-% column-wise floats. Then we invoke \!\pcol@floatplacement! to
+% \cwise{} floats. Then we invoke \!\pcol@floatplacement! to
% reinitialize float placement parameters. Finally, if $f_{\it sp}=\true$,
% we invoke \!\@startcolumn! and then repeat invocations of \!\@opcol! and
% \!\@startcolumn! while \fpage{}s are produced, after letting
@@ -13775,12 +14249,16 @@
% {Add \cs{pcol@getcurrcol} for the column specified by
% \cs{pcol@lastcol} to pass \cs{if@nobreak}, \cs{if@afterindent} and
% \cs{everypar} of the column to post-environment stuff.}
+% \changes{v1.32-2}{2015/10/10}
+% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
% 
% \begin{macrocode}
\expandafter\let\csname pcol@columncolor\number\z@\endcsname\relax
\pcol@currcol\z@ \pcol@restorecolorstack
\@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@Fb
\pcol@getcurrcol \@cons\@freelist\@currbox
+ \pcol@Fe{output@end(col)}%
\advance\pcol@currcol\@ne}%
\pcol@currcol\pcol@lastcol\relax \pcol@getcurrcol
\global\pcol@prevdepth\@pagedp
@@ -14059,7 +14537,7 @@
% Fourth, we set up a few \LaTeX's typesetting parameters which should have
% appropriate values in the environment. We let
% $\CSIndex{if@twocolumn}=\true$ so that \textit{float}|*| environments work
-% for page-wise floats and LaTeX's \!\@addmarginpar! determine the margin
+% for \pwise{} floats and LaTeX's \!\@addmarginpar! determine the margin
% for marginal notes by \CSIndex{if@firstcolumn} whose truth value is
% determined by our own \!\@addmarginpar!. We also let $\!\col@number!=1$
% instead of $\C$ so that its (almost surely) sole user \!\maketitle! will
@@ -14099,7 +14577,10 @@
% \LaTeX's own macros. Similarly, \!\@addmarginpar! is made \!\let!-equal
% to our own \!\pcol@addmarginpar! while its orginal definition is saved
% into \!\pcol@@addmarginpar! but in this case we need the original for the
-% implementaion of our own.
+% implementaion of our own. On the other hand, \!\end@dblfloat! is simply
+% replaced with our own \!\pcol@end@dblfloat! being what \LaTeX{} had had until
+% 2014 as discussed in item-(\ref{item:ovv-float-end@dblfloat}) of
+% Section~\ref{sec:imp-ovv-float}.
% 
% \changes{v1.1}{2012/05/11}
% {Replace the calculation of \cs{columnwidth} with the call of
@@ -14121,6 +14602,8 @@
% \changes{v1.3-2}{2013/09/17}
% {Add operations to define the width of columns and column-separating
% gaps in right parallel-pages.}
+% \changes{v1.32-3}{2015/10/10}
+% {Add replacement of \cs{end@dblfloat} with \cs{pcol@end@dblfloat}.}
% 
% \begin{macrocode}
\global\@twocolumntrue \col@number\@ne
@@ -14136,6 +14619,7 @@
\pcol@lastpagefalse \xdef\pcol@firstprevdepth{\number\prevdepth}%
\let\pcol@@combinefloats\@combinefloats \let\@combinefloats\pcol@combinefloats
\let\pcol@@addmarginpar\@addmarginpar \let\@addmarginpar\pcol@addmarginpar
+ \let\end@dblfloat\pcol@end@dblfloat
% \end{macrocode}
%
% Fifth, we save the original definition of \!\set@color! into
@@ -14470,6 +14954,41 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@dbldeferlist}
+% \changes{v1.32-3}{2015/10/10}
+% {Add top-level definition in case that future \LaTeX{} removes it at
+% all.}
+% \begin{macro}{\pcol@end@dblfloat}
+% \changes{v1.32-3}{2015/10/10}
+% {Added to go back to old mechanism.}
+% As discussed in Section~\ref{sec:imp-ovv-float}, 2015 version of \LaTeX{}
+% no longer uses \!\@dbldeferlist! but the macro itself is still kept in
+% \LaTeX{}. However it will be removed in future to make the first
+% \!\@cons! with it resulting in an error. Therefore, here we have its top
+% level definition with empty duplicatedly in case of its future
+% elimination. The macro \!\end@dblfloat!, on the other hand, is replaced
+% with a new definition in the new \LaTeX{} of course, and thus we define
+% \!\pcol@end@dblfloat! here to keep its old definition and to replace the
+% new one in \env{paracol} environment as discussed in
+% item-(\ref{item:ovv-float-end@dblfloat}) of Section~\ref{sec:imp-ovv-float}.
+% 
+% \begin{macrocode}
+\gdef\@dbldeferlist{}
+\def\pcol@end@dblfloat{%
+ \if@twocolumn
+ \@endfloatbox
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \@cons\@dbldeferlist\@currbox
+ \fi
+ \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
+ \else
+ \end@float
+ \fi
+}
+% \end{macrocode}
+% \end{macro}\end{macro}
+%
%
%
% \KeepSpace{6}
@@ -15253,20 +15772,35 @@
% {Examine if the argument counter is already in
% $\string\mathit{\Theta}^g$ to avoid the duplicatoin in the list
% which caused a bug.}
+% \changes{v1.32-1}{2015/10/10}
+% {Modified according to the introduction of \cs{globalcounter*}.}
+% \begin{macro}{\pcol@globalcounter@s}
+% \changes{v1.32-1}{2015/10/10}
+% {Added for \cs{globalcounter*}.}
+% \begin{macro}{\pcol@globalcounter}
+% \changes{v1.32-1}{2015/10/10}
+% {Renamed from \cs{globalcounter} according to the introduction of
+% \cs{globalcounter*}.}
% \begin{macro}{\pcol@gcounters}
-% The API macro $\!\globalcounter!\ARg{ctr}$, also used in
-% \!\pcol@fnlayout@p! to globalize the counter \counter{footnote},
-% defines that $\arg{ctr}$ is a \gcounter, and thus adds it to
-% $\CG=\Midx{\!\pcol@gcounters!}$, which has \counter{page} at initial.
-% Note that we examines if $\arg{ctr}\in\CG$ prior to the addition to avoid
-% the duplication in $\CG$. Also note that initial definition of
-% \!\pcol@gcounters! is done by \!\gdef! just for consistent \!\global!
-% assignments to it.
+% The API macro $\!\globalcounter!\ARg{ctr}$, implemented by
+% \!\pcol@globalcounter! and also used in \!\pcol@fnlayout@p! to globalize the
+% counter \counter{footnote}, defines that $\arg{ctr}$ is a \gcounter, and
+% thus adds it to $\CG=\Midx{\!\pcol@gcounters!}$, which has \counter{page}
+% at initial. Note that we examines if $\arg{ctr}\in\CG$ prior to the
+% addition to avoid the duplication in $\CG$. Also note that initial
+% definition of \!\pcol@gcounters! is done by \!\gdef! just for consistent
+% \!\global! assignments to it. On the other hand \!\globalcounter!|*|,
+% implemented by \!\pcol@globalcounter@s!, makes all counters kept in
+% \!\cl@@ckpt! global by letting \!\pcol@gcounters! have the list.
+% Switching these two functionality is done by \!\globalcounter! examining
+% if it is followed by a |*| by \!\@ifstar!.
% 
% \begin{macrocode}
%% Counter Operations
-\def\globalcounter#1{{%
+\def\globalcounter{\@ifstar\pcol@globalcounter@s\pcol@globalcounter}
+\def\pcol@globalcounter@s{\global\let\pcol@gcounters\cl@@ckpt}
+\def\pcol@globalcounter#1{{%
\@tempswafalse \def\reserved@a{#1}%
\def\@elt##1{\def\reserved@b{##1}%
\ifx\reserved@a\reserved@b \@tempswatrue \fi}%
@@ -15274,7 +15808,7 @@
\if@tempswa\else \@cons\pcol@gcounters{{#1}}\fi}}
\gdef\pcol@gcounters{\@elt{page}}
% \end{macrocode}
-% \end{macro}\end{macro}
+% \end{macro}\end{macro}\end{macro}\end{macro}
% 
% \begin{macro}{\localcounter}
% \changes{v1.2-6}{2013/05/11}
@@ -16254,7 +16788,7 @@
%
%
%
-% \section{Disabing \cs{addcontentsline}}
+% \section{Disabling \cs{addcontentsline}}
% \label{sec:imp-aconly}
%
% \begin{macro}{\addcontentsonly}
@@ -16429,7 +16963,7 @@
% 
% to let \CSIndex{if@tempswa} be $\true$ or $\false$ according to the
% enable\slash disable status of $t$. Then, after letting
-% $\!\addcontentsline!=\!\pcol@gobblethree!$ for disabing if $\false$, we
+% $\!\addcontentsline!=\!\pcol@gobblethree!$ for disabling if $\false$, we
% invoke \!\pcol@ac@caption@latex!, being the \LaTeX's orignial \!\@caption!,
% giving all three arguments of \!\pcol@ac@caption! itself surrounding
% $\arg{lcap}$ with |{| and |}| for the concealment of `|]|'. Finally, we
@@ -17975,7 +18509,7 @@
% followed by optional $|[|c|]|$, so that the invoker macro examines if $a$
% can have the optional column oridinal.
% 
-% \SpecialArrayMainIndex{a}{\pcol@bg@mayhavecol}
+% \SpecialArrayMainIndex{a}{\pcol@bg@mayhavecol@}
% 
% Therefore, the macros just need not to be \!\relax! and thus commonly have
% empty bodies.
diff --git a/Master/texmf-dist/source/latex/paracol/ltfloat.dtx b/Master/texmf-dist/source/latex/paracol/ltfloat.dtx
deleted file mode 100644
index 2669e706b74..00000000000
--- a/Master/texmf-dist/source/latex/paracol/ltfloat.dtx
+++ /dev/null
@@ -1,1314 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
-% The LaTeX3 Project and any individual authors listed elsewhere
-% in this file.
-%
-% This file is part of the LaTeX base system.
-% -------------------------------------------
-%
-% It may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This file has the LPPL maintenance status "maintained".
-%
-% The list of all files belonging to the LaTeX base distribution is
-% given in the file `manifest.txt'. See also `legal.txt' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
-%
-% \fi
-% \iffalse
-%%% From File: ltfloat.dtx
-%
-%<*driver>
-% \fi
-\ProvidesFile{ltfloat.dtx}[2002/10/01 v1.1v LaTeX Kernel (Floats)]
-% \iffalse
-\documentclass{ltxdoc}
-\GetFileInfo{ltfloat.dtx}
-\title{\filename}
-\date{\filedate}
- \author{%
- Johannes Braams\and
- David Carlisle\and
- Alan Jeffrey\and
- Leslie Lamport\and
- Frank Mittelbach\and
- Chris Rowley\and
- Rainer Sch\"opf}
-
-\begin{document}
-\maketitle
- \DocInput{\filename}
-\end{document}
-%</driver>
-% \fi
-%
-% \CheckSum{636}
-%
-% \section{Floats}
-%
-% The different types of floats are identified by a \meta{type} name,
-% which is the name of the counter for that kind of float. For
-% example, figures are of type `figure' and tables are of type `table'.
-% Each \meta{type} has associated a positive \meta{type number}, which
-% is a power of two. E.g.,\\
-% figures might be have type number~1, tables type number~2, programs
-% type number~4, etc.
-%
-% The locations where a float can go are specified by a
-% \meta{placement specifier}, which is a list of the possible
-% locations, each denoted by a letter as follows:
-% \begin{center}
-% \begin{tabular}{l@{ : }l@{ --- }l}
-% h & here & at the current location in the text.\\
-% t & top & at the top of a text page.\\
-% b & bottom & at the bottom of a text page.\\
-% p & page & on a separate float page
-% \end{tabular}
-% \end{center}
-% In addition, in conjunction with these, you can use `!' which means
-% that the current values of the float positioning parameters are
-% ignored for this float. (Has no effect on `p', float page
-% positioning.)
-% For example, `pht' specifies that the float can appear in any of
-% three locations: page, here or top.
-%
-% \StopEventually{}
-%
-%
-% \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}
-% \changes{v1.0b}{1994/03/28}{Split further from ltherest.dtx}
-% \changes{v1.0e}{1994/04/25}{Changed warning messages}
-% \changes{v1.0e}{1994/04/25}{Removed obsolete tracing code}
-% \changes{v1.0f}{1994/05/03}
-% {(CAR) Added \cs{@largefloatcheck}}
-% \changes{v1.0f}{1994/05/03}{Removed unnecessary braces from
-% arguments of \cs{@ifnextchar}}
-% \changes{v1.0i}{1994/05/22}{Use new warning commands}
-% \changes{v1.1e}{1994/11/17}
-% {\cs{@tempa} to \cs{reserved@a}}
-% \changes{v1.1g}{1994/12/10}{Some temps reinserted temporarily}
-% \changes{v1.1n}{1995/11/28}{documentation fixes}
-% \changes{v1.1s}{1997/06/16}{documentation fixes}
-%
-% \subsection{Floating Environments}
-% \begin{macrocode}
-%<*2ekernel>
-\message{floats,}
-% \end{macrocode}
-% \begin{oldcomments}
-%
-% Where floats may appear on a page, and how many may appear there
-% are specified by the following float placement parameters. The
-% numbers are named like counters so the user can set them with
-% the ordinary counter-setting commands.
-%
-% \c@topnumber : Number of floats allowed at the top of a column.
-% \topfraction : Fraction of column that can be devoted to floats.
-% \c@dbltopnumber, \dbltopfraction
-% : Same as above, but for double-column floats.
-% \c@bottomnumber, \bottomfraction
-% : Same as above for bottom of page.
-% \c@totalnumber : Number of floats allowed in a single column,
-% including in-text floats.
-% \textfraction :Minimum fraction of column that must contain text.
-% \floatpagefraction: Minimum fraction of page that must be taken
-% up by float page.
-% \dblfloatpagefraction
-% : Same as above, for double-column floats.
-%
-% The document style must define the following.
-%
-% \fps@TYPE : The default placement specifier for floats of type
-% TYPE.
-%
-% \ftype@TYPE : The type number for floats of type TYPE.
-%
-% \ext@TYPE : The file extension indicating the file on which the
-% contents list for float type TYPE is stored.
-% For example, \ext@figure = 'lof'.
-%
-% \fnum@TYPE : A macro to generate the figure number for a caption.
-% For example, \fnum@TYPE == Figure \thefigure.
-%
-% \@makecaption{NUM}{TEXT} :
-% A macro to make a caption, with NUM the value
-% produced by \fnum@... and TEXT the text of the caption.
-% It can assume it's in a \parbox of the appropriate width.
-%
-% \@float{TYPE}[PLACEMENT] : This macro begins a float environment for a
-% single-column float of type TYPE with PLACEMENT as the placement
-% specifier. The default value of PLACEMENT is defined by
-% \fps@TYPE. The environment is ended by \end@float.
-% E.g., \figure == \@float{figure}, \endfigure == \end@float.
-%
-% \@float{TYPE}[PLACEMENT] ==
-% BEGIN
-% if hmode then \@bsphack
-% \@floatpenalty := -10002
-% else \@floatpenalty := -10003
-% fi
-% \@captype ==L TYPE
-% \@dblflset
-% \@fps ==L PLACEMENT
-% \@onelevel@sanitize \@fps
-% add default PLACEMENT if at most ! in PLACEMENT == \@fpsadddefault
-% if inner
-% then LaTeX Error: 'Not in outer paragraph mode.'
-% \@floatpenalty := 0
-% else if \@freelist nonempty
-% then \@currbox :=L head of \@freelist
-% \@freelist :=G tail of \@freelist
-% \count\@currbox :=G 32*\ftype@TYPE +
-% bits determined by PLACEMENT
-% else \@floatpenalty := 0
-% LaTeX Error: 'Too many unprocessed floats'
-% fi
-% fi
-% \@currbox :=G \color@vbox
-% \normalcolor
-% \vbox{
-% %% 15 Dec 87 --
-% %% removed \boxmaxdepth :=L 0pt
-% %% that made box 0 depth because it screwed
-% %% things up. Instead, added \vskip0pt at end
-% \hsize = \columnwidth
-% \@parboxrestore
-% \@floatboxreset
-% END
-%
-% \caption ==
-% BEGIN
-% \refstepcounter{\@captype}
-% \@dblarg{\@caption{\@captype}}
-% END
-%
-% In following definition, \par moved from after \addcontentsline to
-% before \addcontentsline because the \write could cause
-% an extra blank line to be added to the paragraph above the
-% caption. (Change made 12 Jun 87)
-%
-% \@caption{TYPE}[STEXT]{TEXT} ==
-% BEGIN
-% \par
-% \addcontentsline{\ext@TYPE}{TYPE}{\numberline{\theTYPE}{STEXT}}
-% \begingroup
-% \@parboxrestore
-% \@normalsize
-% \@makecaption{\fnum@TYPE}{TEXT}
-% \par
-% \endgroup
-% END
-%
-%
-% \@dblfloat{TYPE}[PLACEMENT] : Macro to begin a float environment for
-% a double-column float of type TYPE with PLACEMENT as the placement
-% specifier. The default value of PLACEMENT is 'tp'
-% The environment is ended by \end@dblfloat.
-% E.g., \figure* == \@dblfloat{figure},
-% \endfigure* == \end@dblfloat.
-%
-% \@dblfloat{TYPE}[PLACEMENT] ==
-% Identical to \@float{TYPE}[PLACEMENT] except \hsize and \linewidth
-% are set to \textwidth.
-% \end{oldcomments}
-%
-% \begin{macro}{\@floatpenalty}
-% \begin{macrocode}
-\newcount\@floatpenalty
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption}
-%
-% This is set to be an error message outside a float since no
-% captype is defined there; this may need to be changed by some
-% classes.
-% \changes{v1.1u}{1999/04/19}
-% {Made caption an error oustside a float: latex/2815}
-% \begin{macrocode}
-\def\caption{%
- \ifx\@captype\@undefined
- \@latex@error{\noexpand\caption outside float}\@ehd
- \expandafter\@gobble
- \else
- \refstepcounter\@captype
- \expandafter\@firstofone
- \fi
- {\@dblarg{\@caption\@captype}}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@caption}
-% \changes{v1.0b}{1994/03/28}
-% {Use \cs{normalsize} not \cs{@normalsize}}
-% \changes{v1.1r}{1996/12/06}
-% {Call \cs{@setminpage} if needed. latex/2318}
-% \begin{macrocode}
-\long\def\@caption#1[#2]#3{%
- \par
- \addcontentsline{\csname ext@#1\endcsname}{#1}%
- {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
- \begingroup
-% \end{macrocode}
-%
-% The paragraph setting parameters are normalised at this point, however
-% |\@parboxrestore| resets |\everypar| which is not correct in this
-% context so |\@setminipage| is called if needed.
-%
-% The float mechanism, like minipage, sets the flag |@minipage| true
-% before executing the user-supplied text. Many \LaTeX\ constructs
-% test for this flag and do not add vertical space when it is true.
-% The intention is that this emulates \TeX's `top of page' behaviour.
-% The flag must be set false at the start of the first paragraph. This
-% is achieved by a redefinition of |\everypar|, but the call to
-% |\@parboxrestore| removes that redefinition, so it is re-inserted
-% if needed. If the flag is already false then the |\caption| was not
-% the first entry in the float, and so some other paragraph has already
-% activated the special |\everypar|. In this case no further action is
-% needed.
-% \begin{macrocode}
- \@parboxrestore
- \if@minipage
- \@setminipage
- \fi
-% \end{macrocode}
-%
-% \begin{macrocode}
- \normalsize
- \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
- \endgroup}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@float}
-% \begin{macro}{\@dblflset}
-% \changes{v1.1a}{1994/10/31}{Macro added}
-% \changes{v1.1g}{1994/12/10}{Macro removed temporarily}
-% \changes{v1.1a}{1994/10/31}
-% {Major changes to parameter parsing, setting of local variables,
-% etc; two-column and one-column cases merged; space hacks moved}
-% \changes{v1.1c}{1994/11/05}
-% {Add compatibility with old version of \cs{@xfloat}.}
-% \changes{v1.1g}{1994/12/10}{Old version reinstated temporarily}
-%
-% \begin{macrocode}
-\def\@float#1{%
- \@ifnextchar[%
- {\@xfloat{#1}}%
- {\edef\reserved@a{\noexpand\@xfloat{#1}[\csname fps@#1\endcsname]}%
- \reserved@a}}
-% \end{macrocode}
-%
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@dblfloat}
-% \changes{v1.1a}{1994/10/31}
-% {Major changes since two-column and one-column cases merged}
-% \changes{v1.1g}{1994/12/10}{Old version reinstated temporarily}
-%
-% \begin{macrocode}
-\def\@dblfloat{%
- \if@twocolumn\let\reserved@a\@dbflt\else\let\reserved@a\@float\fi
- \reserved@a}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\fps@dbl}
-% \changes{v1.1a}{1994/10/31}{Macro added}
-% \changes{v1.1g}{1994/12/10}{Macro removed temporarily}
-% Note that all double floats have default fps `tp'.
-% \end{macro}
-%
-% \begin{macro}{\@setfps}
-% \changes{v1.1a}{1994/10/31}{Macro added}
-% \changes{v1.1c}{1994/11/05}
-% {Add compatibility with old version of \cs{@xfloat}.}
-% \changes{v1.1g}{1994/12/10}{Macro removed temporarily}
-% This sets the fps, dealing with error conditions by adding
-% the default.
-%
-% \end{macro}
-%
-% \begin{macro}{\@xfloat}
-% \changes{LaTeX2e}{1993/12/05}{Command changed}
-% \changes{LaTeX2e}{1994/01/21}{Added missing percent characters.}
-% \changes{v1.1a}{1994/10/31}
-% {Major changes, removing setting of local variables, space hacks
-% etc; two-column and one-column cases merged}
-% \changes{v1.1c}{1994/11/05}
-% {Add compatibility with old version of \cs{@xfloat}: but the
-% arguments, provided at exorbitant cost, are now completely
-% ignored}
-% \changes{v1.1f}{1994/11/21}
-% {Missing percents reinserted after 4, 8: these are not numbers.}
-% \changes{v1.1g}{1994/12/10}{Old version reinstated temporarily}
-% \changes{v1.1g}{1994/12/10}{Sanitisation added temporarily}
-% The first part of this sets the count register that stores all
-% the information about the type and fps of the float.
-%
-% We assume here that the default specifiers already contain no
-% active characters.
-%
-% It may be better to store the defaults as numbers, rather than
-% symbol strings.
-%
-% \changes{v1.1p}{1996/10/24}{Added \cs{@nodocument} to trap
-% floats in the preamble}
-% \begin{macrocode}
-\def\@xfloat #1[#2]{%
- \@nodocument
- \def \@captype {#1}%
- \def \@fps {#2}%
- \@onelevel@sanitize \@fps
- \def \reserved@b {!}%
- \ifx \reserved@b \@fps
- \@fpsadddefault
- \else
- \ifx \@fps \@empty
- \@fpsadddefault
- \fi
- \fi
- \ifhmode
- \@bsphack
- \@floatpenalty -\@Mii
- \else
- \@floatpenalty-\@Miii
- \fi
- \ifinner
- \@parmoderr\@floatpenalty\z@
- \else
- \@next\@currbox\@freelist
- {%
- \@tempcnta \sixt@@n
- \expandafter \@tfor \expandafter \reserved@a
- \expandafter :\expandafter =\@fps
- \do
- {%
- \if \reserved@a h%
- \ifodd \@tempcnta
- \else
- \advance \@tempcnta \@ne
- \fi
- \fi
- \if \reserved@a t%
- \@setfpsbit \tw@
- \fi
- \if \reserved@a b%
- \@setfpsbit 4%
- \fi
- \if \reserved@a p%
- \@setfpsbit 8%
- \fi
- \if \reserved@a !%
- \ifnum \@tempcnta>15
- \advance\@tempcnta -\sixt@@n\relax
- \fi
- \fi
- }%
- \@tempcntb \csname ftype@\@captype \endcsname
- \multiply \@tempcntb \@xxxii
- \advance \@tempcnta \@tempcntb
- \global \count\@currbox \@tempcnta
- }%
- \@fltovf
- \fi
-% \end{macrocode}
-% The remainder sets up the box in which the float is typeset, and
-% the typesetting environment to be used. It is essential to have
-% the extra box to avoid the unwanted space that would otherwise
-% often be put at the top of the float.
-%
-% It ends with a hook; not sure how useful this is but it is needed
-% at present to deal with double-column floats.
-% \task{CAR?}{Sort out hooks}
-% \changes{v1.0a}{1994/03/07}
-% {(DPC) Extra group for colour}
-% \changes{v1.0c}{1994/03/14}
-% {(DPC) Use \cs{color@begingroup}}
-% \changes{v1.0g}{1994/05/13}
-% {(DPC) Use \cs{normalcolor}}
-% \changes{v1.1a}{1994/10/31}
-% {(DPC/CAR) Extra box added to remove colour resetting from vmode}
-% \changes{v1.1a}{1994/10/31}{Reset hook added}
-% \changes{v1.1c}{1994/11/05}
-% {Use new \cs{color@hbox} concept.}
-% \changes{v1.1f}{1994/11/21}
-% {Changed to \cs{color@vbox} so that large floats overflow
-% at the bottom}
-% \changes{v1.1f}{1994/11/21}{Use \cs{@setnobreak}}
-% \changes{v1.1f}{1994/11/21}{Added \cs{@setminipage}}
-% \changes{v1.1f}{1994/11/21}{Added resetting of size and font}
-% \changes{v1.1m}{1995/05/25}{(CAR) Resettings moved to hook}
-% \begin{macrocode}
- \global \setbox\@currbox
- \color@vbox
- \normalcolor
- \vbox \bgroup
- \hsize\columnwidth
- \@parboxrestore
- \@floatboxreset
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@floatboxreset}
-% \changes{v1.1a}{1994/10/31}{Macro added}
-%
-% The rational for allowing these normally global flags to be set
-% locally here, via |\@parboxrestore|, was stated originally by
-% Donald Arseneau and extended by Chris Rowley.
-% It is because these flags are only set globally to
-% true by section commands, and these should never appear within
-% marginals or floats or, indeed, in any group; and they are only ever
-% set globally to false when they are definitely true.
-%
-% If anyone is unhappy with this argument then both flags should be
-% treated as in |\set@nobreak|; otherwise this command will be
-% redundant.
-% \changes{v1.1p}{1996/10/24}
-% {Added local settings of flags: dangerous!!}
-% \begin{macrocode}
-\def \@floatboxreset {%
- \reset@font
- \normalsize
- \@setminipage
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@setnobreak}
-% \changes{v1.1f}{1994/11/21}{Macro added}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
-% \cs{@nobreak...}}
-% \begin{macrocode}
-\def \@setnobreak{%
- \if@nobreak
- \let\outer@nobreak\@nobreaktrue
- \@nobreakfalse
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@setminipage}
-% \changes{v1.1f}{1994/11/21}{Macro added}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
-% \cs{@minipage...}}
-% \begin{macrocode}
-\def \@setminipage{%
- \@minipagetrue
- \everypar{\@minipagefalse\everypar{}}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\end@float}
-% \changes{v1.0f}{1994/05/03}
-% {(CAR) Added \cs{@largefloatcheck}}
-% \changes{v1.1n}{1995/10/25}{(CAR) unify code for double and
-% single versions}
-% \begin{macrocode}
-\def\end@float{%
- \@endfloatbox
- \ifnum\@floatpenalty <\z@
-% \end{macrocode}
-% We make sure that we never exceed |\textheight|, otherwise float
-% will never get typeset (91/03/15 FMi).
-% \begin{macrocode}
- \@largefloatcheck
- \@cons\@currlist\@currbox
- \ifnum\@floatpenalty <-\@Mii
- \penalty -\@Miv
-% \end{macrocode}
-% Saving and restoring |\prevdepth| added 26 May 87 to prevent extra
-% vertical space when used in vertical mode.
-% \begin{macrocode}
- \@tempdima\prevdepth
- \vbox{}%
- \prevdepth\@tempdima
-% \end{macrocode}
-%
-% \begin{macrocode}
- \penalty\@floatpenalty
-% \end{macrocode}
-% \changes{LaTeX2.09}{1992/03/18}
-% {(RmS) changed \cs{@esphack} to \cs{@Esphack}}
-% \begin{macrocode}
- \else
- \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
- \fi
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\end@dblfloat}
-% \changes{v1.0f}{1994/05/03}{\cs{@largefloatcheck} added}
-% \changes{v1.1n}{1995/10/25}{(CAR) unify code for double and
-% single versions}
-% \begin{macrocode}
-\def\end@dblfloat{%
-\if@twocolumn
- \@endfloatbox
- \ifnum\@floatpenalty <\z@
-% \end{macrocode}
-% We make sure that we never exceed |\textheight|, otherwise float
-% will never get typeset (91/03/15 FMi).
-% \begin{macrocode}
- \@largefloatcheck
- \@cons\@dbldeferlist\@currbox
- \fi
-% \end{macrocode}
-% RmS 92/03/18 changed |\@esphack| to |\@Esphack|.
-% \begin{macrocode}
- \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
-\else
- \end@float
-\fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@endfloatbox}
-% \changes{v1.1n}{1995/10/25}{(CAR) macro added: to unify code for
-% double and single versions}
-% This macro is not intended to be a hook; it is designed to help
-% maintain the integrity of this code, which is used twice and, as
-% can be seen, is subject to frequent changes.
-% \begin{macrocode}
-\def \@endfloatbox{%
- \par\vskip\z@skip %% \par\vskip\z@ added 15 Dec 87
-% \end{macrocode}
-% \changes{v1.0a}
-% {1994/03/07}{(DPC) Extra group for colour}
-% \changes{v1.0c}{1994/03/14}
-% {(DPC) Use \cs{color@endgroup}}
-% \changes{v1.0h}{1994/05/20}{Restore outer value of @nobreak switch.}
-% \changes{v1.1a}{1994/10/31}
-% {(DPC/CAR) Extra box added to remove colour resetting from vmode}
-% \changes{v1.1c}{1994/11/05}
-% {Use new \cs{color@hbox} concept.}
-% \changes{v1.1f}{1994/11/21}{Corrected position of \cs{outer@nobreak}}
-% \changes{v1.1f}{1994/11/21}{Added reset of minipage flag}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
-% \cs{@minipage...}}
-% \begin{macrocode}
- \@minipagefalse
- \outer@nobreak
- \egroup %% end of vbox
- \color@endbox
-}
-%
-% \begin{macro}{\outer@nobreak}
-% \changes{v1.0h}{1994/05/20}{Macro added: default is to do nothing.}
-% \begin{macrocode}
-\let\outer@nobreak\@empty
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@largefloatcheck}
-% \changes{v1.0e}{1994/04/25}{Command added}
-%
-% This calculates by how much a float is oversize for the page and
-% prints this in a warning message.
-%
-% \begin{macrocode}
-\def \@largefloatcheck{%
- \ifdim \ht\@currbox>\textheight
- \@tempdima -\textheight
- \advance \@tempdima \ht\@currbox
-% \end{macrocode}
-% \changes{v1.0e}{1994/04/25}{Changed warning message to give more
-% info}
-% \begin{macrocode}
- \@latex@warning {Float too large for page by \the\@tempdima}%
- \ht\@currbox \textheight
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@dbflt}
-% \begin{macro}{\@xdblfloat}
-% \changes{v1.1a}{1994/10/31}
-% {Macros removed: \cs{@dbflt}, \cs{@xdblfloat}}
-% \changes{v1.1g}{1994/12/10}{Macros reinserted temporarily}
-%
-%
-% \begin{macrocode}
-\def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tp]}}
-\def\@xdblfloat#1[#2]{%
- \@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-% Moved to ltoutput 93/12/16
-% \begin{macrocode}
-%\newcount\c@topnumber
-%\newcount\c@dbltopnumber
-%\newcount\c@bottomnumber
-%\newcount\c@totalnumber
-% \end{macrocode}
-%
-% An analysis of |\@floatplacement|:
-%
-% This should be called whenever |\@colht| has been set.
-% \begin{macrocode}
-\def\@floatplacement{\global\@topnum\c@topnumber
- % Textpage bit, global:
- \global\@toproom \topfraction\@colht
- \global\@botnum \c@bottomnumber
- \global\@botroom \bottomfraction\@colht
- \global\@colnum \c@totalnumber
- % Floatpage bit, local:
- \@fpmin \floatpagefraction\@colht}
-% \end{macrocode}
-%
-% \begin{macro}{\@dblfloatplacement}
-% \changes{LaTeX2e}{1993/12/05}{Command changed}
-%
-% This should be called only within a group. Now changed to
-% provide extra checks in |\@addtodblcol|, needed when processing a
-% BANG float.
-%
-% \begin{macrocode}
-\def \@dblfloatplacement {%
-% \end{macrocode}
-% Textpage bit: global, but need not be.
-% \begin{macrocode}
- \global \@dbltopnum \c@dbltopnumber
- \global \@dbltoproom \dbltopfraction\@colht
-% \end{macrocode}
-% This new bit uses |\@textmin| to locally store the amount of extra
-% room in the column.
-% \begin{macrocode}
- \@textmin \@colht
- \advance \@textmin -\@dbltoproom
-% \end{macrocode}
-% Floatpage bit: must be local.
-% \begin{macrocode}
- \@fpmin \dblfloatpagefraction\textheight
- \@fptop \@dblfptop
- \@fpsep \@dblfpsep
- \@fpbot \@dblfpbot
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{oldcomments}
-% MARGINAL NOTES:
-%
-% Marginal notes use the same mechanism as floats to communicate
-% with the \output routine. Marginal notes are distinguished from
-% floats by having a negative placement specification. The command
-% \marginpar [LTEXT]{RTEXT} generates a marginal note in a parbox,
-% using LTEXT if it's on the left and RTEXT if it's on the right.
-% (Default is RTEXT = LTEXT.) It uses the following parameters.
-%
-% \marginparwidth : Width of marginal notes.
-% \marginparsep : Distance between marginal note and text.
-% the page layout to determine how to move the marginal
-% note into the margin. E.g., \@leftmarginskip ==
-% \hskip -\marginparwidth \hskip -\marginparsep .
-% \marginparpush : Minimum vertical separation between \marginpar's
-%
-% Marginal notes are normally put on the outside of the page
-% if @mparswitch = true, and on the right if @mparswitch = false.
-% The command \reversemarginpar reverses the side where they
-% are put. \normalmarginpar undoes \reversemarginpar.
-% These commands have no effect for two-column output.
-%
-% SURPRISE: if two marginal notes appear on the same line of
-% text, then the second one could appear on the next page, in
-% a funny position.
-%
-%
-% \marginpar [LTEXT]{RTEXT} ==
-% BEGIN
-% if hmode then \@bsphack
-% \@floatpenalty := -10002
-% else \@floatpenalty := -10003
-% fi
-% if inner
-% then LaTeX Error: 'Not in outer paragraph mode.'
-% \@floatpenalty := 0
-% else if \@freelist has two elements:
-% then get \@marbox, \@currbox from \@freelist
-% \count\@marbox :=G -1
-% else \@floatpenalty := 0
-% LaTeX Error: 'Too many unprocessed floats'
-% \@currbox, \@marbox := \@tempboxa %%use \def
-% fi
-% fi
-% if optional argument
-% then %% \@xmpar ==
-% \@savemarbox\@marbox{LTEXT}
-% \@savemarbox\@currbox{RTEXT}
-% else %% \@ympar ==
-% \@savemarbox\@marbox{RTEXT}
-% \box\@currbox :=G \box\@marbox
-% fi
-% \@xympar
-% END
-%
-% \reversemarginpar == BEGIN \@mparbottom :=G 0
-% @reversemargin :=G true
-% END
-%
-% \normalmarginpar == BEGIN \@mparbottom :=G 0
-% @reversemargin :=G false
-% END
-%
-% \end{oldcomments}
-%
-% \begin{macro}{\marginpar}
-% \begin{macrocode}
-\def\marginpar{%
- \ifhmode
- \@bsphack
- \@floatpenalty -\@Mii
- \else
- \@floatpenalty-\@Miii
- \fi
- \ifinner
- \@parmoderr
- \@floatpenalty\z@
- \else
- \@next\@currbox\@freelist{}{}%
- \@next\@marbox\@freelist{\global\count\@marbox\m@ne}%
- {\@floatpenalty\z@
- \@fltovf\def\@currbox{\@tempboxa}\def\@marbox{\@tempboxa}}%
- \fi
- \@ifnextchar [\@xmpar\@ympar}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@xmpar}
-% \begin{macrocode}
-\long\def\@xmpar[#1]#2{%
- \@savemarbox\@marbox{#1}%
- \@savemarbox\@currbox{#2}%
- \@xympar}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@ympar}
-% \begin{macrocode}
-\long\def\@ympar#1{%
- \@savemarbox\@marbox{#1}%
- \global\setbox\@currbox\copy\@marbox
- \@xympar}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@savemarbox}
-% \changes{v1.0b}{1994/03/12}
-% {(DPC) Extra group for colour}
-% \changes{v1.0c}{1994/03/14}
-% {(DPC) Use \cs{color@begingroup}}
-% \changes{v1.0d}{1994/04/18}
-% {(DPC) Remove Colour support}
-% \changes{v1.1a}{1994/10/31}
-% {(DPC/CAR) Extra box added for colour}
-% \changes{v1.1c}{1994/11/05}
-% {Use new \cs{color@hbox} concept.}
-% \changes{v1.1f}{1994/11/21}{Changed to \cs{color@vbox} }
-% \changes{v1.1f}{1994/11/21}{Use \cs{@setnobreak} etc}
-% \changes{v1.1f}{1994/11/21}{Added \cs{@setminipage} etc}
-% \changes{v1.1f}{1994/11/21}{Added resetting of size and font}
-% \changes{v1.1m}{1995/05/25}{(CAR) Resettings moved to hook}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
-% \cs{@minipage...}}
-% \begin{macrocode}
-\long\def \@savemarbox #1#2{%
- \global\setbox #1%
- \color@vbox
- \vtop{%
- \hsize\marginparwidth
- \@parboxrestore
- \@marginparreset
- #2%
- \@minipagefalse
- \outer@nobreak
- }%
- \color@endbox
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@marginparreset}
-% \changes{v1.1f}{1994/11/21}{Macro added}
-%
-% The rational for allowing these normally global flags to be set
-% locally here, via |\@parboxrestore| was stated originally by
-% Donald Arsenau and extended by Chris Rowley.
-% It is because these flags are only set globally to
-% true by section commands, and these should never appear within
-% marginals or floats or, indeed, in any group; and they are only ever
-% set globally to false when they are definitely true.
-%
-% If anyone is unhappy with this argument then both flags should be
-% treated as in |\set@nobreak|; otherwise this command will be
-% redundant.
-% \changes{v1.1p}{1996/10/24}
-% {Added local settings of flags: dangerous!!}
-% \begin{macrocode}
-\def \@marginparreset {%
- \reset@font
- \normalsize
-% \let\if@nobreak\iffalse
-% \let\if@noskipsec\iffalse
-% \@setnobreak
- \@setminipage
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@xympar}
-% \begin{macrocode}
-% \end{macrocode}
-% \changes{LaTeX2.09}{1992/03/18}
-% {(RmS) added \cs{global}\cs{@ignorefalse}}
-% \changes{v1.0b}{1994/03/12}
-% {(DPC) Extra bgroup for colour}
-% \changes{1.0c}{1994/03/14}
-% {(DPC) Use \cs{color@begingroup}}
-% \changes{v1.1a}{1994/10/31}
-% {(DPC/CAR) Extra box added since needed for floats}
-% \changes{v1.1c}{1994/11/05}
-% {Use new \cs{color@hbox} concept.}
-% \changes{v1.1f}{1994/11/21}{Changed to \cs{color@vbox} }
-% Setting the box here is done only because the code
-% uses \cs{end@float}; it will be empty and gets discarded.
-% \changes{v1.1o}{1996/08/02}{Remove \cs{global} before \cs{@ignore...}}
-% \begin{macrocode}
-\def \@xympar{%
- \ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi
- \setbox\@tempboxa
- \color@vbox
- \vbox \bgroup
- \end@float
- \@ignorefalse
- \@esphack
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\reversemarginpar}
-% \begin{macro}{\normalmarginpar}
-% \begin{macrocode}
-\def\reversemarginpar{\global\@mparbottom\z@ \@reversemargintrue}
-\def\normalmarginpar{\global\@mparbottom\z@ \@reversemarginfalse}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macrocode}
-\message{footnotes,}
-% \end{macrocode}
-%
-% \subsection{Footnotes}
-%
-% \begin{oldcomments}
-%
-% \footnote{NOTE} : User command to insert a footnote.
-%
-% \footnote[NUM]{NOTE}: User command to insert a footnote numbered
-% NUM, where NUM is a number -- 1, 2,
-% etc. For example, if footnotes are numbered
-% *, **, etc. within pages, then \footnote[2]{...}
-% produces footnote '**'. This command does not
-% step the footnote counter.
-%
-% \footnotemark[NUM] : Command to produce just the footnote mark in
-% the text, but no footnote. With no argument,
-% it steps the footnote counter before generating
-% the mark.
-%
-% \footnotetext[NUM]{TEXT} : Command to produce the footnote but
-% no mark. \footnote is equivalent to
-% \footnotemark \footnotetext .
-%
-% As in PLAIN, footnotes use \insert\footins, and the following
-% parameters:
-%
-% \footnotesize : Size-changing command for footnotes.
-%
-% \footnotesep : The height of a strut placed at the beginning of
-% every footnote.
-% \skip\footins : Space between main text and footnotes. The rule
-% separating footnotes from text occurs in this
-% space. This space lies above the strut of height
-% \footnotesep which is at the beginning of the
-% first footnote.
-% \footnoterule : Macro to draw the rule separating footnotes from
-% text. It is executed right after a \vspace of
-% \skip\footins. It should take zero vertical
-% space--i.e., it should to a negative skip to
-% compensate for any positive space it occupies.
-% (See PLAIN.TEX.)
-%
-% \interfootnotelinepenalty : Interline penalty for footnotes.
-%
-% \thefootnote : In usual LaTeX style, produces the footnote number.
-% If footnotes are to be numbered within pages, then
-% the document style file must include an \@addtoreset
-% command to cause the footnote counter to be reset
-% when the page counter is stepped. This is not a good
-% idea, though, because the counter will not always be
-% reset in time to ensure that the first footnote on a
-% page is footnote number one.
-%
-% \@thefnmark : Holds the current footnote's mark--e.g., \dag or '1'
-% or 'a'.
-%
-% \@mpfnnumber : A macro that generates the numbers for \footnote
-% and \footnotemark commands. It == \thefootnote
-% outside a minipage environment, but can be
-% changed inside to generate numbers for
-% \footnote's.
-%
-% \@makefnmark : A macro to generate the footnote marker from
-% \@thefnmark The default definition was
-% \hbox{$^\@thefnmark$}.
-%
-% This is now replaced by
-% \textsuperscript{\@thefnmark}
-%
-% \@makefntext{NOTE} :
-% Must produce the actual footnote, using \@thefnmark as the mark
-% of the footnote and NOTE as the text. It is called when
-% effectively inside a \parbox, with \hsize = \columnwidth.
-% For example, it might be as simple as
-% $^{\@thefnmark}$ NOTE
-%
-% In a minipage environment, \footnote and \footnotetext are redefined
-% so that
-% (a) they use the counter mpfootnote
-% (b) the footnotes they produce go at the bottom of the minipage.
-% The switch is accomplished by letting \@mpfn == footnote or mpfootnote
-% and \thempfn == \thefootnote or \thempfootnote, and by redefining
-% \@footnotetext to be \@mpfootnotetext in the minipage.
-%
-% \footnote{NOTE} ==
-% BEGIN
-% \stepcounter{\@mpfn}
-% begingroup
-% \protect == \noexpand
-% \@thefnmark :=G eval (\thempfn)
-% endgroup
-% \@footnotemark
-% \@footnotetext{NOTE}
-% END
-%
-% \footnote[NUM]{NOTE} ==
-% BEGIN
-% begingroup
-% \protect == \noexpand
-% counter \@mpfn :=L NUM
-% \@thefnmark :=G eval (\thempfn)
-% endgroup
-% \@footnotemark
-% \@footnotetext{NOTE}
-% END
-%
-% \footnotemark ==
-% BEGIN \stepcounter{footnote}
-% begingroup
-% \protect == \noexpand
-% \@thefnmark :=G eval(\thefootnote)
-% endgroup
-% \@footnotemark
-% END
-%
-% \footnotemark[NUM] ==
-% BEGIN
-% begingroup
-% footnote counter :=L NUM
-% \protect == \noexpand
-% \@thefnmark :=G eval(\thefootnote)
-% endgroup
-% \@footnotemark
-% END
-%
-% \@footnotemark ==
-% BEGIN
-% \leavevmode
-% IF hmode THEN \@x@sf := \the\spacefactor FI
-% \@makefnmark % put number in main text
-% IF hmode THEN \spacefactor := \@x@sf FI
-% END
-%
-% \footnotetext ==
-% BEGIN begingroup \protect == \noexpand
-% \@thefnmark :=G eval (\thempfn)
-% endgroup
-% \@footnotetext
-% END
-%
-% \footnotetext[NUM] ==
-% BEGIN begingroup counter \@mpfn :=L NUM
-% \protect == \noexpand
-% \@thefnmark :=G eval (\thempfn)
-% endgroup
-% \@footnotetext
-% END
-%
-% \end{oldcomments}
-%
-%
-% \changes{v1.1l}{1995/05/24}{Moved definition of \cs{footins}
-% and \cs{footnoterule} from ltplain.}
-%
-% \begin{macro}{\footins}
-% \LaTeX\ does use the same insert for footnotes as PLAIN.
-% \begin{macrocode}
-\newinsert\footins
-% \end{macrocode}
-%
-% \LaTeX\ leaves these initializations for the |\footins| insert.
-%
-% \begin{macrocode}
-\skip\footins=\bigskipamount % space added when footnote is present
-\count\footins=1000 % footnote magnification factor (1 to 1)
-\dimen\footins=8in % maximum footnotes per page
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\footnoterule}
-% \LaTeX\ keeps PLAIN \TeX's |\footnoterule| as the default.
-%
-% \begin{macrocode}
-\def\footnoterule{\kern-3\p@
- \hrule \@width 2in \kern 2.6\p@} % the \hrule is .4pt high
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\thefootnote}
-% \changes{v1.1i}{1995/05/16}{Streamlined parts of code.}
-% \begin{macrocode}
-\@definecounter{footnote}
-\def\thefootnote{\@arabic\c@footnote}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\thempfootnote}
-% \changes{v1.1j}{1995/05/18}{Added \cs{itshape}.}
-% \changes{v1.1v}{2002/10/01}{Use braces around \cs{itshape}
-% to keep font change local (pr/3460).}
-% The default display for the footnote counter in minipages is to
-% use italic letters. We use |\itshape| not |\textit| as the latter
-% would add an italic correction.
-% \begin{macrocode}
-\@definecounter{mpfootnote}
-\def\thempfootnote{{\itshape\@alph\c@mpfootnote}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@makefnmark}
-% \changes{v1.1i}{1995/05/16}{Now use \cs{textsuperscript}.}
-% \changes{v1.1j}{1995/05/18}{Added \cs{normalfont}.}
-% \changes{v1.1k}{1995/05/20}{Moved \cs{normalfont} to
-% \cs{textsuperscript}}
-% \changes{v1.1k}{1995/05/20}{Moved \cs{normalfont} back
-% and use \cs{@textsuperscript}}
-% Default definition.
-% \begin{macrocode}
-%\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
-\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\textsuperscript}
-% \changes{v1.1i}{1995/05/16}{Command added./pr1503}
-% \changes{v1.1k}{1995/05/20}{Use \cs{normalfont}.}
-% \changes{v1.1l}{1995/05/24}{Use \cs{@textsuperscript}}
-% This command provides superscript characters in the current text
-% font. It's implementation might change!!!
-% \begin{macrocode}
-\DeclareRobustCommand*\textsuperscript[1]{%
- \@textsuperscript{\selectfont#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@textsuperscript}
-% \changes{v1.1l}{1995/05/24}{Command added.}
-% \changes{v1.1n}{1995/12/05}{Use \cs{ensuremath} for latex/1984.}
-% \changes{v1.1m}{1995/12/07}
-% {Move \cs{m@th} out of the \cs{ensuremath} for latex/1984.}
-% This command should not be used directly, but may be used to define
-% other commands |\textsuperscript|, |\@makefnmark|. |#1| should
-% always start with a font selection command, to activate the font
-% size switch.
-% \begin{macrocode}
-\def\@textsuperscript#1{%
- {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\footnotesep}
-% \begin{macrocode}
-\newdimen\footnotesep
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\footnote}
-% \changes{LaTeX2.09}{1991/11/01}
-% {(RmS) Added \cs{let}\cs{protect}\cs{noexpand} in
-% \cs{footnote}, \cs{footnotemark},
-% and \cs{footnotetext}, since \cs{xdef} is used}
-% \changes{LaTeX2.09}{1991/11/22}
-% {(RmS) Added \cs{let}\cs{protect}\cs{noexpand} in
-% \cs{@xfootnote}, \cs{@xfootnotemark},
-% and \cs{@xfootnotetext}}
-% \changes{LaTeX2.09}{1992/11/26}
-% {(RmS) Changed all to
-% `def`protect\string{`noexpand`protect`noexpand\string}}
-% \changes{v1.1b}{1994/11/26}
-% {(ASAJ) Added \cs{protected@xdef}.}
-%
-% \begin{macrocode}
-\def\footnote{\@ifnextchar[\@xfootnote{\stepcounter\@mpfn
- \protected@xdef\@thefnmark{\thempfn}%
- \@footnotemark\@footnotetext}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@xfootnote}
-% \begin{macrocode}
-\def\@xfootnote[#1]{%
- \begingroup
- \csname c@\@mpfn\endcsname #1\relax
- \unrestored@protected@xdef\@thefnmark{\thempfn}%
- \endgroup
- \@footnotemark\@footnotetext}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@footnotetext}
-% \changes{LaTeX2.09}{1991/09/29}
-% {(RmS) added \cs{reset@font}}
-% \changes{LaTeX2.09}{1992/11/26}
-% {(RmS) added protection for \cs{edef}}
-% \changes{v1.0a}{1994/03/07}
-% {(DPC) Extra group for colour}
-% \changes{v1.0c}{1994/03/14}
-% {(DPC) Use \cs{color@begingroup}, add \cs{endgraf}}
-% \changes{v1.0d}{1994/04/18}
-% {(DPC) Remove Colour support}
-% \changes{v1.0g}{1994/05/13}
-% {(DPC) Add new style colour support: \cs{normalcolor}}
-% \changes{v1.0g}{1994/05/13}
-% {(DPC) Use \cs{@finalstrut}}
-% \changes{v1.1a}{1994/10/31}
-% {(DPC/CAR) Move colour setting to output routine}
-% \changes{v1.1b}{1994/11/04}
-% {(ASAJ) Added \cs{protected@edef}.}
-% \changes{v1.1c}{1994/11/05}
-% {Removed \cs{normalcolor} (again)}
-% \changes{v1.1t}{1997/11/19}
-% {Missing percent, again}
-% \begin{macrocode}
-\long\def\@footnotetext#1{\insert\footins{%
- \reset@font\footnotesize
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\footnotesep
- \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
- \hsize\columnwidth \@parboxrestore
- \protected@edef\@currentlabel{%
- \csname p@footnote\endcsname\@thefnmark
- }%
- \color@begingroup
- \@makefntext{%
- \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
- \color@endgroup}}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\footnotemark}
-% \changes{v1.1b}{1994/11/04}{Added \cs{protected@xdef} to
-% \cs{footnotemark}.}
-% \begin{macrocode}
-\def\footnotemark{%
- \@ifnextchar[\@xfootnotemark
- {\stepcounter{footnote}%
- \protected@xdef\@thefnmark{\thefootnote}%
- \@footnotemark}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@xfootnotemark}
-% \begin{macrocode}
-\def\@xfootnotemark[#1]{%
- \begingroup
- \c@footnote #1\relax
- \unrestored@protected@xdef\@thefnmark{\thefootnote}%
- \endgroup
- \@footnotemark}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@footnotemark}
-% \changes{v1.1h}{1995/05/12}
-% {Add \cs{nobreak} to allow hyphenation. latex/1605}
-% \begin{macrocode}
-\def\@footnotemark{%
- \leavevmode
- \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
- \@makefnmark
- \ifhmode\spacefactor\@x@sf\fi
- \relax}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\footnotetext}
-% \begin{macrocode}
-\def\footnotetext{%
- \@ifnextchar [\@xfootnotenext
- {\protected@xdef\@thefnmark{\thempfn}%
- \@footnotetext}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@xfootnotenext}
-% \begin{macrocode}
-\def\@xfootnotenext[#1]{%
- \begingroup
- \csname c@\@mpfn\endcsname #1\relax
- \unrestored@protected@xdef\@thefnmark{\thempfn}%
- \endgroup
- \@footnotetext}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\thempfn}
-% \begin{macro}{\@mpfn}
-% \begin{macrocode}
-\def\@mpfn{footnote}
-\def\thempfn{\thefootnote}
-%</2ekernel>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \Finale
-%
diff --git a/Master/texmf-dist/source/latex/paracol/man.dtx b/Master/texmf-dist/source/latex/paracol/man.dtx
index 8569ce52d9f..f604ba24fac 100644
--- a/Master/texmf-dist/source/latex/paracol/man.dtx
+++ b/Master/texmf-dist/source/latex/paracol/man.dtx
@@ -346,6 +346,8 @@
% \changes{v1.2-7}{2013/05/11}
% {Remove \cs{nosv} from verbatim example of Table~1 shown in the right
% column.}
+% \changes{v1.32-3}{2015/10/10}
+% {Add footnote to mention the page-wise float problem.}
% \begin{table}[b]\nosv
% \caption{A Single-Column Table}
% \centerline{\begin{tabular}[t]{|l|c|r|}\hline
@@ -356,13 +358,18 @@
% \subsection{Figures and Tables}
% As shown in this page, double-column figures\slash tables (or those
% spanned multiple columns if you have three or more) may be placed by
-% \env{figure*} and \env{table*} environments as usual. A single-column
-% figure\slash table will be placed in the column in which you put
-% \env{figure} and \env{table}. For example, the body of a \env{figure}
-% environment in a \env{leftcolumn} environment is \emph{always} placed in a
-% left column. That is, even if the column of the \emph{current} page does
-% not have enough room to place the figure, it will not be thrown to the right
-% column but will be placed in the left column of the next page\footnote{
+% \env{figure*} and \env{table*} environments as usual\footnote{
+% 
+% See Section~\ref{sec:problem} for the appearance order issue of
+% double-column floats.}.
+% 
+% A single-column figure\slash table will be placed in the column in which
+% you put \env{figure} and \env{table}. For example, the body of a
+% \env{figure} environment in a \env{leftcolumn} environment is
+% \emph{always} placed in a left column. That is, even if the column of the
+% \emph{current} page does not have enough room to place the figure, it will
+% not be thrown to the right column but will be placed in the left column of
+% the next page\footnote{
% 
% Or some farther page if \LaTeX{} cannot solve the placement problem wisely.}.
%
@@ -706,12 +713,10 @@
%\columnratio{0.6}
%\begin{paracol}{2}
%\begin{leftcolumn}
-%O.K., we have restarted |paracol|
-%environment...
+%O.K., ...
%\end{leftcolumn}
-%\begin{rightcolumn}
%\end{Verbatim}
-% \textit{source}\\
+% |\begin{rightcolumn}| \textit{source}\\
% |\end{rightcolumn}|
% \flushpage
% \end{rightcolumn}
diff --git a/Master/texmf-dist/source/latex/paracol/paracol.dtx b/Master/texmf-dist/source/latex/paracol/paracol.dtx
index a71db219dbc..40d22cb2806 100644
--- a/Master/texmf-dist/source/latex/paracol/paracol.dtx
+++ b/Master/texmf-dist/source/latex/paracol/paracol.dtx
@@ -2,7 +2,7 @@
%<paracol>%% Style file `paracol'.
%<man>%% LaTeX file 'paracol-man'.
%<*paracol|man>
-%% Copyright (C) 2005-2013
+%% Copyright (C) 2005-2015
%% Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
%% (Kyoto University)
%% This program can be redistributed and/or modified under the terms
@@ -19,7 +19,7 @@
%<man>\ProvidesFile{paracol-man.tex}
% \fi
% \ProvidesFile{paracol.dtx}
-[2013/10/10 v1.31 ]
+[2015/10/10 v1.32 ]
% \iffalse
%<*man>
\documentclass{ltxdoc}\normalmarginpar
@@ -374,6 +374,7 @@
% \def\cswap{column-swapping\Index{column-swapping}}
% \def\cswitch{column-switching\Index{column-switching}}
% \def\csenv{column-switching environment\Index{column-switching environment}}
+% \def\cwise{column-wise\Index{column-wise stuff}}
% \def\csync{counter synchronization\Index{counter synchronization}}
% \def\ccolpage{current column-page\Index{current column-page}}
% \def\Endparacol{\CSIndex{end}\allowbreak
@@ -409,6 +410,7 @@
% \def\preenv{pre-environment stuff\Index{pre-environment stuff}}
% \def\prespan{pre-spanning-text stuff\Index{pre-spanning-text stuff}}
% \def\prim{page rim\Index{page rim}}
+% \def\pwise{page-wise\Index{page-wise stuff}}
% \def\pwstuff{page-wise stuff\Index{page-wise stuff}}
% \def\Scfnote{page-wise footnote\Index{page-wise footnote}}
% \def\scfnote{page-wise\Index{page-wise footnote}}
@@ -560,62 +562,72 @@
%
%
% \changes{v0.9}{2005/01/28}
-% {The style paracol is born.}
+% {The style paracol is born. (2005/01/28)}
% \changes{v0.91}{2011/09/16}
-% {The style is included in CTAN with a very small modification.}
+% {The style is included in CTAN with a very small
+% modification. (2011/09/16) }
% \changes{v1.0}{2011/10/10}
% {Add this document and fix the following problems on the author's
-% 30th wedding anniversary.}
+% 30th wedding anniversary. (2011/10/10)}
% \changes{v1.1}{2012/05/11}
-% {Add \cs{columnratio} and variable column width.}
+% {Add \cs{columnratio} and variable column width. (2012/05/11)}
% \changes{v1.2-1}{2013/05/11}
% {Make \string\texttt{paracol} environment accept \cs{color} and add
-% \cs{columncolor}.}
+% \cs{columncolor}. (2013/05/11)}
% \changes{v1.2-2}{2013/05/11}
-% {Add page-wise and merged footnote functions.}
+% {Add page-wise and merged footnote functions. (2013/05/11)}
% \changes{v1.2-3}{2013/05/11}
-% {Fix a problem in synchronization.}
+% {Fix a problem in synchronization. (2013/05/11)}
% \changes{v1.2-4}{2013/05/11}
-% {Add column-swapping functions.}
+% {Add column-swapping functions. (2013/05/11)}
% \changes{v1.2-5}{2013/05/11}
% {Allow a \string\texttt{paracol} envrionment is enclosed in list-like
-% environments.}
+% environments. (2013/05/11)}
% \changes{v1.2-6}{2013/05/11}
-% {Add \cs{localcounter}.}
+% {Add \cs{localcounter}. (2013/05/11)}
% \changes{v1.2-7}{2013/05/11}
-% {Bug fixes and minor revisions as follows.}
+% {Bug fixes and minor revisions as follows. (2013/05/11)}
% \changes{v1.21}{2013/06/06}
% {Fix the bug by which a column having empty column-pages followed by
-% a synchronization point is lost or placed in a wrong page.}
+% a synchronization point is lost or placed in a wrong
+% page. (2013/06/06)}
% \changes{v1.22}{2013/06/30}
% {Fix the bug that \cs{color} and its relatives in a paragraph or
-% around page top causes inconsistency of color context.}
+% around page top causes inconsistency of color context. (2013/06/30)}
% \changes{v1.23}{2013/07/08}
% {Fix the problem that a colored text has a line break candidate at
-% its end inappropriately.}
+% its end inappropriately. (2013/07/08)}
% \changes{v1.24}{2013/07/27}
% {Fix the problem caused by the concealment of \cs{vadjust} in math
-% group.}
+% group. (2013/07/27)}
% \changes{v1.3-1}{2013/09/17}
% {Fix the known problem of the placement of page-crossing spanning
-% texts.}
+% texts. (2013/09/17)}
% \changes{v1.3-2}{2013/09/17}
-% {Introduce parallel-paging.}
+% {Introduce parallel-paging. (2013/09/17)}
% \changes{v1.3-3}{2013/09/17}
-% {Introduce column-separating rule drawing and background painting.}
+% {Introduce column-separating rule drawing and background
+% painting. (2013/09/17) }
% \changes{v1.3-4}{2013/09/17}
% {Introduce API for column/gap width and marginal note position
-% specification.}
+% specification. (2013/09/17)}
% \changes{v1.3-5}{2013/09/17}
% {Introduce \cs{thecolumn} and \cs{ensurevspace},
-% \cs{footnotelayout}, \cs{twosided} and \cs{cleardoublepage}.}
+% \cs{footnotelayout}, \cs{twosided} and
+% \cs{cleardoublepage}. (2013/09/17)}
% \changes{v1.3-6}{2013/09/17}
% {Fix a few problems mainly related to synchronization and ordinary
-% footnotes.}
+% footnotes. (2013/09/17)}
% \changes{v1.31}{2013/10/10}
% {Add passing paramenters related sectioning commmands beyond
% \cs{end}\texttt{\char`\{paracol\char`\}} and fix misspells in
-% error messages.}
+% error messages. (2013/10/10)}
+% \changes{v1.32-1}{2015/10/10}
+% {Add \cs{globalcounter*} to make all counters global. (2015/10/10)}
+% \changes{v1.32-2}{2015/10/10}
+% {Fix a memory leak in \cs{pcol@startcolumn}. (2015/10/10)}
+% \changes{v1.32-3}{2015/10/10}
+% {Fix the page-wise float problem. (2015/10/10)}
%
%
%
@@ -692,8 +704,9 @@
% packages;
% 
% Heiner Richter who asked for the possibility of swapping unbalanced
-% columns, then revealed two bugs in version 1.22 related to coloring and
-% float pages, and finally showed the necessity of \!\coloredwordhyphnated!;
+% columns, revealed two bugs in version 1.22 related to coloring and
+% float pages, showed the necessity of \!\coloredwordhyphenated!, and finally
+% found the necessity of \!\globalcounter!|*|;
% 
% an anonymous user who reported a very rare-case but severe bug in the
% version~1.1 by which a page can be lost (whoops!);
@@ -719,8 +732,14 @@
% capability of rule drawing in the gaps separating columns and painting
% backgrounds of columns and so on;
% 
-% and Michael Bolin who gave the author motivated examples showing the
+% Michael Bolin who gave the author motivated examples showing the
% necessity of \!\ensurevspace!.
+% 
+% Tigran Aivazian who reported a memory leak problem fixed in version 1.32;
+% 
+% and Marcus Zelezny and Touhami Mamouni who found an incompatibility with
+% \LaTeX{} itself (2015/01/10 or later) and enlighten the author on the cause
+% of the problem.
%
% For the implementation of the style file, the author referred to the base
% implementations of \texttt{\char`\\output}, \texttt{\char`\\newcounter}
diff --git a/Master/texmf-dist/source/latex/paracol/probs.dtx b/Master/texmf-dist/source/latex/paracol/probs.dtx
index e8c69fd556d..f2d716d60ea 100644
--- a/Master/texmf-dist/source/latex/paracol/probs.dtx
+++ b/Master/texmf-dist/source/latex/paracol/probs.dtx
@@ -9,13 +9,6 @@
% \changes{v1.3-3}{2013/09/17}
% {Remove the problem description of the lack of column-separating rule
% drawing because it has been implmented.}
-% \changes{v1.3-6}{2013/09/17}
-% {Add comments about usage of \cs{paragraph} etc.\ in spanning texts.}
-% \changes{v1.3-2}{2013/09/17}
-% {Add comments about the limitaion of parallel-paging.}
-% \changes{v1.3-3}{2013/09/17}
-% {Add comments about the imperfectnss of extention of backgrond
-% painting regions.}
%
% Here a few problems you could face in the use of \textsf{paracol} are
% summarized.
@@ -99,6 +92,8 @@
% \end{itemize}
%
% \item
+% \changes{v1.3-6}{2013/09/17}
+% {Add comments about usage of \cs{paragraph} etc.\ in spanning texts.}
% \begingroup\parskip\z@
% As the author did for Section\Tie1 to \ref{sec:float}, sometimes you will
% make a section header spanning all columns by giving a sectioning command
@@ -161,18 +156,47 @@
% \env{paracol} environment cannot be broken into two (or more) pages.
%
% \item
+% \changes{v1.3-2}{2013/09/17}
+% {Add comments about the limitaion of parallel-paging.}
+% 
% As the author confessed in Section\Tie\ref{sec:ppts-paired}, right
% \parapag{}es cannot have \pwstuff{} but have blank spaces in the
% corresponding region for them. The author will try to remove this
% limitation from a future version of \Paracol, in the version 1.4 hopefully.
%
% \item
+% \changes{v1.3-3}{2013/09/17}
+% {Add comments about the imperfectnss of extention of backgrond
+% painting regions.}
% \begin{Hfuzz}{1.5pt}
% As discussed in Section\Tie\ref{sec:bgpaint-me}, it is desirable that
% \bgpaint{} region definition in \!\backgroundcolor! has position dependent
% extensions. The author is fairly optimistic about the incorporation of
% this advanced feature in the version 1.4.
% \end{Hfuzz}
+%
+% \item
+% \changes{v1.32-3}{2015/10/10}
+% {Add comments about the out-of-order appearance of page-wise floats
+% even with \protect\LaTeX-2015/01/10 or later.}
+% In the release on 2015/01/10, \LaTeX{} changed its mechanism of the
+% placement of double-column floats (or in our terminology, \pwise{}
+% floats) to avoid {\em out-of-order\/} appearance of them. That is, until
+% the release on 2014/05/01 a double-column float (e.g., \env{figure*}) can
+% be overtaken by a single-column float of the same category (e.g.,
+% \env{figure}) when they cannot be put into the page in which texts around
+% them are put. In order to cope with the problem, the new version merged
+% two lists to keep {\em deferred\/} double- and single-column floats into
+% one so that the appearance order of them is determined by their order in
+% the single list. Though this change should have made people happy when
+% they typeset {\em ordinary\/} two-column (or multiple-column) documents,
+% the new feature might not be welcomed by \Paracol{} users because your
+% parallel-columns have their own {\em stream\/} of floats to be put in the
+% corresponding columns. Therefore, and for the sake of simplicity of
+% \Paracol's implementation, the author decided to nullify this new feature
+% in \env{paracol} environments. That is, even with new releases of
+% \LaTeX{}, your \pwise{} floats given in a \env{paracol} environment can be
+% overtaken by \cwise{} floats.
% \end{itemize}
%
% In addition to the problems above known to the author, there may be (or
diff --git a/Master/texmf-dist/source/latex/paracol/ref.dtx b/Master/texmf-dist/source/latex/paracol/ref.dtx
index 98bd32a2abf..c28ad26d3dd 100644
--- a/Master/texmf-dist/source/latex/paracol/ref.dtx
+++ b/Master/texmf-dist/source/latex/paracol/ref.dtx
@@ -36,7 +36,7 @@
% if provided, with a vertical skip of \!\textfloatsep! separating them if
% bottom floats exist. The \emph{deferred} floats which have not yet
% appeared in the starting page and thus will appear in the next or
-% succeeding pages are considered as page-wise floats given in the
+% succeeding pages are considered as \pwise{} floats given in the
% environment.
%
% \item
@@ -109,7 +109,7 @@
% the {\em\Uidx\postenv} being the single-column texts and others
% following \Endparacol{} in the {\em\Uidx\lpage} of the environment may not
% start from the top of a page. If any columns don't have deferred
-% column-wise floats and the most advanced {\em\Uidx\lcolumn} at
+% \cwise{} floats and the most advanced {\em\Uidx\lcolumn} at
% \Endparacol{} has neither of footnotes\footnote{
% 
% With \Mgfnote{} layout shown in Section~\ref{sec:ref-scfnote}, the
@@ -120,11 +120,11 @@
% nor bottom floats, its bottom is naturally connected to the \postenv{}.
% If the \lcolumn{} has these kinds of bottom stuff, they are put above the
% \postenv{}, with a vertical skip of \!\textfloatsep! separating them if
-% bottom floats exist. All deferred column-wise floats given in the
+% bottom floats exist. All deferred \cwise{} floats given in the
% environment are flushed before the \postenv{} appears, possibly creating
% {\em\Uidx\fcolumn{}s} only with floats. On the other hand, deferred
-% page-wise floats given in the environment are considered as deferred
-% (single-) column-wise floats given just after \Endparacol.
+% \pwise{} floats given in the environment are considered as deferred
+% (single-) \cwise{} floats given just after \Endparacol.
%
% \item
% The values of all \lcounter{}s in the leftmost column are used as the
@@ -169,7 +169,7 @@
% 
% \begin{itemize}
% \item
-% All {\em\Uidx\pwstuff}, i.e., \Preenv{} and \postenv, page-wise floats,
+% All {\em\Uidx\pwstuff}, i.e., \Preenv{} and \postenv, \pwise{} floats,
% \mctext{} and (\mgfnote{} or non-merged) \Scfnote{}s, are placed only in
% left \parapag{}es leaving corresponding regions in right \parapag{}es
% blank\footnote{
@@ -828,13 +828,20 @@
%
%
%
+% \newpage
% \subsection{Commands for Counters}
% \label{sec:ref-counter}
%
% \begin{description}
-% \item[\Midx{\!\globalcounter!}\marg{ctr}]\mbox{}\par
-% The command declares that the counter \meta{ctr} is global to all columns.
-% An update of a \Uidx\gcounter{} in a column is seen by any other columns.
+% \item[\Midx{\!\globalcounter!}\marg{ctr}]\mbox{}
+% \Item[\Midx{\!\globalcounter!}\texttt{*}]\mbox{}\par
+% \changes{v1.32-1}{2015/10/10}
+% {Add descriptions of \cs{globalcounter*}.}
+% 
+% The command \!\globalcounter!\marg{ctr} declares that the counter
+% \meta{ctr} is global to all columns, while \!\globalcounter!|*| does so
+% for all counters. An update of a \Uidx\gcounter{} in a column is seen by
+% any other columns.
% 
% \begin{itemize}
% \item
@@ -857,6 +864,15 @@
% might have in ordinary \LaTeX{} documents.}.
%
% \item
+% All counters except for \counter{page} are local by default. This feature
+% may cause a problem with some packages including \textsf{marginnote} and
+% \textsf{(auto-)pst-pdf} having their own counters which must be global.
+% Since it is tough to find the name of such counters from package sources,
+% if you have something wrong with these (or other) packages, try to put
+% \!\globalcounter!|*| in your preamble and use \!\localcounter! shown below
+% to localize specific counters which you need to be local.
+%
+% \item
% Globalizing a \meta{ctr} being already global is just ignored without any
% complaints.
% \end{itemize}
@@ -1171,7 +1187,7 @@
% The rules are drawn if \LaTeX's typesetting parameter \!\columnseprule!
% for the rule width has non-zero value, e.g., 0.4\,|pt| to obey the
% standard rule thickness. The rules are \emph{not} drawn on \pwstuff{},
-% i.e., \Preenv{} and \postenv, page-wise floats or (\mgfnote{} or
+% i.e., \Preenv{} and \postenv, \pwise{} floats or (\mgfnote{} or
% non-merged) \Scfnote{}s of course but also \mctext{}s. Therefore, if a
% page has \mctext{}s, the rules are {\em broken} by them as shown in the
% red rule example below.
@@ -1249,7 +1265,7 @@
%
% \item[|s|\rm(\textit{panning})] for \mctext{}s.
%
-% \item[|f|\rm(\textit{loat})] for page-wise floats.
+% \item[|f|\rm(\textit{loat})] for \pwise{} floats.
%
% \item[|n|\rm(\textit{ote})] for (\mgfnote{} or non-merged) \Scfnote{}s.
%
@@ -1420,9 +1436,9 @@
% \item[\Midx{\!\clearpage!}]\mbox{}\par
% The command does what \!\flushpage! does and then flushes all floats still
% deferred if any. The deferred float flushing beyond the \tpage{} takes
-% place at first for column-wise ones creating \fcolumn{}s for them, and
-% then for page-wise ones creating {\em\Uidx\fpage{}s} only with
-% page-wise floats, as \LaTeX's \!\clearpage! does outside \env{paracol}
+% place at first for \cwise{} ones creating \fcolumn{}s for them, and
+% then for \pwise{} ones creating {\em\Uidx\fpage{}s} only with
+% \pwise{} floats, as \LaTeX's \!\clearpage! does outside \env{paracol}
% environment.
%
% \item[\Midx{\!\cleardoublepage!}]\mbox{}\par
diff --git a/Master/texmf-dist/tex/latex/paracol/paracol.sty b/Master/texmf-dist/tex/latex/paracol/paracol.sty
index 3abdb891ee8..17a55ec5a2e 100644
--- a/Master/texmf-dist/tex/latex/paracol/paracol.sty
+++ b/Master/texmf-dist/tex/latex/paracol/paracol.sty
@@ -1,5 +1,5 @@
%% Style file `paracol'.
-%% Copyright (C) 2005-2013
+%% Copyright (C) 2005-2015
%% Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
%% (Kyoto University)
%% This program can be redistributed and/or modified under the terms
@@ -9,7 +9,7 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{paracol}
-[2013/10/10 v1.31 ]
+[2015/10/10 v1.32 ]
%% Register Declaration
@@ -88,6 +88,23 @@
\def\pcol@Logfn@i#1{}
\pcol@LogLevel111
+\iffalse
+\newwrite\pcol@F@write
+\immediate\openout\pcol@F@write\jobname.fls
+\fi
+\def\pcol@F#1{\pcol@FF{#1}{}}
+\def\pcol@FF#1#2{\pcol@F@count
+ \immediate\write\pcol@F@write{#1(\number\pcol@page:\number\pcol@currcol/%
+ \number\pcol@toppage:\number\c@page)=\pcol@F@n #2}}
+\def\pcol@F@count{{\@tempcnta\z@
+ \def\@elt##1{\advance\@tempcnta\@ne}\@freelist
+ \xdef\pcol@F@n{\number\@tempcnta}}}
+\let\pcol@Fb\pcol@F@count
+\def\pcol@Fe#1{{\let\reserved@a\pcol@F@n \pcol@FF{#1}{<=\reserved@a}}}
+\let\pcol@F\@gobble
+\let\pcol@Fb\relax
+\let\pcol@Fe\@gobble
+
%% \output Routine
\def\pcol@ovf{%
@@ -160,7 +177,9 @@
\setbox\@cclv\vbox{\pcol@unvbox@cclv\footins}%
\ifnum\pcol@page=\pcol@toppage
\pcol@Log\pcol@makecol{save}\footins
+ \pcol@Fb
\pcol@savefootins\pcol@currfoot
+ \pcol@Fe{makecol(pagefn)}%
\else
\pcol@Log\pcol@makecol{discard}\footins
\setbox\@tempboxa\box\footins
@@ -205,13 +224,17 @@
\vskip\pcol@textfloatsep
\unvbox\@outputbox}%
\let\@elt\relax
+ \pcol@Fb
\xdef\@freelist{\@freelist\@toplist}%
+ \pcol@Fe{cflt}%
\global\let\@toplist\@empty}
\def\pcol@opcol{%
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox to\@colht{
\boxmaxdepth\@maxdepth
\pcol@clearcst@unvbox\@outputbox}}\pcol@ovf
+ \pcol@Fe{opcol}%
\expandafter\@cons\csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
\ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
\pcol@nextpage
@@ -300,11 +323,13 @@
\fi
\global\@colht\textheight
\global\topskip\pcol@topskip
- \@dblfloatplacement
+ \@dblfloatplacement \let\f@depth\z@
\@tryfcolumn\@dbldeferlist
\@whilesw\if@fcolmade\fi{%
+ \pcol@Fb
\@next\@currbox\@freelist{%
\global\setbox\@currbox\box\@outputbox}\pcol@ovf
+ \pcol@Fe{startpage(fcol)}%
\global\dimen\@currbox-\maxdimen
\global\skip\@currbox\pcol@topskip
\@cons\pcol@pages{{\number\c@page}\@currbox\voidb@x{}{}}%
@@ -312,10 +337,12 @@
\global\advance\pcol@page\@ne \global\pcol@toppage\pcol@page
\@tryfcolumn\@dbldeferlist}%
\begingroup
- \let\reserved@b\@dbldeferlist
- \global\let\@dbldeferlist\@empty
+ \let\reserved@b\@dbldeferlist \let\reserved@c\@deferlist
+ \global\let\@dbldeferlist\@empty \global\let\@deferlist\@empty
\let\@elt\@sdblcolelt
\reserved@b
+ \let\@elt\relax \xdef\@dbldeferlist{\@dbldeferlist\@deferlist}%
+ \global\let\@deferlist\reserved@c
\endgroup
\ifx\@dbltoplist\@empty
\pcol@defcurrpage{\number\c@page}\voidb@x\voidb@x{}{}%
@@ -325,11 +352,15 @@
\let\@elt\@comdblflelt
\@dbltoplist
\let\@elt\relax
+ \pcol@Fb
\xdef\@freelist{\@freelist\@dbltoplist}%
+ \pcol@Fe{startpage(dbltop)}%
\global\let\@dbltoplist\@empty
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
\unvbox\@tempboxa \vskip-\dblfloatsep \dblfigrule
\vskip\dbltextfloatsep}}\pcol@ovf
+ \pcol@Fe{startpage(spanning)}%
\global\dimen\@currbox\@colht
\global\skip\@currbox\pcol@topskip
\pcol@defcurrpage{\number\c@page}\@currbox\voidb@x{}{}%
@@ -352,7 +383,9 @@
\def\pcol@bg@floatheight{\pcol@bg@textheight}%
\setbox\@outputbox\vbox to\textheight{%
\pcol@bg@paintbox{Ff}\unvbox\pcol@spanning}%
+ \pcol@Fb
\@cons\@freelist\pcol@spanning
+ \pcol@Fe{outputelt(spanning)}%
\ifnum\pcol@ncolleft<\pcol@ncol
\setbox\pcol@rightpage\vbox to\textheight{%
\ifpcol@paired\else \advance\c@page\@ne \fi
@@ -393,7 +426,9 @@
\@tempdimb\ht\pcol@spanning \advance\@tempdimb\dp\pcol@spanning
\ifnum#1=\z@
\ifpcol@firstpage\else \pcol@bg@paintbox{Ff}\fi
+ \pcol@Fb
\@cons\@freelist\pcol@spanning \unvbox\pcol@spanning
+ \pcol@Fe{ioutputelt(spanning)}%
\else\ifpcol@firstpage
\ht\pcol@rightpage\ht\pcol@spanning
\dp\pcol@rightpage\dp\pcol@spanning
@@ -411,7 +446,11 @@
\expandafter\@next\expandafter\@currbox
\csname pcol@shipped\number\@tempcntb\endcsname
\relax{\let\@currbox\voidb@x}%
- \ifvoid\@currbox\else \@cons\@freelist\@currbox \fi
+ \ifvoid\@currbox\else
+ \pcol@Fb
+ \@cons\@freelist\@currbox
+ \pcol@Fe{ioutputelt(page)}%
+ \fi
\expandafter\@tempdima
\csname pcol@columnwidth\number\@tempcntb \endcsname
\pcol@@hfil \hb@xt@\@tempdima{\box\@currbox\hss}%
@@ -421,7 +460,9 @@
\ifnum#1=\z@
\pcol@Log\pcol@outputelt{output}\pcol@footins
\pcol@putfootins\pcol@footins
+ \pcol@Fb
\@cons\@freelist\pcol@footins
+ \pcol@Fe{ioutputelt(footins)}%
\else
\vskip\skip\pcol@footins \nointerlineskip
\pcol@phantom\pcol@footins \vskip\z@
@@ -577,6 +618,11 @@
\pcol@getcurrfoot\copy
\pcol@Log\pcol@startcolumn{insert}\footins
\insert\footins{\unvbox\footins}%
+ \ifnum\pcol@page=\pcol@toppage
+ \pcol@Fb
+ \@cons\@freelist\pcol@footins
+ \pcol@Fe{startcolumn(pagefn)}%
+ \fi
\fi
\ifnum\pcol@page=\pcol@toppage
\pcol@deferredfootins\pcol@startcolumn \fi
@@ -834,6 +880,7 @@
\global\pcol@page\z@ \global\pcol@toppage\z@ \global\pcol@basepage\z@
\global\let\pcol@pages\@empty
\global\let\@dbldeferlist\@deferlist \global\let\@deferlist\@empty
+ {\def\@elt##1{\global\dp##1\z@}\@dbldeferlist}%
\setbox\z@\box\pcol@topfnotes
\@tempdima\@colroom
\advance\@tempdima-\ht\@holdpg \advance\@tempdima-\dp\@holdpg
@@ -862,9 +909,11 @@
\let\pcol@bg@preposttop\pcol@bg@preposttop@right
\reserved@a \unvbox\pcol@rightpage}%
\fi
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
\let\pcol@bg@preposttop\pcol@bg@preposttop@left
\reserved@a \unvbox\@outputbox}}\pcol@ovf
+ \pcol@Fe{output@start(preenv)}%
\global\dimen\@currbox\@colht
\ifdim\@tempdima=\z@ \@tempskipa\topskip \else \@tempskipa\z@ \fi
\global\skip\@currbox\@tempskipa \global\topskip\@tempskipa
@@ -878,8 +927,10 @@
\fi
\global\@colroom\@colht \pcol@floatplacement
\pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
\ifdim\topskip=\z@ \hrule\@height\z@\@width\z@ \fi}}\pcol@ovf
+ \pcol@Fe{output@start(col)}%
\pcol@setcurrcolnf
\global\count\@currbox\z@
\global\dimen\@currbox\@colroom
@@ -888,7 +939,9 @@
\global\pcol@currcol\z@
\pcol@getcurrcol
\pcol@savecolorstack
+ \pcol@Fb
\@cons\@freelist\@currbox \unvbox\@currbox
+ \pcol@Fe{output@start(col)}%
\ifvoid\footins\else
\pcol@Log\pcol@output@start{insert}\footins
\insert\footins{\box\footins\penalty\interlinepenalty}%
@@ -901,7 +954,9 @@
\ifvoid\footins \setbox\@outputbox\box\@holdpg
\else \pcol@combinefootins\@holdpg\footins
\fi
+ \pcol@Fb
\let\@elt\relax \xdef\@freelist{\@freelist\@midlist}%
+ \pcol@Fe{makenormalcol}%
\global\let\@midlist\@empty
\pcol@combinefloats
\else
@@ -927,15 +982,19 @@
\pcol@shiftspanning\@holdpg
\setbox\@holdpg\vbox{\unvbox\pcol@prespan \unvbox\@holdpg}%
\fi\fi
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{
\pcol@clearcst@unvbox\@holdpg}}\pcol@ovf
+ \pcol@Fe{output@switch}%
\def\pcol@currfoot{\voidb@x}%
\ifvoid\footins\else
\ifpcol@scfnote
\ifnum\pcol@page=\pcol@toppage
\pcol@getcurrpinfo\@tempcnta\@tempdima\@tempskipa
\pcol@Log\pcol@output@switch{save}\footins
+ \pcol@Fb
\pcol@savefootins\pcol@footins
+ \pcol@Fe{output@switch(pagefn)}%
\pcol@defcurrpage{\number\@tempcnta}\pcol@spanning\pcol@footins
{\pcol@sptextlist}{\pcol@mparbottom}%
\else
@@ -944,7 +1003,9 @@
\fi
\else
\pcol@Log\pcol@output@switch{save}\footins
+ \pcol@Fb
\pcol@savefootins\pcol@currfoot
+ \pcol@Fe{output@switch(colfn)}%
\fi
\fi
\ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
@@ -980,7 +1041,9 @@
\pcol@getcurrcol
\global\pcol@page\count\@currbox
\global\@colroom\dimen\@currbox
+ \pcol@Fb
\@cons\@freelist\@currbox
+ \pcol@Fe{restartcolumn(col)}%
\pcol@getcurrpage
\ifpcol@scfnote
\edef\pcol@currfoot{\pcol@footins}%
@@ -989,7 +1052,9 @@
\pcol@putbackmvl
\if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi
\ifvoid\pcol@footins\else
+ \pcol@Fb
\pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{restartcolumn(pagefn)}%
\pcol@Log\pcol@restartcolumn{insert}\footins
\pcol@shrinkcolbyfn\@colht\footins\@tempdimb
\insert\footins{\unvbox\footins}%
@@ -1008,9 +1073,11 @@
\else
\pcol@putbackmvl
\ifvoid\pcol@currfoot\else
- \pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
- \pcol@Log\pcol@restartcolumn{insert}\footins
- \insert\footins{\unvbox\footins}%
+ \pcol@Fb
+ \pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{restartcolumn(colfn)}%
+ \pcol@Log\pcol@restartcolumn{insert}\footins
+ \insert\footins{\unvbox\footins}%
\fi
\if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi
\fi}
@@ -1394,7 +1461,11 @@
\pcol@lastpagefalse
\pcol@page\count\@currbox
\setbox\@cclv\vbox{\unvbox\@currbox \vfil}%
- \ifvoid\pcol@currfoot\else \@cons\@freelist\pcol@currfoot \fi
+ \ifvoid\pcol@currfoot\else
+ \pcol@Fb
+ \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{flushcolumn(colfn)}%
+ \fi
\pcol@getcurrfoot\box
\pcol@getcurrpage
\ifvoid\pcol@footins
@@ -1424,15 +1495,19 @@
\fi
\@makefcolumn\@deferlist
\if@fcolmade
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
\pcol@ovf
+ \pcol@Fe{flushcolumn(fcol)}%
\expandafter\@cons
\csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
\fi
\advance\pcol@page\@ne}%
\fi
\ifpcol@lastpagesave \pcol@lastpagetrue \fi
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{}}\pcol@ovf
+ \pcol@Fe{flushcolumn(col)}%
\pcol@getcurrpinfo\@tempcnta{\global\@colht}\@tempskipa
\@pageht\@colht
\ifvoid\pcol@footins\else \pcol@shrinkcolbyfn\@colht\pcol@footins\relax \fi
@@ -1476,7 +1551,10 @@
\def\pcol@makefcolpage{\vbox to\@colht{
\vskip\@fptop \vskip-\@fpsep
\def\@elt##1{\vskip\@fpsep\box##1}\@toplist \vskip\@fpbot}%
- \xdef\@freelist{\@freelist\@toplist}\global\let\@toplist\@empty}
+ \pcol@Fb
+ \xdef\@freelist{\@freelist\@toplist}\global\let\@toplist\@empty
+ \pcol@Fe{makefcolpage}%
+}
\def\pcol@measurecolumn{%
\pcol@getcurrcol
@@ -1545,9 +1623,11 @@
\ifx\@toplist\@empty
\textfloatsep\z@ \floatsep\z@ \let\topfigrule\relax
\fi
+ \pcol@Fb
\@next\pcol@float\@freelist{\global\setbox\pcol@float\vbox to\z@{
\vskip-\floatsep \topfigrule \vskip\textfloatsep
\unvbox\@currbox \vss}}\pcol@ovf
+ \pcol@Fe{synccolumn(topfloat)}%
\@cons\@toplist\pcol@float
\advance\@tempdimb\textfloatsep \advance\@tempdimb-\floatsep
\advance\@tempdimb\@M\p@
@@ -1599,7 +1679,7 @@
\pcol@flushfloats
\begingroup
\setbox\pcol@rightpage\box\voidb@x
- \@dblfloatplacement
+ \@dblfloatplacement \let\f@depth\z@
\@makefcolumn\@dbldeferlist
\@whilesw\if@fcolmade\fi{%
\def\pcol@bg@floatheight{\pcol@bg@textheight}%
@@ -1635,7 +1715,9 @@
\reserved@a \unvbox\pcol@spanning
\ifpcol@firstpage\else \if@tempswa\else \unskip \fi\fi}%
\global\setbox\@outputbox\vbox{\box\@outputbox}%
+ \pcol@Fb
\@cons\@freelist\pcol@spanning
+ \pcol@Fe{makeflushedpage(spanning)}%
\ifnum\pcol@ncolleft<\pcol@ncol
\global\setbox\pcol@rightpage\vbox{%
\ifpcol@paired\else \advance\c@page\@ne \fi
@@ -1678,7 +1760,9 @@
\fi
\global\setbox\@outputbox\vbox{%
\unvbox\@outputbox \pcol@putfootins\pcol@footins}%
+ \pcol@Fb
\@cons\@freelist\pcol@footins \gdef\pcol@footins{\voidb@x}%
+ \pcol@Fe{makeflushedpage(pagefn)}%
\ifdim\pcol@colht=-\maxdimen \global\pcol@colht\z@ \fi
\fi
\fi
@@ -1701,7 +1785,11 @@
\pcol@swapcolumn\@tempcntb\pcol@currcol#1#2\relax
\pcol@getcurrcol
\setbox\@cclv\box\@currbox
- \ifvoid\pcol@currfoot\else \@cons\@freelist\pcol@currfoot \fi
+ \ifvoid\pcol@currfoot\else
+ \pcol@Fb
+ \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{imakeflushedpage(colfn)}%
+ \fi
\pcol@getcurrfoot\box
\@tempswafalse
\begingroup
@@ -1796,8 +1884,10 @@
\@tempswatrue \@pagedp\@m\p@ \global\@mparbottom\z@
\global\let\pcol@mparbottom@out\pcol@mparbottom@zero
\ifpcol@nospan\else
+ \pcol@Fb
\@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
\pcol@ovf
+ \pcol@Fe{output@end(spanning)}%
\count\@currbox10\relax
{\let\@elt\relax \xdef\@dbldeferlist{\@elt\@currbox\@dbldeferlist}}%
\global\setbox\pcol@rightpage\box\voidb@x
@@ -1827,13 +1917,17 @@
\fi
\ifvoid\pcol@footins\else
\pcol@Log\pcol@output@end{insert}\pcol@footins
+ \pcol@Fb
\insert\footins{\unvbox\pcol@footins}\@cons\@freelist\pcol@footins
+ \pcol@Fe{output@end(pagefn)}%
\fi
\ifvoid\pcol@topfnotes\else \insert\footins{\unvbox\pcol@topfnotes}\fi
\expandafter\let\csname pcol@columncolor\number\z@\endcsname\relax
\pcol@currcol\z@ \pcol@restorecolorstack
\@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@Fb
\pcol@getcurrcol \@cons\@freelist\@currbox
+ \pcol@Fe{output@end(col)}%
\advance\pcol@currcol\@ne}%
\pcol@currcol\pcol@lastcol\relax \pcol@getcurrcol
\global\pcol@prevdepth\@pagedp
@@ -1902,6 +1996,7 @@
\pcol@lastpagefalse \xdef\pcol@firstprevdepth{\number\prevdepth}%
\let\pcol@@combinefloats\@combinefloats \let\@combinefloats\pcol@combinefloats
\let\pcol@@addmarginpar\@addmarginpar \let\@addmarginpar\pcol@addmarginpar
+ \let\end@dblfloat\pcol@end@dblfloat
\global\let\pcol@set@color\set@color
\ifx\set@color\relax
\let\pcol@bg@paintpage\relax \let\pcol@bg@paintbox\@gobble
@@ -1970,6 +2065,19 @@
\expandafter\let\expandafter\reserved@a\csname pcol@com@#1\endcsname
\expandafter\let\csname #1\endcsname\reserved@a}
+\gdef\@dbldeferlist{}
+\def\pcol@end@dblfloat{%
+ \if@twocolumn
+ \@endfloatbox
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \@cons\@dbldeferlist\@currbox
+ \fi
+ \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
+ \else
+ \end@float
+ \fi
+}
%% Column Width Setting
\def\columnratio#1{\global\let\pcol@colwidthspecleft\relax
@@ -2130,7 +2238,9 @@
%% Counter Operations
-\def\globalcounter#1{{%
+\def\globalcounter{\@ifstar\pcol@globalcounter@s\pcol@globalcounter}
+\def\pcol@globalcounter@s{\global\let\pcol@gcounters\cl@@ckpt}
+\def\pcol@globalcounter#1{{%
\@tempswafalse \def\reserved@a{#1}%
\def\@elt##1{\def\reserved@b{##1}%
\ifx\reserved@a\reserved@b \@tempswatrue \fi}%