summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-09-17 23:01:07 +0000
committerKarl Berry <karl@freefriends.org>2011-09-17 23:01:07 +0000
commitf12dd7727abc99394ce4f9a397a6929c341bdb67 (patch)
treef318964040ba0e58593c842de37f329ec46c49b9 /Master
parent4c3d942ca695f11236ecee35e9ac3cbe3c28d452 (diff)
new latex package paracol (17sep11)
git-svn-id: svn://tug.org/texlive/trunk@23995 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/paracol/README35
-rw-r--r--Master/texmf-dist/doc/latex/paracol/paracol-man.pdfbin0 -> 85173 bytes
-rw-r--r--Master/texmf-dist/doc/latex/paracol/paracol-man.tex808
-rw-r--r--Master/texmf-dist/tex/latex/paracol/paracol.sty795
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check3
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/paracol.tlpsrc0
7 files changed, 1641 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/paracol/README b/Master/texmf-dist/doc/latex/paracol/README
new file mode 100644
index 00000000000..a8cee1b5f52
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/paracol/README
@@ -0,0 +1,35 @@
+paracol (v0.91): a multi-column package to typeset columns in "parallel".
+===
+Copyright (C) 2005-2011
+ Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
+ (Kyoto Univerisity)
+This package can be redistributed and/or modified under the terms
+of the LaTeX Project Public License Distributed from CTAN
+archives in directory macros/latex/base/lppl.txt; either
+version 1 of the License, or any later version.
+===
+
+[Contents]
+
+- README ............ this document
+- paracol.sty ....... the style file
+- paracol-man.tex ... LaTeX source of the manual
+- paracol-man.pdf ... PDF of the manual
+
+[Features]
+
++ "paracol" environment in which you may "switch" and "synchronize columns
+ by \switchcolumn(*).
+
++ "column", "nthcolumn", "leftcolumn" and "rightcolumn" environments used in
+ "paracol" to enclose texts to appear in a column.
+
++ Counters are "local" to each column in default but you may make some of
+ them global to all columns by \globalcounter{<ctr>}.
+
++ \definethecounter{<ctr>}{<i>}{<def>} to give <ctr> its appearance
+ <def>inition specific to <i>-th column.
+
+Enjoy!
+
+Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
diff --git a/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf b/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf
new file mode 100644
index 00000000000..ffd8f72a0a9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/paracol/paracol-man.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/paracol/paracol-man.tex b/Master/texmf-dist/doc/latex/paracol/paracol-man.tex
new file mode 100644
index 00000000000..f2af2d6b6f6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/paracol/paracol-man.tex
@@ -0,0 +1,808 @@
+%234567890123456789012345678901234567890123
+\documentclass{article}
+\usepackage{paracol}
+\usepackage{newvbtm}
+
+\textwidth210mm
+\advance\textwidth-40mm \oddsidemargin20mm \advance\oddsidemargin-1in
+\columnsep10mm
+\marginparwidth20mm \advance\marginparwidth-\marginparsep
+\marginparsep.5\marginparsep
+
+\def\|{\verb|}
+
+\newverbatim{Verbatim}{\topsep0pt \partopsep0pt}{}{}{}
+
+%\def\topfraction{.9}
+%\def\bottomfraction{.9}
+%\def\textfraction{.1}
+
+% making counters global
+\globalcounter{section}
+\globalcounter{figure}
+\globalcounter{table}
+
+% giving local \theCTR definition
+\definethecounter{footnote}{1}{\textit{\arabic{footnote}}}
+\definethecounter{subsection}{1}{%
+ \texttt{\arabic{section}.\arabic{subsection}}}
+
+\let\AB\allowbreak
+
+\hyphenation{col-umn col-umns}
+
+\title{Package \textsf{paracol} User's Manual\\
+ (version 0.91)}
+\author{Hiroshi Nakashima\\(Kyoto University)}
+\date{2011/09/16}
+
+
+
+\begin{document}
+\hbadness9000 \hfuzz6pt
+\maketitle
+\begin{paracol}{2}[\section{Introduction}]
+This document describes the usage of yet another multi-column package named
+\textsf{paracol}. The unique feature of the package is that columns are
+typeset {\em in parallel.}
+
+Suppose you are writing a bilingual document whose left column is written in
+a language, say English, and right column has the translation of the left
+column in another language, e.g. Japanese. With the \textsf{paracol}
+package you may write an English part of arbitrary length and then {\em
+switch} to its Japanese counterpart to place both parts side by side. Of
+course you may return to the English writing similarly.
+
+The column switching is always allowed when you complete an outermost level
+paragraph. You may be unaware whether a column is broken into multiple
+pages before switching because the package automatically goes back and
+forward to the correct page and vertical position when you switch the
+column. Moreover, you may {\em synchronize} columns so that the tops of
+the first paragraphs after switching in all columns are vertically aligned.
+At a synchronization point, you may give a single-column text, for example
+a common section header, optionally. You may also switch single-column and
+multi-column in a page arbitrary.
+
+This manual itself is an example of two-column documents typeset by
+\textsf{paracol}. Since the author is not familiar with languages other
+than English and Japanese and the latter should be hardly understood by
+most of readers, the right column is the translation of the left English
+column into a computational language. That is, the right column is the
+\LaTeX{} source code of the left column\footnote{Not really but its essence
+is shown.}.
+
+\switchcolumn
+\begin{Verbatim}
+\begin{paracol}{2}[\section{Introduction}]
+\hbadness5000
+This document describes the usage of yet
+another multi-column package named
+\textsf{paracol}. The unique feature of
+the package is that columns are typeset
+{\em in parallel.}
+
+Suppose you are writing a bilingual
+document whose left column is written in a
+language, say English, and right column has
+the translation of the left column in
+another language, e.g. Japanese. With the
+\textsf{paracol} package you may write an
+English part of arbitrary length and then
+{\em switch} to its Japanese counterpart to
+place both parts side by side. Of course
+you may return to the English writing
+similarly.
+
+The column switching is always allowed when
+you complete an outermost level paragraph.
+You may be unaware whether a column is
+broken into multiple pages before switching
+because the package automatically goes back
+and forward to the correct page and
+vertical position when you switch the
+column. Moreover, you may {\em
+synchronize} columns so that the tops of
+the first paragraphs after switching in all
+columns are vertically aligned. At a
+synchronization point, you may give a
+single-column text, for example a common
+section header, optionally. You may also
+switch single-column and multi-column in a
+page arbitrary.
+
+This manual itself is an example of
+two-column documents typeset by
+\textsf{paracol}. Since the author is not
+familiar with languages other than English
+and Japanese and the latter should be
+hardly understood by most of readers, the
+right column is the translation of the left
+English column into a computational
+language. That is, the right column is the
+\LaTeX{} source code of the left column%
+\footnote{Not really but its essence is
+shown.}.
+
+\switchcolumn
+
+\begin{verbatim}
+\end{Verbatim}
+{\it Here is the source of above.}\\
+\|\end{verbatim}|\footnote{%
+This \texttt{verbatim} construct is simply referred as to
+``\textit{source}'' hereafter.}
+
+
+
+\switchcolumn*[\section{Basic Usage}]
+Loading the package is very simple. What you have to do is
+\|\usepackage{paracol}| in the preamble. Note that \textsf{paracol} can be
+used with \LaTeXe{} and does not work with \LaTeX{} 2.09.
+
+\switchcolumn
+
+\begin{Verbatim}
+\switchcolumn*[\section{Basic Usage}]
+Loading the package is very simple. What
+you have to do is \|\usepackage{paracol}|
+\end{Verbatim}
+\|in the preamble. ...|\footnote{%
+Hereafter, a part of the source code may be omitted like this.}\\
+\|\switchcolumn|\\
+\textit{source}
+
+\switchcolumn*
+The fundamental means of parallel-column typesetting are the environment
+\|paracol| and the command \|\switchcolumn|. The \|paracol| environment
+needs an argument to specify the number of columns. Thus the following is
+the basic construct for two-parallel-column documents.
+\begin{quote}
+\|\begin{paracol}{2}|\\
+\textit{left column text}\\
+\|\switchcolumn|\\
+\textit{right column text}\\
+\|\switchcolumn|\\
+\textit{left column text}\\
+\|\switchcolumn|\\
+\textit{right column text}\\
+\|\switchcolumn|\\
+\mbox{\hspace{4em}}$\vdots$\\
+\|\end{paracol}|
+\end{quote}
+
+\switchcolumn
+\begin{Verbatim}
+\switchcolumn*
+The fundamental means of parallel-column
+typesetting are the environment \|paracol|
+and the command \|\switchcolumn|. ...
+\switchcolumn
+\end{Verbatim}
+\textit{source}
+
+\switchcolumn[1]*
+\begin{Verbatim}
+\switchcolumn[1]*
+\end{Verbatim}
+\textit{source}
+\begin{Verbatim}
+\switchcolumn[0]
+The \|\switchcolumn| command may have an
+optional argument to specify the column
+number (zero origin) to start. ...
+\end{Verbatim}
+
+\switchcolumn[0]
+The \|\switchcolumn| command may have an optional argument to specify the
+column number (zero origin) to start. That is, \|\switchcolumn[0]| means to
+switch to the leftmost column, \|\switchcolumn[1]| is to start the second
+column and so on. Thus the \|\switchcolumn| without the optional argument
+may be considered as \|\switchcolumn[|$i+1\bmod{n}$\|]| where $i$ is the
+last column number and $n$ is the number of columns given to \|paracol|
+environment.
+
+
+
+\switchcolumn[0]*[\section{Column Synchronization}\label{sec:sync}]
+The \|\switchcolumn| command may also be followed by a `\|*|' to {\em
+synchronize} columns. After you switch from a column to another by
+\|\switchcolumn*| (or \|\switchcolumn[|$i$\|]*|), all the columns are
+vertically aligned at the bottom of the {\em deepest} one preceding the
+command. For example, the previous section has three \|\switchcolumn*|
+commands at which left and right columns are vertically aligned.
+
+The {\em starred} version of \|\switchcolumn| may have an optional argument
+to specify a multi-column text whose bottom is the vertical alignment
+points of the columns. For example, \|\section| commands in this manual are
+given as optional arguments of\break\|\switchcolumn*| like;
+\begin{Verbatim}
+ \switchcolumn*[\section{Basic Usage}]
+\end{Verbatim}
+The \|paracol| environment may also start with a multi-column text by
+specifying it as the optional argument of \|\begin{paracol}|. For example,
+at the beginning of this document, the author put;
+\begin{Verbatim}
+ \begin{paracol}[\section{Introduction}]
+\end{Verbatim}
+
+\switchcolumn
+\begin{Verbatim}
+\switchcolumn[0]*[%
+ \section{Column Synchronization}
+ \label{sec:sync}]
+The \|\switchcolumn| command may also be
+followed by a `\|*|' to {\em synchronize}
+columns. ...
+
+The {\em starred} version of
+\|\switchcolumn| may have an optional
+argument to specify a multi-column text
+whose bottom is the vertical alignment
+points of the columns. ...
+\switchcolumn
+\end{Verbatim}
+\textit{source}
+
+
+
+\begin{column*}[\section{Environments for Columns}\label{sec:env}]
+\subsection{Environment \texttt{column}}
+The \|\switchcolumn| is simple but you may prefer to pack the contents of a
+column in an environment. The \|column| environment is available for this
+well-structurization of \LaTeX{} sources for parallel columned documents. A
+construct;
+\begin{quote}
+\|\begin{column}|\\
+\textit{text for a column}\\
+\|\end{column}|
+\end{quote}
+is (almost) equivalent to;
+\begin{quote}
+\|\switchcolumn|\\
+\textit{text for a column}
+\end{quote}
+The \|column*| environment is also available for the column synchronization
+and may have an optional argument for multi-column text.
+\end{column*}
+
+\begin{column}
+\subsection{\ttfamily Environment column}
+\begin{Verbatim}
+\begin{column*}[%
+ \section{Environments for Columns}
+ \label{sec:env}]
+\subsection{Environment \texttt{column}}
+The \|\switchcolumn| is simple but you may
+prefer to pack the contents of a column in
+an environment. ...
+\end{column*}
+\begin{column}
+\end{Verbatim}
+\textit{source}\\
+\|\end{column}|
+\end{column}
+
+\begin{nthcolumn*}{1}
+\subsection{\ttfamily Environment nthcolumn}
+\begin{Verbatim}
+\begin{nthcolumn*}{1}
+\end{Verbatim}
+\textit{source}
+\begin{Verbatim}
+\end{nthcolumn*}
+
+\begin{nthcolumn}{0}
+\subsection{Environment \texttt{nthcolumn}}
+The \|\switchcolumn| can start an
+arbitrarily specified column with the
+column number given through its optional
+argument, but the \|column| environment
+cannot do it. ...
+\end{nthcolumn}
+\end{Verbatim}
+\end{nthcolumn*}
+\begin{nthcolumn}{0}
+\subsection{Environment \texttt{nthcolumn}}
+The \|\switchcolumn| can start an arbitrarily specified column with the
+column number given through its optional argument, but the \|column|
+environment cannot do it. If you want to start $i$-th column, you have to
+do \|\beign{nthcolumn}{|$i$\|}| (or \|nthcolumn*| with an optional argument
+to synchronize).
+\end{nthcolumn}
+
+
+
+\begin{leftcolumn*}
+\subsection{Environment \texttt{leftcolumn} and\\\texttt{rightcolumn}}
+The environment \|leftcolumn| and \|rightcolumn| (and their starred
+versions with an optional argument) are available as more convenient means
+than saying \|\begin{nthcolumn}{0}| and \|\begin{nthcolumn}{1}|.
+
+\begin{figure*}
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\textwidth{}\\
+ double-column figure \#1\\
+ \\\hline
+ \end{tabular}}
+\caption{A Double-Column Figure}
+\end{figure*}
+\begin{figure}[t]
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\\\
+ single-column figure \#1\\
+ \\\\\hline
+ \end{tabular}}
+\caption{A Single-Column Figure}
+\end{figure}
+\end{leftcolumn*}
+
+\begin{rightcolumn}
+\subsection{\ttfamily Environment leftcolumn and\\rightcolumn}
+\begin{Verbatim}
+\begin{leftcolumn*}
+\subsection{%
+ Environment \texttt{leftcolumn} and\\
+ \texttt{rightcolumn}}
+The environment \|leftcolumn| and
+\|rightcolumn| (and their starred versions
+with an optional argument) are available as
+more convenient means than saying
+\|\begin{nthcolumn}{0}| and
+\|\begin{nthcolumn}{1}|.
+\begin{figure*}...\end{figure*}
+\begin{figure}[t]...\end{figure}
+\end{leftcolumn*}
+\begin{rightcolumn}
+\end{Verbatim}
+\textit{source and a \texttt{figure} env}\\
+\|\end{rightcolumn}|
+\begin{figure}[t]
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\
+ \ttfamily single-column figure \#2\\
+ \\\hline
+ \end{tabular}}
+\caption{\ttfamily Another Single-Column Figure}
+\end{figure}
+\end{rightcolumn}
+
+
+
+\begin{leftcolumn*}[\section{Floats, Footnotes and Counters}]
+\begin{table}[b]
+\caption{A Single-Column Table}
+\centerline{\begin{tabular}[t]{|l|c|r|}\hline
+ An&example&of\\\hline
+ single&column&table\\\hline
+ \end{tabular}}
+\end{table}
+\subsection{Figures and Tables}
+As shown in this page, double-column figures\slash tables (or those spanned
+multiple columns if you have three or more) may be placed by \|figure*| and
+\|table*| environments as usual. A single-column figure\slash table will be
+placed in the column in which you put \|figure| and \|table|. For example,
+the contents of \|figure| environment in a \|leftcolumn| environment is
+\emph{always} placed in a left column. That is, even if the column of the
+\emph{current} page does not have enough room to place the figure, it will
+not thrown to the right column but will be placed in the left column of the
+next page\footnote{%
+%
+Or some farther page if \LaTeX{} cannot solve the placement problem wisely.}.
+%
+
+Another caution about float placement is that you have to be careful when
+you try to put a top-float explicitly with \|t|-option or implicitly without
+placement option (i.e., \|tbp| in most classes) and to synchronize columns.
+The rule is as follows; after you synchronize columns in a page, the page
+cannot have top-floats any more. When you synchronize columns,
+\textsf{paracol} fixes a virtual horizontal line in the page as the
+synchronization barrier. Thus no top-floats cannot be added above the
+line\footnote{%
+%
+Even if you have enough space above, sorry.}.
+%
+Therefore, the author put two \|figure| environments for the figures shown
+in the previous page into the \|leftcolumn*| and \|rigtcolumn| environment
+for the previous section.
+
+\subsection{Footnotes and Marginal Notes}
+Footnotes are also put at the bottom of the column in which \|\footnote|
+commands and their references (like this\footnote{%
+%
+An example of footnote.})
+%
+reside, as shown in page~2 and this page. Marginal notes
+behave similarly like what you are seeing in the left margin of this
+sentence\marginpar{%
+%
+\raggedright An example of marginal note.}
+%
+and the right marginal note in this page\footnote{%
+%
+If you have three or more columns, marginal notes of the second or
+succeeding columns are placed just right of the column. Thus marginal notes
+of non-leftmost and non-rightmost columns will appear in the space
+separating columns rather than the margin of a page.}.
+
+\subsection{Local and Global Counters}
+You probably found that the numbering of figures and tables is \emph{global}
+while that of footnotes are \emph{local}. That is, the figure in the right
+column of the previous page has number~3 following its left-column
+counterpart Figure~2. The tables in the page are also numbered as 1 and 2
+crossing the column boundary. However, the footnotes in each column have
+their own numbering sequence. Moreover, the footnote numbers in left
+columns are typeset in Roman font while those in right columns have italic
+shapes. Similarly, sub-section numbering is local and the headings in right
+columns have typewriter-face numbers.
+
+This happens because the author declared the counters \|figure| and \|table|
+are \emph{global} in the preamble of this document by saying;
+\begin{itemize}\item[]%{
+\|\globalcounter{figure}|\\
+\|\globalcounter{table}|
+\end{itemize}%}
+and do nothing about \|footnote| and \|subsection| counters. By default,
+all the counters except for \|page| are local to columns. The value of a
+local counter 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
+local counters are the value they have at \|\begin{paracol}|. After you
+close the \|paracol| environment, the values of the left-most column are
+used for the rest of your document.
+
+If you make a counter global by the command \|\globalcounter|, the
+save/restore operations are not performed to the counter and thus it is
+globally incremented by \|\[ref]|\AB\|stepcounter| or commands such as
+\|\caption| and \|\section|. Note that the value of a global counter
+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
+\|table| environment here to increment \|table| counter, the right-column
+table at the bottom of page~\pageref{tab:right} would be Table~3 because its
+\|table| environment does not appear yet in the source code.
+
+Another counter which the author made global in this documnet is
+\|section|. As explained in Section~\ref{sec:sync}, an optional
+multi-column text of column switching is considered as in the left-most
+column. Since \|\section| commands in this document are always multi-column
+texts, so far, it seems unnecessary to make \|section| global because it is
+incremented correctly in the left-most column. However, the stepping
+\|section| has a side effect to reset its decendent counter \|subsection|
+and referred from \|\thesubsection| command. Thus if \|section| were local,
+the right-column sub-sections in Section~\ref{sec:env} would be numbered as
+``0.1'', ``0.2'' and ``0.3'' because the local value of \|section| would be
+zero. Moreover, the right-column sub-sections of this section would be
+``0.4'', ``0.5'' and ``0.6'' because stepping \|section| local to
+left-columns would not reset \|subsection| local to right-columns.
+
+You may give a local appearance to a counter \textit{ctr} for the $i$-th
+column (zero origin) by a command;
+\begin{itemize}\item[]%
+ \|\definethecounter{|\textit{ctr}\|}{|$i$\|}{|\textit{def}\|}|
+\end{itemize}%}
+where \textit{def} is to be the body of the local definition of
+\|\the|\textit{ctr}. For example, the preamble of this document has the
+following to give non-default defitions to \|\thefootnote| and
+\|\thesubsetion| for right columns.
+%
+\begin{Verbatim}
+ \definethecounter{footnote}{1}{%
+ \textit{\arabic{footnote}}}
+ \definethecounter{subsection}{1}{%
+ \texttt{%
+ \arabic{section}.\arabic{subsection}}}
+\end{Verbatim}
+\end{leftcolumn*}
+
+\begin{rightcolumn}
+\begin{table}[b]
+\caption{\ttfamily Another Single-Column Table}
+\label{tab:right}
+\centerline{\ttfamily \begin{tabular}[t]{|l|r|}\hline
+ Another&example\\\hline
+ of&single\\\hline
+ column&table\\\hline
+ \end{tabular}}
+\end{table}
+\subsection{\ttfamily Figures and Tables}
+\begin{Verbatim}
+\begin{leftcolumn*}[\section{%
+ Floats, Footnotes and Counters}]
+\begin{table}[b]
+\caption{A Single-Column Table}
+\centerline{\begin{tabular}[t]{|l|c|r|}
+ \hline
+ An&example&of\\\hline
+ single&column&table\\\hline
+ \end{tabular}}
+\end{table}
+\subsection{Figures and Tables}
+As shown in this page, double-column
+figures\slash tables (or those spanned
+multiple columns if you have three or more
+columns) may be placed by \|figure*| and
+\end{Verbatim}
+{\ttfamily \|table*| environments as usual\footnote{Another example
+of footnote.}. ...}
+
+\subsection{\ttfamily Footnotes and Marginal Notes}
+\begin{Verbatim}
+Footnotes are also put at the bottom of the
+column in which \|\footnote| commands and
+their references (like this\footnote{%
+An example of footnote.}) reside, as shown
+in page~2 and this page. Marginal notes
+behave similarly like what you are seeing
+in the left margin of this
+sentense\marginpar{\raggedright An example
+of marginal note.} and the right marginal
+\end{Verbatim}
+\|note in this page\footnote{...}. ...|%
+\marginpar{\raggedright\ttfamily
+Another example of marginal note.}
+
+\begin{figure}[h]%{
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\\\
+ \ttfamily a figure with [h] option\\
+ \ttfamily to fill space\\
+ \\\\\hline
+ \end{tabular}}
+\caption{\ttfamily
+A Figure with [h] Option}
+\end{figure}%}
+
+\begin{figure}[b]%{
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\
+ \ttfamily a figure with [b] option\\
+ \ttfamily to fill space\\
+ \\\hline
+ \end{tabular}}
+\caption{\ttfamily
+A Figure with [b] Option}
+\end{figure}%}
+
+\begin{figure}[p]%{
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\\\\\\\
+ \ttfamily a figure with [p] option\\
+ \ttfamily to fill space
+ \\\\\\\\\hline
+ \end{tabular}}
+\caption{\ttfamily
+A Figure with [p] Option}
+\end{figure}%}
+
+\begin{figure}[p]%{
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\\\\\\\
+ \ttfamily another figure with [p] option\\
+ \ttfamily to fill space
+ \\\\\\\\\hline
+ \end{tabular}}
+\caption{\ttfamily
+Another Figure with [p] Option}
+\end{figure}%}
+
+\begin{figure}[p]%{
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\\\\\\\
+ \ttfamily yet another a figure with [p]\\
+ \ttfamily option to fill space
+ \\\\\\\\\hline
+ \end{tabular}}
+\caption{\ttfamily
+Yet Another Figure with [p] Option}
+\end{figure}%}
+
+\subsection{\ttfamily Local and Global Counters}
+\begin{Verbatim}
+You probably found that the numbering of
+figures and tables is \emph{global} while
+that of footnotes are \emph{local}. ...
+\end{leftcolumn*}
+\end{Verbatim}
+\textit{source}.
+
+\begin{figure}[t]%{
+\centerline{\begin{tabular}[b]{|c|}\hline
+ \hbox to.9\columnwidth{}\\\\\\\\
+ \ttfamily another figure with [t] option\\
+ \ttfamily to fill space
+ \\\\\\\\\hline
+ \end{tabular}}
+\caption{\ttfamily
+Another Figure with [t] Option}
+\end{figure}%}
+\end{rightcolumn}
+\end{paracol}
+
+
+
+\section{Closing \texttt{paracol} Environment and Page Flushing}
+The final example shown here is this single-column text which the author put
+after \|paracol| environment is closed. As you are seeing, \|paracol|
+environment can be finished at any vertical position in a page and can be
+followed by ordinary single column texts.
+
+\begin{paracol}{2}
+\begin{leftcolumn}
+The environment may also be restarted anywhere you like as shown here.
+
+The last issue is to flush a page. The ordinary \|\newpage| command works
+as you expect. If you say \|\newpage| in the left column in a page, the
+contents following it will appear in the left column in the next page. Note
+that this does not affects the layout of the right column.
+
+To flush all columns in a page, a command \|\flush|\AB\|page| is available.
+This command in $i$-th column is almost equivalent to;
+\begin{itemize}\item[]%{
+\|\switchcolumn[|$i$\|]*[\newpage]|
+\end{itemize}%}
+but more robust\footnote{%
+%
+For example \texttt{\string\switchcolumn*} may flush a page for the
+synchronization and thus \texttt{\string\newpage} may leave an empty page.}.
+%
+The ordinary page breaking command \|\clearpage| may also be used to flush
+all columns and to start a fresh page, but it has a side effect to put all
+figures and tables which are not yet output.
+\end{leftcolumn}
+
+\begin{rightcolumn}
+\begin{Verbatim}
+\begin{leftcolumn}
+The environment may also be restarted
+anywhere you like as shown here. ...
+\end{leftcolumn}
+\end{Verbatim}
+\textit{source}
+\end{rightcolumn}
+
+\begin{leftcolumn}
+Now the aurthor will do \|\flushpage| shortly to start a real binlingual
+example from the next page. O.K., now!!\flushpage
+\end{leftcolumn}
+
+
+
+\newenvironment{Gverse}{\begin{leftcolumn*}%[\centerline{\hrulefill}]
+ \begin{myverse}}%
+ {\end{myverse}\end{leftcolumn*}}
+\newenvironment{Everse}{\begin{rightcolumn}\begin{myverse}}%
+ {\end{myverse}\end{rightcolumn}}
+\makeatletter
+\newenvironment{myverse}{\leftmargini0pt\partopsep0pt\verse}{\endverse}
+
+\begin{leftcolumn*}[%
+\centerline{\Large An Die Freude/To Joy}\smallskip
+\centerline{\large Friedrich Schiller}\smallskip
+The following is the libretto of the fourth movement of Beethoven's Ninth
+Symphony, his adaptation of Schiller's ode ``An Die Freude'' (or ``To Joy'' in
+English). Beethoven's additions and revisions are indicated in italics.]
+\end{leftcolumn*}
+\begin{Gverse}
+\itshape O Freunde, nicht diese T\"one! \\
+Sondern la{\ss}t uns angenehmere anstimmen und freu\-denvollere%
+\footnote{If I had been a good student in my German class, this footnote
+would say ``This part was added by Beethoven.'' in German.}.
+\end{Gverse}
+\begin{Everse}
+\itshape Oh friends, no more of these sad tones!\\
+Let us rather raise our voices together\\
+In more pleasant and joyful tones%
+\footnote{This part was added by Beethoven.}.
+\end{Everse}
+\begin{Gverse}
+Freude!\\
+Freude, sch\"oner G\"otterfunken
+Tochter aus Elysium,\\
+Wir betreten feuertrunken,
+Himmlische, dein Heiligtum!\\
+Deine Zauber binden wieder,
+{\itshape Was die Mode streng geteilt;\\
+Alle Menschen werden Br\"uder\footnote{%
+Original: Was der Mode Schwert geteilt;\\
+Bettler werden F\"urstenbr\"uder,},}
+Wo dein sanfter Fl\"u\-gel weilt
+\end{Gverse}
+\begin{Everse}
+Joy! \\
+Joy, thou shining spark of God,\\
+Daughter of Elysium,\\
+With fiery rapture, goddess,\\
+We approach thy shrine.\\
+Your magic reunites\\
+{\itshape That which stern custom has parted;\\
+All humans will become brothere\footnote{%
+original:
+What custom's sword has parted;\\
+Beggars become princes' brothers}}\\
+Under your protective wing.
+\end{Everse}
+\begin{Gverse}
+Wem der gro{\ss}e Wurf gelungen,
+eines Freundes Freund zu sein;\\
+Wer ein holdes Weib errungen,
+mische seinen Jubel ein!\\
+Ja, wer auch nur eine Seele
+sein nennt auf dem Erdenrund!\\
+Und wer's nie gekonnt, der stehle
+weinend sich aus diesem Bund!
+\end{Gverse}
+\begin{Everse}
+Let the man who has had the fortune\\
+To be a helper to his friend,\\
+And the man who has won a noble woman,\\
+Join in our chorus of jubilation!\\
+Yes, even if he holds but one soul\\
+As his own in all the world!\\
+But let the man who knows nothing of this\\
+Steal away alone and in sorrow.
+\end{Everse}
+%\flushpage
+\begin{Gverse}
+Freude trinken alle Wesen
+an den Br\"usten der Natur;\\
+Alle Guten, all B\"osen
+folgen ihrer Rosenspur.\\
+K\"usse gab sie uns und Reben,
+einen Freund, gepr\"uft im Tod;\\
+Wollust ward dem Wurm gegeben,
+und der Cherub steht vor Gott.
+\end{Gverse}
+\begin{Everse}
+All the world's creatures drink\\
+From the breasts of nature;\\
+Both the good and the evil\\
+Follow her trail of roses.\\
+She gave us kisses and wine\\
+And a friend loyal unto death;\\
+She gave the joy of life to the lowliest,\\
+And to the angels who dwell with God.
+\end{Everse}
+\begin{Gverse}
+Froh, wie seine Sonnen fliegen
+durch des Himmels pr\"acht'gen Plan,\\
+Laufet, Br\"uder, eure Bahn,
+freudig, wie ein Held zum Siegen.
+\end{Gverse}
+\begin{Everse}
+Joyous, as his suns speed\\
+Through the glorious order of Heaven,\\
+Hasten, brothers, on your way,\\
+Joyful as a hero to victory.
+\end{Everse}
+\begin{Gverse}
+Seid umschlungen, Millionen!
+Diesen Ku{\ss} der ganzen Welt!\\
+Br\"uder, \"uber'm Sternenzelt
+mu{\ss} ein lieber Vater woh\-nen.
+\end{Gverse}
+\begin{Everse}
+Be embraced, all ye millions!\\
+With a kiss for all the world!\\
+Brothers, beyond the stars\\
+Surely dwells a loving Father.
+\end{Everse}
+\begin{Gverse}
+Ihr st\"urzt nieder, Millionen?
+Ahnest du den Sch\"opfer, Welt?\\
+Such'ihn \"uberm Sternenzelt!
+\"Uber Sternen mu{\ss} er wohnen.
+\end{Gverse}
+\begin{Everse}
+Do you kneel before him, oh millions?\\
+Do you sense the Creator's presence?\\
+Seek him beyond the stars!\\
+He must dwell beyond the stars.
+\end{Everse}
+\end{paracol}
+
+
+
+\section*{Acknowledgements}
+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.
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/paracol/paracol.sty b/Master/texmf-dist/tex/latex/paracol/paracol.sty
new file mode 100644
index 00000000000..3239839b8ba
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/paracol/paracol.sty
@@ -0,0 +1,795 @@
+% Style file `paracol
+% Copyright (C) 2005-2011
+% Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
+% (Kyoto University)
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{paracol}[2011/09/16 v0.91 ]
+
+\newcount\pcol@currcol
+\newcount\pcol@nextcol
+\newcount\pcol@ncol
+\newcount\pcol@page
+\newcount\pcol@maxpage
+\newcount\pcol@basepage
+\newif\ifpcol@textonly
+\newif\ifpcol@sync
+\newif\ifpcol@clear
+\newif\ifpcol@stopoutput
+\newdimen\pcol@prevdepth
+\newdimen\pcol@colht
+\newskip\pcol@topskip
+
+\def\pcol@output{\let\par\@@par
+ \ifnum\outputpenalty<-\@M
+ \pcol@specialoutput
+ \else
+ \@makecol
+ \pcol@opcol
+ \pcol@startcolumn
+ \@whilesw\if@fcolmade\fi{\pcol@opcol \pcol@startcolumn}%
+ \fi
+ \ifnum\outputpenalty>-\@Miv
+ \ifdim\@colroom<1.5\baselineskip
+ \ifdim\@colroom<\textheight
+ \@latex@warning@no@line{Text page \thepage\space
+ contains only floats}%
+ \@emptycol
+ \else
+ \global\vsize\@colroom
+ \fi
+ \else
+ \global\vsize\@colroom
+ \fi
+ \else
+ \global\vsize\maxdimen
+ \fi}
+
+
+
+\def\pcol@ovf{%
+ \PackageError{paracol}{Too many unprocessed columns/floats}\@ehb}
+\def\pcol@opcol{%
+ \@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}\pcol@ovf
+ \expandafter\@cons\csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
+ \ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
+ \pcol@nextpage
+ \pcol@checkshipped
+ \if@tempswa \pcol@outputpage\z@ \fi
+ \global\@colht\textheight
+ \ifnum\pcol@page>\pcol@maxpage \pcol@startpage
+ \else \pcol@getcurrpage
+ \fi
+ \pcol@floatplacement}
+
+\def\pcol@checkshipped{\@tempswatrue
+ \@tempcnta\z@ \@whilenum\@tempcnta<\pcol@ncol\do{%
+ \expandafter\ifx\csname pcol@shipped\number\@tempcnta\endcsname\@empty
+ \@tempswafalse \fi
+ \advance\@tempcnta\@ne}}
+
+\def\pcol@getcurrpinfo#1{%
+ \edef#1{\expandafter\@cdr\pcol@currpage\@nil}%
+ \pcol@getpinfo#1}
+
+\def\pcol@setpageno{\begingroup
+ \@tempcnta\pcol@page \advance\@tempcnta-\pcol@basepage
+ \edef\reserved@a{\pcol@pages\pcol@currpage}%
+ \global\let\pcol@pages\@empty \global\let\pcol@currpage\@empty
+ \let\@elt\pcol@setpnoelt \reserved@a
+ \endgroup}
+\def\pcol@setpnoelt#1{%
+ {\let\@elt\relax \xdef\pcol@pages{\pcol@pages\pcol@currpage}}%
+ \pcol@textonlytrue
+ \ifnum#1<\z@ \gdef\pcol@currpage{\@elt{#1}}%
+ \else\ifnum#1>\@cclv \gdef\pcol@currpage{\@elt{#1}}%
+ \else \gdef\pcol@currpage{\@elt#1}\pcol@textonlyfalse
+ \fi\fi
+ \ifnum\@tempcnta>\z@\else
+ \ifpcol@textonly \pcol@settextpage
+ \else \global\count#1\c@page
+ \fi
+ \advance\c@page\@ne
+ \fi
+ \advance\@tempcnta\m@ne}
+\def\pcol@nextpage{\begingroup
+ \@tempcnta\pcol@page \advance\@tempcnta-\pcol@basepage
+ \@tempswatrue
+ \let\@elt\pcol@nextpelt \pcol@pages\pcol@currpage
+ \global\advance\pcol@page\@ne
+ \endgroup}
+\def\pcol@nextpelt#1{%
+ \ifnum\@tempcnta<\z@
+ \ifnum#1<\z@ \@tempswafalse
+ \else\ifnum#1>\@cclv \@tempswafalse
+ \else\ifdim\dimen#1<\z@
+ \if@tempswa \global\advance\pcol@page\@ne \fi
+ \else \@tempswafalse
+ \fi\fi\fi
+ \fi
+ \advance\@tempcnta\m@ne}
+\def\pcol@getcurrpage{\begingroup
+ \@tempcnta\pcol@page \advance\@tempcnta-\pcol@basepage
+ \let\@elt\pcol@getpelt \pcol@pages\pcol@currpage
+ \endgroup}
+\def\pcol@getpelt#1{%
+ \ifnum\@tempcnta=\z@
+ \pcol@getpinfo{#1}{\global\c@page}{\global\@colht}{\global\topskip}\fi
+ \advance\@tempcnta\m@ne}
+
+\def\pcol@getpinfo#1#2#3#4{\count@#1\relax \pcol@textonlytrue
+ \ifnum\count@>\@cclv
+ \advance\count@-\@cclvi #2\count@ #3\textheight #4\pcol@topskip
+ \else\ifnum\count@<\z@
+ #2\count@ #3\textheight #4\pcol@topskip
+ \else #2\count\count@ #3\dimen\count@ #4\skip\count@ \pcol@textonlyfalse
+ \fi\fi}
+\def\pcol@settextpage{\begingroup
+ \@tempcnta\c@page
+ \ifnum\@tempcnta<\z@\else \advance\@tempcnta\@cclvi \fi
+ \let\@elt\relax \xdef\pcol@currpage{\@elt{\number\@tempcnta}}
+ \endgroup}
+
+\def\pcol@startpage{%
+ \global\pcol@maxpage\pcol@page
+ \ifx\pcol@currpage\@empty\else
+ \pcol@getcurrpinfo\@currbox{\global\c@page}\@tempdima\@tempskipa
+ \stepcounter{page}%
+ \fi
+ \global\@colht\textheight
+ \global\topskip\pcol@topskip
+ \xdef\pcol@pages{\pcol@pages\pcol@currpage}%
+ \@dblfloatplacement
+ \@tryfcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade\fi{%
+ \@next\@currbox\@freelist{%
+ \global\setbox\@currbox\box\@outputbox}\pcol@ovf
+ \global\count\@currbox\c@page
+ \global\dimen\@currbox-\maxdimen
+ \global\skip\@currbox\pcol@topskip
+ \@cons\pcol@pages\@currbox
+ \stepcounter{page}%
+ \global\advance\pcol@page\@ne \global\pcol@maxpage\pcol@page
+ \@tryfcolumn\@dbldeferlist}%
+ \begingroup
+ \let\reserved@b\@dbldeferlist
+ \global\let\@dbldeferlist\@empty
+ \let\@elt\@sdblcolelt
+ \reserved@b
+ \endgroup
+ \ifx\@dbltoplist\@empty
+ \pcol@settextpage
+ \else
+ \setbox\@tempboxa\vbox{}%
+ \begingroup
+ \let\@elt\@comdblflelt
+ \@dbltoplist
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@dbltoplist}%
+ \global\let\@dbltoplist\@empty
+ \@next\@currbox\@freelist{%
+ \global\setbox\@currbox\vbox{%
+ \unvbox\@tempboxa \vskip-\dblfloatsep \dblfigrule
+ \vskip\dbltextfloatsep}}%
+ \pcol@ovf
+ \global\count\@currbox\c@page
+ \global\dimen\@currbox\@colht
+ \global\skip\@currbox\pcol@topskip
+ \xdef\pcol@currpage{\@elt\@currbox}%
+ \endgroup
+ \fi
+}
+
+
+\def\pcol@outputpage#1{\begingroup
+ \def\@elt{\pcol@outputelt#1}\@tempswatrue \pcol@stopoutputfalse
+ \let\reserved@b\pcol@pages \gdef\pcol@pages{}%
+ \reserved@b
+ \endgroup}
+\def\pcol@outputelt#1#2{%
+ \setbox\@outputbox\box\voidb@x
+ \def\@currbox{#2}%
+ \pcol@getpinfo\@currbox\c@page\@tempdima\@tempskipa
+ \ifdim\@tempdima<\z@
+ \ifpcol@stopoutput
+ \@cons\pcol@pages\@currbox
+ \else
+ \setbox\@outputbox\box\@currbox
+ \@cons\@freelist\@currbox
+ \fi
+ \else\if@tempswa
+ \ifnum#1=\z@ \@tempswafalse \fi
+ \setbox\@outputbox\vbox to\textheight{%
+ \ifpcol@textonly\else
+ \@cons\@freelist\@currbox
+ \unvbox\@currbox
+ \fi
+ \hb@xt@\textwidth{%
+ \let\pcol@hfil\relax
+ \@tempcnta\z@ \@whilenum\@tempcnta<\pcol@ncol\do{%
+ \expandafter\@next\expandafter\@currbox
+ \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}%
+ \let\pcol@hfil\hfil
+ \advance\@tempcnta\@ne}}}%
+ \else
+ \pcol@stopoutputtrue
+ \ifpcol@textonly
+ \@cons\pcol@pages{{\@currbox}}
+ \else
+ \@cons\pcol@pages\@currbox
+ \fi
+ \fi\fi
+ \ifvoid\@outputbox\else
+ \@outputpage \global\advance\pcol@basepage\@ne
+ \fi}
+
+\def\pcol@startcolumn{%
+ \global\@colroom\@colht
+ \@tryfcolumn\@deferlist
+ \if@fcolmade\else \pcol@trynextcolumn \fi
+}
+\def\pcol@trynextcolumn{\begingroup
+ \let\reserved@b\@deferlist
+ \global\let\@deferlist\@empty
+ \let\@elt\@scolelt
+ \reserved@b
+ \endgroup}
+
+
+
+\let\pcol@latex@specialoutput\@specialoutput
+\def\pcol@op@start{-10010}
+\def\pcol@op@switch{-10011}
+\def\pcol@op@flush{-10012}
+\def\pcol@op@clear{-10013}
+\def\pcol@op@end{-10014}
+\def\pcol@specialoutput{%
+ \ifnum\outputpenalty=\pcol@op@start\relax
+ \let\reserved@a\pcol@output@start
+ \else\ifnum\outputpenalty=\pcol@op@switch\relax
+ \let\reserved@a\pcol@output@switch
+ \else\ifnum\outputpenalty=\pcol@op@flush\relax
+ \let\reserved@a\pcol@output@flush
+ \else\ifnum\outputpenalty=\pcol@op@clear\relax
+ \let\reserved@a\pcol@output@clear
+ \else\ifnum\outputpenalty=\pcol@op@end\relax
+ \let\reserved@a\pcol@output@end
+ \else \let\reserved@a\pcol@latex@specialoutput
+ \fi\fi\fi\fi\fi
+ \ifx\reserved@a\pcol@latex@specialoutput\else
+ \global\setbox\@holdpg\vbox{\unvbox\@holdpg \unvbox\@cclv
+ \setbox\@tempboxa\lastbox \unskip}%
+ \outputpenalty-\@M
+ \fi
+ \reserved@a}
+
+\def\pcol@output@start{%
+ \pcol@makenormalcol
+ \global\advance\@colht-\ht\@outputbox
+ \global\advance\@colht-\dp\@outputbox
+ \global\@colroom\@colht
+ \@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}\pcol@ovf
+ \global\count\@currbox\c@page \global\dimen\@currbox\@colht
+ \@tempdima\dp\@currbox \@tempskipa\z@
+ \ifdim\ht\@currbox=\z@ \ifdim\dp\@currbox=\z@
+ \@tempskipa\topskip
+ \fi\fi
+ \global\skip\@currbox\@tempskipa \global\topskip\@tempskipa
+ \xdef\pcol@currpage{\@elt\@currbox}\global\let\pcol@pages\@empty
+ \global\pcol@page\z@ \global\pcol@maxpage\z@ \global\pcol@basepage\z@
+ \global\let\@dbldeferlist\@deferlist
+ \global\let\@deferlist\@empty
+ \pcol@floatplacement
+% may fix begin
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+ \ifdim\topskip=\z@ \hrule\@height\z@\@width\z@
+% \kern-\@tempdima
+ \fi}}
+% may fix end
+ \pcol@ovf
+ \pcol@setcurrcolnf
+ \global\count\@currbox\z@
+ \global\dimen\@currbox\@colroom
+ \advance\pcol@currcol\@ne}%
+ \global\pcol@currcol\z@
+ \pcol@getcurrcol
+ \@cons\@freelist\@currbox
+ \unvbox\@currbox}
+
+\def\pcol@makenormalcol{%
+ \ifvoid\footins \setbox\@outputbox\box\@holdpg
+ \else
+ \setbox\@outputbox\vbox{
+ \boxmaxdepth\@maxdepth
+ \unvbox\@holdpg
+ \vskip\skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox\footins
+ \color@endgroup}%
+ \fi
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global\let\@midlist\@empty
+ \@combinefloats}
+
+\def\pcol@floatplacement{%
+ \global\@mparbottom\z@ \global\@textfloatsheight\z@
+ \@floatplacement}
+
+
+
+\def\pcol@output@switch{%
+ \@next\@currbox\@freelist{\global\setbox\@currbox\box\@holdpg}\pcol@ovf
+ \ifvoid\footins
+ \def\pcol@currfoot{\voidb@x}%
+ \else
+ \@next\pcol@currfoot\@freelist{%
+ \global\setbox\pcol@currfoot\box\footins
+ \global\count\pcol@currfoot\count\footins
+ \global\dimen\pcol@currfoot\dimen\footins
+ \global\skip\pcol@currfoot\skip\footins}\pcol@ovf
+ \fi
+ \ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
+ \pcol@setcurrcol
+ \global\count\@currbox\pcol@page
+ \global\dimen\@currbox\@colroom
+ \@tempswafalse
+ \ifpcol@sync
+ \@tempswatrue
+ \if@nobreak
+ \@temptokena\everypar
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol \@nobreaktrue
+ \everypar\@temptokena
+ \pcol@setcurrcol
+ \advance\pcol@currcol\@ne}%
+ \fi\fi
+ \ifpcol@clear \@tempswatrue \fi
+ \if@tempswa \pcol@sync \fi
+ \ifpcol@clear\else \pcol@restartcolumn \fi}
+
+\def\pcol@restartcolumn{%
+ \global\pcol@currcol\pcol@nextcol
+ \pcol@getcurrcol
+ \global\pcol@page\count\@currbox
+ \global\@colroom\dimen\@currbox
+ \@cons\@freelist\@currbox
+ \pcol@getcurrpage
+ \ifvoid\pcol@currfoot\else
+ \insert\footins{\unvbox\pcol@currfoot}\@cons\@freelist\pcol@currfoot
+ \fi
+ \unvbox\@currbox
+ \if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi}
+
+\def\pcol@getcurrcol{%
+ \expandafter\expandafter\expandafter\pcol@igetcurrcol
+ \csname pcol@col\number\pcol@currcol\endcsname}
+\def\pcol@igetcurrcol#1#2#3#4#5#6#7#8{%
+ \def\@currbox{#1}\def\pcol@currfoot{#2}\global\pcol@prevdepth#3sp\relax
+ \gdef\@toplist{#4}\gdef\@midlist{#5}\gdef\@botlist{#6}\gdef\@deferlist{#7}%
+ \pcol@iigetcurrcol#8}
+\def\pcol@iigetcurrcol#1#2#3#4#5#6#7#8#9{%
+ \global\@textfloatsheight#1sp\relax \global\@mparbottom#2sp\relax
+ \global\@topnum#3\relax \global\@toproom#4sp\relax
+ \global\@botnum#5\relax \global\@botroom#6sp\relax
+ \global\@colnum#7\relax
+ \global\@afterindentfalse \@nobreaktrue
+ \ifcase#8
+ \@nobreakfalse \or
+ \global\@afterindenttrue \else
+ \relax
+ \fi
+ \global\everypar{#9}}
+\def\pcol@setcurrcol{{\let\@elt\relax
+ \@tempcnta\if@nobreak\if@afterindent\@ne\else\tw@\fi\else\z@\fi
+ \expandafter\xdef\csname pcol@col\number\pcol@currcol\endcsname{%
+ {\@currbox}{\pcol@currfoot}{\number\pcol@prevdepth}%
+ {\@toplist}{\@midlist}{\@botlist}{\@deferlist}%
+ {{\number\@textfloatsheight}{\number\@mparbottom}%
+ {\number\@topnum}{\number\@toproom}{\number\@botnum}{\number\@botroom}%
+ {\number\@colnum}{\number\@tempcnta}{\the\everypar}}}}}
+\def\pcol@setcurrcolnf{\def\pcol@currfoot{\voidb@x}\pcol@setcurrcol}
+\def\pcol@getcurrfoot{%
+ \ifvoid\pcol@currfoot \global\setbox\footins\box\voidb@x
+ \else
+ \global\setbox\footins\box\pcol@currfoot
+ \global\count\footins\count\pcol@currfoot
+ \global\dimen\footins\dimen\pcol@currfoot
+ \global\skip\footins\skip\pcol@currfoot
+ \fi}
+
+
+
+\def\pcol@sync{%
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do\pcol@flushcolumn
+ \pcol@outputpage\@ne
+ \pcol@getcurrpinfo\@currbox{\global\c@page}{\global\@colht}{\global\topskip}%
+ \@tempdima-\maxdimen \@tempdimb-\maxdimen \pcol@colht-\maxdimen
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do\pcol@measurecolumn
+ \ifdim\@tempdima<\z@\else
+ \advance\@tempdimb\@tempdima
+ \@tempswafalse
+ \ifdim\@tempdimb<\@colht \ifpcol@clear\else
+ \@tempswatrue
+ \fi\fi
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do\pcol@synccolumn
+ \fi
+ \global\pcol@syncfalse}
+
+\def\pcol@flushcolumn{%
+ \pcol@getcurrcol
+ \ifnum\count\@currbox<\pcol@maxpage
+ \pcol@page\count\@currbox
+ \setbox\@cclv\box\@currbox
+ \pcol@getcurrfoot
+ \ifvoid\pcol@currfoot\else \@cons\@freelist\pcol@currfoot \fi
+ \pcol@getcurrpage
+ \@makecol
+ \global\setbox\@currbox\box\@outputbox
+ \expandafter\@cons\csname pcol@shipped\number\pcol@currcol\endcsname
+ \@currbox
+ \advance\pcol@page\@ne
+ \ifx\@deferlist\@empty\else
+ \@whilenum\pcol@page<\pcol@maxpage\do{%
+ \pcol@getcurrpage
+ \@makefcolumn\@deferlist
+ \if@fcolmade
+ \@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
+ \pcol@ovf
+ \expandafter\@cons
+ \csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
+ \fi
+ \advance\pcol@page\@ne}%
+ \fi
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{}}\pcol@ovf
+ \pcol@floatplacement \global\@colroom\@colht
+ \ifx\@deferlist\@empty\else
+ \pcol@getcurrpage \global\@colroom\@colht
+ \pcol@trynextcolumn
+ \fi
+ \pcol@setcurrcolnf
+ \global\count\@currbox\pcol@page
+ \global\dimen\@currbox\@colroom
+ \fi %\ifnum\count\@currbox<\pcol@maxpage
+ \advance\pcol@currcol\@ne}
+
+\def\pcol@magicpenalty{12345}
+\def\pcol@measurecolumn{%
+ \pcol@getcurrcol
+ \@tempswatrue
+ \setbox\@tempboxa\vbox{\penalty\pcol@magicpenalty
+ \unvcopy\@currbox \xdef\@gtempa{\number\lastpenalty}}%
+ \ifnum\@gtempa=\pcol@magicpenalty\relax \ifvoid\pcol@currfoot
+ \ifx\@toplist\@empty \ifx\@botlist\@empty
+ \@tempswafalse \skip\@currbox\z@ \pcol@prevdepth\z@ \pcol@setcurrcol
+ \fi\fi\fi\fi
+ \if@tempswa
+ \dimen@ii\ht\@currbox \advance\dimen@ii\dp\@currbox
+% must fix begin
+ \ifnum\@gtempa=\pcol@magicpenalty\relax
+ \global\setbox\@currbox\vbox{\hrule\@height\z@ \kern-\topskip}
+ \pcol@prevdepth\z@ \pcol@setcurrcol
+ \fi
+% must fix end
+ \dimen@\z@ \pcol@addflhd\@toplist\topfigrule
+ \skip\@currbox\dimen@ \advance\dimen@ii\dimen@
+ \ifdim\dimen@ii>\@tempdima
+ \@tempdima\dimen@ii \@tempdimc\pcol@prevdepth \fi
+ \ifvoid\pcol@currfoot \dimen@\z@
+ \else
+ \dimen@\ht\pcol@currfoot \advance\dimen@\dp\pcol@currfoot
+ \advance\dimen@\skip\pcol@currfoot
+ \fi
+ \pcol@addflhd\@botlist\botfigrule
+ \ifdim\dimen@>\@tempdimb \@tempdimb\dimen@ \fi
+ \advance\dimen@\dimen@ii
+ \ifdim\dimen@>\pcol@colht
+ \pcol@colht\dimen@
+ \@pagedp\pcol@prevdepth
+ \ifvoid\pcol@currfoot\else \@pagedp\dp\pcol@currfoot \fi
+ \ifx\@botlist\@empty\else \@pagedp\z@ \fi
+ \fi
+ \fi %\if@tempswa
+ \advance\pcol@currcol\@ne}
+\def\pcol@addflhd#1#2{\ifx#1\@empty\else
+ \let\@elt\pcol@hdflelt
+ #1\advance\dimen@-\floatsep \advance\dimen@\textfloatsep
+ \setbox\@tempboxa\vbox{#2}\advance\dimen@\ht\@tempboxa
+ \let\@elt\relax
+ \fi}
+\def\pcol@hdflelt#1{\advance\dimen@\ht#1\advance\dimen@\dp#1%
+ \advance\dimen@\floatsep}
+
+\def\pcol@synccolumn{%
+ \pcol@getcurrcol
+ \if@tempswa
+ \@tempdimb\@tempdima \advance\@tempdimb-\@tempdimc
+ \advance\@tempdimb\pcol@prevdepth \advance\@tempdimb-\skip\@currbox
+ \global\setbox\@currbox\vbox{\vbox to\@tempdimb{\unvbox\@currbox \vfil}}%
+ \else
+ \global\setbox\@currbox\vbox{\unvbox\@currbox \vfill \penalty-\@M}%
+ \fi
+ \global\@topnum\z@ \pcol@setcurrcol
+ \advance\pcol@currcol\@ne}
+
+
+
+\def\pcol@output@end{%
+ \pcol@makelastpage\pcol@colht
+ \@tempswafalse
+ \if@fcolmade
+ \setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox \vfil}%
+ \@outputpage %\c@page=OK
+ \pcol@flushfloats
+ \global\pcol@prevdepth\z@
+ \@tempswatrue
+ \else\ifdim\pcol@colht<\z@
+ \unvbox\@outputbox
+ \global\pcol@prevdepth\z@
+ \else
+ \topskip\z@ \box\@outputbox
+ \global\pcol@prevdepth\@pagedp %\c@page=OK
+ \fi\fi
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol \@cons\@freelist\@currbox
+ \advance\pcol@currcol\@ne}%
+ \global\@colht\textheight
+ \global\@colroom\textheight
+ \global\let\@deferlist\@dbldeferlist \gdef\@dbldeferlist{}%
+ \pcol@floatplacement
+ \if@tempswa \@startcolumn \fi}
+
+\def\pcol@output@flush{%
+ \pcol@makelastpage\@colht
+ \setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}%
+ \@outputpage %\c@page=OK
+ \global\@colht\textheight
+ \pcol@freshpage}
+
+\def\pcol@output@clear{%
+ \pcol@makelastpage\@colht
+ \setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}%
+ \@outputpage %\c@page=OK
+ \global\advance\pcol@page\@ne
+ \pcol@flushfloats %\c@page=OK
+ \global\@colht\textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade\fi{\@outputpage
+ \@makefcolumn\@dbldeferlist}%
+ \endgroup %\c@page=OK
+ \pcol@freshpage}
+
+\def\pcol@makelastpage#1{%
+ \pcol@cleartrue \pcol@output@switch \pcol@clearfalse
+ \pcol@getcurrpinfo\@currbox{\global\c@page}{\global\@colht}\@tempskipa
+ \global\@fcolmadefalse
+ \setbox\@outputbox\vbox{%
+ \ifpcol@textonly\else
+ \@cons\@freelist\@currbox
+ \unvbox\@currbox
+ \fi
+ \ifdim#1<\z@
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol
+ \ifx\@deferlist\@empty\else \global\@fcolmadetrue \fi
+ \advance\pcol@currcol\@ne}%
+ \else
+ \hb@xt@\textwidth{%
+ \let\pcol@hfil\relax \@colht#1\relax
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol
+ \ifx\@deferlist\@empty\else \global\@fcolmadetrue \fi
+ \ifvoid\pcol@currfoot\else \@cons\@freelist\pcol@currfoot \fi
+ \setbox\@cclv\box\@currbox
+ \pcol@getcurrfoot
+ \@makecol
+ \pcol@hfil \hb@xt@\columnwidth{\box\@outputbox\hss}%
+ \let\pcol@hfil\hfil
+ \pcol@setcurrcolnf
+ \advance\pcol@currcol\@ne}}
+ \fi}}
+
+\def\pcol@flushfloats{%
+ \@whilesw\if@fcolmade\fi{%
+ \setbox\@outputbox\vbox{\hb@xt@\textwidth{%
+ \let\pcol@hfil\relax
+ \@tempswafalse
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol
+ \@makefcolumn\@deferlist
+ \pcol@hfil \hb@xt@\columnwidth{\if@fcolmade \box\@outputbox \fi \hss}%
+ \ifx\@deferlist\@empty\else \@tempswatrue \fi
+ \let\pcol@hfil\hfil
+ \pcol@setcurrcolnf
+ \advance\pcol@currcol\@ne}%
+ \global\@fcolmadefalse
+ \if@tempswa \global\@fcolmadetrue \fi}}%
+ \@outputpage}}
+
+\def\pcol@freshpage{%
+ \global\pcol@page\z@ \global\pcol@maxpage\z@ \global\pcol@basepage\z@
+ \gdef\pcol@pages{}\gdef\pcol@currpage{}%
+ \pcol@startpage \pcol@colht\@colht
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol \pcol@page\z@ \@colroom\pcol@colht
+ \pcol@getcurrpage
+ \pcol@floatplacement
+ \pcol@startcolumn
+ \@whilesw\if@fcolmade\fi{\pcol@opcol \pcol@startcolumn}%
+ \global\setbox\@currbox\vbox{}%
+ \global\count\@currbox\pcol@page \global\dimen\@currbox\@colroom
+ \pcol@setcurrcolnf
+ \advance\pcol@currcol\@ne}%
+ \global\pcol@currcol\pcol@nextcol
+ \pcol@restartcolumn}
+
+
+
+\def\pcol@invokeoutput#1{%
+ \penalty-\@Miv \@tempdima\prevdepth \vbox{}%
+ \global\pcol@prevdepth\@tempdima \penalty#1\relax
+ \prevdepth\pcol@prevdepth}
+
+\def\paracol#1{\par
+ \global\pcol@ncol#1\relax
+ \global\columnwidth\textwidth
+ \@tempdima\columnsep \multiply\@tempdima\pcol@ncol
+ \advance\@tempdima-\columnsep
+ \global\advance\columnwidth-\@tempdima \global\divide\columnwidth\pcol@ncol
+ \global\hsize\columnwidth \global\linewidth\columnwidth
+ \global\@twocolumntrue \global\@firstcolumntrue \col@number\pcol@ncol
+ \global\let\pcol@counters\cl@@ckpt
+ \let\@elt\pcol@remctrelt \pcol@gcounters
+ \let\@elt\pcol@thectrelt \pcol@counters
+ \let\@elt\relax
+ \let\clearpage\pcol@clearpage \pcol@topskip\topskip
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \expandafter\gdef\csname pcol@shipped\number\pcol@currcol\endcsname{}%
+ \pcol@savecounters \advance\pcol@currcol\@ne}%
+ \output{\pcol@output}%
+ \pcol@invokeoutput\pcol@op@start
+ \pcol@nextcol\z@
+ \def\column{\pcol@defcolumn\nthcolumn{0}}
+ \@namedef{column*}{\pcol@defcolumn\@nameuse{nthcolumn*}{0}}
+ \@ifnextchar[%]
+ \pcol@mctext\relax}
+
+\def\pcol@gcounters{\@elt{page}}
+\def\pcol@remctrelt#1{%
+ \expandafter\let\expandafter\reserved@a\csname cl@#1\endcsname
+ \expandafter\let\csname pcol@cl@#1\endcsname\reserved@a
+ \expandafter\ifx\csname c@#1\endcsname\c@page\else
+ \@namedef{cl@#1}{\pcol@stepcounter{#1}}%
+ \fi
+ \def\reserved@a{#1}\let\reserved@b\pcol@counters
+ \global\let\pcol@counters\@empty
+ {\let\@elt\pcol@iremctrelt \reserved@b}}
+\def\pcol@iremctrelt#1{%
+ \def\reserved@b{#1}%
+ \ifx\reserved@a\reserved@b\else \@cons\pcol@counters{{#1}}\fi}
+\def\pcol@thectrelt#1{%
+ \expandafter\let\expandafter\reserved@a\csname the#1\endcsname
+ \expandafter\let\csname pcol@thectr@#1\endcsname\reserved@a
+ \expandafter\let\expandafter\reserved@a\csname pcol@thectr@#10\endcsname
+ \ifx\reserved@a\relax\else
+ \expandafter\let\csname the#1\endcsname\reserved@a
+ \fi}
+
+\def\pcol@mctext[#1]{%
+ \@tempcnta\pcol@nextcol\relax
+ \global\pcol@synctrue \pcol@nextcol\z@
+ \pcol@switchcol
+ \begingroup
+ \hsize\textwidth \col@number\@ne #1\par
+ \expandafter\global\expandafter\everypar\expandafter{\the\everypar}%
+ \endgroup
+ \pcol@nextcol\@tempcnta \global\pcol@synctrue \pcol@switchcol}
+
+\def\pcol@switchcol{%
+ \pcol@savecounters
+ \pcol@invokeoutput\pcol@op@switch
+ \ifnum\pcol@currcol=\z@ \global\@firstcolumntrue
+ \else \global\@firstcolumnfalse
+ \fi
+ \let\@elt\pcol@setctrelt
+ \csname pcol@counters\number\pcol@currcol\endcsname
+ \let\@elt\relax}
+
+\def\pcol@savecounters{\begingroup
+ \global\let\@gtempa\@empty
+ \let\@elt\pcol@savectrelt \pcol@counters
+ \let\@elt\relax
+ \expandafter\xdef\csname pcol@counters\number\pcol@currcol\endcsname{%
+ \@gtempa}%
+ \endgroup}
+\def\pcol@savectrelt#1{\@cons\@gtempa{{#1}{\number\csname c@#1\endcsname}}}
+
+\def\pcol@setctrelt#1#2{%
+ \setcounter{#1}{#2}%
+ \expandafter\ifx\csname pcol@thectr@#1\number\pcol@currcol\endcsname\relax
+ \expandafter\let\expandafter\reserved@a\csname pcol@thectr@#1\endcsname
+ \else
+ \expandafter\let\expandafter\reserved@a
+ \csname pcol@thectr@#1\number\pcol@currcol\endcsname
+ \fi
+ \expandafter\let\csname the#1\endcsname\reserved@a}
+
+\def\pcol@stepcounter#1{\begingroup
+ \let\@elt\@stpelt \csname pcol@cl@#1\endcsname
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \let\@elt\pcol@stpldelt \csname pcol@counters\number\pcol@currcol\endcsname
+ \let\@elt\pcol@stpclelt \csname pcol@cl@#1\endcsname
+ \pcol@savecounters
+ \advance\pcol@currcol\@ne}%
+ \endgroup}
+\def\pcol@stpldelt#1#2{\csname c@#1\endcsname#2\relax}
+\def\pcol@stpclelt#1{\csname c@#1\endcsname\z@}
+
+\def\definethecounter#1#2#3{\@namedef{pcol@thectr@#1#2}{#3}}
+\def\globalcounter#1{\@cons\pcol@gcounters{{#1}}}
+
+\def\endparacol{\par
+ \pcol@nextcol\z@ \pcol@switchcol
+ \pcol@invokeoutput\pcol@op@end
+ \global\columnwidth\textwidth
+ \global\hsize\columnwidth
+ \global\linewidth\columnwidth
+ \global\@twocolumnfalse
+ \global\topskip\pcol@topskip}
+
+\def\switchcolumn{\par
+ \@tempcnta\pcol@currcol \advance\@tempcnta\@ne
+ \ifnum\@tempcnta<\pcol@ncol\else \@tempcnta\z@ \fi
+ \@ifnextchar[%]
+ \pcol@switchcolumn{\pcol@switchcolumn[\@tempcnta]}}
+\def\pcol@switchcolumn[#1]{%
+ \pcol@nextcol#1\relax
+ \ifnum#1<\pcol@ncol\else
+ \PackageError{paracol}{%
+ Column number \number#1 must be less than\number\pcol@ncol}\@eha
+ \pcol@nextcol\z@
+ \fi
+ \@ifstar\pcol@iswitchcolumn\pcol@switchcol}
+\def\pcol@iswitchcolumn{%
+ \global\pcol@synctrue
+ \@ifnextchar[%]
+ \pcol@mctext\pcol@switchcol}
+
+\def\pcol@defcolumn{%
+ \gdef\column{\switchcolumn\relax}%
+ \global\@namedef{column*}{\switchcolumn*}}
+\def\nthcolumn#1{\switchcolumn[#1]\relax}
+\@namedef{nthcolumn*}#1{\switchcolumn[#1]*}
+\def\leftcolumn{\switchcolumn[0]\relax}
+\@namedef{leftcolumn*}{\switchcolumn[0]*}
+\def\rightcolumn{\switchcolumn[1]\relax}
+\@namedef{rightcolumn*}{\switchcolumn[1]*}
+
+\let\endcolumn\par
+\expandafter\let\csname endcolumn*\endcsname\par
+\let\endnthcolumn\par
+\expandafter\let\csname endnthcolumn*\endcsname\par
+\let\endleftcolumn\par
+\expandafter\let\csname endleftcolumn*\endcsname\par
+\let\endrightcolumn\par
+\expandafter\let\csname endrightcolumn*\endcsname\par
+
+\def\flushpage{\par
+ \pcol@nextcol\pcol@currcol
+ \pcol@invokeoutput\pcol@op@flush}
+\def\pcol@clearpage{\par
+ \pcol@nextcol\pcol@currcol
+ \pcol@invokeoutput\pcol@op@clear}
+
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 3a827906b74..4eef1a2e050 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -276,7 +276,8 @@ my @TLP_working = qw(
oubraces outline outliner overpic
pagecolor pagecont pagenote pagerange pageslts
paper papercdcase papermas papertex
- paralist parallel paratype paresse parrun parselines parskip passivetex
+ paracol paralist parallel paratype
+ paresse parrun parselines parskip passivetex
patch patchcmd patgen2-tutorial path pauldoc pawpict pax pbox pb-diagram
pdf14 pdf-forms-tutorial-de pdf-forms-tutorial-en
pdf-trans pdfcomment pdfcprot pdfcrop pdfjam pdfmarginpar
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 80bb0549d2e..c69e9bfa323 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -490,6 +490,7 @@ depend paper
depend papercdcase
depend papermas
depend papertex
+depend paracol
depend paralist
depend paresse
depend parselines
diff --git a/Master/tlpkg/tlpsrc/paracol.tlpsrc b/Master/tlpkg/tlpsrc/paracol.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/paracol.tlpsrc