summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/sauerj/parcolumns.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:05:53 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:05:53 +0000
commit41f6accf239ea62e4f979c592c6728a616245d9f (patch)
tree82ddb0e632b70a669169fbeff04a0a83e9604fa5 /Master/texmf-dist/tex/latex/sauerj/parcolumns.sty
parentf5c952da6432767eac2421ed364423601fb9c844 (diff)
sauerj
git-svn-id: svn://tug.org/texlive/trunk@1291 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/sauerj/parcolumns.sty')
-rw-r--r--Master/texmf-dist/tex/latex/sauerj/parcolumns.sty201
1 files changed, 201 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/sauerj/parcolumns.sty b/Master/texmf-dist/tex/latex/sauerj/parcolumns.sty
new file mode 100644
index 00000000000..992daaa0afd
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/sauerj/parcolumns.sty
@@ -0,0 +1,201 @@
+%%
+%% This is file `parcolumns.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% parcolumns.dtx (with options: `package')
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{parcolumns}
+ [2004/11/25 v1.2 Typeset multiple parallel columns]
+\RequirePackage{processkv}[2004/08/05]
+\newcount\pc@columnctr
+\newcount\pc@columncount
+\newif\ifpc@rulebetween
+\newtoks\pc@everypar
+\def\pc@boolkey#1#2{%
+\edef\@tempa{#2}%
+\edef\@tempb{false}%
+\ifx\@tempa\@tempb%
+\csname #1false\endcsname%
+\else%
+\csname #1true\endcsname%
+\fi%
+}
+\define@key{parcolumns}{distance}{%
+\@tempdimc#1\relax%
+}
+\define@key{parcolumns}{rulebetween}[true]{%
+\pc@boolkey{pc@rulebetween}{#1}%
+}
+\define@key{parcolumns}{nofirstindent}[true]{%
+\pc@boolkey{@tempswa}{#1}%
+\if@tempswa\pc@everypar{{\setbox\z@\lastbox}\everypar{}}\fi%
+}
+\define@key{parcolumns}{sloppy}[true]{%
+\pc@boolkey{@tempswa}{#1}%
+\if@tempswa%
+\hbadness\@M%
+\tolerance\@M%
+\fi%
+}
+\define@key{parcolumns}{sloppyspaces}[true]{%
+\pc@boolkey{@tempswa}{#1}%
+\if@tempswa%
+\spaceskip.3333em\@plus1em %
+\fi%
+}
+\define@key{parcolumns}{colwidths}{%
+\toks@{#1}%
+}
+\newenvironment{parcolumns}[2][]{%
+\pc@rulebetweenfalse%
+\@tempswafalse%
+\@tempdimc2em\relax%
+\toks@{}%
+\setkeys{parcolumns}{#1}%
+\pc@columncount#2 %
+\pc@columnctr\z@%
+\pc@alloccolumns%
+\pc@setcolumnwidths%
+\endgraf%
+\@nobreakfalse%
+\global\everypar{}%
+}{%
+\colplacechunks%
+\endgraf%
+\global\clubpenalty\@clubpenalty%
+\@doendpe%
+}
+\newcommand{\colchunk}{\@testopt\colchunk@{}}%
+\long\def\colchunk@[#1]#{%
+\ifx\\#1\\%
+\advance\pc@columnctr\@ne%
+\else%
+\pc@columnctr#1\relax%
+\fi%
+\ifnum\pc@columnctr>\pc@columncount%
+\PackageError{parcolumns}{The column \number\pc@columnctr\space%
+is too large}{Only \number\pc@columncount\space columns are%
+\space allowed.}
+\pc@columnctr\pc@columncount%
+\fi%
+\clubpenalty\z@%
+\interlinepenalty\z@%
+\displaywidowpenalty\z@%
+\widowpenalty\z@%
+\brokenpenalty\z@%
+\everypar\expandafter{\the\pc@everypar}%
+\afterassignment\pc@setcolumnwidth%
+\expandafter\setbox\csname pc@column@\number\pc@columnctr\endcsname%
+\vbox%
+}
+\newcommand{\colplacechunks}{%
+\ifnum\pc@columnctr>\z@%
+\pc@placeboxes%
+\pc@columnctr\z@%
+\pc@everypar{}%
+\fi%
+}
+\def\pc@placeboxes{%
+\global\let\@tempa\relax%
+\count@\z@%
+\hb@xt@\linewidth{%
+\vfuzz30ex %
+\vbadness\@M%
+\splittopskip\z@skip%
+\loop\ifnum\count@<\pc@columncount%
+\advance\count@\@ne%
+\expandafter\ifvoid\csname pc@column@\number\count@%
+\endcsname%
+\hskip\csname pc@column@width@\number\count@\endcsname%
+\else%
+\expandafter\setbox\expandafter\@tempboxa\expandafter%
+\vsplit\csname pc@column@\number\count@\endcsname%
+to \dp\strutbox%
+\vbox{\unvbox\@tempboxa}%
+\fi%
+\expandafter\ifvoid\csname pc@column@\number\count@%
+\endcsname\else%
+\global\let\@tempa\pc@placeboxes%
+\fi%
+\ifnum\count@<\pc@columncount%
+\strut%
+\hfill%
+\ifpc@rulebetween%
+\vrule%
+\hfill%
+\fi%
+\fi%
+\repeat%
+}%
+\@tempa%
+}
+\def\pc@alloccolumns{%
+\count@\z@%
+\loop\ifnum\count@<\pc@columncount%
+\advance\count@\@ne%
+\@ifundefined{pc@column@\number\count@}{%
+\expandafter\newbox\csname pc@column@\number\count@%
+\endcsname%
+\expandafter\newdimen\csname pc@column@width@\number%
+\count@\endcsname%
+}{%
+\setbox0\box\csname pc@column@\number\count@\endcsname%
+\csname pc@column@width@\number\count@\endcsname\z@%
+}%
+\repeat%
+}
+\def\pc@setcolumnwidths{%
+\expandafter\processkeyvalues\expandafter{\the\toks@}%
+\pc@setsinglecolwidth%
+\@tempdima\z@%
+\@tempcnta\z@%
+\count@\z@%
+\loop\ifnum\count@<\pc@columncount%
+\advance\count@\@ne%
+\@tempdimb\csname pc@column@width@\number\count@\endcsname%
+\advance\@tempdima\@tempdimb%
+\ifnum\@tempdimb=\z@%
+\advance\@tempcnta\@ne%
+\else%
+\PackageInfo{parcolumns}{Width of column \number\count@%
+\space set to \the\@tempdimb}
+\fi%
+\repeat%
+\ifnum\@tempcnta>\z@%
+\@tempdimb\@tempdimc%
+\multiply\@tempdimb\pc@columncount%
+\advance\@tempdimb-\@tempdimc%
+\advance\@tempdimb\@tempdima%
+\@tempdima\linewidth%
+\advance\@tempdima-\@tempdimb%
+\divide\@tempdima\@tempcnta%
+\count@\z@%
+\loop\ifnum\count@<\pc@columncount%
+\advance\count@\@ne%
+\ifnum\csname pc@column@width@\number\count@\endcsname=\z@%
+\csname pc@column@width@\number\count@\endcsname\@tempdima%
+\PackageInfo{parcolumns}{Width of column \number\count@%
+\space calculated as \the\@tempdima}
+\fi%
+\repeat%
+\fi%
+}
+\def\pc@setsinglecolwidth#1#2{%
+\@ifundefined{pc@column@width@\number#1}{
+\PackageError{parcolumns}{`#1' is not a valid column number!}%
+{\@ehc}%
+}{%
+\csname pc@column@width@\number#1\endcsname=#2\relax%
+}%
+}
+\def\pc@setcolumnwidth{%
+\hsize\csname pc@column@width@\number\pc@columnctr\endcsname%
+\linewidth\hsize%
+\leavevmode%
+}
+\endinput
+%%
+%% End of file `parcolumns.sty'.