diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:05:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:05:53 +0000 |
commit | 41f6accf239ea62e4f979c592c6728a616245d9f (patch) | |
tree | 82ddb0e632b70a669169fbeff04a0a83e9604fa5 /Master/texmf-dist/tex/latex/sauerj/parcolumns.sty | |
parent | f5c952da6432767eac2421ed364423601fb9c844 (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.sty | 201 |
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'. |