Next: Measuring Tables, Previous: Fixed Width Mode, Up: Text Based Tables
The command table-capture captures plain text in a region and
turns it into a table. Unlike table-recognize (see Table Recognition), the original text does not have a table appearance but
may hold a logical table structure. For example, some elements
separated by known patterns form a two dimensional structure which can
be turned into a table.
Here's an example of data that table-capture can operate on.
The numbers are horizontally separated by a comma and vertically
separated by a newline character.
1, 2, 3, 4
5, 6, 7, 8
, 9, 10
Invoking M-x table-capture on that text produces this table:
+-----+-----+-----+-----+
|1 |2 |3 |4 |
+-----+-----+-----+-----+
|5 |6 |7 |8 |
+-----+-----+-----+-----+
| |9 |10 | |
+-----+-----+-----+-----+
The conversion uses `,' for the column delimiter and newline for a row delimiter, cells are left justified, and minimum cell width is 5.
The command table-release does the opposite of
table-capture. It releases a table by removing the table frame
and cell borders. This leaves the table contents as plain text. One
of the useful applications of table-capture and
table-release is to edit a text in layout. Look at the
following three paragraphs (the latter two are indented with header
lines):
`table-capture' is a powerful command, but mastering its
power requires some practice. Here are some things it can do:
Parse Cell Items By using column delimiter regular
expression and raw delimiter regular
expression, it parses the specified text
area and extracts cell items from
non-table text and then forms a table out
of them.
Capture Text Area When no delimiters are specified it
creates a single cell table. The text in
the specified region is placed in that
cell.
Applying table-capture to a region containing the above three
paragraphs, with empty strings for column delimiter regexp and row
delimiter regexp, creates a table with a single cell like the
following one.
+-----------------------------------------------------------------+
|`table-capture' is a powerful command, but mastering its |
|power requires some practice. Here are some things it can do: |
| |
|Parse Cell Items By using column delimiter regular |
| expression and raw delimiter regular |
| expression, it parses the specified text |
| area and extracts cell items from |
| non-table text and then forms a table out |
| of them. |
| |
|Capture Text Area When no delimiters are specified it |
| creates a single cell table. The text in |
| the specified region is placed in that |
| cell. |
+-----------------------------------------------------------------+
By splitting the cell appropriately we now have a table consisting of paragraphs occupying its own cell. Each cell can now be edited independently without affecting the layout of other cells.
+-----------------------------------------------------------------+
|`table-capture' is a powerful command, but mastering its |
|power requires some practice. Here are some things it can do: |
+---------------------+-------------------------------------------+
|Parse Cell Items |By using column delimiter regular |
| |expression and raw delimiter regular |
| |expression, it parses the specified text |
| |area and extracts cell items from |
| |non-table text and then forms a table out |
| |of them. |
+---------------------+-------------------------------------------+
|Capture Text Area |When no delimiters are specified it |
| |creates a single cell table. The text in |
| |the specified region is placed in that |
| |cell. |
+---------------------+-------------------------------------------+
By applying table-release, which does the opposite process, the
contents become once again plain text. table-release works as
a companion command to table-capture.