[latex3-commits] [latex3/latex2e] ltmarks-multicol: cleanup (WIP) (bfa735142)

github at latex-project.org github at latex-project.org
Mon Nov 11 16:57:09 CET 2024


Repository : https://github.com/latex3/latex2e
On branch  : ltmarks-multicol
Link       : https://github.com/latex3/latex2e/commit/bfa7351429ece63947189e59dc49f3399767e982

>---------------------------------------------------------------

commit bfa7351429ece63947189e59dc49f3399767e982
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Mon Nov 11 16:57:09 2024 +0100

    cleanup (WIP)


>---------------------------------------------------------------

bfa7351429ece63947189e59dc49f3399767e982
 base/ltmarks.dtx                                |   5 +-
 required/tools/changes.txt                      |   6 +
 required/tools/multicol.dtx                     |  94 ++++++-----
 required/tools/testfiles/sx411758.luatex.tlg    |  26 +--
 required/tools/testfiles/sx411758.tlg           |  26 +--
 required/tools/testfiles/tlb-multicol-007.tlg   |  15 +-
 required/tools/testfiles/tlb-multicol-marks.lvt |  47 +++---
 required/tools/testfiles/tlb-multicol-marks.tlg | 206 +++++++++++++++---------
 8 files changed, 253 insertions(+), 172 deletions(-)

diff --git a/base/ltmarks.dtx b/base/ltmarks.dtx
index a8c764ac2..dacc1cdb8 100644
--- a/base/ltmarks.dtx
+++ b/base/ltmarks.dtx
@@ -963,8 +963,9 @@
 %
 %  \begin{macro}{\@@_init_region:nn,\c_@@_empty_tl}
 %    
