Org tutorial for tables
This tutorial briefly describes the use of tables with Org. You can freely improve this tutorial by editing Worg.
Creating a table
While typing
The easiest way to create a table is to directly type the "|" character at the beginning of a line, or after any amount of white space. This will put you in the first field of an atomic table.
| This is the content of the first cell
Once you've finished editing this cell, you can jump to the next one by
pressing TAB
. Since the row you just started only contains one cell,
the next cell is really the first cell of the next row.
| This is the content of the first cell | | < Here I am after pressing TAB |
By creating the structure and filling it
You can also create a table from scratch with C-c |
. You will be
asked for the structure of the table, the default being 5x2 (see
org-table-default-size
), five columns and two rows:
| | | | | | |---+---+---+---+---| | | | | | |
Then you can jump from one field to another with the TAB
key (jump to
the next cell) or S-<TAB>
(jump to the previous cell). RET
will
jump to the to the next cell in the same colum, and create a new column
if there is no such cell (or if the next row is beyond a separator
line.)
By converting a region into a table
Org provides useful ways of converting a region into a table. For this,
select a region and press C-c |
. For example, press C-c |
on this:
some, comma, separated, values
will automagically produce this:
| some | comma | separated | values |
Usually, this command should be smart enough to guess what is the field
separator for the region. If each line of the active region contains a
TAB
or a comma, it will assume this is the separator.
- If you want to force the comma as a field separator, press
C-u C-c |
. - If you want to force TAB as a field separator, press
C-u C-u C-c |
. - If you want to force a specific number of spaces – say 3 – use
C-u 3 C-c |
.
Editing the structure of a table
Editing table with Org is pure magic.
Moving rows/columns
Let's say for example that you have this basic table:
| A | B | C | | 1 | 2 | 3 | | a | b | c |
With the cursor in the A field, pressing M-<right>
will move the A
column to the right:
| B | A | C | | 2 | 1 | 3 | | b | a | c |
With the cursor in the first row, pressing M-<down>
will move the
first row down:
| 1 | 2 | 3 | | A | B | C | | a | b | c |
Inserting rows/columns
Prefixed with the Shift key, these command will insert a new column or
a new row, instead of moving it. For example, with the cursor initially
in the B
cell, S-M-<right>
will insert a new column between A
and
B
| A | | B | C | | 1 | | 2 | 3 | | a | | b | c |
… leaving the cursor in the newly created column.
And S-M-<down>
when cursor is in the first row will insert a new row
at the beginning of the table:
| | | | | A | B | C | | 1 | 2 | 3 | | a | b | c |
Narrowing the visible part of a column
Sometimes cells can get really wide. If you want to restrict the width visible width of a cell, you need to add a new row to your table.
| <10> | <15> | | A very wide cell | Another very very wide cell |
Pressing C-c C-c
on this table will update the display so that the
first and second columns are respectively narrowed to 10 and 15
characters:
| <10> | <15> | | A very=> | Another very => |
When columns are narrowed, it might be useful to temporarily see the
content of a cell with C-u <TAB>
(or C-u C-c `
) or to edit the
content in a separate window with C-c `
.
Preparing tables for export
This table :
| A | B | | 1 | 2 |
will be exported like this:
A | B |
1 | 2 |
Adding a table header
This table :
| A | B | |---+---| | 1 | 2 |
will be exported like this:
A | B |
---|---|
1 | 2 |
The horizontal line separating the two rows tells the exporter to consider the first line is the table header.
Grouping columns
You can group columns like this:
| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | |---+----+-----+-----+-----+---------+------------| | / | <> | < | | > | < | > | | # | 1 | 1 | 1 | 1 | 1 | 1 | | # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 | | # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 | |---+----+-----+-----+-----+---------+------------|
Here is the output:
N | N2 | N3 | N4 | sqrt(n) | sqrt(N) |
---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 |
2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
3 | 9 | 27 | 81 | 1.7321 | 1.3161 |