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.