-%    We need three token lists for each region, one for top, first,
-%    and last. The default value to be returned is \enquote{empty}.
+%    Per class (\texttt{\#2} we need three token lists for each
+%    region: one for top, first, and last. The default value to be
+%    returned is \enquote{empty}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_init_region:nn #1 #2 {
   \tl_new:c { g_@@_#1_top_   #2 _tl }
diff --git a/required/tools/changes.txt b/required/tools/changes.txt
index 83058c735..4b84cfb0e 100644
--- a/required/tools/changes.txt
+++ b/required/tools/changes.txt
@@ -5,6 +5,12 @@ completeness or accuracy and it contains some references to files that
 are not part of the distribution.
 =======================================================================
 
+2024-11-10  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+	* multicol.dtx (subsection{Supporting the new mark mechanism}):
+	Drop the legacy support for marks and use the new mark
+	mechanism throughout.
+	\usepackage{multicol}[=v1.9] reverts to previous approach.
+
 2024-11-03  Ulrike Fischer  <Ulrike.Fischer at latex-project.org>
 	* calc.dtx: suspend tagging in \@settodim (tagging/628)
 
diff --git a/required/tools/multicol.dtx b/required/tools/multicol.dtx
index cfccead4b..ad02eb074 100644
--- a/required/tools/multicol.dtx
+++ b/required/tools/multicol.dtx
@@ -1396,7 +1396,7 @@
 %    \end{macrocode}
 %    
 %    \begin{macrocode}
-  \mc at prepar@mark at collection
+  \mc at prepare@mark at regions
 %    \end{macrocode}
 %
 %    \begin{macrocode}
@@ -1769,8 +1769,7 @@
 % \changes{v2.0a}{2024/11/10}{}
 %    \begin{macrocode}
       \mc at handle@marks at and@reinserts
-          {endmulticols}%
-          {multicol~ (boxed)}%
+          {in multicol (boxed mode)}%
       \page at sofar
       \mc at reinsert@marks
     }%
@@ -2179,7 +2178,6 @@
 % \end{macro}
 %
 %
-%
 %  \begin{macro}{\multicolmindepthstring}
 %    The default minimum depth of each column corresponds to the depth
 %    of a `p' in the current font. This makes sense for Latin-based
@@ -2447,8 +2445,7 @@
 % \changes{v2.0a}{2024/11/10}{}
 %    \begin{macrocode}
         \mc at handle@col at andpage@marks
-           {multicolout}%
-           {multicol (full page)}%
+           {in multicol OR (full page)}%
        \unvbox\partial at page
        \page at sofar
        }%
@@ -2823,8 +2820,7 @@
 % \changes{v2.0a}{2024/11/10}{}
      %    \begin{macrocode}
      \mc at handle@marks at and@reinserts
-         {balancecolumnout}%
-         {multicol (finish)}%
+         {in multicol OR (balancing)}%
      \page at sofar
      \mc at reinsert@marks
 %    \end{macrocode}
@@ -4321,7 +4317,10 @@
 %
 %
 %  \begin{macro}{\g_mc_curr_col_int}
-%    
+%    Counter for tracking the current column number. At the start of a
+%    \env{multicols} environment is holds the number of columns for
+%    which there is currently \texttt{mcol-...} data (i.e., the number
+%    of columns in the last \env{multicols} environment). 
 %    \begin{macrocode}
 \int_new:N \g_mc_curr_col_int
 %    \end{macrocode}
@@ -4335,14 +4334,10 @@
 \cs_new_protected:Npn \__mc_update_col_structures: {
   \@@_debug:n
      {
-       \typeout{--->>>~ multicol~ update~ col~ structure}
+       \typeout{Marks:~ update~ mcol~ structures~ (multicol)}
      }
-  \int_while_do:nNnn \g_mc_curr_col_int > 2
-      {
-        \@@_update_structure_to_err:n
-           { mcol - \int_use:N\g_mc_curr_col_int }
-        \int_gdecr:N \g_mc_curr_col_int
-      }%
+  \int_step_inline:nnn {3} { \g_mc_curr_col_int }
+      { \@@_update_structure_to_err:n { mcol - ##1 } }
   \int_gset:Nn \g_mc_curr_col_int {1}
 %    \end{macrocode}
 %    
@@ -4382,7 +4377,7 @@
 \cs_new_protected:Npn \__mc_update_page_structures: {
   \@@_debug:n
      {
-       \typeout{--->>>~ multicol~ update~ page~ structure}
+       \typeout{Marks:~ update~ page~ structure~ (multicol)}
      }
   \@@_update_structure_from_material:nn
       {page}
@@ -4411,7 +4406,7 @@
 \cs_new_protected:Npn \__mc_prepare_mark_reinserts: {
   \@@_debug:n
      {
-       \typeout{--->>>~ multicol~ prepare~ reinsert~ marks}
+       \typeout{Marks:~ prepare~ for~ reinserting~ marks~ (multicol)}
      }
   \@@_get_marks_for_reinsertion:nNN
      {
@@ -4423,22 +4418,51 @@
 }
 %    \end{macrocode}
 %  \end{macro}
-
-
+%
+%
+%
+%  \begin{macro}{\mc at prepare@mark at regions}
+%    
+%    \begin{macrocode}
+\def \mc at prepare@mark at regions {
+  \@@_debug:n
+     {
+       \typeout{Marks:~ empty~ mcol~ regions~ (multicol)}
+     }
+  \if at boxedmulticols
+    \@@_update_alias_structure:nn{saved-column}{column}
+  \fi
+  \@@_clear_structure:n {column}
+}  
+%    \end{macrocode}
+%  \end{macro}
+%
 %
 %
 %  \begin{macro}{\mc at handle@marks at and@reinserts}
 %    
 %    \begin{macrocode}
-\def \mc at handle@marks at and@reinserts #1 #2 {
-  \@@_debug:n { \typeout{-->~ #1} }
+\def \mc at handle@marks at and@reinserts #1 {
   \__mc_update_col_structures:
-  \@@_debug:n { \@@_status:nn {#2} {\the\col at number} }
+  \@@_debug:n { \@@_status:nn {#1} {\the\col at number} }
   %
   \__mc_prepare_mark_reinserts:
+  \if at boxedmulticols
+    \@@_update_alias_structure:nn {column}{saved-column}
+  \fi
 }
 
-\def\mc at reinsert@marks{\l__mc_first_marks_tl\l__mc_last_marks_tl}
+\def\mc at reinsert@marks{
+  \@@_debug:n
+     {
+       \typeout{Marks:~ --~ reinsert~ marks~ (multicol)}
+     }
+     \l__mc_first_marks_tl \l__mc_last_marks_tl
+  \@@_debug:n
+     {
+       \typeout{Marks:~ --~ finished~ reinserting~ marks~ (multicol)}
+     }
+}
 %    \end{macrocode}
 %  \end{macro}
 %
@@ -4447,39 +4471,31 @@
 %  \begin{macro}{\mc at handle@col at andpage@marks}
 %    
 %    \begin{macrocode}
-\def \mc at handle@col at andpage@marks #1 #2 {
-  \@@_debug:n { \typeout{-->~ #1} }
+\def \mc at handle@col at andpage@marks #1 {
   \__mc_update_col_structures:
   \__mc_update_page_structures:
-  \@@_debug:n { \@@_status:nn {#2} {\the\col at number} }
+  \@@_debug:n { \@@_status:nn {#1} {\the\col at number} }
 }
 %    \end{macrocode}
 %  \end{macro}
 %
 %
-
-%  \begin{macro}{\mc at prepar@mark at collection}
+%
 %
 %    \begin{macrocode}
-\def \mc at prepar@mark at collection {
-%fmi  \@@_debug:n { \typeout{--->>>~ multicol~ empty~ mcol} }
-%fmi  \@@_clear_structure:n {mcol}
-  \@@_debug:n { \typeout{--->>>~ multicol~ empty~ column~ region} }
-  \@@_clear_structure:n {column}
-}  
+%<@@=>
 %    \end{macrocode}
-%  \end{macro}
 %
 %
 %
-%    \begin{macrocode}
-%<@@=>
-%    \end{macrocode}
+%  \begin{macro}{\leftmark,\rightmark}
 %    
+% \changes{v2.0a}{2024/11/10}{}
 %    \begin{macrocode}
 \def\leftmark{\mark_use_last:nn{page}{2e-left}}
 \def\rightmark{\mark_use_first:nn{page}{2e-right}}
 %    \end{macrocode}
+%  \end{macro}
 %
 %    \begin{macrocode}
 \ExplSyntaxOff
diff --git a/required/tools/testfiles/sx411758.luatex.tlg b/required/tools/testfiles/sx411758.luatex.tlg
index af41ae7e9..b4062121c 100644
--- a/required/tools/testfiles/sx411758.luatex.tlg
+++ b/required/tools/testfiles/sx411758.luatex.tlg
@@ -4,7 +4,7 @@ Package multicol: Starting environment with 2 columns on input line ....
 Package multicol: Current page:
 (multicol)        height=16383.99998pt: used 0.0pt -> free=16383.99998pt
 (multicol)        needed 50.0pt (for \premulticols ) on input line ....
---->>> multicol empty column region
+Marks: empty mcol regions (multicol)
 Package multicol: Forced column break seen on input line ....
 Package multicol: Forced column break seen on input line ....
 Package multicol: Forced column break seen on input line ....
@@ -1447,12 +1447,11 @@ Column 1 badness: 10000
 First column = 654.0pt (178.0pt) <> last column = 654.0pt
 Failed: columns too large with unprocessed forced break(s)!
 Package multicol: Balancing failed ... cut a normal page on input line ....
---> multicolout
---->>> multicol update col structure
---->>> multicol update page structure
-Marks: 2e-left multicol (full page):
-Marks: 2e-right multicol (full page):
-Marks: 2e-right-nonempty multicol (full page):
+Marks: update mcol structures (multicol)
+Marks: update page structure (multicol)
+Marks: 2e-left in multicol OR (full page):
+Marks: 2e-right in multicol OR (full page):
+Marks: 2e-right-nonempty in multicol OR (full page):
 Package multicol: Column spec: 345.0pt = indent + columns + sep =
 (multicol)        0.0pt + 2 x 154.4325pt + 1 x 36.135pt on input line ....
 Completed box being shipped out [1]
@@ -3024,17 +3023,18 @@ Rejected: unprocessed forced break(s) in last column!
 Column 1 badness: 0  
 First column = 298.0pt (298.0pt) <> last column = 178.0pt
 Final badness: 10000  setting natural (> 9999)
---> balancecolumnout
---->>> multicol update col structure
-Marks: 2e-left multicol (finish):
-Marks: 2e-right multicol (finish):
-Marks: 2e-right-nonempty multicol (finish):
---->>> multicol prepare reinsert marks
+Marks: update mcol structures (multicol)
+Marks: 2e-left in multicol OR (balancing):
+Marks: 2e-right in multicol OR (balancing):
+Marks: 2e-right-nonempty in multicol OR (balancing):
+Marks: prepare for reinserting marks (multicol)
 Marks: no marks for class '2e-left' on line ...
 Marks: no marks for class '2e-right' on line ...
 Marks: no marks for class '2e-right-nonempty' on line ...
 Package multicol: Column spec: 345.0pt = indent + columns + sep =
 (multicol)        0.0pt + 2 x 154.4325pt + 1 x 36.135pt on input line ....
+Marks: -- reinsert marks (multicol)
+Marks: -- finished reinserting marks (multicol)
 Package multicol: Current page:
 (multicol)        height=550.0pt: used 298.4pt -> free=251.6pt
 (multicol)        needed 20.0pt (for \postmulticols ) on input line ....
diff --git a/required/tools/testfiles/sx411758.tlg b/required/tools/testfiles/sx411758.tlg
index 7441e0263..003ad4e3e 100644
--- a/required/tools/testfiles/sx411758.tlg
+++ b/required/tools/testfiles/sx411758.tlg
@@ -4,7 +4,7 @@ Package multicol: Starting environment with 2 columns on input line ....
 Package multicol: Current page:
 (multicol)        height=16383.99998pt: used 0.0pt -> free=16383.99998pt
 (multicol)        needed 50.0pt (for \premulticols ) on input line ....
---->>> multicol empty column region
+Marks: empty mcol regions (multicol)
 Package multicol: Forced column break seen on input line ....
 Package multicol: Forced column break seen on input line ....
 Package multicol: Forced column break seen on input line ....
@@ -1447,12 +1447,11 @@ Column 1 badness: 10000
 First column = 654.0pt (178.0pt) <> last column = 654.0pt
 Failed: columns too large with unprocessed forced break(s)!
 Package multicol: Balancing failed ... cut a normal page on input line ....
---> multicolout
---->>> multicol update col structure
---->>> multicol update page structure
-Marks: 2e-left multicol (full page):
-Marks: 2e-right multicol (full page):
-Marks: 2e-right-nonempty multicol (full page):
+Marks: update mcol structures (multicol)
+Marks: update page structure (multicol)
+Marks: 2e-left in multicol OR (full page):
+Marks: 2e-right in multicol OR (full page):
+Marks: 2e-right-nonempty in multicol OR (full page):
 Package multicol: Column spec: 345.0pt = indent + columns + sep =
 (multicol)        0.0pt + 2 x 154.4325pt + 1 x 36.135pt on input line ....
 Completed box being shipped out [1]
@@ -3020,17 +3019,18 @@ Rejected: unprocessed forced break(s) in last column!
 Column 1 badness: 0  
 First column = 298.0pt (298.0pt) <> last column = 178.0pt
 Final badness: 10000  setting natural (> 9999)
---> balancecolumnout
---->>> multicol update col structure
-Marks: 2e-left multicol (finish):
-Marks: 2e-right multicol (finish):
-Marks: 2e-right-nonempty multicol (finish):
---->>> multicol prepare reinsert marks
+Marks: update mcol structures (multicol)
+Marks: 2e-left in multicol OR (balancing):
+Marks: 2e-right in multicol OR (balancing):
+Marks: 2e-right-nonempty in multicol OR (balancing):
+Marks: prepare for reinserting marks (multicol)
 Marks: no marks for class '2e-left' on line ...
 Marks: no marks for class '2e-right' on line ...
 Marks: no marks for class '2e-right-nonempty' on line ...
 Package multicol: Column spec: 345.0pt = indent + columns + sep =
 (multicol)        0.0pt + 2 x 154.4325pt + 1 x 36.135pt on input line ....
+Marks: -- reinsert marks (multicol)
+Marks: -- finished reinserting marks (multicol)
 Package multicol: Current page:
 (multicol)        height=550.0pt: used 298.4pt -> free=251.6pt
 (multicol)        needed 20.0pt (for \postmulticols ) on input line ....
diff --git a/required/tools/testfiles/tlb-multicol-007.tlg b/required/tools/testfiles/tlb-multicol-007.tlg
index 011da39a1..677a9a52c 100644
--- a/required/tools/testfiles/tlb-multicol-007.tlg
+++ b/required/tools/testfiles/tlb-multicol-007.tlg
@@ -4,7 +4,7 @@ Package multicol: Starting environment with 2 columns on input line ....
 Package multicol: Current page:
 (multicol)        height=16383.99998pt: used 0.0pt -> free=16383.99998pt
 (multicol)        needed 50.0pt (for \premulticols ) on input line ....
---->>> multicol empty column region
+Marks: empty mcol regions (multicol)
 Package multicol: Forced column break seen on input line ....
 Package multicol: End penalty of multicols seen on input line ....
 Package multicol: Re-adding forced break(s) in balancing on input line ....
@@ -12,17 +12,18 @@ Package multicol: Balance columns on input line ...:
 Column 1 badness: 0  
 First column = 10.0pt (10.0pt) <> last column = 10.0pt
 Final badness: 0
---> balancecolumnout
---->>> multicol update col structure
-Marks: 2e-left multicol (finish):
-Marks: 2e-right multicol (finish):
-Marks: 2e-right-nonempty multicol (finish):
---->>> multicol prepare reinsert marks
+Marks: update mcol structures (multicol)
+Marks: 2e-left in multicol OR (balancing):
+Marks: 2e-right in multicol OR (balancing):
+Marks: 2e-right-nonempty in multicol OR (balancing):
+Marks: prepare for reinserting marks (multicol)
 Marks: no marks for class '2e-left' on line ...
 Marks: no marks for class '2e-right' on line ...
 Marks: no marks for class '2e-right-nonempty' on line ...
 Package multicol: Column spec: 345.0pt = indent + columns + sep =
 (multicol)        0.0pt + 2 x 167.5pt + 1 x 10.0pt on input line ....
+Marks: -- reinsert marks (multicol)
+Marks: -- finished reinserting marks (multicol)
 Package multicol: Current page:
 (multicol)        height=550.0pt: used 10.0pt -> free=540.0pt
 (multicol)        needed 20.0pt (for \postmulticols ) on input line ....
diff --git a/required/tools/testfiles/tlb-multicol-marks.lvt b/required/tools/testfiles/tlb-multicol-marks.lvt
index 167d53f12..c7aab36b8 100644
--- a/required/tools/testfiles/tlb-multicol-marks.lvt
+++ b/required/tools/testfiles/tlb-multicol-marks.lvt
@@ -20,6 +20,8 @@
 \let\@evenfoot=\@oddfoot
 \makeatother
 
+\setlength\columnseprule{.4pt}
+
 %\scrollmode
 
 \begin{document}
@@ -32,77 +34,86 @@ abc
 
 \newpage
 
-\InsertMark{DictMark}{a}a \InsertMark{DictMark}{b}b
+  text \InsertMark{DictMark}{a}a   text \InsertMark{DictMark}{b}b
 
 \begin{multicols}{4}
-\InsertMark{DictMark}{m1}m1
+  text \InsertMark{DictMark}{m1}m1
 
 \columnbreak
 
 \section{B}
 \subsection{B sub1}
 
-\InsertMark{DictMark}{n1}n1
+  text \InsertMark{DictMark}{n1}n1
 
 \columnbreak
 
 \subsection{B sub2}
 \subsection{B sub3}
-\InsertMark{DictMark}{o1}o1
+  text \InsertMark{DictMark}{o1}o1
 
 \columnbreak
 
-\InsertMark{DictMark}{p1}p1
+  text \InsertMark{DictMark}{p1}p1
 
 \columnbreak
 
-\InsertMark{DictMark}{q1}q1
+  text \InsertMark{DictMark}{q1}q1
 
 \columnbreak
 
-\InsertMark{DictMark}{r1}r1
+  text \InsertMark{DictMark}{r1}r1
 
 \columnbreak
 
 \section{C}
-\InsertMark{DictMark}{s1}s1
+  text \InsertMark{DictMark}{s1}s1
 
 \columnbreak
 
-\InsertMark{DictMark}{t1}t1
+  text \InsertMark{DictMark}{t1}t1
 
 \end{multicols}
 
 
-\InsertMark{DictMark}{z1}z1
+  text \InsertMark{DictMark}{z1}z1
 
 
 \begin{multicols}{2}
-\InsertMark{DictMark}{m2}m2
+  text \InsertMark{DictMark}{m2}m2
 
 \columnbreak
 
 \subsection{C sub1}
-\InsertMark{DictMark}{n2}n2
+  text \InsertMark{DictMark}{n2}n2
 
-\columnbreak
+\pagebreak
 
-\InsertMark{DictMark}{o2}o2
+  text \InsertMark{DictMark}{o2}o2
 
 \columnbreak
 
-\InsertMark{DictMark}{p2}p2
+  text \InsertMark{DictMark}{p2}p2
+
+\begin{multicols}{3}
+   text \InsertMark{DictMark}{a3}a3
+   text \InsertMark{DictMark}{b3}b3
+   text \InsertMark{DictMark}{c3}c3
+   text \InsertMark{DictMark}{d3}d3
+   text \InsertMark{DictMark}{e3}e3
+   text \InsertMark{DictMark}{f3}f3
+\end{multicols}
 
 \columnbreak
 
-\InsertMark{DictMark}{q2}q2
+  text \InsertMark{DictMark}{q2}q2
 \columnbreak
 
-\InsertMark{DictMark}{r2}r2
+  text \InsertMark{DictMark}{r2}r2
 
 \columnbreak
 
-\InsertMark{DictMark}{s2}s2
+  text \InsertMark{DictMark}{s2}s2
 \end{multicols}
 
 
diff --git a/required/tools/testfiles/tlb-multicol-marks.tlg b/required/tools/testfiles/tlb-multicol-marks.tlg
index ebec46405..447e11d2b 100644
--- a/required/tools/testfiles/tlb-multicol-marks.tlg
+++ b/required/tools/testfiles/tlb-multicol-marks.tlg
@@ -20,7 +20,7 @@ Marks: DictMark in OR (twoside-odd):
 ]
 Marks: set DictMark <- '\__mark_value:nn {3}{a}' on line ...
 Marks: set DictMark <- '\__mark_value:nn {4}{b}' on line ...
---->>> multicol empty column region
+Marks: empty mcol regions (multicol)
 Marks: set DictMark <- '\__mark_value:nn {5}{m1}' on line ...
 Marks: set 2e-left <- '\__mark_value:nn {6}{\MakeUppercase    []{2\hskip 1em\relax B}}' on line ...
 Marks: set 2e-right <- '\__mark_value:nn {7}{}' on line ...
@@ -39,10 +39,9 @@ Marks: set 2e-left <- '\__mark_value:nn {19}{\MakeUppercase    []{3\hskip 1em\re
 Marks: set 2e-right <- '\__mark_value:nn {20}{}' on line ...
 Marks: set DictMark <- '\__mark_value:nn {21}{s1}' on line ...
 Marks: set DictMark <- '\__mark_value:nn {22}{t1}' on line ...
---> multicolout
---->>> multicol update col structure
---->>> multicol update page structure
-Marks: 2e-left multicol (full page):
+Marks: update mcol structures (multicol)
+Marks: update page structure (multicol)
+Marks: 2e-left in multicol OR (full page):
     page (previous)=| {0}  | {1} \MakeUppercase    []{1\hskip 1em\relax A} | {1} \MakeUppercase    []{1\hskip 1em\relax A} |
     page (current) =| {1} \MakeUppercase    []{1\hskip 1em\relax A} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
     column (previous)=| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
@@ -51,7 +50,7 @@ Marks: 2e-left multicol (full page):
     column (2) =| {0}  | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
     column (3) =| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
     column (4) =| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
-Marks: 2e-right multicol (full page):
+Marks: 2e-right in multicol OR (full page):
     page (previous)=| {0}  | {2}  | {2}  |
     page (current) =| {2}  | {7}  | {13} 2.3\hskip 1em\relax B sub3 |
     column (previous)=| {8} 2.1\hskip 1em\relax B sub1 | {11} 2.2\hskip 1em\relax B sub2 | {13} 2.3\hskip 1em\relax B sub3 |
@@ -60,7 +59,7 @@ Marks: 2e-right multicol (full page):
     column (2) =| {0}  | {7}  | {8} 2.1\hskip 1em\relax B sub1 |
     column (3) =| {8} 2.1\hskip 1em\relax B sub1 | {11} 2.2\hskip 1em\relax B sub2 | {13} 2.3\hskip 1em\relax B sub3 |
     column (4) =| {13} 2.3\hskip 1em\relax B sub3 | {13} 2.3\hskip 1em\relax B sub3 | {13} 2.3\hskip 1em\relax B sub3 |
-Marks: 2e-right-nonempty multicol (full page):
+Marks: 2e-right-nonempty in multicol OR (full page):
     page (current) =| {0}  | {9} 2.1\hskip 1em\relax B sub1 | {14} 2.3\hskip 1em\relax B sub3 |
     column (previous)=| {9} 2.1\hskip 1em\relax B sub1 | {12} 2.2\hskip 1em\relax B sub2 | {14} 2.3\hskip 1em\relax B sub3 |
     column (current) =| {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 |
@@ -68,7 +67,7 @@ Marks: 2e-right-nonempty multicol (full page):
     column (2) =| {0}  | {9} 2.1\hskip 1em\relax B sub1 | {9} 2.1\hskip 1em\relax B sub1 |
     column (3) =| {9} 2.1\hskip 1em\relax B sub1 | {12} 2.2\hskip 1em\relax B sub2 | {14} 2.3\hskip 1em\relax B sub3 |
     column (4) =| {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 |
-Marks: DictMark multicol (full page):
+Marks: DictMark in multicol OR (full page):
     page (current) =| {0}  | {3} a | {16} p1 |
     column (previous)=| {10} n1 | {15} o1 | {15} o1 |
     column (current) =| {15} o1 | {16} p1 | {16} p1 |
@@ -81,9 +80,8 @@ Marks: DictMark multicol (full page):
 ==> Header: \MakeUppercase    []{2\hskip 1em\relax B}--2.1\hskip 1em\relax B sub1 ??? \MakeUppercase    []{2\hskip 1em\relax B}--
 ==> Footer: a--p1 page: 2
 [2]
---> balancecolumnout
---->>> multicol update col structure
-Marks: 2e-left multicol (finish):
+Marks: update mcol structures (multicol)
+Marks: 2e-left in multicol OR (balancing):
     page (previous)=| {0}  | {1} \MakeUppercase    []{1\hskip 1em\relax A} | {1} \MakeUppercase    []{1\hskip 1em\relax A} |
     page (current) =| {1} \MakeUppercase    []{1\hskip 1em\relax A} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
     column (previous)=| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {19} \MakeUppercase    []{3\hskip 1em\relax C} | {19} \MakeUppercase    []{3\hskip 1em\relax C} |
@@ -94,7 +92,7 @@ Marks: 2e-left multicol (finish):
     column (2) =| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
     column (3) =| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {19} \MakeUppercase    []{3\hskip 1em\relax C} | {19} \MakeUppercase    []{3\hskip 1em\relax C} |
     column (4) =| {19} \MakeUppercase    []{3\hskip 1em\relax C} | {19} \MakeUppercase    []{3\hskip 1em\relax C} | {19} \MakeUppercase    []{3\hskip 1em\relax C} |
-Marks: 2e-right multicol (finish):
+Marks: 2e-right in multicol OR (balancing):
     page (previous)=| {0}  | {2}  | {2}  |
     page (current) =| {2}  | {7}  | {13} 2.3\hskip 1em\relax B sub3 |
     column (previous)=| {13} 2.3\hskip 1em\relax B sub3 | {20}  | {20}  |
@@ -105,7 +103,7 @@ Marks: 2e-right multicol (finish):
     column (2) =| {13} 2.3\hskip 1em\relax B sub3 | {13} 2.3\hskip 1em\relax B sub3 | {13} 2.3\hskip 1em\relax B sub3 |
     column (3) =| {13} 2.3\hskip 1em\relax B sub3 | {20}  | {20}  |
     column (4) =| {20}  | {20}  | {20}  |
-Marks: 2e-right-nonempty multicol (finish):
+Marks: 2e-right-nonempty in multicol OR (balancing):
     page (current) =| {0}  | {9} 2.1\hskip 1em\relax B sub1 | {14} 2.3\hskip 1em\relax B sub3 |
     column (previous)=| {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 |
     column (current) =| {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 |
@@ -115,7 +113,7 @@ Marks: 2e-right-nonempty multicol (finish):
     column (2) =| {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 |
     column (3) =| {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 |
     column (4) =| {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 | {14} 2.3\hskip 1em\relax B sub3 |
-Marks: DictMark multicol (finish):
+Marks: DictMark in multicol OR (balancing):
     page (current) =| {0}  | {3} a | {16} p1 |
     column (previous)=| {18} r1 | {21} s1 | {21} s1 |
     column (current) =| {21} s1 | {22} t1 | {22} t1 |
@@ -125,7 +123,7 @@ Marks: DictMark multicol (finish):
     column (2) =| {17} q1 | {18} r1 | {18} r1 |
     column (3) =| {18} r1 | {21} s1 | {21} s1 |
     column (4) =| {21} s1 | {22} t1 | {22} t1 |
---->>> multicol prepare reinsert marks
+Marks: prepare for reinserting marks (multicol)
 Marks: extract last mark for class '2e-left' = \__mark_value:nn {19}{\MakeUppercase    []{3\hskip 1em\relax C}}
 Marks: extract first mark for class '2e-left' = \__mark_value:nn {19}{\MakeUppercase    []{3\hskip 1em\relax C}}
 Marks: extract last mark for class '2e-right' = \__mark_value:nn {20}{}
@@ -133,42 +131,38 @@ Marks: extract first mark for class '2e-right' = \__mark_value:nn {20}{}
 Marks: no marks for class '2e-right-nonempty' on line ...
 Marks: extract last mark for class 'DictMark' = \__mark_value:nn {22}{t1}
 Marks: extract first mark for class 'DictMark' = \__mark_value:nn {17}{q1}
+Marks: -- reinsert marks (multicol)
 Marks: set 2e-left <- '\__mark_value:nn {23}{\MakeUppercase    []{3\hskip 1em\relax C}}' on line ...
 Marks: set 2e-right <- '\__mark_value:nn {24}{}' on line ...
 Marks: set DictMark <- '\__mark_value:nn {25}{q1}' on line ...
 Marks: set 2e-left <- '\__mark_value:nn {26}{\MakeUppercase    []{3\hskip 1em\relax C}}' on line ...
 Marks: set 2e-right <- '\__mark_value:nn {27}{}' on line ...
 Marks: set DictMark <- '\__mark_value:nn {28}{t1}' on line ...
+Marks: -- finished reinserting marks (multicol)
 Marks: set DictMark <- '\__mark_value:nn {29}{z1}' on line ...
---->>> multicol empty column region
+Marks: empty mcol regions (multicol)
 Marks: set DictMark <- '\__mark_value:nn {30}{m2}' on line ...
 Marks: set 2e-right <- '\__mark_value:nn {31}{3.1\hskip 1em\relax C sub1}' on line ...
 Marks: set 2e-right-nonempty <- '\__mark_value:nn {32}{3.1\hskip 1em\relax C sub1}' on line ...
 Marks: set DictMark <- '\__mark_value:nn {33}{n2}' on line ...
-Marks: set DictMark <- '\__mark_value:nn {34}{o2}' on line ...
-Marks: set DictMark <- '\__mark_value:nn {35}{p2}' on line ...
-Marks: set DictMark <- '\__mark_value:nn {36}{q2}' on line ...
-Marks: set DictMark <- '\__mark_value:nn {37}{r2}' on line ...
-Marks: set DictMark <- '\__mark_value:nn {38}{s2}' on line ...
---> multicolout
---->>> multicol update col structure
---->>> multicol update page structure
-Marks: 2e-left multicol (full page):
+Marks: update mcol structures (multicol)
+Marks: update page structure (multicol)
+Marks: 2e-left in multicol OR (full page):
     page (previous)=| {1} \MakeUppercase    []{1\hskip 1em\relax A} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
     page (current) =| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {23} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
-Marks: 2e-right multicol (full page):
+Marks: 2e-right in multicol OR (full page):
     page (previous)=| {2}  | {7}  | {13} 2.3\hskip 1em\relax B sub3 |
     page (current) =| {13} 2.3\hskip 1em\relax B sub3 | {24}  | {31} 3.1\hskip 1em\relax C sub1 |
     column (current) =| {0}  | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (last) =| {0}  | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {0}  | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
-Marks: 2e-right-nonempty multicol (full page):
+Marks: 2e-right-nonempty in multicol OR (full page):
     page (previous)=| {0}  | {9} 2.1\hskip 1em\relax B sub1 | {14} 2.3\hskip 1em\relax B sub3 |
     page (current) =| {14} 2.3\hskip 1em\relax B sub3 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (current) =| {0}  | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (last) =| {0}  | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {0}  | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
-Marks: DictMark multicol (full page):
+Marks: DictMark in multicol OR (full page):
     page (previous)=| {0}  | {3} a | {16} p1 |
     page (current) =| {16} p1 | {25} q1 | {33} n2 |
     column (previous)=| {0}  | {30} m2 | {30} m2 |
@@ -180,13 +174,65 @@ Marks: DictMark multicol (full page):
 ==> Header: \MakeUppercase    []{3\hskip 1em\relax C}--3.1\hskip 1em\relax C sub1 ??? \MakeUppercase    []{3\hskip 1em\relax C}--
 ==> Footer: q1--n2 page: 3
 [3]
---> multicolout
---->>> multicol update col structure
---->>> multicol update page structure
-Marks: 2e-left multicol (full page):
+Marks: set DictMark <- '\__mark_value:nn {34}{o2}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {35}{p2}' on line ...
+Marks: empty mcol regions (multicol)
+Marks: set DictMark <- '\__mark_value:nn {36}{a3}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {37}{b3}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {38}{c3}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {39}{d3}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {40}{e3}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {41}{f3}' on line ...
+Underfull \hbox (badness 10000) in paragraph at lines 99--105
+\OT1/cmr/m/n/10 text b3
+\hbox(6.94444+0.0)x49.16666, glue set 10.66669
+.\OT1/cmr/m/n/10 t
+.\OT1/cmr/m/n/10 e
+.\OT1/cmr/m/n/10 x
+.\OT1/cmr/m/n/10 t
+.\glue 3.33333 plus 1.66666 minus 1.11111
+.\OT1/cmr/m/n/10 b
+.\OT1/cmr/m/n/10 3
+.\glue(\rightskip) 0.0
+Marks: update mcol structures (multicol)
+Marks: 2e-left in multicol (boxed mode):
+    page (previous)=| {1} \MakeUppercase    []{1\hskip 1em\relax A} | {6} \MakeUppercase    []{2\hskip 1em\relax B} | {6} \MakeUppercase    []{2\hskip 1em\relax B} |
+    page (current) =| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {23} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
+Marks: 2e-right in multicol (boxed mode):
+    page (previous)=| {2}  | {7}  | {13} 2.3\hskip 1em\relax B sub3 |
+    page (current) =| {13} 2.3\hskip 1em\relax B sub3 | {24}  | {31} 3.1\hskip 1em\relax C sub1 |
+Marks: 2e-right-nonempty in multicol (boxed mode):
+    page (previous)=| {0}  | {9} 2.1\hskip 1em\relax B sub1 | {14} 2.3\hskip 1em\relax B sub3 |
+    page (current) =| {14} 2.3\hskip 1em\relax B sub3 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
+Marks: DictMark in multicol (boxed mode):
+    page (previous)=| {0}  | {3} a | {16} p1 |
+    page (current) =| {16} p1 | {25} q1 | {33} n2 |
+    column (previous)=| {37} b3 | {38} c3 | {40} e3 |
+    column (current) =| {40} e3 | {41} f3 | {41} f3 |
+    column (first)=| {0}  | {36} a3 | {37} b3 |
+    column (last) =| {40} e3 | {41} f3 | {41} f3 |
+    column (1) =| {0}  | {36} a3 | {37} b3 |
+    column (2) =| {37} b3 | {38} c3 | {40} e3 |
+    column (3) =| {40} e3 | {41} f3 | {41} f3 |
+Marks: prepare for reinserting marks (multicol)
+Marks: no marks for class '2e-left' on line ...
+Marks: no marks for class '2e-right' on line ...
+Marks: no marks for class '2e-right-nonempty' on line ...
+Marks: extract last mark for class 'DictMark' = \__mark_value:nn {41}{f3}
+Marks: extract first mark for class 'DictMark' = \__mark_value:nn {36}{a3}
+Marks: -- reinsert marks (multicol)
+Marks: set DictMark <- '\__mark_value:nn {42}{a3}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {43}{f3}' on line ...
+Marks: -- finished reinserting marks (multicol)
+Marks: set DictMark <- '\__mark_value:nn {44}{q2}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {45}{r2}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {46}{s2}' on line ...
+Marks: update mcol structures (multicol)
+Marks: update page structure (multicol)
+Marks: 2e-left in multicol OR (full page):
     page (previous)=| {6} \MakeUppercase    []{2\hskip 1em\relax B} | {23} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
     page (current) =| {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
-Marks: 2e-right multicol (full page):
+Marks: 2e-right in multicol OR (full page):
     page (previous)=| {13} 2.3\hskip 1em\relax B sub3 | {24}  | {31} 3.1\hskip 1em\relax C sub1 |
     page (current) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (previous)=| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
@@ -195,7 +241,7 @@ Marks: 2e-right multicol (full page):
     column (last) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (1) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
-Marks: 2e-right-nonempty multicol (full page):
+Marks: 2e-right-nonempty in multicol OR (full page):
     page (previous)=| {14} 2.3\hskip 1em\relax B sub3 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     page (current) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (previous)=| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
@@ -204,25 +250,24 @@ Marks: 2e-right-nonempty multicol (full page):
     column (last) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (1) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
-Marks: DictMark multicol (full page):
+Marks: DictMark in multicol OR (full page):
     page (previous)=| {16} p1 | {25} q1 | {33} n2 |
-    page (current) =| {33} n2 | {34} o2 | {35} p2 |
+    page (current) =| {33} n2 | {34} o2 | {43} f3 |
     column (previous)=| {33} n2 | {34} o2 | {34} o2 |
-    column (current) =| {34} o2 | {35} p2 | {35} p2 |
+    column (current) =| {34} o2 | {35} p2 | {43} f3 |
     column (first)=| {33} n2 | {34} o2 | {34} o2 |
-    column (last) =| {34} o2 | {35} p2 | {35} p2 |
+    column (last) =| {34} o2 | {35} p2 | {43} f3 |
     column (1) =| {33} n2 | {34} o2 | {34} o2 |
-    column (2) =| {34} o2 | {35} p2 | {35} p2 |
+    column (2) =| {34} o2 | {35} p2 | {43} f3 |
 ==> Header: \MakeUppercase    []{3\hskip 1em\relax C}-- ??? \MakeUppercase    []{3\hskip 1em\relax C}--3.1\hskip 1em\relax C sub1
-==> Footer: o2--p2 page: 4
+==> Footer: o2--f3 page: 4
 [4]
---> multicolout
---->>> multicol update col structure
---->>> multicol update page structure
-Marks: 2e-left multicol (full page):
+Marks: update mcol structures (multicol)
+Marks: update page structure (multicol)
+Marks: 2e-left in multicol OR (full page):
     page (previous)=| {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
     page (current) =| {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
-Marks: 2e-right multicol (full page):
+Marks: 2e-right in multicol OR (full page):
     page (previous)=| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     page (current) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (previous)=| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
@@ -231,7 +276,7 @@ Marks: 2e-right multicol (full page):
     column (last) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (1) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
-Marks: 2e-right-nonempty multicol (full page):
+Marks: 2e-right-nonempty in multicol OR (full page):
     page (previous)=| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     page (current) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (previous)=| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
@@ -240,24 +285,23 @@ Marks: 2e-right-nonempty multicol (full page):
     column (last) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (1) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
-Marks: DictMark multicol (full page):
-    page (previous)=| {33} n2 | {34} o2 | {35} p2 |
-    page (current) =| {35} p2 | {36} q2 | {37} r2 |
-    column (previous)=| {35} p2 | {36} q2 | {36} q2 |
-    column (current) =| {36} q2 | {37} r2 | {37} r2 |
-    column (first)=| {35} p2 | {36} q2 | {36} q2 |
-    column (last) =| {36} q2 | {37} r2 | {37} r2 |
-    column (1) =| {35} p2 | {36} q2 | {36} q2 |
-    column (2) =| {36} q2 | {37} r2 | {37} r2 |
+Marks: DictMark in multicol OR (full page):
+    page (previous)=| {33} n2 | {34} o2 | {43} f3 |
+    page (current) =| {43} f3 | {44} q2 | {45} r2 |
+    column (previous)=| {43} f3 | {44} q2 | {44} q2 |
+    column (current) =| {44} q2 | {45} r2 | {45} r2 |
+    column (first)=| {43} f3 | {44} q2 | {44} q2 |
+    column (last) =| {44} q2 | {45} r2 | {45} r2 |
+    column (1) =| {43} f3 | {44} q2 | {44} q2 |
+    column (2) =| {44} q2 | {45} r2 | {45} r2 |
 ==> Header: \MakeUppercase    []{3\hskip 1em\relax C}-- ??? \MakeUppercase    []{3\hskip 1em\relax C}--3.1\hskip 1em\relax C sub1
 ==> Footer: q2--r2 page: 5
 [5]
---> balancecolumnout
---->>> multicol update col structure
-Marks: 2e-left multicol (finish):
+Marks: update mcol structures (multicol)
+Marks: 2e-left in multicol OR (balancing):
     page (previous)=| {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
     page (current) =| {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} | {26} \MakeUppercase    []{3\hskip 1em\relax C} |
-Marks: 2e-right multicol (finish):
+Marks: 2e-right in multicol OR (balancing):
     page (previous)=| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     page (current) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (previous)=| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
@@ -266,7 +310,7 @@ Marks: 2e-right multicol (finish):
     column (last) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (1) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 | {31} 3.1\hskip 1em\relax C sub1 |
-Marks: 2e-right-nonempty multicol (finish):
+Marks: 2e-right-nonempty in multicol OR (balancing):
     page (previous)=| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     page (current) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (previous)=| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
@@ -275,23 +319,25 @@ Marks: 2e-right-nonempty multicol (finish):
     column (last) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (1) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (2) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
-Marks: DictMark multicol (finish):
-    page (previous)=| {33} n2 | {34} o2 | {35} p2 |
-    page (current) =| {35} p2 | {36} q2 | {37} r2 |
-    column (previous)=| {37} r2 | {38} s2 | {38} s2 |
-    column (current) =| {38} s2 | {38} s2 | {38} s2 |
-    column (first)=| {37} r2 | {38} s2 | {38} s2 |
-    column (last) =| {38} s2 | {38} s2 | {38} s2 |
-    column (1) =| {37} r2 | {38} s2 | {38} s2 |
-    column (2) =| {38} s2 | {38} s2 | {38} s2 |
---->>> multicol prepare reinsert marks
+Marks: DictMark in multicol OR (balancing):
+    page (previous)=| {33} n2 | {34} o2 | {43} f3 |
+    page (current) =| {43} f3 | {44} q2 | {45} r2 |
+    column (previous)=| {45} r2 | {46} s2 | {46} s2 |
+    column (current) =| {46} s2 | {46} s2 | {46} s2 |
+    column (first)=| {45} r2 | {46} s2 | {46} s2 |
+    column (last) =| {46} s2 | {46} s2 | {46} s2 |
+    column (1) =| {45} r2 | {46} s2 | {46} s2 |
+    column (2) =| {46} s2 | {46} s2 | {46} s2 |
+Marks: prepare for reinserting marks (multicol)
 Marks: no marks for class '2e-left' on line ...
 Marks: no marks for class '2e-right' on line ...
 Marks: no marks for class '2e-right-nonempty' on line ...
-Marks: extract last mark for class 'DictMark' = \__mark_value:nn {38}{s2}
-Marks: extract first mark for class 'DictMark' = \__mark_value:nn {38}{s2}
-Marks: set DictMark <- '\__mark_value:nn {39}{s2}' on line ...
-Marks: set DictMark <- '\__mark_value:nn {40}{s2}' on line ...
+Marks: extract last mark for class 'DictMark' = \__mark_value:nn {46}{s2}
+Marks: extract first mark for class 'DictMark' = \__mark_value:nn {46}{s2}
+Marks: -- reinsert marks (multicol)
+Marks: set DictMark <- '\__mark_value:nn {47}{s2}' on line ...
+Marks: set DictMark <- '\__mark_value:nn {48}{s2}' on line ...
+Marks: -- finished reinserting marks (multicol)
 ! LaTeX mark Error: Mark region 'column-3' not usable or class unknown
 For immediate help type H <return>.
  ...                                              
@@ -338,12 +384,12 @@ Marks: 2e-right-nonempty in OR (twoside-even):
     column (first)=| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
     column (last) =| {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 | {32} 3.1\hskip 1em\relax C sub1 |
 Marks: DictMark in OR (twoside-even):
-    page (previous)=| {35} p2 | {36} q2 | {37} r2 |
-    page (current) =| {37} r2 | {39} s2 | {40} s2 |
-    column (previous)=| {35} p2 | {36} q2 | {37} r2 |
-    column (current) =| {37} r2 | {39} s2 | {40} s2 |
-    column (first)=| {37} r2 | {39} s2 | {40} s2 |
-    column (last) =| {37} r2 | {39} s2 | {40} s2 |
+    page (previous)=| {43} f3 | {44} q2 | {45} r2 |
+    page (current) =| {45} r2 | {47} s2 | {48} s2 |
+    column (previous)=| {43} f3 | {44} q2 | {45} r2 |
+    column (current) =| {45} r2 | {47} s2 | {48} s2 |
+    column (first)=| {45} r2 | {47} s2 | {48} s2 |
+    column (last) =| {45} r2 | {47} s2 | {48} s2 |
 ==> Header: \MakeUppercase    []{3\hskip 1em\relax C}-- ??? \MakeUppercase    []{3\hskip 1em\relax C}--3.1\hskip 1em\relax C sub1
 ==> Footer: s2--s2 page: 6
 [6] (tlb-multicol-marks.aux)





More information about the latex3-commits mailing list.