summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/parallel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:01:45 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:01:45 +0000
commit8d8b257f2a160224cf8ccfa64175319660bf6cbf (patch)
tree99eeccd11e2b802f60fbc6e896fd14ba778aa25f /Master/texmf-dist/tex/latex/parallel
parentb94911fb2a53d34b93d7b608112a726f243ecff5 (diff)
parallel
git-svn-id: svn://tug.org/texlive/trunk@1170 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/parallel')
-rw-r--r--Master/texmf-dist/tex/latex/parallel/parallel.sty407
1 files changed, 407 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/parallel/parallel.sty b/Master/texmf-dist/tex/latex/parallel/parallel.sty
new file mode 100644
index 00000000000..4e8abf5450e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/parallel/parallel.sty
@@ -0,0 +1,407 @@
+%%
+%% This is file `parallel.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% parallel.dtx (with options: `package')
+%%
+%% This file is part of the 'parallel'-package
+%%
+%% Copyright (c) 1994-2003 Matthias Eckermann
+%%
+%% This program may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% This program consists of the files parallel.dtx, parallel.ins, readme
+%%
+ %%
+ %% $Id: parallel.dtx,v 1.11 2003/04/13 16:54:40 mge Exp $
+ %%
+ %% $Log: parallel.dtx,v $
+ %% Revision 1.11 2003/04/13 16:54:40 mge
+ %% cleanups
+ %%
+ %% Revision 1.10 2003/04/13 16:52:04 mge
+ %% Beta 4 fixed (not tagging:-)
+ %%
+ %% Revision 1.9 2003/04/13 16:47:07 mge
+ %% correct checksum
+ %%
+ %% Revision 1.8 2003/04/13 16:46:14 mge
+ %% cvs cleanups
+ %%
+ %% Revision 1.7 2003/04/13 16:36:22 mge
+ %% changed \fileversion
+ %%
+ %% Revision 1.6 2003/04/13 16:27:30 mge
+ %% added readme
+ %%
+ %% Revision 1.5 2003/04/13 16:17:18 mge
+ %% added minor changes (fmi)
+ %% License->LPPL (mge)
+ %%
+ %% Revision 1.4 2003/04/13 15:51:44 mge
+ %% minor changes (cosmetic)
+ %%
+ %% Revision 1.3 2000/04/01 08:44:40 mge
+ %% updated \fileversion \filedate
+ %%
+ %% Revision 1.2 2000/04/01 08:42:39 mge
+ %% initial checkin
+ %%
+ %% author(s) : Matthias Eckermann (mge), Berlin, Germany
+ %% - debugging : Bernd Raichle (br), Stuttgart, Germany
+ %% - contributions : Wonkoo Kim (wk), Pittsburgh, PA, USA
+ %% Frank Mittelbach (fmi) , Mainz, Germany
+ %% history : 2003-04-13 Minor corrections (fmi)
+ %% License->LPPL (mge)
+ %% 10.11.1997 (2.0 interim-public-beta) (mge)
+ %% 28.02.1997 (option 'verbose')
+ %% 01.10.1996 (better spacing) (br)
+ %% 29.09.1996 (smarter column support) (wk)
+ %% Sep.1996 (on pages, VLine, '.dtx') (mge)
+ %% 26.03.1995 (works within {list}s) (mge)
+ %% 15.02.1995 (first public release) (mge)
+ %% 19.10.1994 (initial tests) (mge)
+ %% email : mge@arcor.de (private), mge@suse.de (job)
+ %% description : provides a small tool to typeset in two columns
+ %% or on two pages parallel, e.g. if you want to set
+ %% two languages besides.
+ %% thanks : R.Braun, H.Kopka, J.Schrod
+ %%
+\def\fileversion{beta 4}
+\def\filedate{2003/04/13}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{parallel}[\filedate, setting two texts parallel (me)]
+\message{`parallel': setting two texts parallel, (\fileversion) \filedate.}
+\newdimen\ParallelLWidth
+\newdimen\ParallelRWidth
+\newdimen\ParallelTextWidth
+\newdimen\ParallelLeftMargin
+\newdimen\ParallelUserMidSkip
+\newdimen\ParallelMainMidSkip
+\newbox\ParallelLBox
+\newbox\ParallelRBox
+\newbox\ParallelBoxVar
+\newbox\ParallelLTok
+\newbox\ParallelRTok
+\newcount\ParallelBoolVar
+\newcount\ParallelBoolMid
+\newcount\ParallelWhichBox
+\newcount\ParallelMainMode
+\newcount\ParallelFNMode
+\newcount\ParallelLFNCounter
+\newcount\ParallelRFNCounter
+\newcount\ParallelMaxFN
+\newcount\ParallelFNNumMode
+\newcommand{\ParallelMessage}[1]{\relax}
+\DeclareOption{Verbose}{%
+ \renewcommand{\ParallelMessage}[1]{\message{#1}}
+ \message{Verbose}
+}
+\DeclareOption{OldStyleNums}{%
+ \ParallelFNNumMode=1\ParallelMessage{OldStyleNums}}
+\DeclareOption{RaiseNums}{%
+ \ParallelFNNumMode=2\ParallelMessage{RaiseNums}}
+\DeclareOption{ItalicNums}{%
+ \ParallelFNNumMode=3\ParallelMessage{ItalicNums}}
+\DeclareOption{RomanNums}{%
+ \ParallelFNNumMode=4\ParallelMessage{RomanNums}}
+\DeclareOption{SeparatedFootnotes}{%
+ \ParallelFNMode=1\ParallelMessage{SeparatedFootnotes}}
+\newcommand{\ParallelLFootnote}[1]{%
+ \global\advance\ParallelLFNCounter\@ne
+ \footnotemark[\number\ParallelLFNCounter]%
+ \expandafter\gdef%
+ \csname ParallelLFN\romannumeral\ParallelLFNCounter\endcsname{#1}}
+\newcommand{\ParallelRFootnote}[1]{%
+ \global\advance\ParallelRFNCounter\@ne
+ \footnotemark[\number\ParallelRFNCounter]%
+ \expandafter\gdef%
+ \csname ParallelRFN\romannumeral\ParallelRFNCounter\endcsname{#1}}
+\newenvironment{ParallelFNEnviron}{%
+ \footnotesize
+ \begin{list}{}{%
+ \leftmargin=4em \rightmargin=\z@
+ \topsep=\z@skip \itemsep=\z@skip
+ \labelwidth=3em \labelsep=1em%
+ \renewcommand{\makelabel}[1]{{\hfill\footnotesize ##1}}%
+ }%
+}{%
+ \end{list}%
+}
+\newcommand{\ParallelShowFNList}{%
+ % footnotes in left or right column, i.e. left+right>0?
+ \ParallelMaxFN=\ParallelLFNCounter
+ \advance\ParallelMaxFN \ParallelRFNCounter
+ \ifnum\ParallelMaxFN>\z@
+ \ParallelMessage{Parallel Footnotes (}%
+ \begin{ParallelFNEnviron}%
+ \ParallelMaxFN=\ParallelLFNCounter
+ \global\ParallelLFNCounter=\z@
+ \loop
+ \ifnum\ParallelLFNCounter<\ParallelMaxFN
+ \global\advance\ParallelLFNCounter \@ne
+ \item[\ifcase\ParallelFNNumMode \number\ParallelLFNCounter%
+ \or \oldstylenums{\the\ParallelLFNCounter}%
+ \or \raisebox{1ex}{\the\ParallelLFNCounter}%
+ \or \textit{\number\ParallelLFNCounter}%
+ \or \romannumeral\ParallelLFNCounter%
+ \else \number\ParallelLFNCounter \fi]%
+ \par
+ {\csname ParallelLFN\romannumeral\ParallelLFNCounter\endcsname}%
+ \par
+ \repeat
+ \end{ParallelFNEnviron}%
+ \ifnum\ParallelFNMode=\@ne
+ \begin{ParallelFNEnviron}%
+ \ParallelMaxFN=\ParallelRFNCounter
+ \global\ParallelRFNCounter=\z@
+ \loop
+ \ifnum\ParallelRFNCounter<\ParallelMaxFN
+ \global\advance\ParallelRFNCounter \@ne
+ \item[\ifcase\ParallelFNNumMode
+ \number\ParallelRFNCounter\ParallelDot
+ \or \oldstylenums{\the\ParallelRFNCounter}\ParallelDot
+ \or \raisebox{1ex}{\the\ParallelRFNCounter\ParallelDot}%
+ \or \textit{\number\ParallelRFNCounter\ParallelDot}%
+ \or \romannumeral\ParallelLFNCounter%
+ \else \number\ParallelRFNCounter\ParallelDot \fi]%
+ \par
+ {\csname ParallelRFN\romannumeral\ParallelRFNCounter\endcsname}%
+ \par
+ \repeat
+ \end{ParallelFNEnviron}%
+ \fi
+ \global\ParallelLFNCounter=\z@
+ \global\ParallelRFNCounter=\z@
+ \ParallelMessage{)}%
+ \else
+ \ParallelMessage{No Parallel Footnotes}%
+ \fi
+}
+\newcommand{\ParallelParOnePage}{%
+ \ifnum\ParallelBoolVar=\@ne
+ \par\begingroup
+ \leftmargin=\z@ \rightmargin=\z@
+ \parskip=\z@skip \parindent=\z@
+ \vbadness=10000
+ \vfuzz=3ex
+ \splittopskip=\z@skip
+ \loop%
+ \ifnum\ParallelBoolVar=\@ne%
+ \noindent
+ \hbox to\textwidth{%
+ \hskip\ParallelLeftMargin
+ \hbox to\ParallelTextWidth{%
+ \ifvoid\ParallelLBox
+ \hskip\ParallelLWidth
+ \else
+ \ParallelWhichBox=\z@
+ \vbox{\setbox\ParallelBoxVar
+ =\vsplit\ParallelLBox to\dp\strutbox%
+ \unvbox\ParallelBoxVar}%
+ \fi
+ \strut
+ \ifnum\ParallelBoolMid=\@ne
+ \hskip\ParallelMainMidSkip
+ \vrule
+ \else
+ \hss
+ \fi
+ \hss
+ \ifvoid\ParallelRBox
+ \hskip\ParallelRWidth
+ \else
+ \ParallelWhichBox=\@ne
+ \vbox{\setbox\ParallelBoxVar
+ =\vsplit\ParallelRBox to\dp\strutbox%
+ \unvbox\ParallelBoxVar}%
+ \fi}}%
+ \ifvoid\ParallelLBox \ifvoid\ParallelRBox
+ \global\ParallelBoolVar=\z@
+ \fi\fi%
+ \fi%
+ \ifnum\ParallelBoolVar=\@ne%
+ \penalty\interlinepenalty
+ \repeat
+ \par
+ \endgroup
+ \fi}
+\newcommand{\ParallelParTwoPages}{%
+ \ifnum\ParallelBoolVar=\@ne
+ \par\begingroup
+ \global\ParallelWhichBox=\@ne
+ \newpage
+ \vbadness=10000
+ \vfuzz=3ex
+ \splittopskip=\z@skip
+ \loop%
+ \ifnum\ParallelBoolVar=\@ne%
+ \ifnum\ParallelWhichBox=\@ne
+ \ifvoid\ParallelLBox \mbox{} \newpage
+ \else\global\ParallelWhichBox=\z@\fi
+ \else
+ \ifvoid\ParallelRBox \mbox{} \newpage
+ \else\global\ParallelWhichBox=\@ne\fi
+ \fi
+ \ifnum\ParallelWhichBox=\z@
+ \ifodd\thepage \mbox{} \newpage \fi
+ \hbox to\textwidth{%
+ \vbox{\vsplit\ParallelLBox to.98\textheight}}%
+ \else
+ \ifodd\thepage\relax\else \mbox{} \newpage \fi
+ \hbox to\textwidth{%
+ \vbox{\vsplit\ParallelRBox to.98\textheight}}%
+ \fi
+ \vspace*{\fill}\newpage
+ \fi
+ \ifvoid\ParallelLBox\ifvoid\ParallelRBox
+ \global\ParallelBoolVar=\z@
+ \fi\fi
+ \ifnum\ParallelBoolVar=\@ne
+ \repeat
+ \par
+ \endgroup
+ \fi}
+\newcommand{\ParallelAfterText}{%
+ \global\ParallelBoolVar=\@ne
+ \let\footnote=\ParallelOldFootnote\endgroup}
+\newcommand{\ParallelCheckOpenBrace}{%
+ \ifx\x\bgroup \else
+ \errmessage{Missing opening brace}%
+ \fi
+ \endgroup}
+\newcommand{\ParallelLText}{%
+ \everypar{}\@restorepar\begingroup
+ \hbadness=3000
+ \let\footnote=\ParallelLFootnote
+ \ParallelWhichBox=0
+ \global\setbox\ParallelLBox=\vbox\bgroup \hsize=\ParallelLWidth
+ \aftergroup\ParallelAfterText
+ \begingroup \afterassignment\ParallelCheckOpenBrace \let\x=}
+\newcommand{\ParallelRText}{%
+ \everypar{}\@restorepar\begingroup
+ \hbadness=3000
+ \ifnum\ParallelFNMode=\@ne
+ \let\footnote=\ParallelRFootnote
+ \else
+ \let\footnote=\ParallelLFootnote
+ \fi
+ \ParallelWhichBox=\@ne
+ \global\setbox\ParallelRBox=\vbox\bgroup \hsize=\ParallelRWidth
+ \aftergroup\ParallelAfterText
+ \begingroup \afterassignment\ParallelCheckOpenBrace \let\x=}
+\newcommand{\ParallelAtEnd}{}
+\newcommand{\ParallelPar}{} % Dummy
+\newcommand{\ParallelDot}{\ensuremath{\cdot}}
+\newenvironment{Parallel}[3][c]{%
+ \begingroup%
+ \ParallelTextWidth=\linewidth
+ \ParallelLeftMargin=\textwidth
+ \advance\ParallelLeftMargin by-\linewidth
+ \if #1p\relax
+ \ParallelMessage{ on Pages (}%
+ \ParallelMainMode=\z@
+ \renewcommand{\ParallelPar}{\ParallelParTwoPages}
+ \else
+ \if #1a\relax
+ \ParallelMessage{ autocomputed Pages (}%
+ \ParallelMainMode=\tw@
+ \renewcommand{\ParallelPar}{\ParallelParTwoPages}
+ \else
+ \tolerance=600 % sorry, but neccessary
+ \emergencystretch=.5em % dto.
+ \ParallelMainMode=\@ne
+ \renewcommand{\ParallelPar}{\ParallelParOnePage}
+ \if #1v\relax
+ \ParallelBoolMid=\@ne
+ \ParallelMessage{ in Columns, with VLine (}%
+ \else
+ \if #1c\relax\else
+ \errhelp{possible options:
+ 'p'age, 'c'olumn or columns with 'v'line ---
+ type <return> to proceed in column-mode}
+ \errmessage{bad option '#1' to environment 'Parallel'}
+ \fi
+ \ParallelMessage{ in Columns (}%
+ \fi\fi\fi
+ \def\ParallelArgL{#2} \def\ParallelArgR{#3}
+ \ifx\ParallelArgL\empty\ParallelLWidth=0in\else\ifx\ParallelArgL\space
+ \ParallelLWidth=0in\else\setlength\ParallelLWidth{#2}\fi\fi
+ \ifx\ParallelArgR\empty\ParallelRWidth=0in\else\ifx\ParallelArgR\space
+ \ParallelRWidth=0in\else\setlength\ParallelRWidth{#3}\fi\fi
+ \ifnum\ParallelMainMode=\@ne
+ \ifdim\ParallelLWidth>1em
+ \ifdim\ParallelRWidth>1em
+ \ParallelMainMidSkip=\linewidth
+ \advance\ParallelMainMidSkip by-\ParallelLWidth
+ \advance\ParallelMainMidSkip by-\ParallelRWidth
+ \advance\ParallelMainMidSkip by-.5pt
+ \advance\ParallelMainMidSkip by-\ParallelLeftMargin
+ \divide\ParallelMainMidSkip by 2
+ \else
+ \ParallelRWidth=\linewidth
+ \advance\ParallelRWidth by-\ParallelLWidth
+ \advance\ParallelRWidth by-2\ParallelUserMidSkip
+ \advance\ParallelRWidth by-\ParallelLeftMargin
+ \ParallelMainMidSkip=\ParallelUserMidSkip
+ \fi
+ \else
+ \ifdim\ParallelRWidth>1em
+ \ParallelLWidth=\linewidth
+ \advance\ParallelLWidth by-\ParallelRWidth
+ \advance\ParallelLWidth by-2\ParallelUserMidSkip
+ \advance\ParallelLWidth by-\ParallelLeftMargin
+ \ParallelMainMidSkip=\ParallelUserMidSkip
+ \else
+ \ParallelLWidth=.5\linewidth
+ \advance\ParallelLWidth by-\ParallelLeftMargin
+ \advance\ParallelLWidth by-\ParallelUserMidSkip
+ \ParallelRWidth=\ParallelLWidth
+ \ParallelMainMidSkip=\ParallelUserMidSkip
+ \fi
+ \fi
+ \else
+ \ifdim\ParallelLWidth>1em
+ \ifdim\ParallelRWidth>1em
+ \else
+ \ParallelRWidth=\linewidth
+ \advance\ParallelRWidth by-\ParallelLeftMargin
+ \fi
+ \else
+ \ifdim\ParallelRWidth>1em
+ \ParallelLWidth=\linewidth
+ \advance\ParallelLWidth by-\ParallelLeftMargin
+ \else
+ \ParallelLWidth=\linewidth
+ \advance\ParallelLWidth by-\ParallelLeftMargin
+ \ParallelRWidth=\linewidth
+ \advance\ParallelRWidth by-\ParallelLeftMargin
+ \fi
+ \fi
+ \fi
+ \global\ParallelLFNCounter=\z@
+ \global\ParallelRFNCounter=\z@
+ \let\ParallelOldFootnote=\footnote
+}{%
+ \ParallelPar%
+ \ParallelAtEnd%
+ \endgroup%
+ \ParallelShowFNList%
+ \let\footnote=\ParallelOldFootnote
+ \ParallelMessage{)}}
+\ParallelFNNumMode=\z@
+\ParallelFNMode=\z@
+\ParallelBoolMid=\z@
+\ParallelUserMidSkip=.5em
+\ProcessOptions
+\endinput
+%%
+%% End of file `parallel.sty'.