Closes #4159: add LaTeX tabular column specifications to tables that otherwise are cut off or have overlapping text.
diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst
index 28ea89d..9e1a9c7 100644
--- a/Doc/library/codecs.rst
+++ b/Doc/library/codecs.rst
@@ -315,6 +315,8 @@
 providing the *errors* string argument.  The following string values are defined
 and implemented by all standard Python codecs:
 
+.. tabularcolumns:: |l|L|
+
 +-------------------------+-----------------------------------------------+
 | Value                   | Meaning                                       |
 +=========================+===============================================+
@@ -926,6 +928,8 @@
 
 * an IBM PC code page, which is ASCII compatible
 
+.. tabularcolumns:: |l|p{0.3\linewidth}|p{0.3\linewidth}|
+
 +-----------------+--------------------------------+--------------------------------+
 | Codec           | Aliases                        | Languages                      |
 +=================+================================+================================+
@@ -1140,6 +1144,8 @@
 
 .. XXX fix here, should be in above table
 
+.. tabularcolumns:: |l|p{0.3\linewidth}|p{0.3\linewidth}|
+
 +--------------------+---------+---------------------------+
 | Codec              | Aliases | Purpose                   |
 +====================+=========+===========================+
@@ -1182,6 +1188,8 @@
 
 The following codecs provide bytes-to-bytes mappings.
 
+.. tabularcolumns:: |l|p{0.3\linewidth}|p{0.3\linewidth}|
+
 +--------------------+---------------------------+---------------------------+
 | Codec              | Aliases                   | Purpose                   |
 +====================+===========================+===========================+
@@ -1208,6 +1216,8 @@
 
 The following codecs provide string-to-string mappings.
 
+.. tabularcolumns:: |l|p{0.3\linewidth}|p{0.3\linewidth}|
+
 +--------------------+---------------------------+---------------------------+
 | Codec              | Aliases                   | Purpose                   |
 +====================+===========================+===========================+
diff --git a/Doc/library/collections.abc.rst b/Doc/library/collections.abc.rst
index 5eea0df..115ce10 100644
--- a/Doc/library/collections.abc.rst
+++ b/Doc/library/collections.abc.rst
@@ -31,6 +31,8 @@
 
 The collections module offers the following :term:`ABCs <abstract base class>`:
 
+.. tabularcolumns:: |l|L|L|L|
+
 =========================  =====================  ======================  ====================================================
 ABC                        Inherits from          Abstract Methods        Mixin Methods
 =========================  =====================  ======================  ====================================================
@@ -134,7 +136,7 @@
 the full :class:`Set` API, it only necessary to supply the three underlying
 abstract methods: :meth:`__contains__`, :meth:`__iter__`, and :meth:`__len__`.
 The ABC supplies the remaining methods such as :meth:`__and__` and
