Tables

Simple tables

Simple tables are compact and easy to construct, and are best suited for displaying simple data sets.

To construct a simple table:

  • Define the horizontal borders with the = and - characters.

    • The = character is used for top and bottom table borders, and to separate optional header rows from the table body.

    • The - character is used to indicate column spans in a single row by underlining the joined columns, and may optionally be used to separate rows.

  • Regardless of spans, the top border must fully describe all table columns and there must be at least two columns.

  • Blank lines are required before and after the table.

  • Left edges should align with the left edge of the preceding text blocks. If indented, the table is considered to be part of a block quote.

The simple table shown below includes three columns, one header row, and four body rows.

=====  =====  =======
  A      B    A and B
=====  =====  =======
False  False  False
True   False  False
False  True   False
True   True   True
=====  =====  =======

It is rendered as

A

B

A and B

False

False

False

True

False

False

False

True

False

True

True

True

The simple table shown below extends the previous example by adding a column span and another header row.

=====  =====  ======
   Inputs     Output
------------  ------
  A      B    A or B
=====  =====  ======
False  False  False
True   False  True
False  True   True
True   True   True
=====  =====  ======

It is rendered as

Inputs

Output

A

B

A or B

False

False

False

True

False

True

False

True

True

True

True

True

Grid tables

Grid tables provide a complete table representation via grid-like “ASCII art”. Grid tables allow arbitrary cell contents, and both row and column spans. However, grid tables can be cumbersome to produce, especially for simple data sets.

To construct a grid table:

  • Define the grid using the -, =, |, and + characters.

    • The - character is used for horizontal lines (row separators).

    • The = character may be used to separate optional header rows from the table body.

    • The | character is used for vertical lines (column separators).

    • The + character is used for intersections of horizontal and vertical lines.

  • Blank lines are required before and after the table.

  • Left edges should align with the left edge of the preceding text blocks. If indented, the table is considered to be part of a block quote.

In the simplest case, a grid table is not required to have headers.

+-----------+-----------+
|     A     |     B     |
+-----------+-----------+
|     C     |     D     |
+-----------+-----------+

It is rendered as

A

B

C

D

The grid table shown below includes a heading row, 4 body rows, 3 columns, a column span, a row span, and a content block.

+------------+------------+-----------+
| Header 1   | Header 2   | Header 3  |
+============+============+===========+
| body row 1 | column 2   | column 3  |
+------------+------------+-----------+
| body row 2 | Cells may span columns.|
+------------+------------+-----------+
| body row 3 | Cells may  | - Cells   |
+------------+ span rows. | - contain |
| body row 4 |            | - blocks. |
+------------+------------+-----------+

It is rendered as

Header 1

Header 2

Header 3

body row 1

column 2

column 3

body row 2

Cells may span columns.

body row 3

Cells may span rows.

  • Cells

  • contain

  • blocks.

body row 4

You can include a table caption with the table directive.

.. table:: A grid table representation

+------------+------------+-----------+
| Header 1   | Header 2   | Header 3  |
+============+============+===========+
| body row 1 | column 2   | column 3  |
+------------+------------+-----------+
| body row 2 | Cells may span columns.|
+------------+------------+-----------+
| body row 3 | Cells may  | - Cells   |
+------------+ span rows. | - contain |
| body row 4 |            | - blocks. |
+------------+------------+-----------+

It is rendered as

A grid table representation

Header 1

Header 2

Header 3

body row 1

column 2

column 3

body row 2

Cells may span columns.

body row 3

Cells may span rows.

  • Cells

  • contain

  • blocks.

body row 4