diff options
Diffstat (limited to 'macros/plain/contrib/misc/tabledoc.tex')
-rw-r--r-- | macros/plain/contrib/misc/tabledoc.tex | 678 |
1 files changed, 678 insertions, 0 deletions
diff --git a/macros/plain/contrib/misc/tabledoc.tex b/macros/plain/contrib/misc/tabledoc.tex new file mode 100644 index 0000000000..2ff9fe6deb --- /dev/null +++ b/macros/plain/contrib/misc/tabledoc.tex @@ -0,0 +1,678 @@ +% file: tabledoc.tex +% :: $Header: /usr2/myers/texsis/RCS/tabledoc.tex,v 1.1 90/05/24 13:39:32 myers Rel $ +% +--------------------------------------------------------------------+ +% | | +% | This file contains documentation for the macro set TABLES.TEX. | +% | | +% | To make a copy, say "TEX1 TABLEDOC". | +% | | +% | | +% | Ray F. Cowan, 22-February-85. | +% | | +% | Princeton University | +% | | +% | | +% | Major Revision History: | +% | ----------------------- | +% | | +% | 22-Oct-85 RFC Temporary fixes for \& added. | +% | | +% | 27-Feb-86 RFC Removed call to PHYZZX macro package. | +% | Fixes for \& no longer needed and were removed. | +% | | +% +--------------------------------------------------------------------+ +% +% Note to myself: add info on \tablelet +% put \tstrut in table +% \vctr +% \ifhmode test in centeredtables +% \header +% \spreadwidth +% new def of \tstrut +% put spaces around entries +% last revision ( 2 places ) +% notes on use of spaces +% +%%%\input TABLES.TEX +\input ruled.tex % use E. Myers' ruled table macros instead +% +% +--------------------------------------------------------------------+ +% | | +% | Definitions of font families and spacing parameters. | +% | | +% +--------------------------------------------------------------------+ +% +\catcode`\@=11% Enable use of `@' in macro names. +% +\font\fourteenrm=cmr10 scaled\magstep2 +% +\font\twelverm=cmr10 scaled\magstep1 +\font\twelvebf=cmbx10 scaled\magstep1 +\font\twelvei=cmmi10 scaled\magstep1 \skewchar\twelvei='177 +\font\twelvesy=cmsy10 scaled\magstep1 \skewchar\twelvesy='60 +\font\twelveex=cmex10 scaled\magstep1 +\font\twelvesl=cmsl10 scaled\magstep1 +\font\twelveit=cmti10 scaled\magstep1 +\font\twelvett=cmtt10 scaled\magstep1 +\font\twelvecp=cmcsc10 scaled\magstep1 +% +\font\ninerm=cmr9 \font\sixrm=cmr6 +\font\ninebf=cmbx9 \font\sixbf=cmbx6 +\font\ninei=cmmi9 \skewchar\ninei='177 +\font\ninesy=cmsy9 \skewchar\ninesy='60 +\font\ninesl=cmsl9 +% +\font\sixi=cmmi6 \skewchar\sixi='177 +\font\sixsy=cmsy6 \skewchar\sixsy='60 +% +\font\tencp=cmcsc10 +\newfam\cpfam +% +\newcount\f@ntkey \f@ntkey=0 +\def\samef@nt{\relax \ifcase\f@ntkey \rm \or\oldstyle \or\or + \or\it \or\sl \or\bf \or\tt \or\caps \fi } +% +\def\twelvepoint{\relax + \textfont0=\twelverm \scriptfont0=\ninerm + \scriptscriptfont0=\sixrm + \def\rm{\fam0 \twelverm \f@ntkey=0 }\relax + \textfont1=\twelvei \scriptfont1=\ninei + \scriptscriptfont1=\sixi + \def\oldstyle{\fam1 \twelvei\f@ntkey=1 }\relax + \textfont2=\twelvesy \scriptfont2=\ninesy + \scriptscriptfont2=\sixsy + \textfont3=\twelveex \scriptfont3=\twelveex + \scriptscriptfont3=\twelveex + \def\it{\fam\itfam \twelveit \f@ntkey=4 }\textfont\itfam=\twelveit + \def\sl{\fam\slfam \twelvesl \f@ntkey=5 }\textfont\slfam=\twelvesl + \scriptfont\slfam=\ninesl + \def\bf{\fam\bffam \twelvebf \f@ntkey=6 }\textfont\bffam=\twelvebf + \scriptfont\bffam=\ninebf \scriptscriptfont\bffam=\sixbf + \def\tt{\fam\ttfam \twelvett \f@ntkey=7 }\textfont\ttfam=\twelvett + \h@big=10.2\p@{} + \h@Big=13.8\p@{} + \h@bigg=17.4\p@{} + \h@Bigg=21.0\p@{} + \def\caps{\fam\cpfam \twelvecp \f@ntkey=8 }\textfont\cpfam=\twelvecp + \setbox\strutbox=\hbox{\vrule height 10pt depth 4pt width\z@} + \samef@nt} +% +\def\tenpoint{\relax + \textfont0=\tenrm \scriptfont0=\sevenrm + \scriptscriptfont0=\fiverm + \def\rm{\fam0 \tenrm \f@ntkey=0 }\relax + \textfont1=\teni \scriptfont1=\seveni + \scriptscriptfont1=\fivei + \def\oldstyle{\fam1 \teni \f@ntkey=1 }\relax + \textfont2=\tensy \scriptfont2=\sevensy + \scriptscriptfont2=\fivesy + \textfont3=\tenex \scriptfont3=\tenex + \scriptscriptfont3=\tenex + \def\it{\fam\itfam \tenit \f@ntkey=4 }\textfont\itfam=\tenit + \def\sl{\fam\slfam \tensl \f@ntkey=5 }\textfont\slfam=\tensl + \def\bf{\fam\bffam \tenbf \f@ntkey=6 }\textfont\bffam=\tenbf + \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf + \def\tt{\fam\ttfam \tentt \f@ntkey=7 }\textfont\ttfam=\tentt + \def\caps{\fam\cpfam \tencp \f@ntkey=8 }\textfont\cpfam=\tencp + \setbox\strutbox=\hbox{\vrule height 8.5pt depth 3.5pt width\z@} + \samef@nt} +% +\newdimen\h@big \h@big=8.5\p@ +\newdimen\h@Big \h@Big=11.5\p@ +\newdimen\h@bigg \h@bigg=14.5\p@ +\newdimen\h@Bigg \h@Bigg=17.5\p@ +% +\def\big#1{{\hbox{$\left#1\vbox to\h@big{}\right.\n@space$}}} +\def\Big#1{{\hbox{$\left#1\vbox to\h@Big{}\right.\n@space$}}} +\def\bigg#1{{\hbox{$\left#1\vbox to\h@bigg{}\right.\n@space$}}} +\def\Bigg#1{{\hbox{$\left#1\vbox to\h@Bigg{}\right.\n@space$}}} +% +\normalbaselineskip = 20pt plus 0.2pt minus 0.1pt +\normallineskip = 1.5pt plus 0.1pt minus 0.1pt +\normallineskiplimit = 1.5pt +\newskip\normaldisplayskip +\normaldisplayskip = 20pt plus 5pt minus 10pt +\newskip\normaldispshortskip +\normaldispshortskip = 6pt plus 5pt +\newskip\normalparskip +\normalparskip = 6pt plus 2pt minus 1pt +\newskip\skipregister +\skipregister = 5pt plus 2pt minus 1.5pt +% +\newif\ifsingl@ \newif\ifdoubl@ +\newif\iftwelv@ \twelv@true +% +\def\singlespace{\singl@true\doubl@false\spaces@t} +\def\doublespace{\singl@false\doubl@true\spaces@t} +\def\normalspace{\singl@false\doubl@false\spaces@t} +\def\Tenpoint{\tenpoint\twelv@false\spaces@t} +\def\Twelvepoint{\twelvepoint\twelv@true\spaces@t} +% +\def\spaces@t{\relax% + \iftwelv@ \ifsingl@\subspaces@t3:4;\else\subspaces@t1:1;\fi% + \else \ifsingl@\subspaces@t3:5;\else\subspaces@t4:5;\fi \fi% + \ifdoubl@ \multiply\baselineskip by 5% + \divide\baselineskip by 4 \fi \unskip} +% +\def\subspaces@t#1:#2;{ + \baselineskip = \normalbaselineskip + \multiply\baselineskip by #1 \divide\baselineskip by #2 + \lineskip = \normallineskip + \multiply\lineskip by #1 \divide\lineskip by #2 + \lineskiplimit = \normallineskiplimit + \multiply\lineskiplimit by #1 \divide\lineskiplimit by #2 + \parskip = \normalparskip + \multiply\parskip by #1 \divide\parskip by #2 + \abovedisplayskip = \normaldisplayskip + \multiply\abovedisplayskip by #1 \divide\abovedisplayskip by #2 + \belowdisplayskip = \abovedisplayskip + \abovedisplayshortskip = \normaldispshortskip + \multiply\abovedisplayshortskip by #1 + \divide\abovedisplayshortskip by #2 + \belowdisplayshortskip = \abovedisplayshortskip + \advance\belowdisplayshortskip by \belowdisplayskip + \divide\belowdisplayshortskip by 2 + \smallskipamount = \skipregister + \multiply\smallskipamount by #1 \divide\smallskipamount by #2 + \medskipamount = \smallskipamount \multiply\medskipamount by 2 + \bigskipamount = \smallskipamount \multiply\bigskipamount by 4 } +% +\def\normalbaselines{ \baselineskip=\normalbaselineskip + \lineskip=\normallineskip \lineskiplimit=\normallineskip + \iftwelv@\else \multiply\baselineskip by 4 \divide\baselineskip by 5 + \multiply\lineskiplimit by 4 \divide\lineskiplimit by 5 + \multiply\lineskip by 4 \divide\lineskip by 5 \fi } +% +\Twelvepoint % That's the default +% +\interlinepenalty=50 +\interfootnotelinepenalty=5000 +\predisplaypenalty=9000 +\postdisplaypenalty=500 +\hfuzz=1pt +\vfuzz=0.2pt +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Next, I define output routines, footnotes & related stuff. +% +\def\pagecontents{ + \ifvoid\topins\else\unvbox\topins\vskip\skip\topins\fi + \dimen@ = \dp255 \unvbox255 + \ifvoid\footins\else\vskip\skip\footins\footrule\unvbox\footins\fi + \ifr@ggedbottom \kern-\dimen@ \vfil \fi } +% +\def\makeheadline{\vbox to 0pt{ \skip@=\topskip + \advance\skip@ by -12pt \advance\skip@ by -2\normalbaselineskip + \vskip\skip@ \line{\vbox to 12pt{}\the\headline} \vss + }\nointerlineskip} +\def\makefootline{\baselineskip = 1.5\normalbaselineskip + \line{\the\footline}} +% +\newif\iffrontpage +% +% +--------------------------------------------------------------------+ +% | | +% | Footnote definitions. | +% | | +% +--------------------------------------------------------------------+ +% +\def\footrule{\dimen@=\prevdepth\nointerlineskip + \vbox to 0pt{\vskip -0.25\baselineskip \hrule width 0.35\hsize \vss} + \prevdepth=\dimen@ } +% +\newtoks\foottokens +\foottokens={\Tenpoint\singlespace} +\newdimen\footindent +\footindent=24pt +% +\def\vfootnote#1{\insert\footins\bgroup \the\foottokens + \interlinepenalty=\interfootnotelinepenalty \floatingpenalty=20000 + \splittopskip=\ht\strutbox \boxmaxdepth=\dp\strutbox + \leftskip=\footindent \rightskip=\z@skip + \parindent=0.5\footindent \parfillskip=0pt plus 1fil + \spaceskip=\z@skip \xspaceskip=\z@skip + \Textindent{$ #1 $}\footstrut\futurelet\next\fo@t} +% +\def\Textindent#1{\noindent\llap{#1\enspace}\ignorespaces} +\def\footnote#1{\attach{#1}\vfootnote{#1}} +\def\footattach{\attach\footsymbol} +\def\foot{\attach\footsymbolgen\vfootnote{\footsymbol}} +\let\footsymbol=\star +% +\newcount\lastf@@t \lastf@@t=-1 +\newcount\footsymbolcount \footsymbolcount=0 +\newif\ifPhysRev +% +\def\footsymbolgen{\relax \ifPhysRev \iffrontpage \NPsymbolgen\else + \PRsymbolgen\fi \else \NPsymbolgen\fi + \global\lastf@@t=\pageno \footsymbol } +% +\def\NPsymbolgen{\ifnum\footsymbolcount<0 \global\footsymbolcount=0\fi + {\iffrontpage \else \advance\lastf@@t by 1 \fi + \ifnum\lastf@@t<\pageno \global\footsymbolcount=0 + \else \global\advance\footsymbolcount by 1 \fi } + \ifcase\footsymbolcount \fd@f\star\or \fd@f\dagger\or \fd@f\ast\or + \fd@f\ddagger\or \fd@f\natural\or \fd@f\diamond\or \fd@f\bullet\or + \fd@f\nabla\else \fd@f\dagger\global\footsymbolcount=0 \fi } +\def\fd@f#1{\xdef\footsymbol{#1}} +% +\def\PRsymbolgen{\ifnum\footsymbolcount>0 \global\footsymbolcount=0\fi + \global\advance\footsymbolcount by -1 + \xdef\footsymbol{\sharp\number-\footsymbolcount} } +% +\def\space@ver#1{\let\@sf=\empty \ifmmode #1\else \ifhmode + \edef\@sf{\spacefactor=\the\spacefactor}\unskip${}#1$\relax\fi\fi} +\def\attach#1{\space@ver{\strut:{\mkern 2mu #1} }\@sf\ } +% +% +\def\alphabetic#1{\count255='140 \advance\count255 by #1\char\count255} +\def\Alphabetic#1{\count255='100 \advance\count255 by #1\char\count255} +\def\Roman#1{\uppercase\expandafter{\romannumeral #1}} +\def\roman#1{\romannumeral #1} +\def\Number#1{\number #1} +% +\def\GENITEM#1;#2{\par \hangafter=0 \hangindent=#1 + \Textindent{$ #2 $}\ignorespaces} +\outer\def\newitem#1=#2;{\gdef#1{\GENITEM #2;}} +% +\newdimen\itemsize \itemsize=30pt +\newitem\item=1\itemsize; +\newitem\sitem=1.75\itemsize; \let\subitem=\sitem +\newitem\ssitem=2.5\itemsize; \let\subsubitem\ssitem +% +\outer\def\newlist#1=#2{\toks0={#2}\toks1={#3}% + \count255=\escapechar \escapechar=-1 + \alloc@0\list\countdef\insc@unt\listcount \listcount=0 + \edef#1{\par + \countdef\listcount=\the\allocationnumber + \advance\listcount by 1 + \hangafter=0 \hangindent=#4 + \Textindent{\the\toks0{\listcount}\the\toks1}} + \expandafter\expandafter\expandafter + \edef\c@t#1{begin}{\par + \countdef\listcount=\the\allocationnumber \listcount=1 + \hangafter=0 \hangindent=#4 + \Textindent{\the\toks0{\listcount}\the\toks1}} + \expandafter\expandafter\expandafter + \edef\c@t#1{con}{\par \hangafter=0 \hangindent=#4 \noindent} + \escapechar=\count255} +\def\c@t#1#2{\csname\string#1#2\endcsname} +% +\newlist\point=\Number&.&1.0\itemsize; +\newlist\subpoint=(\alphabetic&)&1.75\itemsize; +\newlist\subsubpoint=(\roman&)&2.5\itemsize; +% +\let\spoint=\subpoint \let\sspoint=\subsubpoint +\let\spointbegin=\subpointbegin \let\sspointbegin=\subsubpointbegin +\let\spointcon=\subpointcon \let\sspointcon=\subsubpointcon +% +\def\endpage{\vfil\break} +% +\hsize=6.5in +\vsize=8.9in +\voffset=0.5in +% +% +\catcode`\@=12% Return `@' to normal use. +% +% +% +--------------------------------------------------------------------+ +% | | +% | Verbatim listing macros. | +% | | +% +--------------------------------------------------------------------+ +% +\newif\ifverbatimmode% +\verbatimmodefalse% +\def\|{|}% +\def\uncatcodespecials{% + \def\do##1{\catcode`##1=12 }% + \dospecials% +}% +% +\def\startverbatim{\catcode`\|=13}% +\def\endverbatim{\catcode`\|=12}% +\def\setupverbatim{% + \tt% + \def\par{\leavevmode\endgraf}% + \catcode`\`=13% + \obeylines% + \uncatcodespecials% + \obeyspaces% +}% +% +{\obeyspaces\global\let =\ }% Let active space=control space. +{\catcode`\`=13\gdef`{\relax\lq}}% Fix for Spanish punctuation in \tt. +% +{\catcode`\|=13% +\gdef|{% + \relax% + \ifverbatimmode % + \endgroup% + \verbatimmodefalse% + \begingroup% + \else% + \verbatimmodetrue% + \begingroup% + \setupverbatim% + \parindent=1in% Set the indentation of verbatim lines. + \parskip=0pt% Don't put so much space between the lines. + \begingroup\aftergroup\relax% This makes \relax the first token +% scanned after the |; prevents +% premature association of catcodes. + \fi% +\endgroup}% +}% Return | to its normal use. +\def\beginverbatimlisting{\par\begingroup\setupverbatim\doverbatim} +{\catcode`\|=0 \catcode`\\=12 % | is temporary escape character + |obeylines|gdef|doverbatim^^M#1\endverbatimlisting{#1|endgroup}} +% +% Macro for verbatim listing of a file. +% +\def\inputverbatimlisting#1{% + \par% + \begingroup% + \parskip0pt% + \parindent0pt% + \setupverbatim% + \input#1 % + \endgroup% +}% +% +\def\Table#1#2{% + \setbox0=\hbox to 1.5in{\hfil\it Table~#1.\quad}% + \par\hangindent1.5in\hangafter1% + \noindent\box0 #2% +}% +\def\\{\char`\\} +\def\{{\char`\{} +\def\}{\char`\}} +\def\vbar{\char`\|} +\def\Psizzl{% + P% + \kern-.30em\lower.70ex\hbox{s}% + \kern-.08em\lower.0 ex\hbox{i}% + \kern-.05em\lower.0 ex\hbox{z}% + \kern-.17em\lower.5 ex\hbox{z}% + \kern-.09em\lower.2 ex\hbox{l}% + }% +% +\font\tensltt=cmsltt10% +\footline={\ifnum\count0=1 +\rlap{\tensl[From file {\tensltt TABLEDOC.TEX}]}% +\hfil\it\number\count0\hfil\llap{\tensl[Last revision 27--Feb--86]}% +\else\hfil\fi} +\headline={\ifnum\count0=1 \hfil\else\vbox{\baselineskip0pt + \line{\tenit Page~\number\count0\hfil Making Tables with Macros} + \line{\leaders\hrule\hfill}}\fi} +\startverbatim +{\thicksize=0.8pt\def\tstrut{\vrule width0pt height18pt depth7pt} +\begintable +\quad\fourteenrm Making Tables with Macros\quad\endtable} +\vskip 0.4in +\centerline{Ray F.~Cowan} +\vskip 0.1in +\centerline{22 February 1985} +\vskip 0.3in +\par +Tables have traditionally been difficult to make using \TeX---especially +ruled tables. The file |TABLES.TEX| contains macros designed +to prepare both ruled and unruled tables with considerably less effort. +Note that |TABLES.TEX| can be +used with any macro set; +it does not depend upon prior loading of |PHYZZX| +or \Psizzl, for example. +One of the main advantages of this macro set is +that you no longer need to +design a +preamble for the table; the macros will scan your table entries and +construct a suitable preamble for you. +To access the macros, say \hbox{`|\input TABLES|'} in your \TeX\ +file, somewhere before the first time you use them. +The macros available are listed in Table~1 and Table~2. + +\endverbatim +\midinsert +\smallskip +\tablewidth=\hsize +\begintable +\sl Macro name\hfill | \sl Description \hfill \crthick + \tt\\begintable\hfill | \para{Indicates the start of a new table.} \cr + \tt\\endtable\hfill | \para{Ends the current table. Must be used + in place of the last {\tt\\cr}.}\cr + \tt\\cr \hfill | \para{Ends the current row, and starts the next + one. The completed row will be + separated from the next with a thin + horizontal rule.} \cr + \tt\\crthick\hfill | \para{Similar to {\tt\\cr}, but the rows will be + separated with a thick horizontal rule.}\cr +\tt\\crnorule \rm or \tt \\nr \hfill | \para{Similar +to {\tt\\cr}, but the rows will not + be separated by any rule.}\cr + \vtop{\noindent\hsize=1.4in\tt\vbar\qquad \rm (vertical bar)\hfil\break + or \tt\\vb} \hfill + | \para{Separates one column from the next, and + puts a vertical rule between them.} \cr + \tt\&\ \rm or\tt\ \\novb \hfill + | \para{Same as {\tt\vbar}, but does not put in the + vertical rule between the columns.}\cr + \tt \\\vbar \hfill | \para{Same as {\tt\vbar}, but puts in a + thick vertical rule.} +\endtable +\Table{1}{Description of simple table macros.} +\endinsert +\startverbatim +\par +The general idea is that you start your table with the command +|\begintable|, type your entries in one row at a time, then finish +with the command |\endtable|. +To specify a row, enter the individual entries into your \TeX\ file, +separating each column entry with a {\tt \vbar}, an {\tt \&}, or +a {\tt \\\vbar}. A {\tt \vbar} will separate the adjoining columns +with a thin vertical rule, an {\tt \&} will leave out the vertical rule, +and +a {\tt \\\vbar} will separate the columns with a thick vertical rule. +To end one row and start another, use either a |\cr|, a |\crnorule|, or +a |\crthick|. A |\cr| separates the rows with a thin +horizontal rule; a |\crnorule| leaves out the horizontal +rule, while |\crthick| inserts a thick horizontal rule. +Then end the last row with an |\endtable|. +\par +Each row of the table must contain exactly the same number of columns, +otherwise unpredictable things will happen. Again, the {\it last row} + must {\it not} end +with |\cr|$\ldots\,$, but +{\it must} end with an |\endtable|. If you put a |\cr| +and an |\endtable| both on the last row, you won't like what happens. +\endverbatim +\pageinsert +\smallskip +\tablewidth=\hsize +\begintable +\sl Macro name\hfill | \sl Description \hfill \crthick + \tt\\thicksize={\it dimen} \hfill | \para{This + dimension specifies the thickness + of the thick rules in the table. The default size + is 1.5 points.} \cr + \tt\\thinsize={\it dimen} \hfill | \para{This dimension specifies the + thickness of thin rules in the table. The default + size is 0.8 points.} \cr + \tt\\tablewidth={\it dimen} \hfill | \para{Specifies how wide to make + the next table. If not specified, the table is made to + its natural width. This value is reset following + the construction of each table.} \cr + \tt\\multispan\{$n$\}\hfill | \para{Makes + the next entry span the next $n$ + columns, where $n$ is an integer, $n>0$. + See other notes on {\tt\\multispan} below.}\cr + \tt\\omit \hfill | \para{This \TeX\ primitive causes the normal + template for its entry to be omitted, allowing the + user to do something else with this entry.} \cr + \tt\\para\{{\it text}\}\ \hfill | \para{Formats {\it text} into + a neat little paragraph like this one. The width of + the paragraph produced is determined by the dimension + {\tt \\parasize}. The default is 4 inches. } \cr + \tt\\parasize={\it dimen} \hfill | \para{Sets the width of paragraphs + produced with the {\tt\\para} macro. } \cr + \tt\\ctr\{\#\} \hfill | \para{Used in the standard template, this + macro centers its argument in the column. The + user can redefine it for special effects. + The default definition is + \par \tt \\def\\ctr\#1\{\\hfil\\\ \#1\\\ \\hfil\} } \cr + \tt\\vctr\{\#\}\hfill | \para{Centers an entry vertically. The + vertical center of the entry is placed on + the baseline of the row containing it. The + intended use is to center an entry between + two rows.} \cr + \tt\\centeredtables\hfill | \para{Turns table centering on. Each table + will be centered + left-to-right on the page. This is the + default.} \cr + \tt\\noncenteredtables\hfill | \para{Turns table centering off. Each + table is returned as an {\tt\\hbox}, and it + is up to the user to place it as desired.} +\endtable +\smallskip\rightline{\it continued$\ldots$} +\vfill +\endinsert +\topinsert\leftline{\it continued$\ldots$}\smallskip +\tablewidth=\hsize +\begintable +\sl Macro name\hfill | \sl Description \hfill \crthick +\tt\\tableinfotrue\hfill | \para{Turns on the diagnostic message telling + you how many rows and colums were found in the + table. This is the default.} \cr +\tt\\tableinfofalse\hfill\ | \para{Turns off the diagnostic messages + concerning rows and columns.} +\endtable +\Table{2}{Description of extended table macros.} +\endinsert +\startverbatim +\par +Each +entry will be centered in its column (unless you use |\omit|, a \TeX\ +primitive, or |\multispan|. See notes below). +The table will be centered in an |\hbox| of width the |\hsize|, unless +you have turned table centering off (see the commands |\centeredtables| +and |\noncenteredtables|). +\par +Each time a new table is encountered, a message similar to +`|[Nrows=|$xx$|, Ncols=|$yy$|]|' is +printed on your terminal, where $xx$ is the number of rows +and $yy$ the number of columns discovered in your table. If you think +they are incorrect, you may have left out some {\tt\|}'s or +{\tt\&}'s or {\tt\\cr}'s. +This diagnostic feature can be disabled by saying |\tableinfofalse| +(and restarted by saying |\tableinfotrue|). +\bigskip +\leftline{\it An example} +\par + A simple 3-row, 2-column table with a header spanning two + columns could be specified as (see notes 3 and 4 + below on + the use of |\multispan|\foot{Note to experienced \TeX\ % + users: these macros locally (within the {\tt \\begintable}$\,\ldots% +\,${\tt \\endtable} grouping) redefine {\tt \\multispan} to take as its % +argument % +the number of user entries $n$ to be spanned, and not the total number % +of columns including rules, which would be $2n-1$.}): +\endverbatim +\par\noindent +\line{\vbox{\parskip0pt\baselineskip15pt +\beginverbatimlisting + \begintable + \multispan{2}\tstrut\hfil The Top Line\hfil\crthick + Entry 1 | Entry 2 \cr + Entry 3 | Entry 4 \endtable +\endverbatimlisting}\hfil} +\par\noindent +These commands produce Table~3. +\midinsert +\medskip + \begintable + \multispan{2}\tstrut\hfil The Top Line\hfil\crthick + Entry 1 | Entry 2 \cr + Entry 3 | Entry 4 \endtable +\smallskip +\Table{3}{A sample table.} +\medskip\endinsert +\startverbatim +\bigskip +\leftline{\it An example of non-centered tables} +\par +Two or more tables can be placed side-by-side by using the +|\noncenteredtables| command. Consider the two tables here: +\midinsert +\medskip +\noncenteredtables +\line{ +\begintable +Item ABC | Item DEF \cr +Item GHI | Item JKL \endtable +\hfil +\begintable +Data 111 | Data 222 \cr +Data 333 | Data 444 \cr +Data 555 | Data 666 \endtable +} % This `}' ends the \line we started above. +\smallskip +\Table{4}{Two non-centered tables aligned side-by-side.} +\medskip +\endinsert +These were produced by saying: +\par\noindent +\endverbatim +\line{\vbox{\parskip0pt\baselineskip15pt +\beginverbatimlisting + \noncenteredtables + \line{ + \begintable + Item ABC | Item DEF \cr + Item GHI | Item JKL \endtable + \hfil + \begintable + Data 111 | Data 222 \cr + Data 333 | Data 444 \cr + Data 555 | Data 666 \endtable + } % This `}' ends the \line we started above. +\endverbatimlisting}\hfil} +\centeredtables +\startverbatim +\par\noindent +Notice that tables of unequal height are aligned at the bottom. +\bigbreak +\par\noindent +\leftline{$\underline{\hbox{\bf Usage notes:}}$} +\pointbegin + Vertical spacing is done with a strut, called |\tstrut|, which is + initially defined as 3.1ex high and 1.2ex deep. + If you don't like the way it looks, you can redefine |\tstrut| to + your own + liking:| +\def\tstrut{\vrule height |$hh$| depth |$dd$| width 0pt} +|\pointcon where you + specify your desired height $hh$ and depth $dd$. +\point You can control the thickness of the thin and thick rules + through the use of |\thicksize| and |\thinsize|. You can even + turn off the rules entirely by saying | +\thinsize=0pt +\thicksize=0pt +|\pointcon for example. + \point If you use a |\multispan| + or an |\omit| in the first column of a row, you will + lose the effect of the |\tstrut| within that row and + must specify it yourself. See + the example above. + \point Use of |\multispan| and |\omit| will + cause the default centering of + the entry to be lost; if you want it centered, put an |\hfil| on + each side of the entry, as in the example above. + \point To override the default centering action, include an |\hfill| on + the left or right as desired; the |\hfill| will + override the default + |\hfil|. +% +\endverbatim +\endpage +\bye |