diff --git a/Doc/doc/doc.tex b/Doc/doc/doc.tex
index ef92331..9f74ce2 100644
--- a/Doc/doc/doc.tex
+++ b/Doc/doc/doc.tex
@@ -780,13 +780,23 @@
     matches the \var{cols} value of the corresponding table
     environment.  These are supported for \var{cols} values of
     \code{ii}, \code{iii}, and \code{iv}.  These environments are all
-    built on top of the \env{tabular} environment.
+    built on top of the \env{tabular} environment.  Variants based on
+    the \env{longtable} environment are also provided.
 
     Note that all tables in the standard Python documentation use
     vertical lines between columns, and this must be specified in the
     markup for each table.  A general border around the outside of the
     table is not used, but would be the responsibility of the
-    processor.
+    processor; the document markup should not include an exterior
+    border.
+
+    The \env{longtable}-based variants of the table environments are
+    formatted with extra space before and after, so should only be
+    used on tables which are long enough that splitting over multiple
+    pages is reasonable; tables with fewer than twenty rows should
+    never by marked using the long flavors of the table environments.
+    The header row is repeated across the top of each part of the
+    table.
 
     \begin{envdesc}{tableii}{\p{colspec}\p{col1font}\p{heading1}\p{heading2}}
       Create a two-column table using the \LaTeX{} column specifier
@@ -802,8 +812,15 @@
       \var{heading2}.
     \end{envdesc}
 
+    \begin{envdesc}{longtableii}{\unspecified}
+      Like \env{tableii}, but produces a table which may be broken
+      across page boundaries.  The parameters are the same as for
+      \env{tableii}.
+    \end{envdesc}
+
     \begin{macrodesc}{lineii}{\p{column1}\p{column2}}
-      Create a single table row within a \env{tableii} environment.
+      Create a single table row within a \env{tableii} or
+      \env{longtableii} environment.
       The text for the first column will be generated by applying the
       macro named by the \var{col1font} value when the \env{tableii}
       was opened.
@@ -814,6 +831,12 @@
       The heading for the third column is given by \var{heading3}.
     \end{envdesc}
 
+    \begin{envdesc}{longtableiii}{\unspecified}
+      Like \env{tableiii}, but produces a table which may be broken
+      across page boundaries.  The parameters are the same as for
+      \env{tableiii}.
+    \end{envdesc}
+
     \begin{macrodesc}{lineiii}{\p{column1}\p{column2}\p{column3}}
       Like the \macro{lineii} macro, but with a third column.  The
       text for the third column is given by \var{column3}.
@@ -824,6 +847,12 @@
       The heading for the fourth column is given by \var{heading4}.
     \end{envdesc}
 
+    \begin{envdesc}{longtableiv}{\unspecified}
+      Like \env{tableiv}, but produces a table which may be broken
+      across page boundaries.  The parameters are the same as for
+      \env{tableiv}.
+    \end{envdesc}
+
     \begin{macrodesc}{lineiv}{\p{column1}\p{column2}\p{column3}\p{column4}}
       Like the \macro{lineiii} macro, but with a fourth column.  The
       text for the fourth column is given by \var{column4}.
