%From: mathas_a@maths.su.oz.au ( Andrew ) %Newsgroups: comp.text.tex,aus.tex %Subject: large table macros for TeX - btable.sty %Message-ID: <1990Jul6.052546.5887@metro.ucc.su.OZ.AU> %Date: 6 Jul 90 05:25:46 GMT %Sender: news@metro.ucc.su.OZ.AU (news) %Organization: Mathematics, University of Sydney %Lines: 123 %Xref: jarthur comp.text.tex:1959 %Replies-To: comp.text.tex %Several people have expressed an interest in the table macros which %I purported to have. They appear below. They do *not* work in LaTeX; %however after looking at the supertab macros for LaTeX (which several %people told me about), I think that I could modifify them to work %with LaTeX. Any one who wishes to convert them feel free as I won't %have the time to do this until the end of August. %The basic macros were written primarily by Bob Howlett %(howlett_r@maths.su.oz.au), with me watching and making the odd %suggestion and modification. Consequently I have called the macros %the "btable.sty" macros. All credit should go to Bob. %The macros were written to typeset large character tables and %consequently everything is put into math mode. To take them out of %math mode the definitions of \tableline and \nextbit need to be %changed in the obvious way (ie. remove the "$"s). %The reason why I wanted these macros was that TeX and LaTeX both %spat the dummy and gave a memory overflow when I asked them to %do my tables by conventional methods. I also tried using the %tabular environment in LaTeX; butm for reasons which I can't %comprehend (or through ill-use?), there seems to be a limit of %approximately 15 columns in this evironment - I needed up to %31 columns. Given this limit, the supertab environment written for LaTeX %has the same restriction (it uses the tabular environment), and %so it would be worthwhile to convert these macros to LaTeX (they %don't work in LaTeX at the moment because \plainoutput is not %defined in LaTeX). %These macros do not appear to have any memory restrictions: I ran %what turned out to be 22 pages of 31 column tables through TeX in %one hit without any complaints. As such they meet my specifications - %I hope that they also met yours. %Andrew Mathas. % - smile at a stranger today and help make the world a better % place; while you're, at it, why not hug a friend! %______________________________________________________________________ %% Written by Bob Howlett with modifications by Andrew Mathas 1990. %%% Table Format: %% All entries are formatted in math mode. A horizontal line %% is placed under the table header, and a vertical line %% separates the first and second columns. The first column %% is left justified and all other columns are right justified. %% Any row can have an arbitrary number of columns. The macros were %% designed for TeXing character tables. %%% Table Syntax: % - table begun with \starttable % - columns separated by & % - each row ended by &! % - last row of table ended by &* and followed by \endtable % - table header specified by \tableheader ...&! % - if a blank line is wanted in the table put !\gap at the % end of the row % - to force a page break put !\pagegap at end of row % - pages are broken naturally if \pagegap is not used, and the % table header is put at the top of the following page. %%% Column spacing % - nameskip: width of the title column % - colSkip: width of the columns % - colsep: separation between columns % - firstcol: extra space to the left of the first column (in my % character tables the the first column (as distinct from the % left-most column which "labels" each row), contains the % degrees of the characters which are often very large numbers % and so I needed more space: eg. psi | xxxxxxx xxxx xxxx ...). \def\nameskip{\kern30pt} \def\colskip{\kern20pt} \def\colsep{\kern3pt} \def\firstcol{\kern10pt} %%% Known bug % If the row ends with ...& &! then the next row may be % added to the end of this row. This can be avoided % by typing ...&\relax&! instead. %% Useful note: % set \hsize=\wd0 to make the page width equal the table width %_________________________btable.sty____________________________________ %% Written by Bob Howlett with modifications by Andrew Mathas 1990. \let\gap\relax \newif\ifpagegap \let\pagegap\pagegaptrue \def\spacing{height8.5ptdepth4.5pt}% \def\normalspacing{height8.5pt depth3.5pt} \def\moreheight{height9.5pt depth4.5pt\let\spacing\normalspacing} \def\muchmoreheight{height15pt depth4.5pt\let\spacing\normalspacing} \def\tableheader#1!{\setbox0\hbox{\def\spacing{height8.5ptdepth4.5pt} \tableline#1*}% \global\def\TableHeader{\copy0\hrule width\wd0\let\spacing\moreheight}} \def\starttable{\begingroup\offinterlineskip \parskip=0pt\parindent=0pt% \output={\plainoutput\TableHeader} \TableHeader\startnewline} \def\startnewline{\hfil\par\futurelet\next\continue} \def\continue{\ifx\gap\next\message{III}\let\spacing\muchmoreheight\fi% \ifx\pagegaptrue\next\vfill\eject\tableline\message{XXX}\pagegapfalse \else\message{CCC}\tableline\fi} \def\tableline#1&{\noindent% \rlap{$#1$}\nameskip\colsep\vrule\spacing\firstcol\nextbit} \def\nextbit#1&{\colskip\llap{$#1$}\colsep\check} \def\check#1{\if!#1\expandafter\startnewline\else\if*#1\hfil \else\nextbit#1\relax\fi\fi} \def\endtable{\endgroup\vskip20pt} %------------------------------------------------------------------------------- \endinput %A small example: larger examples available upon request %(mathas_a@maths.su.oz.au). \tableheader C_1&C_2&C_3&! \starttable \chi&1&0&0&-1&! \chi&1&0&0&-1&! \chi&1&0&0&-1&! \chi&&0&0&-1&!\gap \chi&1&0&&-1&! \chi&1&0&&-1&! \chi&1&0&0&-1&! \phi&5&8&-1&2&!\pagegap \psi&1&2&&&! \alpha&59&0&* \endtable \bye