%% %% 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'.