Lighten up tables.

This commit is contained in:
Fred Drake 1998-04-11 20:53:03 +00:00
parent 17e564042d
commit ee60191d1d
26 changed files with 49 additions and 63 deletions

View File

@ -10,7 +10,7 @@ except that the type of objects stored in them is constrained. The
type is specified at object creation time by using a \dfn{type code},
which is a single character. The following type codes are defined:
\begin{tableiii}{|c|c|c|}{character}{Type code}{Type}{Minimum size in bytes}
\begin{tableiii}{c|l|c}{code}{Type code}{C Type}{Minimum size in bytes}
\lineiii{'c'}{character}{1}
\lineiii{'b'}{signed integer}{1}
\lineiii{'B'}{unsigned integer}{1}

View File

@ -253,7 +253,7 @@ the particular type of callback, and \var{data} is the data returned
for this \var{type} of callback. The type of the data depends on the
\var{type} of callback as follows:
\begin{tableii}{|l|p{4in}|}{code}{Type}{Value}
\begin{tableii}{l|p{4in}}{code}{Type}{Value}
\lineii{audio}{String which can be passed unmodified to
\function{al.writesamps()}.}
\lineii{pnum}{Integer giving the program (track) number.}

View File

@ -377,7 +377,7 @@ Methods:
Form objects have the following data attributes; see the FORMS
documentation:
\begin{tableiii}{|l|c|l|}{member}{Name}{Type}{Meaning}
\begin{tableiii}{l|l|l}{member}{Name}{C Type}{Meaning}
\lineiii{window}{int (read-only)}{GL window id}
\lineiii{w}{float}{form width}
\lineiii{h}{float}{form height}
@ -436,7 +436,7 @@ method without arguments to remove the callback function.
FORMS objects have these data attributes; see the FORMS documentation:
\begin{tableiii}{|l|c|l|}{member}{Name}{Type}{Meaning}
\begin{tableiii}{l|l|l}{member}{Name}{C Type}{Meaning}
\lineiii{objclass}{int (read-only)}{object class}
\lineiii{type}{int (read-only)}{object type}
\lineiii{boxtype}{int}{box type}

View File

@ -18,7 +18,7 @@ contain the byte stream to test.
The following image types are recognized, as listed below with the
return value from \function{what()}:
\begin{tableii}{|l|l|}{code}{Value}{Image format}
\begin{tableii}{l|l}{code}{Value}{Image format}
\lineii{'rgb'}{SGI ImgLib Files}
\lineii{'gif'}{GIF 87a and 89a Files}
\lineii{'pbm'}{Portable Bitmap Files}

View File

