Creating Tables in TEX

The macros and guide have been written by Robert Nilsson of the Academic Computing Service, Texas A&M University. To use the macros, start by \input tables

Types of Commands

Start/End These are the commands for starting and ending the table

Columns Separators These are used to separate the column s in the tables

Row Separators  These are used to separate the rows

Configuration These are used to set up the functioning of the tables such as the width of a thick rule, whether the internal rules are thin or thick, etc.

Specials These include any commands that do not fit into the above categories

Start/End

Command  Arguments  Description
\begintable  none  Start a table
\begintableto  width  Start a table with the specified width.

The table will be stretched until it is ‘width’ wide

\begintablesp  stretch amount  Start a table and stretch it ‘stretch

amount’ wider than it would normally be

\endtable  none  End the table

Column Separators

Command  Arguments  Description
|  none  End a column and place a vertical rule

of the default width between the columns (do not use this at the end of a line)

\|  none  Same as above but the vertical rule will

be suppressed

\vt  none  Same as above but the vertical rule will

be thin

\vtt  none  Same as above but the vertical rule will

be thick

\vttt  thickness  Same as above but the vertical rule will

be ‘thickness’ wide

Row Separators

Command  Arguments  Description
\el  none  End a line and don’t put a rule under it.

(Do not use this after the last line of the table, use \endtable)

\elt  none  Same as above except put a thin rule un-

der the line

\eltt  none  Same as above except put a thick rul e

under the line

\elttt  thickness  Same as above except put a rul e of width

‘thickness’ under the line

\elspec  none  This command is used to set up rules un-

der rows that DO NOT span the entire row. It in effect indicates that the next row will specify the rule to be used under the current row. This is especially useful when using with the row spanning commands. This introduces a subclass, the horizontal rule commands

Horizonal Rule Command Subset

\trule none Places a thin horizontal rule under a column. This command is only for use in conjunction with the \elspec

command (To leave a column blank, i.e. no rule, just leave it blank)

\ttrule  none  Same as above but the rule will be

thick

\tttrule  thickness  Same as above but the rule will be ‘thick-

ness’ thick

You may be wondering what the difference between the \elt and the \trule command is. The \elt will end the line and draw a thin rule under it. The \trule works in conjunction with the \elspec to generate a special rule. The special rule line is entered the same way a regular row will be entered. For example, a normal row would look like:

This|is|a|Test\elt

This will produce a row with a thin rule under it. To produce the same effect without a rule under the column ‘is’ the following would be used:

This|is|a|Test\elspec
\trule||\trule|\trule\el

Notice that the vertical bars are used. The macro is starting a new row and the vertical bars need to be included if you want them to continue through the line. (There is no need to only use the |, any other column separator is also valid).

Configuration

Variable  Value  Description

Dimensions

\stablesthinline dimension This variable contains the width of a thin rule in the table. The default value is 0.4pt and it may be changed with the command:

    \stablesthinline=<dimen>

where <dimen> is the new width.

\stablesthickline  dimension  This variable contains the width of a thick

rule in the table. The default value is 1pt and it may be changed as above.

Counters

\stablestyle 0 Center the table using the current \hsize. This is the default setting and it may be changed by the following command:

    \stablestyle=n

where n is the new value (0, 1, 2, or 3)

1  Left justify the table
2  Right justify the table
3  No justification

If Statements

\ifstablesinternalthin true Make the internal rules of the table thin. This sets the vertical rule generated by the |. To set the value of this variable the following command must be used:

    \stablesinternalthintrue

Please note the word ‘if’ is removed and the word ‘true’ has been appended to the end. The value after this command will be true. To set it to false append the word ‘false’ instead of ‘true’.

false Use thick internal rules (where the | is used)

\ifstablesborderthin  true  Use thin rules for the border of the table

false Use thick rules for the border of the table. This is the default.

All settings in the configuration section should be used OUTSIDE the table. The results of changing a setting inside the table will be unpredictable, and undesirable.

There are two more settings that need to be discussed. First is the element buffering. There are two definitions that are used for this: \stablesleft and \stablesright. The default settings are as follows:

\def\stablesleft{\quad\hfil}
\def\stablesright{\hfil\quad}

To change these, simply redefine them.

