From ee60191d1d318684a896794faad9ccbcfe9bd254 Mon Sep 17 00:00:00 2001
From: Fred Drake <fdrake@acm.org>
Date: Sat, 11 Apr 1998 20:53:03 +0000
Subject: Lighten up tables.

---
 Doc/lib/libarray.tex     |  2 +-
 Doc/lib/libcd.tex        |  2 +-
 Doc/lib/libfl.tex        |  4 ++--
 Doc/lib/libimghdr.tex    |  2 +-
 Doc/lib/libjpeg.tex      |  2 +-
 Doc/lib/liblocale.tex    |  2 +-
 Doc/lib/libposixfile.tex |  8 ++++----
 Doc/lib/libprofile.tex   |  2 +-
 Doc/lib/libresource.tex  |  2 +-
 Doc/lib/libstruct.tex    |  4 ++--
 Doc/lib/libtime.tex      |  2 +-
 Doc/lib/libtypes.tex     | 20 +++++++-------------
 Doc/libarray.tex         |  2 +-
 Doc/libcd.tex            |  2 +-
 Doc/libfl.tex            |  4 ++--
 Doc/libimghdr.tex        |  2 +-
 Doc/libjpeg.tex          |  2 +-
 Doc/liblocale.tex        |  2 +-
 Doc/libposixfile.tex     |  8 ++++----
 Doc/libprofile.tex       |  2 +-
 Doc/libresource.tex      |  2 +-
 Doc/libstruct.tex        |  4 ++--
 Doc/libtime.tex          |  2 +-
 Doc/libtypes.tex         | 20 +++++++-------------
 Doc/perl/python.perl     |  2 +-
 Doc/texinputs/python.sty |  6 ++----
 26 files changed, 49 insertions(+), 63 deletions(-)

