Xah Lee, 2009-08-20, 2011-05-09
This page shows you how to use emacs's table feature, to create or manipulate tabular data. You can interactively create and edit tables with emacs, then export/convert it to HTML or LaTex formats.
Note that this feature is not very robust. If your data has just few rows and columns, with simple text or numbers, then emacs table feature is very useful. But if you work with importing/exporting actual spread sheets or address books, with hundreds of rows or columns, emacs table feature does not handle it well.
To create a table, type 【Alt+x table-insert】.
It'll ask you these questions:
Number of columns Number of rows Cell width Cell height
You can just press Enter key to accept the default. You can change the values for each later. The result will look like this:
+-----+-----+-----+ | | | | +-----+-----+-----+ | | | | +-----+-----+-----+ | | | | +-----+-----+-----+
Press Tab or 【Shift+Tab】 to go to neighbor cells.
If you already have a table data, such as Comma Separated Values (CSV) from spreadsheets, or even from a existing HTML table, you can create a table from that.
Let's say you have this comma separated values:
,A,B,C 1,1a,1b,1c 2,2a,2b,2c 3,3a,3b,3c
Select the whole text, then type 【Alt+x table-capture】. It'll ask you these questions:
To enter a tab character (ASCII 9) in the minibuffer prompt, type 【Ctrl+q Tab】. To enter a newline literally, type 【Ctrl+q Ctrl+j】.
Note: In a emacs buffer, newlines are always represented by the Line Feed char (LF; ASCII 10). You don't have to worry what operating system convention is for newline is used in your file. (See: Emacs Line Return and Windows, Unix, Mac, All That ^M ^J ^L)
Use the Menu!
Once you have created a table, you can use the menu to do things. The menu “Table” will appear when your cursor is on a table cell.
If you prefer using commands, you can type 【Alt+x table-】 then press Tab to see a list of all commands.
Some of the most useful are:
table-insert-row table-insert-column table-delete-row table-delete-column table-generate-source output to HTML, LaTeX, CALS table-release output to space separated values
To generate output for your table, pull the menu 〖Table▸table-generate-source〗 or type 【Alt+x table-generate-source】. Then, you can choose one of html, latex, or cals (a XML based one).
To output to space delimited values, call “table-release”.
(info "(emacs) Text Based Tables")
blog comments powered by Disqus