-:meth:`isdisjoint` ::
+:meth:`isdisjoint`::
 
     class ListBasedSet(collections.Set):
          ''' Alternate set implementation favoring space over speed
diff --git a/Doc/library/concurrent.futures.rst b/Doc/library/concurrent.futures.rst
index 7ed99d5..51584ef 100644
--- a/Doc/library/concurrent.futures.rst
+++ b/Doc/library/concurrent.futures.rst
@@ -346,6 +346,8 @@
    *return_when* indicates when this function should return.  It must be one of
    the following constants:
 
+   .. tabularcolumns:: |l|L|
+
    +-----------------------------+----------------------------------------+
    | Constant                    | Description                            |
    +=============================+========================================+
diff --git a/Doc/library/email.policy.rst b/Doc/library/email.policy.rst
index 51ac5c0..06d9821 100644
--- a/Doc/library/email.policy.rst
+++ b/Doc/library/email.policy.rst
@@ -139,6 +139,8 @@
       Controls the type of Content Transfer Encodings that may be or are
       required to be used.  The possible values are:
 
+      .. tabularcolumns:: |l|L|
+
       ========  ===============================================================
       ``7bit``  all data must be "7 bit clean" (ASCII-only).  This means that
                 where necessary data will be encoded using either
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 91d0aaf..c82e03f 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -843,7 +843,7 @@
 
    ========= ===============================================================
    Character Meaning
-   --------- ---------------------------------------------------------------
+   ========= ===============================================================
    ``'r'``   open for reading (default)
    ``'w'``   open for writing, truncating the file first
    ``'x'``   open for exclusive creation, failing if the file already exists
diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst
index 01bbce8..40f482b 100644
--- a/Doc/library/inspect.rst
+++ b/Doc/library/inspect.rst
@@ -520,6 +520,8 @@
       Describes how argument values are bound to the parameter.  Possible values
       (accessible via :class:`Parameter`, like ``Parameter.KEYWORD_ONLY``):
 
+      .. tabularcolumns:: |l|L|
+
       +------------------------+----------------------------------------------+
       |    Name                | Meaning                                      |
       +========================+==============================================+
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index d30c5fd..a8d5fe3 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -187,6 +187,8 @@
 
 The following table summarizes the ABCs provided by the :mod:`io` module:
 
+.. tabularcolumns:: |l|l|L|L|
+
 =========================  ==================  ========================  ==================================================
 ABC                        Inherits            Stub Methods              Mixin Methods and Properties
 =========================  ==================  ========================  ==================================================
diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
index d46f1cf..9600193 100644
--- a/Doc/library/locale.rst
+++ b/Doc/library/locale.rst
@@ -55,6 +55,8 @@
    Returns the database of the local conventions as a dictionary. This dictionary
    has the following strings as keys:
 
+   .. tabularcolumns:: |l|l|L|
+
    +----------------------+-------------------------------------+--------------------------------+
    | Category             | Key                                 | Meaning                        |
    +======================+=====================================+================================+
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index 11863a9..8203733 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -1037,6 +1037,8 @@
 
    The following keyword arguments are supported.
 
+   .. tabularcolumns:: |l|L|
+
    +--------------+---------------------------------------------+
    | Format       | Description                                 |
    +==============+=============================================+
diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst
index a72ca44..4212e02 100644
--- a/Doc/library/subprocess.rst
+++ b/Doc/library/subprocess.rst
@@ -169,6 +169,8 @@
 
    .. versionadded:: 3.1
 
+   ..
+
    .. warning::
 
       Invoking the system shell with ``shell=True`` can be a security hazard
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 7745559..e7e853d 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -307,6 +307,8 @@
    programming language; see section 5.2.4.2.2 of the 1999 ISO/IEC C standard
    [C99]_, 'Characteristics of floating types', for details.
 
+   .. tabularcolumns:: |l|l|L|
+
    +---------------------+----------------+--------------------------------------------------+
    | attribute           | float.h macro  | explanation                                      |
    +=====================+================+==================================================+
@@ -646,6 +648,8 @@
    A :term:`struct sequence` that holds information about Python's internal
    representation of integers.  The attributes are read only.
 
+   .. tabularcolumns:: |l|L|
+
    +-------------------------+----------------------------------------------+
    | Attribute               | Explanation                                  |
    +=========================+==============================================+
@@ -1079,6 +1083,8 @@
    A :term:`struct sequence` holding information about the thread
    implementation.
 
+   .. tabularcolumns:: |l|p{0.7\linewidth}|
+
    +------------------+---------------------------------------------------------+
    | Attribute        | Explanation                                             |
    +==================+=========================================================+
diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst
index ed351f5..9860c86 100644
--- a/Doc/library/tkinter.ttk.rst
+++ b/Doc/library/tkinter.ttk.rst
@@ -102,6 +102,8 @@
 
 All the :mod:`ttk` Widgets accepts the following options:
 
+   .. tabularcolumns:: |l|L|
+
    +-----------+--------------------------------------------------------------+
    | Option    | Description                                                  |
    +===========+==============================================================+
@@ -134,8 +136,10 @@
 The following options are supported by widgets that are controlled by a
 scrollbar.
 
+   .. tabularcolumns:: |l|L|
+
    +----------------+---------------------------------------------------------+
-   | option         | description                                             |
+   | Option         | Description                                             |
    +================+=========================================================+
    | xscrollcommand | Used to communicate with horizontal scrollbars.         |
    |                |                                                         |
@@ -158,11 +162,10 @@
 The following options are supported by labels, buttons and other button-like
 widgets.
 
-.. tabularcolumns:: |p{0.2\textwidth}|p{0.7\textwidth}|
-..
+   .. tabularcolumns:: |l|p{0.7\linewidth}|
 
    +--------------+-----------------------------------------------------------+
-   | option       | description                                               |
+   | Option       | Description                                               |
    +==============+===========================================================+
    | text         | Specifies a text string to be displayed inside the widget.|
    +--------------+-----------------------------------------------------------+
@@ -202,8 +205,10 @@
 Compatibility Options
 ^^^^^^^^^^^^^^^^^^^^^
 
+   .. tabularcolumns:: |l|L|
+
    +--------+----------------------------------------------------------------+
-   | option | description                                                    |
+   | Option | Description                                                    |
    +========+================================================================+
    | state  | May be set to "normal" or "disabled" to control the "disabled" |
    |        | state bit. This is a write-only option: setting it changes the |
@@ -216,8 +221,10 @@
 
 The widget state is a bitmap of independent state flags.
 
+   .. tabularcolumns:: |l|L|
+
    +------------+-------------------------------------------------------------+
-   | flag       | description                                                 |
+   | Flag       | Description                                                 |
    +============+=============================================================+
    | active     | The mouse cursor is over the widget and pressing a mouse    |
    |            | button will cause some action to occur                      |
@@ -301,8 +308,10 @@
 
 This widget accepts the following specific options:
 
+   .. tabularcolumns:: |l|L|
+
    +-----------------+--------------------------------------------------------+
-   | option          | description                                            |
+   | Option          | Description                                            |
    +=================+========================================================+
    | exportselection | Boolean value. If set, the widget selection is linked  |
    |                 | to the Window Manager selection (which can be returned |
@@ -380,8 +389,10 @@
 
 This widget accepts the following specific options:
 
+   .. tabularcolumns:: |l|L|
+
    +---------+----------------------------------------------------------------+
-   | option  | description                                                    |
+   | Option  | Description                                                    |
    +=========+================================================================+
    | height  | If present and greater than zero, specifies the desired height |
    |         | of the pane area (not including internal padding or tabs).     |
@@ -404,8 +415,10 @@
 
 There are also specific options for tabs:
 
+   .. tabularcolumns:: |l|L|
+
    +-----------+--------------------------------------------------------------+
-   | option    | description                                                  |
+   | Option    | Description                                                  |
    +===========+==============================================================+
    | state     | Either "normal", "disabled" or "hidden". If "disabled", then |
    |           | the tab is not selectable. If "hidden", then the tab is not  |
@@ -566,8 +579,10 @@
 
 This widget accepts the following specific options:
 
+   .. tabularcolumns:: |l|L|
+
    +----------+---------------------------------------------------------------+
-   | option   | description                                                   |
+   | Option   | Description                                                   |
    +==========+===============================================================+
    | orient   | One of "horizontal" or "vertical". Specifies the orientation  |
    |          | of the progress bar.                                          |
@@ -635,8 +650,10 @@
 
 This widget accepts the following specific option:
 
+   .. tabularcolumns:: |l|L|
+
    +--------+----------------------------------------------------------------+
-   | option | description                                                    |
+   | Option | Description                                                    |
    +========+================================================================+
    | orient | One of "horizontal" or "vertical". Specifies the orientation of|
    |        | the separator.                                                 |
@@ -701,11 +718,10 @@
 
 This widget accepts the following specific options:
 
-.. tabularcolumns:: |p{0.2\textwidth}|p{0.7\textwidth}|
-..
+   .. tabularcolumns:: |l|p{0.7\linewidth}|
 
    +----------------+--------------------------------------------------------+
-   | option         | description                                            |
+   | Option         | Description                                            |
    +================+========================================================+
    | columns        | A list of column identifiers, specifying the number of |
    |                | columns and their names.                               |
@@ -753,8 +769,10 @@
 The following item options may be specified for items in the insert and item
 widget commands.
 
+   .. tabularcolumns:: |l|L|
+
    +--------+---------------------------------------------------------------+
-   | option | description                                                   |
+   | Option | Description                                                   |
    +========+===============================================================+
    | text   | The textual label to display for the item.                    |
    +--------+---------------------------------------------------------------+
@@ -779,8 +797,10 @@
 
 The following options may be specified on tags:
 
+   .. tabularcolumns:: |l|L|
+
    +------------+-----------------------------------------------------------+
-   | option     | description                                               |
+   | Option     | Description                                               |
    +============+===========================================================+
    | foreground | Specifies the text foreground color.                      |
    +------------+-----------------------------------------------------------+
@@ -822,8 +842,10 @@
 
 The Treeview widget generates the following virtual events.
 
+   .. tabularcolumns:: |l|L|
+
    +--------------------+--------------------------------------------------+
-   | event              | description                                      |
+   | Event              | Description                                      |
    +====================+==================================================+
    | <<TreeviewSelect>> | Generated whenever the selection changes.        |
    +--------------------+--------------------------------------------------+
diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst
index 4373f78..aea9450 100644
--- a/Doc/library/turtle.rst
+++ b/Doc/library/turtle.rst
@@ -2301,9 +2301,11 @@
 
 The demo scripts are:
 
+.. tabularcolumns:: |l|L|L|
+
 +----------------+------------------------------+-----------------------+
 | Name           | Description                  | Features              |
-+----------------+------------------------------+-----------------------+
++================+==============================+=======================+
 | bytedesign     | complex classical            | :func:`tracer`, delay,|
 |                | turtle graphics pattern      | :func:`update`        |
 +----------------+------------------------------+-----------------------+
diff --git a/Doc/library/warnings.rst b/Doc/library/warnings.rst
index 8387f5a..ce69f7b 100644
--- a/Doc/library/warnings.rst
+++ b/Doc/library/warnings.rst
@@ -54,6 +54,8 @@
 This categorization is useful to be able to filter out groups of warnings.  The
 following warnings category classes are currently defined:
 
+.. tabularcolumns:: |l|p{0.6\linewidth}|
+
 +----------------------------------+-----------------------------------------------+
 | Class                            | Description                                   |
 +==================================+===============================================+
diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst
index e429f04..45a0e7b 100644
--- a/Doc/library/xml.etree.elementtree.rst
+++ b/Doc/library/xml.etree.elementtree.rst
@@ -278,6 +278,8 @@
 Supported XPath syntax
 ^^^^^^^^^^^^^^^^^^^^^^
 
+.. tabularcolumns:: |l|L|
+
 +-----------------------+------------------------------------------------------+
 | Syntax                | Meaning                                              |
 +=======================+======================================================+
diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst
index 3a53655..bc4d4aa 100644
--- a/Doc/library/xmlrpc.client.rst
+++ b/Doc/library/xmlrpc.client.rst
@@ -72,6 +72,8 @@
    (e.g. that can be marshalled through XML), include the following (and except
    where noted, they are unmarshalled as the same Python type):
 
+   .. tabularcolumns:: |l|L|
+
    +---------------------------------+---------------------------------------------+
    | Name                            | Meaning                                     |
    +=================================+=============================================+