diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/paracol/ref.dtx |
Initial commit
Diffstat (limited to 'macros/latex/contrib/paracol/ref.dtx')
-rw-r--r-- | macros/latex/contrib/paracol/ref.dtx | 1535 |
1 files changed, 1535 insertions, 0 deletions
diff --git a/macros/latex/contrib/paracol/ref.dtx b/macros/latex/contrib/paracol/ref.dtx new file mode 100644 index 0000000000..4025a65d08 --- /dev/null +++ b/macros/latex/contrib/paracol/ref.dtx @@ -0,0 +1,1535 @@ +% \footnotelayout{m} +% \columnratio{} +% \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 +% The environment \env{paracol} contains \meta{body} typeset in \meta{num} +% columns in parallel. The optional \meta{text} is put spanning all columns +% prior to the multi-columned \meta{body}. +% +% \begin{itemize} +% \item +% \changes{v1.2-2}{2013/05/11} +% {Add a footnote mentioning page-wise footnotes merged with +% pre-environment staff.} +% \changes{v1.35-4}{2018/12/31} +% {Add description of \cs{belowfootnoteskip}.} +% +% The environment may start from \emph{any} vertical position in a page, +% i.e., not necessary at the top of a page. The single-column +% {\em\Uidx\preenv} of the {\em\Uidx\spage} in which \beginparacol{} lies +% are naturally connected to the beginning part of \meta{body} in each +% column, unless the page has footnotes\footnote{ +% +% With \Mgfnote{} layout shown in Section~\ref{sec:ref-scfnote}, the +% footnotes in the single-column contents are merged with those in +% \env{paracol} environment and are put at the bottom of the \spage{} +% together as shown in this page.} +% +% or bottom floats. If these kinds of bottom stuff exist, they are +% put above the multi-columned \meta{body}, or the spanning \meta{text} +% +% \UsageIndex{spanning text} +% +% if provided, with a vertical skip of \!\textfloatsep! separating them if +% bottom floats exist, or of \!\belowfootnoteskip! described in +% Section~\ref{sec:ref-scfnote} if only footnotes exist. The +% \emph{deferred} floats which have not yet appeared in the starting page +% and thus will appear in the next or succeeding pages are considered as +% \pwise{} floats given in the environment. +% +% \item +% \changes{v1.2-5}{2013/05/11} +% {Add an item to show that \string\texttt{paracol} can be enclosed in +% a \string\texttt{list}-like environment.} +% +% The environment can be enclosed in a \env{list}{\em-like environment} such +% as \env{enumerate}, \env{itemize} and \env{description}. If so, \!\item!s +% in each column are typeset using the parameters of the surrounding +% environment such as \!\leftmargin! and \!\rightmargin!. For example, the +% following short \env{paracol} environment is included in an \env{itemize} +% for this and other \!\item!s in this page. +% +% \begin{paracol}{2} +% \item +% This is the first \!\item! in the left column. +% +% \item +% This is the second \!\item! in the left column followed by a +% \!\switchcolumn!\footnote{. +% +% This footnote is to show the footnotes in this page are merged.}. +% \switchcolumn +% +% \item +% This is the first \!\item! in the right column. +% +% \item +% This is the second \!\item! in the right column. +% +% \item +% This is the third and last \!\item! in the right column. +% \end{paracol} +% You are now seeing the switching to/from multi-columned and \env{itemize}d +% texts are naturally connected with the last and this single-columned +% sentences. You may feel the space between two columns above is too large +% but it simply results from the large total \!\leftmargin!s of the outer +% \env{description} and this \env{itemize}, which make the right column +% shifted right. A simple remedy for this large space is to make +% \!\columnsep! narrower, for example 0\,pt as shown below. +% +% \columnsep0pt +% \begin{paracol}{2} +% \item +% This \!\item! is wider than the last \!\item! above because +% \!\columnsep! is 0\,pt. +% \switchcolumn +% +% \item +% Therefore, this \!\item! is shifted left a little bit to make +% inter-column spece narrower. +% \end{paracol} +% +% \item +% All \Uidx\lcounter{}s in all columns are initialized to have the values at +% \beginparacol{} on its first occurrence. On the second and succeeding +% occurrences of \beginparacol, the \lcounter{}s in each column have the +% value at the last \Endparacol, unless they are modified after the +% \Endparacol. If a counter is modified (or declared by \!\newcounter!) +% after the \Endparacol, the local versions of the counter in all columns +% commonly have the value at \beginparacol. +% +% \item +% \changes{v1.2-2}{2013/05/11} +% {Add a footnote mentioning page-wise footnotes merged with +% post-environment staff.} +% +% The environment may end at \emph{any} vertical position in a page, i.e., +% the {\em\Uidx\postenv} being the single-column texts and others +% following \Endparacol{} in the {\em\Uidx\lpage} of the environment may not +% start from the top of a page. If any columns don't have deferred +% \cwise{} floats and the most advanced {\em\Uidx\lcolumn} at +% \Endparacol{} has neither of footnotes\footnote{ +% +% With \Mgfnote{} layout shown in Section~\ref{sec:ref-scfnote}, the +% footnotes in the closing \env{paracol} environment are merged with those +% in \postenv{} and are put at the bottom of the page{} together as shown in +% this page.} +% +% nor bottom floats, its bottom is naturally connected to the \postenv{}. +% If the \lcolumn{} has these kinds of bottom stuff, they are put above the +% \postenv{}, with a vertical skip of \!\textfloatsep! separating them if +% bottom floats exist. All deferred \cwise{} floats given in the +% environment are flushed before the \postenv{} appears, possibly creating +% {\em\Uidx\fcolumn{}s} only with floats. On the other hand, deferred +% \pwise{} floats given in the environment are considered as deferred +% (single-) \cwise{} floats given just after \Endparacol. +% +% \item +% The values of all \lcounter{}s in the leftmost column are used as the +% initial values of them in the \postenv. +% +% \item +% The \env{paracol} environment cannot be nested, or you will have an error +% message of illegal nesting. +% +% \item +% The commands \!\switchcolumn!, \!\synccounter!, \!\syncallcounters! and +% \!\flushpage!, and environments \env{column}(|*|), \env{nthcolumn}(|*|), +% \env{leftcolumn}(|*|) and \env{rightcolumn}(|*|) are {\em local} to +% \env{paracol} environment and thus undefined outside the +% environment\footnote{ +% +% Unless you dare to define them.}. +% +% The command \!\clearpage! is of course usable outside and inside the +% environment but its function inside is a little bit different from outside. +% \end{itemize} +% +% +% +% \item[\ENV{paracol}{\oarg{numleft}\marg{num}\oarg{text}}]\mbox{} +% \Item[\ENV{paracol}{\oarg{numleft}\texttt{*}\marg{num}\oarg{text}}] +% \mbox{}\par +% \changes{v1.3-2}{2013/09/17} +% {Add description of parallel-paging.} +% +% If a \beginparacol{} has the optional \meta{numleft} argument to specify +% the number of leading columns $n_l$ together with the total $n$ given by +% \meta{num}, columns in the environment are laid out across two adjacent +% pages. In this {\em\Uidx\parapag{}e} typesetting, the first $n_l$ columns +% are placed in the {\em left} page while remaining $n_r=n-n_l$ columns go to +% the next {\em right} page. The pair of left and right pages is +% considered as comprising a virtual {\em\Uidx\paired} page and thus shares +% a common page number, unless {\em\Uidx\npaired} typesetting is specified +% by the optional `|*|' following the optional \meta{numleft} argument. In +% the \npaired{} \parapag{}ing, when the leading $n_l$ columns are put in a +% page $p$, the trailing $n_r$ columns are in the page $p+1$. +% +% \begin{itemize} +% \item +% All {\em\Uidx\pwstuff}, i.e., \Preenv{} and \postenv, \pwise{} floats, +% \mctext{} and (\mgfnote{} or non-merged) \Scfnote{}s, are placed only in +% left \parapag{}es leaving corresponding regions in right \parapag{}es +% blank\footnote{ +% +% Someday the author could devise an advanced mechanism to exploit the space +% in right \parapag{}es.}. +% +% \item +% A \npaired{} left \parapag{}e is not necessary to be even-numbered, though +% the printing tradition requires so if you naturally want to have a +% \parapag{}e pair in a double spread. The page number given to the first +% left \parapag{}e is simply the number of the page $p_1$ in which +% \beginparacol{} reside, and that for the $k$-th left \parapag{}e is +% $p_1+2(k-1)$\footnote{ +% +% Unless you make some change to \counter{page} counter.}. +% +% Therefore, to make it sure $p_1$ is even, you might need to have an +% ordinary page of blank, a title, etc., or to let \counter{page} counter have +% an even number by \!\setcounter!, etc., before starting a \env{paracol} +% environment. +% +% \item +% Section~\ref{sec:ppts} shows examples of \parapag{}ing together with +% related issues on two-sided typesetting. +% \end{itemize} +% \end{description} +% +% +% +% \subsection{Column-Switching Command and Environments} +% \label{sec:ref-switchcolumn} +% +% \begin{description} +% \item[\Midx{\!\switchcolumn!}\oarg{col}]\mbox{} +% \Item[\Midx{\!\switchcolumn!}\oarg{col}\texttt{*}\oarg{text}]\mbox{}\par +% The command switches columns from $i$ to $j$ where $i$ and $j$ is the +% zero-origin ordinals of the columns from/to which we are leaving\slash +% visiting respectively. Without the optional \meta{col}, $j=i+1\bmod n$ +% where $n$ is the number of columns given to \beginparacol, while +% $j=\meta{col}$ with the optional argument. If the command (or +% \oarg{col} if specified) is followed by a |*|, the \cswitch{} takes +% place after \sync{}ation and, if specified, the optional spanning +% \meta{text} is put. +% +% \Index{spanning text} +% +% \begin{itemize} +% \item +% Using \!\switchcolumn! in a \env{list}-like environment \emph{included} in +% a \env{paracol} environment causes an ugly result without any error\slash +% warning messages. This caution is effectual for all \csenv{}s too. +% +% \item +% If $\meta{col}\notin\LBRP0n$, an error is reported and, if you dare to +% continue, you will switch to the leftmost column 0. +% +% \item +% The \sync{}ation point is set just below the last line of the \lcolumn{} +% in a page $p$, partly taking deferred floats into account. That is, all +% deferred floats are put in the pages up to $p-1$ and at the top of $p$ if +% possible. Then, if a non-\lcolumn{} has footnotes and/or bottom floats +% and they cannot be pushed down below the \sync{}ation point, the point is +% moved to the next page top\footnote{ +% +% Or below top floats deferred to the page.}. +% +% \item +% In a page having one or more \sync{}ation points, stretch and shrink +% factors of all vertical spaces, such as those surrounding sectionning +% commands, are ignored. Therefore, even if you specify \!\flushbottom!, +% the page is typeset as if \!\raggedbottom! were specified. +% +% \item +% After a \sync{}ation point is set, no top floats will be inserted in the page +% having the point, thus they will be deferred to the next page or further one. +% \end{itemize} +% +% +% +% \item[\ENV{column}{}]\mbox{} +% \Item[\ENV{column*}{\oarg{text}}]\mbox{}\par +% The environment \env{column} contains \meta{body} for the column next to +% what we are in just before \!\begin!|{|\env{column}|}|. The starred +% version \env{column*} does the same after \sync{}ation and, if specified, +% the optional spanning \meta{text} is put. +% +% \Index{spanning text} +% +% \begin{itemize} +% \item +% The environments are almost equivalent to; +% \begin{quote} +% |{|\!\switchcolumn!\quad\meta{body}\quad\CSIndex{par}|}|\\ +% |{|\!\switchcolumn!|*|\oarg{text}\quad\meta{body}\quad\CSIndex{par}|}| +% \end{quote} +% except for their first occurrences which don't switch to the column 1 +% (i.e., right column if two-columned) but stay in the leftmost column 0. +% More precisely, \!\begin!|{|\env{column}(|*|)|}| does not make \cswitch{} +% if it is not preceded by \!\switchcolumn! nor other \csenv{}s. +% +% \item +% The \meta{body} of the environments cannot have \!\switchcolumn! nor +% \csenv{}s including \env{column}(|*|) themselves, or you will have an +% error message of illegal use of command\slash environment. +% +% \item +% Column-switching\index{column-switching} does not take place at +% \!\end!|{|\env{column}(|*|)|}|. Therefore, texts following the +% environments are put in the column in which \meta{body} resides until a +% \cswitch{} command\slash environment is given. +% \end{itemize} +% +% +% +% \item[\ENV{nthcolumn}{\marg{col}}]\mbox{} +% \Item[\ENV{nthcolumn*}{\marg{col}\oarg{text}}]\mbox{}\par +% The environment \env{nthcolumn} contains \meta{body} for the column +% \meta{col}. The starred version \env{nthcolumn*} does the same after +% \sync{}ation and, if specified, the optional spanning \meta{text} is put. +% +% \Index{spanning text} +% +% \begin{itemize} +% \item +% The environments are equivalent to; +% +% \begin{quote} +% |{|\!\switchcolumn!\oarg{col}\quad\meta{body}\quad\CSIndex{par}|}|\\ +% |{|\!\switchcolumn!\oarg{col}|*|\oarg{text}\quad +% \meta{body}\quad\CSIndex{par}|}| +% \end{quote} +% +% \item +% The \meta{body} of the environments cannot have \!\switchcolumn! nor +% \csenv{}s including \env{nthcolumn}(|*|) themselves, or you will have an +% error message of illegal use of command\slash environment. +% +% \item +% Column-switching\index{column-switching} does not take place at +% \!\end!|{|\env{nthcolumn}(|*|)|}|. Therefore, texts following the +% environments are put in the column in which \meta{body} resides until a +% \cswitch{} command\slash environment is given. +% \end{itemize} +% +% +% +% \KeepSpace{4} +% \item[\ENV{leftcolumn}{}]\mbox{} +% \Item[\ENV{leftcolumn*}{\oarg{text}}]\mbox{} +% \Item[\ENV{rightcolumn}{}]\mbox{} +% \Item[\ENV{rightcolumn*}{\oarg{text}}]\mbox{}\par\nobreak +% The environment \env{leftcolumn} contains \meta{body} for the leftmost +% column 0, while \env{rightcolumn} for the column 1 being the right column +% in two-column typesetting. The starred versions \env{leftcolumn*} and +% \env{rightcolumn*} do the same after \sync{}ation and, if specified, the +% optional spanning \meta{text} is put. +% +% \Index{spanning text} +% +% \begin{itemize} +% \item +% The environments \env{leftcolumn}(|*|) are equivalent to; +% +% \begin{quote} +% \Env{nthcolumn}{\Arg{\texttt{0}}}\\ +% \Env{nthcolumn*}{\Arg{\texttt{0}}\oarg{text}} +% \end{quote} +% +% while \env{rightcolumn}(|*|) are equivalent to; +% +% \begin{quote} +% \Env{nthcolumn}{\Arg{\texttt{1}}}\\ +% \Env{nthcolumn*}{\Arg{\texttt{1}}\oarg{text}} +% \end{quote} +% +% \end{itemize} +% +% +% +% \item[\Midx{\!\thecolumn!}]\mbox{}\par +% \changes{v1.3-5}{2013/09/17} +% {Add description of \cs{thecolumn}.} +% The command gives you the zero-origin ordinal of the column in which this +% command appears. Therefore, the following code snip; +% +% \begin{itemize}\item[] +% |\begin{paracol}{3}|\\ +% |Column-\thecolumn.\switchcolumn| +% |Column-\thecolumn.\switchcolumn| +% |Column-\thecolumn.|\\ +% |\end{paracol}| +% \end{itemize} +% +% gives us the followings. +% +% \par\medskip +% \begin{paracol}{3} +% Column-\thecolumn.\switchcolumn +% Column-\thecolumn.\switchcolumn +% Column-\thecolumn. +% \end{paracol} +% +% \begin{itemize} +% \item +% The command is {\em neither} a \LaTeX's counter nor \!\count! register of +% native \TeX{}, and thus the value it keeps cannot be modified. However, +% it can be used wherever an integer number is required or appropriate. +% Therefore for example, \!\setcounter!|{mycounter}{|\!\thecolumn!|}| works +% well to give the column ordinal to the counter |mycounter|. +% \end{itemize} +% +% +% +% \item[\Midx{\!\definecolumnpreamble!}\marg{col}\marg{pream}]\mbox{}\par +% \changes{v1.35-5}{2018/12/31} +% {Add description of \cs{definecolumnpreamble}.} +% The command is to define the {\Uidx\colpream} \meta{pream} for the column +% \meta{col}, which is inserted at every \cswitch{} to the column. More +% specifically, the command let \!\switchcolumn! to \meta{col} act as if you +% sepcify; +% +% \begin{itemize}\item[] +% \!\switchcolumn! $\arg{pream\ for\ col}$ +% \end{itemize} +% +% and \csenv{}s such as \env{nthcolumn} act as if you specify; +% +% \begin{itemize}\item[] +% |\begin{nthcolumn}{|\meta{col}|}| $\arg{pream\ for\ col}$ +% +% \end{itemize} +% +% \begin{itemize} +% \item +% \begingroup\hfuzz1.5pt +% The optional \sptext{} of \!\switchcolumn!, \csenv{}s and \beginparacol{} +% is considered to be in a virtual column $-1$, and thus if you need a +% \Colpream{} for \sptext{}s do \!\definecolumnpreamble!|{-1}|\marg{pream}. +% \par\endgroup +% +% \item +% The command may appear in a \env{paracol} environment and, if so, +% \meta{pream} is effective from the succeeding \cswitch{} to \meta{col}. +% +% \item +% The definition of \meta{pream} is made globally. +% \end{itemize} +% +% +% +% \item[\Midx{\!\ensurevspace!}\marg{len}]\mbox{}\par +% \changes{v1.3-5}{2013/09/17} +% {Add description of \cs{ensurevspace}.} +% +% The command tells the first \sync{}ing \cswitch{} command (i.e., +% \!\switchcolumn!\oarg{col}|*|) or environment (i.e., \env{column*}, etc.\@) +% following this command that the page must be broken before \sync{}ation +% unless the \sync{}ation point has the space of \meta{len} or more below it +% in the page. If a \sync{}ation does not have the command after the +% previous \sync{}ation, it is assumed that +% \!\ensurevspace!|{|\!\baselineskip!|}| is given. +% +% \begin{itemize} +% \item +% This command is to be used when a \sync{}ation point would be placed near +% the bottom of a page $p$ and the space below it is not sufficient for a column +% $c$ to put anything in the page, while another column $c'$ can have a few +% lines in the page. If this happens, the first line after the \sync{}ation +% should start at the top of the page $p+1$ in the column $c$, while that of +% $c'$ is still in the page $p$, giving you an impression that the +% \sync{}ation fails to align the top of all columns below it. The fact is, +% however, the \sync{}ation point is properly established near at the bottom +% of the page but the first line of $c$ needs some large space due to, for +% example, the followings. +% +% \begin{itemize} +% \item +% The line has unusually tall stuff including larger font letters. +% +% \item +% The line has a footnote reference which is hardly apart from the +% footnote, and thus the line and the footnote go to the next page together. +% +% \item +% The parameter \!\clubpenalty! is too large (e.g., 10000) to break the +% first and second lines into separate pages. +% +% \item +% The first line follows a vertical space. +% \end{itemize} +% +% \item +% This manual itself has some instances of \!\ensurevspace! command in the +% page \pageref{page:bfreude} and \pageref{page:efreude} in which each German +% stanza is enclosed in \env{verse} and then \env{leftcolumn*} environments +% and has \!\ensurevspace!|{2|\!\baselineskip!|}| before the \!\begin!ing of +% the outer \env{leftcolumn*} because the first line of the stanza is +% preceded by a vertical space inserted by \!\begin!|{|\env{verse}|}|. In +% fact without \!\ensurevspace!, the first two lines of the sixth English +% stanza would be in the page \pageref{page:bfreude}, while corresponding +% German stanza go to the next page \pageref{page:efreude} as a whole, due +% to the difference of the height of footnotes in each column, i.e., German +% ones are taller than English ones to narrow the space for the German +% column. +% +% \item +% As the author does in the ``An die Freude/To Joy'' example, it is a good +% tactics to have an \!\ensurevspace! with some vertical space larger than the +% default \!\baselineskip! if it is sure that a column has a feature shown +% above regardless of the position of the \sync{}ation point in question, +% because the point goes up or down with revisions of your document and +% using an \!\ensurevspace! for a \sync{}ation far above the page bottom is +% perfectly harmless. Similarly, if you find a problem in a \sync{}ation +% and add an \!\ensurevspace! to solve it, keeping the command attached is +% recommended even when the \sync{}ation point moves up or down to make the +% command unnecessary. +% \end{itemize} +% \end{description} +% +% +% +% \subsection{Commands for Column and Gap Width} +% \label{sec:ref-colwidth} +% +% \begin{description} +% \item[\Midx{\!\columnratio!}\Arg{$r_0,r_1,\cdots,r_k$} +% {|[|$r'_0,r'_1,\cdots,r'_{k'}$|]|}]\mbox{}\par +% \changes{v1.1}{2012/05/11} +% {Add description of \cs{columnratio}.} +% \changes{v1.3-2}{2013/09/17} +% {Add descriptino of the optional argument of \cs{columnratio} for +% parallel-paging.} +% +% 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 number 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*} +% +% For a \env{paracol} environment with \parapag{}ing, $n$ is replaced with +% $n_l$ for the columns in left \parapag{}es, while $n$ and $w_i$ are +% replaced with $n_r$ and $w_{n_r+i}$ for those in right \parapag{}es. +% Moreover, if the optional argument having $r'_0,r'_1,\cdots,r'_{k'}$ is +% provided, $w_{n_r+i}$ for a column in right \parapag{}es is determined +% by $r'_i$ and $k'$ instead of $r_i$ and $k$. +% +% \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 ``Overfull'' 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 +% \changes{v1.2-5}{2013/05/11} +% {Modify the description about \cs{linewidth} reflecting the fact +% that \string\texttt{paracol} may be included in a +% \string\texttt{list}-like environment.} +% +% In the $i$-th column, \!\columnwidth! has $w_i$ and, for outermost +% paragraphs in the column, \!\hsize! has $w_i$ as well. As for +% \!\linewidth!, it has $w_i-(\!\textwidth!-l)$ where $l$ is what +% \!\linewidth! had at \beginparacol{}, i.e., the \!\linewidth! for the +% \env{list}-like environment surrounding \env{paracol} if any, or +% \!\textwidth! otherwise. +% +% \item +% You can specify width of each column and that of each {\em gap} between +% two columns more detailedly by \!\setcolumnwidth! shown below. If your +% document has both of \!\columnratio! and \!\setcolumnwidth! prior to a +% \env{paracol} environment, the command given later is effective for the +% environment. +% \end{itemize} +% +% +% +% \item[\Midx{\!\setcolumnwidth!}\Arg{$s_0,s_1,\cdots,s_k$} +% {|[|$s'_0,s'_1,\cdots,s'_{k'}$|]|}]\mbox{}\par +% \changes{v1.3-2}{2013/09/17} +% {Add descriptino of \cs{setcolumnwidth}.} +% +% The command defines the width of each column and that of each {\em gap} +% between two columns by the column/gap specification $s_i$ for the $i$-th +% column and the gap between it and the $(i{+}1)$-th column. More +% specifically, $s_i$ has the form of $\hat w_i$ or $\hat w_i\,|/|\,\hat g_i$ +% where each of $\hat w_i$ and $\hat g_i$ is a proper glue including a +% proper dimension, or an empty string to mean $\hat w_i=\!\fill!$ and $\hat +% g_i=\!\columnsep!$, to determine the width of $i$-th column $\w_i$ and that +% of $i$-th gap $\Midx{\gap}_i$ as follows, where $\mathit{nat}(x)$ is the +% natural width of the glue $x$, $\mathit{str}(x)$ is the infinite stretch +% factor of $x$, $W$ is \!\textwidth!, and $n$ is the number of columns +% given to \beginparacol. +% +% \begin{eqnarray*} +% W'&=&\sum_{i=0}^{n-2}\big(\mathit{nat}(\hat w_i)+\mathit{nat}(\hat g_i)\big)+ +% \mathit{nat}(\hat w_{n-1})\\ +% F&=&\sum_{i=0}^{n-2}\big(\mathit{str}(\hat g_i)+\mathit{str}(\hat g_i)\big)+ +% \mathit{str}(\hat w_{n-1})\\ +% x_i&=&\cases{(W/W')\mathit{nat}(\hat x_i)&$W'\geq W\;\lor\;F\leq0$\cr +% \mathit{nat}(\hat x_i)+(\mathit{str}(\hat x_i)/F)(W-W')& +% $W'< W\;\land\;F>0$} +% \qquad(x\in\{w,g\}) +% \end{eqnarray*} +% That is, if the total of natural widths $W'$ is larger than \!\textwidth! +% $W$ or there are no infinite stretch factors in the specification, given +% widths are scaled down or up so that the scaled total is equal to $W$. +% Otherwise, each width with an infinite stretch factor is extended +% according to its ratio in the total stretch so that the stretched total is +% equal to $W$. +% +% For a \env{paracol} environment with \parapag{}ing, $n$ is replaced with +% $n_l$ for the columns in left \parapag{}es, while $n$, $w_i$ and $g_i$ are +% replaced with $n_r$, $w_{n_r+i}$ and $g_{n_r+i}$ for those in right +% \parapag{}es. Moreover, if the optional argument having +% $s'_0,s'_1,\cdots,s'_{k'}$ is provided, $w_{n_r+i}$ and $g_{n_r+i}$ for a +% column in right \parapag{}es are determined by $s'_i$ instead of $s_i$. +% +% \begin{itemize} +% \item +% In \env{paracol} environments having $n$ columns, $s_i$ s.t.\ $i\geq n$ +% and $\hat g_{n-1}$ are ignored. On the other hand if $k<n-1$, it is +% assumed $s_i$ is an empty string for all $i>k$. +% +% \item +% Finite stretch factors and finite or infinite shrink factors in $\hat w_i$ +% and $\hat g_i$ are ignored. +% +% \item +% Unlike \TeX's genuine glue addition, all infinite unit |fil|, |fill| and +% |filll| are not distinguished in the summation for $F$. Also unlike +% \TeX's genuine scaling of a glue primitive, +% $f\!\fill!$ means $0\,|pt|\ |plus|\ f\,|fill|$ for convenience\footnote{ +% +% In \TeX's grammar, $f\!\fill!$ means a dimension rather than a glue and is +% $0\,|pt|$ because the natural component of \!\fill! is 0.}. +% +% \item +% The division $W/W'$ and $\mathit{str}(\hat x_i)/F$ can have some +% arithmetic errors and thus the total of $w_i$ and $g_i$ may not be equal to +% $W$ exactly but can be a little bit less than $W$. This small error is, +% however, equally distributed to $g_i$ in typesetting of a page to make the +% total width of columns and gaps is exactly $W$\footnote{ +% +% If we may ignore the arithmetic error inherent in \TeX.}. +% +% \item +% All the specifications shown in the table below give us same results for a +% \env{paracol} environment having three columns, providing +% $\!\textwidth!=360\,|pt|$ and $\!\columnsep!=S=20\,|pt|$. +% +% \par\hbox to\textwidth\bgroup\hfil +% \nosv \def\|{\verb|}\small\arraycolsep0pt\def\arraystretch{1.1} +% $\begin{array}[b]{l|ccccc} +% s_0,s_1,s_2&w_0&g_0&w_1&g_1&w_2\rlap{ (in \texttt{pt})}\\\hline +% \|50pt/20pt,100pt/40pt,150pt|&50&20&100&40&150\\ +% \|50pt,100pt/2\columnsep,150pt|&50&S& +% 100&2S&150\\ +% \|50pt/\fill,100pt/2\fill,150pt|&50&(1/3)\cdot60&100&(2/3)\cdot60&150\\ +% \|,2\fill/2\columnsep,3\fill|&\ (1/6)\cdot300&S& +% (2/6)\cdot300&2S& +% (3/6)\cdot300\\ +% \|50pt/20,50pt plus 1fil/40pt,50pt plus 2fil |& +% 50&20&50+(1/3)\cdot150&40& +% 50+(2/3)\cdot150\\ +% \|5pt/2pt,10pt/4pt,15pt|&10\cdot5&10\cdot2&10\cdot10&10\cdot4& +% 10\cdot15\\ +% \|100pt/40pt,200pt/80pt,300pt|&0.5\cdot100&0.5\cdot40& +% 0.5\cdot200&0.5\cdot80& +% 0.5\cdot300 +% \end{array}$\hfil\egroup +% +% \item +% If your document has both of \!\columnratio! and \!\setcolumnwidth! prior +% to a \env{paracol} environment, the command given later is effective for +% the environment. +% \end{itemize} +% \end{description} +% +% +% +% \subsection{Commands for Two-Sided Typesetting and Marginal Note Placement} +% \label{sec:ref-twoside} +% \changes{v1.3-3}{2013/09/17} +% {Add the sub-section ``Commands for Two-Sided Typesetting and Marginal +% Note Placement''.} +% \changes{v1.3-4}{2013/09/17} +% {Add the sub-section ``Commands for Two-Sided Typesetting and Marginal +% Note Placement''.} +% \changes{v1.3-5}{2013/09/17} +% {Add the sub-section ``Commands for Two-Sided Typesetting and Marginal +% Note Placement''.} +% +% \begin{description} +% \item[\Midx{\!\twosided!}{$|[|t_1t_2\cdots t_k|]|$}]\mbox{}\par +% \changes{v1.3-3}{2013/09/17} +% {Add description of \cs{twosided}.} +% \changes{v1.3-4}{2013/09/17} +% {Add description of \cs{twosided}.} +% \changes{v1.3-5}{2013/09/17} +% {Add description of \cs{twosided}.} +% +% The command enables a set of two-sided typesetting features +% $\Set{t_i}{t_i\in\{|p|,|c|,|m|,|b|\},\ 1\leq i\leq k}$ explicitly by the +% optional argument, or all of the following four features as a whole +% without the argument, in even-numbered pages. +% +% \begin{description} +% \item[|p|\rm(\textit{age})] +% for ordinary two-sided paging, letting the left side margin be +% \!\evensidemargin!, page headers be different from those in odd-numbered +% pages with |headings| or |myheadings| page style, and \!\cleardoublepage! +% leave an even-numbered page blank if it is used in an odd-numbered page. +% +% \item[|c|\rm(\textit{olumn})] +% for {\em\Uidx\cswap} to \emph{print} columns in even-numbered pages in +% reverse order. This feature is sometimes preferable in typesetting +% especially with unbalanced parallel columns to make, for example, a wider +% columns are always \emph{inside} while narrower ones are \emph{outside}. +% +% \item[|m|\rm(\textit{arginal text})] +% to place marginal notes in the side margin opposite to that specified by +% the command \!\marginparthreshold! discussed shortly. +% +% \item[|b|\rm(\textit{ackground painting})] +% to make \bgpaint, shown in Section~\ref{sec:ref-bgpaint}, +% \emph{\mirror{}ed} so that, for example, a color specified for the left +% margin is used to paint the right margin instead. +% \end{description} +% +% \begin{itemize} +% \item +% The feature |p| is also enabled by the |twoside| option of +% \!\documentclass! with almost all classes including |article|, |book|, +% |report|, etc. Though it is strongly recommended to make both settings by +% \!\documentclass! and this command consistent, they can be inconsistent +% resulting in lack of some expected functions. For example, enabling |p| +% feature by \!\twosided! without |twoside| option in \!\documentclass! +% makes the format of headers and footers in all pages same even with +% \!\pagestyle!|{headings}|. +% +% \item +% The \cswap{} enabled by the feature |c| is ineffective in \npaired{} +% \parapag{}ing because it is meaningless\footnote{ +% +% Unless somebody tells the author it is meaningful.}, +% +% and thus silently ignored. +% +% \item +% In ordinary single-column typesetting, marginal note swapping in +% even-numbered pages is enabled by the |twoside| option, while it never takes +% place in ordinary two-column typesetting. For marginal notes given in +% \env{paracol} environments, however, swapping of them in +% even-numbered pages is enabled by giving the feature |m| to \!\twosided!. +% +% \item\label{page:cswap} +% The command has to be outside of \env{paracol} environments to decide the +% action in the environments following them. If it appears in a +% \env{paracol} environment, you will have a warning message saying it is +% ignored. +% +% \twosided[c]\columnratio{0.6}\columnsep0pt +% \begin{paracol}{2} +% \hfuzz2pt +% \item +% Here is an example of column swapping. Since this page +% \pageref{page:cswap} is odd, this wider column-0 with roman font is placed +% in left side and thus inside at the begining, but now we are in an even +% page in which this column is in right side. +% +% \switchcolumn +% \item\it +% This narrower, outside and italicized column-1 is at first in right +% side but the page break has changed the position to the left. +% \end{paracol} +% +% \item +% \changes{v1.2-4}{2013/05/11} +% {Add description of \cs{[no]swapcolumninevenpages}.} +% \changes{v1.3-5}{2013/09/17} +% {Remove description of \cs{[no]swapcolumninevenpages} but mention +% they are still available.} +% +% In old versions of \Paracol, namely 1.2 and its minor revisions 1.2x, +% \cswap{} was controlled by lengthy commmands +% \Midx{\!\swapcolumninevenpages!} and \Midx{\!\noswapcolumninevenpages!}. +% Though they are still available and will be so forever for backward +% compatibility, it is recommended to use \!\twosided! with or without the +% feature |c|. The old versions also have a problem that \spanning{} +% crossing a page boundary is placed incorrectly after the page break in it, +% but this problem is solved by a fix incorporated in version 1.3. +% +% \item +% It must be $t_i\in\{|p|,|c|,|m|,|b|\}$, or you will have an error message +% of illegal two-siding feature. +% +% \item +% Section~\ref{sec:ppts} shows examples of two-sided typesetting together +% with related issues on \parapag{}ing. +% \end{itemize} +% +% +% +% \item[\Midx{\!\marginparthreshold!}$\Arg{k}{|[|k'|]|}$]\mbox{}\par +% \changes{v1.3-4}{2013/09/17} +% {Add description of \cs{marginparthreshold}.} +% +% The command specifies the minimum ordinal $k$ of columns whose marginal +% notes are placed in right margin. That is, marginal notes given in a +% column-$i$ go to left margin if $i<k$, while they go to right if $i\geq +% k$. The optional argument $k'$, if given, is for columns in right +% \parapag{}es to decide the margin where their marginal notes are placed. +% In default, $k=1$ is assumed to let marginal notes from the leftmost +% column-0 go to left margin while those from other columns go to right. +% +% \begin{itemize} +% \item +% You may specify $k=0$ to let all marginal notes go to right margin, or may +% give the command a large number, say 100, to place all of them in left +% margin. +% +% \item +% The setting $k=0$ or $k=100$ above makes a side margin \emph{shared} by +% marginal notes from different columns, and sharing is inevitable when a +% (parallel-) page has three or more columns. When a margin is shared by +% marginal notes from two or more columns, it can happen that two marginal +% notes from different columns conflict over the space to be occupied by each +% of them. This conflict is solved by \Paracol{} to push down the note +% given later in your source |.tex| until an available space for it is +% found. Note that the marginal note to be pushed down is determined by the +% position in the source rather than that in the printed result. Also note +% that \Paracol{} exploits space between two marginal notes having been +% already placed in the placement of other note coming later to place it at +% the natural position if possible or to minimize the amount of pushing down +% otherwise. +% +% \item +% In the decision of the real margin in which a marginal note is placed, +% other two factors are involved; |m| feature of \!\twosided! command and +% the parity of the page; and \LaTeX's genuine command \!\reversemarginpar!. +% More specifically, after the first preliminary decision is made according +% to the threshold given to \!\marginparthreshold!, we have the following +% two steps to modify the decision; if |m| feature has been specified in +% \!\twosided! command and the marginal note belongs to an even-numbered +% page, the decision is reversed to have the second preliminary result; and +% then if \!\reversemarginpar! has been specified, the second result is +% reversed (again) to have the final result. +% +% \item +% In old versions of \Paracol, namely older than 1.3, marginal note +% placement was not only uncontrollable but also gave ugly results when your +% document has three or more columns because the marginal notes from a column +% not being leftmost or rightmost were placed in the gap following the +% column rather than a margin. This miserable {\em gap note} placement does +% not happen any more, or in other words this is no more available because +% the author believes nobody loves it. +% +% \item +% Section~\ref{sec:ppts} shows examples of marginal note placement together +% with related issues on \parapag{}ing and two-sided typesetting. +% \end{itemize} +% +% +% +% \item[\Midx{\!\marginnote!}\oarg{left}\marg{right}\oarg{voffset}]\mbox{}\par +% \changes{v1.35-3}{2018/12/31} +% {Add description of \cs{marginnote}.} +% You may use the package \textsf{marginnote} and its command \!\marginnote! +% in \env{paracol} environments as a replacement of \!\marginpar!. However, +% the command is \emph{emulated} with \!\marginpar! and \textsf{paracol}'s +% own mechanism of marginal note placement. Therefore, some of +% \textsf{marginnote}'s functionality are not effective in \env{paracol} +% environment except for the following features. +% +% \begin{itemize} +% \item +% Shifting up/down a marginal note by the optional \meta{voffset}. +% +% \item +% Defining fonts (and others) for marginal notes by \!\marginfont!. +% +% \item +% Controlling the holizontal paragraph alignment by \!\raggedleftmarginnote! +% and |\raggedright|\~|marginnote|\SpecialIndex{\raggedrightmarginnote}. +% \end{itemize} +% +% Note that you will see a warning message ``|\margninnote| is emulated by +% |\marginpar|'' at the first in-\env{paracol} occurrence of the command to +% let you know the imperfection. +% \end{description} +% +% +% +% \subsection{Commands for Counters} +% \label{sec:ref-counter} +% +% \begin{description} +% \item[\Midx{\!\globalcounter!}\marg{ctr}]\mbox{} +% \Item[\Midx{\!\globalcounter!}\texttt{*}]\mbox{}\par +% \changes{v1.32-1}{2015/10/10} +% {Add descriptions of \cs{globalcounter*}.} +% +% The command \!\globalcounter!\marg{ctr} declares that the counter +% \meta{ctr} is global to all columns, while \!\globalcounter!|*| does so +% for all counters. An update of a \Uidx\gcounter{} in a column is seen by +% any other columns. +% +% \begin{itemize} +% \item +% All column-local values of a descendant \lcounter{} of a \gcounter{} are +% zero-cleared when the \gcounter{} is explicitly stepped by \!\stepcounter! +% or \!\refstepcounter!, or implicitly by a sectioning command and so on. +% +% \item +% The counter \counter{page} is always global but an explicit update of it +% by e.g., \!\setcounter! in a non-leftmost column is not seen by other +% columns and is canceled even for the column itself after a \cswitch{} or a +% page break in the column. Therefore, if you want to make a \emph{jump} of +% \counter{page}, it must be done in the leftmost column 0. Note that a +% jump from a page $p$ to $q$ can be seen in other columns even if they have +% gone beyond $p$ \emph{before} the column 0 makes the jump, as far as +% \counter{page} having $q$ (or its successor) is referred to by \!\pageref! +% or through \emph{contents} files such as |.toc|\footnote{ +% +% Direct reference to \counter{page} may give an inconsistent result, as you +% might have in ordinary \LaTeX{} documents.}. +% +% \item +% All counters except for \counter{page} are local by default. This feature +% may cause a problem with some packages including \textsf{marginnote} and +% \textsf{(auto-)pst-pdf} having their own counters which must be global. +% Since it is tough to find the name of such counters from package sources, +% if you have something wrong with these (or other) packages, try to put +% \!\globalcounter!|*| in your preamble and use \!\localcounter! shown below +% to localize specific counters which you need to be local. +% +% \item +% Globalizing a \meta{ctr} being already global is just ignored without any +% complaints. +% \end{itemize} +% +% +% +% \item[\Midx{\!\localcounter!}\marg{ctr}]\mbox{}\par +% The command declares that the counter \meta{ctr} is local for each column. +% +% \begin{itemize} +% \item +% Though this command is intended for localizing a \meta{ctr} which is once +% globalized, localizing a local counter does not causes any error but is +% just ignored. Localizing the permanently global \counter{page} is also +% just ignored without any complaints. +% \end{itemize} +% +% +% +% \item[\Midx{\!\definethecounter!}\marg{ctr}\marg{col}\marg{rep}]\mbox{}\par +% The command defines |\the|\meta{ctr} being \marg{rep} for the local use in +% the column \meta{col}. That is, |\the|\meta{ctr} in the column \meta{col} +% acts as if it is defined by +% \!\renewcommand!\Arg{\cs{the}\meta{ctr}}\Arg{\meta{rep}}. +% +% +% +% \item[\Midx{\!\synccounter!}\marg{ctr}]\mbox{}\par +% The command \emph{broadcasts} the value of the \lcounter{} \meta{ctr} in +% the column in which the command appears to the values in all other columns. +% +% \item[\Midx{\!\syncallcounters!}]\mbox{}\par +% The command broadcasts the values of all \lcounter{}s in the column in +% which the command appears to the values in all other columns. +% \end{description} +% +% +% +% \subsection{Page-Wise Footnotes} +% \label{sec:ref-scfnote} +% \changes{v1.2-2}{2013/05/11} +% {Add the sub-section ``Single-Columned Footnotes'' to describe newly +% introducerd commands for page-wise footnotes.} +% \changes{v1.3-5}{2013/09/17} +% {Rename the sub-section title from ``Single-Columned Footnotes'' to +% ``Page-Wise Footnotes'' following new naming.} +% +% \begin{description} +% \item[\Midx{\!\footnotelayout!}\marg{layout}]\mbox{}\par +% The command specifies the \meta{layout}${}\in\{|c|,|p|,|m|\}$ of footnotes +% in \env{paracol} environments as follows. +% +% \begin{description} +% \item[|c|\rm(\textit{olumn})] makes footnotes {\em\Uidx\mcfnote} (aka +% multi-columned) being default to place footnotes in each column at the +% bottom of the column and separating them from \Preenv{} and \Postenv{} +% footnotes. +% +% \item[|p|\rm(\textit{age})] makes footnotes {\em\Uidx\scfnote} (aka +% single-columned) so that footnotes in all columns are gathered, typeset +% spanning all columns, and placed at the bottom of the page in which they +% appear or at the end of the \env{paracol} environment they belong to, so +% that they are separated from \Preenv{} and \Postenv{} footnotes. +% +% \item[|m|\rm(\textit{erge})] makes \Scfnote{}s {\em\Uidx\mgfnote} with +% footnotes in outside of the environment but in the same page, i.e., those +% in \Preenv{} and \postenv. +% \end{description} +% +% +% \begin{itemize} +% \item +% An example of \Mgfnote{} is found in p.~\pageref{sec:ref-paracol} while +% you will see many of them in Section~\ref{sec:fnnp}\footnote{ +% +% The left-column footnote \ref{fn:flush} in p.~\pageref{fn:flush} looks like +% a merged footnote because it is at the bottom of the page and the marked +% text is above the single-column text. However, it is an ordinary +% \mcfnote{} one produced by a trick with \cs{footnotemark} and +% \cs{footnotetext} in different \env{paracol} environments.}. +% +% \item +% In any layouts, a footnote cannot have page breaks in it, i.e., a footnote +% is always put in a page as a whole. This makes it impossible to have a +% footnote taller than \!\textheight! and thus you will see a warning +% message if you give a very long footnote which will be printed intruding +% into the area for page footer (or out of the paper bound). +% +% \item +% Choosing the layout |p|age-wise or |m|erged makes \counter{footnote} +% counter global and \!\fncounteradjustment! shown below performed inside +% \!\footnotelayout!. Choosing |c|olumn-wise let the command do the +% operations oppositely, i.e., localizes \counter{footnote} and does +% \!\nofncounteradjustment!. Though these settings are usually appropriate +% for each footnote layout but you can override them by explicitly using +% commands like \!\localcounter!|{footnote}|. +% +% \item +% The command has to be outside of \env{paracol} environments to decide the +% action in the environments following them. If it appears in a +% \env{paracol} environment, you will have a warning message saying it is +% ignored. +% +% \item +% \changes{v1.3-5}{2013/09/17} +% {Remove description of \cs{multicolumnfootnotes}, +% \cs{singlecolumnfootnotes}, \cs{mergedfootnotes} but mention they +% are still available.} +% +% In old versions of \Paracol, namely 1.2 and its minor revisions 1.2x, +% footnote layout was controlled by a set of lengthy commands +% \Midx{\!\multicolumnfootnotes!} for |c|, \Midx{\!\singlecolumnfootnotes!} +% for |p|, and \Midx{\!\mergedfootnotes!} for |m|. +% Though they are still available and will be so forever for backward +% compatibility, it is recommended to use \!\footnotelayout!\footnote{ +% +% Not only for type saving but also for being familiar with this command +% which could have some advanced feature, for example to put gathered +% footnotes into a specific column, someday.}. +% +% % \item +% It must be $\meta{layout}\in\{|c|,|p|,|m|\}$, or you will have an error +% message of illegal layout specifier. +% \end{itemize} +% +% +% +% \KeepSpace{5} +% \item[\Midx{\!\footnote!}\texttt{*}\oarg{num}\marg{text}]\mbox{} +% \Item[\Midx{\!\footnotemark!}\texttt{*}\oarg{num}]\mbox{} +% \Item[\Midx{\!\footnotetext!}\texttt{*}\oarg{num}\marg{text}]\mbox{}\par +% The starred version of \!\footnote!, \!\footnotemark! and \!\footnotetext! +% are for the adjustment of the footnote numbering, the order of footnote +% marks in main texts, and the stacking order of footnotes at page +% bottom. Their usages with various examples are given in +% Section~\ref{sec:fnnp}. +% +% +% +% \KeepSpace{3} +% \item[\Midx{\!\fncounteradjustment!}]\mbox{} +% \Item[\Midx{\!\nofncounteradjustment!}]\mbox{}\par +% The maintenance of \counter{footnote} with the starred footnote commands +% such as \!\footnote!|*| shown above causes out-of-order progress of the +% counter to make it hard to have a consistent counter value at +% \Endparacol. The command \!\fncounteradjustment! is to let \Endparacol{} +% adjust the value of the counter based on its value at +% \beginparacol{} and the number of footnote commands in the environment. +% The command \!\nofncounteradjustment! is to tell \Endparacol{} to do +% nothing as in default. +% +% \begin{itemize} +% \item +% Though \!\footnotelayout! with |p|(age-wise) or |m|(erged) argument does +% \!\fncounteradjustment! while that with |c|(olumn) does +% \!\nofncounteradjustment! inside of it, you can override these settings by +% explicitly putting a counter adjustment command after \!\footnotelayout!. +% +% \item +% The effect of \!\fncounteradjustment! is shown in Section~\ref{sec:fnnp}. +% \end{itemize} +% +% +% \item[\Midx{\!\belowfootnoteskip!}]\mbox{}\par +% \changes{v1.35-4}{2018/12/31} +% {Add description of \cs{belowfootnoteskip}.} +% The typesetting parameter specifies the amount of the space inserted below +% footnotes of single-column \preenv{} if it does not have bottom floats. The +% default amount is 0\,pt, i.e., no space is added. +% +% \end{description} +% +% +% \KeepSpace{6} +% \subsection{Commands for Coloring Texts and Column-Separating Rules} +% \label{sec:ref-tcolor} +% \changes{v1.3-3}{2013/09/17} +% {Rename the sub-sectoin title from ``Commands for Text Coloring'' to +% ``Commands for Coloring Texts and Column-Separating Rules'' to +% add description of the rule coloring together with the rule +% drawing itself.} +% +% \begin{description} +% \item[\Midx{\!\columncolor!}\oarg{mode}\marg{color}\oarg{col}]\mbox{} +% \Item[\Midx{\!\normalcolumncolor!}\oarg{col}]\mbox{}\par +% \changes{v1.2-1}{2013/05/11} +% {Add description of \cs{columncolor} and \cs{normlcolumncolor}.} +% +% The command \!\columncolor! declares that the \emph{default color} of a +% column is \meta{color} or what it specifies by the combination with the +% optional \meta{mode}. The command \!\normalcolumncolor! declares the +% default color is what \!\normalcolor! specifies, i.e., black usually. The +% target column of these commands is that in which the commands reside, or +% \meta{col} if it specified. +% +% \begin{itemize} +% \item +% The command may be outside of \env{paracol} environment. If so and +% \meta{col} is not provided, the target column is the leftmost 0. +% +% \item +% The default color declaration is \emph{global}. Therefore, even if the +% command appears in a \env{paracol} environment (and even in some grouping +% structure in it), the declaration will be kept effective after +% \Endparacol{} to determine the default color of the specified column in +% succeeding \env{paracol} environments. +% +% \item +% To give a color to texts (and maybe other stuff) in a column correctly, +% you need to load \textsf{color} package or its relative (e.g., +% \textsf{xcolor}) which the implementation of coloring in \textsf{paracol} +% relies on. +% +% \item +% Coloring with \!\color!\oarg{mode}\marg{color} and other coloring commands +% in \env{paracol} environments is of course allowed. One caution is that +% the \!\color! decides the color for following texts until other +% specification is given or the group surrounding the command is closed. +% Therefore, \!\switchcolumn! does not affect the coloring but a color given +% to the texts in a column is also applied to the texts in the column to be +% switched to. This irrelativeness of coloring and \cswitch{} is shown in +% the example below. +% +% \twosided[]\columnratio{0.5}\columnsep0pt +% \tolerance5000\hbadness5000 +% \begin{paracol}{2} +% \columncolor{blue} +% This column is colored blue because\\ +% \mbox{}\qquad \!\columncolor!|{blue}|\\ +% is specfied. Here we have a \!\switchcolumn!. +% \switchcolumn +% \columncolor{red} +% This column is colored red because\\ +% \mbox{}\qquad\!\columncolor!|{red}|\\ +% is specified. +% +% \begin{color}{green} +% Now the color of the right column is changed to green because\\ +% \mbox{}\qquad\!\begin!|{color}{green}|\\ +% is given prior to this paragraph. Now we have another \!\switchcolumn! to +% go back to the left. +% \switchcolumn +% The color of this paragraph is green because we are still in the +% environment of green coloring, which we are now closing.\par +% \end{color}% +% +% Since the coloring environment has been closed, the color of this +% paragraph is the default blue. Now we have yet another and the last +% \!\switchcolumn! to the right. +% \switchcolumn +% Since this paragraph is outside of the coloring environment, its color is +% the default red. +% \end{paracol} +% +% \normalcolumncolor[0]\normalcolumncolor[1] +% The default coloring of columns does not affect anything outside of +% \env{paracol} environment of course, and thus this sentence is not +% colored\footnote{ +% +% Or colored black as \cs{normalcolor} specifies.}. +% \end{itemize} +% +% +% +% \KeepSpace{4} +% \item[\Midx{\!\coloredwordhyphenated!}]\mbox{} +% \Item[\Midx{\!\nocoloredwordhyphenated!}]\mbox{}\par +% \changes{v1.3-3}{2013/09/17} +% {Add description of \cs{coloredwordhyphenated} and +% \cs{nocoloredwordhyphenated}.} +% +% The command \!\coloredwordhyphenated! allows the first word following a +% coloring command such as \!\color! to be hyphenated, but at the same time +% make it possible that a line is broken before the word. The command +% \!\nocoloredwordhyphenated! acts oppositely and thus line breaking before +% the first word and hyphenating it are inhibited. By default, +% \!\coloredwordhyphenated! is effective. +% +% \begin{itemize} +% \item +% The implementation of \textsf{color} package and its relatives makes it +% impossible that \meta{word} is hyphenated when it appears like +% |{|\!\color!|{red}|\meta{word} \ldots|}| or +% \!\textcolor!|{|\meta{word} \ldots|}|. This inhibition of the hyphenation +% is sometimes annoying especially when the document is multi-columned and +% thus a line is narrow and a column is written in a language having long +% words such as German. Therefore in \Paracol{} package, a trick is used to +% allow the \meta{word} is hyphenated. However this trick being insertion +% of a null horizontal space has a side effect that the word can have a line +% break before it. Though this line break is usually unharmful, in a +% special occasion the break is undesirable and +% in\textcolor{red}{appropriate} by making it possible that the +% \emph{half-colored} word `inappropriate' is broken between `in' and +% `appropriate' without hyphenation. Therefore, if you find such a +% inappropriate break, use \!\nocoloredwordhyphenated! as follows, for example. +% \begin{quote} +% |{\nocoloredwordhyphenated in\textcolor{red}{appropriate}}| +% \end{quote} +% \end{itemize} +% +% +% \KeepSpace{4} +% \item[\Midx{\!\colseprulecolor!}\oarg{mode}\marg{color}\oarg{col}]\mbox{} +% \Item[\Midx{\!\normalcolseprulecolor!}\oarg{col}]\mbox{}\par +% \changes{v1.3-3}{2013/09/17} +% {Add description of \cs{colseprulecolor} and +% \cs{normalcolseprulecolor}.} +% +% The command \!\colseprulecolor! declares the color for +% {\em\Uidx\cseprule{}s}, being the vertical rules drawn at the center of +% gaps between columns, is \meta{color} or what it specifies by the +% combination with the optional \meta{mode}. The command +% \!\normalcolseprulecolor! declares the color of rules is what +% \!\normalcolor! specifies, i.e., black usually. If the optional argument +% \meta{col} is given, these commands specifies the color of the rule in the +% gap following the column whose ordinal is \meta{col}, rather than all rules. +% +% \begin{itemize} +% \item +% The rules are drawn if \LaTeX's typesetting parameter \!\columnseprule! +% for the rule width has non-zero value, e.g., 0.4\,|pt| to obey the +% standard rule thickness. The rules are \emph{not} drawn on \pwstuff{}, +% i.e., \Preenv{} and \postenv, \pwise{} floats or (\mgfnote{} or +% non-merged) \Scfnote{}s of course but also \mctext{}s. Therefore, if a +% page has \mctext{}s, the rules are {\em broken} by them as shown in the +% red rule example below. +% \global\unitlength\@totalleftmargin +% \end{itemize} +% \end{description} +% +% \columnseprule0.4pt\colseprulecolor{red}[1]\colseprulecolor{white}[0] +% \setcolumnwidth{\unitlength/0pt} +% \begin{paracol}{3}\switchcolumn\noindent +% This is a left column paragraph preceding a \mctext. Of cource the rule +% separating this and the next column starts from the top of this paragraph. +% \switchcolumn\noindent +% This is a right column paragraph preceding a \mctext{} given by the +% \!\switchcolumn!|*| at its end. +% \switchcolumn[1]*[\subsubsection*{\hbox to\unitlength{} +% An Example of Spanning Text Given by \cs{subsubsection}|*| Command}] +% Since we have a \mctext{} above, the red rule separating this and the next +% column is broken by the text. +% \switchcolumn +% It is also natural that the rule separating this and the previous column is +% terminated at the end of this \env{paracol} environment. +% \end{paracol} +% \columnseprule0pt\columnratio{} +% +% \begin{description} +% \Item[]\mbox{} +% \begin{itemize} +% \Item +% To give a color to rules correctly, you need to load \textsf{color} +% package or its relative (e.g., \textsf{xcolor}) which the implementation +% of coloring in \textsf{paracol} relies on. +% +% \item +% Once you give a color to rules in a specific gap with the optional +% \meta{col}, another \!\colseprulecolor! or \!\normalcolseprulecolor! +% without \meta{col} does \emph{not} change the color of the rule in the +% gap. +% \end{itemize} +% \end{description} +% +% +% +% \KeepSpace{7} +% \subsection{Commands for Background Painting} +% \label{sec:ref-bgpaint} +% \changes{v1.3-3}{2013/09/17} +% {Add the sub-section ``Commands for Background Painting.} +% +% \begin{description} +% \item[\Midx{\!\backgroundcolor!}\marg{region}\oarg{mode}\marg{color}] +% \mbox{}\par +% \Item[\Midx{\!\backgroundcolor!} +% \Arg{\meta{region}$|(|x_0|,|y_0|)|$}\oarg{mode}\marg{color}] +% \mbox{}\par +% \Item[\Midx{\!\backgroundcolor!} +% \Arg{\meta{region}$|(|x_0|,|y_0|)||(|x_1|,|y_1|)|$} +% \oarg{mode}\marg{color}] +% \mbox{}\par +% \changes{v1.3-3}{2013/09/17} +% {Add description of \cs{backgroundcolor}.} +% +% The command declares that {\em\Uidx\bgpaint} of \meta{region} is performed +% with \meta{color} or what it specifies by the combination of the optional +% \meta{mode}. The \meta{region} whose \bground{} is painted is one of the +% following. +% +% \begin{description} +% \item[|c|\rm(\textit{olumn})] for all columns, or particular one if +% \meta{region} is |c|\oarg{col} to specify its ordinal \meta{col}. +% +% \item[|g|\rm(\textit{ap})] for all gaps between columns, or particular one +% if \meta{region} is |g|\oarg{col} to specify the ordinal \meta{col} of the +% column preceding the gap. +% +% \item[|s|\rm(\textit{panning})] for \mctext{}s. +% +% \item[|f|\rm(\textit{loat})] for \pwise{} floats. +% +% \item[|n|\rm(\textit{ote})] for (\mgfnote{} or non-merged) \Scfnote{}s. +% +% \item[|p|\rm(\textit{re/post})] for \Preenv{} and \postenv. +% +% \item[|t|\rm(\textit{op})] for top margin. +% +% \item[|b|\rm(\textit{ottom})] for bottom margin. +% +% \item[|l|\rm(\textit{eft})] for left margin. +% +% \item[|r|\rm(\textit{ight})] for right margin. +% \end{description} +% +% In addition, capitals of the keys above, i.e., |C|, |G|, \ldots, |L|, are +% also legitimate for {\em under painting}. For example, you may specify to +% paint the \bground{} of a region, say top margin, by two +% \!\backgroundcolor! with |t| and |T| and with different color arranging the +% size of the region of either |t| or |T| (or both of them) by the +% \emph{\bgext} option shown below. +% +% The optional $|(|x_0|,|y_0|)|$ is to enlarge the region to be painted +% shifting its left-top and right-bottom corner outside by +% the dimension $x_0$ horizontally and $y_0$ vertically, or to shrink it +% with negative dimensions. This {\em\Uidx\bgext} can be asymmetric giving +% another optional $|(|x_1|,|y_1|)|$ so that it acts on the right-bottom +% corner while let $|(|x_0|,|y_0|)|$ shift only the left-top corner. +% Moreover, you may make each \bgext{} {\em infinite} by giving 10000\,|pt| +% (about 3.5\,m) to $x_0$, $y_0$, $x_1$ and/or $y_1$ so that the +% corresponding region edge is shifted to the paper edge. Furthermore, this +% {\em\Uidx\bginfext{}} can be terminated at the point $\alpha$ inside the +% corresponding paper edge by giving $10000\,|pt|-\alpha$ +% ($\alpha\leq1000\,|pt|$) to an extension parameter $x_0$, etc. +% +% \begin{itemize} +% \item +% A region whose color is not specified is not painted and thus left blank +% (or kept as painted by \!\pagecolor! if you specify it). +% +% \item +% Under-painting of columns and gaps by |C| and |G| is made for regions +% different from those over-painting |c| and |g|. That is, under-painting +% is done ignoring all \pwstuff{} and thus the height of the regions is +% always $\!\textheight!+\!\maxdepth!$. On the other hand, over-painting is +% only for chunks shrunk or separated by \pwstuff. +% +% \item +% You may exploit the following painting order, where $x_i$ +% is the $i$-th \mctext{} ($x\in\{|s|,|S|\}$) or $i$-th chunk followed by +% the $i$-th \mctext, $m$ and $n$ is the number of \mctext{}s and columns in +% a page respectively, to overlay a preceding region with a succeeding +% region, if your \emph{printer} allows overlaid color painting. +% +% \begin{eqnarray*} +% |T|&\to&|B|\to|L|\to|R| +% \to|G[|0|]|\to\cdots\to|G[|n{-}1|]|\to|C[|0|]|\to\cdots\to|C[|n{-}1|]|\\ +% &\to&|t|\to|b|\to|l|\to|r|\to|N|\to|n|\to\{|F|,|P|\}\to\{|f|,|p|\} +% \to|S|_1\to\cdots\to|S|_m\\ +% &\to&|g|_1|[|0|]|\to\cdots|g|_1|[|n{-}2|]|\to +% |c|_1|[|0|]|\to\cdots|c|_1|[|n{-}1|]|\to|s|_1\\ +% &\to&\cdots\\ +% &\to&|g|_m|[|0|]|\to\cdots|g|_m|[|n{-}2|]|\to +% |c|_m|[|0|]|\to\cdots|c|_m|[|n{-}1|]|\to|s|_m\\ +% &\to&|g|_{m+1}|[|0|]|\to\cdots|g|_{m+1}|[|n{-}2|]|\to +% |c|_{m+1}|[|0|]|\to\cdots|c|_m|[|n{-}1|]| +% \end{eqnarray*} +% +% \item +% If you specify |b| feature by \!\twosided!, \bgpaint{} is +% {\em\Uidx\mirror{}ed} in even-numbered pages so that |l| and |L| mean +% right margin, |r| and |R| mean left margin, and asymmetric extensions are +% applied to right-top and left-bottom corners. +% +% \item +% To give a color for \bgpaint{} correctly, you need to load \textsf{color} +% package or its relative (e.g., \textsf{xcolor}) which the implementation +% of coloring in \textsf{paracol} relies on. +% +% \item +% To paint margins and regions having infinite extension correctly, the +% parameters \!\paperwidth! and \!\paperheight! should be set properly by, +% for example, a paper selection option of \!\documentclass!. +% +% \item +% Section~\ref{sec:bgpaint} shows examples of \bgpaint{} to give you more +% intutive explanations of \!\backgroundcolor! and its region specifications. +% \end{itemize} +% +% +% +% \item[\Midx{\!\nobackgroundcolor!}\marg{region}]\mbox{} +% \Item[\Midx{\!\resetbackgroundcolor!}]\mbox{}\par +% \changes{v1.3-3}{2013/09/17} +% {Add description of \cs{nobackgroundcolor} and +% \cs{resetbackgroundcolor}.} +% +% The command \!\nobackgroundcolor! declares that the \bground{} of +% \meta{region} is not painted, where \meta{region} is one of legitimate +% region specifiers of \!\backgroundcolor!. The command +% \!\resetbackgroundcolor! declares no regions are painted and thus gives +% you the default state. +% +% \begin{itemize} +% \item +% If you specified the \bgpaint{} of |c|\oarg{col} or |g|\oarg{col} by +% \!\backgroundcolor!, the painting is \emph{not} canceled by +% \!\nobackgroundcolor! with |c| or |g| but without \oarg{col}. Similarly, +% once you made declarations of \bgpaint{} of both |c| and |c|\oarg{col} +% (resp.\ |g| and |g|\oarg{col}), \!\nobackgroundcolor! with |c|\oarg{col} +% (resp.\ |g|\oarg{col}) cancels the painting of |c|\oarg{col} (resp.\ +% |g|\oarg{col}) but the region will still be painted by the color you gave +% to |c| (resp.\ |g|). +% \end{itemize} +% +% +% +% \item[\Midx{\!\pagerim!}]\mbox{}\par +% \changes{v1.3-3}{2013/09/17} +% {Add description of \cs{pagerim}.} +% +% This is a (kind of) \emph{length command}\footnote{ +% +% In reality, it is a \cs{dimen} register rather than a \cs{skip} register.} +% +% to have the width of the \emph{rim} area placed at each paper edge to +% inhibit \bgpaint{} in the area. That is, the inner edges of the area are +% considered as virtual paper edges to block painting of all margins and +% regions having \bginfext{} to the edges, for example in order to +% avoid printing troubles caused by painting the rim area too close to the +% real paper edges. The default value of \!\pagerim! is 0 to allow paint +% anywhere in a paper. +% \end{description} +% +% +% +% \subsection{Control of Contents Output} +% \label{sec:ref-contents} +% +% \begin{description} +% \item[\Midx{\!\addcontentsonly!}\marg{file}\marg{col}]\mbox{}\par +% The command inhibits the output of contents information to +% $\meta{file}\in\{|toc|,|lof|,|lot|\}$ from columns other than \meta{col}. +% +% \begin{itemize} +% \item +% 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. +% +% \item +% It must be $\meta{file}\in\{|toc|,|lof|,|lot|\}$, or you will have an +% error message of illegal type of contents file. +% \end{itemize} +% \end{description} +% +% +% +% \subsection{Page Flushing Commands} +% \label{sec:ref-flush} +% +% \begin{description} +% \item[\Midx{\!\flushpage!}]\mbox{}\par +% The command flushes pages up to the {\em\Uidx\tpage} in which the \lcolumn{} +% resides. Deferred floats which can be put in the pages up to the \tpage{} +% are also flushed. +% +% \item[\Midx{\!\clearpage!}]\mbox{}\par +% The command does what \!\flushpage! does and then flushes all floats still +% deferred if any. The deferred float flushing beyond the \tpage{} takes +% place at first for \cwise{} ones creating \fcolumn{}s for them, and +% then for \pwise{} ones creating {\em\Uidx\fpage{}s} only with +% \pwise{} floats, as \LaTeX's \!\clearpage! does outside \env{paracol} +% environment. +% +% \item[\Midx{\!\cleardoublepage!}]\mbox{}\par +% \changes{v1.3-5}{2013/09/17} +% {Add description of \cs{cleardoublepage}.} +% The command does what \LaTeX's \!\cleardoublepage! does outside +% \env{paracol}. That is, it does \!\clearpage! always and then leaves a +% blank page if it is even-numbered and two-sided |p|(age) feature is +% enabled by |twoside| option of \!\documentclass! or \Paracol's own +% \!\twosided! command shown in Section~\ref{sec:ref-twoside}. +% +% \begin{itemize} +% \item +% This command is equivalent to \!\clearpage! in \env{paracol} environments +% for \npaired{} \parapag{}ing because \!\clearpage! flushes \emph{both} +% left and right \parapag{}es. +% \end{itemize} +% \end{description} +\endinput |