The other setting is the strut. If you are interested in resetting this, the TEXbook should provide sufficient information (The strut is used to hold up the box).

Specials

This section will be broken into three parts: the spanning commands, the paragraph commands, and miscellaneous information.

First of all we have two (actually three, but I’ll discuss the third later) spanning commands. They are \multicolumn and \multirow. To use \multicolumn to span several columns the command will be:

\multicolumnn and your data here. The n specifies the number of columns to span across. For example, if a table has 3 columns and you want a title across the top, n would be 3. Omit each column separator that is spanned across (in this case none would be used). When this command is used the buffering is suspended on the spanning column, so it is necessary to put \hfil’s around the data in the spanning column to center it.

\multirow works slightly differently. The number of rows to span is specified in the same way as the number of columns in the \multicolumn macro,

but the text to be spanned must be placed in curly braces directly after:

    \multirown{<horizontal material>}

The <horizontal material> will be vertically centered in the number

of spanned rows. The horizontal rules are not automatically omitted under the columns of the rows being spanned. The \elspec command must be used to omit

these rules. There will be an example at the end of the documentation of this. The paragraph commands are \stpar and \stparrow. The format for \stpar is:

    \stpar{<dimen>}{<vertical material>}

The <dimen> is the width of the paragraph (the \hsize) and the <vertical material> is the paragraph.

\stparrow will do the same thing as \stpar but it will also perform the function of \multirow. It is a composite command and the only way to span a paragraph across multiple rows. The format is:

    \stparrown{<dimen>}{<vertical material>}