diff --git a/Doc/lib/libarray.tex b/Doc/lib/libarray.tex
index 19ba91d..180be34 100644
--- a/Doc/lib/libarray.tex
+++ b/Doc/lib/libarray.tex
@@ -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}
diff --git a/Doc/lib/libcd.tex b/Doc/lib/libcd.tex
index e027466..44111a3 100644
--- a/Doc/lib/libcd.tex
+++ b/Doc/lib/libcd.tex
@@ -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.}
diff --git a/Doc/lib/libfl.tex b/Doc/lib/libfl.tex
index a0e0076..7ebec7d 100644
--- a/Doc/lib/libfl.tex
+++ b/Doc/lib/libfl.tex
@@ -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}
diff --git a/Doc/lib/libimghdr.tex b/Doc/lib/libimghdr.tex
index d624f06..2f21a25 100644
--- a/Doc/lib/libimghdr.tex
+++ b/Doc/lib/libimghdr.tex
@@ -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}
diff --git a/Doc/lib/libjpeg.tex b/Doc/lib/libjpeg.tex
index 5b765fa..76e70af 100644
--- a/Doc/lib/libjpeg.tex
+++ b/Doc/lib/libjpeg.tex
@@ -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'}{%
diff --git a/Doc/lib/liblocale.tex b/Doc/lib/liblocale.tex
index 1752790..07361b8 100644
--- a/Doc/lib/liblocale.tex
+++ b/Doc/lib/liblocale.tex
@@ -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.}
diff --git a/Doc/lib/libposixfile.tex b/Doc/lib/libposixfile.tex
index 570a79b..a1f853d 100644
--- a/Doc/lib/libposixfile.tex
+++ b/Doc/lib/libposixfile.tex
@@ -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
diff --git a/Doc/lib/libprofile.tex b/Doc/lib/libprofile.tex
index 758944d..61da988 100644
--- a/Doc/lib/libprofile.tex
+++ b/Doc/lib/libprofile.tex
@@ -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}
diff --git a/Doc/lib/libresource.tex b/Doc/lib/libresource.tex
index b07240a..bb0bff2 100644
--- a/Doc/lib/libresource.tex
+++ b/Doc/lib/libresource.tex
@@ -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}
diff --git a/Doc/lib/libstruct.tex b/Doc/lib/libstruct.tex
index 5703c05..5925328 100644
--- a/Doc/lib/libstruct.tex
+++ b/Doc/lib/libstruct.tex
@@ -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}
diff --git a/Doc/lib/libtime.tex b/Doc/lib/libtime.tex
index a8c134e..ed4f4ef 100644
--- a/Doc/lib/libtime.tex
+++ b/Doc/lib/libtime.tex
@@ -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.}
diff --git a/Doc/lib/libtypes.tex b/Doc/lib/libtypes.tex
index 117cce6..2dfe742 100644
--- a/Doc/lib/libtypes.tex
+++ b/Doc/lib/libtypes.tex
@@ -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}}{}
diff --git a/Doc/libarray.tex b/Doc/libarray.tex
index 19ba91d..180be34 100644
--- a/Doc/libarray.tex
+++ b/Doc/libarray.tex
@@ -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}
diff --git a/Doc/libcd.tex b/Doc/libcd.tex
index e027466..44111a3 100644
--- a/Doc/libcd.tex
+++ b/Doc/libcd.tex
@@ -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.}
diff --git a/Doc/libfl.tex b/Doc/libfl.tex
index a0e0076..7ebec7d 100644
--- a/Doc/libfl.tex
+++ b/Doc/libfl.tex
@@ -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}
diff --git a/Doc/libimghdr.tex b/Doc/libimghdr.tex
index d624f06..2f21a25 100644
--- a/Doc/libimghdr.tex
+++ b/Doc/libimghdr.tex
@@ -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}
diff --git a/Doc/libjpeg.tex b/Doc/libjpeg.tex
index 5b765fa..76e70af 100644
--- a/Doc/libjpeg.tex
+++ b/Doc/libjpeg.tex
@@ -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'}{%
diff --git a/Doc/liblocale.tex b/Doc/liblocale.tex
index 1752790..07361b8 100644
--- a/Doc/liblocale.tex
+++ b/Doc/liblocale.tex
@@ -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.}
diff --git a/Doc/libposixfile.tex b/Doc/libposixfile.tex
index 570a79b..a1f853d 100644
--- a/Doc/libposixfile.tex
+++ b/Doc/libposixfile.tex
@@ -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
diff --git a/Doc/libprofile.tex b/Doc/libprofile.tex
index 758944d..61da988 100644
--- a/Doc/libprofile.tex
+++ b/Doc/libprofile.tex
@@ -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}
diff --git a/Doc/libresource.tex b/Doc/libresource.tex
index b07240a..bb0bff2 100644
--- a/Doc/libresource.tex
+++ b/Doc/libresource.tex
@@ -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}
diff --git a/Doc/libstruct.tex b/Doc/libstruct.tex
index 5703c05..5925328 100644
--- a/Doc/libstruct.tex
+++ b/Doc/libstruct.tex
@@ -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}
diff --git a/Doc/libtime.tex b/Doc/libtime.tex
index a8c134e..ed4f4ef 100644
--- a/Doc/libtime.tex
+++ b/Doc/libtime.tex
@@ -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.}
diff --git a/Doc/libtypes.tex b/Doc/libtypes.tex
index 117cce6..2dfe742 100644
--- a/Doc/libtypes.tex
+++ b/Doc/libtypes.tex
@@ -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}}{}
diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl
index 300ac18..d37aab1 100644
--- a/Doc/perl/python.perl
+++ b/Doc/perl/python.perl
@@ -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>");
diff --git a/Doc/texinputs/python.sty b/Doc/texinputs/python.sty
index c58a55b..fc121b8 100644
--- a/Doc/texinputs/python.sty
+++ b/Doc/texinputs/python.sty
@@ -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}%
 }
-- 
cgit v0.12