@ -40,7 +40,7 @@ Set various options. Subsequent \function{compress()} and
\function{decompress()} calls will use these options. The following
options are available:
\begin{tableii}{|l|p{3in}|}{code}{Option}{Effect}
\begin{tableii}{l|p{3in}}{code}{Option}{Effect}
\lineii{'forcegray'}{%
Force output to be grayscale, even if input is RGB.}
\lineii{'quality'}{%

View File

@ -84,7 +84,7 @@ sign should be placed for positive and negative monetary values.
The possible values for \code{p_sign_posn} and \code{n_sign_posn}
are given below.
\begin{tableii}{|c|l|}{code}{Value}{Explanation}
\begin{tableii}{c|l}{code}{Value}{Explanation}
\lineii{0}{Currency and value are surrounded by parentheses.}
\lineii{1}{The sign should precede the value and currency symbol.}
\lineii{2}{The sign should follow the value and currency symbol.}

View File

@ -102,7 +102,7 @@ All methods raise \exception{IOError} when the request fails.
Format characters for the \method{lock()} method have the following
meaning:
\begin{tableii}{|c|l|}{samp}{Format}{Meaning}
\begin{tableii}{c|l}{samp}{Format}{Meaning}
\lineii{u}{unlock the specified region}
\lineii{r}{request a read lock for the specified section}
\lineii{w}{request a write lock for the specified section}
@ -110,7 +110,7 @@ meaning:
In addition the following modifiers can be added to the format:
\begin{tableiii}{|c|l|c|}{samp}{Modifier}{Meaning}{Notes}
\begin{tableiii}{c|l|c}{samp}{Modifier}{Meaning}{Notes}
\lineiii{|}{wait until the lock has been granted}{}
\lineiii{?}{return the first lock conflicting with the requested lock, or
\code{None} if there is no conflict.}{(1)}
@ -126,7 +126,7 @@ request from being granted; it is for query purposes only.
Format characters for the \method{flags()} method have the following
meanings:
\begin{tableii}{|c|l|}{samp}{Format}{Meaning}
\begin{tableii}{c|l}{samp}{Format}{Meaning}
\lineii{a}{append only flag}
\lineii{c}{close on exec flag}
\lineii{n}{no delay flag (also called non-blocking flag)}
@ -135,7 +135,7 @@ meanings:
In addition the following modifiers can be added to the format:
\begin{tableiii}{|c|l|c|}{samp}{Modifier}{Meaning}{Notes}
\begin{tableiii}{c|l|c}{samp}{Modifier}{Meaning}{Notes}
\lineiii{!}{turn the specified flags 'off', instead of the default 'on'}{(1)}
\lineiii{=}{replace the flags, instead of the default 'OR' operation}{(1)}
\lineiii{?}{return a string in which the characters represent the flags that

View File

@ -401,7 +401,7 @@ Abbreviations can be used for any key names, as long as the
abbreviation is unambiguous. The following are the keys currently
defined:
\begin{tableii}{|l|l|}{code}{Valid Arg}{Meaning}
\begin{tableii}{l|l}{code}{Valid Arg}{Meaning}
\lineii{'calls'}{call count}
\lineii{'cumulative'}{cumulative time}
\lineii{'file'}{file name}

View File

@ -146,7 +146,7 @@ These functiona are used to retrieve resource usage information:
man page for detailed information about these values. A brief
summary is presented here:
\begin{tableii}{|r|l|}{code}{Offset}{Resource}
\begin{tableii}{r|l}{code}{Offset}{Resource}
\lineii{0}{time in user mode (float)}
\lineii{1}{time in system mode (float)}
\lineii{2}{maximum resident set size}

View File

@ -39,7 +39,7 @@ The module defines the following exception and functions:
Format characters have the following meaning; the conversion between C
and Python values should be obvious given their types:
\begin{tableiii}{|c|l|l|}{samp}{Format}{C}{Python}
\begin{tableiii}{c|l|l}{samp}{Format}{C Type}{Python}
\lineiii{x}{pad byte}{no value}
\lineiii{c}{char}{string of length 1}
\lineiii{b}{signed char}{integer}
@ -81,7 +81,7 @@ Alternatively, the first character of the format string can be used to
indicate the byte order, size and alignment of the packed data,
according to the following table:
\begin{tableiii}{|c|l|l|}{samp}{Character}{Byte order}{Size and alignment}
\begin{tableiii}{c|l|l}{samp}{Character}{Byte order}{Size and alignment}
\lineiii{@}{native}{native}
\lineiii{=}{native}{standard}
\lineiii{<}{little-endian}{standard}

View File

@ -129,7 +129,7 @@ Convert a tuple representing a time as returned by \code{gmtime()} or
The following directives, shown without the optional field width and
precision specification, are replaced by the indicated characters:
\begin{tableii}{|c|p{24em}|}{code}{Directive}{Meaning}
\begin{tableii}{c|p{24em}}{code}{Directive}{Meaning}
\lineii{\%a}{Locale's abbreviated weekday name.}
\lineii{\%A}{Locale's full weekday name.}
\lineii{\%b}{Locale's abbreviated month name.}

View File

@ -62,9 +62,8 @@ their operands.)
These are the Boolean operations, ordered by ascending priority:
\indexii{Boolean}{operations}
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} or \var{y}}{if \var{x} is false, then \var{y}, else \var{x}}{(1)}
\hline
\lineiii{\var{x} and \var{y}}{if \var{x} is false, then \var{x}, else \var{y}}{(1)}
\hline
\lineiii{not \var{x}}{if \var{x} is false, then \code{1}, else \code{0}}{(2)}
@ -102,7 +101,7 @@ all when \code{x < y} is found to be false).
This table summarizes the comparison operations:
\begin{tableiii}{|c|l|c|}{code}{Operation}{Meaning}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Meaning}{Notes}
\lineiii{<}{strictly less than}{}
\lineiii{<=}{less than or equal}{}
\lineiii{>}{strictly greater than}{}
@ -212,7 +211,7 @@ ascending priority (operations in the same box have the same
priority; all numeric operations have a higher priority than
comparison operations):
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} + \var{y}}{sum of \var{x} and \var{y}}{}
\lineiii{\var{x} - \var{y}}{difference of \var{x} and \var{y}}{}
\hline
@ -277,17 +276,13 @@ operations (\samp{+} and \samp{-}).
This table lists the bit-string operations sorted in ascending
priority (operations in the same box have the same priority):
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} | \var{y}}{bitwise \dfn{or} of \var{x} and \var{y}}{}
\hline
\lineiii{\var{x} \^{} \var{y}}{bitwise \dfn{exclusive or} of \var{x} and \var{y}}{}
\hline
\lineiii{\var{x} \&{} \var{y}}{bitwise \dfn{and} of \var{x} and \var{y}}{}
\hline
\lineiii{\var{x} << \var{n}}{\var{x} shifted left by \var{n} bits}{(1), (2)}
\lineiii{\var{x} >> \var{n}}{\var{x} shifted right by \var{n} bits}{(1), (3)}
\hline
\hline
\lineiii{\~\var{x}}{the bits of \var{x} inverted}{}
\end{tableiii}
\indexiii{operations on}{integer}{types}
@ -337,13 +332,12 @@ This table lists the sequence operations sorted in ascending priority
\var{s} and \var{t} are sequences of the same type; \var{n}, \var{i}
and \var{j} are integers:
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} in \var{s}}{\code{1} if an item of \var{s} is equal to \var{x}, else \code{0}}{}
\lineiii{\var{x} not in \var{s}}{\code{0} if an item of \var{s} is
equal to \var{x}, else \code{1}}{}
\hline
\lineiii{\var{s} + \var{t}}{the concatenation of \var{s} and \var{t}}{}
\hline
\lineiii{\var{s} * \var{n}{\rm ,} \var{n} * \var{s}}{\var{n} copies of \var{s} concatenated}{(3)}
\hline
\lineiii{\var{s}[\var{i}]}{\var{i}'th item of \var{s}, origin 0}{(1)}
@ -456,7 +450,7 @@ The following operations are defined on mutable sequence types (where
\indexiii{mutable}{sequence}{types}
\indexii{list}{type}
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{s}[\var{i}] = \var{x}}
{item \var{i} of \var{s} is replaced by \var{x}}{}
\lineiii{\var{s}[\var{i}:\var{j}] = \var{t}}
@ -542,7 +536,7 @@ Dictionaries are created by placing a comma-separated list of
The following operations are defined on mappings (where \var{a} is a
mapping, \var{k} is a key and \var{x} is an arbitrary object):
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{len(\var{a})}{the number of items in \var{a}}{}
\lineiii{\var{a}[\var{k}]}{the item of \var{a} with key \var{k}}{(1)}
\lineiii{\var{a}[\var{k}] = \var{x}}{set \code{\var{a}[\var{k}]} to \var{x}}{}

View File

@ -10,7 +10,7 @@ except that the type of objects stored in them is constrained. The
type is specified at object creation time by using a \dfn{type code},
which is a single character. The following type codes are defined:
\begin{tableiii}{|c|c|c|}{character}{Type code}{Type}{Minimum size in bytes}
\begin{tableiii}{c|l|c}{code}{Type code}{C Type}{Minimum size in bytes}
\lineiii{'c'}{character}{1}
\lineiii{'b'}{signed integer}{1}
\lineiii{'B'}{unsigned integer}{1}

View File

@ -253,7 +253,7 @@ the particular type of callback, and \var{data} is the data returned
for this \var{type} of callback. The type of the data depends on the
\var{type} of callback as follows:
\begin{tableii}{|l|p{4in}|}{code}{Type}{Value}
\begin{tableii}{l|p{4in}}{code}{Type}{Value}
\lineii{audio}{String which can be passed unmodified to
\function{al.writesamps()}.}
\lineii{pnum}{Integer giving the program (track) number.}

View File

@ -377,7 +377,7 @@ Methods:
Form objects have the following data attributes; see the FORMS
documentation:
\begin{tableiii}{|l|c|l|}{member}{Name}{Type}{Meaning}
\begin{tableiii}{l|l|l}{member}{Name}{C Type}{Meaning}
\lineiii{window}{int (read-only)}{GL window id}
\lineiii{w}{float}{form width}
\lineiii{h}{float}{form height}
@ -436,7 +436,7 @@ method without arguments to remove the callback function.
FORMS objects have these data attributes; see the FORMS documentation:
\begin{tableiii}{|l|c|l|}{member}{Name}{Type}{Meaning}
\begin{tableiii}{l|l|l}{member}{Name}{C Type}{Meaning}
\lineiii{objclass}{int (read-only)}{object class}
\lineiii{type}{int (read-only)}{object type}
\lineiii{boxtype}{int}{box type}

View File

@ -18,7 +18,7 @@ contain the byte stream to test.
The following image types are recognized, as listed below with the
return value from \function{what()}:
\begin{tableii}{|l|l|}{code}{Value}{Image format}
\begin{tableii}{l|l}{code}{Value}{Image format}
\lineii{'rgb'}{SGI ImgLib Files}
\lineii{'gif'}{GIF 87a and 89a Files}
\lineii{'pbm'}{Portable Bitmap Files}

View File

@ -40,7 +40,7 @@ Set various options. Subsequent \function{compress()} and
\function{decompress()} calls will use these options. The following
options are available:
\begin{tableii}{|l|p{3in}|}{code}{Option}{Effect}
\begin{tableii}{l|p{3in}}{code}{Option}{Effect}
\lineii{'forcegray'}{%
Force output to be grayscale, even if input is RGB.}
\lineii{'quality'}{%

View File

@ -84,7 +84,7 @@ sign should be placed for positive and negative monetary values.
The possible values for \code{p_sign_posn} and \code{n_sign_posn}
are given below.
\begin{tableii}{|c|l|}{code}{Value}{Explanation}
\begin{tableii}{c|l}{code}{Value}{Explanation}
\lineii{0}{Currency and value are surrounded by parentheses.}
\lineii{1}{The sign should precede the value and currency symbol.}
\lineii{2}{The sign should follow the value and currency symbol.}

View File

@ -102,7 +102,7 @@ All methods raise \exception{IOError} when the request fails.
Format characters for the \method{lock()} method have the following
meaning:
\begin{tableii}{|c|l|}{samp}{Format}{Meaning}
\begin{tableii}{c|l}{samp}{Format}{Meaning}
\lineii{u}{unlock the specified region}
\lineii{r}{request a read lock for the specified section}
\lineii{w}{request a write lock for the specified section}
@ -110,7 +110,7 @@ meaning:
In addition the following modifiers can be added to the format:
\begin{tableiii}{|c|l|c|}{samp}{Modifier}{Meaning}{Notes}
\begin{tableiii}{c|l|c}{samp}{Modifier}{Meaning}{Notes}
\lineiii{|}{wait until the lock has been granted}{}
\lineiii{?}{return the first lock conflicting with the requested lock, or
\code{None} if there is no conflict.}{(1)}
@ -126,7 +126,7 @@ request from being granted; it is for query purposes only.
Format characters for the \method{flags()} method have the following
meanings:
\begin{tableii}{|c|l|}{samp}{Format}{Meaning}
\begin{tableii}{c|l}{samp}{Format}{Meaning}
\lineii{a}{append only flag}
\lineii{c}{close on exec flag}
\lineii{n}{no delay flag (also called non-blocking flag)}
@ -135,7 +135,7 @@ meanings:
In addition the following modifiers can be added to the format:
\begin{tableiii}{|c|l|c|}{samp}{Modifier}{Meaning}{Notes}
\begin{tableiii}{c|l|c}{samp}{Modifier}{Meaning}{Notes}
\lineiii{!}{turn the specified flags 'off', instead of the default 'on'}{(1)}
\lineiii{=}{replace the flags, instead of the default 'OR' operation}{(1)}
\lineiii{?}{return a string in which the characters represent the flags that

View File

@ -401,7 +401,7 @@ Abbreviations can be used for any key names, as long as the
abbreviation is unambiguous. The following are the keys currently
defined:
\begin{tableii}{|l|l|}{code}{Valid Arg}{Meaning}
\begin{tableii}{l|l}{code}{Valid Arg}{Meaning}
\lineii{'calls'}{call count}
\lineii{'cumulative'}{cumulative time}
\lineii{'file'}{file name}

View File

@ -146,7 +146,7 @@ These functiona are used to retrieve resource usage information:
man page for detailed information about these values. A brief
summary is presented here:
\begin{tableii}{|r|l|}{code}{Offset}{Resource}
\begin{tableii}{r|l}{code}{Offset}{Resource}
\lineii{0}{time in user mode (float)}
\lineii{1}{time in system mode (float)}
\lineii{2}{maximum resident set size}

View File

@ -39,7 +39,7 @@ The module defines the following exception and functions:
Format characters have the following meaning; the conversion between C
and Python values should be obvious given their types:
\begin{tableiii}{|c|l|l|}{samp}{Format}{C}{Python}
\begin{tableiii}{c|l|l}{samp}{Format}{C Type}{Python}
\lineiii{x}{pad byte}{no value}
\lineiii{c}{char}{string of length 1}
\lineiii{b}{signed char}{integer}
@ -81,7 +81,7 @@ Alternatively, the first character of the format string can be used to
indicate the byte order, size and alignment of the packed data,
according to the following table:
\begin{tableiii}{|c|l|l|}{samp}{Character}{Byte order}{Size and alignment}
\begin{tableiii}{c|l|l}{samp}{Character}{Byte order}{Size and alignment}
\lineiii{@}{native}{native}
\lineiii{=}{native}{standard}
\lineiii{<}{little-endian}{standard}

View File

@ -129,7 +129,7 @@ Convert a tuple representing a time as returned by \code{gmtime()} or
The following directives, shown without the optional field width and
precision specification, are replaced by the indicated characters:
\begin{tableii}{|c|p{24em}|}{code}{Directive}{Meaning}
\begin{tableii}{c|p{24em}}{code}{Directive}{Meaning}
\lineii{\%a}{Locale's abbreviated weekday name.}
\lineii{\%A}{Locale's full weekday name.}
\lineii{\%b}{Locale's abbreviated month name.}

View File

@ -62,9 +62,8 @@ their operands.)
These are the Boolean operations, ordered by ascending priority:
\indexii{Boolean}{operations}
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} or \var{y}}{if \var{x} is false, then \var{y}, else \var{x}}{(1)}
\hline
\lineiii{\var{x} and \var{y}}{if \var{x} is false, then \var{x}, else \var{y}}{(1)}
\hline
\lineiii{not \var{x}}{if \var{x} is false, then \code{1}, else \code{0}}{(2)}
@ -102,7 +101,7 @@ all when \code{x < y} is found to be false).
This table summarizes the comparison operations:
\begin{tableiii}{|c|l|c|}{code}{Operation}{Meaning}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Meaning}{Notes}
\lineiii{<}{strictly less than}{}
\lineiii{<=}{less than or equal}{}
\lineiii{>}{strictly greater than}{}
@ -212,7 +211,7 @@ ascending priority (operations in the same box have the same
priority; all numeric operations have a higher priority than
comparison operations):
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} + \var{y}}{sum of \var{x} and \var{y}}{}
\lineiii{\var{x} - \var{y}}{difference of \var{x} and \var{y}}{}
\hline
@ -277,17 +276,13 @@ operations (\samp{+} and \samp{-}).
This table lists the bit-string operations sorted in ascending
priority (operations in the same box have the same priority):
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} | \var{y}}{bitwise \dfn{or} of \var{x} and \var{y}}{}
\hline
\lineiii{\var{x} \^{} \var{y}}{bitwise \dfn{exclusive or} of \var{x} and \var{y}}{}
\hline
\lineiii{\var{x} \&{} \var{y}}{bitwise \dfn{and} of \var{x} and \var{y}}{}
\hline
\lineiii{\var{x} << \var{n}}{\var{x} shifted left by \var{n} bits}{(1), (2)}
\lineiii{\var{x} >> \var{n}}{\var{x} shifted right by \var{n} bits}{(1), (3)}
\hline
\hline
\lineiii{\~\var{x}}{the bits of \var{x} inverted}{}
\end{tableiii}
\indexiii{operations on}{integer}{types}
@ -337,13 +332,12 @@ This table lists the sequence operations sorted in ascending priority
\var{s} and \var{t} are sequences of the same type; \var{n}, \var{i}
and \var{j} are integers:
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{x} in \var{s}}{\code{1} if an item of \var{s} is equal to \var{x}, else \code{0}}{}
\lineiii{\var{x} not in \var{s}}{\code{0} if an item of \var{s} is
equal to \var{x}, else \code{1}}{}
\hline
\lineiii{\var{s} + \var{t}}{the concatenation of \var{s} and \var{t}}{}
\hline
\lineiii{\var{s} * \var{n}{\rm ,} \var{n} * \var{s}}{\var{n} copies of \var{s} concatenated}{(3)}
\hline
\lineiii{\var{s}[\var{i}]}{\var{i}'th item of \var{s}, origin 0}{(1)}
@ -456,7 +450,7 @@ The following operations are defined on mutable sequence types (where
\indexiii{mutable}{sequence}{types}
\indexii{list}{type}
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{\var{s}[\var{i}] = \var{x}}
{item \var{i} of \var{s} is replaced by \var{x}}{}
\lineiii{\var{s}[\var{i}:\var{j}] = \var{t}}
@ -542,7 +536,7 @@ Dictionaries are created by placing a comma-separated list of
The following operations are defined on mappings (where \var{a} is a
mapping, \var{k} is a key and \var{x} is an arbitrary object):
\begin{tableiii}{|c|l|c|}{code}{Operation}{Result}{Notes}
\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
\lineiii{len(\var{a})}{the number of items in \var{a}}{}
\lineiii{\var{a}[\var{k}]}{the item of \var{a} with key \var{k}}{(1)}
\lineiii{\var{a}[\var{k}] = \var{x}}{set \code{\var{a}[\var{k}]} to \var{x}}{}

View File

@ -720,7 +720,7 @@ sub do_env_memberdescni{
sub setup_column_alignments{
local($_) = @_;
my($j1,$a1,$a2,$a3,$j4) = split(/[|]/,$_);
my($a1,$a2,$a3) = split(/[|]/,$_);
my($th1,$th2,$th3) = ('<th>', '<th>', '<th>');
$col_aligns[0] = (($a1 eq "c") ? "<td align=center>" : "<td>");
$col_aligns[1] = (($a2 eq "c") ? "<td align=center>" : "<td>");

View File

@ -600,9 +600,8 @@
\newenvironment{tableii}[4]{%
\begin{center}%
\def\lineii##1##2{\csname#2\endcsname{##1}&##2\\}%
\begin{tabular}{#1}\hline \strong{#3}&\strong{#4} \\ \hline%
\begin{tabular}{#1}\strong{#3}&\strong{#4} \\ \hline%
}{%
\hline%
\end{tabular}%
\end{center}%
}
@ -610,9 +609,8 @@
\newenvironment{tableiii}[5]{%
\begin{center}%
\def\lineiii##1##2##3{\csname#2\endcsname{##1}&##2&##3\\}%
\begin{tabular}{#1}\hline \strong{#3}&\strong{#4}&\strong{#5} \\ \hline%
\begin{tabular}{#1}\strong{#3}&\strong{#4}&\strong{#5} \\ \hline%
}{%
\hline%
\end{tabular}%
\end{center}%
}