In this command the n is the number of rows to be spanned and the other material is the same as in the \stpar macro. Please note that the rules for spanning multiple rows apply to this macro also (the use of the \elspec command.

To use both multiple rows and multiple columns, specify the \multicolumn command first, then the

\multirow or \stparrow.

The last point I would like to make concerns the use of varying width vertical rules. If a thin vertical rule runs into a thick vertical rule there will be an offset. The default for this offset is to the left. There are two ways to change the setting. The first is by using an ‘r’ after any of the \vt commands. For example \vttr will produce a thick vertical rule right justified on any wider rules. The other method is by using the \ifstablesright setting. A true setting will line up all vertical rules generated by the | on the right. A false setting will make the vertical rules generated by the | left justified (the default).

In all of the specials using a n parameter, if the number to be used is greater than 9, it must be placed in curly braces ({}).

Examples

This section will give some example tables and the code to generate them organized from simple to complex.

Example 1

\begintable
Ck\#\vt Date\vt Memo\vt Debit\vt Credit\vt Balance\eltt
245|8--2|Rent|\$ \hfill 250.00||\$ \hfill 436.29\el
246|8--2|Danson Electric|\$ \hfill 49.28||\$ \hfill 387.01\el
247|8--5|Jeff's Grocery|\$ \hfill 35.88||\$ \hfill 351.13\el
248||Void|||\el
249|8--10|Danson Times|\$ \hfill 19.00||\$ \hfill 332.13\el
250|8--14|Pizza Palace|\$ \hfill 9.95||\$ \hfill 322.18\el
251|8--15|Jones Hardware|\$ \hfill 45.20||\$ \hfill 276.98\el
252|8--15|Deposit||\$ \hfill 255.81|\$ \hfill 532.79\el
253|8--21|Account Fee|\$ \hfill .85||\$ \hfill 531.94\el
254|8--29|Telephone Co.|\$ \hfill 21.19||\$ \hfill 510.75\endtable

Ck#  Date  Memo  Debit  Credit  Balance
245  8–2  Rent  $ 250.00  $ 436.29
246  8–2  Danson Electric  $ 49.28  $ 387.01
247  8–5  Jeff’s Grocery  $ 35.88  $ 351.13
248  Void
249  8–10  Danson Times  $ 19.00  $ 332.13
250  8–14  Pizza Palace  $ 9.95  $ 322.18
251  8–15  Jones Hardware  $ 45.20  $ 276.98
252  8–15  Deposit  $ 255.81  $ 532.79
253  8–21  Account Fee  $ .85  $ 531.94
254  8–29  Telephone Co.  $ 21.19  $ 510.75

Example 2

\begintableto{6.5truein}
\multicolumn6 \hfill Account Activity for August\hfill\eltt
Ck\#\vt Date\vt Memo\vtt Debit\vt Credit\vtt Balance\eltt
245|8--2|Rent\vtt\$ \hfill 250.00|\vtt\$ \hfill 436.29\el
246|8--2|Danson Electric\vtt\$ \hfill 49.28|\vtt\$ \hfill 387.01\el
247|8--5|Jeff's Grocery\vtt\$ \hfill 35.88|\vtt\$ \hfill 351.13\el
248||Void\vtt|\vtt\el
249|8--10|Danson Times\vtt\$ \hfill 19.00|\vtt\$ \hfill 332.13\el
250|8--14|Pizza Palace\vtt\$ \hfill 9.95|\vtt\$ \hfill 322.18\el
251|8--15|Jones Hardware\vtt\$ \hfill 45.20|\vtt\$ \hfill 276.98\el
252|8--15|Deposit\vtt|\$ \hfill 255.81\vtt\$ \hfill 532.79\el
253|8--21|Account Fee\vtt\$ \hfill .85|\vtt\$ \hfill 531.94\el
254|8--29|Telephone Co.\vtt\$ \hfill 21.19|\vtt\$ \hfill 510.75\endtable

Account Activity for August

Ck#  Date  Memo  Debit  Credit  Balance
245  8–2  Rent  $ 250.00  $ 436.29
246  8–2  Danson Electric  $ 49.28  $ 387.01
247  8–5  Jeff’s Grocery  $ 35.88  $ 351.13
248  Void
249  8–10  Danson Times  $ 19.00  $ 332.13
250  8–14  Pizza Palace  $ 9.95  $ 322.18
251  8–15  Jones Hardware  $ 45.20  $ 276.98
252  8–15  Deposit  $ 255.81  $ 532.79
253  8–21  Account Fee  $ .85  $ 531.94
254  8–29  Telephone Co.  $ 21.19  $ 510.75

\begintable
\multirow2{\#}\vt\multirow2{Date}\vt\multirow2{Memo}\vt Debit/Credit\elspec
|||\trule\el
|||Balance\eltt
\multirow2{245}|\multirow2{8--2}|\multirow2{Rent}|\$ \hfill 250.00\elspec
|||\trule\el
|||\$ \hfill 436.29\elttt{.7pt}
\multirow2{246}|\multirow2{8--2}|\multirow2{Danson Electric}|\$ \hfill 49.28\els
pec
|||\trule\el
|||\$ \hfill 387.01\elttt{.7pt}
\multirow2{247}|\multirow2{8--5}|\multirow2{Jeff's Grocery}|\$ \hfill 35.88\elsp
ec
|||\trule\el
|||\$ \hfill 351.13\elttt{.7pt}
\multirow2{248}||\multirow2{Void}|\elspec
|||\el
|||\elttt{.7pt}
\multirow2{249}|\multirow2{8--10}|\multirow2{Danson Times}|\$ \hfill 19.00\elspe
c
|||\trule\el
|||\$ \hfill 332.13\endtable

#  Date  Memo  Debit/Credit

Balance

245  8–2  Rent  $  250.00

$ 436.29

246  8–2  Danson Electric  $  49.28

$ 387.01

247  8–5  Jeff’s Grocery  $  35.88

$ 351.13

248  Void

249  8–10  Danson Times  $  19.00

$ 332.13

\begintable
Account|Ck\#|Debit|Credit|Balance\eltt
\stparrow3{3in}{\noindent The Lyons Investment Memorial Student Fund following
specifications 11.2.3 of the U.S. Governmental Code CCA1}
|123|\$\hfill 1,000.00||\$\hfill 20,000\elspec
|\trule|\trule|\trule|\trule\el
|124|\$\hfill 200.00||\$\hfill 19,800\elspec
|\trule|\trule|\trule|\trule\el
|||\$\hfill 4,000.00|\$\hfill 23,800\elttt{.7pt}
\multicolumn4\hfil\stpar{5.25in}{At the end of the physical year 1990 the
balance in the account for Lyons Investment Memorial Student Fund will be
tallied and the results will be published as per Governmental Code 3.4.2 of the
last payable week in the session.    The value presented here is a projection of
the actual that will be available.}\hfil|\$\hfill 25,000\endtable

Account  Ck#  Debit  Credit  Balance

The Lyons Investment Memorial Student Fund following specifications 11.2.3 of the U.S. Governmental Code CCA1

123  $1,000.00  $ 20,000
124  $ 200.00  $ 19,800
$4,000.00  $ 23,800

At the end of the physical year 1990 the balance in the account for Lyons Investment Memorial Student Fund will be tallied and the results will be published as per Governmental Code 3.4.2 of the last payable week in the session. The value presented here is a projection of the actual that will be available.

$ 25,000

\begintable
\multicolumn2 \hfill MH commands \hfill \eltt
|\stparrow4{6in}{\noindent compose a message by putting you in the editor on a prototype
message form and then lets you send it.  After completing the
message, use {\it list } to review it or { \it send } to send it.}\elspec
comp|\el
|\el
|\elt
inc|incorporates new mail into your 'inbox' folder.\elt
show  n|displays message {\it No.  n } in the current folder\el
show  m-n|displays message {\it m } to {\it n } in the current folder.\el
show|(default) show the current message.\elt
next|displays the next message in the current folder.\el
prev|displays the previous message in the current folder.\elt
rmm  n|removes message {\it No.  n } in the current folder.\el
rmm  m-n|removes messages {\it m } to {\it n } in the current folder.\el
rmm|(default) removes the current message.\elt
|\stparrow3{6in}{\noindent reply to the current message.  It places you in the editor
with a
prototype response form.  After completing your response, type '{\it
list }' to review it or '{\it send }' it.}\elspec
repl|\el
|\elt
refile  +xxxx|put current message in another folder named xxxx\elt
folder  +xxxx|go to folder named xxxx.\el
folders|prints a list of all folders.\elt
|\stparrow2{6in}{\noindent produce a one line per message scan listing.  '{\it scan m-n
}' prints
a list of the messages from m to n in your current folder.}\elspec
scam m-n|\el
scan  m-n  +xxxx|lists all the messages in folder named xxxx.\el
scan  last:-n  +xxxx|lists last {\it n } messages in folder named xxxx.\el
scan|(default) listing of all the messages in your current folder.\elt
forw|forward the current message to another user.\elt
ali|list mail aliases\endtable
\vskip 1cm
\begintable
\multicolumn2\hfil  Practical commands:\hfil \eltt
comp -editor vi\hfill|Write a message using the editor vi\hfill\elt
forw n -editor vi\hfill|Forward message No.  n using the editor vi\hfill\elt
forw n -form components\hfill|Edit a returned message No.  n \hfill\elt
forw n -editor vi -form components\hfill|Edit a returned message No.   n with vi as
editor\hfill\endtable

MH commands

compose a message by putting you in the editor on a prototype message form and then lets you send it. After completing the message, use list to review it or send to send it. comp

inc  incorporates new mail into your ’inbox’ folder.
show n  displays message No. n in the current folder
show m-n  displays message m to n in the current folder.
show  (default) show the current message.
next  displays the next message in the current folder.
prev  displays the previous message in the current folder.
rmm n  removes message No. n in the current folder.
rmm m-n  removes messages m to n in the current folder.
rmm  (default) removes the current message.

reply to the current message. It places you in the editor with a prototype response form. After completing your response, type ’list ’ to review it or ’send ’ it.

repl

refile +xxxx  put current message in another folder named xxxx
folder +xxxx  go to folder named xxxx.
folders  prints a list of all folders.

produce a one line per message scan listing. ’scan m-n ’ prints a list of the messages from m to n in your current folder.

scam m-n

scan m-n +xxxx  lists all the messages in folder named xxxx.
scan last:-n +xxxx  lists last n messages in folder named xxxx.
scan  (default) listing of all the messages in your current folder.
forw  forward the current message to another user.
ali  list mail aliases

Practical commands:

comp -editor vi  Write a message using the editor vi
forw n -editor vi  Forward message No. n using the editor vi
forw n -form components  Edit a returned message No. n
forw n -editor vi -form components  Edit a returned message No. n with vi as editor

Obtain this guide by tex tables guide