summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/paracol
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-05-17 23:09:41 +0000
committerKarl Berry <karl@freefriends.org>2012-05-17 23:09:41 +0000
commit4a5f999a9de88cf98848a7d522b94f16c17d023c (patch)
treef7162c3c3be825beed95af289df5980e29fbe844 /Master/texmf-dist/source/latex/paracol
parent00d87600cfa34bf3f096ba6e289516862409af71 (diff)
paracol (17may12)
git-svn-id: svn://tug.org/texlive/trunk@26474 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/paracol')
-rw-r--r--Master/texmf-dist/source/latex/paracol/impl.dtx305
-rw-r--r--Master/texmf-dist/source/latex/paracol/man.dtx17
-rw-r--r--Master/texmf-dist/source/latex/paracol/paracol.dtx20
-rw-r--r--Master/texmf-dist/source/latex/paracol/ref.dtx70
4 files changed, 320 insertions, 92 deletions
diff --git a/Master/texmf-dist/source/latex/paracol/impl.dtx b/Master/texmf-dist/source/latex/paracol/impl.dtx
index 90d235d467f..500b10621c1 100644
--- a/Master/texmf-dist/source/latex/paracol/impl.dtx
+++ b/Master/texmf-dist/source/latex/paracol/impl.dtx
@@ -163,6 +163,16 @@
% $c$.
% \end{itemize}
% 
+% \changes{v1.1}{2012/05/11}
+% {Add description of $w_c\cs{pcol@columnwidth}{\cdot}c$.}
+% 
+% In addition, we have special context variables
+% $\Uidx\w_c=|\pcol@columnwidth|{\cdot}c$
+% 
+% \SpecialArrayMainIndex{c}{\pcol@columnwidth}
+% 
+% in which we keep \!\columnwidth! for the column $c$.
+%
% Note that we could add other variables to the saved context and/or provide
% some API macro to define them by users, but abandon them because it should
% be too complicated for users\footnote{
@@ -240,7 +250,7 @@
% Therefore we suppose jumps occur only in the leftmost column 0\footnote{
% 
% But we neither inhibit nor nullify a jump in non-leftmost column and thus
-% the update can be seen referring to \cs{page} counter explicitly.}
+% the update can be seen referring to \texttt{page} counter explicitly.}
% 
% which controls the page numbering, while non-leftmost columns are expected
% to refer the \counter{page} passively.
@@ -317,7 +327,7 @@
% $d$, we save $\<\cl_i,\val_c(\cl_i)\>$ in $\Cc_c$ and restore $\cl_i$ for
% $d$ by letting it have $\val_d(\cl_i)$ in $\Cc_d$, for all $\cl_i\in\CL$.
%
-% A \gcounter is free from these save\slash restore operations but needs
+% A \gcounter{} is free from these save\slash restore operations but needs
% another special operation when it is incremented by \!\stepcounter!. That
% is, the invocation of \!\stepcounter! for a \gcounter{} $\cg_i$ may clear
% \lcounter{}s in its set of descendant counters
@@ -387,7 +397,7 @@
% \!\pcol@specialoutput! in detail for the dispatch according to the code.
% The register is also used for the communication from the latter, which lets
% it be $-10000$ for our own special \!\output! routines, to the former to
-% determine \!\vsize! according to if the register has a value greater then
+% determine \!\vsize! according to if the register has a value greater than
% $-10004$ or not.
%
% \item[\Uidx{\!\interlinepenalty!}]
@@ -407,7 +417,8 @@
% \!\pcol@output@switch!, \!\pcol@setcurrcol!, \!\pcol@flushcolumn!,
% \!\pcol@measurecolumn!, \!\pcol@synccolumn!, \!\pcol@makeflushedpage!,
% \!\pcol@flushfloats!, \!\pcol@output@end!, \!\paracol!,
-% \!\pcol@synccounter!, \!\pcol@com@syncallcounters!, \!\pcol@stepcounter!,
+% \!\pcol@setcolumnwidth!, \!\pcol@synccounter!,
+% \!\pcol@com@syncallcounters!, \!\pcol@stepcounter!,
% \!\pcol@com@switchcolumn!, \!\pcol@mctext!.
% \end{quote}
%
@@ -419,7 +430,8 @@
% \item[\Uidx{\!\m@ne!}]
% is a \!\count! register to have $-1$. It is used in \!\pcol@setpnoelt!,
% \!\pcol@nextpelt! and \!\pcol@getpelt! to decrement \!\@tempcnta! which
-% initially has $p-\pbase$ for a page $p$.
+% initially has $p-\pbase$ for a page $p$. It is also used in
+% \!\pcol@setcolumnwidth! to calculate $\C-1$.
%
% \item[\Uidx{\!\@cclv!}]
% is a \!\chardef! register to have 255. It is used in
@@ -550,6 +562,11 @@
% we get it by \!\pcol@getcurrpinfo! because we don't need it.
%
% \item
+% In \!\pcol@setcolumnwidth!, it has $c$ when we scan fractions $r_c$ of the
+% argument of \!\columnratio! and then $\min(k,\C{-}1)$ after the scan
+% where $k$ is the number of fractions.
+%
+% \item
% In \!\pcol@cmpctrelt!, it has $\Val(\theta)$ of a counter $\theta$ to be
% compared with $\val_0(\theta)$.
%
@@ -562,6 +579,11 @@
% during we let $\!\pcol@nextcol!=0$ to visit the first column for putting
% a \mctext{}.
% \end{itemize}
+%
+% \item[\Uidx{\!\@tempcntb!}]
+% is a \!\count! register for temporary use. It is used in
+% \!\pcol@setcolumnwidth! to have $\C-1$ and then $\C-\min(k,C{-}1)$ where
+% $k$ is the number of fractions given in the argument of \!\columnratio!.
% \end{description}
%
%
@@ -576,8 +598,9 @@
%
% \item[\Uidx{\!\hsize!}]
% is \TeX's primitive register to have the width of a page or a \colpage{}
-% being built. It is let be \!\columnwidth! by \!\paracol!, while
-% \!\pcol@mctext! and \!\endparacol! let it be \!\textwidth!.
+% being built. It is let be \!\columnwidth! by \!\paracol! and
+% \!\pcol@getcurrcol!, while \!\pcol@mctext! and \!\endparacol! let it be
+% \!\textwidth!.
%
% \item[\Uidx{\!\maxdepth!}]
% is \TeX's primitive register to have the maximum depth of the page being
@@ -631,7 +654,7 @@
% \item
% Our own \!\pcol@prevdepth! and that saved in $\cc_c(\pd)$ have
% \!\maxdimen! if the main vertical list is empty at a \sync{}ation. The
-% macro \!\pcol@measurecolumn! makes it when it finds a empty list.
+% macro \!\pcol@measurecolumn! makes that when it finds an empty list.
%
% \item
% The \cctext{} $\cc_c(\tr)$ may have \!\maxdimen! if the column $c$ has a
@@ -667,14 +690,14 @@
% of a page. The register is referred to by \!\pcol@outputelt!,
% \!\pcol@makeflushedpage! and \!\pcol@flushfloats! to build a \!\hbox! of
% \!\textwidth! wide to have all columns. It also referred to by
-% \!\paracol! for the calculation of \!\columnwidth!, and by \!\pcol@mctext!
-% and \!\endparacol! to set it in \!\hsize! etc.
+% \!\pcol@setcolumnwidth! for the calculation of $\w_c$ for all $c\In0\C$,
+% and by \!\pcol@mctext! and \!\endparacol! to set it in \!\hsize! etc.
%
% \item[\Uidx{\!\columnwidth!}]
% is a \!\dimen! register for an API parameter of \LaTeX{} to have the width
-% of a column. After the register is initialized by \!\paracol! according
-% to the number of columns $\C$ and other parameters, it is referred to by
-% \!\pcol@outputelt!, \!\pcol@makeflushedpage! and \!\pcol@flushfloats! to
+% of a column. The register is let have $\w_0$ by \!\paracol! and $\w_c$ by
+% \!\pcol@getcurrcol! for the column $c$, then is referred to by
+% \!\pcol@makeflushedpage! and \!\pcol@flushfloats! to
% put each \colpage{} into a \!\hbox! of \!\columnwidth! wide for shipping a
% page out. The register is also let have \!\textwidth! by \!\endparacol!
% for \postenv.
@@ -683,13 +706,14 @@
% is a \!\dimen! register for an API parameter of \LaTeX{} to have the width
% of a line possibly shorter than \!\columnwidth! in \env{list}-like
% environments. It is let have \!\columnwidth! by \!\paracol! and
-% \!\textwidth! by \!\endparacol! for outermost paragraphs inside\slash
-% outside \env{paracol} environment respectively.
+% \!\pcol@getcurrcol!, and have \!\textwidth! by \!\endparacol! for
+% outermost paragraphs inside\slash outside \env{paracol} environment
+% respectively.
%
% \item[\Uidx{\!\columnsep!}]
% is a \!\dimen! register for an API parameter of \LaTeX{} to have the width
-% of inter-column spaces. It is referred to by \!\paracol! to calculate
-% \!\columnwidth!.
+% of inter-column spaces. It is referred to by \!\pcol@setcolumnwidth! to
+% calculate $\w_c$ for all $c\In0\C$.
%
% \item[\Uidx{\!\z@!}]
% is a \!\dimen! register to have 0\,|pt| and is used in the following macros.
@@ -727,6 +751,7 @@
% \!\pcol@freshpage!,
% \!\pcol@output@end!,
% \!\paracol!,
+% \!\pcol@setcolumnwidth!,
% \!\pcol@synccounter!,
% \!\pcol@com@syncallcounters!,
% \!\pcol@stepcounter!,
@@ -857,6 +882,8 @@
%
% \item
% In \!\pcol@outputelt!, it has $\pp^h(p)$ to examine if $p$ is a \fpage.
+% After that it has $\w_c$ being the width of each |\hbox| into which the
+% \colpage{} of each column $c$ is put.
%
% \item
% In \!\pcol@makefcolumn! and \!\pcol@makefcolelt!, it has the room for
@@ -866,19 +893,41 @@
% In \!\pcol@sync!, \!\pcol@measurecolumn! and \!\pcol@synccolumn!, it has
% $\VT$ being the maximum combined height of top floats and the main
% vertical list.
+%
+% \item
+% In \!\pcol@setcolumnwidth!, it has $\!\textwidth!-(\C-1)\!\columnsep!$
+% being the base of $\w_c$.
% \end{itemize}
%
% \item[\Uidx{\!\@tempdimb!}]
-% is a \!\dimen! register for temporary use. It has $\VB$ in \!\pcol@sync!
-% and \!\pcol@measurecolumn!, has the size of a float in
-% \!\pcol@makefcolelt!, and has $\cc_c(\tf)=\!\pcol@textfloatsep!$ in
-% \!\pcol@synccolumn!.
+% is a \!\dimen! register for temporary use. The usages of this register
+% are as follows.
+% 
+% \begin{itemize}
+% \item
+% In \!\pcol@sync! and \!\pcol@measurecolumn!, it has $\VB$.
+%
+% \item
+% In \!\pcol@makefcolelt!, it has the size of a float.
+%
+% \item
+% In \!\pcol@synccolumn!, it has $\cc_c(\tf)=\!\pcol@textfloatsep!$.
+%
+% \item
+% In \!\pcol@setcolumnwidth!, it has
+% $\!\textwidth!-(\C-1)\!\columnsep!-\sum_{d=0}^{k-1}w_d$ being the base of
+% $\w_c$ for $c\In{k}\C$ where $k$ is the number of fractions given in the
+% argument of \!\columnratio!.
+% \end{itemize}
+%
%
% \item[\Uidx{\!\@tempdimc!}]
+% \begin{Sloppy}{5000}
% is a \!\dimen! register for temporary use. It has $\DT$ in
-% \!\pcol@sync!, \!\pcol@measurecolumn! and \!\pcol@synccolumn!, and has
+% \!\pcol@sync!, \!\pcol@measurecolumn! and \!\pcol@synccolumn!, has
% \!\floatsep! or \!\@fpsep! in \!\pcol@makefcolumn! and
-% \!\pcol@makefcolelt!.
+% \!\pcol@makefcolelt!, and has $\w_c$ in \!\pcol@setcolumnwidth!.
+% \end{Sloppy}
%
% \item[\Uidx{\!\@pageht!}]
% is a \!\dimen! register to be used in \LaTeX's \!\@specialoutput! to have
@@ -910,7 +959,7 @@
% value in $\pp^t(p)$. Then the register is restored from $\pp^t(p)$ by
% \!\pcol@getpelt! and \!\pcol@sync!, while \!\pcol@synccolumn! refers to
% the value restored by the latter to adjust a \sync{}ation point. The
-% macro \!\pcol@output@end! temporarily lets the register has 0 if we have
+% macro \!\pcol@output@end! temporarily lets the register have 0 if we have
% non-empty columns in the last page, while \!\endparacol! restores it from
% \!\pcol@topskip! for the pages outside \env{paracol} environmnet.
%
@@ -1203,7 +1252,7 @@
% so that $|\if@ac@caption@if@|{\cdot}t$ is made \!\let!-equal to $s$ and
% \!\pcol@ac@caption! examines it for enabling\slash disabling
% \!\addcontentsline! respectively. The macros \!\pcol@ac@caption@if@lof!
-% and \!\pcol@ac@caption@if@lof! are initialized to be \!\let!-equal to
+% and \!\pcol@ac@caption@if@lot! are initialized to be \!\let!-equal to
% \!\@tempswatrue! as the default.
% \end{itemize}
% \end{description}
@@ -1497,7 +1546,15 @@
% 
% The macro is also used in \!\pcol@flushcolumn! to iterate building
% \fcolumn{}s of a column $c$ in pages $q$ such that
-% $q\in(\cc_c(\vb^p),\ptop)$.
+% $q\in(\cc_c(\vb^p),\ptop)$, and in \!\pcol@setcolumnwidth! to make
+% assignment of $w_c$ for $c\In{\min(k,\C{-}1)}\C$ where $k$ is the number
+% of fractions given in the argument of \!\columnratio!.
+%
+% \item[\Uidx{$\!\@for!\arg{cs}\texttt{:=}\arg{list}\cs{do}\arg{body}$}]
+% is an internal macro to interate $\arg{body}$ for each element of the
+% comma-separated $\arg{list}$ letting $\arg{cs}$ have the element. The
+% macro is used in \!\pcol@setcolumnwidth! to scan the argument of
+% \!\columnratio! kept in \!\pcol@columnratio!.
%
% \item[\Uidx{$\!\@next!\arg{elm}\arg{lst}\arg{suc}\arg{fail}$}]
% is an internal macro to remove the first element from $\arg{lst}$,
@@ -2083,7 +2140,7 @@
% is an internal macro having the list of single-column floats which is
% decided to be put at the bottom of the \ccolpage{} by float environments or
% by \!\pcol@trynextcolumn!. The emptiness of this list examined by
-% \!\pcol@combinefloats! to invokes the scanner \!\@cflb! unless empty. The
+% \!\pcol@combinefloats! to invoke the scanner \!\@cflb! unless empty. The
% list is also scanned by \!\pcol@measurecolumn! for the measurement of the
% combined size of bottom floats, while \!\pcol@setcurrcol! and
% \!\pcol@igetcurrcol! saves\slash restores the list in/from $\cc_c(\bl)$
@@ -2131,6 +2188,11 @@
% we don't need it.
%
% \item
+% In \!\pcol@setcolumnwidth!, it is used to have the fraction $r_c$ being a
+% comma-seperated list element in the
+% argument of \!\columnratio! scanned by a \!\@for! loop.
+%
+% \item
% In $\!\pcol@defcomelt!\arg{com}$, it is used to implement
% $\!\let!|\|\arg{com}=|\pcol@com@|{\cdot}\~\arg{com}$.
%
@@ -2213,7 +2275,7 @@
% \section{Register Declaration}
% \label{sec:imp-decl}
%
-% \subsubsection{\cs{count} Registers}
+% \subsection{\cs{count} Registers}
%
% Here we declare registers and switches. The first group is for \!\count!
% registers.
@@ -2290,13 +2352,15 @@
% \!\pcol@flushfloats!,
% \!\pcol@freshpage!,
% \!\pcol@output@end!,
+% \!\pcol@setcolumnwidth!,
% \!\pcol@synccounter!,
% \!\pcol@com@syncallcounters!,
% \!\pcol@stepcounter!,
% \end{quote}
% 
% The other references are made by \!\pcol@com@switchcolumn! and
-% \!\pcol@switchcolumn! to examine $c<\C$.
+% \!\pcol@switchcolumn! to examine $c<\C$, and by \!\pcol@setcolumnwidth! to
+% calculate $\w_c$.
% \end{macro}
% 
% \begin{macro}{\pcol@page}
@@ -2309,7 +2373,7 @@
% \fpage, by \!\pcol@startpage! to start a new page, and by
% \!\pcol@output@clear! for pages of \fcolumn{}s and \fpage{}s. The other
% type of updates of the register is done by \!\pcol@restartcolumn! which
-% let $p$ be $\cc_c(\vb^p)$ when we revisit the column $c$ belonging to the
+% lets $p$ be $\cc_c(\vb^p)$ when we revisit the column $c$ belonging to the
% page $p$. Note that, besides these \!\global! updates,
% \!\pcol@flushcolumn! locally updates the register to scan
% $\PP=\!\pcol@pages!$, and \!\pcol@freshpage! also performs local updates
@@ -2358,7 +2422,7 @@
%
%
%
-% \subsubsection{Switches}
+% \subsection{Switches}
%
% The second declaration group is for switches.
% 
@@ -2405,7 +2469,7 @@
% from \!\pcol@make~flushedpage! to flush pages. The macro
% \!\pcol@makeflushedpage! also turns the switch false after the invocation
% of \!\pcol@output@switch! to give the default state. The macros
-% \!\pcol@sync! and \!\pcol@flushcolumn! being descendats of
+% \!\pcol@sync! and \!\pcol@flushcolumn! being descendants of
% \!\pcol@output@switch! also examine the switch.
% \end{macro}
% 
@@ -2462,7 +2526,7 @@
%
%
%
-% \subsubsection{\cs{dimen} and \cs{skip} Registers}
+% \subsection{\cs{dimen} and \cs{skip} Registers}
%
% The last declaration group is for three \!\dimen! and one \!\skip!
% registers.
@@ -3110,12 +3174,12 @@
% 
% Otherwise, i.e., \!\@dbltoplist! is not empty, we scan all elements in it
% by letting \!\@comdblflelt! to have all double-floats in \!\@tempboxa!.
-% Then, after returning all elements to \!\@freelist!, we acquire a
+% Then, after returning all elements to \!\@freelist!, we acquire an
% \!\insert! from \!\@freelist! to be $\pp(\ptop)$ by \!\@next! and store the
% contents of \!\@tempboxa! in $\pp^b(\ptop)$ after removing the
% last vertical skip \!\dblfloatsep! and then adding \!\dblfigrule! and the
% vertical skip \!\dbltextfloatsep!. The other element of $\pp(\ptop)$ is
-% set as follows to represent the page with \spanning{} which make the height
+% set as follows to represent the page with \spanning{} which makes the height
% of each column \!\@colht! shrunk from its initial value \!\textheight!
% by the series of \!\@addtodblcol!.
% $$
@@ -3227,11 +3291,15 @@
% $\pp(q)$ has \spanning{} in $\pp^b(q)$, they are put in the box by
% \!\unvbox! and $\!\insert!{\cdot}\pp(q)$ is returned to \!\@freelist! by
% \!\@cons!. Then we put a \!\hbox! of \!\textwidth! wide having \!\hbox!es
-% of \!\columnwidth! wide containing $\sigma_c$ followed by \!\hss! for all
-% $c\In0\C$, 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 empty, or \!\voidb@x! otherwise. We sepearate
-% \!\hbox!es of $\sigma_c$ by \!\hfil! by making each \!\hbox! preceded by
+% of $\w_c=|\pcol@columnwidth|{\cdot}c$
+% 
+% \SpecialArrayIndex{c}{\pcol@columnwidth}
+% 
+% wide containing $\sigma_c$ followed by \!\hss! for all $c\In0\C$, 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 empty, or \!\voidb@x! otherwise. We sepearate \!\hbox!es of
+% $\sigma_c$ by \!\hfil! by making each \!\hbox! preceded by
% \!\pcol@hfil!
% 
% \SpecialMainIndex{\pcol@hfil}
@@ -3241,6 +3309,9 @@
% 
% \changes{v1.0}{2011/10/10}
% {Rename \cs{ifpcol@textonly} as \cs{ifpcol@nospan}.}
+% \changes{v1.1}{2012/05/11}
+% {Use $\cs{pcol@columnwidth}{\cdot}c$ instead of \cs{columnwidth} as
+% the width of $c$'s \cs{hbox}.}
% 
% \begin{macrocode}
\else\if@tempswa
@@ -3257,7 +3328,9 @@
\csname pcol@shipped\number\@tempcnta\endcsname
\relax{\let\@currbox\voidb@x}%
\ifvoid\@currbox\else \@cons\@freelist\@currbox \fi
- \pcol@hfil \hb@xt@\columnwidth{\box\@currbox\hss}%
+ \expandafter\@tempdima
+ \csname pcol@columnwidth\number\@tempcnta \endcsname
+ \pcol@hfil \hb@xt@\@tempdima{\box\@currbox\hss}%
\let\pcol@hfil\hfil
\advance\@tempcnta\@ne}}}%
% \end{macrocode}
@@ -3347,10 +3420,10 @@
% \begin{macro}{\pcol@op@flush}
% \begin{macro}{\pcol@op@clear}
% \begin{macro}{\pcol@op@end}
-% The macros $|\pcol@op@|{\cdot}f$ where $f\in
+% The macro $|\pcol@op@|{\cdot}f$ where $f\in
% F=\{|start|,|switch|,|flush|,|clear|,|end|\}$ has our own
% \!\outputpenalty! code less than $-10000$ to invoke the corresponding
-% macros $|\pcol@output@|{\cdot}f$. The code macros are given to
+% macro $|\pcol@output@|{\cdot}f$. The code macros are given to
% \!\pcol@invokeoutput! as its argument by \!\paracol! ($f=|start|$),
% \!\pcol@switchcol! ($f=|switch|$), \!\pcol@com@flushpage! ($f=|flush|$),
% \!\pcol@com@clearpage! ($f=|clear|$) and \!\endparacol! ($f=|end|$) to set
@@ -3414,17 +3487,15 @@
\fi
\reserved@a}
-% \end{macrocode}
-% \end{macro}
+% \end{macrocode} \end{macro}
%
%
%
-% \subsection{Building Starting Page}
-% \label{sec:imp-sout-start}
+% \subsection{Building Starting Page} \label{sec:imp-sout-start}
%
% \begin{macro}{\pcol@output@start}
% \changes{v1.0}{2011/10/10}
-% {Change the order of operations.}
+% {Change the order of operations.}
% \changes{v1.0}{2011/10/10}
% {Rename \cs{pcol@maxpage} as \cs{pcol@toppage}.}
% \changes{v1.0}{2011/10/10}
@@ -3452,10 +3523,11 @@
% Otherwise, the \spanning{} are moved in $\pp^b(0)$ which is acquired from
% \!\@freelist! by \!\@next!, and $\pp^p(0)$ and $\pp^h(0)$ are let be
% \!\c@page! and \!\@colht! respectively for \spage. As for $\pp^t(0)$, we
-% let it be \!\topskip! if $h=d=0$ assuming that the page does not have any
-% \spanning{} to typeset \colpage{}s from the top of the page. Otherwise,
-% i.e., either $h\neq0$ or $d\neq0$, $\pp^t(0)$ and \!\topskip! are let be 0
-% to inhibit the ordinary \!\topskip! insertion.
+% let it be \!\topskip! if both the height and depth of $\pp^b(0)$ are 0
+% assuming that the page does not have any \spanning{} to typeset
+% \colpage{}s from the top of the page. Otherwise, i.e., either the height or
+% depth is non-zero, $\pp^t(0)$ and \!\topskip! are let be 0 to inhibit the
+% ordinary \!\topskip! insertion.
%
% Then for the both cases, we initialize \!\@colroom! to be \!\@colht!, and
% invoke \!\pcol@floatplacement! to reinitialize the parameters of
@@ -3631,7 +3703,7 @@
% The macro \!\pcol@output@switch! is invoked from
% \!\pcol@specialoutput! to process the special \!\output! request made in
% \!\pcol@switchcol! and to switch from a column $c=\!\pcol@currcol!$ to
-% $d=\!\pcol@nextcol!$ which can be $c$. The macro also is invoked from
+% $d=\!\pcol@nextcol!$ which can be $c$. The macro is also invoked from
% \!\pcol@makeflushedpage! to \sync{}e and to flush all \ccolpage{}s
% but staying in $c$.
%
@@ -3772,7 +3844,10 @@
% 
% The macro \!\pcol@getcurrcol! is invoked from the following macros to
% restore the typesetting parameters of the column $c=\!\pcol@currcol!$ from
-% $\cc_c$.
+% $\cc_c$, and to let \!\columnwidth!, \!\hsize! and \!\linewidth! commonly
+% have $\w_c=|\pcol@columnwidth|{\cdot}c$.
+% 
+% \SpecialArrayIndex{c}{\pcol@columnwidth}
% 
% \begin{itemize}\item[]\begin{tabular}{lll}
% \!\pcol@output@start!&\!\pcol@output@switch!&\!\pcol@restartcolumn!\\
@@ -3810,10 +3885,17 @@
% \!\dimen!-type parameters are saved in the form of integers and thus
% restoring them needs to specify the unit |sp|.
% 
+% \changes{v1.1}{2012/05/11}
+% {Add assignmnet $w_c$ to \cs{columnwidth}, \cs{hsize} and
+% \cs{linewidth}.}
+% 
% \begin{macrocode}
\def\pcol@getcurrcol{%
\expandafter\expandafter\expandafter\pcol@igetcurrcol
- \csname pcol@col\number\pcol@currcol\endcsname}
+ \csname pcol@col\number\pcol@currcol\endcsname
+ \expandafter\global\expandafter\columnwidth
+ \csname pcol@columnwidth\number\pcol@currcol\endcsname
+ \global\hsize\columnwidth \global\linewidth\columnwidth}
\def\pcol@igetcurrcol#1#2#3#4#5#6#7#8#9{%
\def\@currbox{#1}\def\pcol@currfoot{#2}\global\pcol@prevdepth#3sp\relax
\gdef\@toplist{#4}\gdef\@midlist{#5}\gdef\@botlist{#6}\gdef\@deferlist{#7}%
@@ -3998,7 +4080,7 @@
% do nothing.},
% 
% i.e., $\Fc(\{t,m\})=\false$ for all $c\In0\C$, to let succeeding stuff in
-% all \ccolpage{}s are put as if they are preceded by a \!\flushpage!. In
+% all \ccolpage{}s be put as if they are preceded by a \!\flushpage!. In
% other words, we do nothing if $\VT<0$.
%
% Then if $\VT\geq0$, we set the \sync{}ation point $\VT$ below the top of
@@ -4785,7 +4867,7 @@
% Then for each $c$ we obtain $c$'s \cctext{} $\cc_c$ by
% \!\pcol@getcurrcol!, let $\CSIndex{if@fcolmade}=\true$ if
% $\cc_t(\dl)\neq()$, move $\cc_c(\vb^b)$ into \!\box!|255|, and let
-% $\footins=\cc_c(\ft)$ by \!\pcol@getcurrfoot! returning it to
+% $\!\footins!=\cc_c(\ft)$ by \!\pcol@getcurrfoot! returning it to
% \!\@freelist! if $c$ has footnotes.
%
% After that we examine if $\cc_c(\tr)=\infty$ to mean we are working on the
@@ -4978,7 +5060,7 @@
% $\CSIndex{ifpcol@lastpage}=\true$ to notify it of the \lpage{}
% production, giving it $h=\!\pcol@colht!$ in which \!\pcol@sync! sets the
% height of the tallest \colpage{} to have the shipping-out image of the
-% \tpage{} in \!\@outputbox!. Then we process on of the following cases.
+% \tpage{} in \!\@outputbox!. Then we process one of the following cases.
%
% The first case is for $\CSIndex{if@fcolmade}=\true$ to mean
% \!\pcol@makeflushedpage! found columns with deferred floats. Therefore,
@@ -5112,7 +5194,7 @@
% Before giving the definition of \env{paracol} environment and commands
% used in it, we define the macro $\!\pcol@invokeoutput!\arg{pen}$ invoked
% from them to make an \!\output!-request with \!\penalty! of
-% $\arg{pen}=|pcol@op@|{\cdot}f$. The macro's structure is similar to that
+% $\arg{pen}=|\pcol@op@|{\cdot}f$. The macro's structure is similar to that
% for the request sequence in \!\end@float! as follows; insert a \!\penalty!
% of $-10004$ to save the main vertical list in \!\@holdpg!; save
% \!\prevdepth!; insert a \!\vbox! to make it sure the following \!\penalty!
@@ -5247,17 +5329,19 @@
% \end{macro}
% 
% Next, we set up a few \LaTeX's typesetting parameters which should have
-% appropriate values in the environment. First we let
-% $$
-% \!\columnwidth!={\!\textwidth!-(\C-1)\!\columnsep!\over\C}
-% $$
-% for $\C$-column typesetting and let \!\hsize! and \!\linewidth! have it as
-% their initial values. We then let $\CSIndex{if@twocolumn}=\true$ and
-% $\CSIndex{if@firstcolumn}=\true$ so that \textit{float}|*| environments
-% work for multi-column floats and \!\marginpar! produces marginal notes
-% appropriately. We also let $\!\col@number!=1$ instead of $\C$ so that
-% its (almost surely) sole user \!\maketitle! will not produce the title
-% with \!\twocolumn! which cannot be in the environment.
+% appropriate values in the environment. First we invoke
+% \!\pcol@setcolumnwidth! to let each of $\w_c=|\pcol@columnwidth|{\cdot}c$
+% 
+% \SpecialArrayIndex{c}{\pcol@columnwidth}
+% 
+% have the width of the column $c$ for all $c\In0\C$, and then let
+% \!\columnwidth!, \!\hsize! and \!\linewidth! commonly have $\w_0$. We then
+% let $\CSIndex{if@twocolumn}=\true$ and $\CSIndex{if@firstcolumn}=\true$ so
+% that \textit{float}|*| environments work for multi-column floats and
+% \!\marginpar! produces marginal notes appropriately. We also let
+% $\!\col@number!=1$ instead of $\C$ so that its (almost surely) sole user
+% \!\maketitle! will not produce the title with \!\twocolumn! which cannot
+% be in the environment.
%
% Then we initialize our own variables; $\!\pcol@topskip!=\!\topskip!$ for
% the second and succeeding pages; $\!\pcol@textfloatsep!=\infty$ to mean
@@ -5269,11 +5353,14 @@
% throughout the environment so that our customization is in effect for any
% invocations including those from \LaTeX's own macros.
% 
+% \changes{v1.1}{2012/05/11}
+% {Replace the calculation of \cs{columnwidth} with the call of
+% \cs{pcol@setcolumnwidth} and the assignment of $w_0$ to it.}
+% 
% \begin{macrocode}
- \global\columnwidth\textwidth
- \@tempdima\columnsep \multiply\@tempdima\pcol@ncol
- \advance\@tempdima-\columnsep
- \global\advance\columnwidth-\@tempdima \global\divide\columnwidth\pcol@ncol
+ \pcol@setcolumnwidth
+ \expandafter\global\expandafter\columnwidth
+ \csname pcol@columnwidth0\endcsname
\global\hsize\columnwidth \global\linewidth\columnwidth
\global\@twocolumntrue \global\@firstcolumntrue \col@number\@ne
\global\pcol@topskip\topskip
@@ -5345,6 +5432,70 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\columnratio}
+% \changes{v1.1}{2012/05/11}
+% {Introduced to specify column width fractions.}
+% \begin{macro}{\pcol@columnratio}
+% \changes{v1.1}{2012/05/11}
+% {Introduced to keep column width fractions.}
+% 
+% The API macro \!\columnratio!\Arg{$r_0,r_1,\cdots,r_{k-1}$} defines the
+% column width fraction $r_c$ for column $c$. This macro just |\global|y
+% |\def|ines the macro \!\pcol@columnratio! whose body has its argument.
+% The macro \!\pcol@columnratio! is initialized to be empty so that all
+% columns have same width as default.
+% 
+% \begin{macrocode}
+\def\columnratio{\gdef\pcol@columnratio}
+\columnratio{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pcol@setcolumnwidth}
+% \changes{v1.1}{2012/05/11}
+% {Introduced to calculate $w_c$.}
+% 
+% The macro \!\pcol@setcolumnwidth! is invoked solely from \!\paracol! to
+% calculate $\w_c=|\pcol@columnwidth|{\cdot}c$
+% 
+% \SpecialArrayIndex{c}{\pcol@columnwidth}
+% 
+% from the fractions $r_0$, $r_1$, \ldots, $r_{k-1}$ given through the
+% argument of \!\columnratio! and thus kept in \!\pcol@columnratio!. First,
+% we calculate $W=\!\textwidth!-(\C-1)\!\columnsep!$ being the sum of $\w_c$
+% for all $c\In0\C$. Then we let $\w_c=r_cW$ for all $c\In0{k'}$ where
+% $k'=\min(k,\C-1)$, in the \!\@for! loop scanning $r_c$ for all $c\In0k$.
+% Finally, we let $\w_c=(W-\sum_{d=0}^{k'-1}w_d)/(\C-k')$ for all
+% $c\In{k'}\C$. Note that
+% $|\pcol@columnwidth|{\cdot}c$ is a macro having the integer
+% representation of $\w_c$ with the unit |sp|.
+% 
+% \begin{macrocode}
+\def\pcol@setcolumnwidth{
+ \@tempcntb\pcol@ncol \advance\@tempcntb\m@ne
+ \@tempdima-\columnsep \multiply\@tempdima\@tempcntb
+ \advance\@tempdima\textwidth \@tempdimb\@tempdima
+ \@tempcnta\z@
+ \@for\reserved@a:=\pcol@columnratio\do{%
+ \ifnum\@tempcnta<\@tempcntb
+ \@tempdimc\reserved@a\@tempdima
+ \expandafter\edef\csname pcol@columnwidth\number\@tempcnta\endcsname{%
+ \number\@tempdimc sp}%
+ \advance\@tempdimb-\@tempdimc
+ \advance\@tempcnta\@ne
+ \fi}%
+ \@tempcntb\pcol@ncol \advance\@tempcntb-\@tempcnta
+ \divide\@tempdimb\@tempcntb
+ \@whilenum\@tempcnta<\pcol@ncol\do{%
+ \expandafter\edef\csname pcol@columnwidth\number\@tempcnta\endcsname{%
+ \number\@tempdimb sp}%
+ \advance\@tempcnta\@ne}%
+}
+
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\pcol@localcommands}
% \changes{v1.0}{2011/10/10}
% {Introduced to make API commands environment-local.}
@@ -5427,8 +5578,8 @@
% \begin{macro}{\pcol@iremctrelt}
% The macro $\!\pcol@remctrelt!\<\cg\>$ is invoked solely from \!\paracol!
% and is applied to each \gcounter{} $\cg\in\CG$ to remove it from
-% $\CC=\!\pcol@counters!$ in which we have $\CL$ finally. The macro is also
-% move $|\cl@|{\cdot}\cg=\clist(\cg)$
+% $\CC=\!\pcol@counters!$ in which we have $\CL$ finally. The macro also
+% moves $|\cl@|{\cdot}\cg=\clist(\cg)$
% 
% \SpecialArrayIndex{\theta}{\cl@}
% 
@@ -5437,7 +5588,7 @@
% \SpecialArrayMainIndex{\theta}{\pcol@cl@}
% 
% to keep the list of the descendant \lcounter{}s of $\cg$ in it, and then
-% re\!\def!ine $|\cl@|{\cdot}\cg=\!\pcol@stepcounter!\Arg{\cg}$
+% re\!\def!ines $|\cl@|{\cdot}\cg=\!\pcol@stepcounter!\Arg{\cg}$
% 
% \SpecialArrayMainIndex{\theta}{\cl@}
% 
diff --git a/Master/texmf-dist/source/latex/paracol/man.dtx b/Master/texmf-dist/source/latex/paracol/man.dtx
index 0714752826d..fca209e8b51 100644
--- a/Master/texmf-dist/source/latex/paracol/man.dtx
+++ b/Master/texmf-dist/source/latex/paracol/man.dtx
@@ -411,7 +411,7 @@
% \end{itemize}
% and do nothing about \counter{footnote} and \counter{subsection} counters.
% By default, all the counters except for |page| are local to columns. The
-% value of a \lcounter of a column is saved somewhere when you leave the
+% value of a \lcounter{} of a column is saved somewhere when you leave the
% column, and it is restored when you revisit the column. The initial value
% of the \lcounter{}s are the value they have at
% \!\begin!|{|\env{paracol}|}|. After you close the \env{paracol}
@@ -438,7 +438,7 @@
% \SpecialIndex{\refstepcounter}\SpecialIndex{\stepcounter}
% 
% or commands such as \!\caption! and \!\section!. Note that the value of a
-% \gcounter depends on the place where it is incremented (or set) in
+% \gcounter{} depends on the place where it is incremented (or set) in
% the \emph{source code} rather than where it appears in the output. Thus
% if the author put a \env{table} environment here to increment \env{table}
% counter, the right-column table at the bottom of page~\pageref{tab:right}
@@ -661,10 +661,16 @@
% \end{rightcolumn}
% \end{paracol}
%
+% \changes{v1.1}{2012/05/11}
+% {Add \cs{columnratio}\texttt{\char`\{0.6\char`\}} and a phrase
+% for it.}
% Now the aurthor will do |\flushpage| shortly to start a real binlingual
% example from the next page, after showing another example of closing
% \env{paracol} environment in this sentence and of restarting in the next
-% one.
+% one, in which {\em unbalanced column width} is demonstrated using
+% \Uidx{\!\columnratio!} command shown in Section~\ref{sec:ref-columnratio}.
+%
+% \columnratio{0.6}
% \begin{paracol}{2}
% \begin{leftcolumn}
% O.K., we have restarted \env{paracol} environment and we will see the
@@ -676,11 +682,12 @@
% \end{leftcolumn}
% \begin{rightcolumn}
%\begin{Verbatim}
+%\columnratio{0.6}
%\begin{paracol}{2}
%\begin{leftcolumn}
%O.K., we have restarted |paracol|
-%environment and we will see the effect of
-%|\flushpage| now!!
+%environment and we will see the
+%effect of |\flushpage| now!!
%\end{leftcolumn}
%\end{Verbatim}
% \textit{source}
diff --git a/Master/texmf-dist/source/latex/paracol/paracol.dtx b/Master/texmf-dist/source/latex/paracol/paracol.dtx
index 6f0a4a248e6..624e2cbadbb 100644
--- a/Master/texmf-dist/source/latex/paracol/paracol.dtx
+++ b/Master/texmf-dist/source/latex/paracol/paracol.dtx
@@ -2,7 +2,7 @@
%<paracol>%% Style file `paracol'.
%<man>%% LaTeX file 'paracol-man'.
%<*paracol|man>
-%% Copyright (C) 2005-2011
+%% Copyright (C) 2005-2012
%% Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
%% (Kyoto University)
%% This program can be redistributed and/or modified under the terms
@@ -19,7 +19,7 @@
%<man>\ProvidesFile{paracol-man.tex}
% \fi
% \ProvidesFile{paracol.dtx}
-[2011/10/10 v1.0 ]
+[2012/05/11 v1.1 ]
% \iffalse
%<*man>
\documentclass{ltxdoc}
@@ -352,6 +352,9 @@
% \def\ARg#1{\texttt{\char`\{}\textit{#1}\texttt{\char`\}}}
% \def\Sub#1{{\hbox to0pt{\hss$\scriptstyle #1$\hss}}}
%
+% \def\Sloppy#1{\tolerance#1\hbadness#1\relax}
+% \let\endSloppy\par
+%
%
%
% \edef\CommonCSPrefix{\expandafter\RAFCgobble\string\pcol}
@@ -444,6 +447,7 @@
% \def\VB{\Index[$V_B$]{V_B}V_B}
% \def\VP{\Index[$V_P$]{V_P}V_P}
% \def\VT{\Index[$V_T$]{V_T}V_T}
+% \def\w{\Index[$w_c$]{w_c}w}
%
%
%
@@ -486,6 +490,8 @@
% \changes{v1.0}{2011/10/10}
% {Add this document and fix the following problems on the author's
% 30th wedding anniversary.}
+% \changes{v1.1}{2012/05/11}
+% {Add \cs{columnratio} and variable column width.}
%
%
%
@@ -523,10 +529,12 @@
% \StopEventually{\ifx\ONLYDESCRIPTION\undefined\newpage\fi
% \section*{Acknowledgments}
%
-% The author thanks to Yacine Daddi Addoun who gave the author the motivation
-% to write the style for his bilingual document. He also thanks to Robin
-% Fairbairns who kindly invited the style to CTAN after the author's lazy six
-% years failing to upload the style.
+% The author thanks to Yacine Daddi Addoun who gave the author the
+% motivation to write the style for his bilingual document. He also thanks
+% to the following people; Robin Fairbairns who kindly invited the style to
+% CTAN after the author's lazy six years failing to upload the style; Joseph
+% G.\ Rosenstein and Dieter K\"ohler who suggested the author adding the
+% function of unbalanced column width incorporated in version 1.1.
%
% For the implementation of the style file, the author referred to the base
% implementations of \texttt{\char`\\output}, \texttt{\char`\\newcounter}
diff --git a/Master/texmf-dist/source/latex/paracol/ref.dtx b/Master/texmf-dist/source/latex/paracol/ref.dtx
index 5383aa5e3fb..29cbda9a706 100644
--- a/Master/texmf-dist/source/latex/paracol/ref.dtx
+++ b/Master/texmf-dist/source/latex/paracol/ref.dtx
@@ -1,5 +1,7 @@
% \section{Reference Manual}
+% \label{sec:ref}
% \subsection{Environment \texttt{paracol}}
+% \label{sec:ref-paracol}
%
% \begin{description}
% \item[\ENV{paracol}{\marg{num}\oarg{text}}]\mbox{}\par
@@ -71,6 +73,7 @@
%
%
% \subsection{Column-Switching Command and Environments}
+% \label{sec:ref-switchcolumn}
%
% \begin{description}
% \item[\Midx{\!\switchcolumn!}\oarg{col}]\mbox{}
@@ -220,8 +223,65 @@
% \end{description}
%
%
+% \subsection{Command to Control Column Width}
+% \label{sec:ref-columnratio}
+% \changes{v1.1}{2012/05/11}
+% {Add description of \cs{columnratio}.}
+%
+% \begin{description}
+% \item[\Midx{\!\columnratio!}\Arg{$r_0,r_1,\cdots,r_k$}]\mbox{}\par
+% The command defines the width of each column by the fraction $r_i$ to
+% specify the portion which $i$-th ($i=0$ for the leftmost) column
+% occupies. More specifically, the width $\Midx{\w}_i$ of the $i$-th column
+% is defined as follows, where $W$ is \!\textwidth!, $S$ is \!\columnsep!,
+% and $n$ is the numnber of columns given to \beginparacol.
+% 
+% \begin{eqnarray*}
+% W'&=&W-(n-1)S\\
+% w_i&=&\cases{
+% r_iW'
+% \vrule height1.5\ht\strutbox depth1.5\dp\strutbox width0pt&$i\leq k$\cr
+% \displaystyle{(1-\sum_{j=0}^k r_j)W'\over n-(k+1)}&$i>k$}
+% \end{eqnarray*}
+% 
+% \begin{itemize}
+% \item
+% The equations above imply that $k<n-1$, $r_i>0$ and $\sum_{j=0}^k
+% r_j<1$. If $k\geq n-1$, $k$ is assumed to be $n-2$ and all $r_i$ such
+% that $i\geq n-1$ are ignored. If $r_i$ or its sum does not satisfy the
+% conditions, you will have an ugly result with ``Overful'' messages.
+%
+% \item
+% The argument $r_0,r_1,\cdots,r_k$ can be empty to mean $k=-1$ to let all
+% column widths be $W'/n$ as default.
+%
+% \item
+% The setting of column width by the command takes effect in the |paracol|
+% environments following the command\footnote{
+% 
+% If the command is in a \texttt{paracol} environment, the command does not
+% affect the column widths of the environment but does the next ones, though
+% such usage is very unusual.}.
+% 
+% Therefore, though placing the command in the preamble is the most natural
+% way\footnote{
+% 
+% Or second most to not using it at all, of course.},
+% 
+% you may place this command between two |paracol| environments to change
+% the column layout for the second one even when they appear in a page as
+% shown in Section~\ref{sec:man-close}.
+%
+% \item
+% In the $i$-th column, \!\columnwidth! has $w_i$ and, for outermost
+% paragraphs in the column, \!\linewidth! and \!\hsize! have $w_i$ as well.
+% \end{itemize}
+% \end{description}
+%
+%
%
% \subsection{Commands for Counters}
+% \label{sec:ref-counter}
%
% \begin{description}
% \item[\Midx{\!\globalcounter!}\marg{ctr}]\mbox{}\par
@@ -271,6 +331,7 @@
%
%
% \subsection{Control of Contents Output}
+% \label{sec:ref-contents}
%
% \begin{description}
% \item[\Midx{\!\addcontentsonly!}\marg{file}\marg{col}]\mbox{}\par
@@ -280,10 +341,10 @@
% \begin{itemize}
% \ifx\ONLYDESCRIPTION\undefined
% \item
-% For example, this manual has \!\addcontentsonly!|{toc}{0}| to inhibit the
-% contents information output from \!\subsection! commands in
-% Section~\ref{sec:env} and~\ref{sec:float}, or the table should have
-% duplicated entries of sub-sections.
+% For example, this manual has \!\addcontentsonly!|{toc}{0}| to
+inhibit the % contents information output from \!\subsection! commands
+in the right column % in % Section~\ref{sec:env} and~\ref{sec:float},
+or the table should have % duplicated entries of sub-sections.
%
% \else
% \item
@@ -303,6 +364,7 @@
%
%
% \subsection{Page Flushing Commands}
+% \label{sec:ref-flush}
%
% \begin{description}
% \item[\Midx{\!\flushpage!}]\mbox{}\par