diff options
author | Karl Berry <karl@freefriends.org> | 2012-05-17 23:09:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-05-17 23:09:41 +0000 |
commit | 4a5f999a9de88cf98848a7d522b94f16c17d023c (patch) | |
tree | f7162c3c3be825beed95af289df5980e29fbe844 /Master/texmf-dist/source/latex | |
parent | 00d87600cfa34bf3f096ba6e289516862409af71 (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')
-rw-r--r-- | Master/texmf-dist/source/latex/paracol/impl.dtx | 305 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/paracol/man.dtx | 17 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/paracol/paracol.dtx | 20 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/paracol/ref.dtx | 70 |
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 |