texlive[72651] Master/texmf-dist: paracol (25oct24)

commits+karl at tug.org commits+karl at tug.org
Fri Oct 25 23:27:00 CEST 2024


Revision: 72651
          https://tug.org/svn/texlive?view=revision&revision=72651
Author:   karl
Date:     2024-10-25 23:26:59 +0200 (Fri, 25 Oct 2024)
Log Message:
-----------
paracol (25oct24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/paracol/README
    trunk/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf
    trunk/Master/texmf-dist/doc/latex/paracol/paracol-man.tex
    trunk/Master/texmf-dist/doc/latex/paracol/paracol.pdf
    trunk/Master/texmf-dist/source/latex/paracol/bgpaint.dtx
    trunk/Master/texmf-dist/source/latex/paracol/impl.dtx
    trunk/Master/texmf-dist/source/latex/paracol/man.dtx
    trunk/Master/texmf-dist/source/latex/paracol/paracol.dtx
    trunk/Master/texmf-dist/source/latex/paracol/probs.dtx
    trunk/Master/texmf-dist/source/latex/paracol/pwfnote.dtx
    trunk/Master/texmf-dist/source/latex/paracol/ref.dtx
    trunk/Master/texmf-dist/tex/latex/paracol/paracol.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/paracol/paracol-2018-12-31.sty

Modified: trunk/Master/texmf-dist/doc/latex/paracol/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/paracol/README	2024-10-25 21:26:46 UTC (rev 72650)
+++ trunk/Master/texmf-dist/doc/latex/paracol/README	2024-10-25 21:26:59 UTC (rev 72651)
@@ -1,8 +1,9 @@
-paracol (v1.35): a multi-column package to typeset columns in "parallel".
+paracol (v1.36): a multi-column package to typeset columns in "parallel".
 ===
 Copyright (C) 2005-2018
-  Hiroshi Nakashima <h.nakashima at DOMAIN;  DOMAIN=media.kyoto-u.ac.jp>
-  (Kyoto Univerisity)
+  Hiroshi Nakashima (Kyoto University, deceased)
+Copyright (C) 2024
+  Markus Kurtz
 This package can be redistributed and/or modified under the terms
 of the LaTeX Project Public License distributed from CTAN
 archives in directory macros/latex/base/lppl.txt; either
@@ -22,9 +23,20 @@
 - probs.dtx ......... source of Section 11 of user's manual
 - impl.dtx .......... source of implementation document
 - paracol-man.pdf ... PDF of user's manual
+- paracol.pdf ....... PDF of implementation manual
 
 [How to "make"]
 
+## The l3build way: get the zip archive from
+# https://codeberg.org/mgkurtz/paracol/archive/main.zip
+
+  % unzip main.zip
+  % cd paracol
+  % l3build install # to install paracol.sty or
+  % l3build install --full # to also install docs and source
+
+## The classical way
+
   % tex paracol.ins     # you'll have paracol.sty and paracol-man.tex
 
 # to have user's manual (its PDF is included in the distribution)
@@ -66,9 +78,9 @@
 - \columncolor[<mode>]{<color>}[<col>] to give the default <color> (with
   <mode>) to the column <col> (new for v1.2).
 
-- \footnotelayout{<layout>} to choose ordinary column-wise footnote
+- \footnoteplacement{<layout>} to choose ordinary column-wise footnote
   typesetting or page-wise typesetting to gather footnotes in all columns
-  (new for v1.2 and *NEW* for v1.3 with better API).
+  (new for v1.2, *NEW* for v1.3 with better API, new for v1.36 with new name).
 
 - \twosided{<t_1><t_2>...} to enable ordinary two-sided typesetting
   (<t_i>=p), reversal of printing order of columns in even-numbered pages
@@ -116,8 +128,8 @@
 - Emulation of \marginnote[<left>]{<right>}[<voffset>] given by marginnote
   package (*NEW* for v 1.35).
 
-- Bugs found in v1.3 and successors up to v1.34 has been fixed.
+- Bugs found in v1.3 and successors up to v1.35 has been fixed.
 
 Enjoy!
 
-Hiroshi Nakashima <h.nakashima at DOMAIN;  DOMAIN=media.kyoto-u.ac.jp>
+Hiroshi Nakashima

Modified: trunk/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/paracol/paracol-man.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/paracol/paracol-man.tex	2024-10-25 21:26:46 UTC (rev 72650)
+++ trunk/Master/texmf-dist/doc/latex/paracol/paracol-man.tex	2024-10-25 21:26:59 UTC (rev 72651)
@@ -1,7 +1,8 @@
 %% LaTeX file 'paracol-man'.
 %% Copyright (C) 2005-2018
-%%   Hiroshi Nakashima <h.nakashima at DOMAIN;  DOMAIN=media.kyoto-u.ac.jp>
-%%   (Kyoto University)
+%%   Hiroshi Nakashima (Kyoto University, deceased)
+%% Copyright (C) 2024
+%%   Markus Kurtz
 %% This program can be redistributed and/or modified under the terms
 %% of the LaTeX Project Public License distributed from CTAN
 %% archives in directory macros/latex/base/lppl.txt; either
@@ -8,7 +9,6 @@
 %% version 1 of the License, or any later version.
 
 \ProvidesFile{paracol-man.tex}
-[2018/12/31 v1.35 ]
 \documentclass{ltxdoc}\normalmarginpar
 \usepackage{color}
 \usepackage{paracol}
@@ -15,7 +15,6 @@
 \usepackage{newvbtm}
 \DisableCrossrefs
 \PageIndex
-\CodelineNumbered
 \RecordChanges
 \OnlyDescription
 \def\ONLYDESCRIPTION{}

Modified: trunk/Master/texmf-dist/doc/latex/paracol/paracol.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/paracol/bgpaint.dtx
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/paracol/impl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/paracol/impl.dtx	2024-10-25 21:26:46 UTC (rev 72650)
+++ trunk/Master/texmf-dist/source/latex/paracol/impl.dtx	2024-10-25 21:26:59 UTC (rev 72651)
@@ -65,11 +65,11 @@
 % We also have to maintain another type of \colpage{}s which are currently
 % built, or {\em\Uidx\ccolpage{}s} in short, to switch from a column to
 % another.  Since each column may have its own {\em context} for the
-% typsetting of it, or {\em\Uidx\cctext} in short, it were perfect to save
+% typesetting of it, or {\em\Uidx\cctext} in short, it were perfect to save
 % the context when we leave from a 
 % column and to restore that when we revisit the column if we could.
 % However, \TeX{} and \LaTeX{} has a tremendously large number of context
-% variables and the number becomes virtualy boundless when we take variables
+% variables and the number becomes virtually boundless when we take variables
 % defined in various styles and by users themselves into account.
 % Therefore, we had to abandon to keep the whole context of the column but
 % carefully chose a small subset comprising variables automatically modified
@@ -225,8 +225,8 @@
 % 
 % \item
 % 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
+% single-column {\em\Uidx\preenv} preceding \beginparacol{} in the
+% {\em\Uidx\spage} where it resides and spanning all columns.  In this case
 % $\pp^i(p)=i$ represents $\!\insert!{\cdot}i$, often {\em cached}
 % in the macro \!\pcol at spanning!, for such {\em\Uidx\spanning}
 % whose registers have the followings.
@@ -297,7 +297,7 @@
 % with the value representing the last marginal note in \preenv{}, while
 % another examiner \!\pcol at output@end! lets the outside \!\@mparbottom! have
 % 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
+% setting of marginal note placement.  The whole element $\pp^m(p)$ is often
 % {\em cached} in the macro \!\pcol at mparbottom!.  The usage of this
 % element is discussed in \secref{sec:imp-ovv-cswap} a little bit more
 % detailedly.
@@ -309,7 +309,7 @@
 % of a \parapag{}e (pair) $p$.
 % 
 % The reason why we keep track of $\page(p)$ is that page numbering is not
-% necessrary to be consecutive.  If such a {\em jump} occurs randomly in any
+% necessary to be consecutive.  If such a {\em jump} occurs randomly in any
 % columns explicitly updating \counter{page}, it is very tough to give a
 % consistent view of the page number of a specific page to all columns.
 % Therefore we suppose jumps occur only in the leftmost column 0\footnote{
@@ -326,7 +326,7 @@
 % $\page(q)=\pp^p(q)$ for all $q\in[p,\ptop]$ are let be $\page(p)+(q-p)$ in
 % usual cases but $\page(p)+2(q-p)$ in \npaired{} \parapag{}ing.
 % This update also takes place on \cswitch{} from the leftmost \colpage{} at
-% $p$ to another column so that a jump happning before the switching is
+% $p$ to another column so that a jump happening before the switching is
 % notified to other columns.  On the other hand, starting or \cswitch{} to a
 % non-leftmost \colpage{} at $p$ lets \counter{page} have $\page(p)$
 % referring to $\pp(p)$, unless the column starts the most advanced \tpage.
@@ -343,10 +343,10 @@
 % \npaired{} \parapag{}ing always gives incorrect page number to the
 % columns in a right \parapag{}e because $\pp^p(p)$ always has $\page(p)$
 % for the left \parapag{}e.  However, it is expected that the progress of
-% the leftmost column usually preceeds other columns to give consistent
+% the leftmost column usually precedes other columns to give consistent
 % \counter{page} reference even with jumps, unless the reference is made by
 % a column in a right \npaired{} \parapag{}e.  More importantly, it is
-% assured that indirect refereces through |.aux| records and page numbers
+% assured that indirect references through |.aux| records and page numbers
 % recorded in |.toc|, |.idx|, and so on are always consistent because of the
 % lazy evaluation of $\counter{page}=\page(p)$ at ship-out of an ordinary
 % page $p$ or a left \parapag{}e $p$, while the counter is let have
@@ -359,7 +359,7 @@
 % \!\pcol at startpage! by the macro \!\pcol at defcurrpage!.  Another
 % \!\def!inition is done in \!\pcol at output@switch! also with
 % \!\pcol at defcurrpage! to let $\pp^f(\ptop)$ have \Scfnote{}s built in
-% \!\footins! if \scfnote{} typsetting is in effect and the \cswitch{}
+% \!\footins! if \scfnote{} typesetting is in effect and the \cswitch{}
 % leaves the column in $\ptop$\footnote{
 % 
 % The \!\def!inition of \!\pcol at currpage! in \!\pcol at setpnoelt!, and
@@ -421,7 +421,7 @@
 % $\arg{rep}$ in a column $c$ defined by
 % $\!\definethecounter!\<\cl\>\<c\>\arg{rep}$.  The \lrep{} $\arg{rep}$ is
 % kept in $|\pcol at thectr@|{\cdot}\cl{\cdot}c$ and is made \!\let!-equal to
-% $|\the|{\cdot}\cl$ when the column $c$ is visted.
+% $|\the|{\cdot}\cl$ when the column $c$ is visited.
 % 
 % \SpecialArrayMainIndex{\theta{\cdot}c}{\pcol at thectr@}
 % \SpecialArrayIndex{\theta}{\the}
@@ -460,7 +460,7 @@
 % 
 % Fixing $\pp^f(p)$ for $p<\ptop$ makes it impossible to add footnotes in a
 % column in the page $p$ not only to $\pp^f(p)$ but also to \!\footins!
-% for the page $p$ becaues we have at least one fixed \colpage{} $\s_c(p)$
+% for the page $p$ because we have at least one fixed \colpage{} $\s_c(p)$
 % unable to shrink to have such additional footnotes in $p$\footnote{
 % 
 % The \colpage{} $\s_c(p)$ could have some space at its bottom produced by,
@@ -657,7 +657,7 @@
 % we immediately performed push\slash pop of the \colorstack{} in these
 % macros.  In addition, even in vertical mode these macros can appear before
 % \TeX{} finds a page break after which they must be in effect, if they are
-% preceded by a sequece of non-breakable vertical items by which \TeX{}'s
+% preceded by a sequence of non-breakable vertical items by which \TeX{}'s
 % examination of the page break is {\em delayed} as well as the invocation
 % of \!\output! at the break.
 % 
@@ -669,7 +669,7 @@
 % null-height\slash depth\slash width having a \!\special! which the
 % \!\reset at color! puts into the main vertical list.  Since we let
 % $\!\count!\!\pcol at colorins!=0$ and $\!\skip!\!\pcol at colorins!=0$ to keep
-% the \!\insert!iion from affecting the growth of \!\pagetotal!, it is
+% the \!\insert!ion from affecting the growth of \!\pagetotal!, it is
 % guaranteed that an inserted $\celt$ or $\celtpop$ is given to \!\output!
 % through \!\pcol at colorins! together with |\box255| containing the
 % corresponding \!\special!.
@@ -688,7 +688,7 @@
 % \!\pcol at output@switch! for a \cswitch{} through \!\pcol at clearcst@unvbox!,
 % and is for rewinding the \colorstack{}
 % $(\Celt^c,\cstraw)=\Uidx\CSTraw^c$.  Therefore, for each $\celt$ to be kept
-% because of $\npop=0$ on the encoutner with it we put \!\special! for
+% because of $\npop=0$ on the encounter with it we put \!\special! for
 % \!\reset at color!.  Note that on another scan for stack reestablishment,
 % \!\pcol at colorins! has $\cst$ and is kept unchanged.  Also note that other
 % \!\output!  invocations such as that for floats do not touch $\cstraw$ to
@@ -721,7 +721,7 @@
 % 
 % To solve the problem above, we introduced a trick with \!\everyvbox! to
 % turn a switch $\CSIndex{ifpcol at inner}=\true$ at the beginning of every
-% \!\vbox! in a \env{paracol} environment, by which we supress the
+% \!\vbox! in a \env{paracol} environment, by which we suppress the
 % \!\insert!ion for \!\set at color! because a \!\vbox! cannot cross a
 % page boundary.  As for that of \!\reset at color!, we suppress it by not
 % reserving our own macro \!\pcol at reset@color at pop! for the \!\insert!ion by
@@ -728,9 +728,9 @@
 % \!\aftergroup!.  That is, we reserve both \!\reset at color! and
 % \!\pcol at reset@color at pop! with \!\aftergroup! if we are outside of any
 % \!\vbox!es, while does the former only otherwise.  By the same reason, we
-% supress the \!\insert!ion if we are in restricted horizontal mode, i.e.,
+% suppress the \!\insert!ion if we are in restricted horizontal mode, i.e.,
 % if both \CSIndex{ifhmode} and \CSIndex{ifinner} are true.  On the other
-% hand, we cannot supress the \!\insert!ion when we are in an in-text math
+% hand, we cannot suppress the \!\insert!ion when we are in an in-text math
 % because it can cross a page boundary\footnote{
 % 
 % If an in-text math is in a \cs{hbox}, \cs{insert}ion is not
@@ -761,9 +761,9 @@
 % \changes{v1.34}{2018/05/07}
 % 	{Split the description of \cs{columncolor} from \Sec1.6.2 to have
 %	 new \Sec1.6.3 ``Changing Default Column Color'' because we have
-%	 serveral new issues in the new implementation with \cs{insert}.}
+%	 several new issues in the new implementation with \cs{insert}.}
 % 
-% The implemntation of \!\columncolor! and \!\normalcolumncolor! is
+% The implementation of \!\columncolor! and \!\normalcolumncolor! is
 % relatively easy for the cases that they appear outside
 % \env{paracol} environment or they define the default color of a
 % column different from the current column.  That is, for the default color
@@ -842,7 +842,7 @@
 % |${|\!\color!$\Arg{c}\textit{text}$|}$| or
 % |$|\!\textcolor!$\~\Arg{c}\ARg{text}$|$| expanded to the former, the
 % \!\insert!ion for push is lost while its counterpart for pop survives
-% making it necessary to check the existance of pushing counterpart for each
+% making it necessary to check the existence of pushing counterpart for each
 % pop in $\cstraw$\footnote{
 % 
 % Since a pop is always in a group one level outer from its push
@@ -856,7 +856,7 @@
 % because we can have a page-break in \textit{text}.  Therefore, we have to
 % find a means to examine whether a pop $\celtpop_i$ has its counterpart
 % $\celt_i$ in $\cstraw$ to remove $\celt_i$ from $\cstraw$ if exists or to
-% igonore $\celtpop_i$ otherwise.  That is, we have to attach an identifier
+% ignore $\celtpop_i$ otherwise.  That is, we have to attach an identifier
 % $m$ to $\celt_i$ and $\celtpop_i$, i.e., to make them $\Uidx\mcelt_{i,m}$
 % and $\Uidx\mceltpop_{i,m}$.
 % 
@@ -866,7 +866,7 @@
 % \!\vbox! $m$\,|sp| wide ($m>0$) if our version of \!\set at color! is in math
 % mode to represent $\mcelt_{i,m}$ and $\mceltpop_{i,m}$, while the width is
 % 0 otherwise as described in \secref{sec:imp-ovv-color-hmode}.  Then in the
-% scan of $\cstraw$ for rewinding in \!\output!, we supress
+% scan of $\cstraw$ for rewinding in \!\output!, we suppress
 % incrementing\slash decrementing $\npop$ for $\mcelt_{i,m}$ and
 % $\mceltpop_{i,m}$, but remove $\mcelt_{i,m}$ if $\mceltpop_{i,m}$ is in
 % $\cstraw$ as a successor while we keep it in $\cstraw$ otherwise putting a
@@ -875,7 +875,7 @@
 % To ensure that $\mcelt_{i,m}$ has its counterpart $\mceltpop_{i,m}$ in
 % $\cstraw$ iff the push and pop are in a \colpage, we maintain the counter
 % \!\pcol at mcid! incremented before (the attempt of) the \!\insert!ion of
-% $\mcelt_{i,m}$ with $m=\!\pcol at mcid!$ and the \!\aftergroup! reservaion
+% $\mcelt_{i,m}$ with $m=\!\pcol at mcid!$ and the \!\aftergroup! reservation
 % for that of $\mceltpop_{i,m}$.  Then the counter is zero-cleared by
 % \!\output! routine in order to keep it less than
 % $\!\pcol at mcpushlimit!=1000$ unless, roughly speaking, a \colpage{} has a
@@ -894,8 +894,8 @@
 % the order of the elements in $\cstraw$ must be $\mcelt_{i,m}$,
 % $\mceltpop_{i,m}$, $\mcelt_{j,m}$ and $\mceltpop_{j,m}$ from its bottom to
 % top, though some of them could be missing.  Therefore, if
-% $\mceltpop_{i,m}$ is in $\cstraw$, $\mcelt_{j,m}$ must follow it if
-% exsits not causing accidental matching with $\mceltpop_{i,m}$.
+% $\mceltpop_{i,m}$ is in $\cstraw$, then $\mcelt_{j,m}$ must follow it if
+% it exists not causing accidental matching with $\mceltpop_{i,m}$.
 % 
 % \item
 % If $\mcelt_{i,m}$ is in $\cstraw$ but $\mceltpop_{i,m}$ is not, it means
@@ -930,7 +930,7 @@
 % \colpage{} by switching or page breaking, we examine the emptiness of the
 % \colpage{} and if so we do nothing, while otherwise we put the
 % \!\special!s for reestablishing $\csts$ at the top of the \colpage{} and
-% those for rewinding $\cstraw$ at the bottom.  Similary, when we revisit a
+% those for rewinding $\cstraw$ at the bottom.  Similarly, when we revisit a
 % \colpage, we examine its emptiness and if so we save $\CST^c$ into
 % $\csts$, while otherwise we put \!\special!s for reestablishing $\CST^c$
 % and nullify $\csts$ so that nothing will be put at the top of the
@@ -1042,8 +1042,8 @@
 % `|m|' of \!\twosided!, though almost all users will specify both swapping
 % consistently.  Since the side margin for a marginal note is decided in
 % \!\output! routine by \!\pcol at addmarginpar! being our own version of
-% \LaTeX's macro for maginal notes \!\@addmarginpar!, the page in which the
-% margial note resides has been fixed.  However, the number of the page and
+% \LaTeX's macro for marginal notes \!\@addmarginpar!, the page in which the
+% marginal note resides has been fixed.  However, the number of the page and
 % thus its parity may not have been fixed yet due to the possible jump in
 % column-0 taking place afterward, unlike \cswap{} for which the page number
 % has been fixed because it is performed in ship-out process.  Since it is
@@ -1091,7 +1091,7 @@
 % (or forces) us to let \mctext{}s always belong to column-0 preserving the
 % consistency of, for example, local counter values referred to in them,
 % while we need to shift a text to the left edge of the text area if it
-% resides in an even numbered page.  Furhtermore, this \mctext{} capturing
+% resides in an even numbered page.  Furthermore, this \mctext{} capturing
 % enables to measure the vertical size of the captured text together with the
 % vertical position of its top edge to record them in the list $\pp^s(p)$,
 % so that we draw \cseprule{}s skipping the text and painting its \bground{}
@@ -1237,7 +1237,7 @@
 % 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$), \pwise{} floats ($f,F$) and \scfnote{} footnotes ($n,N$).  The
-% geometical specifications $\bgr_a$ for those regions are given as follows,
+% geometrical 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).
 % 
@@ -1256,8 +1256,8 @@
 % \bginfext{} $\HS$ is let be 0.
 % 
 % We have other regions for columns and \csepgap{}s, namely $\bgr_C^c$ and
-% $\bgr_G^c$, which vertically span all over text area regardless exsistance
-% of any \pwstuff.  Therefore, their geometical specifications are as
+% $\bgr_G^c$, which vertically span all over text area regardless existence
+% of any \pwstuff.  Therefore, their geometrical specifications are as
 % follows with text area coordinates.
 % 
 % \begin{eqnarray*}
@@ -1275,7 +1275,7 @@
 %	[(0,\;\HB)\;(\WT,\;\HS)]&	\preenv\cr
 % 	[(0,\;\HB)\;(\WT,\;\HT)]&	\postenv}
 % $$
-% Note that paiting of \postenv{} is done {\em outside} \env{paracol}
+% Note that painting of \postenv{} is done {\em outside} \env{paracol}
 % environment when the \postenv{} encounters a page break, unless another
 % \env{paracol} environment starts in the page and thus the \postenv{}
 % becomes \preenv{} of the second (or subsequent) environment.
@@ -1282,7 +1282,7 @@
 % 
 % Finally, we define the order of \bgpaint{} as follows, where $a$, $a(i)$,
 % $a^c$ and $a^c(i)$ mean $\bgr_a$, $\bgr_a(i)$, $\bgr_a^c$ and
-% $\bgr_a^c(i)$ respectively, so that a succeding region is {\em overlaid}
+% $\bgr_a^c(i)$ respectively, so that a succeeding region is {\em overlaid}
 % on preceding regions.
 % 
 % \begin{eqnarray*}
@@ -1314,7 +1314,7 @@
 % 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
+% for the former and \!\@deferlist! for the latter, in the new implementation
 % the two lists are merged to let all floats go to \!\@deferlist!.  To
 % distinguish \pwise{} and \cwise{} floats in the list, \!\end at dblfloat!
 % lets the \pwise{} float processed by the macro have a special depth of
@@ -1359,7 +1359,7 @@
 % and replace the new version with it by \!\let!ting them equivalent in
 % \!\pcol at 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
+% the traditional way, i.e., being included in \!\@dbldeferlist! rather than
 % \!\@deferlist! and having ordinary depth 0.
 % 
 % \item
@@ -1383,7 +1383,7 @@
 % \!\@deferlist! somewhere, to \!\reserved at 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
+% should regain its original 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}
@@ -1410,7 +1410,7 @@
 % 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 a really exists and complains abount this transformation,
+% Even if such guy a really exists and complains about this transformation,
 % however, we have good right to say ``don't do that''.}.
 % \end{enumerate}
 % 
@@ -1505,7 +1505,7 @@
 % fundamental\/} \LaTeX{} of 2014 or earlier or that without the extension
 % of e-\TeX{} or its relatives.  On the other hand, in \LaTeX{} of 2015 or
 % later and with e-\TeX{} or its relatives, the set is \!\bx at A!, \ldots,
-% \Uidx{\!\bx at Z!}, \Uidx{\!\bx at AA!}, \ldots, \Uidx{\!\bx at ZZ!}\@.  In addtion
+% \Uidx{\!\bx at Z!}, \Uidx{\!\bx at AA!}, \ldots, \Uidx{\!\bx at ZZ!}\@.  In addition
 % to the use in \LaTeX, we use these registers for completed \colpage{}s
 % $s_c(p)$ (\!\pcol at opcol!, \!\pcol at flushcolumn!), main vertical list
 % $\cc_c(\vb)$ (\!\pcol at output@start!, \!\pcol at output@switch!,
@@ -1525,7 +1525,7 @@
 % \begin{description}
 % \item[\Uidx{\!\deadcycles!}]
 % is \TeX's primitive register to count the number of \!\output! requests
-% made between two \!\shipout! operatios.  It is zero-cleared by
+% made between two \!\shipout! operations.  It is zero-cleared by
 % \!\pcol at invokeoutput! because it can have a large number in a
 % \env{paracol} environment.
 % 
@@ -1555,7 +1555,7 @@
 % allowing page-break if $\CSIndex{if at nobreak}=\false$.
 % 
 % \item
-% \!\pcol at deferredfootins!  to let the secnod half of split $\df$ have this
+% \!\pcol at deferredfootins!  to let the second half of split $\df$ have this
 % \!\penalty! as the very first element.
 % 
 % \item
@@ -1699,8 +1699,8 @@
 % \!\pcol at synccolumn! and \!\pcol at output@end! to let
 % $\!\prevdepth!=1000\,|pt|$ on a \sync{}ation or the closing \env{paracol}
 % environment with an empty main vertical list, and in
-% \!\pcol at setcw@getspec at i! to add 1000\,|pt| to strech and shrink
-% compontents of \!\@tempskipa! having a column\slash gap sepcification to
+% \!\pcol at setcw@getspec at i! to add 1000\,|pt| to stretch and shrink
+% components of \!\@tempskipa! having a column\slash gap specification to
 % make it sure the skip register has those components.
 % 
 % \item[\Uidx{\!\@M!}]
@@ -1810,7 +1810,7 @@
 % $\pp^p(p)$ is also done by \!\pcol at getpelt! for macros using
 % \!\pcol at getcurrpage!, and by \!\pcol at outputelt!, \!\pcol at sync! and
 % \!\pcol at makeflushedpage! by \!\pcol at getcurrpinfo!.  Then the register is
-% referred to by the following macros to exmine its parity.
+% referred to by the following macros to examine its parity.
 % 
 % \begin{itemize}
 % \item
@@ -1888,7 +1888,7 @@
 % \!\pcol at iscancst! to have $m$ of $\mcelt_{i,m}$,
 % \!\pcol at addmarginpar! to have the physical column position of the current
 % column $c$ in which \!\marginpar! is given, and in
-% $\!\pcol at extract@fil at i!\<s\>\!\@nil!$ to exract the unit of the stretch
+% $\!\pcol at extract@fil at i!\<s\>\!\@nil!$ to extract the unit of the stretch
 % component $s$ of a glue.
 % 
 % \item[\Uidx{\!\@tempcnta!}]
@@ -1954,7 +1954,7 @@
 % \item
 % In \!\pcol at addmarginpar! besides the page scan shown above, it is used to
 % scan all columns whose physical position is left from the current
-% colum $c$ to measure the distance between the left edges of the leftmost
+% column $c$ to measure the distance between the left edges of the leftmost
 % column and $c$.
 % 
 % \item
@@ -1969,7 +1969,7 @@
 % \item
 % In \!\pcol at setcolwidth@r!, it has $c$ to scan fractions $r_d$ where
 % $d=c-\Cfrom$ in its argument $\arg{ratio}$ specified by \!\columnratio!,
-% and then to distribute the unspecifed portion of \!\textwidth! evenly to
+% and then to distribute the unspecified portion of \!\textwidth! evenly to
 % $\w_c$ for all $c\In{\Cfrom{+}k{+}1}\Cto$, where $k$ is the number of
 % fractions and $(\Cfrom,\Cto)\in\{(0,\CL),(\CL,\C)\}$.
 % 
@@ -2032,7 +2032,7 @@
 % 
 % \item
 % In \!\pcol at addmarginpar!, it is let have the column number $d$ whose
-% phisical position is left from the current colum $c$ to measure the
+% physical position is left from the current column $c$ to measure the
 % distance between the left edges of the leftmost column and $c$.
 % 
 % \item
@@ -2071,7 +2071,7 @@
 % being built.  It is let be $\w_c$ by \!\pcol at invokeoutput! to restart (or
 % stay in) the column $c$, be \!\textwidth! by \!\pcol at sptext! for \mctext,
 % and be either of \!\textwidth! or $\w_c$ by \!\pcol at fntextbody! according
-% to the footnote typesetting being \scfnote{} or \mcfnote{} resepectively.
+% to the footnote typesetting being \scfnote{} or \mcfnote{} respectively.
 % 
 % \item[\Uidx{\!\maxdepth!}]
 % is \TeX's primitive register to have the maximum depth of the page being
@@ -2173,7 +2173,7 @@
 % 
 % \item
 % The macro \!\pcol at makefcolelt! let the room for floats in a \fpage{} be
-% $-\!\maxdimen!$ if it finds no futher floats can be added to the page.
+% $-\!\maxdimen!$ if it finds no further floats can be added to the page.
 % 
 % \item
 % At a \sync{}ation, we measure the maximum combined size of top floats and
@@ -2204,7 +2204,7 @@
 % \item[\Uidx{\!\footnotesep!}]
 % is a \!\dimen! register for an API parameter of \LaTeX{} to have the
 % vertical space inserted in a footnote when it is split into two or more
-% pages.  It is uesed in \!\pcol at fntextbody! to \!\splittopskip! have it,
+% pages.  It is used in \!\pcol at fntextbody! to \!\splittopskip! have it,
 % and to make the first line of the footnote is at least as tall as the
 % amount in the register.
 % 
@@ -2218,7 +2218,7 @@
 % make the calculation biased shifting the origin to the left-top corner of
 % column area, i.e., below $\pp^b(p)$.  The macro \!\@outputpage! also
 % refers to the register together with \!\headheight! and \!\headsep! to
-% calculate the distance from the page top (ingoring 1\,inch shift) to the
+% calculate the distance from the page top (ignoring 1\,inch shift) to the
 % text area top.
 % 
 % \item[\Uidx{\!\oddsidemargin!}]
@@ -2488,7 +2488,7 @@
 % \item[\Uidx{\!\@colht!}]
 % is a \!\dimen! register to have the height of columns in a page possibly
 % shrunk from \!\textheight! by \spanning.  The usages of the register
-% are as folllows.
+% are as follows.
 % 
 % \begin{itemize}
 % \item\begin{Sloppy}{1600}
@@ -2521,7 +2521,7 @@
 % 
 % \item
 % In \!\pcol at output@flush! and \!\pcol at output@clear!, it is given to
-% \!\pcol at make~flushedpage! as its argument.  The macro
+% \!\pcol at make~flushed~page! as its argument.  The macro
 % \!\pcol at makeflushedpage!(*) lets \!\@colht! be the argument if it is less
 % than \!\@colht! and thus is given by \!\pcol at output@end!.
 % \end{itemize}
@@ -2553,7 +2553,7 @@
 % \item[\Uidx{\!\@pageht!}]
 % is a \!\dimen! register to be used in \LaTeX's \!\@specialoutput! to have
 % the height of \!\@holdpg!.  It is referred to by \!\pcol at addmarginpar! to
-% deteremine the position at which a marginal note is placed.
+% determine the position at which a marginal note is placed.
 % We also use it as a scratchpad to have $\VP$ in \!\pcol at sync! and
 % \!\pcol at measurecolumn!, and to save $\pp^h(\ptop)$ in \!\pcol at flushcolumn!
 % for the reference in itself, and to do so in \!\pcol at makeflushedpage! for
@@ -2584,7 +2584,7 @@
 % is a \!\dimen! register to have $\!\floatpagefraction!\times\!\@colht!$
 % being the minimum total size of floats for which an ordinary (not flushed)
 % \fcolumn{} can be build.  It is referred to by \!\pcol at makefcolumn! as the
-% threshhold below which floats in the last \fcolumn{} can be put as top
+% threshold below which floats in the last \fcolumn{} can be put as top
 % floats.
 % 
 % \item[\Uidx{\!\@mparbottom!}]
@@ -2596,7 +2596,7 @@
 % register have.  The register is also updated by \!\pcol at getmparbottom! and
 % \!\pcol at getmpbelt! to let \!\pcol@@addmarginpar! being \LaTeX's original
 % \!\@addmarginpar! know the uppermost available position for the marginal
-% note to be added.  This update is, however, just for communicatoin betwee
+% note to be added.  This update is, however, just for communication between
 % these macros and thus is ineffective for typesetting posterior to that, as
 % well as the update in \!\pcol@@addmarginpar!, because whole information
 % for marginal note placement is kept in $\pp^m(p)$ in $\PPP$.
@@ -2700,7 +2700,7 @@
 % 
 % \item
 % In \!\pcol at buildcolseprule! and its callees \!\pcol at buildcselt@S! and
-% \!\pcol at buildcselt!, the register has the first argment $H=\pp^h(p)$ of
+% \!\pcol at buildcselt!, the register has the first argument $H=\pp^h(p)$ of
 % the caller macro.
 % 
 % \item
@@ -2789,7 +2789,7 @@
 % \item
 % In \!\pcol at switchcol!, it is let have what \!\pcol at ensurevspace! has so
 % that the dimensional expression in it is evaluated in the macro and the
-% evaluateion result is assigned to $\VE=\!\pcol@@ensurevspace!$.
+% evaluation result is assigned to $\VE=\!\pcol@@ensurevspace!$.
 % 
 % \item
 % In $\!\ensurevspace!\ARg{space}$, it is let have $\arg{space}$ to ensure
@@ -2959,7 +2959,7 @@
 % the \colpage{} to be restarted rather than at the page top.  The macro
 % \!\pcol at output@end!  temporarily lets the register have 0 if we have
 % non-empty columns in the last page, while \!\endparacol! restores it from
-% \!\pcol at topskip! for the pages outside \env{paracol} environmnet.
+% \!\pcol at topskip! for the pages outside \env{paracol} environment.
 % 
 % \item[\Uidx{\!\splittopskip!}]
 % is \TeX's primitive register to have the vertical skip inserted at the
@@ -3135,7 +3135,7 @@
 % 
 % \item
 % \!\pcol at savecolorstack! to let $\csts=\bot$ or its first item be $\bot$ if
-% $\CST^c$ or $\Celt^c$ is $\bot$, resepectively.
+% $\CST^c$ or $\Celt^c$ is $\bot$, respectively.
 % 
 % \item
 % \!\pcol at savefootins! to let its argument macro have a void box if
@@ -3245,7 +3245,7 @@
 % \item
 % In \!\pcol at makecol!, it is used to decapsulate \!\box!|255| containing a
 % broken \mctext{}.  In the macro and \!\pcol at output@switch!, it is also
-% used as a waste bascket to make \!\footins! void when it contains
+% used as a waste basket to make \!\footins! void when it contains
 % \Scfnote{}s in a non-\tpage.
 % 
 % \item\begin{Sloppy}{2100}
@@ -3333,7 +3333,7 @@
 % 
 % \item[\Uidx{\!\everypar!}]
 % is \TeX's primitive to have tokens inserted at the beginning of each
-% paragarph.  In \!\pcol at sptext! and \!\pcol at com@endcolumn!, it is
+% paragraph.  In \!\pcol at sptext! and \!\pcol at com@endcolumn!, it is
 % \!\global!ized to keep its contents after the end of a group.  In
 % \!\pcol at output@switch!, its contents are broadcasted to $\cc_c(\ep)$ for
 % all $c\In0\C$ if columns are \sync{}ed with a \mctext.  Then these values
@@ -3414,8 +3414,8 @@
 % \item[\Uidx{\CSIndex{if at mparswitch}}]
 % is a switch to be $\true$ iff it is specified by, for example,
 % \texttt{twoside} option of a class such as \textsf{article}, that marginal
-% notes in even numbered pages go to thier left margin.  It is examined by
-% \!\pcol at do@mpbout at i! as a factor to decide the margin which a maginal note
+% notes in even numbered pages go to the left margin.  It is examined by
+% \!\pcol at do@mpbout at i! as a factor to decide the margin which a marginal note
 % goes to in pre-environment or \postenv{}.
 % 
 % \Index{pre-environment stuff}
@@ -3431,7 +3431,7 @@
 % conditional \!\nobreak!  is also done by \!\pcol at icolumncolor!,
 % \!\pcol at set@color at push!, \!\pcol at reset@color at pop! and
 % \!\pcol at reset@color at mpop! to avoid a break after an \!\insert!.  The macro
-% \!\pcol at zparacol! also exmaines the switch, but with the truth value in it
+% \!\pcol at zparacol! also examines the switch, but with the truth value in it
 % given outside \env{paracol} environment, to invoke \!\@nbitem! if $\true$
 % when the macro finds the \env{paracol} environment to start is at the very
 % beginning of a \env{list}-like environment.
@@ -3453,7 +3453,7 @@
 % ($\true$).
 % 
 % \item[\Uidx{\CSIndex{if at afterindent}}]
-% is a switch to be $\true$ iff a sectioning commmand tells that the fisrt
+% is a switch to be $\true$ iff a sectioning command tells that the first
 % paragraph following it is to be indented.  The switch is saved into
 % $\cc_c(\sw)$ together with \CSIndex{if at nobreak} by \!\pcol at setcurrcol!,
 % and then restored from it by \!\pcol at iigetcurrcol!.  The macro
@@ -3470,7 +3470,7 @@
 % referred to by \!\pcol at output@clear!.  The macros \!\pcol at flushfloats! and
 % \!\pcol at iflushfloats! also refer to the switch to build pages having only
 % \fcolumn{}s and turn the switch $\true$ or $\false$ by themselves to know
-% such paegs are still to be built or not.  The macro \!\pcol at output@end!
+% such pages are still to be built or not.  The macro \!\pcol at output@end!
 % also turns the switch $\true$ if a \lpage{} will be followed by page(s)
 % having \fcolumn{}s to tell that to \!\pcol at flushfloats!.
 % 
@@ -3492,7 +3492,7 @@
 % \item
 % In \!\pcol at outputcolumns! and \!\pcol at outputelt!, it is $\true$ until
 % \!\pcol at outputelt! finds the first $q$ such that $q\geq\pbase$ and
-% $\pp^h(q)\geq0$ to mean $q$ is not for a \fpage{}, and the arguemnt of
+% $\pp^h(q)\geq0$ to mean $q$ is not for a \fpage{}, and the argument of
 % \!\pcol at outputcolumns! is 0 to mean that it is not for page flushing, so that
 % we ship out $q$ and all \fpage{}s following it if any.
 % 
@@ -3530,7 +3530,7 @@
 % $\Celt^c\neq\bot$, i.e., $\CST^c$ to be saved is not $\bot$.
 % 
 % \item
-% In \!\pcol at getmparbottom!, it is intialized to be $\false$ and then may be
+% In \!\pcol at getmparbottom!, it is initialized to be $\false$ and then may be
 % turned $\true$ by \!\pcol at getmpbelt! if it finds a gap between two marginal
 % notes to accommodate that to be added, and then examined by
 % \!\pcol at getmparbottom! to know the fact.
@@ -3609,7 +3609,7 @@
 % in restricted horizontal or math mode.
 % 
 % \item
-% In \!\pcol at backgroundcolor@i!, it is exmained if the root of the
+% In \!\pcol at backgroundcolor@i!, it is examined if the root of the
 % invocation chain is \!\backgroundcolor! which turns the switch $\true$, or
 % \!\nobackgroundcolor! which turns it $\false$, to determine whether the
 % \bground{} of a region is painted or not.
@@ -3628,7 +3628,7 @@
 % is \TeX's primitive to end\slash start paragraphs, but may be modified by
 % \LaTeX{} to have some special functionality occasionally.  The macro
 % \!\pcol at output! makes it \!\let!-equal to \hbox{\!\@@par!} in which the
-% \TeX's orinigal definition is kept, while \!\pcol at zparacol! and
+% \TeX's original definition is kept, while \!\pcol at zparacol! and
 % \!\pcol at par! use it as is.
 % 
 % \item[\Uidx{\!\space!}]
@@ -3649,7 +3649,7 @@
 % 
 % \item[\Uidx{\!\offinterlineskip!}]
 % is an API macro to let $\!\baselineskip!=-1000$\,pt, $\!\lineskip!=0$ and
-% $\!\lineskiplimit!=\!\maxdimen!$ to supress \!\baselineskip! insertion for
+% $\!\lineskiplimit!=\!\maxdimen!$ to suppress \!\baselineskip! insertion for
 % all boxes following this macro.  It is used in \!\pcol at bg@paint at i! to do
 % that in the box in which painted \bground{}s are built.
 % 
@@ -3729,7 +3729,7 @@
 % 
 % \item[\Uidx{$\!\addcontentsline!\arg{file}\arg{sec}\arg{entry}$}]
 % is an API macro to put \!\addtocontents! for the arguments to |.aux| file.
-% The orignial definition of the macro is kept in
+% The original definition of the macro is kept in
 % \!\pcol at addcontentsline! so that \!\pcol at ac@disable at toc! and
 % \!\pcol at ac@caption! make the macro regain its original definition after
 % temporarily disabling its function by making it \!\let!-equal to
@@ -3736,7 +3736,7 @@
 % \!\pcol at gobblethree!.
 % 
 % \item[\Uidx{\!\marginpar!}\oarg{left}\marg{right}]
-% is an API macro to put merginal note $\arg{left}$ or $\arg{right}$ to the
+% is an API macro to put marginal note $\arg{left}$ or $\arg{right}$ to the
 % left or right margin.  In \!\pcol at zparacol! it is made \!\let!-equal to
 % \!\pcol at marginpar! for the emulation of \!\marginnote!, while its original
 % version is kept in \!\pcol@@marginpar!.
@@ -3803,7 +3803,7 @@
 % to give the default color for \cseprule{}s.
 % 
 % \item[\Uidx{\!\color!}\oarg{mode}\marg{color}]
-% is an API macro defined in coloring pacakges to start text coloring with
+% is an API macro defined in coloring packages to start text coloring with
 % $\arg{color}$ optionally with $\arg{mode}$.  The macro is used in
 % \!\pcol at xcolumncolor!\oarg{mode}\~\marg{color}\oarg{c} and
 % \!\pcol at ycolumncolor!\marg{color}\oarg{c} to define the default color of
@@ -3818,9 +3818,9 @@
 % \CSIndex{ifpcol at bfbottom}.
 % 
 % \item[\Uidx{$\!\PackageError!\arg{pkg}\arg{msg}\arg{hlp}$}]
-% is a developer's API macro to stop the exectution showing the error
+% is a developer's API macro to stop the execution showing the error
 % message $\arg{msg}$ with the package identification $\arg{pkg}$ and the
-% help mssage $\arg{hlp}$.  The macro is used in the following macros;
+% help message $\arg{hlp}$.  The macro is used in the following macros;
 % \!\pcol at ovf! on \!\@freelist! shortage; \!\pcol at set@color at push! on too
 % many math-mode colorings; in \!\pcol at zparacol! on two-column
 % typesetting outside \env{paracol} and illegal nesting of \env{paracol};
@@ -3827,9 +3827,9 @@
 % $\!\pcol at setcw@calcf!\<x\>\<y\>\<z\>$ on too large $x/y$;
 % \!\pcol at switchcolumn! on invalid target column; \!\pcol at switchenv! on
 % illegal \cswitch{} commands\slash environments in a \csenv;
-% \!\addcontentsonly! on unknown contents type; \!\footnotelayout! on
+% \!\addcontentsonly! on unknown contents type; \!\footnoteplacement! on
 % unknown layout;  \!\pcol at twosided! on unknown two-sided typesetting
-% feature;  \!\pcol at backgroundcolor! on unknown region of \bgpaint;  and in 
+% feature;  \!\pcol at backgroundcolor! on unknown region of \bgpaint;  and in
 % \!\pcol at backgroundcolor@i! on a region not being a column or \csepgap{}
 % but its ordinal being specified.
 % 
@@ -3837,7 +3837,7 @@
 % is a developer's API macro to report a warning message $\arg{msg}$ with
 % the package identification $\arg{pkg}$.  The macro is used in
 % \!\pcol at ignore! to complain an API macro appears in \env{paracol}
-% inappropriately, in \!\pcol at fntextbody!  if the footnote is taller than
+% inappropriately, in \!\pcol at fntextbody! if the footnote is taller than
 % $\!\textheight!-\!\skip!\!\footins!$, in \!\pcol at mn@warning! to show
 % \!\marginnote! is emulated, and in \!\pcol at icolumncolor!,
 % \!\pcol at defcseprulecolor@i! and \!\pcol at backgroundcolor@ii! to complain
@@ -3845,6 +3845,12 @@
 % \!\colseprulecolor!\slash\!\normalcolseprulecolor! or \!\background~color!
 % is used without coloring packages respectively.
 % 
+% \item[\Uidx{$\!\PackageInfo!\arg{pkg}\arg{msg}$}]
+% is a developer's API macro to report an informational message $\arg{msg}$
+% with the package identification $\arg{pkg}$.  The macro is used if the
+% \textsf{footmisc} package is loaded to inform about the \!\footnotelayout!
+% alias being unavailable.
+% 
 % \item[\Uidx{\!\@@par!}]
 % is an internal macro to keep \TeX's original primitive \CSIndex{par} in it.
 % The macro is used in \!\pcol at output! to let \CSIndex{par} act with its
@@ -3885,8 +3891,8 @@
 % cause underfull.
 % 
 % \item
-% \!\pcol at synccolumn! to put a $1\,|fil|$ infinte stretch below the
-% main vertical list together with a small infinte shrink in the \colpage{}
+% \!\pcol at synccolumn! to put a $1\,|fil|$ infinite stretch below the
+% main vertical list together with a small infinite shrink in the \colpage{}
 % being flushed and having a \sync{}ation point, and a vertical skip with a
 % small infinite stretch to push up the main vertical list above a
 % \sync{}ation point.
@@ -3902,7 +3908,7 @@
 % \end{itemize}
 % 
 % It is also used in the top level assignment of $0\,|pt|\ |plus|\ 1\,|fil|\
-% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocatoin of \!\pcol at defkw!.
+% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocation of \!\pcol at defkw!.
 % 
 % \item[\Uidx{\!\@minus!}]
 % is an internal macro having the keyword |minus|.  It is used in the
@@ -3920,7 +3926,7 @@
 % \item
 % \!\pcol at synccolumn! to put a small infinite shrink together with a
 % stretch of $1\,|fil|$ at the bottom of the main vertical list in a
-% \colpage{} being flused and having a \sync{}ation point.
+% \colpage{} being flushed and having a \sync{}ation point.
 %
 % \item
 % \!\pcol at setcw@getspec at i! to add $0\,|pt|\ |plus|\ 1000\,|pt|\ |minus|\
@@ -3929,7 +3935,7 @@
 % \end{itemize}
 % 
 % It is also used in the top level assignment of $0\,|pt|\ |plus|\ 1\,|fil|\
-% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocatoin of \!\pcol at defkw!.
+% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocation of \!\pcol at defkw!.
 % 
 % \item[\Uidx{\!\hb at xt@!}]
 % is an internal macro having the sequence ``\!\hbox!| to|''.  It is used in 
@@ -4086,7 +4092,7 @@
 % \SpecialIndex{\ext at figure}\SpecialIndex{\ext at table}
 % 
 % \item
-% $\!\footnotelayout!\Arg{l}$ for $|pcol at fnlayout@|{\cdot}l$.
+% $\!\footnoteplacement!\Arg{l}$ for $|pcol at fnlayout@|{\cdot}l$.
 % 
 % \SpecialArrayIndex{l}{\pcol at fnlayout@}
 % \SpecialIndex{\pcol at fnlayout@c}
@@ -4111,7 +4117,7 @@
 % of \!\set at color!, and in \!\pcol at zparacol! to make \!\pcol at bg@paintbox!
 % \!\let!-equal to \!\@gobble! to nullify it if any coloring packages have
 % not been loaded.  In addition, the macros \!\pcol at F! and \!\pcol at Fe! for
-% logging are made \!\let!-equial to \!\@gobble! at the top level to nullify
+% logging are made \!\let!-equal to \!\@gobble! at the top level to nullify
 % them.
 % 
 % \item[\Uidx{$\!\@ifundefined!\arg{cs}\arg{then}\arg{else}$}]
@@ -4126,7 +4132,7 @@
 % \SpecialArrayIndex{a{\cdot}\string\texttt{@}{\cdot}c}{\pcol at bg@color@}
 % \SpecialArrayIndex{a}{\pcol at bg@color@}
 % 
-% \!\add~contentsonly!$\<t\>\<c\>$ to stop the execution if
+% \!\add~contents~only!$\<t\>\<c\>$ to stop the execution if
 % $|\pcol at ac@def@|{\cdot}t$ is not defined;
 % 
 % \SpecialArrayIndex{t}{\pcol at ac@def@}
@@ -4195,7 +4201,7 @@
 % flushed pages while $\CSIndex{ifpcol at flush}=\true$.
 % 
 % \item[\Uidx{$\!\@whilenum!\arg{ifnum}\cs{do}\arg{body}$}]
-% is an internal macro to interate $\arg{body}$ while the integer comparison
+% is an internal macro to iterate $\arg{body}$ while the integer comparison
 % expression $\arg{ifnum}$ is $\true$.  The macro is used in the following
 % macros to iterate their own procedures for all columns $c\In0\C$.
 % 
@@ -4251,7 +4257,7 @@
 % \end{itemize}
 % 
 % \item[\Uidx{$\!\@whiledim!\arg{ifdim}\cs{do}\arg{body}$}]
-% is an internal macro to interate $\arg{body}$ while the dimensional
+% is an internal macro to iterate $\arg{body}$ while the dimensional
 % comparison expression $\arg{ifdim}$ is $\true$.  The macro is used in
 % $\!\pcol at setcw@calcf!\<x\>\<y\>\<z\>$ twice, at first to find
 % $k_1=\min\Set{k}{x\cdot2^k\geq2^{13}\,|pt|}$ and to have $x\cdot2^{k_1}$,
@@ -4262,7 +4268,7 @@
 % comma-separated $\arg{list}$ letting $\arg{cs}$ have the element.  The
 % macro is used in \!\pcol at setcolwidth@r! to scan its argument
 % $\arg{ratio}$ defined by \!\columnratio!, and in \!\pcol at setcw@scan! to
-% scan its argment $\arg{spec}$ defined by \!\setcolumnwidth!.
+% scan its argument $\arg{spec}$ defined by \!\setcolumnwidth!.
 % 
 % \item[$\Uidx{\!\@tfor!}\arg{cs}|:=|\arg{list}\cs{do}\arg{body}$]
 % is an internal macro to iterate $\arg{body}$ for each non-space token in
@@ -4463,7 +4469,7 @@
 % \!\pcol at end@dblfloat!.
 % 
 % \item[\Uidx{\!\reset at font!}]
-% is an internal macro \!\let!-equal to \!\normalfont! to use a starndard
+% is an internal macro \!\let!-equal to \!\normalfont! to use a standard
 % font.  It is used in \!\pcol at fntextbody! for footnote typesetting.
 % 
 % \item[\Uidx{\!\set at color!}]
@@ -4557,9 +4563,9 @@
 % $\CSIndex{if at nobreak}=\true$.
 % 
 % \item[\Uidx{\!\@parboxrestore!}]
-% is an internal macro to set up typesetting paramenters for paragraphs
+% is an internal macro to set up typesetting parameters for paragraphs
 % encapsulated in a box.  It is used in \!\pcol at fntextbody! for paragraphs
-% in a footnonte.
+% in a footnote.
 % 
 % \item[\Uidx{\!\@finalstrut!}$\arg{box}$]
 % is an internal macro to add an invisible vertical rule whose depth is that
@@ -4598,7 +4604,7 @@
 % 
 % \item[\Uidx{\!\end at float!}]
 % is an internal macro to close a \cwise{} float environment.  It is used in
-% \!\pcol at end@dblfloat! (but never invoked because we havd \cs{if at twocolumn}
+% \!\pcol at end@dblfloat! (but never invoked because we have \cs{if at twocolumn}
 % true always).
 % 
 % \item[\Uidx{\!\end at dblfloat!}]
@@ -4620,7 +4626,7 @@
 % 
 % \item[\Uidx{\!\@dblfloatplacement!}]
 % is an internal macro for \!\output! routine to reinitialize \pwise{}
-% float placement paramenters.  It is used in \!\pcol at startpage! and
+% float placement parameters.  It is used in \!\pcol at startpage! and
 % \!\pcol at output@clear! prior to processing \pwise{} floats in
 % \!\@dbldeferlist!.  As discussed in
 % item-(\ref{item:ovv-float- at dblfloatplacement}) of
@@ -4628,7 +4634,7 @@
 % \LaTeX{} lets $\!\f at depth!=|1sp|$.
 % 
 % \item[\Uidx{\!\@xympar!}]
-% is an interal macro to perform the last operations for \!\marginpar!.  In
+% is an internal macro to perform the last operations for \!\marginpar!.  In
 % \!\pcol at zparacol! it is made \!\let!-equal to \!\pcol at xympar! for the
 % emulation of \!\marginnote!, while its original version is kept in
 % \!\pcol@@xympar!.
@@ -4691,7 +4697,7 @@
 % 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 at makecol! for a \colpage{}
-% having \sync{}ation points so that it has a vertical skip of inifinite
+% having \sync{}ation points so that it has a vertical skip of infinite
 % 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 at textbottom! is restored.  Another modifiers of
@@ -4817,7 +4823,7 @@
 % \begin{description}
 % \item[\Uidx{$\!\@elt!\<a_1\>\cdots\<a_n\>$}]
 % is an internal control sequence to represent a list element having $n$
-% subelements.  The sequence is often made \!\let!-equal to a macro which
+% sub-elements.  The sequence is often made \!\let!-equal to a macro which
 % processes $\<a_1\>\cdots\<a_n\>$ and is applied to all members in a list.
 % It is also made \!\let!-equal to \!\relax! on a manipulation of a list,
 % such as element addition and concatenation, by \!\edef! or \!\xdef!.  The
@@ -4944,7 +4950,7 @@
 % \!\@elt! for $\mpar(t+y,b+y)$.
 % 
 % \item
-% \begingroup\def\,{\mskip0mu plus2mu\relax}
+% \begingroup\def\,{\mskip0mu plus 2mu\relax}
 % $\!\pcol at getmparbottom@last at i!\,
 % \Arg{y}\,\mpar(t_1,b_1)\,\cdots\,\mpar(t_n,b_n)\,\!\@nil!$ at first
 % \!\def!\-ines \!\reserved at b! with \!\@elt! for $\mpar(y,y)$ and then
@@ -4988,7 +4994,7 @@
 % \end{Hfuzz}
 % 
 % \item
-% \!\globalcounter!\marg{ctr} defeines \!\@elt!\marg{\theta} for $\CG$ to
+% \!\globalcounter!\marg{ctr} defines \!\@elt!\marg{\theta} for $\CG$ to
 % check if there is $\theta\in\CG$ such that $\theta=\arg{ctr}$.
 % 
 % \item
@@ -5113,13 +5119,13 @@
 % reference to the footnote with \!\@thefnmark!.
 % 
 % \item[\Uidx{\!\ext at figure!}]
-% is an internal macro having ``|lof|'' being the extention of the file for
+% is an internal macro having ``|lof|'' being the extension of the file for
 % list of figures.  It is used in
 % $\!\pcol at ac@caption!\arg{type}|[|\arg{lcap}|]|\<cap\>$ to have ``|lof|''
 % when $\arg{type}=|figure|$.
 % 
 % \item[\Uidx{\!\ext at table!}]
-% is an internal macro having ``|lot|'' being the extention of the file for
+% is an internal macro having ``|lot|'' being the extension of the file for
 % list of tables.  It is used in
 % $\!\pcol at ac@caption!\arg{type}|[|\arg{lcap}|]|\<cap\>$ to have ``|lot|''
 % when $\arg{type}=|table|$.
@@ -5126,7 +5132,7 @@
 % 
 % \item[\Uidx{\!\@currbox!}]
 % is an internal macro which conventionally has an \!\insert! for floats,
-% etc.  The follwing macros use \!\@currbox! having the objects in
+% etc.  The following macros use \!\@currbox! having the objects in
 % parentheses.
 % 
 % \begin{quote}
@@ -5162,7 +5168,7 @@
 % get the right marginal note from its head.
 % 
 % \item[\Uidx{\!\@freelist!}]
-% is an internal macro having available \!\insert!s for floats originially,
+% is an internal macro having available \!\insert!s for floats originally,
 % but also \colpage{}s, \spanning{}, footnotes and default column-color in
 % our usage.  Besides the acquisition of an \!\insert! from it shown in the
 % description of \!\@next!, it is used by the following macros to return the
@@ -5200,7 +5206,7 @@
 % $t$ and $b$ following the convention in \!\pcol at do@mpb at all@ii!.
 % 
 % \item
-% \begingroup\def\,{\mskip0mu plus2mu\relax}
+% \begingroup\def\,{\mskip0mu plus 2mu\relax}
 % $\!\pcol at getmparbottom@last at i!\,
 % \Arg{y}\,\mpar(t_1,b_1)\,\cdots\,\mpar(t_n,b_n)\,\!\@nil!$ to capture
 % $\mpar(t_i,b_i)$ for all $i\in[1,n]$.
@@ -5360,7 +5366,7 @@
 % item-(\ref{item:ovv-float- at dblfloatplacement}) of
 % \secref{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
+% setting with |1sp| done by \!\@dblfloatplacement! is overridden by
 % \!\pcol at startpage! and \!\pcol at output@clear! when they invoke the macro.
 % 
 % \item[\Uidx{\!\cl@@ckpt!}]
@@ -5367,7 +5373,7 @@
 % 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 at zparacol! and
+% we use it to obtain all counters in \!\pcol at zparacol! and
 % \!\pcol at globalcounter@s!.
 % 
 % \item[$\cs{cl@}{\cdot}\theta$]
@@ -5496,7 +5502,7 @@
 % 
 % \item
 % In \!\pcol at setcolwidth@r!, it is used to have the fraction $r_d$ being a
-% comma-seperated list element in its argument $\arg{ratio}$ defined by
+% comma-separated list element in its argument $\arg{ratio}$ defined by
 % \!\columnratio! and scanned by a \!\@for! loop.
 % 
 % \item
@@ -5510,7 +5516,7 @@
 % $\<x'_d\>$ from which all space tokens are removed.
 % 
 % \item
-% In \!\pcol at setcw@calcfactors!, it is used as a waste bascket to throw away
+% In \!\pcol at setcw@calcfactors!, it is used as a waste basket to throw away
 % $(\WT-W)/(F\times1\,|pt|)$ calculated by \!\pcol at setcw@calcf!.
 % 
 % \item
@@ -5579,7 +5585,7 @@
 % 
 % \item[\Uidx{\!\reserved at b!}]
 % is an internal macro for temporary use.  It is used in the following
-% macros to keep a list shown in paraentheses so that we update the list in
+% macros to keep a list shown in parentheses so that we update the list in
 % the scan of list elements. 
 % 
 % \begin{quote}
@@ -5606,7 +5612,7 @@
 % 
 % \item
 % In \!\pcol at output@switch!, it is \!\let!-equal to |\@afterindenttrue| or
-% |\@after|\~|indentfalse| according to \CSIndex{if at afterindent} in the
+% \cs{@after\BB indent\BB false} according to \CSIndex{if at afterindent} in the
 % leaving column to broadcast it to other columns.
 % 
 % \item
@@ -5660,7 +5666,7 @@
 % 
 % \item
 % In \!\pcol at backgroundcolor@ii!, it has \!\pcol at backgroundcolor@x! or
-% \!\pcol at back~groundcolor at z! according that the region of \bgpaint{} and its
+% \!\pcol at back~ground~color at z! according that the region of \bgpaint{} and its
 % color is defined or undefined.
 % \end{itemize}
 % 
@@ -5821,7 +5827,7 @@
 % \begin{macro}{\pcol at ncol}
 % \changes{v1.3-3}{2013/09/17}
 %	{Add initial zero-clearing for safe reference in \cs{@outputpage}
-%	 invokded prior to the first \string\texttt{paracol}.}
+%	 invoked prior to the first \string\texttt{paracol}.}
 % \begin{macro}{\pcol at ncolleft}
 % \changes{v1.3-2}{2013/09/17}
 %	{Introduced to specify the number of columns in left
@@ -5855,7 +5861,7 @@
 % $\C$ otherwise.  Similar to $\C$, the number $\CL$ is given as the
 % optional argument of \!\pcol at zparacol! and is \!\global!ly assigned to the
 % register by the sole modifier \!\pcol at zparacol!, unless the optional
-% arugment is not less than $\C$ which is assigned to $\CL$ if this
+% argument is not less than $\C$ which is assigned to $\CL$ if this
 % exception is found.  The reason of the \!\global! assignment and the
 % initial zero-clearing after the declaration is same as that for $C$, i.e.,
 % for the reference in \!\@outputpage! outside \env{paracol}.
@@ -5881,9 +5887,9 @@
 % respective callees \!\pcol at ioutputelt!, \!\pcol at imakeflushedpage!  and
 % \!\pcol at iflushfloats! as their argument pair
 % $\LBRP{\Uidx\Cfrom}{\Uidx\Cto}$ to let them work on the left and right
-% \parapag{}es repsectively.  The callees above also pass the pair to
+% \parapag{}es respectively.  The callees above also pass the pair to
 % \!\pcol at swapcolumn! to swap the scanning order of columns if \cswap{} is
-% in efect.
+% in effect.
 % 
 % They also pass the pair to \!\pcol at buildcolseprule! which then passes it
 % to \!\pcol at bg@paintcolumns!  and \!\pcol at bg@paintbox! by binding it to
@@ -5900,7 +5906,7 @@
 % This meaningless reference has no harmful side effects.}.
 % \end{Sloppy}
 % 
-% The macro \!\pcol at addmarginpar! also referes to $\CL$ to know if the
+% The macro \!\pcol at addmarginpar! also refers to $\CL$ to know if the
 % column $c$ on which it is working on is in the left or right \parapag{}e,
 % i.e., $c<\CL$ or not, to decide the margin to which a marginal note is put,
 % and to pass $\LBRP0\CL$ or $\LBRP\CL\C$ to \!\pcol at swapcolumn! to
@@ -5913,7 +5919,7 @@
 % \!\pcol at zparacol!.  Then the arguments are passed to the callees
 % \!\pcol at setcolwidth@r! or \!\pcol at setcolwidth@s!, the latter of
 % which also passes them to its callee \!\pcol at setcw@scan!, to define the
-% width of columns in $\LBRP\Cfrom\Cto$ and thier separators.
+% width of columns in $\LBRP\Cfrom\Cto$ and their separators.
 % 
 % The other references to $\C$ are made by \!\pcol at com@switchcolumn! and
 % \!\pcol at switchcolumn! to examine $c<\C$, to wraparound $\C-1$ to 0 for the
@@ -5921,7 +5927,7 @@
 % \end{macro}\end{macro}
 % 
 % \begin{macro}{\pcol at page}
-% The register \!\pcol at page! has the zero-orgin ordinal $p$ of the page
+% The register \!\pcol at page! has the zero-origin ordinal $p$ of the page
 % which we are in.  The register is initialized to be 0 not only by
 % \!\pcol at output@start! to give the obvious starting point, but also by
 % \!\pcol at freshpage! for page flushing which clears $\PP=\!\pcol at pages!$ to
@@ -6077,7 +6083,7 @@
 % 
 % The switch |\ifpcol at sync| is $\true$ iff \!\pcol at output@switch! is invoked
 % for \sync{}ed \cswitch{} by \!\switchcolumn!|*| or its relative
-% enviroment openers, or \pfcheck{} prior to page flushing or environment
+% environment openers, or \pfcheck{} prior to page flushing or environment
 % closing.  Therefore, the switch is \!\global!ly turned $\true$ by
 % \!\pcol at iswitchcolumn! and \!\pcol at sptext! for the \sync{}ing
 % \cswitch{}ing but then temporarily turned $\false$ by \!\pcol at switchcol!
@@ -6170,7 +6176,7 @@
 % that the page to be \sync{}ed or to be flushed is too tall because the
 % sum of the total height of top floats and main text in a column and that
 % of bottom floats and footnotes in another column is larger than
-% $\pp^h(\ptop)-v^f-\VE$, where $v^f$ is the total heigth-plus-depth of the
+% $\pp^h(\ptop)-v^f-\VE$, where $v^f$ is the total height-plus-depth of the
 % \Scfnote{}s if $\ptop$ has them or 0 otherwise, and $\VE$ is the amount
 % given by \!\ensurevspace! in \sync{}ation or 0 in flushing.  Then the
 % switch is examined in \!\pcol at sync! itself to restart the tallest column
@@ -6215,13 +6221,13 @@
 % \begin{itemize}
 % \item
 % \!\pcol at combinefloats! adds \!\textfloatsep! below bottom floats of each
-% column if any so that the floats are well sepearated from the \postenv.
+% column if any so that the floats are well separated from the \postenv.
 % 
 % \item
 % \!\pcol at sync! examines $\VPP$ instead of $\VP$ for the \pfcheck.
 % 
 % \item
-% \!\pcol at makefcolumn! trys to make deferred floats as top floats.
+% \!\pcol at makefcolumn! tries to make deferred floats as top floats.
 % 
 % \item
 % \!\pcol at makeflushedpage! builds a short page of $\VPP$ tall, leaves
@@ -6367,7 +6373,7 @@
 % switch is examined by \!\pcol at set@color at push! and \!\pcol at icolumncolor!,
 % the former of which also turns it $\true$ if we are in restricted
 % horizontal mode, to make an \!\output! request for \colorstack{}
-% manipuratoin and, in the former, to reserve the stack popper by
+% manipulation and, in the former, to reserve the stack popper by
 % \!\aftergroup!, iff the switch is $\false$.
 % \end{macro}
 % 
@@ -6392,12 +6398,12 @@
 %	{Introduced to know if a page to be put has the last page of a
 %	 \string\texttt{paracol} environment.}
 % 
-% The switch \cs{ifpcol at havelastpage} is, after intiailized $\false$,
+% The switch \cs{ifpcol at havelastpage} is, after an initial $\false$,
 % \!\global!ly turned $\true$ by \!\pcol at output@end! if it finds the
 % \lpage{} of the \env{paracol} environment is connected to the \postenv, or
 % $\false$ otherwise.  Then the switch is examined by (our own version of)
 % \!\@outputpage! which paints the \bground{} of the page to be printed iff
-% the switch is $\true$ because a part of the page was prodcued by a
+% the switch is $\true$ because a part of the page was produced by a
 % \env{paracol} environment.  Then the macro \!\global!ly turns the switch
 % $\false$ because so far \bgpaint{} should be disabled.
 % \end{macro}
@@ -6420,7 +6426,7 @@
 % The initialization to let the switch $\false$ is not necessary because it
 % is examined only after the first \cs{paracol} even in the
 % \cs{@outputpage} outside \texttt{paracol} environment, but we dare to do
-% this for the sake of clearity.}.
+% this for the sake of clarity.}.
 % 
 % Then the switch is examined by \!\pcol at setpnoelt! and \!\pcol at startpage!
 % so that, if the switch is $\false$, they let $\page(q)=\page(q-1)+2$ where
@@ -6453,11 +6459,11 @@
 %	{Introduced for marginal-note-swapping in even pages.}
 % \begin{macro}{\ifpcol at bg@swap}
 % \changes{v1.3-3}{2013/09/17}
-%	{Introduced for mirrored backgournd painting for even numbered
+%	{Introduced for mirrored background painting for even numbered
 %	 pages.}
 % \begin{macro}{\ifpcol at bg@@swap}
 % \changes{v1.3-3}{2013/09/17}
-%	{Introduced for mirrored backgournd painting for even numbered
+%	{Introduced for mirrored background painting for even numbered
 %	 pages.} 
 % 
 % The switch \cs{ifpcol at swapcolumn}, \cs{ifpcol at swapmarginpar} and
@@ -6484,7 +6490,7 @@
 % all\footnote{
 % 
 % \cs{ifpcol at swapcolumn} is also turned $\true$ and $\false$ by backward
-% compatible API macros \cs{swapcolumn}\~\texttt{inevenpages} and
+% compatible API macros \cs{swap\BB column\BB in\BB even\BB pages} and
 % \cs{noswapcolumninevenpages} respectively.}.
 % 
 % \SpecialIndex{\swapcolumninevenpages}
@@ -6670,7 +6676,7 @@
 % \changes{v1.2-5}{2013/05/11}
 %	{Introduced to let \cs{linewidth} for each column has the value
 %	 according to $w_c$ and the list-like environment surrounding
-%	 \string\texttt{paracol} envrionment.}
+%	 \string\texttt{paracol} environment.}
 % \begin{macro}{\pcol at bg@leftmargin}
 % \changes{v1.3-3}{2013/09/17}
 %	{Introduced for background painting.}
@@ -6690,7 +6696,7 @@
 % 
 % \begin{macro}{\pagerim}
 % \changes{v1.3-3}{2013/09/17}
-%	{Introduced to specify the page rim size for backgournd coloring.}
+%	{Introduced to specify the page rim size for background coloring.}
 % 
 % The API \!\dimen! register \!\pagerim! has the size of {\em\Uidx\prim{}s}
 % specified by users.  Since the rims are the area for which \bgpaint{}
@@ -6771,7 +6777,7 @@
 % $\CSIndex{ifpcol at sptextstart}=\true$.  Then the contents of the register
 % is put back to the main vertical list together with the box having
 % \mctext{} after its vertical size is registered in the list $\pp^s(p)$ of
-% \mctext{} postions and heights, by \!\pcol at makecol! when the text sees a
+% \mctext{} positions and heights, by \!\pcol at makecol! when the text sees a
 % page break, or by \!\pcol at output@switch! when the text is completed.
 % \end{macro}
 % 
@@ -6798,7 +6804,7 @@
 % it, or to make the register $\bot$ when it have an empty \lpage{} but with
 % \spanning{} of \pwise{} floats.  After closing a \env{paracol}
 % environment, the contents of the register 
-% will be shiped out by
+% will be shipped out by
 % \!\@outputpage! invoked outside \env{paracol} environment when the
 % \postenv{} sees a page break, or referred to by \!\pcol at output@start! as
 % the \preenv{} in the right \parapag{}e.  This right \preenv{} then will be
@@ -6840,13 +6846,13 @@
 % 
 % \begin{macro}{\pcol at tempboxa}
 % \changes{v1.3-3}{2013/09/17}
-%	{Introduced to have materials temporarily for column-separatig rule
+%	{Introduced to have materials temporarily for column-separating rule
 %	 drawing or background painting.}
 % \changes{v1.34}{2018/05/07}
 %	{Renamed from \cs{pcol at tempbox} because its relative
 %	 \cs{pcol at tempboxb} is introduced.}
 % \changes{v1.34}{2018/05/07}
-%	{Add ussage in \cs{pcol at scancst} and \cs{pcol at iscancst}.}
+%	{Add usage in \cs{pcol at scancst} and \cs{pcol at iscancst}.}
 % 
 % The \!\box! register \!\pcol at tempboxa! is used to have stuff temporarily as
 % follows.
@@ -6912,13 +6918,13 @@
 % \!\output!  with |\box255| containing the corresponding coloring
 % \!\special! put in the main vertical list, \!\count!\!\pcol at colorins! and
 % \!\skip!\!\pcol at colorins! are let be 0, while \!\dimen!\!\pcol at colorins! is
-% let be \!\maxdimen! to allow a \colpage{} to have vitually infinite number
+% let be \!\maxdimen! to allow a \colpage{} to have virtually infinite number
 % of \!\insert!ions.
 % 
 % The \!\insert!ion is done by \!\pcol at icolumncolor! for a default color
 % definition, \!\pcol at set@color at push! for color pushing, and
 % \!\pcol at reset@color at pop! and \!\pcol at reset@color at mpop! for color popping
-% in non-math and math mode respectrively.  Then \!\insert!ed \!\vbox!es are
+% in non-math and math mode respectively.  Then \!\insert!ed \!\vbox!es are
 % packed into \!\box!\!\pcol at colorins! and is given to \!\output! as
 % $\cstraw$ to be scanned by \!\pcol at clearcolorstack! to reform it as
 % $\cst$, and then scanned by \!\pcol at restorecolorstack! or saved into
@@ -6951,7 +6957,7 @@
 % \!\everyvbox! is made to this register, while the real \!\everyvbox! is
 % let have the reference to the register and |\pcol at innertrue| to make
 % $\CSIndex{ifpcol at inner}=\true$ in every \!\vbox!.  Besides
-% \!\pcol at zparacol!, the register is reffered to by
+% \!\pcol at zparacol!, the register is referred to by
 % \!\pcol at restoreeveryvbox! to examine if it has been \!\global!ly updated,
 % i.e., its contents is not \!\pcol at dummytoken!.
 % \end{macro}
@@ -7130,13 +7136,13 @@
 %	{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
+% operations of them especially that for proper release of them are crucial
+% for the correctness of the implementation.  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
+% The set of macros is to help such debugging by logging the acquire and
 % release of \!\insert! registers into a file named $\arg{job}|.fls|$
 % associated with \!\pcol at F@write! where $\arg{job}$ is given by
 % \!\jobname!.  After opened when \Paracol{} is loaded, the file is written by
@@ -7193,7 +7199,7 @@
 % 
 % \begin{macro}{\pcol at ovf}
 % Before giving the definitions of macros in \!\output! routine, we define
-% the macro \!\pcol at ovf! invoked if \!\@freelist! is empty on an acquision
+% the macro \!\pcol at ovf! invoked if \!\@freelist! is empty on an acquisition
 % of an \!\insert! by \!\@next! and thus we have to abort the execution by
 % \!\PackageError! with a message notifying the shortage.  The additional
 % help message is \!\@ehb! as in \!\@fltovf!.  This macro is used in
@@ -7220,7 +7226,7 @@
 %	 \texttt{paracol} environment.}
 % \changes{v1.2-7}{2013/05/11}
 %	{Add the assignment of \cs{@maxdepth} to \cs{maxdepth} to nullify
-%	 the temproary setting done by \cs{@addtobot}.}
+%	 the temporary setting done by \cs{@addtobot}.}
 % \changes{v1.33-2}{2016/11/19}
 % 	{Add a space after \cs{@opcol} to obey the coding convention.}
 % 
@@ -7236,7 +7242,7 @@
 % $\!\@specialoutput!\to\!\pcol at specialoutput!$ to process \LaTeX's genuine
 % functions including the customized marginal note placement, and \Paracol's
 % own special output functions; starting first page, \colorctext{} management,
-% \cswitch, page flushing with\slash without float flusing, and building the
+% \cswitch, page flushing with\slash without float flushing, and building the
 % multi-column part of the \lpage.
 % 
 % \item
@@ -7256,7 +7262,7 @@
 %	{Add an argument \cs{@ne} to \cs{pcol at startcolumn} to distinguish it
 %	 from the invocation in \cs{pcol at freshpage}.}
 % 
-% $\!\@startcolumn!\to\!\pcol at startcolumn!$ to creat a new \colpage{}.  The
+% $\!\@startcolumn!\to\!\pcol at startcolumn!$ to create a new \colpage{}.  The
 % argument \!\@ne! is to distinguish the invocation in this macro from
 % that in \!\pcol at freshpage! so that the \!\insert!ions of $\pp^f(p)$ and
 % $\df$ are done only when a new \colpage{} is created with ordinary page
@@ -7279,7 +7285,7 @@
 % 
 % Though this operation is not necessary because \cs{everyvbox} should work
 % for any \cs{set at color} because they should be in a \cs{vbox}, we dare to
-% do it for clearity.}.
+% do it for clarity.}.
 % 
 % The other is to zero-clear the counter \!\pcol at mcid! because we are
 % definitely in the main (non-internal) vertical mode and thus all push/pop
@@ -7289,13 +7295,13 @@
 % on page breaks, we examine if $\CSIndex{ifpcol at output}=\true$ to mean
 % \!\pcol at output@start! has already been invoked in order to cope with
 % \!\output! request {\em sneaking}.  This sneaking happens when
-% \beginparacol{} is at a crtical position of page breaking at which the
+% \beginparacol{} is at a critical position of page breaking at which the
 % \preenv{} has already exceeds \!\vsize! but \TeX{} cannot make the
 % \!\output! request for the page break at \CSIndex{par} at the beginning of
 % \!\pcol at zparacol! because it sees $\!\penalty!=10000$ due to, e.g., a
 % sectioning command just preceding \beginparacol.  In this case, the
 % request is postponed until \TeX{} see a \!\penalty! less than 10000 and
-% thus it is made with some non-special \!\outputpenalty! greather than
+% thus it is made with some non-special \!\outputpenalty! greater than
 % $-10000$ when \TeX{} sees the dummy request of $\!\penalty!=-10004$ in
 % \!\pcol at invokeoutput! for \!\pcol at output@start!.  At this timing,
 % \!\pcol at zparacol! has already let \!\output! have \!\pcol at output! of
@@ -7307,7 +7313,7 @@
 % related to \!\output!  routine has already been made in \!\pcol at zparacol!,
 % namely $\CSIndex{if at twocolumn}=\true$ and
 % $\!\@combinefloats!=\!\pcol at combinefloats!$, which should make the macros
-% in the original sequnce confused especially by the former.  Therefore, we
+% in the original sequence confused especially by the former.  Therefore, we
 % turns $\CSIndex{if at twocolumn}=\false$ and let \!\@combinefloats! have the
 % original definition kept in \!\pcol@@combinefloats!\footnote{
 % 
@@ -7314,7 +7320,7 @@
 % Though we know \cs{pcol at combinefloats} acts exactly as \cs{@combinefloats}
 % because \cs{pcol at zparacol} initializes $\cs{pcol at textfloatsep}=\infty$ and
 % $\cs{ifpcol at lastpage}=\false$.  On the other hand, we don't cancel the
-% re\cs{def}itnition of \cs{footnoterule} because it should be
+% re\cs{def}inition of \cs{footnoterule} because it should be
 % $\cs{textwidth}=\cs{columnwidth}$ outside of \env{paracol} environments.}
 % 
 % temporarily, i.e., only in the group automatically surrounding the
@@ -7381,7 +7387,7 @@
 % 
 % \begin{macro}{\pcol@@makecol}
 % \changes{v1.2-7}{2013/05/11}
-%	{Introduced to cope with the careless implementaion of \cs{@makecol}
+%	{Introduced to cope with the careless implementation of \cs{@makecol}
 %	 in p\string\LaTeX.}
 % \changes{v1.3-6}{2013/09/17}
 %	{Add an argument $d$ to be assigned to \cs{boxmaxdepth} to let it
@@ -7454,7 +7460,7 @@
 % inserted just below the last \sync{}ation point to move up the first
 % visible item upward a little bit if active.  Therefore, \!\flushbottom!
 % setting is nullified for \colpage{}s having \sync{}ation points and a
-% small exceess from the bottom of a \colpage{} cannot be absorbed by
+% small excess from the bottom of a \colpage{} cannot be absorbed by
 % shrinks but visible at the bottom\footnote{
 % 
 % That is, the author gives higher priority to the perfect alignment of the
@@ -7584,11 +7590,11 @@
 %	 introduction of the pre-flushing column height check.}
 % \changes{v1.2-7}{2013/05/11}
 %	{Add the assignment of \cs{@maxdepth} to \cs{maxdepth} to nullify
-%	 the temproary setting done by \cs{@addtobot}.}
+%	 the temporary setting done by \cs{@addtobot}.}
 % \changes{v1.3-6}{2013/09/17}
 %	{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.}
+%	 rather than preceding them.}
 % \begin{macro}{\pcol@@combinefloats}
 % \changes{v1.2-7}{2013/05/11}
 %	{Introduced to solve the \cs{output} request sneaking.}
@@ -7825,7 +7831,7 @@
 %	{Revise reflecting the new page context element $\pi^m(p)$.}
 % 
 % The macro \!\pcol at setpageno! is invoked from \!\pcol at opcol! when it
-% proceeses the \colpage{} of the first column $c=0$ to fix the page number
+% processes the \colpage{} of the first column $c=0$ to fix the page number
 % $\page(p)\gets\counter{page}=\!\c at page!$ of the page $p=\!\pcol at page!$
 % having the \colpage{}.  It is also invoked from \!\pcol at output@switch!
 % when it leaves from the first column to reflect a jump of \counter{page}
@@ -8012,10 +8018,10 @@
 % \arg{pg}=\!\global!\!\c at page!\quad
 % \arg{ch}=\!\global!\!\@colht!\quad\arg{ts}=\!\global!\!\topskip!
 % $$
-% Then the macro \!\pcol at getpinfo! do the obvious assighments to
+% Then the macro \!\pcol at getpinfo! do the obvious assignments to
 % \!\pcol at spanning!, \!\pcol at footins!, \!\pcol at sptextlist!,
 % \!\pcol at mparbottom! and $\arg{pg}$, and the following
-% condintional assignments.
+% conditional assignments.
 % 
 % \begin{eqnarray*}
 % &&\<\arg{ch},\arg{ts},\CSIndex{ifpcol at nospan}\>=
@@ -8027,7 +8033,7 @@
 % \begin{Sloppy}{2800}\noindent
 % The other macro $\!\pcol at getcurrpinfo!\arg{pg}\arg{ch}\arg{ts}$ is invoked
 % in \!\pcol at makecol!, \!\pcol at startpage!, \!\pcol at output@switch!,
-% \!\pcol at sync!, \!\pcol at flushcolumn! and \!\pcol at make~flushedpage! do the
+% \!\pcol at sync!, \!\pcol at flushcolumn! and \!\pcol at make~flushed~page! do the
 % similar assignments using \!\pcol at getpinfo!, but it is not for $\pp(p)$
 % but for $\pp(\ptop)={}$\!\pcol at currpage!.  The macro \!\pcol at getpinfo!
 % also has a direct invoker \!\pcol at outputelt!.
@@ -8157,7 +8163,7 @@
 % Then, we build \fpage{}s if any as follows.  First we invoke
 % \!\@dblfloatplacement! to reinitialize the parameters for \pwise{} float
 % placement.  In addition, we let $\!\f at depth!=0$ to nullify the
-% setting $\!\f at depth!=|1sp|$ possiblly done by \!\@dblfloatplacement! as
+% setting $\!\f at depth!=|1sp|$ possibly done by \!\@dblfloatplacement! as
 % discussed in the item-(\ref{item:ovv-float- at dblfloatplacement}) of
 % \secref{sec:imp-ovv-float}.  Then we repeat \!\@tryfcolumn!  giving it
 % \!\@dbldeferlist!  having \pwise{} floats not contributed to previous
@@ -8211,7 +8217,7 @@
 % Then If this scan results in empty \!\@dbltoplist! to mean the new page
 % does not have any \spanning, we invoke \!\pcol at defcurrpage! with
 % $\pp^i(\ptop)=\pp^f(\ptop)=\bot$ and $\pp^s(\ptop)=\pp^m(\ptop)=\emptyset$
-% so that $\pp(\ptop)$ reprsents a page perfectly empty.
+% so that $\pp(\ptop)$ represents a page perfectly empty.
 % 
 %    \begin{macrocode}
   \begingroup
@@ -8321,7 +8327,7 @@
 % \arg{all}\Arg{\pp^p(q)}\arg{\pp^i(q)}\arg{\pp^f(q)}
 % \Arg{\pp^s(q)}\Arg{\pp^m(q)}$ ships out the ordinary or \fpage{} $q$ if
 % $f_o=\true$ or $f_f=\true$ respectively.  After initializing
-% \!\@outputbox! to be $\bot$, we retrive the page $q$'s information by
+% \!\@outputbox! to be $\bot$, we retrieve the page $q$'s information by
 % \!\pcol at getpinfo! to have $\page(q)$ in \!\c at page! locally, \!\textheight!
 % or $\pp^h(q)$ in $h=\!\@tempdima!$,
 % $f_{\it{}ns}=\CSIndex{ifpcol at nospan}=(\pp^i(q)=\bot)$, and
@@ -8348,7 +8354,7 @@
 % let \!\pcol at rightpage! be an empty box but paint its \bground{} too, because
 % the right counterpart of left parallel float page should be always blank.
 % Note that we temporarily increment $\page(q)$ by one for \npaired{} right
-% \parapag{}ee so that the paiting macro performs page-parity dependent
+% \parapag{}es so that the painting macro performs page-parity dependent
 % operations correctly.
 % 
 % \Index{parallel-paging}
@@ -8420,7 +8426,7 @@
 %	{Add $\cs{boxmaxdepth}\EQ\cs{@maxdepth}$ for depth capping.}
 % \changes{v1.3-2}{2013/09/17}
 %	{Move the core of ship-out image building to \cs{pcol at ioutputelt} for
-% 	 parallel pageing.}
+% 	 parallel paging.}
 % 
 %    \begin{macrocode}
   \else\if at tempswa
@@ -8455,7 +8461,7 @@
 % let it has $q+1$.  Note that since we have let $\!\c at page!=\page(q)$, the
 % direct and indirect references to it in \!\@outputpage! are correctly done.
 % Also note that the \!\global! increment of it by \!\stepcounter! in
-% \!\@outputpage! will be overriden by the \!\global! assignment to it done
+% \!\@outputpage! will be overridden by the \!\global! assignment to it done
 % by \!\pcol at startpage! or \!\pcol at getcurrpage! invoked from \!\pcol at opcol!
 % if $\arg{all}=0$, or by \!\pcol at getcurrpinfo! invoked from \!\pcol at sync!
 % otherwise.
@@ -8569,7 +8575,7 @@
 % Third, we invoke \!\pcol at buildcolseprule! giving it $h$ being $\pp^h(q)$
 % but possibly shrunk by \Scfnote{}s, the column range $\LBRP\Cfrom\Cto$,
 % and \!\@maxdepth! to mean $q$ is non-\lpage, to draw a \cseprule{}
-% possibly broken by the speces for \mctext{}s in the box \!\pcol at tempboxa!
+% possibly broken by the spaces for \mctext{}s in the box \!\pcol at tempboxa!
 % and to paint the \bground{}s of columns, \csepgap{}s and \mctext{} in the
 % box \!\@tempboxa! which we put into $b$ immediately.
 % 
@@ -8581,7 +8587,7 @@
 % wide containing $\sigma_c$ followed by \!\hss! for all $c\In\Cfrom\Cto$,
 % where $\sigma_c=\!\box!{\cdot}s_c(q)$ being the first element removed from
 % $\S_c$ by \!\@next! and then returned to \!\@freelist! by \!\@cons! if it
-% is not $\bot$, or \!\voidb at x!  otherwise.  We sepearate \!\hbox!es of
+% is not $\bot$, or \!\voidb at x!  otherwise.  We separate \!\hbox!es of
 % $\sigma_c$ by making each \!\hbox! preceded by \Midx{\!\pcol@@hfil!} being
 % \!\relax! for the first one and the macro \!\pcol at hfil! for others giving
 % it an argument $c^g=\!\pcol at colsepid!\in\{c,c{-}1\}$ which we discuss
@@ -8833,7 +8839,7 @@
 % i.e., \!\colseprulecolor!\oarg{mode}\ARg{color}$|[|c|]|$ is declared or
 % not; and $\gap_c/2$ again but preceded by $-r/2$.  On the other hand if
 % $r=0$, we simply put a space of $\gap_c$.  Note that the skips of
-% $\gap_c/2$ and $\gap_c$ are accompanied by 1\,|fil| inifinit stretch to
+% $\gap_c/2$ and $\gap_c$ are accompanied by 1\,|fil| infinite stretch to
 % avoid underfull when $\sum_{c=\Cfrom}^{\Cto-2}(\w_c+\gap_c)+\w_{\Cto-1}<\WT$
 % where $(\Cfrom,\Cto)=\{(0,\CL),(\CL,C)\}$, due to arithmetic errors in
 % calculations of $\w_c$ and $\gap_c$\footnote{
@@ -8928,7 +8934,7 @@
 % mean \parapag{}ing is not in effect\footnote{
 % 
 % Since the assignments of $\CL$ and $\C$ in \CSIndex{pcol at zparacol} are
-% \CSIndex{global} and they are not nodified anywhere else, examining their
+% \CSIndex{global} and they are not modified anywhere else, examining their
 % equality outside \env{paracol} environments is safe and meaningful.},
 % 
 % \parapag{}ing is done in \npaired{} mode\footnote{
@@ -8943,11 +8949,11 @@
 % the (last) environment\footnote{
 % 
 % Column-swapping may be enabled {\em after} the last \env{paracol}
-% environment was closed but we consider the enablement is effective for the
+% environment was closed but we consider the enabling is effective for the
 % page having the environment.},
 % 
 % and the page number is even.  Note that a page may have two or more
-% (\lpage{}s of) \env{paracol} environements whose \parapag{}ing style can
+% (\lpage{}s of) \env{paracol} environments whose \parapag{}ing style can
 % be inconsistent including the case some of them are not \parapag{}ed.  If
 % this inconsistency happens the page is shipped out following the style of
 % the last environment.  Also note that even if the last environment is not
@@ -9177,7 +9183,7 @@
 % 
 % Then after trying put deferred floats in the \colpage{} by \!\@tryfcolumn!
 % and \!\pcol at trynextcolumn! as done in \LaTeX's \!\@startcolumn!, we
-% \!\insert! $\pp^f(p)$, if it is has some footnoes, by letting \!\footins!
+% \!\insert! $\pp^f(p)$, if it is has some footnotes, by letting \!\footins!
 % have it by \!\pcol at getcurrfoot! so that \TeX{} will be aware of the
 % 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
@@ -9192,8 +9198,8 @@
 % their total height reaches \!\@colht! by \!\pcol at deferredfootins! if $f=1$
 % to mean this macro is invoked from \!\pcol at 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$.}.
+% The \cs{insert}ion of $\pp^f(p)$ also requires $f=1$ but this examination
+% is redundant because $\pp^f(p)=\bot$ definitely if $f=0$.}.
 % 
 % Note that the deferred footnote \!\insert!ion in the case of $f=0$ will
 % be done afterward when \!\pcol at freshpage! does \!\pcol at restartcolumn! at
@@ -9344,7 +9350,7 @@
 % giving it $A_b=\emptyset$, $A_g=|g|$ and $A_c=|c|$.
 % 
 % The macro $\!\pcol at bg@paintbox!\Arg{A}$ is used in the following macros
-% with $A$ shown in the parantheses to paint the \bground{}s of regions
+% with $A$ shown in the parentheses to paint the \bground{}s of regions
 % $\bgr_{\{a_1,a_2\}}$ where $(a_1,a_2)\in\{(S,s),(F,f),(N,n),\~(P,p)\}$.
 % 
 % \begin{quote}\raggedright
@@ -9391,7 +9397,7 @@
 % more appropriate alias;  negate \!\pagerim! locally to calculate $\HT$
 % easily;  decrement $\CBto$ by one locally for the column scanning loop for
 % $c\In\CBfrom{\CBto{-}1}$ in \!\pcol at bg@paint at ii!;  and \!\offinterlineskip!
-% to inhbit inter-line \!\baselineskip! insertion in the box.  Then after
+% to inhibit inter-line \!\baselineskip! insertion in the box.  Then after
 % the invocation of the sequence of \!\pcol at bg@paint at ii! in $\arg{body}$ and
 % closing the box, we let the height, depth and width of the box be 0 so
 % that it does not occupy any real space in the outer box in which the box
@@ -9426,7 +9432,7 @@
 % 
 % First we invoke \!\pcol at bg@swappage! with \CSIndex{ifpcol at bg@swap} to
 % let \!\pcol at bg@left~margin! and \CSIndex{ifpcol at bg@@swap} have values
-% accorging to \CSIndex{ifpcol at bg@swap}, \CSIndex{if at twoside} and the parity
+% according to \CSIndex{ifpcol at bg@swap}, \CSIndex{if at twoside} and the parity
 % of $\page(p)$.  Then we invoke $\!\pcol at bg@paintregion!\arg{a}\arg{c}$ for
 % all $a\in A_b$ and $c=-1$ to paint the \bground{} of $\bgr_a$.  Second, we
 % invoke \!\pcol at bg@swappage! again but with \CSIndex{ifpcol at swapcolumn}
@@ -9524,7 +9530,7 @@
 % \SpecialArrayIndex{a}{\pcol at bg@@}
 % 
 % and thus we need triple \!\expandafter! to give them to the macro.  Prior
-% to the invocatoin of the macro, we let $\!\reserved at a!=a'$ have
+% to the invocation of the macro, we let $\!\reserved at a!=a'$ have
 % $a{\cdot}|@|{\cdot}c$ if $\bgc_a^c$ is defined for $a\in\{G,C,g,c\}$, or
 % $a$ otherwise definitely for $a\notin\{G,C,g,c\}$.
 % 
@@ -9546,7 +9552,7 @@
 % \!\hbox! for the region right by $x_0$ by \!\moveright!, and paint the box
 % putting a \!\vrule! of $(x_1-x_0)$ wide and $(y_1-y_0)$ tall, letting
 % \!\current at color! have $\bgc_r^{[c]}=|\pcol at bg@colr|{\cdot}a'$ and then
-% invoking \!\pcol at set@color! being the orinigal definition of
+% invoking \!\pcol at set@color! being the original definition of
 % \!\set at color!.
 % 
 % \SpecialArrayIndex{a{\cdot}\string\texttt{@}{\cdot}c}{\pcol at bg@color@}
@@ -9556,7 +9562,7 @@
 % $[(\WT{-}x_1,y_0)(\WT{-}x_0,y_1)]$ and thus the shift amount for
 % \!\moveright! of the \!\hbox! is $(\WT-x_1)$.
 % 
-% Then after \!\pcol at bg@paintregion at i! finshes its work,
+% Then after \!\pcol at bg@paintregion at i! finishes its work,
 % \!\pcol at bg@paintregion! lets the switch
 % \CSIndex{ifpcol at bg@painted}${}=\true$ because we painted $\bgr_a^{[c]}$,
 % lets the height, depth and width of \!\@tempboxa!  be 0 to make it a
@@ -9620,7 +9626,7 @@
 % The macro $\!\pcol at bg@calculate!\arg{z}\arg{z_0}\arg{F}$ is used in
 % \!\pcol at bg@paintregion at i! and \!\pcol at bg@addext! to accumulate dimensional
 % values specified in $F$ into a \!\dimen! register $z$ with initial value
-% $z_0$.  The specificatoin $F$ is a sequence of $\!\@elt!\Arg{f}$ to add $f$
+% $z_0$.  The specification $F$ is a sequence of $\!\@elt!\Arg{f}$ to add $f$
 % to $z$, $\!\pcol at bg@negative!\Arg{F^-}$ to subtract the amount specified
 % by $F^-$ from $z$, or macros expanded to either of them.
 % 
@@ -9792,7 +9798,7 @@
 % 
 % \SpecialArrayIndex{a}{\pcol at bg@@}
 % 
-% whose region identifier $a$ is shown in paretheses above, but besides them
+% whose region identifier $a$ is shown in parentheses above, but besides them
 % \!\pcol at bg@paperwidth! is also used in \!\pcol at bg@ext at inf@r!,
 % \!\pcol at bg@paperheight! in \!\pcol at bg@ext at inf@b!, \!\pcol at bg@pageleft! in
 % \!\pcol at bg@ext at inf@l! and \!\pcol at bg@ext at inf@r!, and \!\pcol at bg@pagetop!
@@ -9871,7 +9877,7 @@
 % 
 % \item
 % \!\pcol at bg@columntop! and \!\pcol at bg@columnheight! for $a\in\{c,g\}$ by
-% \!\pcol at build~colseprule! and \!\pcol at buildcselt!.
+% \!\pcol at build~col~sep~rule! and \!\pcol at buildcselt!.
 % 
 % \item
 % \!\pcol at bg@spanningtop! and \!\pcol at bg@spanningheight! for $a\in\{s,S\}$ by
@@ -10215,7 +10221,7 @@
 % \changes{v1.2-7}{2013/05/11}
 %	{Include the effect of the separation of pre-environment bottom
 %	 floats and columns in the starting page into the check of too large
-%	 pre-envronment stuff.}
+%	 pre-environment stuff.}
 % \changes{v1.3-6}{2013/09/17}
 %	{Change the page builder for too tall pre-environment stuff from
 %	 \cs{pcol at makenormalcol} to \cs{@makecol} because the page should be
@@ -10224,7 +10230,7 @@
 %	{Let $\cs{ifpcol at output}\EQ\string\mathit{false}$ temporarily before
 %	 the invocation of \cs{@outputpage} for too tall pre-environment
 %	 stuff because the page is considered as outside
-%	 \string\texttt{paracol} envrionments.}
+%	 \string\texttt{paracol} environments.}
 % \changes{v1.32-3}{2015/10/10}
 % 	{Add depth clearing of imported deferred floats in case that some of
 %	 them has \texttt{1sp}.}
@@ -10241,7 +10247,7 @@
 % breaks are processed by our own macros such as \!\pcol at makecol! hereafter.
 % Then we let $p=\pbase={\ptop}=0$ and $\PP=\emptyset$ because we have
 % nothing for $q<\ptop=0$.  We also move \!\@deferlist! to \!\@dbldeferlist!
-% and then let \!\@deferlist! be empty because all \cwise{} dererred floats
+% and then let \!\@deferlist! be empty because all \cwise{} deferred floats
 % become \pwise{}.  In this float importation, as discussed in
 % item-(\ref{item:ovv-float- at output@start}) of
 % \secref{sec:imp-ovv-float}, we force all floats in the list have
@@ -10248,11 +10254,11 @@
 % 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.}.
+% Though having \texttt{1sp} is almost impossible.}.
 % 
 % 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
+% Next we calculate $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
 % the sum of \!\skip!\!\footins!, the height-plus-depth of \!\footins! and
 % \!\belowfootnoteskip!, if \!\footins! is not $\bot$ or 0 otherwise; and
@@ -10325,7 +10331,7 @@
 % $h>\HB=\!\pcol at bg@preposttop!
 % \in\{\!\pcol at bg@preposttop at left!,\~\!\pcol at bg@preposttop at right!\}$, being
 % the bottom of the previous \env{paracol} environment (having right
-% \parapag{}e) or 0 if the curret page does not have it, to mean we have
+% \parapag{}e) or 0 if the current page does not have it, to mean we have
 % ordinary single-columned stuff in \preenv{}, we paint its \bground{} by
 % \!\pcol at bg@paintbox! temporarily letting $\!\pcol at bg@textheight!=h$ so
 % that $y_0=\HB$ and $y_1=h$ for $\bgr_{\{p,P\}}$.  This \bgpaint{} is not
@@ -10483,7 +10489,7 @@
 % and, if so, acquire an \!\insert! from \!\@freelist! to let
 % $\Celt^c=\cs{pcol at columncolor@box}\cdot c$ have the coloring \!\special!
 % for the color defined in $\Celtshadow^c$ by invoking \!\pcol at set@color!
-% being the origina \!\set at color! with nullification of \!\aftergroup!.
+% being the original \!\set at color! with nullification of \!\aftergroup!.
 % Otherwise, we let $\Celt^c=\bot$ .
 % 
 % \changes{v1.0}{2011/10/10}
@@ -10516,7 +10522,7 @@
 %
 % \changes{v1.2-1}{2013/05/11}
 %	{Add emptying \cs{pcol at colorstack} and the invocation of
-%	 \cs{pcol at savecolorstack} at the beginnig of the first
+%	 \cs{pcol at savecolorstack} at the beginning of the first
 %	 column-page to be built.}
 % \changes{v1.2-2}{2013/05/11}
 %	{Add insertion of \cs{footins} having footnotes to be merged if it
@@ -10542,7 +10548,7 @@
 % \!\footins! is not \!\unvbox!ed but is put as a whole and is followed by
 % \!\penalty!\!\interlinepenalty!, so that footnotes will not be broken by
 % \TeX's page builder to prevent the reconnection of a broken footnote with
-% innapropriate glue discarding, which we will discuss in
+% inappropriate glue discarding, which we will discuss in
 % \secref{sec:imp-fnote}.  We also add a penalty 10000 or
 % \!\interlinepenalty! according to $\CSIndex{if at nobreak}=\true$ or not to
 % allow the first column to start from a new page when its first item is
@@ -10575,7 +10581,7 @@
 %	 pre-environment stuff and the multi-column stuff in
 %	 \string\texttt{paracol} environment by \cs{textfloatsep}.}
 % \changes{v1.3-6}{2013/09/17}
-%	{Completely redesigined to use \cs{@makecol} if pre-environment
+%	{Completely redesigned to use \cs{@makecol} if pre-environment
 %	 stuff has bottom floats.}
 % \changes{v1.32-2}{2015/10/10}
 % 	{Add \cs{pcol at Fb}/\cs{pcol at Fe} pair(s).}
@@ -10597,7 +10603,7 @@
 % If \preenv{} does not have bottom floats, we build \!\@outputbox! by
 % ourselves without relying on \!\@makecol! because the skips put into the
 % bottom (or near it) by the macro is harmful to making \preenv{} and
-% parallel columns naturally connected.  Therfore, we move
+% parallel columns naturally connected.  Therefore, we move
 % \!\@holdpg! to \!\@outputbox! adding \!\footins! to its tail if any by
 % \!\pcol at combinefootins!, and then combine top floats if any by
 % \!\pcol at combinefloats!\footnote{
@@ -10606,7 +10612,7 @@
 % resulting \!\@outputbox! being top floats, main text and footnotes should
 % be consistent with other pages with any \LaTeX{} including p\LaTeX.}.
 % 
-% In addition, we clear \!\@midlist! and retuns its contents to
+% In addition, we clear \!\@midlist! and returns its contents to
 % \!\@freelist! as \!\@makecol! does.
 % 
 % \item
@@ -10622,9 +10628,9 @@
 % $\CSIndex{ifpcol at lastpage}=\true$ to let
 % $\!\@combinefloats!=\!\pcol at combinefloats!$ used in \!\@makecol!  put a
 % vertical skip of \!\textfloatsep! below the bottom floats so that the
-% floats are well seperated from the top of multi-column stuff in the
+% floats are well separated from the top of multi-column stuff in the
 % \spage.  We also nullify \!\@textbottom! by making it \!\let!-equal to
-% \!\relax! because it is unncessary to put an infinitely stretchable skip
+% \!\relax! because it is unnecessary to put an infinitely stretchable skip
 % at the bottom\footnote{
 % 
 % Even if unharmful.},
@@ -10712,7 +10718,7 @@
 % following; let $h_p$ be the height of \!\pcol at prespan! having \prespan{}
 % if it is not $\bot$, or 0 if $\bot$ to mean we have had a page break in
 % the \mctext; add $h_p$ to \!\@colroom! which we temporarily shrank when
-% the \mctext{} starts; add an elemnent $\spt(H,h)$ to the tail of
+% the \mctext{} starts; add an element $\spt(H,h)$ to the tail of
 % $\pp^s(\ptop)=\!\pcol at sptextlist!$ by \!\pcol at getcurrpage! and
 % \!\pcol at defcurrpage!, where $H$ is $h_p$ plus the total height of top
 % floats measured by \!\pcol at addflhd!, and $h$ is the height-plus-depth of
@@ -10756,7 +10762,7 @@
 % should have $\pp^f(p)$ which has been already fixed.
 % 
 % \item
-% If \Mcfnote{} typesettinng is in effect, by \!\pcol at savefootins! we save
+% If \Mcfnote{} typesetting is in effect, by \!\pcol at savefootins! we save
 % \!\footins! into \!\pcol at currfoot!, which should be $\bot$ in other cases,
 % so that it will be saved into $\cc_c(\ft)$ by \!\pcol at setcurrcol!
 % afterward.
@@ -11016,7 +11022,7 @@
 % the footnotes in it by an \!\edef! and \!\pcol at getcurrfoot!, return the
 % \!\insert! for them to \!\@freelist!, invoke \!\pcol at shrinkcolbyfn! to
 % shrink \!\@colht! temporarily by their total height and to remember the
-% exsistence of them with $\!\@tempdimb!=-\!\skip!\!\footins!$, and then
+% existence of them with $\!\@tempdimb!=-\!\skip!\!\footins!$, and then
 % \!\insert!  the footnotes so that it contributes to the building process
 % of the \colpage{} to be restarted.  Otherwise, i.e. if $\pp^f(p)=\bot$,
 % \!\@colht! is unchanged and $\!\@tempdimb!=0$.
@@ -11044,7 +11050,7 @@
 % (\ref{item:scftop-pen}).
 % \end{enumerate}
 % 
-% Thes order of footnotes, main vertical list and then penalty is essential
+% The order of footnotes, main vertical list and then penalty is essential
 % to ensure that the \colpage{} in $p<\ptop$ has room for footnotes whose
 % residence in $p$ has already been fixed.
 % 
@@ -11167,7 +11173,7 @@
 % \!\csname!| pcol at col|\!\number!\!\pcol at currcol!\!\endcsname!
 % $$
 % and then of the resulting control sequence.  Then this macro gives its
-% nineth argument to \!\pcol at iigetcurrcol! which restores the last eight.  We
+% ninth argument to \!\pcol at iigetcurrcol! which restores the last eight.  We
 % also do
 % $$
 % \!\global!\!\columnwidth!|\pcol at columnwidth|{\cdot}c
@@ -11310,7 +11316,7 @@
 % Otherwise, $\csts$ is let $\bot$ because the opening \colorctext{} has
 % already been put when we left from the \colpage{}.  Then if
 % $\CSIndex{ifpcol at sptextstart}=\true$ to mean a \mctext{} is to start, we
-% save $\cc_c(\vb)$ into \!\pcol at prespan! adding the colorling \!\special!s
+% save $\cc_c(\vb)$ into \!\pcol at prespan! adding the coloring \!\special!s
 % to restore \colorctext{} from $\CST^c$ by
 % \!\pcol at restorecolorstack!\footnote{
 % 
@@ -11317,7 +11323,7 @@
 % If \cs{pcol at prespan} is connected to (the first part of) the \mctext,
 % the reestablishment of the \colorstack{} here correctly places coloring
 % \cs{special}s in \texttt{.dvi}.  On the other hand, if the \mctext{} is
-% slown away to the next page as a whole, the reestablishment here is
+% stowed away to the next page as a whole, the reestablishment here is
 % essential for the correct paring of the pushes and pops, the latter of
 % which are at the bottom of the \colpage{} whose tail is \cs{pcol at prespan}.}.
 % 
@@ -11324,7 +11330,7 @@
 % We also shrink $\cc_c(\vb^r)=\!\@colroom!$ by the height of the \prespan{}
 % so that \mctext{} will be captured by \!\pcol at makecol! if it is broken
 % into two (or more) pages, and put a invisible \!\hrule! to the main
-% vertical list letting $\!\topskip!=0$ to supress \!\topskip! insertion
+% vertical list letting $\!\topskip!=0$ to suppress \!\topskip! insertion
 % prior to the \mctext{} but instead to make the text led by
 % \!\baselineskip! (or \!\lineskip!) according to the \!\prevdepth!  being
 % the depth of the tallest column and the height of the first \!\hbox! in
@@ -11617,7 +11623,7 @@
 % consistently in reestablishing but not in rewinding.  However as we
 % discussed in the description of \!\pcol at clearcolorstack!, the order of
 % rewinding does not affect the result for almost all printers because only
-% the number of pop operations is siginficant for them\footnote{
+% the number of pop operations is significant for them\footnote{
 % 
 % And even for the minority because multiple updates of printer's color with
 % one particular color are independent of the order of them.}.
@@ -11663,7 +11669,7 @@
 % \item
 % If $\HT(\celt)\neq0$, $\DP(\celt)\neq0$ to mean $\celt$ has a \!\special!
 % with which $\Celt^c$ is updated.  If $\CSIndex{if at tempswa}=\true$ to mean
-% $\celt$ is the first (bottommost) occurence, $\Celt^c$ is updated
+% $\celt$ is the first (bottommost) occurrence, $\Celt^c$ is updated
 % acquiring an \!\insert! from \!\@freelist! if it was $\bot$.  In this
 % case of $\bot$, we have to put an uncoloring \!\special! by
 % \!\reset at color!, because \!\pcol at scancst! did not do it but
@@ -11671,7 +11677,7 @@
 % \!\special!.  Then we let $\CSIndex{if at tempswa}=\false$.
 % 
 % Otherwise, i.e., if $\CSIndex{if at tempswa}=\false$ for second or succeeding
-% occurences, we do nothing because updates by them are overridden by the
+% occurrences, we do nothing because updates by them are overridden by the
 % first one.
 % \end{enumerate}
 % 
@@ -12112,7 +12118,7 @@
 % $m_w=\!\marginparwidth!$ or $m_s=\!\marginparsep!$ according to the margin
 % and the column; determine the position to place the marginal note
 % consulting $\pp^m(p)=\!\pcol at mparbottom!$ obtained by
-% \!\pcol at getcurrpage!: and update $\pp^m(p)$ according to the postion.
+% \!\pcol at getcurrpage!: and update $\pp^m(p)$ according to the position.
 % 
 % First, there are the following parameters to determine the margin, and thus
 % the value of $\CSIndex{if at firstcolumn}$ referred to in \LaTeX's
@@ -12164,12 +12170,12 @@
 % \SpecialArrayIndex{c}{\pcol at columnsep}
 % 
 % That is, $D$ is the distance from the left edge of the column $c$ to that
-% of leftmost column in the (paralell-)
+% of leftmost column in the (parallel-)
 % 
 % \Index{parallel-paging}
 % 
 % page in which $c$ resides.  Then if $\CSIndex{if at firstcolumn}=\true$ to
-% let the margial note go to the left margin, we add $D$ to
+% let the marginal note go to the left margin, we add $D$ to
 % $m_w=\!\marginparwidth!$ so that \LaTeX's \!\@addmarginpar! being
 % \!\pcol@@addmarginpar! aligns the left edge of the marginal note at the
 % point apart from the column's left edge by $(D+m_w)+m_s$ rather than
@@ -12192,8 +12198,8 @@
 % $h=\!\@tempdimb!$ be the height-plus-depth of the box \!\pcol at marbox!
 % plus \!\marginparpush!, or in other words the vertical space the marginal
 % note requires.  Then we give $t$ and $h$ to \!\pcol at getmparbottom! to let
-% \!\@mparbottom! have the bottom of the exisiting marginal text below which
-% we put the margial text in \!\pcol at marbox!, and to let \!\pcol at mpblist!
+% \!\@mparbottom! have the bottom of the existing marginal text below which
+% we put the marginal text in \!\pcol at marbox!, and to let \!\pcol at mpblist!
 % have the new list to be replaced with $\mpb_{\{L,R\}}^{\{l,r\}}$ in
 % $\pp^m(p)$.
 % 
@@ -12329,7 +12335,7 @@
 % \end{eqnarray*}
 % 
 % where $n=\Abs{M}$, assuming $b_0=0$.  That is, we try to find the first
-% avilable gap between marginal notes below $t$ to accommodate the
+% available gap between marginal notes below $t$ to accommodate the
 % marginal note $m$ of $h$ tall.  Then if such $t_k$ is not found because
 % $t>t_n$ to mean $m$ appears below the last marginal note as in natural
 % cases, or $t_i-\max(t,b_{i-1})<h$ for all $t_i$ s.t.\ $t_i>t$ to mean
@@ -12393,7 +12399,7 @@
 % used solely in \!\pcol at addmarginpar! and is applied to $\PPP$ to update an
 % element $M\in\Set{\mpb_X^x}{X\in\{L,R\},x\in{l,r}}$ in $\pp^m(p)$ with
 % $M'=\!\pcol at mpblist!$ given by \!\pcol at getmparbottom!.  The structure of
-% the macro is similar to \!\pcol at setpnoelt! to upadate $\pp^p(q)$ s.t.\
+% the macro is similar to \!\pcol at setpnoelt! to update $\pp^p(q)$ s.t.\
 % $q\geq p$, but in this macro the target of the update is only $p$.  Then
 % for $q=p$, we invoke \!\pcol at setmpbelt@i! giving it the body of $\pp^m(p)$
 % being
@@ -12463,7 +12469,7 @@
 % \!\pcol at do@mpbout! and \!\pcol at bias@mpbout! to let $\pp^m(0)$ have the
 % lists according to $\mpbout$ and $\!\@mparbottom!$ which can be modified
 % in \postenv{} of the previous environment or in other word
-% in \preenv{} of starting envionment.  By this setting of $\pp^m(0)$,
+% in \preenv{} of starting environment.  By this setting of $\pp^m(0)$,
 % marginal note placement in the \spage{} is aware of the marginal notes
 % having been placed in previous environments and in \preenv{} and thus can
 % correctly examines if a marginal note to be added in a margin collide 
@@ -12471,7 +12477,7 @@
 % encounters a page break before a new environment starts, our own
 % \!\@outputpage! should be invoked at the page break to let
 % $\mpbout=\mpboutz$ because the marginal notes in previous environments do
-% not afffect those in the new environment.
+% not affect those in the new environment.
 % 
 % Note that $\mpbout$ is also referred to and updated by
 % \!\pcol at do@mpb at all@i! and \!\pcol at do@mpb at all@ii! because they are used in
@@ -12489,12 +12495,12 @@
 % \begin{macro}{\pcol at do@mpbout}
 % \changes{v1.3-4}{2013/09/17}
 %	{Introduced to do specified operations on $\string\cal{M}$ and its
-%	 element $M_L^x$ acccording to the side margin for marginal notes
+%	 element $M_L^x$ according to the side margin for marginal notes
 %	 outside \texttt{paracol} environments.}
 % \begin{macro}{\pcol at do@mpbout at i}
 % \changes{v1.3-4}{2013/09/17}
 %	{Introduced to do specified operations on $\string\cal{M}$ and its
-%	 element $M_L^x$ acccording to the side margin for marginal notes
+%	 element $M_L^x$ according to the side margin for marginal notes
 %	 outside \texttt{paracol} environments.}
 % \begin{macro}{\pcol at do@mpbout at whole}
 % \changes{v1.3-4}{2013/09/17}
@@ -12587,7 +12593,7 @@
 % The macro $\!\pcol at getmparbottom@last!\Arg{y}$ is used solely in
 % \!\pcol at output@end! to let
 % $\mpbout=\Arg{m_L^l}\Arg{m_L^r}\Arg{m_R^l}\Arg{m_R^r}$, where
-% $m_X^x=\mpar(t_n,b_n)\in\mpb_X^x$, $n=\Abs{\mpb_X^x}$ asuming
+% $m_X^x=\mpar(t_n,b_n)\in\mpb_X^x$, $n=\Abs{\mpb_X^x}$ assuming
 % $\mpar(t_0,b_0)={\mpar}(y,y)$, and $y$ is the negative counterpart of the
 % height-plus-depth of the \spanning{} in the \lpage.  Therefore, $\mpbout$
 % is let have the occupancy information of the last marginal note if any, or
@@ -12846,7 +12852,7 @@
 % 
 % In the real implementation, $V=-\infty$ if $\VT=\VB=-\infty$ and no
 % \Scfnote{}s are presented, but this difference does not affect the
-% decisoins because $f\land(V\geq0)=(\VT<0)\land(V\geq0)=\false$ and
+% decisions because $f\land(V\geq0)=(\VT<0)\land(V\geq0)=\false$ and
 % $V\leq\pp^f(\ptop)$ with either $V=0$ or $V=-\infty$.}.
 % 
 % Note that it can be $\VP+v^f\leq\pp^h(\ptop)<\VT+\VB+v^f=V$ to mean
@@ -12993,7 +12999,7 @@
 % Then we obtain $p$'s \pctext{} by \!\pcol at getcurrpage! and, if it has
 % \Scfnote{}s in $\pp^f(p)$, we shrink \!\@colht! by the space required for
 % the footnotes using \!\pcol at shrinkcolbyfn! and add the stretch\slash
-% shrink compontents of $\!\skip!\cdot\pp^f(p)$ at the bottom of
+% shrink components of $\!\skip!\cdot\pp^f(p)$ at the bottom of
 % \!\box!|255| by \!\pcol at unvbox@cclv!, as we did in \!\pcol at makecol!.
 % Otherwise we take a special care of the case that the height-plus-depth of
 % $\cc_c(\vb^b)$ is greater than $\pp^h(p)$ due to that its height is almost
@@ -13336,7 +13342,7 @@
 % then emptied.  The floats are put in a \!\vbox! of \!\@colht! tall with
 % vertical skips of \!\@fptop!, \!\@fpsep! and \!\@fpbot! above, between and
 % below them respectively.  The box is then let be $\s_c(p)$ or
-% $\cc_c(\vb^b)$ explictly or implicitly by the invokers, with an
+% $\cc_c(\vb^b)$ explicitly or implicitly by the invokers, with an
 % encapsulation in the case of \!\pcol at makefcolumn!.
 % 
 %    \begin{macrocode}
@@ -13485,8 +13491,8 @@
 % The macro $\!\pcol at addflhd!\arg{list}\arg{tfs}$ is invoked twice from
 % \!\pcol at measurecolumn! for a column $c$ to measure $\size_c(x)$
 % ($x\in\{t,b\}$) of top ($x=t$) or bottom ($x=b$) floats.
-% The arguments and registers referred to in the macro have the folloiwngs
-% according to $x=t$ or $x=b$.
+% The arguments and registers referred to in the macro have the following
+% values according to $x=t$ or $x=b$.
 % $$
 % \nosv\begin{array}{l|ll}
 % &		x=t&			x=b\\\hline
@@ -13599,7 +13605,7 @@
 % this case we simply add \!\vfil! at the tail of the main vertical list in
 % $\cc_c(\vb^b)$ to make the whole \colpage{} possibly with other items fit
 % in a box of \!\@colht! tall and, if $\cc_c(\tf)\neq\infty$ to mean the
-% column to be flushed has a \sync{}ation point, we also add an infitite
+% column to be flushed has a \sync{}ation point, we also add an infinite
 % shrink of $1/10000\,|fil|$ so as to cancel a finite shrink just below the
 % point, as done in \!\pcol at makecol!\footnote{
 % 
@@ -13662,7 +13668,7 @@
 % Note that the process above involves \!\floatsep! and \!\textfloatsep!
 % with some finite stretch and shrink, but these factors will not contribute
 % the final result because they are canceled by \!\vss! in the \mvlfloat{}
-% and by the small inifinite stretch and shrink put by \!\pcol at makecol! and
+% and by the small infinite stretch and shrink put by \!\pcol at makecol! and
 % this macro for flushing.  Also note that $\cc_c(\tf)$ is then biased by
 % 10000\,|pt| so that \!\pcol at cflt!  will not put \!\topfigrule! because it
 % has been already put as a part of the \mvlfloat{} or we don't have any
@@ -13744,7 +13750,7 @@
 % point with some shrink\slash stretch.  Though this moving up/down is
 % inhibited by the small infinite stretch\slash shrink which the \colpage{}
 % will at its bottom finally, it is undesirable to make \TeX{}
-% misunderstanding that the glues are strethable\slash shrinkable though
+% misunderstanding that the glues are stretchable\slash shrinkable though
 % they are not in reality.
 % 
 % Second, since the boxes in all \colpage{} are zero deep due to the
@@ -13765,7 +13771,7 @@
 % baseline below the \sync{}ation point apart from the lowest one by
 % \cs{baselineskip}, we dare to choose the definition of $\DT$ because such
 % lowest baseline often means that the column have some skip at its bottom
-% to give us the impressoin that the space between the baselines of the
+% to give us the impression that the space between the baselines of the
 % tallest column and its first item is a little bit too large.},
 % 
 % if $\DT$ plus the hight of each item is less than \!\baselineskip!.
@@ -13800,7 +13806,7 @@
   \fi
 %    \end{macrocode}
 % 
-% Finally, we let $\cc_c(\tn)=0$ to inhibit futher addition of top floats
+% Finally, we let $\cc_c(\tn)=0$ to inhibit further addition of top floats
 % because we have fixed the space for them\footnote{
 % 
 % Allowing the addition is tremendously tough even when the \colpage{} has
@@ -13845,7 +13851,7 @@
 % \cs{textheight} though not specified so on its construction in
 % \cs{pcol at makeflushedpage}.},
 % 
-% ensureing that its depth is capped by $\!\boxmaxdepth!=\!\@maxdepth!$.  We
+% ensuring that its depth is capped by $\!\boxmaxdepth!=\!\@maxdepth!$.  We
 % also perform these height setting and depth capping on \!\pcol at rightpage!
 % if $\CL<\C$ to mean \parapag{}ing.  Then we invoke \!\@outputpage! for
 % shipping out, and then finally \!\pcol at freshpage! to have a new page to
@@ -13899,7 +13905,7 @@
 % then do it for \pwise{} floats by the following invocations enclosed in a
 % group; letting $\!\pcol at rightpage!=\bot$ for ordinary paging;
 % \!\@dblfloatplacement! to set up placement parameters followed by
-% $\!\f at depth!=0$ to nullify the setting $\!\f at depth!=|1sp|$ possiblly done
+% $\!\f at depth!=0$ to nullify the setting $\!\f at depth!=|1sp|$ possibly done
 % by it as discussed in the item-(\ref{item:ovv-float- at dblfloatplacement})
 % of \secref{sec:imp-ovv-float}; \!\@makefcolumn!  with
 % \!\@dbldeferlist! to have a \fpage{} in \!\@outputbox! if any; and a loop
@@ -13908,7 +13914,7 @@
 % repeated while we have a \fpage{}, i.e., $\CSIndex{if at fcolmade}=\true$.
 % 
 % Note that the mid part is same as that found in \!\@doclearpage! but we
-% omit various adjuncts surrouding it as follows;  examination of
+% omit various adjuncts surrounding it as follows;  examination of
 % \CSIndex{if at twocolumn} because we should have multiple columns;
 % examination of \CSIndex{if at firstcolumn} because we have to clear the page
 % immediately even when we are not in the first column;  concatenating
@@ -13962,7 +13968,7 @@
 %	{Completely redesigned with new macro \cs{pcol at imakeflushedpage}.}
 % \changes{v1.3-3}{2013/09/17}
 %	{Add background painting of page-wise floats, and a part of
-%	 opreations for column-separation rule drawing and background
+%	 operations for column-separation rule drawing and background
 %	 painting of page-wise footnotes.} 
 % \changes{v1.3-6}{2013/09/17}
 %	{Revise the mechanism of special care about last page introducing
@@ -13974,8 +13980,8 @@
 % invoke \!\pcol at output@switch! with setting $\CSIndex{ifpcol at clear}=\true$
 % to flush all pages up to $\ptop-1$ and to let $\cc_c(\vb^b)$ have the
 % ship-out image of the main vertical list of each \colpage{} $c$ in
-% $\ptop$.  This invocatoin also lets $\!\pcol at colht!=\VPP$ so that hereafter
-% we will refer $\VPP$ throuth $\arg{ht}$ if it is $\!\pcol at colht!$ for
+% $\ptop$.  This invocation also lets $\!\pcol at colht!=\VPP$ so that hereafter
+% we will refer $\VPP$ through $\arg{ht}$ if it is $\!\pcol at colht!$ for
 % \lpage.  Then after obtaining $\ptop$'s \pctext{} to have
 % $\page(\ptop)=\pp^p(\ptop)$, $\!\@colht!=\pp^h(\ptop)$ and
 % \CSIndex{ifpcol at nospan} by \!\pcol at getcurrpinfo!, we build the ship-out
@@ -13985,7 +13991,7 @@
 % \begin{enumerate}\def\labelenumi{(\arabic{enumi})}
 % \item\label{item:mfp-nonlast}
 % If $\CSIndex{ifpcol at lastpage}=\false$, each of $\cc_c(\vb^b)$ has ship-out
-% image even if some or all of them are empty.  It is unecessary to be aware
+% image even if some or all of them are empty.  It is unnecessary to be aware
 % of the perfectly empty case because it should mean the page $\ptop$ is
 % made blank intentionally.
 % 
@@ -14015,7 +14021,7 @@
 % $\pp^f(\ptop)=\bot$ or it has \Mgfnote{}s, \!\@outputbox! must have only
 % $\pp^i(\ptop)$\footnote{
 % 
-% \!\pcol at rightpage! must have the couterpart in right \parapag{}e if the
+% \!\pcol at rightpage! must have the counterpart in right \parapag{}e if the
 % \spanning{} is \preenv, while it is made $\bot$ by \!\pcol at output@end! if
 % the \spanning{} are \pwise{} floats.}.
 % 
@@ -14053,7 +14059,7 @@
 % \lpage{} full size if we are working on it as discussed in\Tie
 % (\ref{item:mfp-last-dfloats}), we put $\pp^i(\ptop)$ in \!\@outputbox!,
 % and paint its \bground{} by \!\pcol at bg@paintbox!  \!\edef!ining the height
-% paramenter \!\pcol at bg@floatheight! with $h$ being the height-plus-depth of
+% parameter \!\pcol at bg@floatheight! with $h$ being the height-plus-depth of
 % $\pp^i(\ptop)$ with the following two exceptions; one is the case of
 % $\CSIndex{ifpcol at firstpage}={\true}$ to mean we are in \spage{} and thus
 % the \spanning{} is \preenv{} having already been painted by
@@ -14253,7 +14259,7 @@
 % \changes{v1.3-2}{2013/09/17}
 %	{Introduced for parallel-paging.}
 % \changes{v1.3-3}{2013/09/17}
-%	{Implement column-separating rule and background paiting of
+%	{Implement column-separating rule and background painting of
 %	 columns, column-separating gaps, spanning texts and page-wise
 %	 footnotes.}
 % \changes{v1.3-4}{2013/09/17}
@@ -14274,12 +14280,12 @@
 % counterpart, by \!\pcol at bg@paintbox! \!\def!ining the parameter
 % \!\pcol at bg@footnoteheight!  with the height-plus-depth of $\pp^f(\ptop)$,
 % as the very first element of the ship-out image as done in
-% \!\pcol at ioutputelt!, unless $\ptop$ is the truely \lpage{} for which the
+% \!\pcol at ioutputelt!, unless $\ptop$ is the truly \lpage{} for which the
 % \bgpaint{} is done in \!\pcol at output@end!.  Then we put \spanning{} in $b$
 % itself if any.
 % 
 % Next, we invoke \!\pcol at buildcolseprule! for \cseprule{} drawing and
-% \bgpaint{} giving it $H$ in \!\@colht! possibly shurnk from $\pp^h(\ptop)$
+% \bgpaint{} giving it $H$ in \!\@colht! possibly shrunk from $\pp^h(\ptop)$
 % by \Scfnote{}s, $\LBRP\Cfrom\Cto$ for the set of columns to be put, and
 % \!\@maxdepth! for non-\lpage{}s to paint the \bground{}s of columns and
 % \csepgap{}s so that those of the last segment reach the page bottom, while
@@ -14328,7 +14334,7 @@
 % \Scfnote{}s.  Also it is not \cs{@makecol} because we need to ensure the
 % depth of resulting \cs{@outputbox} is capped.},
 % 
-% to have the ship-out image of the \colpage{} in \!\@outputbox!, possibily
+% to have the ship-out image of the \colpage{} in \!\@outputbox!, possibly
 % only for the deferred floats in $\cc_c(\tl)$ but without \!\topfigrule! in
 % this case.  Note that we don't take care of the stretch\slash shrink of
 % \!\skip!\!\footins!  for \Scfnote{}s because \pfcheck{} on the \colpage{}
@@ -14371,7 +14377,7 @@
 %	 \cs{@maxdepth}, by the latter.}
 % \changes{v1.3-6}{2013/09/17}
 %	{Remove the examination of $\kappa_c(\lambda_d)$ for
-%	 \cs{if at fcolmade} because it is made unnecesary now by
+%	 \cs{if at fcolmade} because it is made unnecessary now by
 %	 \cs{ifpcol at dfloats}.}
 % \changes{v1.32-2}{2015/10/10}
 % 	{Add \cs{pcol at Fb}/\cs{pcol at Fe} pair(s).}
@@ -14422,7 +14428,7 @@
 % \changes{v1.3-2}{2013/09/17}
 %	{Introduced for parallel-paging.}
 % \changes{v1.3-3}{2013/09/17}
-%	{Implement column-separating rule and background paiting of
+%	{Implement column-separating rule and background painting of
 %	 columns and column-separating gaps}
 % \changes{v1.3-4}{2013/09/17}
 %	{Implement variable-width column-separating gaps.}
@@ -14530,7 +14536,7 @@
 % modified by \!\pcol at opcol! if we make \fcolumn{}s afterward.  Then we invoke
 % \!\pcol at getcurrpage! to have the \pctext{} of $p=0$, because it might be
 % modified by a column $c'<c$ by producing \fcolumn{}s.  After that and the
-% invocation of \!\pcol at floatplacement! for setting float parametners, we
+% invocation of \!\pcol at floatplacement! for setting float parameters, we
 % invoke \!\pcol at startcolumn! for $c$'s \colpage{} at $p=0$, and iterate
 % \!\pcol at opcol! and \!\pcol at startcolumn! while a \fcolumn{} is made by the
 % latter\footnote{
@@ -14597,7 +14603,7 @@
 %	{Add background painting of page-wise footnotes and setting
 %	 of \cs{pcol at preposttop}.}
 % \changes{v1.3-4}{2013/09/17}
-%	{Add opeartios to pass $\string\cal{M}$ to the next
+%	{Add operations to pass $\string\cal{M}$ to the next
 %	 \string\texttt{paracol} environment and \cs{@mparbottom} to post
 %	 environment typesetting.}
 % 
@@ -14651,9 +14657,9 @@
 % \lpage{} in {\em full size} in \!\@outputbox! unless the page has nothing
 % perfectly.  Therefore, we ship the image out by \!\@outputbox! unless it
 % is $\bot$ for perfectly empty case.  Then we invoke \!\pcol at flushfloats!
-% to produce and ship out \fpage{}s, lettinng $\CSIndex{if at fcolmade}={\true}$
+% to produce and ship out \fpage{}s, letting $\CSIndex{if at fcolmade}={\true}$
 % to tell the macro that at least we will have one \fpage{}.  Now we have
-% shipped out everyting in the closing environment and thus we let
+% shipped out everything in the closing environment and thus we let
 % $\CSIndex{ifpcol at output}=\false$ to tell \!\output! routine to work
 % ordinarily.  Then we let $\CSIndex{if at tempswa}=f_{\it sp}=\true$ to
 % remember we will start a new page and thus $\!\@pagedp!=\pd=\DP=1000$ to
@@ -14716,7 +14722,7 @@
 % 
 % In this case, the setting of \!\@mparbottom! and $\mpbout$ done at the
 % beginning of this macro is correct because they describe the marginal
-% notes in \preenv{} including \env{paracol} enviroments preceeding it even
+% notes in \preenv{} including \env{paracol} environments preceding it even
 % if any.
 % 
 % \changes{v1.3-3}{2013/09/17}
@@ -14785,7 +14791,7 @@
 % footnotes whose total height-plus-depth is in the macro, we paint their
 % \bground{} by \!\pcol at bg@paintbox! \!\def!ining \!\pcol at bg@footnoteheight!
 % with the size and temporarily re\!\def!ining \!\pcol at bg@textheight! to be
-% the height-plus-depth of \!\@outputbox!  because the foontnotes are at the
+% the height-plus-depth of \!\@outputbox!  because the footnotes are at the
 % bottom of the box instead of the page.  Note that the order of painting is
 % right first and then left second if we have \parapag{}es because we refer
 % the height-plus-depth of \!\@outputbox! being put into the main vertical
@@ -14844,7 +14850,7 @@
   \ifvoid\pcol at topfnotes\else \insert\footins{\unvbox\pcol at topfnotes}\fi
 %    \end{macrocode}
 % 
-% The following operationss are for clean-up and set-up for the \postenv;
+% The following operations are for clean-up and set-up for the \postenv;
 % for all c, return $\cc_c(\vb)$ obtained by \!\pcol at getcurrcol! and
 % $\Celt^c\neq\bot$ letting it $\bot$ to \!\@freelist!; reestablish the
 % \colorstack{} by \!\pcol at restorecolorstack! for column-0\footnote{
@@ -14851,7 +14857,7 @@
 % 
 % It can be any other column.}
 % 
-% so that the \colorstack{} is just $\cst$ and is rewinded at \Endparacol,
+% so that the \colorstack{} is just $\cst$ and is rewound at \Endparacol,
 % and let $\cst=\bot$; reload $\cc_d$ for $d=\!\pcol at lastcol!$ being the
 % column in which \Endparacol{} occurs to let $\!\everypar!=\cc_d(\ep)$ and
 % to let \CSIndex{if at nobreak} and \CSIndex{if at afterindent} have the value
@@ -14966,7 +14972,7 @@
 % to have, for example, the value saved in $\cc_c(\pd)$ when we left from
 % $c$ which we are now restarting.
 % 
-% In addition to above, after the invocatoin of \!\output!-routine, we let
+% In addition to above, after the invocation of \!\output!-routine, we let
 % $\!\linewidth!=\w_c-\lrm$ so that the register is shrunk from $\w_c$ by the
 % total width of left and right margins of the \env{list}-like environment
 % surrounding \env{paracol} if $\lrm=\!\pcol at lrmargin!>0$ to mean that.
@@ -15022,7 +15028,7 @@
 %	{Make API commands environment-local and inhibit nesting of
 %	 \texttt{paracol}.} 
 % \changes{v1.3-2}{2013/09/17}
-%	{Modify to add the optinal argument $C_L$ and optional
+%	{Modify to add the optional argument $C_L$ and optional
 %	 `\string\texttt{*}' for parallel-paging.}
 % \begin{macro}{\pcol at xparacol}
 % \changes{v1.3-2}{2013/09/17}
@@ -15031,22 +15037,22 @@
 % \begin{macro}{\pcol at yparacol}
 % \changes{v1.3-2}{2013/09/17}
 %	{Introduced to process the optional `\string\texttt{*}' given with
-%	 the optioal argument $C_L$ of \cs{paracol}.}
+%	 the optional argument $C_L$ of \cs{paracol}.}
 % \begin{macro}{\pcol at zparacol}
 % \changes{v1.3-2}{2013/09/17}
-%	{Introduced to add the optinal argument $C_L$ and optional
+%	{Introduced to add the optional argument $C_L$ and optional
 %	 `\string\texttt{*}' to \cs{paracol} for parallel-paging and to do
 %	 what had done by \cs{paracol}.}
 % 
 % The API macro $\!\paracol!|[|\CL|][*]|\Arg{\C}$\oarg{text} is invoked by
 % \beginparacol{} to start a \Midx{\env{paracol}} environment.  The macro
-% sipmly examines the existence of the optional argument $\CL$, whose
+% simply examines the existence of the optional argument $\CL$, whose
 % default value $\C$ is given by \!\pcol at xparacol!, to decide the
 % number of columns in left \parapag{}es.  Then if the optional argument is
 % given, \!\pcol at yparacol! examines the existence of `|*|' following it for
 % \npaired{} \parapag{}ing to let $\CSIndex{ifpcol at paired}=\false$, while
 % \!\paracol! gave the default $\true$ for \paired{} one to the switch.
-% Then the all other operations to start the environment is doen by
+% Then the all other operations to start the environment is done by
 % \!\pcol at zparacol!.
 % 
 %    \begin{macrocode}
@@ -15236,12 +15242,12 @@
 % We also make the macro \!\@combinefloats! \!\let!-equal to our own
 % \!\pcol at combinefloats!  throughout the environment, after saving its
 % original definition into \Midx{\!\pcol@@combinefloats!} for processing
-% \!\output! request sneaked from outsied of environment, so that our
+% \!\output! request sneaked from outside of environment, so that our
 % customization is in effect for any invocations including those from
 % \LaTeX's own macros.  Similarly, \!\@addmarginpar! is made \!\let!-equal
-% to our own \!\pcol at addmarginpar!  while its orginal definition is saved
+% to our own \!\pcol at addmarginpar!  while its original definition is saved
 % into \!\pcol@@addmarginpar! but in this case we need the original for the
-% implementaion of our own.  On the other hand, \!\end at dblfloat! is simply
+% implementation of our own.  On the other hand, \!\end at dblfloat! is simply
 % replaced with our own \!\pcol at end@dblfloat! being what \LaTeX{} had had until
 % 2014 as discussed in item-(\ref{item:ovv-float-end at dblfloat}) of
 % \secref{sec:imp-ovv-float}.
@@ -15296,11 +15302,11 @@
 % 
 % If the coloring is enabled, on the other hand, we redefine \LaTeX's
 % \!\set at color!  so that it works as \!\pcol at set@color at push!  with
-% \colorstack.  We also prepare the text colring mechanism to let
+% \colorstack.  We also prepare the text coloring mechanism to let
 % $\CSIndex{ifpcol at inner}=\true$ in every \!\vbox! in the \env{paracol}
 % environment as follows.  First, we let $\CSIndex{ifpcol at inner}=\false$
 % because we are not in any \!\vbox!es obviously.  Then, to use
-% \!\everyvbox! for our own pupose, we do the followings; (1) \!\global!ly
+% \!\everyvbox! for our own purpose, we do the followings; (1) \!\global!ly
 % assign a token \Midx{\!\pcol at dummytoken!}, which should never occurs, to
 % \!\pcol at everyvbox!; (2) save \!\everyvbox!  into \!\pcol at everyvbox!
 % locally; (3) let \!\everyvbox! have a \!\the!-reference to
@@ -15316,7 +15322,7 @@
 % to it are simulated by \!\pcol at everyvbox!.  Then the initial tokens given
 % to \!\pcol at everyvbox!  by the saving operation (2) or tokens given inside
 % the environment are correctly processed whenever a \!\vbox! is opened,
-% toghether with |\pcol at innertrue| to fulfill our own purpose, because the
+% together with |\pcol at innertrue| to fulfill our own purpose, because the
 % real \!\everyvbox! is let have a \!\the!-reference to \!\pcol at everyvbox!
 % by (3).  We also reserve the invocation of \!\pcol at restoreeveryvbox! by
 % \!\aftergroup! so that the macro is invoked just after \Endparacol{} to
@@ -15328,7 +15334,7 @@
 % 
 % Then we continue the case having some coloring package to make \bgpaint{}
 % macros \!\pcol at bg@paintpage!, \!\pcol at bg@paintbox! and
-% \!\pcol at bg@paintcolumns! activated by making them \!\let!-equal to thier
+% \!\pcol at bg@paintcolumns! activated by making them \!\let!-equal to their
 % |@@| counterparts namely \!\pcol at bg@@paintpage!, \!\pcol at bg@@paintbox! and
 % \!\pcol at bg@@paintcolumns! which implement \bgpaint{}.
 % 
@@ -15377,6 +15383,8 @@
 % 	{Add initialization of \cs{pcol at footnotebase} and
 %	 \cs{pcol at nfootnotes}, and redefinitions of \cs{footnote},
 %	 \cs{footnotemark}, \cs{footnotetext} and \cs{@footnotetext}.}
+% \changes{v1.36-3}{2024/10/23}
+% 	{Check for \cs{@footnotetext} being renamed to \cs{H@@footnotetext}.}
 % 
 % The sixth settings are for (mainly \mcfnote) footnotes.  We initialize two
 % footnote-related count registers letting $\bf=\!\pcol at footnotebase!$ have
@@ -15388,10 +15396,12 @@
 % typesetting is in effect, is \!\footnoterule!  which lets
 % $\!\columnwidth!=\!\textwidth!$ before invoking its original version saved
 % in \!\pcol at footnoterule! so that it acts as in single-columned typesetting
-% rateher than multi-columned.  Then we redefine \LaTeX's internal macro
-% \!\@footnotetext! letting it be our own \!\pcol at fntext! for encapsulating
-% a footnote in a \!\vbox! and for deferred \!\insert!ion with \Scfnote{}
-% typesetting.
+% rather than multi-columned.  Then we redefine \LaTeX's internal macro
+% \!\@footnotetext!\footnote{
+%   This is called \!\H@@footnotetext! if \textsf{hyperref} (with option
+%   \texttt{hyperfootnote}) is loaded.}
+% letting it be our own \!\pcol at fntext! for encapsulating a footnote in a
+% \!\vbox! and for deferred \!\insert!ion with \Scfnote{} typesetting.
 % 
 %    \begin{macrocode}
   \pcol at footnotebase\c at footnote \global\pcol at nfootnotes\z@
@@ -15401,7 +15411,11 @@
   \ifpcol at scfnote
     \def\footnoterule{{\columnwidth\textwidth \pcol at footnoterule}}%
   \fi
-  \let\@footnotetext\pcol at fntext
+  \@ifundefined{H@@footnotetext}{%
+    \let\@footnotetext\pcol at fntext
+  }{%
+    \let\H@@footnotetext\pcol at fntext
+  }
 %    \end{macrocode}
 % 
 % Seventh, we let \!\marginpar!, \!\@mn@@marginnote! and \!\@xympar! be our
@@ -15409,19 +15423,22 @@
 % respectively for the emulation of \!\marginnote!, saving the original
 % version of the first and third into \!\pcol@@marginpar! and
 % \!\pcol@@xympar!.  Then we inactivate API macros \!\twosided! and
-% \!\footnotelayout!  together with their backward-compatible macros
+% \!\footnoteplacement! together with their backward-compatible macros
 % \!\swapcolumninevenpages!, \!\noswapcolumnineven~pages!,
-% \!\multi~columnfootnotes!, \!\singlecolumnfootnotes! and
+% \!\footnotelayout!, \!\multicolumnfootnotes!, \!\singlecolumnfootnotes! and
 % \!\mergedfootnotes!, so that they commonly invoke \!\pcol at ignore! because
 % their inherent operations turning corresponding switches are harmful in
 % \env{paracol} environment.  Note that the inactivation of \!\twosided! is
 % done by redefinition of \!\pcol at twosided! because we need optional
-% argument processing by \!\twosided! even when it is inactivated.
+% argument processing by \!\twosided! even when it is inactivated. Further
+% note, that since \textsf{footmisc} defines its own version of
+% \!\footnotelayout!, we must only redefine \!\footnotelayout! if it is what we
+% expect, i.e. an alias to \!\footnoteplacement!.
 % 
 % \changes{v1.2-4}{2013/05/11}
-%	{Add nullificaion of \cs{[no]swapcolumninevenpages}.}
+%	{Add nullification of \cs{[no]swapcolumninevenpages}.}
 % \changes{v1.2-2}{2013/05/11}
-%	{Add nullificaton of API macros of footnote typesetting definition.}
+%	{Add nullification of API macros of footnote typesetting definition.}
 % \changes{v1.3-3}{2013/09/17}
 %	{Add new API inactivation for \cs{pcol at twosided}.}
 % \changes{v1.3-4}{2013/09/17}
@@ -15431,6 +15448,9 @@
 % \changes{v1.35-3}{2018/12/31}
 % 	{Add local modifications of \cs{marginpar}, \cs{@mn@@marginnote} and
 %	 \cs{@xympar} for the emulation of \cs{marginnote}.}
+% \changes{v1.36-2}{2024/10/22}
+%	{Add new API inactivation for \cs{footnoteplacement} and a check before
+%	deactivating \cs{footnotelayout}.}
 % 
 %    \begin{macrocode}
   \let\pcol@@marginpar\marginpar \let\marginpar\pcol at marginpar
@@ -15439,18 +15459,21 @@
   \def\pcol at twosided[#1]{\pcol at ignore\twosided}%
   \def\swapcolumninevenpages{\pcol at ignore\swapcolumninevenpages}%
   \def\noswapcolumninevenpages{\pcol at ignore\noswapcolumninevenpages}%
-  \def\footnotelayout#1{\pcol at ignore\footnotelayout}%
+  \def\footnoteplacement#1{\pcol at ignore\footnoteplacement}%
+  \ifx\footnotelayout\footnoteplacement
+    \def\footnotelayout#1{\pcol at ignore\footnotelayout}%
+  \fi
   \def\multicolumnfootnotes{\pcol at ignore\multicolumnfootnotes}%
   \def\singlecolumnfootnotes{\pcol at ignore\singlecolumnfootnotes}%
   \def\mergedfootnotes{\pcol at ignore\mergedfootnotes}%
 %    \end{macrocode}
 % 
-% Eigth, we scan the list \!\pcol at localcommands! of $\arg{com}$ being the
+% Eighth, we scan the list \!\pcol at localcommands! of $\arg{com}$ being the
 % name of commands, e.g., |switchcolumn|, available only in the environment
 % or customized for the environment, applying \!\pcol at defcomelt! to each
 % $\arg{com}$ to let $|\|\arg{com}=|\pcol at com@|{\cdot}\arg{com}$
 % 
-% \SpecialArrayMainIndex{\<\string\mathit{com}\>}{\pcol at com@}
+% \SpecialArrayMainIndex{\string\arg{com}}{\pcol at com@}
 % 
 % the latter of which is the real implementation of the former.  Note that
 % the list does not have all \elocal{} API commands but we omit
@@ -15459,8 +15482,8 @@
 % invocation.  Therefore, we \!\def!ine \!\column!(|*|) to have
 % \!\pcol at com@column!(|*|) in their bodies\footnote{
 % 
-% We can do this for other commands instead of adhearing to \cs{let} to
-% eliminate the execption, but the author loves to use \cs{let} as much as
+% We can do this for other commands instead of adhering to \cs{let} to
+% eliminate the exception, but the author loves to use \cs{let} as much as
 % possible.}.
 % 
 % We also give the first \!\def!initions of
@@ -15533,7 +15556,7 @@
 % 
 % The API macro \!\thecolumn! gives the value of \!\pcol at currcol! to users
 % to let them know which column they are working in so that, for example,
-% they do some column-dependent opreations.
+% they do some column-dependent operations.
 % 
 %    \begin{macrocode}
 \def\thecolumn{\number\pcol at currcol}
@@ -15543,9 +15566,9 @@
 % 

 % \begin{macro}{\pcol at ignore}
 % \changes{v1.2-4}{2013/05/11}
-%	{Introduced for nullificaion of \cs{[no]swapcolumninevenpages}.}
+%	{Introduced for nullification of \cs{[no]swapcolumninevenpages}.}
 % \changes{v1.2-2}{2013/05/11}
-%	{Introduced for nullificaton of API macros of footnote typesetting
+%	{Introduced for nullification of API macros of footnote typesetting
 %	 definition.}
 % 
 % The macro \!\pcol at ignore!$\arg{macro}$ is to complain that the
@@ -15556,6 +15579,7 @@
 % \!\twosided!,
 % \!\swapcolumninevenpages!,
 % \!\noswapcolumninevenpages!,
+% \!\footnoteplacement!,
 % \!\footnotelayout!,
 % \!\multicolumnfootnotes!,
 % \!\singlecolumnfootnotes!,
@@ -15627,7 +15651,7 @@
 % API command $|\|\arg{com}$ and its implementation
 % $|\pcol at com@|{\cdot}\arg{com}$.
 % 
-% \SpecialArrayIndex{\<\string\mathit{com}\>}{\pcol at com@}
+% \SpecialArrayIndex{\string\arg{com}}{\pcol at com@}
 % 
 %    \begin{macrocode}
 \def\pcol at defcomelt#1{%
@@ -15678,7 +15702,7 @@
 % \section{Column Width Setting}
 % \label{sec:imp-cwidth}
 % \changes{v1.3-4}{2013/09/17}
-%	{Add the secion ``Column Width Setting'' mainly to discuss the new
+%	{Add the section ``Column Width Setting'' mainly to discuss the new
 %	 API \cs{setcolumnwidth}.}
 % 
 % \begin{macro}{\columnratio}
@@ -15715,7 +15739,7 @@
 % \!\pcol at columnratioleft! and \!\pcol at columnratioright! are initialized to
 % be empty so that all columns have same width and are separated by
 % \!\columnsep! as default.  Note that \!\pcol at columnratioleft! can be made
-% \!\let!-equial to \!\relax! by the related API macro \!\setcolumnwidth! so
+% \!\let!-equal to \!\relax! by the related API macro \!\setcolumnwidth! so
 % that \!\pcol at setcolumnwidth! knows which of specifications given by two
 % API macros is effective and chooses \!\pcol at setcolwidth@r! or
 % \!\pcol at setcolwidth@s!.
@@ -15818,7 +15842,7 @@
 % 	{Introduced to calculate $w_c$.}
 % \changes{v1.3-4}{2013/09/17}
 %	{Renamed from \cs{pcol at setcolumnwidth} to make it clear what the
-%	 marco works for.}
+%	 macro works for.}
 % \changes{v1.3-2}{2013/09/17}
 %	{Add arguments $C^0$, $C^1$, $\langle\string\mathit{ratio}\rangle$
 %	 and $\langle\string\mathit{spec}\rangle$ for columns in right
@@ -15922,8 +15946,8 @@
 % 
 % Each specification $s_d$ for $\w_c$ and $\gap_c$ where $c=\Cfrom+d$ has
 % the form $|[|w'_d|][/[|g'_d|]]|$ to specify the natural width $w^n_d$ and
-% $g^n_d$ and inifite stretch factor $w^f_d$ and $g^f_d$ of column\slash gap
-% sepcfication as follows;
+% $g^n_d$ and infinite stretch factor $w^f_d$ and $g^f_d$ of column\slash gap
+% specification as follows;
 % 
 % \begin{eqnarray*}
 % w^n_d&=&\cases{0&$w'_d=\emptyset$\cr
@@ -15942,8 +15966,8 @@
 % 
 % where $\mathit{natural}(x)$ is the natural width of the skip $x$ and
 % $\mathit{stretch}(x)$ is the infinite stretch factor of $x$.  Note that
-% any finite stretch factors or any shirnk factors do not affect them, and
-% infinite strech units |fil|, |fill| and |filll| are not distinguished.
+% any finite stretch factors or any shrink factors do not affect them, and
+% infinite stretch units |fil|, |fill| and |filll| are not distinguished.
 % From factors above, we determine $w_c$ and $\gap_c$ as follows;
 % 
 % \begin{eqnarray*}
@@ -16043,7 +16067,7 @@
 % $w_d^f$, $g_d^n$ and $g_d^f$, and to process width factors by
 % \!\pcol at setcw@c! and gap factors by \!\pcol at setcw@s!.  Since the macro is
 % invoked with arguments in the form of $s_d|//|\!\@nil!$, if $s_d$ has
-% `|/|' in it $w'_d$ and $g'_d$ should have everything preceeding and
+% `|/|' in it $w'_d$ and $g'_d$ should have everything preceding and
 % following the `|/|' respectively while $\arg{garbage}$ should have the
 % redundant `|/|'.   Otherwise, i.e., if $s_d$ does not have `|/|',
 % $w'_d=s_d$ and $g'_d=\emptyset$ while $\arg{garbage}=\emptyset$\footnote{
@@ -16051,7 +16075,7 @@
 % If $s_d$ have two or more `|/|', everything following the second one is
 % thrown away into $\arg{garbage}$ together with `|//|'.  Therefore we could
 % check if $s_d$ has at most one `|/|' by examining $\arg{garbage}$ but we
-% abandon it simply ingoring $\arg{garbage}$.}.
+% abandon it simply ignoring $\arg{garbage}$.}.
 % 
 % Therefore, we invoke $\!\pcol at setcw@getspec at i!\arg{default}\Arg{x'_d}$ twice
 % with $(\arg{default},x'_d)=(\!\fill!,w'_d)$ for a column and
@@ -16065,7 +16089,7 @@
 % space tokens in them.}.
 % 
 % Then if $x'_d$ after the space removal has nothing, we let
-% $x'_d=\arg{default}$.  Next we examine if $x'_d=f\!\fill!$ in a trickey
+% $x'_d=\arg{default}$.  Next we examine if $x'_d=f\!\fill!$ in a tricky
 % way by temporarily \!\let!ting $\!\@gtempa!=\!\relax!$, defining \!\fill!
 % as ``|1pt|\!\gdef!\!\@gtempa!|{}|'' and making an assignment
 % ``\!\@tempskipa!  $x'_d$''.  That is, if $x'_d=f\!\fill!$, \!\@tempskipa!
@@ -16081,13 +16105,13 @@
 % if $f=\emptyset$.
 % 
 % Now \!\@tempskipa! has $x_d^n$ as its natural component and may have some
-% infinite strectch component $x_d^f$ specified explicitly or with \!\fill!.
+% infinite stretch component $x_d^f$ specified explicitly or with \!\fill!.
 % Therefore, we assign \!\@tempskipa! to \!\@tempdima! so that it has
 % $x_d^n$, and then, after adding 0\,|pt| |plus| 1000\,|pt| |minus|
-% 1000\,|pt| to \!\@tempskipa! to make it sure it has both strech and shrink
+% 1000\,|pt| to \!\@tempskipa! to make it sure it has both stretch and shrink
 % components\footnote{
 % 
-% Almost sure becaues they could be $-1000$\,pt, but we ignore the
+% Almost sure because they could be $-1000$\,pt, but we ignore the
 % possibility.}
 % 
 % keeping infinite stretch factor if any, invoke \!\pcol at extract@fil! giving
@@ -16127,7 +16151,7 @@
 % and \!\pcol at setcw@s! commonly and thus invoked from \!\pcol at setcw@getspec!
 % with setting $\!\@tempdima!=x_d^n$ and $\!\@tempdimb!=x_d^f\times1\,|pt|$,
 % where $x\in\{w,g\}$.  The macro simply add them to \!\dimen@! and
-% \!\dimen at ii! repsectively to accumurate $x_d^n$ and $x_d^f$ in them.
+% \!\dimen at ii! respectively to accumulate $x_d^n$ and $x_d^f$ in them.
 % 
 %    \begin{macrocode}
 \def\pcol at setcw@accumwd{\advance\dimen@\@tempdima \advance\dimen at ii\@tempdimb}
@@ -16167,12 +16191,12 @@
 % 

 % \begin{macro}{\pcol at setcw@calcfactors}
 % \changes{v1.3-4}{2013/09/17}
-%	{Introduced to caclulate scaling and stretch factors from
+%	{Introduced to calculate scaling and stretch factors from
 %	 the argument $\langle\string\mathit{spec}\rangle$ of
 %	 \cs{pcol at setcolwidth@s}.} 
 % \begin{macro}{\pcol at setcw@calcf}
 % \changes{v1.3-4}{2013/09/17}
-%	{Introduced to caclulate scaling or stretch factor from
+%	{Introduced to calculate scaling or stretch factor from
 %	 the argument $\langle\string\mathit{spec}\rangle$ of
 %	 \cs{pcol at setcolwidth@s}.} 
 % \changes{v1.31}{2013/10/10}
@@ -16201,7 +16225,7 @@
 % Otherwise, we keep the provisional result of $\phi_s$ as the final one and
 % let $\phi_f=\!\dimen at ii!=0$.
 % 
-% The macro $\!\pcol at setcw@calcf!\<x\>\<y\>\<z\>$ caclulates $z\approx x/y$
+% The macro $\!\pcol at setcw@calcf!\<x\>\<y\>\<z\>$ calculates $z\approx x/y$
 % and let $\!\@tempdimb!=Z=z\times1\,|pt|$ as follows.  First we find the
 % following three parameters.
 % 
@@ -16220,10 +16244,10 @@
 % calculate $Z=(z'/2^k)\cdot2^{16}=z'\cdot2^{16-k}$ to have it in
 % \!\@tempdimb! by $Z=z'\times2^{16-k}$ if $k<16$, or by $Z=z'/2^{k-16}$
 % otherwise.  Finally we invoke \!\pcol at extract@pt! giving it
-% \!\the!-representaion of $Z$ to have $z$.
+% \!\the!-representation of $Z$ to have $z$.
 % 
 % Note that it is assured $z\leq x/y$ regardless of successfulness of the
-% calculation and thus the scaling $\phi_s x_d^n$ and strething
+% calculation and thus the scaling $\phi_s x_d^n$ and stretching
 % $x_d^n+\phi_f x_d^f$ cannot exceed their exact value to make it also sure
 % that $\sum_{c=\Cfrom}^{\Cto-2}(\w_c+\gap_c)+\w_{\Cto-1}\leq\WT$ and thus
 % the series of columns and \csepgap{}s should not cause overfull when a
@@ -16304,7 +16328,7 @@
 % body respectively but with $\!\catcode!=12$ (other) which is used in
 % \!\the!-representation of glues.  For the definition, we invoke
 % \!\pcol at defkw! giving it \!\the!-representation of \!\@tempskipa! letting
-% it have $1\,|pt|\ |plus|\ 1\,|fil|\ |minus|\ 1\,|fil|$ having all keywards
+% it have $1\,|pt|\ |plus|\ 1\,|fil|\ |minus|\ 1\,|fil|$ having all keywords
 % we need to have\footnote{
 % 
 % We can do what \!\pcol at defkw! does by temporarily giving $\!\catcode!=12$
@@ -16356,7 +16380,7 @@
 % 	 stretch factor in a skip.} 
 % 
 % The macro
-% $\!\pcol at extract@fil!\<\mathit{garbge}_1\>\verb*| plus |\<s\>\verb*| minus|
+% $\!\pcol at extract@fil!\<\mathit{garbage}_1\>\verb*| plus |\<s\>\verb*| minus|
 % \<\mathit{garbage}_2\>\!\@nil!$ is used solely in \!\pcol at setcw@getspec at i!
 % to extract the infinite stretch factor $f$ in the stretch component $s$ of
 % a column\slash gap specification $x'_d$ and to let
@@ -16376,7 +16400,7 @@
 % just once at the top level.  Then since $s$ should have the form
 % $\<n\>|.|\<m\>\arg{unit}$ where $n$ and $m$ are decimal digit sequences and
 % $\arg{unit}\in\{|pt|,|fil|,|fill|,|filll|\}$, we examine if
-% $\arg{unit}=|pt|$ or not by a trickey way in
+% $\arg{unit}=|pt|$ or not by a tricky way in
 % $\!\pcol at extract@fil at i!\<n\>|.|\<m{\cdot}\mathit{unit}\>\!\@nil!$.  That
 % is, we do $\!\count@!\<m{\cdot}\mathit{unit}\>\!\@nil!$ with
 % \!\afterassignment! to invoke $\!\pcol at extract@fil at ii!\arg{unit}\!\@nil!$
@@ -16423,7 +16447,7 @@
 % \begin{macro}{\pcol at extract@pt}
 % \changes{v1.3-4}{2013/09/17}
 %	{Introduced to extract the factor of \string\texttt{pt} from the
-%	 \cs{the} representaion of a dimension.}
+%	 \cs{the} representation of a dimension.}
 % 
 % The macro $\!\pcol at extract@pt!\<f\>|pt|\<scale\>$ is solely used in
 % \!\pcol at setcw@calcf! to extract $f$ from a dimension in the form of
@@ -16453,7 +16477,7 @@
 % \begin{macro}{\globalcounter}
 % \changes{v1.2-7}{2013/05/11}
 % 	{Examine if the argument counter is already in
-%	 $\string\mathit{\Theta}^g$ to avoid the duplicatoin in the list
+%	 $\string\mathit{\Theta}^g$ to avoid the duplication in the list
 %	 which caused a bug.}
 % \changes{v1.32-1}{2015/10/10}
 % 	{Modified according to the introduction of \cs{globalcounter*}.}
@@ -16598,19 +16622,23 @@
 % \begin{macro}{\pcol at thectrelt}
 % The macro $\!\pcol at thectrelt!\<\cl\>$ is invoked solely in \!\pcol at zparacol!
 % and is applied to each $\cl\in\CTL$ to define its \lrep{} of
-% default and that of the leftmost column 0.  It performs a lengthy sequence
-% with many occurrences of \!\expandafter!, \!\csname! and \!\endcsname! but
-% the sequence is equivalent to the followings.
+% default and that of the leftmost column 0. To give unique representations
+% |\theH|${\cdot}\cl$ used by \textsf{hyperref}, it prepends the current column
+% number as \Midx{\!\pcol at thecurrcol!} to them. The macro performs a lengthy
+% sequence with many occurrences of \!\expandafter!, \!\csname! and
+% \!\endcsname! but the sequence is equivalent to the following.
 % 
 % \begin{quote}
 % $\!\let!|\pcol at thectr@|{\cdot}\cl|=\the|{\cdot}\cl$\\
 % $\CSIndex{ifx}|\pcol at thectr@|{\cdot}\cl{\cdot}0\!\relax!|\else |
 %     \!\let!|\the|{\cdot}\cl|=\pcol at thectr@|{\cdot}\cl{\cdot}0| \fi|$
+% $\!\let!|\theH|{\cdot}\cl|=\pcol at thecurrcol\the|{\cdot}\cl$\\
 % \end{quote}
 % 
 % \SpecialArrayMainIndex{\theta}{\pcol at thectr@}
 % \SpecialArrayIndex{\theta{\cdot}c}{\pcol at thectr@}
 % \SpecialArrayMainIndex{\theta}{\the}
+% \SpecialArrayMainIndex{\theta}{\theH}
 % 
 %    \begin{macrocode}
 \def\pcol at thectrelt#1{%
@@ -16619,7 +16647,15 @@
   \expandafter\let\expandafter\reserved at a\csname pcol at thectr@#10\endcsname
   \ifx\reserved at a\relax\else
     \expandafter\let\csname the#1\endcsname\reserved at a
-  \fi}
+  \fi
+  \@ifundefined{theH#1}{}{%
+    \expandafter\def\csname theH#1\expandafter\expandafter\expandafter\endcsname
+      \expandafter\expandafter\expandafter{%
+      \expandafter\expandafter\expandafter\pcol at thecurrcol\csname theH#1\endcsname
+    }%
+  }%
+}
+\def\pcol at thecurrcol{column\number\pcol at currcol.}
 
 %    \end{macrocode}
 % \end{macro}
@@ -16654,7 +16690,7 @@
 % $\Val(\theta)$ for \csync.  That is, \!\pcol at storecounters! is used to add
 % $\<\cl,v(\cl)\>$ to \!\@gtempa! for all $\cl\in\CTL$ by \!\pcol at sscounters!
 % giving it \!\pcol at storectrelt! as its argument, where $v(\cl)$ is modified
-% if $\cl=\theta$ or unmodifed otherwise after it is defined by
+% if $\cl=\theta$ or unmodified otherwise after it is defined by
 % \!\pcol at loadctrelt!.
 % 
 %    \begin{macrocode}
@@ -16835,8 +16871,8 @@
 %	{Replace \cs{setcounter} with direct assignment with \cs{csname} and
 %	 \cs{endcsname}}
 % 
-% The macro $\!\pcol at setctrelt!\<\cl\>\<\val_c(\cl)\>$ is solely inovked
-% from \!\pcol at switchcol! to swich to a column $c$ and is applied to each
+% The macro $\!\pcol at setctrelt!\<\cl\>\<\val_c(\cl)\>$ is solely invoked
+% from \!\pcol at switchcol! to switch to a column $c$ and is applied to each
 % $\<\cl,\val_c(\cl)\>\in\Cc_c$ to let $\Val(\cl)=\val_c(\cl)$ \!\global!ly.
 % It also define the \lrep{} of $\cl$, being $|\the|{\cdot}\cl$,
 % 
@@ -16971,13 +17007,13 @@
 % or environment of the current \env{paracol} environment.  Then, after
 % calculating $d=(c+1)\bmod\C$, this macro simply invokes
 % $\!\pcol at switchcol!|[|d|]|$ with or without the calculated $d$ depending
-% on the existance of the optional argument delimitor `|[|'.
+% on the existence of the optional argument delimiter `|[|'.
 % 
 % The macro $\!\pcol at switchcolumn!|[|d|]|$ lets $\!\pcol at nextcol!=d$ and
 % confirms $0\leq d<\C$ or abort the execution by \!\PackageError! if it
 % does not hold.  Then it invokes \!\pcol at iswitchcolumn! if
 % $\!\switchcolumn!|[|d|]|$ is followed by a `|*|', or \!\pcol at switchcol!
-% othewise.
+% otherwise.
 % 
 % The macro $\!\pcol at iswitchcolumn!|[|\arg{text}|]|$ invokes
 % $\!\pcol at sptext!|[|\arg{text}|]|$ if the optional argument is provided, or
@@ -17039,7 +17075,7 @@
 % The macro $\!\pcol at sptext!|[|\arg{text}|]|$ is invoked from
 % \!\pcol at zparacol! and \!\pcol at iswitchcolumn! to put a \Uidx\mctext{}
 % $\arg{text}$ given as the optional argument of the former or that of
-% \!\switchcolumn!|*| and its relative envrironment openers for the latter.
+% \!\switchcolumn!|*| and its relative environment openers for the latter.
 % The macro has \!\long!  attribute because the \mctext{} may have
 % \CSIndex{par}.  Since the text is put in the column-0 regardless of its
 % physical position, we let \!\pcol at nextcol!  have 0 after saving the target
@@ -17047,7 +17083,7 @@
 % column by \!\pcol at switchcol!, after turning $\CSIndex{ifpcol at sync}=\true$
 % to set a \sync{}ation point above the text and
 % $\CSIndex{ifpcol at sptextstart}=\true$ to tell \!\pcol at output@switch! to
-% prepare the capture of \mctext{} saveing the \prespan{}.
+% prepare the capture of \mctext{} saving the \prespan{}.
 % 
 % Next, we let $\CSIndex{ifpcol at sptextstart}=\false$ and
 % $\CSIndex{ifpcol at sptext}=\true$ to indicate the main vertical list
@@ -17073,7 +17109,7 @@
 % closing the group, we let $\!\pcol at nextcol!=d$ and
 % $\CSIndex{pcol at sync}=\true$ to set another \sync{}ation point below the
 % \mctext{} and to make the captured text combined with \prespan, and then
-% invoke \!\pcol at switchcol!  to switch the coloumn $d$.
+% invoke \!\pcol at switchcol!  to switch the column $d$.
 % 
 %    \begin{macrocode}
 \long\def\pcol at sptext[#1]{%
@@ -17105,7 +17141,7 @@
 %	{Add \cs{pcol at swapcolumn} for column-swapping to turn
 %	 \cs{if at firstcolumn}.}
 % \changes{v1.3-4}{2013/09/17}
-%	{Remove settig \cs{if at firstcolumn} and the invocation of
+%	{Remove setting \cs{if at firstcolumn} and the invocation of
 %	 \cs{pcol at swapcolumn} for it because the position of marginal notes
 %	 are now controlled by \cs{pcol at addmarginpar}.}
 % \changes{v1.3-5}{2013/09/17}
@@ -17113,7 +17149,9 @@
 %	 \cs{pcol at ensurevspace} for avoidance of post-synchronization
 %	 inconsistent page break.}
 % \changes{v1.35-5}{2018/12/31}
-% 	{Add the invocation of $\cs{pcol at colpream}\cdot c$.}
+% 	{Add the invocation of $\cs{pcol at colpream}\cdot c$.}
+% \changes{v1.36-1}{2024/10/21}
+%	{Add check to not add zeroth preamble in \cs{endparacol}.}
 % 
 % The macro \!\pcol at switchcol! is invoked from \!\pcol at switchcolumn!,
 % \!\pcol at iswitchcolumn!, \!\pcol at sptext! and \!\endparacol! to switch the
@@ -17121,7 +17159,7 @@
 % column $c$ into $\Cc_c$ by \!\pcol at savecounters!.
 %
 % Next, if $\CSIndex{ifpcol at sync}=\true$, we do the followings.  At first we
-% let $\VE={}$\!\pcol@@ensure~vspace! have the natrual component of
+% let $\VE={}$\!\pcol@@ensure~vspace! have the natural component of
 % \!\pcol at ensurevspace! which can have a glue specified by \!\ensurevspace!,
 % so that it is referred to by \!\pcol at sync! as the minimum space required
 % below the \sync{}ation point we are now setting.  Second, we invoke
@@ -17156,7 +17194,8 @@
 % be manipulated without unexpected application of a macro to their
 % elements.
 % 
-% Finally, we invoke $|\pcol at colpream|{\cdot}c$, where $c=-1$ if
+% Finally -- unless we process the implicit \!\pcol at switchol! from
+% \!\endparacol! -- we invoke $|\pcol at colpream|{\cdot}c$, where $c=-1$ if
 % $\CSIndex{ifpcol at sptextstart}=\true$ to mean the \cswitch{} is for a
 % \sptext{}, or $c=d$ otherwise.
 % 
@@ -17181,7 +17220,9 @@
   \let\@elt\pcol at setctrelt
   \csname pcol at counters\number\pcol at currcol\endcsname
   \let\@elt\pcol at aconlyelt \pcol at aconly \let\@elt\relax
-  \@nameuse{pcol at colpream\ifpcol at sptextstart-1\else\number\pcol at currcol\fi}}
+  \@ifundefined{pcol at lastcol}{%
+    \@nameuse{pcol at colpream\ifpcol at sptextstart-1\else\number\pcol at currcol\fi}
+  }{}}
 
 %    \end{macrocode}
 % \end{macro}
@@ -17225,10 +17266,10 @@
 %	{Made \cs{let}-equal to \cs{pcol at com@column*} for localization.}
 % \begin{macro}{\pcol at com@column}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{column}.}
+%	{Introduced as the implementation of \cs{column}.}
 % \begin{macro}{\pcol at com@column*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{column*}.}
+%	{Introduced as the implementation of \cs{column*}.}
 % \begin{macro}{\pcol at defcolumn}
 % \changes{v1.0}{2011/10/10}
 %	{Replace \cs{column} with \cs{pcol at com@column} and \cs{switchcolumn}
@@ -17247,7 +17288,7 @@
 % \!\pcol at com@switchcolumn!  to invoke
 % \!\pcol at switchenv!|{column|(|*|)|}|(|*|) which then invokes
 % \!\switchcolumn!.  Note that the definition of non-starred
-% \!\pcol at com@column! has \!\relax!  after the invocatoin of
+% \!\pcol at com@column! has \!\relax!  after the invocation of
 % \!\pcol at switchenv!  so that \!\@ifnextchar! and \!\@ifstar! to examine the
 % existence of `|[|' and `|*|' definitely tells us no even if the body of the
 % environment starts with a `|[|' or `|*|'.
@@ -17269,11 +17310,11 @@
 %	{Made \cs{let}-equal to \cs{pcol at com@nthcolumn*} for localization.}
 % \begin{macro}{\pcol at com@nthcolumn}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{nthcolumn} with the
+%	{Introduced as the implementation of \cs{nthcolumn} with the
 %	 inhibition of column-switching in the environment.}
 % \begin{macro}{\pcol at com@nthcolumn*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{nthcolumn*} with the
+%	{Introduced as the implementation of \cs{nthcolumn*} with the
 %	 inhibition of column-switching in the environment.}
 % \begin{macro}{\leftcolumn}
 % \changes{v1.0}{2011/10/10}
@@ -17283,11 +17324,11 @@
 %	{Made \cs{let}-equal to \cs{pcol at com@leftcolumn*} for localization.}
 % \begin{macro}{\pcol at com@leftcolumn}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{leftcolumn} with the
+%	{Introduced as the implementation of \cs{leftcolumn} with the
 %	 inhibition of column-switching in the environment.}
 % \begin{macro}{\pcol at com@leftcolumn*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{leftcolumn*} with the
+%	{Introduced as the implementation of \cs{leftcolumn*} with the
 %	 inhibition of column-switching in the environment.}
 % \begin{macro}{\rightcolumn}
 % \changes{v1.0}{2011/10/10}
@@ -17297,11 +17338,11 @@
 %	{Made \cs{let}-equal to \cs{pcol at com@rightcolumn*} for localization.}
 % \begin{macro}{\pcol at com@rightcolumn}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{rightcolumn} with the
+%	{Introduced as the implementation of \cs{rightcolumn} with the
 %	 inhibition of column-switching in the environment.}
 % \begin{macro}{\pcol at com@rightcolumn*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{rightcolumn*} with the
+%	{Introduced as the implementation of \cs{rightcolumn*} with the
 %	 inhibition of column-switching in the environment.}
 % 
 % The macros $\!\pcol at com@nthcolumn!(|*|)\arg{d}$,
@@ -17316,7 +17357,7 @@
 % \Midx{\EnvIndex{rightcolumn}}\Midx{\EnvIndex{rightcolumn*}}
 % 
 % simply invoking \!\pcol at switchenv!$\Arg{env}$\~(|*|), where $\arg{env}$ is
-% the name of each environment, giving it $d$, 0 and 1 repectively as its
+% the name of each environment, giving it $d$, 0 and 1 respectively as its
 % optional argument for the target column.
 % 
 %    \begin{macrocode}
@@ -17336,7 +17377,7 @@
 % \changes{v1.0}{2011/10/10}
 %	{Introduced to inhibit column-switching in the environment.}
 % \changes{v1.31}{2013/10/10}
-%	{Fix the misspell ``swicthing'' in the error message.}
+%	{Fix the misspell ``switching'' in the error message.}
 % 
 % The macro $\!\pcol at switchenv!\arg{env}$ is invoked from
 % $|\pcol at com@|{\cdot}\arg{env}$ where $\arg{env}\in
@@ -17366,12 +17407,12 @@
 %	{Made \cs{let}-equal to \cs{pcol at com@endcolumn*} for localization.}
 % \begin{macro}{\pcol at com@endcolumn}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endcolumn} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endcolumn} with the
+%	 globalization of \cs{everypar}.}
 % \begin{macro}{\pcol at com@endcolumn*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endcolumn*} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endcolumn*} with the
+%	 globalization of \cs{everypar}.}
 % \begin{macro}{\endnthcolumn}
 % \changes{v1.0}{2011/10/10}
 %	{Made \cs{let}-equal to \cs{pcol at com@endnthcolumn} for localization.}
@@ -17381,12 +17422,12 @@
 %	 localization.}
 % \begin{macro}{\pcol at com@endnthcolumn}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endnthcolumn} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endnthcolumn} with the
+%	 globalization of \cs{everypar}.}
 % \begin{macro}{\pcol at com@endnthcolumn*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endnthcolumn*} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endnthcolumn*} with the
+%	 globalization of \cs{everypar}.}
 % \begin{macro}{\endleftcolumn}
 % \changes{v1.0}{2011/10/10}
 %	{Made \cs{let}-equal to \cs{pcol at com@endleftcolumn} for
@@ -17397,12 +17438,12 @@
 %	 localization.}
 % \begin{macro}{\pcol at com@endleftcolumn}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endleftcolumn} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endleftcolumn} with the
+%	 globalization of \cs{everypar}.}
 % \begin{macro}{\pcol at com@endleftcolumn*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endleftcolumn*} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endleftcolumn*} with the
+%	 globalization of \cs{everypar}.}
 % \begin{macro}{\endrightcolumn}
 % \changes{v1.0}{2011/10/10}
 %	{Made \cs{let}-equal to \cs{pcol at com@endrightcolumn} for
@@ -17413,18 +17454,18 @@
 %	 localization.}
 % \begin{macro}{\pcol at com@endrightcolumn}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endrightcolumn} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endrightcolumn} with the
+%	 globalization of \cs{everypar}.}
 % \begin{macro}{\pcol at com@endrightcolumn*}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{endrightcolumn*} with the
-%	 globalizatoin of \cs{everypar}.}
+%	{Introduced as the implementation of \cs{endrightcolumn*} with the
+%	 globalization of \cs{everypar}.}
 % 
 % The macro \!\pcol at com@endcolumn! is the implementation of the \elocal{}
 % API macro \!\endcolumn! to close \env{column} environment.  The macro
 % makes it sure we are in vertical mode by \!\pcol at par! and \!\global!ize
 % \!\everypar! so that it is saved in $\cc_c(\ep)$ of the current column
-% $c$ on the switch to another column.  The macro also gives the commmon
+% $c$ on the switch to another column.  The macro also gives the common
 % definition of \!\pcol at com@endcolumn*!  for \!\endcolumn*!,
 % \!\pcol at com@endnthcolumn!(|*|) for \!\endnthcolumn!(|*|),
 % \!\pcol at com@endleftcolumn!(|*|) for \!\endleftcolumn!(|*|), and
@@ -17453,7 +17494,7 @@
 % 
 % The API macro \!\definecolumnpreamble!\marg{c}\marg{pream} is to define
 % the \colpream{} $\arg{pream}$ for the column $c$ or that for \sptext{}s if
-% $c=-1$.  After assiging $c$ to \!\@tempcnta! to ensure $c$ is a number,
+% $c=-1$.  After assigning $c$ to \!\@tempcnta! to ensure $c$ is a number,
 % the macro $|\pcol at colpream|{\cdot}c$ is |\def|ined to have $\arg{pream}$.
 % 
 % \SpecialArrayMainIndex{c}{\pcol at colpream}
@@ -17594,7 +17635,7 @@
 % \<a_1\>\<a_2\>\<a_3\>\<a_4\>\<a_5\>\<a_6\>|[|\<a_7\>|]|\<a_8\>$ at first
 % disables \!\addcontentsline! by making it \!\let!-equal to
 % \!\pcol at gobblethree!, then invokes the original \!\@sect! saved in
-% \!\pcol at ac@enable at toc! ginving it all arguments $a_1$ to $a_8$, and
+% \!\pcol at ac@enable at toc! giving it all arguments $a_1$ to $a_8$, and
 % finally enables it by making it \!\let!-equal to \!\pcol at addcontentsline!.
 % Note that the argument $a_7$ is surrounded by |{| and |}| on the
 % invocation of \!\@sect! to conceal `|]|' in $a_7$.
@@ -17640,7 +17681,7 @@
 % respectively.  They invoke \!\pcol at ac@caption at enable!$\<t\>$ or
 % $\!\pcol at ac@caption at disable!\<t\>$ according to $\arg{eord}$, and then
 % these macros invoke $\!\pcol at ac@caption at def!\<s\>\<t\>$ where
-% $s=\!\@tempswatrue!$ or $s=\!\@tempswafalse!$ respectievely to let
+% $s=\!\@tempswatrue!$ or $s=\!\@tempswafalse!$ respectively to let
 % $\!\@caption!=\!\pcol at ac@caption!$ and $|\pcol at ac@caption at if@|{\cdot}t=s$
 % which are \!\let!-equal to \!\@tempswatrue! in default.  That is,
 % $|\pcol at ac@catption at if@|{\cdot}t$ lets $\CSIndex{if at tempswa}={}\true$ iff
@@ -17677,7 +17718,7 @@
 % to let \CSIndex{if at tempswa} be $\true$ or $\false$ according to the
 % enable\slash disable status of $t$.  Then, after letting
 % $\!\addcontentsline!=\!\pcol at gobblethree!$ for disabling if $\false$, we
-% invoke \!\pcol at ac@caption at latex!, being the \LaTeX's orignial \!\@caption!,
+% invoke \!\pcol at ac@caption at latex!, being the \LaTeX's original \!\@caption!,
 % giving all three arguments of \!\pcol at ac@caption! itself surrounding
 % $\arg{lcap}$ with |{| and |}| for the concealment of `|]|'.  Finally, we
 % let $\!\addcontentsline!=\!\pcol at addcontentsline!$ so that other macros
@@ -17706,7 +17747,7 @@
 %	 localization.}
 % \begin{macro}{\pcol at com@flushpage}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{flushpage} with the
+%	{Introduced as the implementation of \cs{flushpage} with the
 %	 replacement of \cs{par} with \cs{pcol at par}.}
 % \begin{macro}{\clearpage}
 % \changes{v1.0}{2011/10/10}
@@ -17714,7 +17755,7 @@
 %	 localization.}
 % \begin{macro}{\pcol at com@clearpage}
 % \changes{v1.0}{2011/10/10}
-%	{Introduced as the implemenatation of \cs{clearpage} with the
+%	{Introduced as the implementation of \cs{clearpage} with the
 %	 replacement of \cs{par} with \cs{pcol at par}.}
 % \begin{macro}{\cleardoublepage}
 % \changes{v1.3-5}{2013/09/17}
@@ -17722,7 +17763,7 @@
 %	 \cs{pcol at com@cleardoublepage}.}
 % \begin{macro}{\pcol at com@cleardoublepage}
 % \changes{v1.3-5}{2013/09/17}
-%	{Introduced as the implemenatation of \cs{cleardoulbepage}.}
+%	{Introduced as the implementation of \cs{cleardoublepage}.}
 % 
 % The macros \!\pcol at com@flushpage!, \!\pcol at com@clearpage! and
 % \!\pcol at com@cleardoublepage! are the implementations of \elocal{} API
@@ -17816,6 +17857,10 @@
 %	{Add the subsection ``Commands for Footnotes'' to describe newly
 %	 introduced macros for page-wise footnotes.}
 % 
+% \begin{macro}{\footnoteplacement}
+% \changes{v1.36-2}{2024/10/22}
+%	{Rename \cs{footnotelayout} to \cs{footnoteplacement} for compatibility
+%	with \textsf{footmisc} package.}
 % \begin{macro}{\footnotelayout}
 % \changes{v1.3-5}{2013/09/17}
 %	{Introduced for easier declaration of footnote layout.}
@@ -17830,18 +17875,18 @@
 %	{Introduced for easier declaration of merged footnotes.}
 % \begin{macro}{\multicolumnfootnotes}
 % \changes{v1.2-2}{2013/05/11}
-% 	{Introduced to delclare the defalut column-wise footnote
+% 	{Introduced to declare the default column-wise footnote
 %	 typesetting explicitly.}
 % \begin{macro}{\singlecolumnfootnotes}
 % \changes{v1.2-2}{2013/05/11}
-% 	{Introduced to delclare the page-wise but non-merged footnote
+% 	{Introduced to declare the page-wise but non-merged footnote
 %	 typesetting.}
 % \begin{macro}{\mergedfootnotes}
 % \changes{v1.2-2}{2013/05/11}
-% 	{Introduced to delclare the page-wise and merged footnote
+% 	{Introduced to declare the page-wise and merged footnote
 %	 typesetting.}
 % 
-% The API macros $\!\footnotelayout!\Arg{l}$ is to determine that footnotes
+% The API macro $\!\footnoteplacement!\Arg{l}$ is to determine that footnotes
 % are \mcfnote{} ($l=|c|$), \scfnote{} without merging ($l=|p|$), or
 % \mgfnote{} and \scfnote{} ($l=m$).  The macro examines if
 % $l\in\{|c|,|p|,|m|\}$ by the existence of the corresponding macro
@@ -17875,12 +17920,16 @@
 % settings.  Another remark is that backward-compatible macros
 % \!\multicolumnfootnotes!, \!\singlecolumnfootnotes! and
 % \!\mergedfootnotes! are \!\let!-equal to \!\pcol at fnlayout@c!,
-% \!\pcol at fnlayout@p! and \!\pcol at fnlayout@m! respectively.
+% \!\pcol at fnlayout@p! and \!\pcol at fnlayout@m! respectively. If the deprecated
+% \!\footnotelayout! is undefined \!\let! it equal to \!\footnoteplacement! and
+% add a hook to undefine it if \textsf{footmisc} gets loaded; print an
+% informational message in any case where our \!\footnotelayout! is
+% unavailable.
 % 
 %    \begin{macrocode}
 %% Commands for Footnotes
 
-\def\footnotelayout#1{\@ifundefined{pcol at fnlayout@#1}%
+\def\footnoteplacement#1{\@ifundefined{pcol at fnlayout@#1}%
   {\PackageError{paracol}{Unknown footnote layout specifier #1}}%
   {\@nameuse{pcol at fnlayout@#1}}}
 \def\pcol at fnlayout@c{\global\pcol at scfnotefalse \global\pcol at mgfnotefalse
@@ -17892,9 +17941,20 @@
 \let\multicolumnfootnotes\pcol at fnlayout@c
 \let\singlecolumnfootnotes\pcol at fnlayout@p
 \let\mergedfootnotes\pcol at fnlayout@m
+\@ifundefined{footnotelayout}{%
+  \let\footnotelayout\footnoteplacement
+  \AddToHook{package/footmisc/before}{\let\footnotelayout\relax}%
+}{}
+\AddToHook{package/footmisc/before}{\PackageNoteNoLine{paracol}{%
+  With footmisc loaded, paracol's
+  \string\footnotelayout\space will be unavailable. Please use the
+  equivalent \string\footnoteplacement\space instead.\MessageBreak
+  Also note, that paracol's and footmisc's footnote handling may crash%
+}}
 
 %    \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% \end{macro}\end{macro}\end{macro}\end{macro}
+% \end{macro}\end{macro}\end{macro}\end{macro}
 % 

 % \KeepSpace{2}
 % \begin{macro}{\@footnotetext}
@@ -17925,7 +17985,7 @@
 % $p=\!\pcol at page!$ which could be less than that of the page in which the
 % footnoted text appears because the paragraph having the text will have a
 % page break before the text.  Therefore, $p$ for the footnote can be
-% $\ptop$, but this misjudment will not cause problems because the footnote
+% $\ptop$, but this misjudgment will not cause problems because the footnote
 % will eventually be put in $\ptop$ through $\df$ when the page break
 % occurs.
 % 
@@ -17986,13 +18046,16 @@
     \reset at font\footnotesize
     \interlinepenalty\interfootnotelinepenalty
     \splittopskip\footnotesep
-    \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
     \hsize \ifpcol at scfnote \textwidth \else \columnwidth \fi
-    \@parboxrestore
-    \protected at edef\@currentlabel{\p at footnote\@thefnmark}%
+    \def\@currentcounter{footnote}%
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
     \color at begingroup
-    \@makefntext{%
-      \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \par
     \color at endgroup}%
   \@tempdima\ht\@tempboxa \advance\@tempdima\dp\@tempboxa
   \@tempdimb\textheight \advance\@tempdimb-\skip\footins
@@ -18047,7 +18110,7 @@
 % 
 % The macros \!\pcol at footnoterule!, \!\pcol@@footnote!,
 % \!\pcol@@footnotemark! and \!\pcol@@footnotetext! are to keep the original
-% defitions of \!\footnoterule!, \!\footnote!, \!\footnotemark! and
+% definitions of \!\footnoterule!, \!\footnote!, \!\foot~note~mark! and
 % \!\footnotetext! in them, respectively, so that we define our own versions
 % with references to the originals.
 % 
@@ -18211,7 +18274,7 @@
 %	 the emulation of \cs{marginnote}.}
 % \begin{macro}{\pcol@@marginpar}
 % \changes{v1.35-3}{2018/12/31}
-% 	{Introduced to keep the orginal version of \cs{marginpar} for
+% 	{Introduced to keep the original version of \cs{marginpar} for
 %	 the emulation of \cs{marginnote}.}
 % \begin{macro}{\@mn@@marginnote}
 % \changes{v1.35-3}{2018/12/31}
@@ -18235,7 +18298,7 @@
 %	 \cs{@xympar} for the emulation of \cs{marginnote}.}
 % \begin{macro}{\pcol@@xympar}
 % \changes{v1.35-3}{2018/12/31}
-% 	{Introduced to keep the orginal version of \cs{@xympar} for the
+% 	{Introduced to keep the original version of \cs{@xympar} for the
 %	 emulation of \cs{marginnote}.} 
 % \begin{macro}{\pcol at mparoffset}
 % \changes{v1.35-3}{2018/12/31}
@@ -18253,7 +18316,7 @@
 % \item
 % \!\marginpar! is made \!\let!-equal to our own version \!\pcol at marginpar!
 % in \!\pcol at zparacol! so that it \!\let! the macro \!\pcol at mparoffset! be
-% \!\z@! and then invoke \LaTeX's origincal version kept in
+% \!\z@! and then invoke \LaTeX's original version kept in
 % \!\pcol@@marginpar!, because the marginal note given by \!\marginpar! will
 % not be shifted.
 % 
@@ -18264,7 +18327,7 @@
 % \!\pcol at marginnote! in \!\pcol at zparacol! so that it |\def|ines
 % \!\pcol at mparoffset! to have $\arg{voffset}$ and then invoke
 % \!\pcol@@marginpar!\oarg{left}\~\marg{right} for the emulation.  In the
-% invokation, \textsf{marginnote}'s typesetting macros \!\margin~font!,
+% invocation, \textsf{marginnote}'s typesetting macros \!\margin~font!,
 % \!\raggedleftmarginnote! and \!\raggedrightmarginnote! are attached to
 % $\arg{left}$ and $\arg{right}$.
 % 
@@ -18278,7 +18341,7 @@
 % 
 % In addition, we raise a warning that \!\marginnote! is emulated by
 % \!\pcol at mn@warning!, which is made \!\let!-equal to \!\relax! in the caller
-% \!\pcol at marginnote! after the invokation so that the warning message is
+% \!\pcol at marginnote! after the invocation so that the warning message is
 % put just once.
 % 
 %    \begin{macrocode}
@@ -18369,8 +18432,8 @@
 % 
 % Note that backward-compatible API macros 
 % \!\swapcolumninevenpages! and \!\noswapcolumn~inevenpages! are still
-% availabel to turn $\CSIndex{ifpcol at swapcolumn}$ $\true$ an $\false$
-% respectivey.
+% available to turn $\CSIndex{ifpcol at swapcolumn}$ $\true$ an $\false$
+% respectively.
 % 
 %    \begin{macrocode}
 %% Column Swapping
@@ -18401,7 +18464,7 @@
 %	{Introduced to convert column ordinal and its position.}
 % \changes{v1.3-2}{2013/09/17}
 %	{Add two arguments $C^0$ and $C^1$ as the third and fourth ones to
-%	 modifiy the calculation of $c_2$ with them for column-swapping with
+%	 modify the calculation of $c_2$ with them for column-swapping with
 %	 parallel-paging.}
 % \changes{v1.3-3}{2013/09/17}
 %	{Add the assignment of \cs{pcol at colsepid} to let it have $c_2-1$ if
@@ -18408,7 +18471,7 @@
 %	 swapped or $c_2$ otherwise.}
 % \changes{v1.3-4}{2013/09/17}
 %	{Add a user \cs{pcol at addmarginpar} and remove \cs{paracol},
-%	 \cs{pcol at sptxt} and \cs{pcol at switchcol}.} 
+%	 \cs{pcol at sptext} and \cs{pcol at switchcol}.} 
 % \begin{macro}{\pcol at colsepid}
 % \changes{v1.3-3}{2013/09/17}
 %	{Introduced to be let have $c_2-1$ if swapped or $c_2$ otherwise by
@@ -18458,7 +18521,7 @@
 % \KeepSpace{2}
 % \begin{macro}{\marginparthreshold}
 % \changes{v1.3-4}{2013/09/17}
-%	{Introduced to spacify the smallest ordinal of columns whose marginal
+%	{Introduced to specify the smallest ordinal of columns whose marginal
 %	 notes go to the right margin if not swapped.}
 % \begin{macro}{\pcol at marginparthreshold}
 % \changes{v1.3-4}{2013/09/17}
@@ -18489,7 +18552,7 @@
 % The macro \!\def!ines \!\pcol at mpthreshold@l! to let it have $t_l$ after a
 % assigning $t_l$ to \!\@tempcnta! to ensure $t_l$ gives some number, and
 % then do the same for \!\pcol at mpthreshold@r! with $t_r$ by
-% \!\pcol at marginparthreshold! if $t_r$ is provided, or let the marco have
+% \!\pcol at marginparthreshold! if $t_r$ is provided, or let the macro have
 % $t_l$ otherwise.  Note that at the top level we do
 % \!\marginparthreshold!|{1}| to give defaults.  Also note that
 % \!\pcol at mpthreshold@l! and \!\pcol at mpthreshold@r! are referred to solely
@@ -18513,7 +18576,7 @@
 % \label{sec:imp-commcolor}
 % \changes{v1.3-6}{2013/09/17}
 %	{Add the section ``Commands for Text Coloring'' to distinguish
-%	 macros inside and outside \cs{output} routine and describe latters
+%	 macros inside and outside \cs{output} routine and describe the latter
 %	 in this section.}
 % 
 % \begin{macro}{\columncolor}
@@ -18604,7 +18667,7 @@
 % \changes{v1.34}{2018/05/07}
 %	{Remove the invocations of \cs{pcol at iicolumncolor} for
 %	 $\cs{pcol at columncolor@shadow}\cdot c$ because it no longer exists,
-%	 completly change the opearations in the case the target column $c$
+%	 completely change the operations in the case the target column $c$
 %	 is the current one according to the new method with \cs{insert},
 %	 and add immediate setting of $\gamma_0^c$ in the case $c$ is not
 %	 current.}
@@ -18809,7 +18872,7 @@
 % reestablishing in \!\columncolor! and \!\normalcolumncolor!.  Since this
 % push is done non-\!\global!ly with \!\edef!, we save\slash restore the
 % definition of \!\@elt! to\slash from \Midx{\!\pcol at elt@save!} before\slash
-% after the push, resepctively\footnote{
+% after the push, respectively\footnote{
 % 
 % Just in case.}.
 % 
@@ -18990,7 +19053,7 @@
 % 
 % \begin{macro}{\colseprulecolor}
 % \changes{v1.3-3}{2013/09/17}
-%	{Introduced to spcify the colors of column-separating rules.}
+%	{Introduced to specify the colors of column-separating rules.}
 % \begin{macro}{\pcol at defcseprulecolor@x}
 % \changes{v1.3-3}{2013/09/17}
 %	{Introduced to implement \cs{colseprulecolor}.}
@@ -19002,7 +19065,7 @@
 %	{Introduced to implement \cs{colseprulecolor}.}
 % \begin{macro}{\normalcolseprulecolor}
 % \changes{v1.3-3}{2013/09/17}
-%	{Introduced to spcify that color of column-separating rules is normal.}
+%	{Introduced to specify that color of column-separating rules is normal.}
 % \begin{macro}{\pcol at defcseprulecolor@i}
 % \changes{v1.3-3}{2013/09/17}
 %	{Introduced to implement \cs{colseprulecolor} and
@@ -19026,7 +19089,7 @@
 % optional argument $\arg{mode}$ to invoke \!\pcol at defcseprulecolor!  with
 % argument \marg{cmd}${}={}$\!\color!\oarg{mode}\marg{color} so that this
 % macro invokes $\!\pcol at defcseprulecolor@i!\ARg{cmd}|[|c|]|$ where
-% $c=\emptyset$ if the optional arguemnt $c$ is not provided.
+% $c=\emptyset$ if the optional argument $c$ is not provided.
 % 
 % The macro $\!\normalcolseprulecolor!|[|c|]|$, on the other hand, defines
 % $|\pcol at colseprule|\~|color|[{\cdot}c]$
@@ -19108,7 +19171,7 @@
 %	{Introduced to implement \cs{backgroundcolor} and
 %	 \cs{nobackgroundcolor}.}
 % \changes{v1.31}{2013/10/10}
-%	{Fix the mispell ``colorling'' in the error message.}
+%	{Fix the misspelling ``colorling'' in the error message.}
 % \begin{macro}{\pcol at backgroundcolor@i}
 % \changes{v1.3-3}{2013/09/17}
 %	{Introduced to implement \cs{backgroundcolor} and
@@ -19149,7 +19212,7 @@
 %                                      |(|x_0|,|y_0|)(|x_1|,|y_1|)|
 % \end{eqnarray*}
 % % 
-% On the other hand, the counteraprt macro
+% On the other hand, the counterpart macro
 % \!\nobackgroundcolor!\marg{region} undefines the color of $\arg{region}$.
 % Both macros invoke \!\pcol at backgroundcolor! giving all arguments to it to
 % parse the argument $\arg{region}$, after letting
@@ -19180,7 +19243,7 @@
 % invokes $\!\pcol at backgroundcolor@i!|[|c|]|$ or \!\pcol at backgroundcolor@ii!
 % according to the provision of the optional argument $|[|c|]|$, after
 % \!\def!ining $a'=\Midx{\!\pcol at bg@region!}$ to be $a$.  Then
-% \!\pcol at backgroundcolor@i! examines if $|\pcol at bg@|\~|mayhavecol@|{\cdot}a$
+% \!\pcol at backgroundcolor@i! examines if \!\pcol at bg@may~have~col@!${\cdot}a$
 % 
 % \SpecialIndex{\pcol at bg@mayhavecol at c}\SpecialIndex{\pcol at bg@mayhavecol at C}
 % \SpecialIndex{\pcol at bg@mayhavecol at g}\SpecialIndex{\pcol at bg@mayhavecol at G}
@@ -19332,8 +19395,8 @@
 % Then \!\pcol at backgroundcolor@wi! throw all arguments away and lets
 % $|\pcol at bg@color@|{\cdot}a'\~=\!\relax!$ so that the region $a'$ is
 % untouched in \bgpaint{} macros.  Note that since
-% $a'=|xx|$ being an absolutely non-exsistent region when this macro is used
-% for error recovery, undefining \pcol at bg@color at xx is not harmful.
+% $a'=|xx|$ being an absolutely non-existent region when this macro is used
+% for error recovery, undefining \!\pcol at bg@color at xx! is not harmful.
 % 
 %    \begin{macrocode}
 \def\pcol at backgroundcolor@z#1\@nil{\pcol at backgroundcolor@wi[]{}}
@@ -19368,7 +19431,7 @@
 % are used in \!\pcol at background~color at i! when the region specifier $a$ in
 % $\arg{region}$ argument of \!\backgroundcolor! or \!\noback~groundcolor! is
 % followed by optional $|[|c|]|$, so that the invoker macro examines if $a$
-% can have the optional column oridinal.
+% can have the optional column ordinal.
 % 
 % \SpecialArrayMainIndex{a}{\pcol at bg@mayhavecol@}
 % 
@@ -19403,7 +19466,7 @@
 % The macro at first lets \!\@tempdima! have $e$ to confirm $e$ is a proper
 % dimension and then \!\xdef!ines
 % $|\pcol at bg@ext@|{\cdot}d{\cdot}|@|{\cdot}a'$ to let it have the integer
-% representaion of $e$ followed by |sp|.
+% representation of $e$ followed by |sp|.
 % 
 % \SpecialArrayMainIndex{d{\cdot}\string\texttt{@}{\cdot}a}{\pcol at bg@ext@}
 % \SpecialArrayMainIndex
@@ -19422,7 +19485,7 @@
 % 

 % \begin{macro}{\resetbackgroundcolor}
 % \changes{v1.3-3}{2013/09/17}
-%	{Introduced to disable background-paiting for all regions.}
+%	{Introduced to disable background-painting for all regions.}
 % \begingroup \let\SMALL\small \let\small\footnotesize
 % \begin{macro}{\pcol at resetbackgroundcolor}
 % \changes{v1.3-3}{2013/09/17}
@@ -19469,7 +19532,7 @@
 %	 adjustment.}
 % \changes{v1.2-5}{2013/05/11}
 %	{Remove \cs{global} assignment of \cs{hsize} and \cs{linewidth}
-%	 because assigments of them in \string\texttt{paracol} are now
+%	 because assignments of them in \string\texttt{paracol} are now
 %	 perfectly local.}
 % \changes{v1.31}{2013/10/10}
 %	{Add saving $c$ into \cs{pcol at lastcol} to let \cs{pcol at output@end}
@@ -19485,7 +19548,9 @@
 % \lcounter{} have the values for the column 0 so that they are referred to
 % outside the environment, after saving the current column $c$ in
 % \!\pcol at lastcol! to be referred to in \!\pcol at output@end! so that
-% $\cc_c(\sw)$ and $\cc_c(\ep)$ are passed to \postenv.
+% $\cc_c(\sw)$ and $\cc_c(\ep)$ are passed to \postenv.  In \!\pcol at switchcol!,
+% we make sure, not to add the preamble for column 0 by checking whether
+% \!\pcol at lastcol! is set.
 % 
 % \begin{Sloppy}{1800}
 % Then we invoke \!\pcol at flushclear! for \pfcheck{}, turning
@@ -19546,7 +19611,7 @@
 % 
 % the difference means the \!\everyvbox! has been \!\global!ly updated with
 % the value that \!\pcol at everyvbox! has now.  Therefore if so, we
-% globally update \!\everyvbox! with \!\pcol at everyvbox! to refrect the
+% globally update \!\everyvbox! with \!\pcol at everyvbox! to reflect the
 % global update in the environment.
 % 
 %    \begin{macrocode}
@@ -19560,3 +19625,5 @@
 %</paracol>
 %\fi
 \endinput
+
+ vi: spellcapcheck=[.?]\\_[])'"^I\ ]\\+ spell

Modified: trunk/Master/texmf-dist/source/latex/paracol/man.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/paracol/man.dtx	2024-10-25 21:26:46 UTC (rev 72650)
+++ trunk/Master/texmf-dist/source/latex/paracol/man.dtx	2024-10-25 21:26:59 UTC (rev 72651)
@@ -97,9 +97,9 @@
 % 
 % \switchcolumn*[\section{Basic Usage}]
 % Loading the package is very simple.  What you have to do is
-% \!\usepackage!|{|\Uidx{\env{paracol}}|}| in the preamble.  Note that
-% \textsf{paracol} can be used with \LaTeXe{} and does not work with
-% \LaTeX{} 2.09.
+% \!\usepackage!|{|\Uidx{\env{paracol}}|}| in the preamble. Or write
+% \!\usepackage!|{|\Uidx{\env{paracol}}|}[=2018-12-31]| to get the last
+% version authored by Hiroshi Nakashima, if this is your wish.
 % 
 % \switchcolumn
 % 
@@ -326,7 +326,7 @@
 %\end{leftcolumn*}
 %\begin{rightcolumn}
 %\end{Verbatim}
-% \textit{source and a \texttt{figure} env}\\
+% \textit{source and a \texttt{figure} environment}\\
 % |\end{rightcolumn}|
 % \begin{figure}[t]\nosv
 % \def\arraystretch{0.8}
@@ -745,7 +745,7 @@
 % Sondern la{\ss}t uns angenehmere anstimmen und freu\-denvollere
 % \footnote{If I had been a good student in my German class, I could find
 % the German translation of the right column footnote \ref{fn:right4} is
-% ``Dieser Teil wurde van Beethoven hinzugef\"ugt'' by myself without
+% ``Dieser Teil wurde von Beethoven hinzugef\"ugt'' by myself without
 % the kind help from a user.}.
 % \end{Gverse}
 % \begin{Everse}
@@ -861,3 +861,5 @@
 % \label{page:efreude}
 % \endgroup
 \endinput
+
+ vi: spellcapcheck=[.?]\\_[])'"^I\ ]\\+ spell

Modified: trunk/Master/texmf-dist/source/latex/paracol/paracol.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/paracol/paracol.dtx	2024-10-25 21:26:46 UTC (rev 72650)
+++ trunk/Master/texmf-dist/source/latex/paracol/paracol.dtx	2024-10-25 21:26:59 UTC (rev 72651)
@@ -3,8 +3,9 @@
 %<man>%% LaTeX file 'paracol-man'.
 %<*paracol|man>
 %% Copyright (C) 2005-2018
-%%   Hiroshi Nakashima <h.nakashima at DOMAIN;  DOMAIN=media.kyoto-u.ac.jp>
-%%   (Kyoto University)
+%%   Hiroshi Nakashima (Kyoto University, deceased)
+%% Copyright (C) 2024
+%%   Markus Kurtz
 %% This program can be redistributed and/or modified under the terms
 %% of the LaTeX Project Public License distributed from CTAN
 %% archives in directory macros/latex/base/lppl.txt; either
@@ -14,12 +15,15 @@
 %<*dtx>
 \ProvidesFile{paracol.dtx}
 %</dtx>
-%<paracol>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-%<paracol>\ProvidesPackage{paracol}
+%<*paracol>
+\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+\DeclareRelease{1.35}{2018-12-31}{paracol-2018-12-31.sty}
+\DeclareCurrentRelease{1.36}{2024-10-22}
+\ProvidesPackage{paracol}[2024/10/22 1.36 typeset columns in parallel]
+%</paracol>
 %<man>\ProvidesFile{paracol-man.tex}
 % \fi
-% \ProvidesFile{paracol.dtx}
-[2018/12/31 v1.35 ]
+% \ProvidesFile{paracol.dtx}[2024-10-22 1.36 docstrip source of paracol]
 % \iffalse
 %<*man>
 \documentclass{ltxdoc}\normalmarginpar
@@ -28,7 +32,6 @@
 \usepackage{newvbtm}
 \DisableCrossrefs
 \PageIndex
-\CodelineNumbered
 \RecordChanges
 %</man>
 %<man>\OnlyDescription
@@ -48,6 +51,7 @@
 % 
 % 

 % 
+% \CodelineNumbered
 % \makeatletter
 % 
 % \newcount\ChangeCount \ChangeCount10000
@@ -80,7 +84,7 @@
 % \setcounter{IndexColumns}{2}
 % 
 % \def\bottomfraction{.9}
-% \def\cs#1{\hbox{\tt\char\escapechar#1}}
+% \def\cs#1{\texttt{\char\escapechar#1}}
 % \def\Item{\vskip-\itemsep\vskip-\parsep\vskip0pt\nobreak\item}
 %
 % \def\nosv{\catcode`\|12\relax}
@@ -134,7 +138,7 @@
 %   \@tempa
 %   \global\advance\c at CodelineNo\@ne
 %    #1
-%       \SpecialMainIndex{#2}\nobreak
+%       \SpecialMainMacroIndex{#2}\nobreak
 %       \DoNotIndex{#2}
 %    \else
 %       \SpecialMainEnvIndex{#2}\nobreak
@@ -157,7 +161,7 @@
 %	\let\CodeIndex\CodeMainIndex
 %	\let\ArgedCodeIndex\ArgedCodeMainIndex
 %	\let\MathIndex\MathMainIndex
-%	\let\SpecialIndex\SpecialMainIndex
+%	\let\SpecialIndex\SpecialMainMacroIndex
 % 	\MIDX}
 % \def\MIDX#1{#1\endgroup}
 % \def\Uidx{\begingroup
@@ -165,7 +169,7 @@
 %	\let\CodeIndex\CodeUsageIndex
 %	\let\ArgedCodeIndex\ArgedCodeUsageIndex
 %	\let\MathIndex\MathUsageIndex
-%	\let\SpecialIndex\SpecialUsageIndex
+%	\let\SpecialIndex\SpecialMacroIndex
 % 	\UIDX}
 % \def\UIDX#1{#1\endgroup}
 % 
@@ -246,13 +250,14 @@
 % 
 % \long\def\Special at Index#1#2{\@bsphack
 %	\RemoveAtFromCS{#2}
-% 	\protected at edef\@tempa{\noexpand\special at index{\RAFCtempa
+% 	\protected at edef\@tempa{\RAFCtempa
 %		\actualchar \string\verb
-% 		\quotechar*\verbatimchar\string#2\verbatimchar #1}}\@tempa
+% 		\quotechar*\verbatimchar\string#2\verbatimchar}
+% 		\expandafter\special at index\expandafter{\@tempa#1}
 %	\@esphack}
 % \def\SpecialIndex{\Special at Index{}}
-% \def\SpecialMainIndex{\Special at Index{\encapchar main}}
-% \def\SpecialUsageIndex{\Special at Index{\encapchar usage}}
+% \def\SpecialMainMacroIndex{\Special at Index{\encapchar main}}
+% \def\SpecialMacroIndex{\Special at Index{\encapchar usage}}
 % \def\SpecialArrayIndex#1{\Special at Index{${\cdot}#1$}}
 % \def\SpecialArrayMainIndex#1{\Special at Index{${\cdot}#1$\encapchar main}}
 % \def\SpecialArrayUsageIndex#1{\Special at Index{${\cdot}#1$\encapchar usage}}
@@ -259,7 +264,7 @@
 % 
 % \def\Macro{\begingroup \@sanitize \iMacro}
 % \def\iMacro#1{\endgroup
-%	\def\SpecialMainIndex##1{\SWiIndex{##1}{\encapchar main}}
+%	\def\SpecialMainMacroIndex##1{\SWiIndex{##1}{\encapchar main}}
 %	\macro{#1}}
 % \let\endMacro\endmacro
 % 
@@ -266,9 +271,9 @@
 % \def\SpecialWeirdIndex{\@bsphack \begingroup \@sanitize \SWIndex{}}
 % \def\SWIndex#1#2{\endgroup \SWiIndex{#2}{#1}}
 % \def\SWiIndex#1#2{%
-%	\protected at edef\@tempa{\noexpand\special at index{
-%		#1\actualchar \string\verb
-%		\quotechar*\verbatimchar#1\verbatimchar#2}}\@tempa
+%	\protected at edef\@tempa{#1\actualchar \string\verb
+%		\quotechar*\verbatimchar#1\verbatimchar}
+%		\expandafter\special at index\expandafter{\@tempa#2}
 % 	\@esphack}
 % 
 % \let\RAFCempty\@empty
@@ -304,7 +309,7 @@
 % \catcode`\@\active
 % \gdef\!{\begingroup \catcode`\@\active \IndexedVerb}
 % \gdef\IndexedVerb#1!{\def@{\TheAtMark \penalty\exhyphenpenalty}
-% 	\def~{\penalty\exhyphenpenalty}
+% 	\def~{\badbreak}
 % 	\rm\texttt{\string#1}\let@\TheAtMark \def~{}
 % 	\edef\RAFCTempa{\expandafter\RAFCgobble\string#1}
 %	\expandafter\SpecialIndex\csname\RAFCTempa\endcsname \endgroup}
@@ -562,6 +567,8 @@
 % \def\\{\hfil\break\null\ignorespaces}
 % 
 % \let\AB\allowbreak
+% \def\badbreak{\penalty50}
+% \let\BB\badbreak
 % 
 % \hyphenation{col-umn col-umns}
 %
@@ -668,9 +675,9 @@
 % 	Yet Another Multi-Column Package to Typeset Columns in
 % 	\textit{Parallel}}
 % 
-% \author{Hiroshi Nakashima\\(Kyoto University)}
-% \date{version \expandafter\@gobble\fileversion: \filedate}
-% \setbox0\vbox{\vskip\topskip\maketitle\vskip0pt}\unitlength\ht0\copy0
+% \author{Hiroshi Nakashima (Kyoto University, deceased)\\Markus Kurtz (\url{https://codeberg.org/mgkurtz/paracol})}
+% \date{version \fileversion: \filedate}
+% \setbox0\vbox{\vskip\topskip\maketitle}\unitlength\ht0\copy0
 % 
 % \ifx\ONLYDESCRIPTION\undefined
 % \tableofcontents
@@ -678,6 +685,8 @@
 % \vbox to\unitlength{\unvbox0\vfil}
 % \part{User's Manual}\label{part:man}
 % \let\MidxSave\Midx \let\Midx\Uidx
+% \else
+% \addtocontents{toc}{\protect\label{toc}}
 % \fi
 % 
 % \begin{abstract}
@@ -686,7 +695,7 @@
 % |\switchcolumn| and by internal environments |column|, |nthcolumn|,
 % |leftcolumn| and |rightcolumn|.
 % \ifx\ONLYDESCRIPTION\undefined\else
-% See p.\Tie\pageref{page:toc} for the table of contents of this manual.
+% See p.\Tie\pageref{toc} for the table of contents of this manual, see \href{https://mirrors.ctan.org/macros/latex/contrib/paracol/paracol.pdf}{paracol.pdf} for code documentation.
 % \fi
 % \end{abstract}
 % 
@@ -793,7 +802,7 @@
 % well with them.
 %
 % \ifx\ONLYDESCRIPTION\undefined\else
-% \newpage\label{page:toc} \tableofcontents
+% \newpage\tableofcontents
 % \fi
 % 
 % \PrintIndex}

Modified: trunk/Master/texmf-dist/source/latex/paracol/probs.dtx
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/paracol/pwfnote.dtx
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/paracol/ref.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/paracol/ref.dtx	2024-10-25 21:26:46 UTC (rev 72650)
+++ trunk/Master/texmf-dist/source/latex/paracol/ref.dtx	2024-10-25 21:26:59 UTC (rev 72651)
@@ -1,4 +1,4 @@
-% \footnotelayout{m}
+% \footnoteplacement{m}
 % \columnratio{}
 % \section{Reference Manual}
 % \label{sec:ref}
@@ -91,7 +91,7 @@
 % 
 % \item
 % Therefore, this \!\item! is shifted left a little bit to make
-% inter-column spece narrower.
+% inter-column space narrower.
 % \end{paracol}
 % 
 % \item
@@ -242,7 +242,7 @@
 % 
 % \item
 % In a page having one or more \sync{}ation points, stretch and shrink
-% factors of all vertical spaces, such as those surrounding sectionning
+% factors of all vertical spaces, such as those surrounding sectioning
 % commands, are ignored.  Therefore, even if you specify \!\flushbottom!,
 % the page is typeset as if \!\raggedbottom! were specified.
 % 
@@ -393,7 +393,7 @@
 % The command is to define the {\Uidx\colpream} \meta{pream} for the column
 % \meta{col}, which is inserted at every \cswitch{} to the column.  More
 % specifically, the command let \!\switchcolumn! to \meta{col} act as if you
-% sepcify;
+% specify;
 % 
 % \begin{itemize}\item[]
 % \!\switchcolumn! $\arg{pream\ for\ col}$
@@ -504,7 +504,7 @@
 % \changes{v1.1}{2012/05/11}
 % 	{Add description of \cs{columnratio}.}
 % \changes{v1.3-2}{2013/09/17}
-%	{Add descriptino of the optional argument of \cs{columnratio} for
+%	{Add description of the optional argument of \cs{columnratio} for
 %	 parallel-paging.}
 % 
 % The command defines the width of each column by the fraction $r_i$ to
@@ -582,7 +582,7 @@
 % \item[\Midx{\!\setcolumnwidth!}\Arg{$s_0,s_1,\cdots,s_k$}
 %                              {|[|$s'_0,s'_1,\cdots,s'_{k'}$|]|}]\mbox{}\par
 % \changes{v1.3-2}{2013/09/17}
-%	{Add descriptino of \cs{setcolumnwidth}.}
+%	{Add description of \cs{setcolumnwidth}.}
 % 
 % The command defines the width of each column and that of each {\em gap}
 % between two columns by the column/gap specification $s_i$ for the $i$-th
@@ -988,7 +988,18 @@
 % 	``Page-Wise Footnotes'' following new naming.}
 % 
 % \begin{description}
-% \item[\Midx{\!\footnotelayout!}\marg{layout}]\mbox{}\par
+% \item[\Midx{\!\footnoteplacement!}\marg{layout}]\mbox{}
+% \Item[\Midx{\!\footnotelayout!}\marg{layout}\footnote{
+%   While \cs{footnotelayout} is a nice name, it is recommended to use
+%   \cs{footnoteplacement}, since a macro of the name \cs{footnotelayout}
+%   is also used by the \textsf{footmisc} package. Hence our version of
+%   \cs{footnotelayout} will not be available if \textsf{footmisc} is loaded as
+%   well. Besides that, both \cs{footnotelayout} and \cs{footnoteplacement} are
+%   the same. We will thus only refer to \cs{footnoteplacement} for the
+%   remainder of this manual.
+% }]\mbox{}\par
+% \changes{v1.36-2}{2024/10/22}
+% 	{Rename \cs{footnotelayout} to \cs{footnoteplacement}.}
 % The command specifies the \meta{layout}${}\in\{|c|,|p|,|m|\}$ of footnotes
 % in \env{paracol} environments as follows.
 % 
@@ -1031,7 +1042,7 @@
 % \item
 % Choosing the layout |p|age-wise or |m|erged makes \counter{footnote}
 % counter global and \!\fncounteradjustment!  shown below performed inside
-% \!\footnotelayout!.  Choosing |c|olumn-wise let the command do the
+% \!\footnoteplacement!.  Choosing |c|olumn-wise let the command do the
 % operations oppositely, i.e., localizes \counter{footnote} and does
 % \!\nofncounteradjustment!.  Though these settings are usually appropriate
 % for each footnote layout but you can override them by explicitly using
@@ -1050,13 +1061,13 @@
 %	 are still available.}
 % 
 % In old versions of \Paracol, namely 1.2 and its minor revisions 1.2x,
-% footnote layout was controlled by a set of lengthy commands
+% footnote layout was controlled by a set of commands
 % \Midx{\!\multicolumnfootnotes!} for |c|, \Midx{\!\singlecolumnfootnotes!}
 % for |p|, and \Midx{\!\mergedfootnotes!} for |m|.
 % Though they are still available and will be so forever for backward
-% compatibility, it is recommended to use \!\footnotelayout!\footnote{
+% compatibility, it is recommended to use \!\footnoteplacement!\footnote{
 % 
-% Not only for type saving but also for being familiar with this command
+% Not only for the sake of it, but also for being familiar with this command
 % which could have some advanced feature, for example to put gathered
 % footnotes into a specific column, someday.}.
 % 
@@ -1093,10 +1104,10 @@
 % 
 % \begin{itemize}
 % \item
-% Though \!\footnotelayout! with |p|(age-wise) or |m|(erged) argument does
+% Though \!\footnoteplacement! with |p|(age-wise) or |m|(erged) argument does
 % \!\fncounteradjustment! while that with |c|(olumn) does
 % \!\nofncounteradjustment! inside of it, you can override these settings by
-% explicitly putting a counter adjustment command after \!\footnotelayout!.
+% explicitly putting a counter adjustment command after \!\footnoteplacement!.
 % 
 % \item
 % The effect of \!\fncounteradjustment! is shown in Section~\ref{sec:fnnp}.

Added: trunk/Master/texmf-dist/tex/latex/paracol/paracol-2018-12-31.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/paracol/paracol-2018-12-31.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/paracol/paracol-2018-12-31.sty	2024-10-25 21:26:59 UTC (rev 72651)
@@ -0,0 +1,2894 @@
+%% Style file `paracol'.
+%% Copyright (C) 2005-2018
+%%   Hiroshi Nakashima <h.nakashima at DOMAIN;  DOMAIN=media.kyoto-u.ac.jp>
+%%   (Kyoto University)
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{paracol}
+[2018/12/31 v1.35 ]
+
+%% Register Declaration
+
+\newcount\pcol at currcol \global\pcol at currcol\z@
+\newcount\pcol at nextcol
+\newcount\pcol at ncol \global\pcol at ncol\z@
+\newcount\pcol at ncolleft \global\pcol at ncolleft\z@
+\newcount\pcol at page
+\newcount\pcol at basepage
+\newcount\pcol at toppage
+\newcount\pcol at footnotebase
+\newcount\pcol at nfootnotes
+\newcount\pcol at mcid
+\newif\ifpcol at output \global\pcol at outputfalse
+\newif\ifpcol at nospan
+\newif\ifpcol at sync \pcol at syncfalse
+\newif\ifpcol at sptextstart \pcol at sptextstartfalse
+\newif\ifpcol at sptext \pcol at sptextfalse
+\newif\ifpcol at clear \pcol at clearfalse
+\newif\ifpcol at flush
+\newif\ifpcol at outputflt
+\newif\ifpcol at lastpage
+\newif\ifpcol at lastpagesave
+\newif\ifpcol at scfnote \pcol at scfnotefalse
+\newif\ifpcol at mgfnote \pcol at mgfnotefalse
+\newif\ifpcol at fncounteradjustment \pcol at fncounteradjustmentfalse
+\newif\ifpcol at inner
+\newif\ifpcol at firstpage
+\newif\ifpcol at havelastpage \global\pcol at havelastpagefalse
+\newif\ifpcol at paired \global\pcol at pairedtrue
+\newif\ifpcol at swapcolumn \global\pcol at swapcolumnfalse
+\newif\ifpcol at swapmarginpar \global\pcol at swapmarginparfalse
+\newif\ifpcol at bg@swap \global\pcol at bg@swapfalse
+\newif\ifpcol at bg@@swap
+\newif\ifpcol at bg@painted
+\newif\ifpcol at bfbottom
+\def\reserved at a{pLaTeX2e}
+\ifx\reserved at a\pfmtname \pcol at bfbottomfalse \else \pcol at bfbottomtrue \fi
+\newif\ifpcol at dfloats
+\newdimen\pcol at prevdepth
+\newdimen\pcol at colht
+\newdimen\pcol at textfloatsep
+\newdimen\pcol at lrmargin
+\newdimen\pagerim \pagerim\z@
+\newskip\pcol at topskip
+\newskip\belowfootnoteskip \belowfootnoteskip\z@
+\newbox\pcol at topfnotes
+\newbox\pcol at prespan \setbox\pcol at prespan\box\voidb at x
+\newbox\pcol at rightpage \global\setbox\pcol at rightpage\box\voidb at x
+\newbox\pcol at colorstack@saved
+\newbox\pcol at tempboxa
+\newbox\pcol at tempboxb
+\newinsert\pcol at colorins
+\count\pcol at colorins\z@ \skip\pcol at colorins\z@ \dimen\pcol at colorins\maxdimen
+\newtoks\pcol at everyvbox
+
+%% Logging Tools
+
+\def\pcol at ShowBox#1{%
+  \ifvoid#1\message{(VOID)}%
+  \else
+    \message{(\the\ht#1+\the\dp#1)x(\the\wd#1)}%
+    {\vfuzz\z@ \showboxdepth\@M \showboxbreadth\@M
+     \setbox\z@\vbox to\z@{\ifdim\ht#1=\z@ \vskip1\p@\fi \copy#1}}%
+  \fi}
+\def\pcol at LogLevel#1#2#3{%
+  \pcol at iLogLevel{#1}{pcol at Log}%
+  \pcol at iLogLevel{#2}{pcol at Logstart}%
+  \pcol at iLogLevel{#2}{pcol at Logend}%
+  \pcol at iLogLevel{#3}{pcol at Logfn}}
+\def\pcol at iLogLevel#1#2{%
+  \expandafter\let\expandafter\reserved at a
+    \csname #2@\romannumeral#1\endcsname
+  \expandafter\let\csname #2\endcsname\reserved at a}
+\def\pcol at Log@iii#1#2#3{\message{\string#1{#2%
+    (\number\pcol at page:\number\pcol at currcol/\number\pcol at toppage)}}%
+  \pcol at ShowBox#3\message{end\string#1}}
+\def\pcol at Log@ii#1#2#3{\message{\string#1{#2%
+    (\number\pcol at page:\number\pcol at currcol/\number\pcol at toppage)}=\the\ht#3}}
+\def\pcol at Log@i#1#2#3{}
+\def\pcol at Logstart@ii#1{\message{S\string#1}}
+\def\pcol at Logend@ii#1{\message{E\string#1}}
+\def\pcol at Logstart@i#1{}
+\def\pcol at Logend@i#1{}
+\def\pcol at Logfn@ii#1{\message{\string#1}}
+\def\pcol at Logfn@i#1{}
+\pcol at LogLevel111
+
+\iffalse
+\newwrite\pcol at F@write
+\immediate\openout\pcol at F@write\jobname.fls
+\fi
+\def\pcol at F#1{\pcol at FF{#1}{}}
+\def\pcol at FF#1#2{\pcol at F@count
+  \immediate\write\pcol at F@write{#1(\number\pcol at page:\number\pcol at currcol/%
+    \number\pcol at toppage:\number\c at page)=\pcol at F@n #2}}
+\def\pcol at F@count{{\@tempcnta\z@
+    \def\@elt##1{\advance\@tempcnta\@ne}\@freelist
+    \xdef\pcol at F@n{\number\@tempcnta}}}
+\let\pcol at Fb\pcol at F@count
+\def\pcol at Fe#1{{\let\reserved at a\pcol at F@n \pcol at FF{#1}{<=\reserved at a}}}
+\let\pcol at F\@gobble
+\let\pcol at Fb\relax
+\let\pcol at Fe\@gobble
+
+%% \output Routine
+
+\def\pcol at ovf{%
+  \PackageError{paracol}{Too many unprocessed columns/floats}\@ehb}
+
+\def\pcol at output{\let\par\@@par \let\set at color\pcol at set@color
+  \global\pcol at mcid\z@
+  \pcol at Logstart{\pcol at output\number\outputpenalty
+    (\number\c at page:\number\pcol at currcol)}%
+  \ifnum\outputpenalty<-\@M
+    \pcol at specialoutput
+  \else\ifpcol at output
+    \pcol at makecol
+    \pcol at opcol
+    \pcol at startcolumn\@ne
+    \@whilesw\if at fcolmade\fi{\pcol at opcol \pcol at startcolumn\@ne}%
+  \else
+    \@twocolumnfalse \let\@combinefloats\pcol@@combinefloats
+    \@makecol
+    \@opcol
+    \@startcolumn
+    \@whilesw\if at fcolmade\fi{\@opcol \@startcolumn}%
+  \fi\fi
+  \global\maxdepth\@maxdepth
+  \ifnum\outputpenalty>-\@Miv
+    \ifdim\@colroom<1.5\baselineskip
+      \ifdim\@colroom<\textheight
+        \ifpcol at sptextstart
+          \global\vsize\@colroom
+        \else
+          \@latex at warning@no at line{Text page \thepage\space
+                                  contains only floats}%
+          \@emptycol
+        \fi
+      \else
+        \global\vsize\@colroom
+      \fi
+    \else
+      \global\vsize\@colroom
+    \fi
+  \else
+    \global\vsize\maxdimen
+  \fi
+  \pcol at Logend\pcol at output}
+
+%% Completing Column-Page
+
+\def\pcol@@makecol#1{\@makecol
+  \setbox\@outputbox\vbox to\@colht{\boxmaxdepth#1\unvbox\@outputbox}}
+\def\pcol at makecol{\let\pcol at textbottom\@textbottom
+  \ifdim\pcol at textfloatsep=\maxdimen\else
+    \def\@textbottom{\vskip\z@\@plus.0001fil\@minus.0001fil}\fi
+  \ifpcol at sptext \ifnum\pcol at currcol=\z@
+    \pcol at getcurrpinfo\@tempcnta\@tempdima\@tempskipa
+    \setbox\@tempboxa\vbox{\unvcopy\@cclv}%
+    \@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa
+    \ifdim\@tempdimb>\z@
+      \@tempdimb\ht\@cclv \advance\@tempdimb\dp\@cclv
+      \dimen@\ht\pcol at prespan \pcol at addflhd\@toplist\pcol at textfloatsep
+      \@cons\pcol at sptextlist{{\number\dimen@}{\number\@tempdimb}}%
+    \fi
+    \pcol at defcurrpage{\number\@tempcnta}\pcol at spanning\pcol at footins
+                     {\pcol at sptextlist}{\pcol at mparbottom}%
+    \setbox\@cclv\vbox{\unvbox\pcol at prespan \pcol at shiftspanning\@cclv
+                       \unvbox\@cclv}%
+  \fi\fi
+  \def\pcol at currfoot{\voidb at x}%
+  \ifpcol at scfnote \ifvoid\footins\else
+    \pcol at shrinkcolbyfn\@colht\footins\relax
+    \setbox\@cclv\vbox{\pcol at unvbox@cclv\footins}%
+    \ifnum\pcol at page=\pcol at toppage
+      \pcol at Log\pcol at makecol{save}\footins
+      \pcol at Fb
+      \pcol at savefootins\pcol at currfoot
+      \pcol at Fe{makecol(pagefn)}%
+    \else
+      \pcol at Log\pcol at makecol{discard}\footins
+      \setbox\@tempboxa\box\footins
+    \fi
+  \fi\fi
+  \pcol at Logstart\pcol at makecol
+  \ifvoid\footins\else \pcol at Log\@makecol{put}\footins \fi
+  \@makecol
+  \pcol at Logend\pcol at makecol
+  \let\@textbottom\pcol at textbottom}
+\def\pcol at combinefloats{%
+  \global\maxdepth\@maxdepth
+  \ifx\@toplist\@empty\else
+    \ifdim\pcol at textfloatsep=\maxdimen \@cflt \else \pcol at cflt \fi
+  \fi
+  \ifx\@botlist\@empty\else
+    \ifdim\pcol at textfloatsep=\maxdimen \@cflb
+    \else
+      \setbox\@outputbox\vbox{\unvbox\@outputbox
+        \vskip\z@\@plus.0001fil\@minus.0001fil}%
+      \@cflb
+      \setbox\@outputbox\vbox{\unvbox\@outputbox
+        \vskip\z@\@plus-.0001fil\@minus-.0001fil}%
+    \fi
+    \ifpcol at lastpage
+      \setbox\@outputbox\vbox{\box\@outputbox \vskip\textfloatsep}%
+    \fi
+  \fi}
+\def\pcol at cflt{%
+  \let\@elt\@comflelt
+  \setbox\@tempboxa\vbox{}%
+  \@toplist
+  \setbox\@outputbox\vbox{%
+    \boxmaxdepth\@maxdepth
+    \box\@tempboxa
+    \vskip-\floatsep
+    \ifdim\pcol at textfloatsep>5000\p@
+      \advance\pcol at textfloatsep-\@M\p@
+    \else
+      \topfigrule
+    \fi
+    \vskip\pcol at textfloatsep
+    \unvbox\@outputbox}%
+  \let\@elt\relax
+  \pcol at Fb
+  \xdef\@freelist{\@freelist\@toplist}%
+  \pcol at Fe{cflt}%
+  \global\let\@toplist\@empty}
+
+\def\pcol at opcol{%
+  \pcol at Fb
+  \@next\@currbox\@freelist{\global\setbox\@currbox\vbox to\@colht{%
+      \boxmaxdepth\@maxdepth
+      \pcol at clearcst@unvbox\@outputbox}}\pcol at ovf
+  \pcol at Fe{opcol}%
+  \expandafter\@cons\csname pcol at shipped\number\pcol at currcol\endcsname\@currbox
+  \ifnum\pcol at currcol=\z@ \pcol at setpageno \fi
+  \pcol at nextpage
+  \pcol at checkshipped
+  \if at tempswa \pcol at outputcolumns\z@ \fi
+  \ifnum\pcol at page>\pcol at toppage \pcol at startpage
+  \else                          \pcol at getcurrpage
+  \fi
+  \pcol at floatplacement}
+
+\def\pcol at setpageno{\begingroup
+  \@tempcnta\pcol at page \advance\@tempcnta-\pcol at basepage
+  \let\@elt\relax \edef\reserved at a{\pcol at pages\pcol at currpage}%
+  \global\let\pcol at pages\@empty \global\let\pcol at currpage\@empty
+  \let\@elt\pcol at setpnoelt \reserved at a
+  \endgroup}
+\def\pcol at setpnoelt#1#2#3#4#5{%
+  {\let\@elt\relax \xdef\pcol at pages{\pcol at pages\pcol at currpage}}%
+  \ifnum\@tempcnta>\z@ \gdef\pcol at currpage{\@elt{#1}#2#3{#4}{#5}}%
+  \else \pcol at defcurrpage{\number\c at page}{#2}{#3}{#4}{#5}%
+    \advance\c at page\@ne
+    \ifpcol at paired\else \advance\c at page\@ne \fi
+  \fi
+  \advance\@tempcnta\m at ne}
+\def\pcol at defcurrpage#1#2#3#4#5{{%
+  \let\@elt\relax \xdef\pcol at currpage{\@elt{#1}#2#3{#4}{#5}}}}
+
+\def\pcol at nextpage{\begingroup
+  \@tempcnta\pcol at page \advance\@tempcnta-\pcol at basepage
+  \@tempswatrue
+  \let\@elt\pcol at nextpelt \pcol at pages
+  \global\advance\pcol at page\@ne
+  \endgroup}
+\def\pcol at nextpelt#1#2#3#4#5{%
+  \ifnum\@tempcnta<\z@
+    \ifvoid#2\@tempswafalse
+    \else\ifdim\dimen#2<\z@
+      \if at tempswa \global\advance\pcol at page\@ne \fi
+    \else \@tempswafalse
+    \fi\fi
+  \fi
+  \advance\@tempcnta\m at ne}
+
+\def\pcol at checkshipped{\@tempswatrue
+  \@tempcnta\z@ \@whilenum\@tempcnta<\pcol at ncol\do{%
+    \expandafter\ifx\csname pcol at shipped\number\@tempcnta\endcsname\@empty
+      \@tempswafalse \fi
+   \advance\@tempcnta\@ne}}
+
+\def\pcol at getcurrpage{\begingroup
+  \@tempcnta\pcol at page \advance\@tempcnta-\pcol at basepage
+  \let\@elt\pcol at getpelt \pcol at pages\pcol at currpage
+  \endgroup}
+\def\pcol at getpelt#1#2#3#4#5{%
+  \ifnum\@tempcnta=\z@
+    \pcol at getpinfo{#1}#2#3{#4}{#5}%
+                  {\global\c at page}{\global\@colht}{\global\topskip}%
+  \fi
+  \advance\@tempcnta\m at ne}
+\def\pcol at getpinfo#1#2#3#4#5#6#7#8{\pcol at nospantrue
+  \gdef\pcol at spanning{#2}\gdef\pcol at footins{#3}\gdef\pcol at sptextlist{#4}%
+  \gdef\pcol at mparbottom{#5}%
+  #6#1\relax
+  \ifvoid#2\relax #7\textheight #8\pcol at topskip
+  \else #7\dimen#2\relax #8\skip#2\relax \pcol at nospanfalse
+  \fi}
+\def\pcol at getcurrpinfo{%
+  \edef\reserved at a{\expandafter\@cdr\pcol at currpage\@nil}%
+  \expandafter\pcol at getpinfo\reserved at a}
+
+\def\pcol at floatplacement{%
+  \global\@textfloatsheight\z@ \global\pcol at textfloatsep\maxdimen
+  \@floatplacement}
+
+%% Starting New Page
+
+\def\pcol at startpage{%
+  \global\let\pcol at firstprevdepth\relax
+  \global\pcol at toppage\pcol at page
+  \ifx\pcol at currpage\@empty\else
+    \pcol at getcurrpinfo{\global\c at page}\@tempdima\@tempskipa
+    \@cons\pcol at pages
+      {{\number\c at page}\pcol at spanning\pcol at currfoot
+       {\pcol at sptextlist}{\pcol at mparbottom}}%
+    \stepcounter{page}\ifpcol at paired\else \stepcounter{page}\fi
+  \fi
+  \global\@colht\textheight
+  \global\topskip\pcol at topskip
+  \@dblfloatplacement \let\f at depth\z@
+  \@tryfcolumn\@dbldeferlist
+  \@whilesw\if at fcolmade\fi{%
+    \pcol at Fb
+    \@next\@currbox\@freelist{%
+      \global\setbox\@currbox\box\@outputbox}\pcol at ovf
+    \pcol at Fe{startpage(fcol)}%
+    \global\dimen\@currbox-\maxdimen
+    \global\skip\@currbox\pcol at topskip
+    \@cons\pcol at pages{{\number\c at page}\@currbox\voidb at x{}{}}%
+    \stepcounter{page}\ifpcol at paired\else \stepcounter{page}\fi
+    \global\advance\pcol at page\@ne \global\pcol at toppage\pcol at page
+    \@tryfcolumn\@dbldeferlist}%
+  \begingroup
+    \let\reserved at b\@dbldeferlist \let\reserved at c\@deferlist
+    \global\let\@dbldeferlist\@empty \global\let\@deferlist\@empty
+    \let\@elt\@sdblcolelt
+    \reserved at b
+    \let\@elt\relax \xdef\@dbldeferlist{\@dbldeferlist\@deferlist}%
+    \global\let\@deferlist\reserved at c
+  \endgroup
+  \ifx\@dbltoplist\@empty
+    \pcol at defcurrpage{\number\c at page}\voidb at x\voidb at x{}{}%
+  \else
+    \setbox\@tempboxa\vbox{}%
+    \begingroup
+      \let\@elt\@comdblflelt
+      \@dbltoplist
+      \let\@elt\relax
+      \pcol at Fb
+      \xdef\@freelist{\@freelist\@dbltoplist}%
+      \pcol at Fe{startpage(dbltop)}%
+      \global\let\@dbltoplist\@empty
+      \pcol at Fb
+      \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+        \unvbox\@tempboxa \vskip-\dblfloatsep \dblfigrule
+        \vskip\dbltextfloatsep}}\pcol at ovf
+      \pcol at Fe{startpage(spanning)}%
+      \global\dimen\@currbox\@colht
+      \global\skip\@currbox\pcol at topskip
+      \pcol at defcurrpage{\number\c at page}\@currbox\voidb at x{}{}%
+    \endgroup
+  \fi
+  \gdef\pcol at footins{\voidb at x}}
+
+%% Shipping Page Out
+
+\def\pcol at outputcolumns#1{\begingroup
+  \def\@elt{\pcol at outputelt#1}\@tempswatrue \pcol at outputflttrue
+  \let\reserved at b\pcol at pages \gdef\pcol at pages{}%
+  \reserved at b
+  \endgroup}
+\def\pcol at outputelt#1#2#3#4#5#6{%
+  \setbox\@outputbox\box\voidb at x
+  \pcol at getpinfo{#2}#3#4{#5}{#6}\c at page\@tempdima\@tempskipa
+  \ifdim\@tempdima<\z@
+    \ifpcol at outputflt
+      \def\pcol at bg@floatheight{\pcol at bg@textheight}%
+      \setbox\@outputbox\vbox to\textheight{%
+        \pcol at bg@paintbox{Ff}\unvbox\pcol at spanning}%
+      \pcol at Fb
+      \@cons\@freelist\pcol at spanning
+      \pcol at Fe{outputelt(spanning)}%
+      \ifnum\pcol at ncolleft<\pcol at ncol
+        \setbox\pcol at rightpage\vbox to\textheight{%
+          \ifpcol at paired\else \advance\c at page\@ne \fi
+          \pcol at bg@paintbox{Ff}\vfil}%
+      \fi
+    \else
+      \@cons\pcol at pages{{#2}#3#4{#5}{#6}}%
+    \fi
+  \else\if at tempswa
+    \ifnum#1=\z@ \@tempswafalse \fi
+    \ifnum\pcol at ncolleft<\pcol at ncol
+      \pcol at Logstart{\pcol at outputelt{right}}%
+      \pcol at ioutputelt\pcol at ncolleft\pcol at ncol\pcol at rightpage
+      \pcol at Logend{\pcol at outputelt{right}}%
+    \fi
+    \pcol at Logstart{\pcol at outputelt{left}}%
+    \pcol at ioutputelt\z@\pcol at ncolleft\@outputbox
+    \pcol at Logend{\pcol at outputelt{left}}%
+    \global\pcol at firstpagefalse
+  \else
+    \pcol at outputfltfalse
+    \@cons\pcol at pages{{#2}#3#4{#5}{#6}}%
+  \fi\fi
+  \ifvoid\@outputbox\else
+    \global\advance\pcol at basepage\@ne \@outputpage
+  \fi}
+
+\def\pcol at ioutputelt#1#2#3{\setbox#3\vbox to\textheight{%
+  \ifpcol at paired\else\ifnum#1=\z@\else \advance\c at page\@ne \fi\fi
+  \ifvoid\pcol at footins\else
+    \def\pcol at bg@footnoteheight{\@elt{\ht\pcol at footins}\@elt{\dp\pcol at footins}}%
+    \pcol at bg@paintbox{Nn}%
+    \pcol at shrinkcolbyfn\@tempdima\pcol at footins\relax
+  \fi
+  \ifpcol at nospan\else
+    \def\pcol at bg@floatheight{%
+      \@elt{\ht\pcol at spanning}\@elt{\dp\pcol at spanning}}%
+    \@tempdimb\ht\pcol at spanning \advance\@tempdimb\dp\pcol at spanning
+    \ifnum#1=\z@
+      \ifpcol at firstpage\else \pcol at bg@paintbox{Ff}\fi
+      \pcol at Fb
+      \@cons\@freelist\pcol at spanning \unvbox\pcol at spanning
+      \pcol at Fe{ioutputelt(spanning)}%
+    \else\ifpcol at firstpage
+      \ht\pcol at rightpage\ht\pcol at spanning
+      \dp\pcol at rightpage\dp\pcol at spanning
+      \box\pcol at rightpage \nointerlineskip
+    \else
+      \pcol at bg@paintbox{Ff}\pcol at phantom\pcol at spanning \nointerlineskip
+    \fi\fi
+    \advance\topmargin\@tempdimb
+  \fi
+  \pcol at buildcolseprule\@tempdima#1#2\@maxdepth \unvbox\@tempboxa
+  \hb at xt@\textwidth{%
+    \let\pcol@@hfil\relax
+    \@tempcnta#1\relax \@whilenum\@tempcnta<#2\do{%
+      \pcol at swapcolumn\@tempcnta\@tempcntb#1#2\relax
+      \expandafter\@next\expandafter\@currbox
+        \csname pcol at shipped\number\@tempcntb\endcsname
+        \relax{\let\@currbox\voidb at x}%
+      \ifvoid\@currbox\else
+        \pcol at Fb
+        \@cons\@freelist\@currbox
+        \pcol at Fe{ioutputelt(page)}%
+      \fi
+      \expandafter\@tempdima
+        \csname pcol at columnwidth\number\@tempcntb \endcsname
+      \pcol@@hfil \hb at xt@\@tempdima{\box\@currbox\hss}%
+      \edef\pcol@@hfil{\noexpand\pcol at hfil{\pcol at colsepid}}%
+     \advance\@tempcnta\@ne}}%
+  \ifvoid\pcol at footins\else
+    \ifnum#1=\z@
+      \pcol at Log\pcol at outputelt{output}\pcol at footins
+      \pcol at putfootins\pcol at footins
+      \pcol at Fb
+      \@cons\@freelist\pcol at footins
+      \pcol at Fe{ioutputelt(footins)}%
+    \else
+      \vskip\skip\pcol at footins \nointerlineskip
+      \pcol at phantom\pcol at footins \vskip\z@
+    \fi
+  \fi
+  \boxmaxdepth\@maxdepth}}
+\def\pcol at phantom#1{{%
+  \setbox\@tempboxa\vbox{}\ht\@tempboxa\ht#1\dp\@tempboxa\dp#1\box\@tempboxa}}
+
+\def\pcol at buildcolseprule#1#2#3#4{%
+  \@tempdima#1\relax \dimen@#4\relax
+  \let\pcol at bg@from#2\relax \let\pcol at bg@to#3\relax
+  \setbox\pcol at tempboxa\vbox{}\setbox\@tempboxa\vbox{}%
+  \let\@elt\pcol at buildcselt@S \pcol at sptextlist
+  \@tempdimb\z@ \let\@elt\pcol at buildcselt \pcol at sptextlist
+  \let\@elt\relax \advance\@tempdima-\@tempdimb
+  \ifdim\@tempdima>\z@
+    \setbox\pcol at tempboxa\vbox{\unvbox\pcol at tempboxa
+      \hrule\@height\@tempdima\@width\columnseprule}%
+    \setbox\@tempboxa\vbox{\unvbox\@tempboxa
+      \let\@elt\relax
+      \edef\pcol at bg@columntop{\number\@tempdimb sp}%
+      \edef\pcol at bg@columnheight{%
+        \@elt{\number\@tempdima sp}\@elt{\number\dimen@ sp}}%
+      \pcol at bg@paintcolumns}%
+  \fi}
+\def\pcol at buildcselt@S#1#2{%
+  \setbox\@tempboxa\vbox{\unvbox\@tempboxa
+    \let\@elt\relax
+    \def\pcol at bg@spanningtop{\@elt{#1sp}}%
+    \advance\@tempdima-#1sp\relax \advance\@tempdima-#2sp\relax
+    \advance\dimen@\@tempdima
+    \edef\pcol at bg@spanningheight{\@elt{#2sp}%
+      \ifdim\@tempdima>\z@\else \@elt{\number\dimen@ sp}\fi}%
+    \pcol at bg@paintbox{S}}}
+\def\pcol at buildcselt#1#2{%
+  \@tempdimc#1sp \advance\@tempdimc-\@tempdimb
+  \setbox\pcol at tempboxa\vbox{\unvbox\pcol at tempboxa
+    \ifdim\@tempdimc>\z@ \hrule\@height\@tempdimc\@width\columnseprule \fi
+    \vskip#2sp}%
+  \setbox\@tempboxa\vbox{\unvbox\@tempboxa
+    \let\@elt\relax
+    \edef\pcol at bg@columntop{\number\@tempdimb sp}%
+    \edef\pcol at bg@columnheight{\@elt{\number\@tempdimc sp}}%
+    \ifdim\@tempdimc>\z@ \pcol at bg@paintcolumns \fi
+    \def\pcol at bg@spanningtop{\@elt{#1sp}}%
+    \advance\@tempdima-#1sp\relax \advance\@tempdima-#2sp\relax
+    \advance\dimen@\@tempdima
+    \edef\pcol at bg@spanningheight{\@elt{#2sp}%
+      \ifdim\@tempdima>\z@\else \@elt{\number\dimen@ sp}\fi}%
+    \pcol at bg@paintbox{s}}%
+  \@tempdimb#1sp \advance\@tempdimb#2sp\relax}
+
+\def\pcol at hfil#1{{%
+  \@tempdima\csname pcol at columnsep#1\endcsname\relax
+  \ifdim\columnseprule>\z@
+    \hskip.5\@tempdima\@plus1fil\relax
+    \hskip-.5\columnseprule
+    \@ifundefined{pcol at colseprulecolor#1}%
+      {\pcol at colseprulecolor}{\@nameuse{pcol at colseprulecolor#1}}%
+    \copy\pcol at tempboxa \hskip-.5\columnseprule
+    \hskip.5\@tempdima\@plus1fil\relax
+  \else \hskip\@tempdima\@plus1fil\relax
+  \fi}}
+
+\let\pcol@@outputpage\@outputpage
+\def\@outputpage{\begingroup
+  \@tempdima\topmargin \advance\@tempdima\headheight \advance\@tempdima\headsep
+  \ifpcol at output
+    \setbox\pcol at tempboxa\vtop{\vskip\@tempdima \global\pcol at bg@paintedfalse
+     \let\pcol at bg@from\z@ \let\pcol at bg@to\pcol at ncolleft
+     \pcol at bg@paintpage}%
+    \ifpcol at bg@painted \@tempswatrue \else \@tempswafalse \fi
+    \setbox\@tempboxa\vtop{\vskip\@tempdima \global\pcol at bg@paintedfalse
+      \ifpcol at paired\else \advance\c at page\@ne \fi
+      \let\pcol at bg@from\pcol at ncolleft \let\pcol at bg@to\pcol at ncol
+      \pcol at bg@paintpage}%
+  \else
+    \def\reserved at a{\vskip\@tempdima \global\pcol at bg@paintedfalse
+      \ifpcol at havelastpage \ifx\set at color\relax\else
+        \pcol at bg@@paintpage \pcol at bg@@paintbox{Pp}%
+      \fi\fi}%
+    \setbox\pcol at tempboxa\vbox{%
+      \let\pcol at bg@preposttop\pcol at bg@preposttop at left
+      \let\pcol at bg@from\z@ \let\pcol at bg@to\pcol at ncolleft \reserved at a}%
+    \ifpcol at bg@painted \@tempswatrue \else \@tempswafalse \fi
+    \setbox\@tempboxa\vbox{\ifpcol at paired\else \advance\c at page\@ne \fi
+      \let\pcol at bg@preposttop\pcol at bg@preposttop at right
+      \let\pcol at bg@from\pcol at ncolleft \let\pcol at bg@to\pcol at ncol
+      \reserved at a}%
+    \ifvoid\pcol at rightpage\else
+      \pcol at Logstart{\@outputpage{rightset}}%
+      \setbox\pcol at rightpage\vbox to\textheight{\unvbox\pcol at rightpage \vfil}%
+      \pcol at Logend{\@outputpage{rightset}}%
+    \fi
+  \fi
+  \ht\pcol at tempboxa\z@ \dp\pcol at tempboxa\z@
+  \ht\@tempboxa\z@ \dp\@tempboxa\z@
+  \ifodd\c at page                                 \pcol at swapcolumnfalse \fi
+  \ifnum\pcol at ncolleft<\pcol at ncol\else          \pcol at swapcolumnfalse \fi
+  \ifpcol at output\else \ifpcol at havelastpage\else \pcol at swapcolumnfalse \fi\fi
+  \@tempcnta\c at page
+  \ifpcol at paired\else \advance\@tempcnta\@ne    \pcol at swapcolumnfalse \fi
+  \ifpcol at swapcolumn \pcol at outputpage@r\c at page \pcol at outputpage@l\@tempcnta
+  \else              \pcol at outputpage@l\c at page \pcol at outputpage@r\@tempcnta
+  \fi
+  \global\pcol at havelastpagefalse \gdef\pcol at bg@preposttop at left{0pt}%
+  \global\let\pcol at bg@preposttop at right\pcol at bg@preposttop at left
+  \global\let\pcol at mparbottom@out\pcol at mparbottom@zero
+  \endgroup}
+
+\def\pcol at outputpage@l#1{%
+  \pcol at Logstart{\@outputpage{left}}%
+  \global\c at page#1\relax
+  \let\@themargin\oddsidemargin
+  \if at twoside\ifodd\c at page\else \let\@themargin\evensidemargin \fi\fi
+  \if at tempswa \everyvbox{\pcol at outputpage@ev\pcol at tempboxa}\fi
+  \pcol@@outputpage
+  \pcol at Logend{\@outputpage{left}}}
+\def\pcol at outputpage@r#1{%
+  \begingroup
+  \ifvoid\pcol at rightpage\else
+    \global\c at page#1\relax
+    \let\@outputbox\pcol at rightpage
+    \pcol at Logstart{\@outputpage{right}}%
+    \let\@themargin\oddsidemargin
+    \if at twoside\ifodd\c at page\else \let\@themargin\evensidemargin \fi\fi
+    \ifpcol at bg@painted \everyvbox{\pcol at outputpage@ev\@tempboxa}\fi
+    \pcol@@outputpage
+    \pcol at Logend{\@outputpage{right}}%
+  \fi
+  \endgroup}
+\def\pcol at outputpage@ev#1{%
+  \edef\reserved at a{\meaning\yoko}\edef\reserved at b{\string\yoko}%
+  \ifx\reserved at a\reserved at b \yoko\fi
+  \moveright\@themargin\box#1\nointerlineskip \everyvbox{}%
+  \ifx\reserved at a\reserved at b \let\yoko\relax \fi}
+
+%% Starting New Column Page
+
+\def\pcol at startcolumn#1{%
+  \@tempdima\@colht \@tempdimb\z@
+  \ifvoid\pcol at footins\else
+    \pcol at shrinkcolbyfn\@colht\pcol at footins\@tempdimb
+  \fi
+  \global\@colroom\@colht
+  \@tryfcolumn\@deferlist
+  \if at fcolmade\else
+    \pcol at trynextcolumn
+    \ifpcol at scfnote \ifnum#1>\z@
+      \ifvoid\pcol at footins\else
+        \edef\pcol at currfoot{\pcol at footins}%
+        \pcol at getcurrfoot\copy
+        \pcol at Log\pcol at startcolumn{insert}\footins
+        \insert\footins{\unvbox\footins}%
+        \ifnum\pcol at page=\pcol at toppage
+          \pcol at Fb
+          \@cons\@freelist\pcol at footins
+          \pcol at Fe{startcolumn(pagefn)}%
+        \fi
+      \fi
+      \ifnum\pcol at page=\pcol at toppage
+        \pcol at deferredfootins\pcol at startcolumn \fi
+    \fi\fi
+  \fi
+  \advance\@tempdima-\@colht
+  \global\advance\@colroom\@tempdima
+  \global\advance\@colht\@tempdima
+  \pcol at savecolorstack}
+\def\pcol at trynextcolumn{\begingroup
+  \let\reserved at b\@deferlist
+  \global\let\@deferlist\@empty
+  \let\@elt\@scolelt
+  \reserved at b
+  \endgroup}
+
+%% Background Painting
+
+\let\pcol at bg@to\pcol at ncol
+\def\pcol at bg@@paintpage{%
+  \pcol at bg@paint at i{%
+    \pcol at bg@paint at ii{TBLR}{G}{C}\pcol at bg@paint at ii{tblr}{}{}}}
+\def\pcol at bg@@paintcolumns{\pcol at bg@paint at i{\pcol at bg@paint at ii{}{g}{c}}}
+\def\pcol at bg@@paintbox#1{\pcol at bg@paint at i{\pcol at bg@paint at ii{#1}{}{}}}
+
+\def\pcol at bg@paint at i#1{%
+  \setbox\@tempboxa\vtop{\vskip\z@
+    \global\pcol at bg@paintedfalse
+    \let\pcol at bg@leftmargin\pcol at lrmargin
+    \pagerim-\pagerim \advance\pcol at bg@to\m at ne
+    \offinterlineskip #1}%
+  \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa\z@
+  \ifpcol at bg@painted \nointerlineskip \box\@tempboxa \nointerlineskip \fi}
+\def\pcol at bg@paint at ii#1#2#3{%
+  \pcol at bg@swappage\ifpcol at bg@swap\fi
+  \@tfor\reserved at b:=#1\do{\pcol at bg@paintregion\reserved at b\m at ne}%
+  \pcol at bg@swappage\ifpcol at swapcolumn\fi
+  \@tfor\reserved at b:=#2#3\do{%
+    \pcol at currcol\pcol at bg@from \@whilenum\pcol at currcol<\pcol at bg@to\do{%
+      \pcol at bg@paintregion\reserved at b\pcol at currcol
+     \advance\pcol at currcol\@ne}}%
+  \@tfor\reserved at b:=#3\do{\pcol at bg@paintregion\reserved at b\pcol at currcol}}
+\def\pcol at bg@swappage#1#2{%
+  \pcol at bg@leftmargin\oddsidemargin \pcol at bg@@swapfalse
+  \ifodd\c at page\else
+    \if at twoside \pcol at bg@leftmargin\evensidemargin \fi
+    #1% \ifpcol@{bg at swap,swapcolumn}
+    \pcol at bg@@swaptrue
+    \advance\pcol at bg@leftmargin\textwidth \advance\pcol at bg@leftmargin2in
+    \advance\pcol at bg@leftmargin-\paperwidth
+    \pcol at bg@leftmargin-\pcol at bg@leftmargin
+    #2% \fi
+  \fi}
+
+\def\pcol at bg@paintregion#1#2{%
+  \@ifundefined{pcol at bg@color@#1@\number#2}%
+    {\def\reserved at a{#1}}{\edef\reserved at a{#1@\number#2}}%
+  \@ifundefined{pcol at bg@color@\reserved at a}\relax
+    {\setbox\@tempboxa\vtop{\vskip\z@
+       \expandafter\expandafter\expandafter
+         \pcol at bg@paintregion at i\csname pcol at bg@@#1\endcsname}%
+     \global\pcol at bg@paintedtrue
+     \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa\z@ \box\@tempboxa}}
+\def\pcol at bg@paintregion at i#1#2#3#4{%
+  \pcol at bg@calculate\@tempdima\z@{#1}%
+  \pcol at bg@calculate\@tempdimb\z@{#2}%
+  \pcol at bg@calculate\@tempdimc\@tempdima{#3}%
+  \pcol at bg@calculate\dimen@\@tempdimb{#4}%
+  \pcol at bg@addext\@tempdima{-}{l}\pcol at bg@addext\@tempdimc{}{r}%
+  \pcol at bg@addext\@tempdimb{-}{t}\pcol at bg@addext\dimen@{}{b}%
+  \vskip\@tempdimb
+  \ifpcol at bg@@swap
+    \advance\@tempdima-\@tempdimc \@tempdima-\@tempdima
+    \advance\@tempdimc-\textwidth \@tempdimc-\@tempdimc
+    \moveright\@tempdimc\hbox{%
+      \advance\dimen at -\@tempdimb
+      \edef\current at color{\@nameuse{pcol at bg@color@\reserved at a}}\pcol at set@color
+      \vrule\@width\@tempdima\@height\dimen@}%
+  \else
+    \moveright\@tempdima\hbox{%
+      \advance\@tempdimc-\@tempdima \advance\dimen at -\@tempdimb
+      \edef\current at color{\@nameuse{pcol at bg@color@\reserved at a}}\pcol at set@color
+      \vrule\@width\@tempdimc\@height\dimen@}%
+  \fi}
+
+\def\pcol at bg@calculate#1#2#3{\let\pcol at bg@dimen#1\relax
+  \let\@elt\pcol at bg@advance \pcol at bg@dimen#2\relax #3}
+\def\pcol at bg@negative#1{\let\@elt\pcol at bg@nadvance #1\relax
+  \let\@elt\pcol at bg@advance}
+\def\pcol at bg@advance#1{\advance\pcol at bg@dimen#1\relax}
+\def\pcol at bg@nadvance#1{\advance\pcol at bg@dimen-#1\relax}
+
+\def\pcol at bg@addext#1#2#3{%
+  \dimen at ii\@nameuse{pcol at bg@ext@#3@\reserved at a}\relax
+  \ifdim\dimen at ii<9000\p@\relax \advance#1#2\dimen at ii
+  \else
+    \pcol at bg@calculate#1\z@{\@nameuse{pcol at bg@ext at inf@#3}}%
+    \advance\dimen at ii-\@M\p@ \advance#1#2\dimen at ii
+  \fi}
+\def\pcol at bg@ext at inf@l{\pcol at bg@negative\pcol at bg@pageleft}
+\def\pcol at bg@ext at inf@r{\pcol at bg@negative\pcol at bg@pageleft
+  \pcol at bg@paperwidth}
+\def\pcol at bg@ext at inf@t{\pcol at bg@negative\pcol at bg@pagetop}
+\def\pcol at bg@ext at inf@b{\pcol at bg@negative\pcol at bg@pagetop
+  \pcol at bg@paperheight}
+
+\def\pcol at bg@paperwidth{\@elt\paperwidth \@elt{2\pagerim}}
+\def\pcol at bg@paperheight{\@elt\paperheight \@elt{2\pagerim}}
+\def\pcol at bg@pageleft{\@elt{1in}\@elt\pcol at bg@leftmargin \@elt\pagerim}
+\def\pcol at bg@pagetop{\@elt{1in}\@elt\topmargin \@elt\headheight \@elt\headsep
+  \@elt\pagerim}
+\def\pcol at bg@textheight{\@elt\textheight \@elt\@maxdepth}
+\def\pcol at bg@columnleft{%
+  \@tempcnta\pcol at bg@from \@whilenum\@tempcnta<\pcol at currcol\do{%
+    \@elt{\@nameuse{pcol at columnwidth\number\@tempcnta}}%
+    \@elt{\@nameuse{pcol at columnsep\number\@tempcnta}}%
+   \advance\@tempcnta\@ne}}
+\def\pcol at bg@columnright{\pcol at bg@columnleft \pcol at bg@columnwidth}
+\def\pcol at bg@columnwidth{\@elt{\@nameuse{pcol at columnwidth\number\pcol at currcol}}}
+\def\pcol at bg@columnsep{\@elt{\@nameuse{pcol at columnsep\number\pcol at currcol}}}
+\def\pcol at bg@preposttop at left{0pt}
+\let\pcol at bg@preposttop at right\pcol at bg@preposttop at left
+
+\def\pcol at bg@@c{%
+  {\pcol at bg@columnleft}%
+  {\@elt\pcol at bg@columntop}%
+  {\pcol at bg@columnwidth}%
+  {\pcol at bg@columnheight}}
+\def\pcol at bg@@C{%
+  {\pcol at bg@columnleft}%
+  {}%
+  {\pcol at bg@columnwidth}%
+  {\pcol at bg@textheight}}
+\def\pcol at bg@@g{%
+  {\pcol at bg@columnright}%
+  {\@elt\pcol at bg@columntop}%
+  {\pcol at bg@columnsep}%
+  {\pcol at bg@columnheight}}
+\def\pcol at bg@@G{%
+  {\pcol at bg@columnright}%
+  {}%
+  {\pcol at bg@columnsep}%
+  {\pcol at bg@textheight}}
+\def\pcol at bg@@s{%
+  {}%
+  {\pcol at bg@spanningtop}%
+  {\@elt\textwidth}%
+  {\pcol at bg@spanningheight}}
+\def\pcol at bg@@t{%
+  {\pcol at bg@negative\pcol at bg@pageleft}%
+  {\pcol at bg@negative\pcol at bg@pagetop}%
+  {\pcol at bg@paperwidth}%
+  {\pcol at bg@pagetop}}
+\def\pcol at bg@@b{%
+  {\pcol at bg@negative\pcol at bg@pageleft}%
+  {\pcol at bg@textheight}%
+  {\pcol at bg@paperwidth}%
+  {\pcol at bg@paperheight
+    \pcol at bg@negative{\pcol at bg@pagetop \pcol at bg@textheight}}}
+\def\pcol at bg@@l{%
+  {\pcol at bg@negative\pcol at bg@pageleft}%
+  {}%
+  {\pcol at bg@pageleft}%
+  {\pcol at bg@textheight}}
+\def\pcol at bg@@r{%
+  {\@elt\textwidth}%
+  {}%
+  {\pcol at bg@paperwidth
+    \pcol at bg@negative{\pcol at bg@pageleft \@elt\textwidth}}%
+  {\pcol at bg@textheight}}
+\def\pcol at bg@@f{%
+  {}%
+  {}%
+  {\@elt\textwidth}%
+  {\pcol at bg@floatheight}}
+\def\pcol at bg@@n{%
+  {}%
+  {\pcol at bg@textheight
+    \pcol at bg@negative{\pcol at bg@footnoteheight \@elt{\skip\footins}}}%
+  {\@elt\textwidth}%
+  {\pcol at bg@footnoteheight \@elt{\skip\footins}}}
+\def\pcol at bg@@p{%
+  {}%
+  {\@elt\pcol at bg@preposttop}%
+  {\@elt\textwidth}%
+  {\pcol at bg@textheight \pcol at bg@negative{\@elt\pcol at bg@preposttop}}}
+\let\pcol at bg@@S\pcol at bg@@s
+\let\pcol at bg@@T\pcol at bg@@t
+\let\pcol at bg@@B\pcol at bg@@b
+\let\pcol at bg@@L\pcol at bg@@l
+\let\pcol at bg@@R\pcol at bg@@r
+\let\pcol at bg@@F\pcol at bg@@f
+\let\pcol at bg@@N\pcol at bg@@n
+\let\pcol at bg@@P\pcol at bg@@p
+
+%% Special Output Routines: Dispatcher
+
+\def\pcol at op@start{-10010}
+\def\pcol at op@switch{-10011}
+\def\pcol at op@flush{-10012}
+\def\pcol at op@clear{-10013}
+\def\pcol at op@end{-10014}
+
+\def\pcol at specialoutput{%
+  \ifnum\outputpenalty=\pcol at op@start\relax
+    \let\reserved at a\pcol at output@start
+  \else\ifnum\outputpenalty=\pcol at op@switch\relax
+    \let\reserved at a\pcol at output@switch
+  \else\ifnum\outputpenalty=\pcol at op@flush\relax
+    \let\reserved at a\pcol at output@flush
+  \else\ifnum\outputpenalty=\pcol at op@clear\relax
+    \let\reserved at a\pcol at output@clear
+  \else\ifnum\outputpenalty=\pcol at op@end\relax
+    \let\reserved at a\pcol at output@end
+  \else \let\reserved at a\@specialoutput
+  \fi\fi\fi\fi\fi
+  \ifnum\outputpenalty=-\@Miv\relax
+    \ifvoid\footins\else \pcol at Log\dummy{dummy}\footins \fi
+  \fi
+  \ifx\reserved at a\@specialoutput\else
+    \global\setbox\@holdpg\vbox{\unvbox\@holdpg \unvbox\@cclv
+      \setbox\@tempboxa\lastbox \unskip}%
+    \outputpenalty-\@M
+  \fi
+  \reserved at a}
+
+%% Special Output Routines: Building First Page
+
+\def\pcol at output@start{%
+  \global\pcol at outputtrue
+  \global\pcol at page\z@ \global\pcol at toppage\z@ \global\pcol at basepage\z@
+  \global\let\pcol at pages\@empty
+  \global\let\@dbldeferlist\@deferlist \global\let\@deferlist\@empty
+  {\def\@elt##1{\global\dp##1\z@}\@dbldeferlist}%
+  \setbox\z@\box\pcol at topfnotes
+  \@tempdima\@colroom
+  \advance\@tempdima-\ht\@holdpg \advance\@tempdima-\dp\@holdpg
+  \ifvoid\footins\else
+    \advance\@tempdima-\skip\footins
+    \advance\@tempdima-\ht\footins \advance\@tempdima-\dp\footins
+    \advance\@tempdima-\belowfootnoteskip
+  \fi
+  \ifx\@botlist\@empty\else \advance\@tempdima-\textfloatsep \fi
+  \ifdim\@tempdima<1.5\baselineskip
+    \setbox\@cclv\box\@holdpg \@makecol
+    \pcol at outputfalse \@outputpage \pcol at outputtrue
+    \global\let\pcol at currpage\@empty \pcol at startpage
+    \global\topskip\pcol at topskip \global\pcol at firstpagefalse
+  \else
+    \pcol at makenormalcol
+    \@tempdima\ht\@outputbox \advance\@tempdima\dp\@outputbox
+    \global\advance\@colht-\@tempdima
+    \def\reserved at a{%
+      \ifdim\pcol at bg@preposttop=\@tempdima\else
+        \edef\pcol at bg@textheight{\@elt{\number\@tempdima sp}}%
+        \pcol at bg@paintbox{Pp}%
+      \fi}
+    \ifnum\pcol at ncolleft<\pcol at ncol
+      \global\setbox\pcol at rightpage\vbox{%
+        \ifpcol at paired\else \advance\c at page\@ne \fi
+        \let\pcol at bg@preposttop\pcol at bg@preposttop at right
+        \reserved at a \unvbox\pcol at rightpage}%
+    \fi
+    \pcol at Fb
+    \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+      \let\pcol at bg@preposttop\pcol at bg@preposttop at left
+      \reserved at a \unvbox\@outputbox}}\pcol at ovf
+    \pcol at Fe{output at start(preenv)}%
+    \global\dimen\@currbox\@colht
+    \ifdim\@tempdima=\z@ \@tempskipa\topskip \else \@tempskipa\z@ \fi
+    \global\skip\@currbox\@tempskipa \global\topskip\@tempskipa
+    \def\pcol at do@mpbout at whole##1##2##3##4{%
+      \xdef\pcol at mparbottom@out{{##1}{##2}{##3}{##4}}}%
+    \def\pcol at do@mpbout at elem\@elt##1##2{\@elt{0}{\number\@mparbottom}}%
+    \pcol at do@mpbout
+    \pcol at bias@mpbout{-\@tempdima}%
+    \pcol at defcurrpage{\number\c at page}\@currbox\voidb at x{}{\pcol at mparbottom@out}%
+    \global\pcol at firstpagetrue
+  \fi
+  \global\@colroom\@colht \pcol at floatplacement
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do{%
+    \pcol at Fb
+    \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+      \ifdim\topskip=\z@ \hrule\@height\z@\@width\z@ \fi}}\pcol at ovf
+    \pcol at Fe{output at start(col)}%
+    \pcol at setcurrcolnf
+    \global\count\@currbox\z@
+    \global\dimen\@currbox\@colroom
+    \expandafter\gdef\csname pcol at shipped\number\pcol at currcol\endcsname{}%
+    \pcol at ifccdefined
+      {\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+        \def\current at color{\pcol at ccuse{}}\let\aftergroup\@gobble
+        \pcol at set@color}}\pcol at ovf}%
+      {\def\@currbox{\voidb at x}}%
+    \pcol at ccxdef{\@currbox}%
+   \advance\pcol at currcol\@ne}%
+  \global\pcol at currcol\z@
+  \pcol at getcurrcol
+  \pcol at savecolorstack
+  \pcol at Fb
+  \@cons\@freelist\@currbox \unvbox\@currbox
+  \pcol at Fe{output at start(col)}%
+  \ifvoid\footins\else
+    \pcol at Log\pcol at output@start{insert}\footins
+    \insert\footins{\box\footins\penalty\interlinepenalty}%
+  \fi
+  \if at nobreak \nobreak \else \addpenalty\interlinepenalty \fi}
+
+\def\pcol at makenormalcol{%
+  \ifpcol at mgfnote \setbox\@tempboxa\box\footins \fi
+  \begingroup
+  \ifx\@botlist\@empty
+    \ifvoid\footins \setbox\@outputbox\box\@holdpg
+    \else           \pcol at combinefootins\@holdpg\footins
+    \fi
+    \pcol at Fb
+    \let\@elt\relax \xdef\@freelist{\@freelist\@midlist}%
+    \pcol at Fe{makenormalcol}%
+    \global\let\@midlist\@empty
+    \pcol at combinefloats
+  \else
+    \pcol at lastpagetrue
+    \setbox\@cclv\box\@holdpg \let\@textbottom\relax \vbadness\@M
+    \@makecol
+  \fi
+  \global\setbox\@outputbox\vbox{\unvbox\@outputbox}%
+  \endgroup
+  \ifpcol at mgfnote \setbox\footins\box\@tempboxa \fi}
+
+%% Special Output Routines: Column-Switching
+
+\def\pcol at output@switch{%
+  \ifpcol at sptext\ifnum\pcol at currcol=\z@
+    \ifvoid\pcol at prespan \dimen@\z@ \else \dimen@\ht\pcol at prespan \fi
+    \global\advance\@colroom\dimen@
+    \pcol at addflhd\@toplist\pcol at textfloatsep
+    \pcol at getcurrpinfo\@tempcnta\@tempdima\@tempskipa
+    \@tempdimb\ht\@holdpg \advance\@tempdimb\dp\@holdpg
+    \@cons\pcol at sptextlist{{\number\dimen@}{\number\@tempdimb}}%
+    \pcol at defcurrpage{\number\@tempcnta}\pcol at spanning\pcol at footins
+                     {\pcol at sptextlist}{\pcol at mparbottom}%
+    \pcol at shiftspanning\@holdpg
+    \setbox\@holdpg\vbox{\unvbox\pcol at prespan \unvbox\@holdpg}%
+  \fi\fi
+  \pcol at Fb
+  \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{
+    \pcol at clearcst@unvbox\@holdpg}}\pcol at ovf
+  \pcol at Fe{output at switch}%
+  \def\pcol at currfoot{\voidb at x}%
+  \ifvoid\footins\else
+    \ifpcol at scfnote
+      \ifnum\pcol at page=\pcol at toppage
+        \pcol at getcurrpinfo\@tempcnta\@tempdima\@tempskipa
+        \pcol at Log\pcol at output@switch{save}\footins
+        \pcol at Fb
+        \pcol at savefootins\pcol at footins
+        \pcol at Fe{output at switch(pagefn)}%
+        \pcol at defcurrpage{\number\@tempcnta}\pcol at spanning\pcol at footins
+                         {\pcol at sptextlist}{\pcol at mparbottom}%
+      \else
+        \pcol at Log\pcol at output@switch{discard}\footins
+        \setbox\@tempboxa\box\footins
+      \fi
+    \else
+      \pcol at Log\pcol at output@switch{save}\footins
+      \pcol at Fb
+      \pcol at savefootins\pcol at currfoot
+      \pcol at Fe{output at switch(colfn)}%
+    \fi
+  \fi
+  \ifnum\pcol at currcol=\z@ \pcol at setpageno \fi
+  \pcol at setcurrcol
+  \global\count\@currbox\pcol at page
+  \global\dimen\@currbox\@colroom
+  \let\reserved at a\@nobreakfalse \let\reserved at b\@afterindentfalse
+  \ifpcol at sptext\ifnum\pcol at currcol=\z@
+    \if at nobreak \let\reserved at a\@nobreaktrue \fi
+    \if at afterindent \let\reserved at b\@afterindenttrue \fi
+    \@temptokena\everypar
+    \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do{%
+      \pcol at getcurrcol \reserved at a \reserved at b \everypar\@temptokena
+      \pcol at setcurrcol
+     \advance\pcol at currcol\@ne}%
+    \global\pcol at sptextfalse
+  \fi\fi
+  \@tempswafalse \ifpcol at sync \@tempswatrue \fi \ifpcol at clear \@tempswatrue \fi
+  \if at tempswa \pcol at sync \fi
+  \@tempswatrue
+  \ifpcol at clear \ifpcol at sync\else \@tempswafalse \fi\fi
+  \if at tempswa \pcol at restartcolumn \fi
+  \global\pcol at syncfalse}
+
+\def\pcol at shiftspanning#1{%
+  \ifpcol at swapcolumn\ifodd\c at page\else
+    \setbox#1\vbox{\@tempdima\textwidth \advance\@tempdima-\columnwidth
+      \moveleft\@tempdima\box#1}
+  \fi\fi}
+
+\def\pcol at restartcolumn{%
+  \global\pcol at currcol\pcol at nextcol
+  \pcol at getcurrcol
+  \global\pcol at page\count\@currbox
+  \global\@colroom\dimen\@currbox
+  \pcol at Fb
+  \@cons\@freelist\@currbox
+  \pcol at Fe{restartcolumn(col)}%
+  \pcol at getcurrpage
+  \ifpcol at scfnote
+    \edef\pcol at currfoot{\pcol at footins}%
+    \ifnum\pcol at page=\pcol at toppage
+      \@tempdima\@colht \@tempdimb\z@
+      \pcol at putbackmvl
+      \if at nobreak \nobreak \else \addpenalty\interlinepenalty \fi
+      \ifvoid\pcol at footins\else
+        \pcol at Fb
+        \pcol at getcurrfoot\box \@cons\@freelist\pcol at currfoot
+        \pcol at Fe{restartcolumn(pagefn)}%
+        \pcol at Log\pcol at restartcolumn{insert}\footins
+        \pcol at shrinkcolbyfn\@colht\footins\@tempdimb
+        \insert\footins{\unvbox\footins}%
+      \fi
+      \pcol at deferredfootins\pcol at restartcolumn
+      \@colht\@tempdima
+    \else
+      \ifvoid\pcol at footins\else
+        \pcol at getcurrfoot\copy
+        \pcol at Log\pcol at restartcolumn{insdmy}\footins
+        \insert\footins{\unvbox\footins}%
+      \fi
+      \pcol at putbackmvl
+      \if at nobreak \nobreak \else \addpenalty\interlinepenalty \fi
+    \fi
+  \else
+    \pcol at putbackmvl
+    \ifvoid\pcol at currfoot\else
+      \pcol at Fb
+      \pcol at getcurrfoot\box \@cons\@freelist\pcol at currfoot
+      \pcol at Fe{restartcolumn(colfn)}%
+      \pcol at Log\pcol at restartcolumn{insert}\footins
+      \insert\footins{\unvbox\footins}%
+    \fi
+    \if at nobreak \nobreak \else \addpenalty\interlinepenalty \fi
+  \fi}
+
+\def\pcol at getcurrcol{%
+  \expandafter\expandafter\expandafter\pcol at igetcurrcol
+    \csname pcol at col\number\pcol at currcol\endcsname
+  \expandafter\global\expandafter\columnwidth
+    \csname pcol at columnwidth\number\pcol at currcol\endcsname}
+\def\pcol at igetcurrcol#1#2#3#4#5#6#7#8#9{%
+  \def\@currbox{#1}\def\pcol at currfoot{#2}\global\pcol at prevdepth#3sp\relax
+  \gdef\@toplist{#4}\gdef\@midlist{#5}\gdef\@botlist{#6}\gdef\@deferlist{#7}%
+  \global\pcol at textfloatsep#8sp\pcol at iigetcurrcol#9}
+\def\pcol at iigetcurrcol#1#2#3#4#5#6#7#8{%
+  \global\@textfloatsheight#1sp\relax
+  \global\@topnum#2\relax \global\@toproom#3sp\relax
+  \global\@botnum#4\relax \global\@botroom#5sp\relax
+  \global\@colnum#6\relax
+  \global\@afterindentfalse \@nobreaktrue
+  \ifcase#7
+    \@nobreakfalse \or
+    \global\@afterindenttrue \else
+    \relax
+  \fi
+  \global\everypar{#8}}
+\def\pcol at getcurrfoot#1{%
+  \ifvoid\pcol at currfoot \global\setbox\footins\box\voidb at x
+  \else
+    \global\setbox\footins#1\pcol at currfoot
+    \global\count\footins\count\pcol at currfoot
+    \global\dimen\footins\dimen\pcol at currfoot
+    \global\skip\footins\skip\pcol at currfoot
+  \fi}
+\def\pcol at setcurrcol{{\let\@elt\relax
+  \@tempcnta\if at nobreak\if at afterindent\@ne\else\tw@\fi\else\z@\fi
+  \expandafter\xdef\csname pcol at col\number\pcol at currcol\endcsname{%
+    {\@currbox}{\pcol at currfoot}{\number\pcol at prevdepth}%
+    {\@toplist}{\@midlist}{\@botlist}{\@deferlist}{\number\pcol at textfloatsep}%
+    {{\number\@textfloatsheight}%
+     {\number\@topnum}{\number\@toproom}{\number\@botnum}{\number\@botroom}%
+     {\number\@colnum}{\number\@tempcnta}{\the\everypar}}}}}
+\def\pcol at setcurrcolnf{\def\pcol at currfoot{\voidb at x}\pcol at setcurrcol}
+
+\def\pcol at putbackmvl{%
+  \ifpcol at flush \pcol at sptextstartfalse \fi
+  \ifpcol at sync\else \pcol at sptextstartfalse \fi
+  \pcol at ifempty\@currbox
+   {\pcol at savecolorstack
+    \ifpcol at sptextstart \global\setbox\pcol at prespan\box\voidb at x \fi}%
+   {\global\setbox\pcol at colorstack@saved\box\voidb at x
+    \ifpcol at sptextstart
+      \global\setbox\pcol at prespan\vbox{%
+        \unvbox\@currbox \pcol at restorecolorstack}%
+      \global\advance\@colroom-\ht\pcol at prespan
+      \global\topskip\z@ \hrule\@height\z@\@width\z@
+    \else
+      \unvbox\@currbox \pcol at restorecolorstack
+    \fi}}
+
+%% Special Output Routines: Color Management
+
+\def\pcol at magicpenalty{12345}
+\def\pcol at ifempty#1#2#3{%
+  \setbox\@tempboxa\vbox{\penalty\pcol at magicpenalty
+    \unvcopy#1\xdef\@gtempa{\number\lastpenalty}}%
+  \ifnum\@gtempa=\pcol at magicpenalty\relax \def\reserved at a{#2}%
+  \else                                   \def\reserved at a{#3}%
+  \fi
+  \reserved at a}
+
+\def\pcol at clearcst@unvbox#1{%
+  \pcol at ifempty#1\relax
+   {\pcol at restorecst\pcol at colorstack@saved \unvbox#1\pcol at clearcolorstack}}
+\def\pcol at clearcolorstack{%
+  \def\reserved at a##1{\reset at color}\def\reserved at b##1{\reset at color}%
+  \pcol at scancst\pcol at colorins}
+
+\def\pcol at restorecolorstack{\pcol at restorecst\pcol at colorins}
+\def\pcol at restorecst{%
+  \def\reserved at a##1{\unvbox##1}\def\reserved at b##1{\unvcopy##1}%
+  \pcol at scancst}
+
+\def\pcol at scancst#1{%
+  \@tempcnta#1\relax
+  \ifnum\@tempcnta=\pcol at colorins
+    \ifvoid\pcol at ccuse{@box}\else
+      \reserved at b{\pcol at ccuse{@box}}\fi
+  \fi
+  \ifvoid\@tempcnta\else
+    \setbox\@tempboxa\vbox{}\setbox\pcol at tempboxa\vbox{}\@tempcntb\z@
+    \def\reserved at b{}\let\@elt\relax \@tempswatrue \pcol at iscancst
+    \global\setbox\@tempcnta\box\@tempboxa \unvbox\pcol at tempboxa
+  \fi}
+\def\pcol at iscancst{%
+  \setbox\@tempcnta\vbox{%
+    \unvbox\@tempcnta \global\setbox\pcol at tempboxb\lastbox}%
+  \ifvoid\pcol at tempboxb \let\reserved at c\relax
+  \else
+    \let\reserved at c\pcol at iscancst
+    \ifdim\ht\pcol at tempboxb=\z@
+      \ifdim\wd\pcol at tempboxb=\z@ \advance\@tempcntb\@ne
+      \else \edef\reserved at b{\@elt{\number\wd\pcol at tempboxb}\reserved at b}%
+      \fi
+    \else\ifdim\dp\pcol at tempboxb=\z@
+      \ifdim\wd\pcol at tempboxb=\z@
+        \ifnum\@tempcntb>\z@ \advance\@tempcntb\m at ne
+        \else
+          \setbox\@tempboxa\vbox{\copy\pcol at tempboxb \unvbox\@tempboxa}%
+          \setbox\pcol at tempboxa\vbox{%
+            \reserved at a\pcol at tempboxb \unvbox\pcol at tempboxa}%
+        \fi
+      \else
+        \count@\wd\pcol at tempboxb \chardef\reserved at d\z@
+        \def\@elt##1{\ifnum##1=\count@ \chardef\reserved at d\@ne \fi}%
+        \reserved at b \let\@elt\relax
+        \ifnum\reserved at d=\z@
+          \setbox\@tempboxa\vbox{\copy\pcol at tempboxb \unvbox\@tempboxa}%
+          \setbox\pcol at tempboxa\vbox{%
+            \reserved at a\pcol at tempboxb \unvbox\pcol at tempboxa}%
+        \fi
+      \fi
+    \else\if at tempswa
+      \ifvoid\pcol at ccuse{@box}%
+        \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{}}\pcol at ovf
+        \pcol at ccxdef{\@currbox}\reset at color
+      \fi
+      \global\setbox\pcol at ccuse{@box}\vbox{\unvbox\pcol at tempboxb}%
+      \@tempswafalse
+    \fi\fi\fi
+  \fi
+  \reserved at c}
+
+\def\pcol at savecolorstack{%
+  \ifvoid\pcol at colorins \@tempswafalse \else \@tempswatrue \fi
+  \ifvoid\pcol at ccuse{@box}%
+    \setbox\@tempboxa\box\voidb at x
+  \else
+    \setbox\@tempboxa\vbox{\unvcopy\pcol at ccuse{@box}}%
+    \ht\@tempboxa1sp \dp\@tempboxa\z@ \wd\@tempboxa\z@
+    \@tempswatrue
+  \fi
+  \if at tempswa
+    \global\setbox\pcol at colorstack@saved\vbox{%
+      \ifvoid\@tempboxa\else \box\@tempboxa \fi
+      \ifvoid\pcol at colorins\else \unvcopy\pcol at colorins \fi}
+  \else \global\setbox\pcol at colorstack@saved\box\voidb at x
+  \fi}
+
+\def\pcol at ccuse#1{\@nameuse{pcol at columncolor#1\number\pcol at currcol}}
+\def\pcol at ifccdefined#1#2{%
+  \expandafter\ifx\csname pcol at columncolor\number\pcol at currcol\endcsname\relax
+  #2\else#1\fi}
+\def\pcol at ccxdef#1{%
+  \expandafter\xdef
+    \csname pcol at columncolor@box\number\pcol at currcol\endcsname{#1}}
+
+%% Special Output Routines: Footnote Handling
+
+\def\pcol at savefootins#1{%
+  \@next#1\@freelist{%
+    \global\setbox#1\box\footins
+    \global\count#1\count\footins
+    \global\dimen#1\dimen\footins
+    \global\skip#1\skip\footins}{\def#1{\voidb at x}\pcol at ovf}}
+
+\def\pcol at shrinkcolbyfn#1#2#3{%
+  \ifx#3\relax\else #3-\skip#2\relax \fi
+  \advance#1-\ht#2\advance#1-\dp#2\advance#1-\skip#2\relax}
+\def\pcol at unvbox@cclv#1{%
+  \@tempdima\dp\@cclv \unvbox\@cclv
+  \vskip \ifdim\@tempdima>\@maxdepth -\@maxdepth \else -\@tempdima \fi
+  \vskip\skip#1\@tempdima\skip#1\vskip-\@tempdima}
+
+\def\pcol at deferredfootins#1{%
+  \ifdim\@tempdimb=\z@ \@tempdimb\@colht \advance\@tempdimb-\skip\footins
+  \else \@tempdimb\@colht
+  \fi
+  \ifvoid\pcol at topfnotes\else \ifdim\@tempdimb>\z@
+    \begingroup
+      \splitmaxdepth\@maxdepth \splittopskip\z@ \vbadness\@M
+      \setbox\@tempboxa\vsplit\pcol at topfnotes to\@tempdimb
+      \ifvoid\pcol at topfnotes\else
+        \global\setbox\pcol at topfnotes\vbox{\penalty\interlinepenalty
+          \unvbox\pcol at topfnotes}%
+      \fi
+      \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%
+      \ifdim\ht\@tempboxa>\z@
+        \pcol at Log#1{add}\@tempboxa
+        \insert\footins{\unvbox\@tempboxa}%
+      \fi
+    \endgroup
+  \fi\fi}
+
+\def\pcol at combinefootins#1#2{%
+  \setbox\@outputbox\vbox{%
+    \boxmaxdepth\@maxdepth
+    \unvbox#1\relax
+    \pcol at putfootins#2\unskip
+    \ifdim\belowfootnoteskip=\z@\else \vskip\belowfootnoteskip \fi}}
+\def\pcol at putfootins#1{%
+  \vskip\skip#1\relax
+  \color at begingroup
+    \normalcolor
+    \footnoterule
+    \unvbox#1\relax
+  \color at endgroup \vskip\z@}
+
+%% Special Output Routines: Marginal Notes
+
+\def\pcol at addmarginpar{%
+  \pcol at getcurrpage \@firstcolumntrue
+  \ifnum\pcol at currcol<\pcol at ncolleft
+    \let\reserved at a\z@ \let\reserved at b\pcol at ncolleft
+    \ifnum\pcol at mpthreshold@l>\pcol at currcol\else \@firstcolumnfalse \fi
+  \else
+    \let\reserved at a\pcol at ncolleft \let\reserved at b\pcol at ncol
+    \ifnum\pcol at mpthreshold@r>\pcol at currcol\else \@firstcolumnfalse \fi
+  \fi
+  \ifpcol at swapmarginpar
+    \ifodd\c at page\else
+      \if at firstcolumn \@firstcolumnfalse \else \@firstcolumntrue \fi
+    \fi
+    \ifpcol at paired\else \ifnum\pcol at currcol<\pcol at ncolleft\else
+      \if at firstcolumn \@firstcolumnfalse \else \@firstcolumntrue \fi
+    \fi\fi
+  \fi
+  \if at reversemargin
+    \if at firstcolumn \@firstcolumnfalse \else \@firstcolumntrue \fi
+  \fi
+  \pcol at swapcolumn\pcol at currcol\count@\reserved at a\reserved at b
+  \@tempdima\z@
+  \@tempcnta\reserved at a \@whilenum\@tempcnta<\count@\do{%
+    \pcol at swapcolumn\@tempcnta\@tempcntb\reserved at a\reserved at b
+    \advance\@tempdima\csname pcol at columnwidth\number\@tempcntb\endcsname\relax
+    \advance\@tempdima\csname pcol at columnsep\pcol at colsepid\endcsname\relax
+   \advance\@tempcnta\@ne}%
+  \if at firstcolumn \advance\marginparwidth\@tempdima
+  \else
+    \advance\marginparsep\textwidth \advance\marginparsep-\@tempdima
+    \advance\marginparsep-\columnwidth
+  \fi
+  \expandafter\@xnext\@currlist\@@\pcol at marbox\@gtempa
+  \if at firstcolumn\let\pcol at marbox\@currbox \fi
+  \@tempdima\@pageht \advance\@tempdima-\ht\pcol at marbox
+  \advance\@tempdima\dimen\@currbox
+  \@tempdimb\ht\pcol at marbox \advance\@tempdimb\dp\pcol at marbox
+  \advance\@tempdimb\marginparpush
+  \pcol at getmparbottom\@tempdima\@tempdimb
+  \begingroup
+    \@tempcnta\pcol at page \advance\@tempcnta-\pcol at basepage
+    \edef\reserved at a{\pcol at pages\pcol at currpage}%
+    \global\let\pcol at pages\@empty \global\let\pcol at currpage\@empty
+    \let\@elt\pcol at setmpbelt \reserved at a
+  \endgroup
+  \ifdim\dimen\@currbox=\z@\else
+    \ifdim\dimen\@currbox>\ht\pcol at marbox
+       \advance\@mparbottom-\dimen\pcol at marbox
+    \fi
+    \setbox\pcol at marbox\hbox{\lower\dimen\@currbox\box\pcol at marbox}%
+  \fi
+  \pcol@@addmarginpar}
+
+\def\pcol at getmparbottom#1#2{%
+  \global\@mparbottom\z@
+  \ifx\pcol at mparbottom\@empty
+    \begingroup
+      \@tempdimc#2\relax \advance\@tempdimc#1\relax \let\@elt\relax
+      \xdef\pcol at mpblist{\@elt{\number#1}{\number\@tempdimc}}%
+    \endgroup
+  \else
+    \expandafter\pcol at getmparbottom@i\pcol at mparbottom
+    \begingroup
+      \@tempdima#1\relax \@tempdimb#2\relax \@tempswafalse
+      \let\@elt\pcol at getmpbelt \global\let\pcol at mpblist\@empty \reserved at a
+      \if at tempswa\else
+        \ifdim\@tempdima<\@mparbottom \@tempdima\@mparbottom \fi
+        \advance\@tempdimb\@tempdima
+        \@cons\pcol at mpblist{{\number\@tempdima}{\number\@tempdimb}}%
+      \fi
+    \endgroup
+  \fi}
+\def\pcol at getmparbottom@i#1#2#3#4{%
+  \ifnum\pcol at currcol<\pcol at ncolleft
+    \if at firstcolumn \def\reserved at a{#1}\else\def\reserved at a{#2}\fi
+  \else
+    \if at firstcolumn \def\reserved at a{#3}\else\def\reserved at a{#4}\fi
+  \fi}
+\def\pcol at getmpbelt#1#2{%
+  \ifdim#1sp<\@tempdima
+    \global\@mparbottom#2sp\relax \@cons\pcol at mpblist{{#1}{#2}}%
+    \ifdim\@tempdima<#2sp\relax \@tempdima#2sp\relax \fi
+  \else
+    \@tempdimc\@tempdima \advance\@tempdimc\@tempdimb
+    \ifdim#1sp<\@tempdimc
+      \@tempdima#2sp\relax \global\@mparbottom#2sp\relax
+      \@cons\pcol at mpblist{{#1}{#2}}%
+    \else
+      \@cons\pcol at mpblist{{\number\@tempdima}{\number\@tempdimc}\@elt{#1}{#2}}%
+      \@tempswatrue
+      \def\pcol at getmpbelt##1##2{\@cons\pcol at mpblist{{##1}{##2}}}
+    \fi
+  \fi}
+
+\def\pcol at setmpbelt#1#2#3#4#5{%
+  {\let\@elt\relax \xdef\pcol at pages{\pcol at pages\pcol at currpage}}%
+  \ifnum\@tempcnta=\z@
+    \def\reserved at a{#5}%
+    \ifx\reserved at a\@empty \pcol at setmpbelt@i{}{}{}{}\else \pcol at setmpbelt@i#5\fi
+    \pcol at defcurrpage{#1}{#2}{#3}{#4}{\reserved at a}%
+  \else \gdef\pcol at currpage{\@elt{#1}#2#3{#4}{#5}}%
+  \fi
+  \advance\@tempcnta\m at ne}
+\def\pcol at setmpbelt@i#1#2#3#4{%
+  \ifnum\pcol at currcol<\pcol at ncolleft
+    \if at firstcolumn \def\reserved at a{{\pcol at mpblist}{#2}{#3}{#4}}%
+    \else           \def\reserved at a{{#1}{\pcol at mpblist}{#3}{#4}}%
+    \fi
+  \else
+    \if at firstcolumn \def\reserved at a{{#1}{#2}{\pcol at mpblist}{#4}}%
+    \else           \def\reserved at a{{#1}{#2}{#3}{\pcol at mpblist}}%
+    \fi
+  \fi}
+
+\gdef\pcol at mparbottom@zero{{\@elt{0}{0}}{\@elt{0}{0}}{\@elt{0}{0}}{\@elt{0}{0}}}
+\global\let\pcol at mparbottom@out\pcol at mparbottom@zero
+
+\def\pcol at do@mpbout{\expandafter\pcol at do@mpbout at i\pcol at mparbottom@out}
+\def\pcol at do@mpbout at i#1#2#3#4{\@tempcnta\@ne
+  \if at mparswitch \ifodd\c at page\else \@tempcnta\m at ne \fi\fi
+  \if at reversemargin \@tempcnta-\@tempcnta \fi
+  \ifnum\@tempcnta<\z@
+    \pcol at do@mpbout at whole{\pcol at do@mpbout at elem#1}{#2}{#3}{#4}%
+  \else
+    \pcol at do@mpbout at whole{#1}{\pcol at do@mpbout at elem#2}{#3}{#4}%
+  \fi}
+
+\def\pcol at bias@mpbout#1{\def\reserved at a{\pcol at bias@mpbout at i{#1}}%
+  \pcol at do@mpb at all\pcol at mparbottom@out}
+\def\pcol at bias@mpbout at i#1\@elt#2#3\@nil{%
+  \dimen@#2sp\relax \advance\dimen@#1\relax
+  \dimen at ii#3sp\relax \advance\dimen at ii#1\relax
+  \def\reserved at b{\@elt{\number\dimen@}{\number\dimen at ii}}}
+
+\def\pcol at getmparbottom@last#1{%
+  \ifx\pcol at mparbottom\@empty
+    \global\let\pcol at mparbottom@out\pcol at mparbottom@zero
+    \pcol at bias@mpbout{#1}%
+  \else
+    \def\reserved at a{\pcol at getmparbottom@last at i{#1}}%
+    \pcol at do@mpb at all\pcol at mparbottom
+  \fi}
+\def\pcol at getmparbottom@last at i#1#2\@nil{%
+  \edef\reserved at b{\@elt{\number#1}{\number#1}}%
+  \def\@elt##1##2{\def\reserved at b{\@elt{##1}{##2}}}%
+  #2\let\@elt\relax}
+
+\def\pcol at do@mpb at all#1{\expandafter\pcol at do@mpb at all@i#1}
+\def\pcol at do@mpb at all@i#1#2#3#4{\begingroup \let\@elt\relax
+  \gdef\pcol at mparbottom@out{}%
+  \pcol at do@mpb at all@ii#1\@nil\pcol at do@mpb at all@ii#2\@nil
+  \pcol at do@mpb at all@ii#3\@nil\pcol at do@mpb at all@ii#4\@nil
+  \endgroup}
+\def\pcol at do@mpb at all@ii#1\@nil{%
+  \reserved at a#1\@nil
+  \xdef\pcol at mparbottom@out{\pcol at mparbottom@out{\reserved at b}}}
+
+%% Special Output Routines: Synchronization
+
+\def\pcol at sync{%
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do\pcol at flushcolumn
+  \pcol at outputcolumns\@ne
+  \pcol at getcurrpinfo{\global\c at page}{\global\@colht}{\global\topskip}%
+  \@tempdima-\maxdimen \@tempdimb-\maxdimen \pcol at colht-\maxdimen
+  \@pageht-\maxdimen \@tempdimc\maxdimen \@pagedp\maxdimen \@tempcntb\z@
+  \pcol at dfloatsfalse
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do\pcol at measurecolumn
+  \@tempswatrue \global\pcol at flushfalse
+  \ifpcol at clear
+    \ifpcol at lastpage \@tempdimb\pcol at colht \else \@tempdimb\@pageht \fi
+    \ifpcol at sync \@tempswafalse \fi
+  \else
+    \ifdim\@tempdima<\z@      \@tempswafalse
+    \else\ifdim\@tempdimb<\z@ \@tempdimb\@tempdima
+    \else                     \advance\@tempdimb\@tempdima
+    \fi\fi
+  \fi
+  \ifpcol at scfnote\ifvoid\pcol at footins\else
+    \ifdim\@tempdimb<\z@ \@tempdimb\z@ \fi
+    \advance\@tempdimb\ht\pcol at footins \advance\@tempdimb\dp\pcol at footins
+    \advance\@tempdimb\skip\pcol at footins
+  \fi\fi
+  \dimen@\@tempdimb
+  \ifpcol at clear\else \ifdim\dimen@<\z@\else
+    \ifdim\@tempdimc=\maxdimen\else \ifdim\@tempdimc<\z@\else
+      \advance\dimen at -\@tempdimc
+    \fi\fi
+    \advance\dimen@\pcol@@ensurevspace
+    \ifdim\dimen@<\@tempdimb \dimen@\@tempdimb \fi
+  \fi\fi
+  \ifdim\dimen@>\@colht
+    \global\pcol at flushtrue \@tempswafalse \pcol at nextcol\@tempcntb
+  \fi
+  \ifdim\@tempdimb<\z@\else \if at tempswa
+    \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do\pcol at synccolumn
+  \fi\fi}
+
+\def\pcol at flushcolumn{%
+  \pcol at getcurrcol
+  \ifnum\count\@currbox<\pcol at toppage
+    \ifpcol at lastpage \pcol at lastpagesavetrue \else \pcol at lastpagesavefalse \fi
+    \pcol at lastpagefalse
+    \pcol at page\count\@currbox
+    \setbox\@cclv\vbox{\unvbox\@currbox \vfil}%
+    \ifvoid\pcol at currfoot\else
+      \pcol at Fb
+      \@cons\@freelist\pcol at currfoot
+      \pcol at Fe{flushcolumn(colfn)}%
+    \fi
+    \pcol at getcurrfoot\box
+    \pcol at getcurrpage
+    \ifvoid\pcol at footins
+      \ifdim\ht\@cclv>\@colht
+        \setbox\@cclv\vbox{\boxmaxdepth\@maxdepth \unvbox\@cclv \unskip}%
+      \fi
+    \else
+      \pcol at shrinkcolbyfn\@colht\pcol at footins\relax
+      \setbox\@cclv\vbox{\pcol at unvbox@cclv\pcol at footins}%
+    \fi
+    \pcol at Logstart{\pcol at flushcolumn(\number\c at page:\number\pcol at currcol)}
+    \ifdim\@toproom=\maxdimen
+      \setbox\@outputbox\pcol at makefcolpage \global\@toproom\z@
+    \else
+      \pcol@@makecol\@maxdepth
+    \fi
+    \pcol at Logend\pcol at flushcolumn
+    \global\setbox\@currbox\box\@outputbox
+    \expandafter\@cons\csname pcol at shipped\number\pcol at currcol\endcsname
+      \@currbox
+    \advance\pcol at page\@ne
+    \ifx\@deferlist\@empty\else
+      \@whilenum\pcol at page<\pcol at toppage\do{%
+        \pcol at getcurrpage
+        \ifvoid\pcol at footins\else
+          \pcol at shrinkcolbyfn\@colht\pcol at footins\relax
+        \fi
+        \@makefcolumn\@deferlist
+        \if at fcolmade
+          \pcol at Fb
+          \@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
+            \pcol at ovf
+          \pcol at Fe{flushcolumn(fcol)}%
+          \expandafter\@cons
+            \csname pcol at shipped\number\pcol at currcol\endcsname\@currbox
+        \fi
+       \advance\pcol at page\@ne}%
+    \fi
+    \ifpcol at lastpagesave \pcol at lastpagetrue \fi
+    \pcol at Fb
+    \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{}}\pcol at ovf
+    \pcol at Fe{flushcolumn(col)}%
+    \pcol at getcurrpinfo\@tempcnta{\global\@colht}\@tempskipa
+    \@pageht\@colht
+    \ifvoid\pcol at footins\else \pcol at shrinkcolbyfn\@colht\pcol at footins\relax \fi
+    \global\@colroom\@colht \pcol at floatplacement
+    \ifx\@deferlist\@empty\else
+      \ifpcol at clear
+        \pcol at makefcolumn \global\@colroom\@colht
+      \else
+        \pcol at trynextcolumn
+    \fi\fi
+    \pcol at setcurrcolnf
+    \global\count\@currbox\pcol at toppage
+    \advance\@pageht-\@colht \advance\@pageht\@colroom
+    \global\dimen\@currbox\@pageht
+  \fi %\ifnum\count\@currbox<\pcol at toppage
+  \advance\pcol at currcol\@ne}
+
+\def\pcol at makefcolumn{%
+  \ifpcol at lastpage \@tempdimc\floatsep \else \@tempdimc\@fpsep \fi
+  \@tempdima\@colht \advance\@tempdima\@tempdimc \global\@colroom-\@tempdimc
+  \begingroup
+    \let\@elt\pcol at makefcolelt
+    \let\reserved at b\@deferlist
+    \global\let\@deferlist\@empty
+    \reserved at b
+  \endgroup
+  \ifx\@toplist\@empty\else
+    \@tempswatrue
+    \ifpcol at lastpage \ifx\@deferlist\@empty \ifdim\@colroom<\@fpmin
+      \@tempswafalse \global\@toproom\maxdimen
+    \fi\fi\fi
+    \if at tempswa \global\setbox\@currbox\vbox{\pcol at makefcolpage}\fi
+  \fi}
+\def\pcol at makefcolelt#1{%
+  \@tempdimb\ht#1{}\advance\@tempdimb\dp#1{}\advance\@tempdimb\@tempdimc
+  \ifdim\@tempdimb>\@tempdima \@cons\@deferlist#1\relax
+    \@tempdima-\maxdimen
+  \else \@cons\@toplist#1\relax
+    \advance\@tempdima-\@tempdimb \global\advance\@colroom\@tempdimb
+  \fi}
+\def\pcol at makefcolpage{\vbox to\@colht{%
+    \vskip\@fptop \vskip-\@fpsep
+    \def\@elt##1{\vskip\@fpsep\box##1}\@toplist \vskip\@fpbot}%
+  \pcol at Fb
+  \xdef\@freelist{\@freelist\@toplist}\global\let\@toplist\@empty
+  \pcol at Fe{makefcolpage}%
+}
+
+\def\pcol at measurecolumn{%
+  \pcol at getcurrcol
+  \@tempswafalse
+  \dimen@\z@ \pcol at addflhd\@toplist\pcol at textfloatsep
+  \global\skip\@currbox\dimen@
+  \advance\dimen@\ht\@currbox \advance\dimen@\dp\@currbox \dimen at ii\dimen@
+  \pcol at ifempty\@currbox
+   {\global\pcol at prevdepth\maxdimen \pcol at setcurrcol}%
+   {\@tempswatrue}%
+  \pcol at measureupdate\@tempdima\dimen at ii\@tempdimc\pcol at prevdepth
+  \ifvoid\pcol at currfoot \dimen@\z@
+  \else
+    \dimen@\ht\pcol at currfoot \advance\dimen@\dp\pcol at currfoot
+    \advance\dimen@\skip\pcol at currfoot
+    \@tempswatrue
+  \fi
+  \pcol at addflhd\@botlist\maxdimen
+  \ifdim\dimen@>\@tempdimb \@tempdimb\dimen@ \fi
+  \advance\dimen@\dimen at ii
+  \if at tempswa \ifdim\dimen@>\@pageht
+    \@pageht\dimen@ \@tempcntb\pcol at currcol
+  \fi\fi
+  \dimen at ii\pcol at prevdepth
+  \ifpcol at bfbottom
+    \ifvoid\pcol at currfoot\else \dimen at ii\dp\pcol at currfoot \fi
+    \ifx\@botlist\@empty\else \dimen at ii\z@ \advance\dimen@\textfloatsep \fi
+  \else
+    \ifx\@botlist\@empty\else \dimen at ii\z@ \advance\dimen@\textfloatsep \fi
+    \ifvoid\pcol at currfoot\else \dimen at ii\dp\pcol at currfoot \fi
+  \fi
+  \pcol at measureupdate\pcol at colht\dimen@\@pagedp\dimen at ii
+  \ifx\@deferlist\@empty\else \pcol at dfloatstrue \fi
+  \advance\pcol at currcol\@ne}
+\def\pcol at addflhd#1#2{%
+  \ifx#1\@empty\else
+    \@tempswatrue
+    \let\@elt\pcol at hdflelt
+    #1\advance\dimen at -\floatsep
+    \ifdim#2=\maxdimen \advance\dimen@\textfloatsep
+    \else
+      \advance\dimen@\pcol at textfloatsep
+      \ifdim\pcol at textfloatsep>5000\p@ \advance\dimen at -\@M\p@ \fi
+    \fi
+    \let\@elt\relax
+  \fi}
+\def\pcol at hdflelt#1{\advance\dimen@\ht#1\advance\dimen@\dp#1%
+  \advance\dimen@\floatsep}
+\def\pcol at measureupdate#1#2#3#4{\if at tempswa
+  \ifdim#1<#2\relax#1#2\relax#3#4\relax
+  \else\ifdim#1=#2\ifdim#3>#4\relax#3#4\fi\fi\fi\fi}
+
+\def\pcol at synccolumn{%
+  \pcol at getcurrcol
+  \ifpcol at clear
+    \global\pcol at prevdepth\@m\p@
+    \global\setbox\@currbox\vbox{\unvbox\@currbox
+      \ifdim\pcol at textfloatsep=\maxdimen \vfil
+      \else \vskip\z@\@plus1fil\@minus.0001fil
+      \fi}%
+  \else
+    \@tempdimb\@tempdima
+    \advance\@tempdimb-\skip\@currbox
+    \ifdim\@tempdimc=\maxdimen
+      \ifdim\pcol at textfloatsep=\maxdimen \begingroup
+        \ifx\@toplist\@empty
+          \textfloatsep\z@ \floatsep\z@ \let\topfigrule\relax
+        \fi
+        \pcol at Fb
+        \@next\pcol at float\@freelist{\global\setbox\pcol at float\vbox to\z@{%
+          \vskip-\floatsep \topfigrule \vskip\textfloatsep
+          \unvbox\@currbox \vss}}\pcol at ovf
+        \pcol at Fe{synccolumn(topfloat)}%
+        \@cons\@toplist\pcol at float
+        \advance\@tempdimb\textfloatsep \advance\@tempdimb-\floatsep
+        \advance\@tempdimb\@M\p@
+        \global\pcol at prevdepth\@m\p@
+        \global\pcol at textfloatsep\@tempdimb
+      \endgroup \fi
+    \else
+      \global\pcol at prevdepth\@tempdimc
+      \ifdim\pcol at textfloatsep=\maxdimen
+        \global\pcol at textfloatsep\textfloatsep \fi
+      \global\setbox\@currbox\vbox{%
+        \ifdim\@tempdimb<\topskip
+          \vbox to\topskip{\unvbox\@currbox \vskip\z@\@plus.0001fil}%
+          \vskip-\topskip \vskip\@tempdimb
+        \else
+          \vbox to\@tempdimb{\unvbox\@currbox \vskip\z@\@plus.0001fil}%
+        \fi}%
+    \fi
+  \fi
+  \global\@topnum\z@ \pcol at setcurrcol
+  \advance\pcol at currcol\@ne}
+
+%% Special Output Routines: Page Flushing
+
+\def\pcol at output@flush{%
+  \pcol at makeflushedpage\@colht
+  \pcol at Logstart\pcol at output@flush
+  \setbox\@outputbox\vbox to\textheight{\boxmaxdepth\@maxdepth
+    \unvbox\@outputbox}%
+  \ifnum\pcol at ncolleft<\pcol at ncol
+    \setbox\pcol at rightpage\vbox to\textheight{\boxmaxdepth\@maxdepth
+      \unvbox\pcol at rightpage}%
+  \fi
+  \pcol at Logend\pcol at output@flush
+  \@outputpage
+  \pcol at freshpage}
+
+\def\pcol at output@clear{%
+  \pcol at makeflushedpage\@colht
+  \pcol at Logstart\pcol at output@clear
+  \setbox\@outputbox\vbox to\textheight{\boxmaxdepth\@maxdepth
+    \unvbox\@outputbox}%
+  \ifnum\pcol at ncolleft<\pcol at ncol
+    \setbox\pcol at rightpage\vbox to\textheight{\boxmaxdepth\@maxdepth
+      \unvbox\pcol at rightpage}%
+  \fi
+  \pcol at Logend\pcol at output@clear
+  \@outputpage
+  \pcol at flushfloats
+  \begingroup
+    \setbox\pcol at rightpage\box\voidb at x
+    \@dblfloatplacement \let\f at depth\z@
+    \@makefcolumn\@dbldeferlist
+    \@whilesw\if at fcolmade\fi{%
+      \def\pcol at bg@floatheight{\pcol at bg@textheight}%
+      \setbox\@outputbox\vbox to\textheight{%
+        \pcol at bg@paintbox{Ff}\unvbox\@outputbox}%
+      \ifnum\pcol at ncolleft<\pcol at ncol
+        \setbox\pcol at rightpage\vbox to\textheight{\pcol at bg@paintbox{Ff}\vfil}%
+      \fi
+      \@outputpage
+      \@makefcolumn\@dbldeferlist}%
+  \endgroup
+  \pcol at freshpage}
+
+\def\pcol at makeflushedpage#1{%
+  \pcol at cleartrue \pcol at output@switch \pcol at clearfalse
+  \pcol at getcurrpinfo{\global\c at page}{\global\@colht}\@tempskipa
+  \ifpcol at lastpage \@tempswafalse \else \@tempswatrue \fi
+  \ifdim\pcol at colht=-\maxdimen\else \@tempswatrue \fi
+  \ifvoid\pcol at footins\else \@tempswatrue \fi
+  \begingroup
+    \ifpcol at nospan
+      \global\setbox\@outputbox\box\voidb at x
+      \global\setbox\pcol at rightpage\box\voidb at x
+    \else
+      \ifpcol at dfloats \@tempswatrue \fi
+      \let\@elt\relax
+      \edef\pcol at bg@floatheight{%
+        \@elt{\number\ht\pcol at spanning sp}\@elt{\number\dp\pcol at spanning sp}}%
+      \def\reserved at a{%
+        \ifpcol at firstpage\else \if at tempswa \pcol at bg@paintbox{Ff}\fi\fi}%
+      \@tempdima\ht\pcol at spanning \advance\@tempdima\dp\pcol at spanning
+      \global\setbox\@outputbox\vbox{%
+        \reserved at a \unvbox\pcol at spanning
+        \ifpcol at firstpage\else \if at tempswa\else \unskip \fi\fi}%
+      \global\setbox\@outputbox\vbox{\box\@outputbox}%
+      \pcol at Fb
+      \@cons\@freelist\pcol at spanning
+      \pcol at Fe{makeflushedpage(spanning)}%
+      \ifnum\pcol at ncolleft<\pcol at ncol
+        \global\setbox\pcol at rightpage\vbox{%
+          \ifpcol at paired\else \advance\c at page\@ne \fi
+          \reserved at a \unvbox\pcol at rightpage}%
+        \global\ht\pcol at rightpage\ht\@outputbox
+        \global\dp\pcol at rightpage\dp\@outputbox
+        \global\setbox\pcol at rightpage\vbox{\box\pcol at rightpage}%
+      \fi
+      \advance\topmargin\@tempdima
+    \fi
+    \global\pcol at firstpagefalse
+    \if at tempswa
+      \ifvoid\pcol at footins\else
+        \pcol at shrinkcolbyfn\@colht\pcol at footins\relax
+      \fi
+      \let\pcol@@hfil\relax \@pageht\@colht
+      \ifpcol at lastpage \ifpcol at dfloats
+        \ifdim\pcol at colht<\z@ \def\@textbottom{\vfil}\fi
+        \pcol at lastpagefalse
+      \fi\fi
+      \ifpcol at lastpage \ifdim#1<\@colht \@colht#1\fi\fi
+      \ifdim\@colht<\z@ \else
+        \ifnum\pcol at ncolleft<\pcol at ncol
+          \pcol at imakeflushedpage\pcol at ncolleft\pcol at ncol\pcol at rightpage
+        \fi
+        \pcol at imakeflushedpage\z@\pcol at ncolleft\@outputbox
+      \fi
+    \fi
+    \gdef\pcol at fnheight@lpage{0pt}%
+    \ifvoid\pcol at footins\else
+      \@tempswatrue \ifpcol at lastpage \ifpcol at mgfnote \@tempswafalse \fi\fi
+      \if at tempswa
+        \pcol at Log\pcol at makeflushedpage{output}\pcol at footins
+        \@tempdima\ht\pcol at footins \advance\@tempdima\dp\pcol at footins
+        \xdef\pcol at fnheight@lpage{\number\@tempdima sp}%
+        \ifnum\pcol at ncolleft<\pcol at ncol
+          \global\setbox\pcol at rightpage\vbox{\unvbox\pcol at rightpage
+            \vskip\skip\pcol at footins \nointerlineskip
+            \pcol at phantom\pcol at footins \vskip\z@}%
+        \fi
+        \global\setbox\@outputbox\vbox{%
+          \unvbox\@outputbox \pcol at putfootins\pcol at footins}%
+        \pcol at Fb
+        \@cons\@freelist\pcol at footins \gdef\pcol at footins{\voidb at x}%
+        \pcol at Fe{makeflushedpage(pagefn)}%
+        \ifdim\pcol at colht=-\maxdimen \global\pcol at colht\z@ \fi
+      \fi
+    \fi
+  \endgroup}
+
+\def\pcol at imakeflushedpage#1#2#3{\global\setbox#3\vbox{%
+  \ifpcol at paired\else\ifnum#1=\z@\else \advance\c at page\@ne \fi\fi
+  \ifvoid\pcol at footins\else \ifpcol at lastpage\else
+    \def\pcol at bg@footnoteheight{%
+      \@elt{\ht\pcol at footins}\@elt{\dp\pcol at footins}}%
+    \pcol at bg@paintbox{Nn}%
+  \fi\fi
+  \unvbox#3\nointerlineskip
+  \ifpcol at lastpage \pcol at buildcolseprule\@colht#1#2\z@
+  \else            \pcol at buildcolseprule\@colht#1#2\@maxdepth
+  \fi
+  \unvbox\@tempboxa
+  \hb at xt@\textwidth{%
+    \@tempcntb#1\@whilenum\@tempcntb<#2\do{%
+      \pcol at swapcolumn\@tempcntb\pcol at currcol#1#2\relax
+      \pcol at getcurrcol
+      \setbox\@cclv\box\@currbox
+      \ifvoid\pcol at currfoot\else
+        \pcol at Fb
+        \@cons\@freelist\pcol at currfoot
+        \pcol at Fe{imakeflushedpage(colfn)}%
+      \fi
+      \pcol at getcurrfoot\box
+      \@tempswafalse
+      \begingroup
+        \ifdim\@toproom=\maxdimen
+          \let\topfigrule\relax \ifdim\@colht=\@pageht \@tempswatrue \fi
+        \fi
+        \if at tempswa
+          \pcol at Logstart{\pcol at makeflushedpage(1)}%
+          \setbox\@outputbox\pcol at makefcolpage
+          \pcol at Logend{\pcol at makeflushedpage(1)}%
+        \else
+          \pcol at Logstart{\pcol at makeflushedpage(2)}%
+          \ifpcol at lastpage \pcol@@makecol\z@ \else \pcol@@makecol\@maxdepth \fi
+          \pcol at Logend{\pcol at makeflushedpage(2)}%
+        \fi
+        \pcol@@hfil \hb at xt@\columnwidth{\box\@outputbox\hss}%
+      \endgroup
+      \edef\pcol@@hfil{\noexpand\pcol at hfil{\pcol at colsepid}}%
+      \pcol at setcurrcolnf
+     \advance\@tempcntb\@ne}}}}
+
+\def\pcol at flushfloats{%
+  \global\@colht\textheight
+  \@whilesw\if at fcolmade\fi{%
+    \global\@fcolmadefalse
+    \ifnum\pcol at ncolleft<\pcol at ncol
+      \pcol at iflushfloats\pcol at ncolleft\pcol at ncol\pcol at rightpage
+    \else
+      \setbox\pcol at rightpage\box\voidb at x
+    \fi
+    \pcol at iflushfloats\z@\pcol at ncolleft\@outputbox
+    \@outputpage}}
+\def\pcol at iflushfloats#1#2#3{\setbox#3\vbox{%
+  \ifpcol at paired\else\ifnum#1=\z@\else \advance\c at page\@ne \fi\fi
+  \pcol at buildcolseprule\@colht#1#2\@maxdepth \unvbox\@tempboxa
+  \hb at xt@\textwidth{%
+    \let\pcol@@hfil\relax
+    \if at fcolmade \@tempswatrue \else \@tempswafalse \fi
+    \@tempcntb#1\@whilenum\@tempcntb<#2\do{%
+      \pcol at swapcolumn\@tempcntb\pcol at currcol#1#2\relax
+      \pcol at getcurrcol
+      \@makefcolumn\@deferlist
+      \pcol@@hfil \hb at xt@\columnwidth{%
+        \if at fcolmade \box\@outputbox \else \vbox to\@colht{}\fi \hss}%
+      \ifx\@deferlist\@empty\else \@tempswatrue \fi
+      \edef\pcol@@hfil{\noexpand\pcol at hfil{\pcol at colsepid}}%
+      \pcol at setcurrcolnf
+     \advance\@tempcntb\@ne}%
+    \if at tempswa \global\@fcolmadetrue \else \global\@fcolmadefalse \fi}}}
+
+\def\pcol at freshpage{%
+  \global\pcol at page\z@ \global\pcol at toppage\z@ \global\pcol at basepage\z@
+  \global\let\pcol at pages\@empty \global\let\pcol at currpage\@empty
+  \pcol at startpage \pcol at colht\@colht
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do{%
+    \pcol at getcurrcol \pcol at page\z@ \@colroom\pcol at colht
+    \let\pcol at currboxsave\@currbox
+    \pcol at getcurrpage
+    \pcol at floatplacement
+    \pcol at startcolumn\z@
+    \@whilesw\if at fcolmade\fi{\pcol at opcol \pcol at startcolumn\z@}%
+    \let\@currbox\pcol at currboxsave
+    \global\setbox\@currbox\vbox{}%
+    \global\count\@currbox\pcol at page \global\dimen\@currbox\@colroom
+    \pcol at setcurrcolnf
+   \advance\pcol at currcol\@ne}%
+  \pcol at restartcolumn}
+
+%% Special Output Routines: Last Page
+
+\def\pcol at output@end{%
+  \pcol at Logstart\pcol at output@end
+  \pcol at makeflushedpage\pcol at colht
+  \@tempdima\pcol at colht \ifdim\pcol at colht<\z@ \@tempdima\z@ \fi
+  \advance\@tempdima-\ht\@outputbox
+  \pcol at getmparbottom@last\@tempdima
+  \pcol at bias@mpbout{-\@tempdima}
+  \def\pcol at do@mpbout at whole##1##2##3##4{\setbox\@tempboxa\hbox{##1##2##3##4}}%
+  \def\pcol at do@mpbout at elem\@elt##1##2{\global\@mparbottom##2sp}%
+  \pcol at do@mpbout
+  \@tempswafalse
+  \ifpcol at dfloats
+    \ifvoid\@outputbox\else \@outputpage \fi
+    \global\@fcolmadetrue \pcol at flushfloats
+    \global\pcol at outputfalse
+    \@tempswatrue \@pagedp\@m\p@ \global\@mparbottom\z@
+    \global\let\pcol at mparbottom@out\pcol at mparbottom@zero
+  \else
+    \global\pcol at outputfalse
+    \ifdim\pcol at colht=-\maxdimen
+      \ifx\pcol at firstprevdepth\relax
+        \@tempswatrue \@pagedp\@m\p@ \global\@mparbottom\z@
+        \global\let\pcol at mparbottom@out\pcol at mparbottom@zero
+        \ifpcol at nospan\else
+          \pcol at Fb
+          \@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
+            \pcol at ovf
+          \pcol at Fe{output at end(spanning)}%
+          \count\@currbox10\relax
+          {\let\@elt\relax \xdef\@dbldeferlist{\@elt\@currbox\@dbldeferlist}}%
+          \global\setbox\pcol at rightpage\box\voidb at x
+        \fi
+      \else \unvbox\@outputbox \@pagedp\pcol at firstprevdepth sp\relax
+      \fi
+    \else
+      \global\pcol at havelastpagetrue
+      \@tempdima\ht\@outputbox \advance\@tempdima\dp\@outputbox
+      \xdef\pcol at bg@preposttop at left{\number\@tempdima sp}%
+      \ifnum\pcol at ncolleft<\pcol at ncol
+        \global\let\pcol at bg@preposttop at right\pcol at bg@preposttop at left
+      \fi
+      \def\pcol at bg@textheight{\@elt{\ht\@outputbox}\@elt{\dp\@outputbox}}%
+      \def\reserved at a{%
+        \ifdim\pcol at fnheight@lpage>\z@
+          \def\pcol at bg@footnoteheight{\@elt\pcol at fnheight@lpage}%
+          \pcol at bg@paintbox{Nn}%
+        \fi}%
+      \ifnum\pcol at ncolleft<\pcol at ncol
+        \global\setbox\pcol at rightpage\vbox{%
+          \ifpcol at paired\else \advance\c at page\@ne \fi
+          \reserved at a \unvbox\pcol at rightpage}%
+      \fi
+      \topskip\z@ \vbox{\reserved at a \unvbox\@outputbox}%
+    \fi
+  \fi
+  \ifvoid\pcol at footins\else
+    \pcol at Log\pcol at output@end{insert}\pcol at footins
+    \pcol at Fb
+    \insert\footins{\unvbox\pcol at footins}\@cons\@freelist\pcol at footins
+    \pcol at Fe{output at end(pagefn)}%
+  \fi
+  \ifvoid\pcol at topfnotes\else \insert\footins{\unvbox\pcol at topfnotes}\fi
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do{%
+    \pcol at Fb
+    \pcol at getcurrcol \@cons\@freelist\@currbox
+    \ifvoid\pcol at ccuse{@box}\else
+      \@cons\@freelist{\pcol at ccuse{@box}}%
+      \pcol at ccxdef{\voidb at x}%
+    \fi
+    \pcol at Fe{output at end(col)}%
+   \advance\pcol at currcol\@ne}%
+  \pcol at currcol\z@ \pcol at restorecolorstack
+  \global\setbox\pcol at colorins\box\voidb at x
+  \pcol at currcol\pcol at lastcol\relax \pcol at getcurrcol
+  \global\pcol at prevdepth\@pagedp
+  \global\@colht\textheight
+  \global\@colroom\textheight
+  \global\let\@deferlist\@dbldeferlist \gdef\@dbldeferlist{}%
+  \pcol at floatplacement
+  \pcol at lastpagefalse
+  \if at tempswa
+    \@startcolumn \@whilesw\if at fcolmade\fi{\@opcol\@startcolumn}%
+  \fi
+  \pcol at Logend\pcol at output@end
+}
+
+%% Starting Environment
+
+\def\pcol at invokeoutput#1{\deadcycles\z@
+  \pcol at Logstart{\pcol at invokeoutput
+    {#1:\the\pcol at currcol/\the\pcol at nextcol%
+     \ifnum#1=-10011:\ifpcol at sync s\fi \ifpcol at clear c\fi\fi}}%
+  \penalty-\@Miv \global\pcol at prevdepth\prevdepth \vbox{}%
+  \penalty#1\relax \prevdepth\pcol at prevdepth
+  \linewidth\columnwidth \advance\linewidth-\pcol at lrmargin
+  \ifdim\pcol at lrmargin>\z@ \parshape\@ne\@totalleftmargin\linewidth \fi
+  \hsize\columnwidth
+  \pcol at Logend{\pcol at invokeoutput{#1}}}
+
+\def\paracol{\global\pcol at pairedtrue \@ifnextchar[%]
+  \pcol at yparacol\pcol at xparacol}
+\def\pcol at xparacol#1{\pcol at zparacol[#1]{#1}}
+\def\pcol at yparacol[#1]{%
+  \@ifstar{\global\pcol at pairedfalse \pcol at zparacol[#1]}%
+          {\pcol at zparacol[#1]}}
+\def\pcol at zparacol[#1]#2{\par
+  \ifinner \@parmoderr \fi
+  \if at twocolumn \PackageError{paracol}{%
+    Environment paracol cannot work with ordinary two-column
+    typesetting.}\@ehb\fi
+  \global\pcol at ncolleft#1\relax \global\pcol at ncol#2\relax
+  \ifnum\pcol at ncolleft>\pcol at ncol \global\pcol at ncolleft\pcol at ncol \fi
+  \ifnum\pcol at ncolleft<\pcol at ncol\else \global\pcol at pairedtrue \fi
+  \ifpcol at paired\else \pcol at swapcolumnfalse \fi
+  \if at newlist \if at inlabel\else
+    \if at nobreak \@nbitem
+    \else
+      \addpenalty\@beginparpenalty
+      \addvspace\@topsep
+      \addvspace{-\parskip}\addvspace{-\itemsep}%
+    \fi
+    \global\@newlistfalse
+  \fi\fi
+  \global\let\pcol at counters\cl@@ckpt
+  \let\@elt\pcol at remctrelt \pcol at gcounters
+  \let\@elt\pcol at thectrelt \pcol at counters
+  \begingroup
+    \let\@elt\pcol at loadctrelt \csname pcol at counters0\endcsname
+    \let\@elt\pcol at cmpctrelt \global\let\@gtempa\@empty \pcol at counters
+    \pcol at synccounter\@gtempa
+  \endgroup
+  \global\@twocolumntrue \col at number\@ne
+  \pcol at setcolumnwidth\z@\pcol at ncolleft
+    \pcol at columnratioleft\pcol at colwidthspecleft
+  \ifnum\pcol at ncolleft<\pcol at ncol
+    \pcol at setcolumnwidth\pcol at ncolleft\pcol at ncol
+      \pcol at columnratioright\pcol at colwidthspecright
+  \fi
+  \pcol at lrmargin\textwidth \advance\pcol at lrmargin-\linewidth
+  \global\pcol at topskip\topskip
+  \global\pcol at textfloatsep\maxdimen
+  \pcol at lastpagefalse \xdef\pcol at firstprevdepth{\number\prevdepth}%
+  \let\pcol@@combinefloats\@combinefloats \let\@combinefloats\pcol at combinefloats
+  \let\pcol@@addmarginpar\@addmarginpar \let\@addmarginpar\pcol at addmarginpar
+  \let\end at dblfloat\pcol at end@dblfloat
+  \global\let\pcol at set@color\set at color
+  \ifx\set at color\relax
+    \let\pcol at bg@paintpage\relax \let\pcol at bg@paintbox\@gobble
+    \let\pcol at bg@paintcolumns\relax
+  \else
+    \let\set at color\pcol at set@color at push
+    \pcol at innerfalse
+    \global\pcol at everyvbox{\pcol at dummytoken}%
+    \pcol at everyvbox\everyvbox
+    \everyvbox{\the\pcol at everyvbox \pcol at innertrue}
+    \let\everyvbox\pcol at everyvbox
+    \aftergroup\pcol at restoreeveryvbox
+    \let\pcol at bg@paintpage\pcol at bg@@paintpage
+    \let\pcol at bg@paintbox\pcol at bg@@paintbox
+    \let\pcol at bg@paintcolumns\pcol at bg@@paintcolumns
+  \fi
+  \gdef\pcol at colorstack@shadow{}%
+  \pcol at footnotebase\c at footnote \global\pcol at nfootnotes\z@
+  \let\footnote\pcol at footnote
+  \let\footnotemark\pcol at footnotemark
+  \let\footnotetext\pcol at footnotetext
+  \ifpcol at scfnote
+    \def\footnoterule{{\columnwidth\textwidth \pcol at footnoterule}}%
+  \fi
+  \let\@footnotetext\pcol at fntext
+  \let\pcol@@marginpar\marginpar \let\marginpar\pcol at marginpar
+  \let\@mn@@marginnote\pcol at marginnote
+  \let\pcol@@xympar\@xympar \let\@xympar\pcol at xympar
+  \def\pcol at twosided[#1]{\pcol at ignore\twosided}%
+  \def\swapcolumninevenpages{\pcol at ignore\swapcolumninevenpages}%
+  \def\noswapcolumninevenpages{\pcol at ignore\noswapcolumninevenpages}%
+  \def\footnotelayout#1{\pcol at ignore\footnotelayout}%
+  \def\multicolumnfootnotes{\pcol at ignore\multicolumnfootnotes}%
+  \def\singlecolumnfootnotes{\pcol at ignore\singlecolumnfootnotes}%
+  \def\mergedfootnotes{\pcol at ignore\mergedfootnotes}%
+  \let\@elt\pcol at defcomelt \pcol at localcommands
+  \def\column{\pcol at com@column}%
+  \@namedef{column*}{\@nameuse{pcol at com@column*}}%
+  \global\let\pcol at com@column\pcol at defcolumn
+  \global\@namedef{pcol at com@column*}{\pcol at defcolumn
+    \@ifnextchar[%]
+     \pcol at sptext\relax}%
+  \def\paracol##1{\PackageError{paracol}{%
+    Environment paracol cannot be nested.}\@eha}%
+  \output{\pcol at output}%
+  \let\@elt\relax
+  \pcol at invokeoutput\pcol at op@start
+  \pcol at nextcol\z@
+  \@ifnextchar[%]
+    \pcol at sptext{\@nameuse{pcol at colpream0}}}
+\let\pcol at paracol\paracol
+
+\def\thecolumn{\number\pcol at currcol}
+
+\def\pcol at ignore#1{\PackageWarning{paracol}{The command \string#1 is not
+  effective in paracol environment and thus ignored}}
+
+\def\pcol at localcommands{%
+  \@elt{switchcolumn}%
+  \@elt{endcolumn}\@elt{endcolumn*}%
+  \@elt{nthcolumn}\@elt{endnthcolumn}\@elt{nthcolumn*}\@elt{endnthcolumn*}%
+  \@elt{leftcolumn}\@elt{endleftcolumn}\@elt{leftcolumn*}\@elt{endleftcolumn*}%
+  \@elt{rightcolumn}\@elt{endrightcolumn}%
+    \@elt{rightcolumn*}\@elt{endrightcolumn*}%
+  \@elt{flushpage}\@elt{clearpage}\@elt{cleardoublepage}%
+  \@elt{synccounter}\@elt{syncallcounters}}
+\def\pcol at defcomelt#1{%
+  \expandafter\let\expandafter\reserved at a\csname pcol at com@#1\endcsname
+  \expandafter\let\csname #1\endcsname\reserved at a}
+
+\gdef\@dbldeferlist{}
+\def\pcol at end@dblfloat{%
+  \if at twocolumn
+    \@endfloatbox
+    \ifnum\@floatpenalty <\z@
+      \@largefloatcheck
+      \@cons\@dbldeferlist\@currbox
+    \fi
+    \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
+  \else
+    \end at float
+  \fi
+}
+%% Column Width Setting
+
+\def\columnratio#1{\global\let\pcol at colwidthspecleft\relax
+  \gdef\pcol at columnratioleft{#1}%
+  \@ifnextchar[%]
+    \pcol at icolumnratio{\gdef\pcol at columnratioright{#1}}}
+\def\pcol at icolumnratio[#1]{\gdef\pcol at columnratioright{#1}}
+\columnratio{}\relax
+
+\def\setcolumnwidth#1{\global\let\pcol at columnratioleft\relax
+  \gdef\pcol at colwidthspecleft{#1}%
+  \@ifnextchar[%]
+    \pcol at isetcolumnwidth{\gdef\pcol at colwidthspecright{#1}}}
+\def\pcol at isetcolumnwidth[#1]{\gdef\pcol at colwidthspecright{#1}}
+
+\def\pcol at setcolumnwidth{%
+  \ifx\pcol at columnratioleft\relax \let\reserved at a\pcol at setcolwidth@s
+  \else                           \let\reserved at a\pcol at setcolwidth@r
+  \fi
+  \reserved at a}
+
+\def\pcol at setcolwidth@r#1#2#3#4{%
+  \@tempcntb#2\advance\@tempcntb-#1\advance\@tempcntb\m at ne
+  \@tempdima-\columnsep \multiply\@tempdima\@tempcntb
+  \advance\@tempdima\textwidth \@tempdimb\@tempdima
+  \@tempcnta#1\relax\@tempcntb#2\advance\@tempcntb\m at ne
+  \@for\reserved at a:=#3\do{%
+    \ifnum\@tempcnta<\@tempcntb
+      \@tempdimc\reserved at a\@tempdima
+      \expandafter\xdef\csname pcol at columnwidth\number\@tempcnta\endcsname{%
+        \number\@tempdimc sp}%
+      \global\@namedef{pcol at columnsep\number\@tempcnta}{\columnsep}%
+      \advance\@tempdimb-\@tempdimc
+      \advance\@tempcnta\@ne
+    \fi}%
+  \@tempcntb#2\advance\@tempcntb-\@tempcnta
+  \divide\@tempdimb\@tempcntb
+  \@whilenum\@tempcnta<#2\do{%
+    \expandafter\xdef\csname pcol at columnwidth\number\@tempcnta\endcsname{%
+      \number\@tempdimb sp}%
+    \global\@namedef{pcol at columnsep\number\@tempcnta}{\columnsep}%
+    \advance\@tempcnta\@ne}%
+}
+
+\def\pcol at setcolwidth@s#1#2#3#4{\begingroup
+  \dimen@\z@ \dimen at ii\z@ \def\pcol at setcw@filunit{\@ne\p@}%
+  \let\pcol at setcw@c\pcol at setcw@accumwd \let\pcol at setcw@s\pcol at setcw@accumwd
+  \pcol at setcw@scan#1#2{#4}%
+  \advance\dimen at -\@tempdima \advance\dimen at ii-\@tempdimb
+  \pcol at setcw@calcfactors
+  \def\pcol at setcw@c{\pcol at setcw@set{width}}%
+  \def\pcol at setcw@s{\pcol at setcw@set{sep}}%
+  \let\pcol at setcw@filunit\dimen at ii
+  \pcol at setcw@scan#1#2{#4}%
+  \endgroup}
+\def\pcol at setcw@scan#1#2#3{\def\reserved at a{#3}%
+  \@tempcnta#1\relax \@whilenum\@tempcnta<#2\do{
+    \edef\reserved at a{\reserved at a,}\advance\@tempcnta\@ne}%
+  \@tempcnta#1\relax
+  \expandafter\@for\expandafter\reserved at a\expandafter:\expandafter=\reserved at a
+    \do{%
+      \ifnum\@tempcnta<#2\relax
+        \expandafter\pcol at setcw@getspec\reserved at a//\@nil
+      \fi
+      \advance\@tempcnta\@ne}}
+\def\pcol at setcw@getspec#1/#2/#3\@nil{%
+  \pcol at setcw@getspec at i\fill{#1}\pcol at setcw@c
+  \pcol at setcw@getspec at i\columnsep{#2}\pcol at setcw@s}
+\def\pcol at setcw@getspec at i#1#2{%
+  \def\reserved at a{}%
+  \@tfor\reserved at b:=#2\do{\edef\reserved at a{\reserved at a\reserved at b}}
+  \ifx\reserved at a\@empty \let\reserved at a#1\fi
+  \let\@gtempa\relax
+  {\def\fill{1\p@\gdef\@gtempa{}}\@tempskipa\reserved at a}%
+  \ifx\@gtempa\relax \@tempskipa\reserved at a\relax
+  \else \expandafter\pcol at setcw@fill\reserved at a
+  \fi
+  \@tempdima\@tempskipa
+  \advance\@tempskipa0\p@\@plus\@m\p@\@minus\@m\p@\relax
+  \expandafter\pcol at extract@fil\the\@tempskipa\@nil}
+\def\pcol at setcw@fill#1\fill{\def\reserved at b{#1}%
+  \ifx\reserved at b\@empty \let\reserved at b\@ne \fi
+  \@tempskipa0\p@\@plus\reserved at b fil\relax}
+
+\def\pcol at setcw@accumwd{\advance\dimen@\@tempdima \advance\dimen at ii\@tempdimb}
+\def\pcol at setcw@set#1{%
+  \@tempdima\pcol at setcw@scale\@tempdima \advance\@tempdima\@tempdimb
+  \expandafter\xdef\csname pcol at column#1\number\@tempcnta\endcsname{%
+    \number\@tempdima sp}}
+
+\def\pcol at setcw@calcfactors{%
+  \ifdim\dimen@=\textwidth \def\pcol at setcw@scale{}\dimen at ii\z@
+  \else
+    \pcol at setcw@calcf\textwidth\dimen@\pcol at setcw@scale
+    \ifdim\dimen@<\textwidth \ifdim\dimen at ii>\z@
+      \def\pcol at setcw@scale{}%
+      \@tempdimc\textwidth \advance\@tempdimc-\dimen@
+      \pcol at setcw@calcf\@tempdimc\dimen at ii\reserved at a \dimen at ii\@tempdimb
+    \else \dimen at ii\z@ \fi
+    \else \dimen at ii\z@ \fi
+  \fi}
+\def\pcol at setcw@calcf#1#2#3{%
+  \@tempdimb#1\@tempdima#2\@tempcnta\z@
+  \ifdim\@tempdima=\z@ \@tempdima1sp\relax\fi
+  \@whiledim\@tempdimb<8192\p@\do{%
+    \multiply\@tempdimb\tw@ \advance\@tempcnta\@ne}%
+  \@tempdimc\@tempdima
+  \@whiledim\@tempdima=\@tempdimc\do{%
+    \divide\@tempdimc\tw@ \multiply\@tempdimc\tw@
+    \ifdim\@tempdima=\@tempdimc
+      \divide\@tempdima\tw@ \divide\@tempdimc\tw@ \advance\@tempcnta\@ne
+    \fi}
+  \advance\@tempdima-1sp\relax
+  \@whilenum\@tempdima>32768\do{\divide\@tempdima\tw@ \advance\@tempcnta\@ne}%
+  \advance\@tempdima1sp\relax
+  \divide\@tempdimb\@tempdima \@tempdimc\@tempdimb \@tempcntb\@tempcnta
+  \@whilenum\@tempcntb>\z@\do{\divide\@tempdimc\tw@ \advance\@tempcntb\m at ne}
+  \ifnum\@tempdimc>16383\relax
+    \PackageError{%
+      Scaling/filling factor for column/gap width is too large.}\@eha
+    \@tempdimb\@M\p@
+  \else
+    \@tempcntb\sixt@@n \advance\@tempcntb-\@tempcnta
+    \ifnum\@tempcntb<\z@
+      \@whilenum\@tempcntb<\z@\do{\divide\@tempdimb\tw@ \advance\@tempcntb\@ne}%
+    \else
+      \@whilenum\@tempcntb>\z@\do{%
+        \multiply\@tempdimb\tw@ \advance\@tempcntb\m at ne}%
+    \fi
+  \fi
+  \expandafter\pcol at extract@pt\the\@tempdimb#3}
+
+\@tempskipa 1\p@\@plus1fil\@minus1fil\relax
+\def\pcol at defkw1.0#1 #2 1.0#3 #4 1.0#5\@nil{%
+  \def\pcol at kw@pt{#1}\def\pcol at kw@plus{#2}\def\pcol at kw@fil{#3}%
+  \def\pcol at kw@minus{#4}}
+\expandafter\pcol at defkw\the\@tempskipa\@nil
+
+\edef\pcol at def@extract at fil{%
+  \def\noexpand\pcol at extract@fil
+  ##1\space\pcol at kw@plus\space##2\space\pcol at kw@minus##3\noexpand\@nil{%
+    \noexpand\pcol at extract@fil at i##2\noexpand\@nil}}
+\pcol at def@extract at fil
+\def\pcol at extract@fil at i#1.#2\@nil{\def\reserved at a{#1.#2}%
+  \afterassignment\pcol at extract@fil at ii\count@#2\@nil}
+\def\pcol at extract@fil at ii#1\@nil{\def\reserved at b{#1}%
+  \ifx\reserved at b\pcol at kw@pt \@tempdimb\z@
+  \else \expandafter\pcol at extract@fil at iii\reserved at a\@nil
+  \fi}
+\edef\pcol at def@extract at fil@iii{%
+  \def\noexpand\pcol at extract@fil at iii##1\pcol at kw@fil##2\noexpand\@nil{%
+    \@tempdimb\noexpand\pcol at setcw@filunit\relax \@tempdimb##1\@tempdimb}}
+\pcol at def@extract at fil@iii
+
+\edef\pcol at def@extract at pt{%
+  \def\noexpand\pcol at extract@pt##1\pcol at kw@pt##2{\def##2{##1}}}
+\pcol at def@extract at pt
+
+%% Counter Operations
+
+\def\globalcounter{\@ifstar\pcol at globalcounter@s\pcol at globalcounter}
+\def\pcol at globalcounter@s{\global\let\pcol at gcounters\cl@@ckpt}
+\def\pcol at globalcounter#1{{%
+  \@tempswafalse \def\reserved at a{#1}%
+  \def\@elt##1{\def\reserved at b{##1}%
+    \ifx\reserved at a\reserved at b \@tempswatrue \fi}%
+  \pcol at gcounters
+  \if at tempswa\else \@cons\pcol at gcounters{{#1}}\fi}}
+\gdef\pcol at gcounters{\@elt{page}}
+\def\localcounter#1{%
+  \expandafter\ifx\csname c@#1\endcsname\c at page\else
+    \pcol at removecounter\pcol at gcounters{#1}%
+  \fi}
+\def\pcol at remctrelt#1{%
+  \expandafter\let\expandafter\reserved at a\csname cl@#1\endcsname
+  \expandafter\let\csname pcol at cl@#1\endcsname\reserved at a
+  \expandafter\ifx\csname c@#1\endcsname\c at page\else
+    \@namedef{cl@#1}{\pcol at stepcounter{#1}}%
+  \fi
+  \pcol at removecounter\pcol at counters{#1}}
+\def\pcol at removecounter#1#2{%
+  \def\reserved at a{#2}\let\reserved at b#1\relax \global\let#1\@empty
+  {\def\@elt{\pcol at iremctrelt#1}\reserved at b}}
+\def\pcol at iremctrelt#1#2{%
+  \def\reserved at b{#2}%
+  \ifx\reserved at a\reserved at b\else \@cons#1{{#2}}\fi}
+
+\def\definethecounter#1#2#3{\@namedef{pcol at thectr@#1#2}{#3}}
+\def\pcol at thectrelt#1{%
+  \expandafter\let\expandafter\reserved at a\csname the#1\endcsname
+  \expandafter\let\csname pcol at thectr@#1\endcsname\reserved at a
+  \expandafter\let\expandafter\reserved at a\csname pcol at thectr@#10\endcsname
+  \ifx\reserved at a\relax\else
+    \expandafter\let\csname the#1\endcsname\reserved at a
+  \fi}
+
+\def\pcol at loadctrelt#1#2{\@namedef{pcol at ctr@#1}{#2}}
+\def\pcol at storecounters{\pcol at sscounters\pcol at storectrelt}
+\def\pcol at storectrelt#1{\@cons\@gtempa{{#1}{\@nameuse{pcol at ctr@#1}}}}
+\def\pcol at savecounters{\pcol at sscounters\pcol at savectrelt}
+\def\pcol at savectrelt#1{\@cons\@gtempa{{#1}{\number\csname c@#1\endcsname}}}
+\def\pcol at sscounters#1{\begingroup
+  \global\let\@gtempa\@empty
+  \let\@elt#1\relax \pcol at counters
+  \let\@elt\relax
+  \expandafter\xdef\csname pcol at counters\number\pcol at currcol\endcsname{%
+    \@gtempa}%
+  \endgroup}
+
+\def\pcol at cmpctrelt#1{\@tempswafalse \@tempcnta\@nameuse{c@#1}%
+  \expandafter\ifx\csname pcol at ctr@#1\endcsname\relax \@tempswatrue
+  \else\ifnum\@nameuse{pcol at ctr@#1}=\@tempcnta\else \@tempswatrue
+  \fi\fi
+  \if at tempswa \@cons\@gtempa{{#1}}\fi}
+
+\def\pcol at com@synccounter#1{\pcol at synccounter{\@elt{#1}}}
+\def\pcol at synccounter#1{{%
+  \let\@elt\relax \edef\reserved at a{#1}%
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do{%
+    \let\@elt\pcol at loadctrelt \@nameuse{pcol at counters\number\pcol at currcol}%
+    \let\@elt\pcol at syncctrelt \reserved at a
+    \pcol at storecounters
+    \advance\pcol at currcol\@ne}}}
+\def\pcol at syncctrelt#1{%
+    \expandafter\edef\csname pcol at ctr@#1\endcsname{\number\@nameuse{c@#1}}}
+
+\def\pcol at com@syncallcounters{{%
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do{%
+    \pcol at savecounters \advance\pcol at currcol\@ne}}}
+
+\def\pcol at setctrelt#1#2{%
+  \global\csname c@#1\endcsname#2\relax
+  \expandafter\ifx\csname pcol at thectr@#1\number\pcol at currcol\endcsname\relax
+    \expandafter\let\expandafter\reserved at a\csname pcol at thectr@#1\endcsname
+  \else
+    \expandafter\let\expandafter\reserved at a
+      \csname pcol at thectr@#1\number\pcol at currcol\endcsname
+  \fi
+  \expandafter\let\csname the#1\endcsname\reserved at a}
+
+\def\pcol at stepcounter#1{\begingroup
+  \pcol at currcol\z@ \@whilenum\pcol at currcol<\pcol at ncol\do{%
+    \let\@elt\pcol at stpldelt \@nameuse{pcol at counters\number\pcol at currcol}%
+    \let\@elt\pcol at stpclelt \@nameuse{pcol at cl@#1}%
+    \pcol at savecounters
+   \advance\pcol at currcol\@ne}%
+  \endgroup
+  \let\@elt\@stpelt \@nameuse{pcol at cl@#1}}
+\def\pcol at stpldelt#1#2{\csname c@#1\endcsname#2\relax}
+\def\pcol at stpclelt#1{\csname c@#1\endcsname\z@}
+
+%% Column-Switching Commands and Environments
+
+\def\pcol at par{\ifvmode\else \par \fi}
+
+\def\pcol at com@switchcolumn{\pcol at par
+  \pcol at defcolumn
+  \@tempcnta\pcol at currcol \advance\@tempcnta\@ne
+  \ifnum\@tempcnta<\pcol at ncol\else \@tempcnta\z@ \fi
+  \@ifnextchar[%]
+    \pcol at switchcolumn{\pcol at switchcolumn[\@tempcnta]}}
+\def\pcol at switchcolumn[#1]{%
+  \pcol at nextcol#1\relax
+  \@tempswafalse
+  \ifnum#1<\z@ \@tempswatrue \fi
+  \ifnum#1<\pcol at ncol\else \@tempswatrue \fi
+  \if at tempswa
+    \PackageError{paracol}{%
+      Column number \number#1 must be less than \number\pcol at ncol}\@eha
+    \pcol at nextcol\z@
+  \fi
+  \@ifstar\pcol at iswitchcolumn\pcol at switchcol}
+\def\pcol at iswitchcolumn{%
+  \global\pcol at synctrue
+  \@ifnextchar[%]
+    \pcol at sptext\pcol at switchcol}
+
+\long\def\pcol at sptext[#1]{%
+  \@tempcnta\pcol at nextcol
+  \global\pcol at synctrue \pcol at nextcol\z@
+  \global\pcol at sptextstarttrue
+  \pcol at switchcol
+  \global\pcol at sptextstartfalse \global\pcol at sptexttrue
+  \begingroup
+    \columnwidth\textwidth \hsize\columnwidth
+    \linewidth\columnwidth \advance\linewidth-\pcol at lrmargin
+    \ifdim\pcol at lrmargin>\z@ \parshape\@ne\@totalleftmargin\linewidth \fi
+    \col at number\@ne #1\pcol at par
+    \global\let\@svsechd\@svsechd \global\let\@svsec\@svsec
+    \expandafter\global\expandafter\everypar\expandafter{\the\everypar}%
+  \endgroup
+  \pcol at nextcol\@tempcnta \global\pcol at synctrue \pcol at switchcol}
+
+\def\pcol at switchcol{%
+  \pcol at savecounters
+  \ifpcol at sync
+    \@tempdima\pcol at ensurevspace\relax
+    \edef\pcol@@ensurevspace{\number\@tempdima sp\relax}%
+    \global\pcol at syncfalse \pcol at visitallcols\@@par \global\pcol at synctrue
+    \pcol at invokeoutput\pcol at op@switch
+    \@whilesw\ifpcol at flush\fi{%
+      \vfil \penalty-\@M
+      \global\pcol at syncfalse \pcol at visitallcols\newpage \global\pcol at synctrue
+      \pcol at invokeoutput\pcol at op@switch}%
+    \ensurevspace{\baselineskip}%
+  \else
+    \pcol at invokeoutput\pcol at op@switch
+  \fi
+  \let\@elt\pcol at setctrelt
+  \csname pcol at counters\number\pcol at currcol\endcsname
+  \let\@elt\pcol at aconlyelt \pcol at aconly \let\@elt\relax
+  \@nameuse{pcol at colpream\ifpcol at sptextstart-1\else\number\pcol at currcol\fi}}
+
+\def\pcol at visitallcols#1{\begingroup
+  \@tempcnta\z@ \@tempcntb\pcol at currcol
+  \@whilenum\@tempcnta<\pcol at ncol\do{%
+    \ifnum\@tempcnta=\@tempcntb\else
+      \pcol at nextcol\@tempcnta \pcol at invokeoutput\pcol at op@switch #1%
+    \fi
+    \advance\@tempcnta\@ne}%
+  \pcol at nextcol\@tempcntb \pcol at invokeoutput\pcol at op@switch
+  \endgroup}
+
+\def\pcol at defcolumn{%
+  \gdef\pcol at com@column{\pcol at switchenv{column}\relax}%
+  \global\@namedef{pcol at com@column*}{\pcol at switchenv{column*}*}}
+
+\def\pcol at com@nthcolumn#1{\pcol at switchenv{nthcolumn}[#1]\relax}
+\@namedef{pcol at com@nthcolumn*}#1{\pcol at switchenv{nthcolumn*}[#1]*}
+\def\pcol at com@leftcolumn{\pcol at switchenv{leftcolumn}[0]\relax}
+\@namedef{pcol at com@leftcolumn*}{\pcol at switchenv{leftcolumn*}[0]*}
+\def\pcol at com@rightcolumn{\pcol at switchenv{rightcolumn}[1]\relax}
+\@namedef{pcol at com@rightcolumn*}{\pcol at switchenv{rightcolumn*}[1]*}
+
+\def\pcol at switchenv#1{\let\reserved at a\switchcolumn
+  \def\switchcolumn{\PackageError{paracol}{%
+    Column switching commands and environments cannot be used in #1}\@eha}
+  \reserved at a}
+
+\def\pcol at com@endcolumn{\pcol at par
+  \expandafter\global\expandafter\everypar\expandafter{\the\everypar}}
+\expandafter\let\csname pcol at com@endcolumn*\endcsname\pcol at com@endcolumn
+\let\pcol at com@endnthcolumn\pcol at com@endcolumn
+\expandafter\let\csname pcol at com@endnthcolumn*\endcsname\pcol at com@endcolumn
+\let\pcol at com@endleftcolumn\pcol at com@endcolumn
+\expandafter\let\csname pcol at com@endleftcolumn*\endcsname\pcol at com@endcolumn
+\let\pcol at com@endrightcolumn\pcol at com@endcolumn
+\expandafter\let\csname pcol at com@endrightcolumn*\endcsname\pcol at com@endcolumn
+
+\def\definecolumnpreamble#1#2{\@tempcnta#1\relax
+  \expandafter\gdef\csname pcol at colpream\number\@tempcnta\endcsname{#2}}
+
+\def\ensurevspace#1{{\@tempdima#1\relax \gdef\pcol at ensurevspace{#1}}}
+\ensurevspace{\baselineskip}
+
+%% Disabling \addcontentsline
+
+\def\addcontentsonly#1#2{%
+  \@ifundefined{pcol at ac@def@#1}
+    {\PackageError{paracol}{Unknown contents type #1}\@eha}\relax
+  \@cons\pcol at aconly{{#1}{#2}}}
+\gdef\pcol at aconly{}
+
+\def\pcol at aconlyelt#1#2{%
+  \ifnum#2=\pcol at currcol \@nameuse{pcol at ac@def@#1}{enable}%
+  \else \@nameuse{pcol at ac@def@#1}{disable}%
+  \fi}
+\def\pcol at gobblethree#1#2#3{}
+\let\pcol at addcontentsline\addcontentsline
+
+\def\pcol at ac@def at toc#1{%
+  \expandafter\let\expandafter\@sect\csname pcol at ac@#1 at toc\endcsname}
+\let\pcol at ac@enable at toc\@sect
+\def\pcol at ac@disable at toc#1#2#3#4#5#6[#7]#8{%
+  \let\addcontentsline\pcol at gobblethree
+  \pcol at ac@enable at toc{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
+  \let\addcontentsline\pcol at addcontentsline}
+
+\def\pcol at ac@def at lof#1{\@nameuse{pcol at ac@caption@#1}{lof}}
+\def\pcol at ac@def at lot#1{\@nameuse{pcol at ac@caption@#1}{lot}}
+\def\pcol at ac@caption at enable{\pcol at ac@caption at def\@tempswatrue}
+\def\pcol at ac@caption at disable{\pcol at ac@caption at def\@tempswafalse}
+\def\pcol at ac@caption at def#1#2{\let\@caption\pcol at ac@caption
+ \expandafter\let\csname pcol at ac@caption at if@#2\endcsname#1}
+\let\pcol at ac@caption at if@lof\@tempswatrue
+\let\pcol at ac@caption at if@lot\@tempswatrue
+\long\def\pcol at ac@caption#1[#2]#3{%
+  \@nameuse{pcol at ac@caption at if@\@nameuse{ext@#1}}%
+  \if at tempswa\else \let\addcontentsline\pcol at gobblethree \fi
+  \pcol at ac@caption at latex{#1}[{#2}]{#3}%
+  \let\addcontentsline\pcol at addcontentsline}
+\let\pcol at ac@caption at latex\@caption
+
+%% Page Flushing Commands
+
+\def\pcol at com@flushpage{\pcol at flushclear\voidb at x
+  \pcol at invokeoutput\pcol at op@flush}
+\def\pcol at com@clearpage{\pcol at flushclear\voidb at x
+  \pcol at invokeoutput\pcol at op@clear}
+\def\pcol at com@cleardoublepage{\pcol at com@clearpage
+  \if at twoside \ifodd\c at page\else \ifpcol at paired\else \pcol at com@flushpage
+  \fi\fi\fi}
+\def\pcol at flushclear#1{\pcol at par
+  \pcol at nextcol\pcol at currcol
+  \pcol at visitallcols\@@par
+  \pcol at cleartrue \global\pcol at synctrue
+  \ifpcol at lastpage \pcol at lastpagesavetrue \else \pcol at lastpagesavefalse \fi
+  \pcol at invokeoutput\pcol at op@switch \ifvoid#1\else \global\pcol at flushtrue \fi
+  \@whilesw\ifpcol at flush\fi{%
+    \pcol at lastpagefalse
+    \vfil \penalty-\@M \pcol at cleartrue \global\pcol at synctrue
+    \ifpcol at lastpagesave \pcol at lastpagetrue \fi
+    \pcol at invokeoutput\pcol at op@switch
+    \ifvoid#1\else \global\pcol at flushtrue \fi}%
+  \pcol at clearfalse}
+
+%% Commands for Footnotes
+
+\def\footnotelayout#1{\@ifundefined{pcol at fnlayout@#1}%
+  {\PackageError{paracol}{Unknown footnote layout specifier #1}}%
+  {\@nameuse{pcol at fnlayout@#1}}}
+\def\pcol at fnlayout@c{\global\pcol at scfnotefalse \global\pcol at mgfnotefalse
+  \localcounter{footnote}\nofncounteradjustment}
+\def\pcol at fnlayout@p{\global\pcol at scfnotetrue \global\pcol at mgfnotefalse
+  \globalcounter{footnote}\fncounteradjustment}
+\def\pcol at fnlayout@m{\pcol at fnlayout@p\global\pcol at mgfnotetrue}
+
+\let\multicolumnfootnotes\pcol at fnlayout@c
+\let\singlecolumnfootnotes\pcol at fnlayout@p
+\let\mergedfootnotes\pcol at fnlayout@m
+
+\def\pcol at fntext{%
+  \let\reserved at a\pcol at fntexttop
+  \ifpcol at scfnote \ifnum\pcol at page<\pcol at toppage
+    \let\reserved at a\pcol at fntextother
+  \fi\fi
+  \reserved at a}
+\long\def\pcol at fntexttop#1{%
+  \pcol at Logfn{\pcol at fntexttop{\@thefnmark}}%
+  \insert\footins{\pcol at fntextbody{#1}\penalty\interlinepenalty}}
+\long\def\pcol at fntextother#1{%
+  \global\setbox\pcol at topfnotes\vbox{\unvbox\pcol at topfnotes
+    \penalty\interlinepenalty\pcol at fntextbody{#1}}}
+\long\def\pcol at fntextbody#1{\setbox\@tempboxa\vbox{%
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+    \hsize \ifpcol at scfnote \textwidth \else \columnwidth \fi
+    \@parboxrestore
+    \protected at edef\@currentlabel{\p at footnote\@thefnmark}%
+    \color at begingroup
+    \@makefntext{%
+      \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \color at endgroup}%
+  \@tempdima\ht\@tempboxa \advance\@tempdima\dp\@tempboxa
+  \@tempdimb\textheight \advance\@tempdimb-\skip\footins
+  \ifdim\@tempdima>\@tempdimb
+    \setbox\@tempboxa\vbox to\@tempdimb{\unvbox\@tempboxa\vss}%
+    \PackageWarning{paracol}{Too tall footnote}%
+  \fi
+  \box\@tempboxa}
+
+\def\fncounteradjustment{\global\pcol at fncounteradjustmenttrue}
+\def\nofncounteradjustment{\global\pcol at fncounteradjustmentfalse}
+\nofncounteradjustment
+
+\let\pcol at footnoterule\footnoterule
+\let\pcol@@footnote\footnote
+\let\pcol@@footnotemark\footnotemark
+\let\pcol@@footnotetext\footnotetext
+\def\pcol at footnote{\@ifstar{\pcol at adjustfnctr\pcol at ifootnote}\pcol at ifootnote}
+\def\pcol at ifootnote{\global\advance\pcol at nfootnotes\@ne \pcol@@footnote}
+\def\pcol at footnotemark{\@ifstar
+  {\pcol at adjustfnctr{\pcol at ifootnotemark\relax}}%
+  \pcol at ifootnotemark}
+\def\pcol at ifootnotemark{\global\advance\pcol at nfootnotes\@ne
+  \pcol@@footnotemark}
+\def\pcol at adjustfnctr#1{\@ifnextchar[%]
+  {\pcol at iadjustfnctr{#1}}{\pcol at iadjustfnctr{#1}[+1]}}
+\def\pcol at iadjustfnctr#1[#2]{\pcol at calcfnctr#2\@nil
+  \global\c at footnote\@tempcnta \global\advance\c at footnote\m at ne#1}
+\def\pcol at calcfnctr#1#2\@nil{\@tempcnta\c at footnote
+  \def\reserved at a{#1}\def\reserved at b{+}%
+  \ifx\reserved at a\reserved at b \advance\@tempcnta#2\relax
+  \else \def\reserved at b{-}%
+  \ifx\reserved at a\reserved at b \advance\@tempcnta-#2\relax
+  \else \@tempcnta\pcol at footnotebase \advance\@tempcnta#1#2\relax
+  \fi\fi}
+\def\pcol at footnotetext{\@ifstar\pcol at ifootnotetext\pcol@@footnotetext}
+\def\pcol at ifootnotetext{\@ifnextchar[%]
+  \pcol at iifootnotetext{\stepcounter{footnote}\pcol@@footnotetext}}
+\def\pcol at iifootnotetext[#1]{\pcol at calcfnctr#1\@nil
+  \expandafter\pcol@@footnotetext\expandafter[\number\@tempcnta]}
+
+%% Commands for Marginal Notes
+
+\def\pcol at marginpar{\let\pcol at mparoffset\z@ \pcol@@marginpar}
+\long\def\pcol at marginnote[#1]#2[#3]{\endgroup
+  \pcol at mn@warning \global\let\pcol at mn@warning\relax
+  \def\pcol at mparoffset{#3}%
+  \pcol@@marginpar[\marginfont\raggedleftmarginnote#1]%
+                  {\marginfont\raggedrightmarginnote#2}}
+\def\pcol at mn@warning{%
+  \PackageWarning{paracol}{\string\margninnote\space is emulated by
+    \string\marginpar.}}
+\def\pcol at xympar{%
+  \ifnum\@floatpenalty<\z@ \global\dimen\@marbox\pcol at mparoffset\relax \fi
+  \pcol@@xympar}
+
+%% Column Swapping
+
+\def\twosided{\@ifnextchar[%]
+  {\pcol at twosided}{\pcol at twosided[pcmb]}}
+\def\pcol at twosided[#1]{%
+  \global\@twosidefalse \global\pcol at swapcolumnfalse
+  \global\pcol at swapmarginparfalse \global\pcol at bg@swapfalse
+  \@tfor\reserved at a:=#1\do{%
+    \@ifundefined{pcol at twosided@\reserved at a}%
+      {\PackageError{paracol}{Unknown two-siding feature \reserved at a}}%
+      {\@nameuse{pcol at twosided@\reserved at a}}}}
+\def\pcol at twosided@p{\global\@twosidetrue}
+\def\pcol at twosided@c{\global\pcol at swapcolumntrue}
+\def\pcol at twosided@m{\global\pcol at swapmarginpartrue}
+\def\pcol at twosided@b{\global\pcol at bg@swaptrue}
+
+\def\swapcolumninevenpages{\global\pcol at swapcolumntrue}
+\def\noswapcolumninevenpages{\global\pcol at swapcolumnfalse}
+
+\def\pcol at swapcolumn#1#2#3#4{%
+  \edef\pcol at colsepid{\number#1}%
+  \ifpcol at swapcolumn
+    \ifodd\c at page\relax #2#1\relax
+    \else
+      #2#4\relax \advance#2-#1\relax \advance#2#3\relax \advance#2-\tw@
+      \edef\pcol at colsepid{\number#2}%
+      \advance#2\@ne
+    \fi
+  \else #2#1\relax
+  \fi}
+
+\def\marginparthreshold#1{\@tempcnta#1\relax
+  \xdef\pcol at mpthreshold@l{\number\@tempcnta}%
+  \@ifnextchar[%]
+    \pcol at marginparthreshold{\xdef\pcol at mpthreshold@r{\number\@tempcnta}}}
+\def\pcol at marginparthreshold[#1]{\@tempcnta#1\relax
+  \xdef\pcol at mpthreshold@r{\number\@tempcnta}}
+\marginparthreshold{1}
+
+%% Commands for Text Coloring
+
+\def\columncolor{\def\pcol at colorcommand{\string\columncolor}%
+  \@ifnextchar[%]
+    \pcol at xcolumncolor\pcol at ycolumncolor}
+\def\pcol at xcolumncolor[#1]#2{\pcol at columncolor{\color[#1]{#2}}}
+\def\pcol at ycolumncolor#1{\pcol at columncolor{\color{#1}}}
+\def\pcol at columncolor#1{\@ifnextchar[%]
+  {\pcol at icolumncolor{#1}}{\pcol at icolumncolor{#1}[\number\pcol at currcol]}}
+\def\normalcolumncolor{\def\pcol at colorcommand{\string\normalcolumncolor}%
+  \@ifnextchar[%]
+    {\pcol at icolumncolor\normalcolor}%
+    {\pcol at icolumncolor\normalcolor[\number\pcol at currcol]}}
+\def\pcol at icolumncolor#1[#2]{%
+  \@tempswafalse
+  \ifpcol at inner \@tempswatrue \fi
+  \ifinner      \@tempswatrue \fi
+  \ifmmode      \@tempswatrue \fi
+  \ifx\set at color\relax
+    \PackageWarning{paracol}{\pcol at colorcommand\space is not effective
+      without some coloring package}%
+  \else\if at tempswa
+    \PackageWarning{paracol}{\pcol at colorcommand\space is not effective
+      when not in outer par mode}%
+  \else
+    \begingroup
+    \let\@elt\relax
+    \ifx\pcol at paracol\paracol
+      \pcol at iicolumncolor{#1}{#2}%
+    \else\ifnum#2=\pcol at currcol
+      \def\@elt##1{\reset at color}\pcol at scancst@shadow
+      \pcol at iicolumncolor{#1}{#2}%
+      \def\@elt##1{\def\current at color{##1}\let\aftergroup\@gobble
+        \pcol at set@color}%
+      \pcol at scancst@shadow
+      \setbox\@tempboxa\vbox{\let\set at color\pcol at set@color
+        \let\aftergroup\@gobble #1}%
+      \ht\@tempboxa1sp \dp\@tempboxa1sp \wd\@tempboxa\z@\relax
+      \insert\pcol at colorins{\box\@tempboxa}%
+      \ifvmode\if at nobreak \nobreak \fi\fi
+    \else
+      \pcol at iicolumncolor{#1}{#2}%
+      \pcol at currcol#2\relax
+      \ifvoid\pcol at ccuse{@box}%
+        \@next\@currbox\@freelist{}\pcol at ovf
+        \pcol at ccxdef{\@currbox}%
+      \fi
+      \global\setbox\pcol at ccuse{@box}\vbox{\let\set at color\pcol at set@color
+        \let\aftergroup\@gobble #1}%
+    \fi\fi
+    \endgroup
+  \fi\fi
+  \ignorespaces}
+\def\pcol at iicolumncolor#1#2{{\let\set at color\relax #1%
+  \expandafter\xdef\csname pcol at columncolor#2\endcsname{\current at color}}}
+\def\pcol at scancst@shadow{%
+  \pcol at ifccdefined{\@elt{\pcol at ccuse{}}}\relax
+  \pcol at colorstack@shadow}
+
+\def\pcol at mcpushlimit{1000}
+\def\pcol at set@color at push{\pcol at set@color
+  \ifmmode\else\ifinner \pcol at innertrue \fi\fi
+  \ifpcol at inner\else
+    \ifmmode
+      \global\advance\pcol at mcid\@ne
+      \ifnum \pcol at mcid>\pcol at mcpushlimit\relax
+        \PackageError{paracol}{Too many coloring commands in math mode}\@ehb
+        \global\pcol at mdid\@ne
+      \fi
+      \@tempdima\pcol at mcid sp\relax
+      \expandafter\aftergroup
+        \csname pcol at reset@color at mpop@\number\pcol at mcid\endcsname
+      \expandafter\xdef
+        \csname pcol at reset@color at mpop@\number\pcol at mcid\endcsname
+          {\noexpand\pcol at reset@color at mpop{\number\pcol at mcid}}%
+    \else
+      \aftergroup\pcol at reset@color at pop \@tempdima\z@
+    \fi
+    \let\pcol at elt@save\@elt \let\@elt\relax
+    \edef\pcol at colorstack@shadow{\pcol at colorstack@shadow\@elt{\current at color}}%
+    \let\@elt\pcol at elt@save
+    \setbox\@tempboxa\vbox{\let\aftergroup\@gobble \pcol at set@color}%
+    \ht\@tempboxa1sp \dp\@tempboxa\z@ \wd\@tempboxa\@tempdima
+    \insert\pcol at colorins{\box\@tempboxa}\ifhmode \pcol at fcwhyphenate \fi
+    \ifvmode\if at nobreak \nobreak \fi\fi
+  \fi}
+
+\def\pcol at reset@color at pop{%
+  \ifpcol at output
+    \setbox\@tempboxa\vbox{\reset at color}%
+    \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa\z@
+    \insert\pcol at colorins{\box\@tempboxa}%
+    \ifvmode\if at nobreak \nobreak \fi\fi
+  \fi}
+\def\pcol at reset@color at mpop#1{%
+  \setbox\@tempboxa\vbox{\reset at color}%
+  \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa#1sp\relax
+  \insert\pcol at colorins{\box\@tempboxa}%
+  \ifvmode\if at nobreak \nobreak \fi\fi
+}
+
+\def\coloredwordhyphenated{\def\pcol at fcwhyphenate{\hskip\z@}}
+\def\nocoloredwordhyphenated{\let\pcol at fcwhyphenate\relax}
+\coloredwordhyphenated
+
+%% Commands for Column-Separating Rule Color and Background Painting
+
+\def\colseprulecolor{\def\pcol at colorcommand{\string\colseprulecolor}%
+  \@ifnextchar[%]
+    \pcol at defcseprulecolor@x\pcol at defcseprulecolor@y}
+\def\pcol at defcseprulecolor@x[#1]#2{\pcol at defcseprulecolor{\color[#1]{#2}}}
+\def\pcol at defcseprulecolor@y#1{\pcol at defcseprulecolor{\color{#1}}}
+\def\pcol at defcseprulecolor#1{\@ifnextchar[%]
+  {\pcol at defcseprulecolor@i{#1}}{\pcol at defcseprulecolor@i{#1}[]}}
+\def\normalcolseprulecolor{%
+  \def\pcol at colorcommand{\string\normalcolseprulecolor}%
+  \@ifnextchar[%]
+    {\pcol at defcseprulecolor@i\normalcolor}%
+    {\pcol at defcseprulecolor@i\normalcolor[]}}
+\def\pcol at defcseprulecolor@i#1[#2]{%
+  \ifx\set at color\relax
+    \PackageWarning{paracol}{\pcol at colorcommand\space is not effective
+      without some coloring package}%
+  \else
+    {\let\set at color\relax #1}%
+    \global\@namedef{pcol at colseprulecolor#2}{#1}%
+  \fi}
+\gdef\pcol at colseprulecolor{\normalcolor}
+
+\def\backgroundcolor#1{\@tempswatrue
+  \let\pcol at backgroundcolor@e\pcol at backgroundcolor@w
+  \pcol at backgroundcolor#1\@nil}
+\def\nobackgroundcolor#1{\@tempswafalse
+  \let\pcol at backgroundcolor@e\pcol at backgroundcolor@z
+  \pcol at backgroundcolor#1\@nil}
+\def\pcol at backgroundcolor#1{%
+  \@ifundefined{pcol at bg@@#1}%
+    {\PackageError{paracol}%
+       {Invalid background coloring region identifier #1}%
+     \def\pcol at bg@region{xx}\pcol at backgroundcolor@e}%
+    {\def\pcol at bg@region{#1}%
+     \@ifnextchar[%]
+       \pcol at backgroundcolor@i \pcol at backgroundcolor@ii}}
+\def\pcol at backgroundcolor@i[#1]{%
+  \@ifundefined{pcol at bg@mayhavecol@\pcol at bg@region}%
+    {\PackageError{paracol}%
+       {Column number \number#1 is not effective for background coloring region
+        \pcol at bg@region}%
+     \def\pcol at bg@region{xx}\pcol at backgroundcolor@e}%
+    {\edef\pcol at bg@region{\pcol at bg@region @#1}%
+     \pcol at backgroundcolor@ii}}
+\def\pcol at backgroundcolor@ii{%
+  \if at tempswa
+    \ifx\set at color\relax
+      \PackageWarning{paracol}{\string\backgroundcolor\space is not effective
+        without some coloring package}%
+      \let\reserved at b\pcol at backgroundcolor@w
+    \else
+      \let\reserved at b\pcol at backgroundcolor@iii
+      \@cons\pcol at bg@defined{{\pcol at bg@region}}%
+    \fi
+  \else
+    \let\reserved at b\pcol at backgroundcolor@z
+  \fi
+  \reserved at b}
+\def\pcol at backgroundcolor@iii{%
+  \pcol at bg@defext{l}\z@ \pcol at bg@defext{r}\z@
+  \pcol at bg@defext{t}\z@ \pcol at bg@defext{b}\z@
+  \@ifnextchar(%)
+    \pcol at backgroundcolor@iv \pcol at backgroundcolor@x}
+\def\pcol at backgroundcolor@iv(#1,#2){%
+  \pcol at bg@defext{l}{#1}\pcol at bg@defext{r}{#1}%
+  \pcol at bg@defext{t}{#2}\pcol at bg@defext{b}{#2}%
+  \@ifnextchar(%)
+    \pcol at backgroundcolor@v \pcol at backgroundcolor@x}
+\def\pcol at backgroundcolor@v(#1,#2){%
+  \pcol at bg@defext{r}{#1}\pcol at bg@defext{b}{#2}%
+  \pcol at backgroundcolor@x}
+\def\pcol at backgroundcolor@x#1\@nil{\begingroup
+  \let\set at color\pcol at backgroundcolor@y \color}
+\def\pcol at backgroundcolor@y{%
+  \expandafter\xdef\csname pcol at bg@color@\pcol at bg@region\endcsname
+   {\current at color}%
+  \endgroup}
+\def\pcol at backgroundcolor@z#1\@nil{\pcol at backgroundcolor@wi[]{}}
+\def\pcol at backgroundcolor@w#1\@nil{\@ifnextchar[%]
+  \pcol at backgroundcolor@wi{\pcol at backgroundcolor@wi[]}}
+\def\pcol at backgroundcolor@wi[#1]#2{%
+  \expandafter\global\expandafter\let
+    \csname pcol at bg@color@\pcol at bg@region\endcsname\relax}
+
+\def\pcol at bg@mayhavecol at c{}
+\def\pcol at bg@mayhavecol at C{}
+\def\pcol at bg@mayhavecol at g{}
+\def\pcol at bg@mayhavecol at G{}
+
+\def\pcol at bg@defext#1#2{%
+  \@tempdima#2\relax
+  \expandafter\xdef\csname pcol at bg@ext@#1@\pcol at bg@region\endcsname{%
+    \number\@tempdima sp}}
+
+\def\resetbackgroundcolor{{%
+  \let\@elt\pcol at resetbackgroundcolor \pcol at bg@defined
+  \gdef\pcol at bgdefined{}}}
+\def\pcol at resetbackgroundcolor#1{%
+  \expandafter\global\expandafter\let\csname pcol at bg@color@#1\endcsname\relax}
+\gdef\pcol at bg@defined{}
+
+%% Closing Environment
+
+\def\endparacol{\pcol at par
+  \edef\pcol at lastcol{\number\pcol at currcol}%
+  \pcol at nextcol\z@ \pcol at switchcol
+  \pcol at lastpagetrue
+  \ifpcol at mgfnote \pcol at flushclear\voidb at x
+  \else \pcol at flushclear\pcol at topfnotes
+  \fi
+  \pcol at invokeoutput\pcol at op@end
+  \global\columnwidth\textwidth
+  \global\@twocolumnfalse
+  \global\topskip\pcol at topskip
+  \ifpcol at fncounteradjustment
+    \global\c at footnote\pcol at footnotebase
+    \global\advance\c at footnote\pcol at nfootnotes
+  \fi}
+
+\def\pcol at restoreeveryvbox{%
+  \expandafter\def\expandafter\reserved at a\expandafter{\the\pcol at everyvbox}%
+  \def\reserved at b{\pcol at dummytoken}%
+  \ifx\reserved at a\reserved at b\else \global\everyvbox\pcol at everyvbox \fi}


Property changes on: trunk/Master/texmf-dist/tex/latex/paracol/paracol-2018-12-31.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/paracol/paracol.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/paracol/paracol.sty	2024-10-25 21:26:46 UTC (rev 72650)
+++ trunk/Master/texmf-dist/tex/latex/paracol/paracol.sty	2024-10-25 21:26:59 UTC (rev 72651)
@@ -1,15 +1,17 @@
 %% Style file `paracol'.
 %% Copyright (C) 2005-2018
-%%   Hiroshi Nakashima <h.nakashima at DOMAIN;  DOMAIN=media.kyoto-u.ac.jp>
-%%   (Kyoto University)
+%%   Hiroshi Nakashima (Kyoto University, deceased)
+%% Copyright (C) 2024
+%%   Markus Kurtz
 %% This program can be redistributed and/or modified under the terms
 %% of the LaTeX Project Public License distributed from CTAN
 %% archives in directory macros/latex/base/lppl.txt; either
 %% version 1 of the License, or any later version.
 
-\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{paracol}
-[2018/12/31 v1.35 ]
+\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+\DeclareRelease{1.35}{2018-12-31}{paracol-2018-12-31.sty}
+\DeclareCurrentRelease{1.36}{2024-10-22}
+\ProvidesPackage{paracol}[2024/10/22 1.36 typeset columns in parallel]
 
 %% Register Declaration
 
@@ -2054,7 +2056,11 @@
   \ifpcol at scfnote
     \def\footnoterule{{\columnwidth\textwidth \pcol at footnoterule}}%
   \fi
-  \let\@footnotetext\pcol at fntext
+  \@ifundefined{H@@footnotetext}{%
+    \let\@footnotetext\pcol at fntext
+  }{%
+    \let\H@@footnotetext\pcol at fntext
+  }
   \let\pcol@@marginpar\marginpar \let\marginpar\pcol at marginpar
   \let\@mn@@marginnote\pcol at marginnote
   \let\pcol@@xympar\@xympar \let\@xympar\pcol at xympar
@@ -2061,7 +2067,10 @@
   \def\pcol at twosided[#1]{\pcol at ignore\twosided}%
   \def\swapcolumninevenpages{\pcol at ignore\swapcolumninevenpages}%
   \def\noswapcolumninevenpages{\pcol at ignore\noswapcolumninevenpages}%
-  \def\footnotelayout#1{\pcol at ignore\footnotelayout}%
+  \def\footnoteplacement#1{\pcol at ignore\footnoteplacement}%
+  \ifx\footnotelayout\footnoteplacement
+    \def\footnotelayout#1{\pcol at ignore\footnotelayout}%
+  \fi
   \def\multicolumnfootnotes{\pcol at ignore\multicolumnfootnotes}%
   \def\singlecolumnfootnotes{\pcol at ignore\singlecolumnfootnotes}%
   \def\mergedfootnotes{\pcol at ignore\mergedfootnotes}%
@@ -2307,7 +2316,15 @@
   \expandafter\let\expandafter\reserved at a\csname pcol at thectr@#10\endcsname
   \ifx\reserved at a\relax\else
     \expandafter\let\csname the#1\endcsname\reserved at a
-  \fi}
+  \fi
+  \@ifundefined{theH#1}{}{%
+    \expandafter\def\csname theH#1\expandafter\expandafter\expandafter\endcsname
+      \expandafter\expandafter\expandafter{%
+      \expandafter\expandafter\expandafter\pcol at thecurrcol\csname theH#1\endcsname
+    }%
+  }%
+}
+\def\pcol at thecurrcol{column\number\pcol at currcol.}
 
 \def\pcol at loadctrelt#1#2{\@namedef{pcol at ctr@#1}{#2}}
 \def\pcol at storecounters{\pcol at sscounters\pcol at storectrelt}
@@ -2424,7 +2441,9 @@
   \let\@elt\pcol at setctrelt
   \csname pcol at counters\number\pcol at currcol\endcsname
   \let\@elt\pcol at aconlyelt \pcol at aconly \let\@elt\relax
-  \@nameuse{pcol at colpream\ifpcol at sptextstart-1\else\number\pcol at currcol\fi}}
+  \@ifundefined{pcol at lastcol}{%
+    \@nameuse{pcol at colpream\ifpcol at sptextstart-1\else\number\pcol at currcol\fi}
+  }{}}
 
 \def\pcol at visitallcols#1{\begingroup
   \@tempcnta\z@ \@tempcntb\pcol at currcol
@@ -2531,7 +2550,7 @@
 
 %% Commands for Footnotes
 
-\def\footnotelayout#1{\@ifundefined{pcol at fnlayout@#1}%
+\def\footnoteplacement#1{\@ifundefined{pcol at fnlayout@#1}%
   {\PackageError{paracol}{Unknown footnote layout specifier #1}}%
   {\@nameuse{pcol at fnlayout@#1}}}
 \def\pcol at fnlayout@c{\global\pcol at scfnotefalse \global\pcol at mgfnotefalse
@@ -2543,6 +2562,16 @@
 \let\multicolumnfootnotes\pcol at fnlayout@c
 \let\singlecolumnfootnotes\pcol at fnlayout@p
 \let\mergedfootnotes\pcol at fnlayout@m
+\@ifundefined{footnotelayout}{%
+  \let\footnotelayout\footnoteplacement
+  \AddToHook{package/footmisc/before}{\let\footnotelayout\relax}%
+}{}
+\AddToHook{package/footmisc/before}{\PackageNoteNoLine{paracol}{%
+  With footmisc loaded, paracol's
+  \string\footnotelayout\space will be unavailable. Please use the
+  equivalent \string\footnoteplacement\space instead.\MessageBreak
+  Also note, that paracol's and footmisc's footnote handling may crash%
+}}
 
 \def\pcol at fntext{%
   \let\reserved at a\pcol at fntexttop
@@ -2560,13 +2589,16 @@
     \reset at font\footnotesize
     \interlinepenalty\interfootnotelinepenalty
     \splittopskip\footnotesep
-    \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
     \hsize \ifpcol at scfnote \textwidth \else \columnwidth \fi
-    \@parboxrestore
-    \protected at edef\@currentlabel{\p at footnote\@thefnmark}%
+    \def\@currentcounter{footnote}%
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
     \color at begingroup
-    \@makefntext{%
-      \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \par
     \color at endgroup}%
   \@tempdima\ht\@tempboxa \advance\@tempdima\dp\@tempboxa
   \@tempdimb\textheight \advance\@tempdimb-\skip\footins



More information about the tex-live-commits mailing list.