From 5461d3e60542f07e8162b14dc75142ecc61023eb Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Mon, 28 Jun 2010 10:08:52 -0700 Subject: [PATCH] library-of-babel: adding function for LaTeX Table export * contrib/babel/library-of-babel.org (Write): support for LaTeX table export --- contrib/babel/library-of-babel.org | 50 ++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/contrib/babel/library-of-babel.org b/contrib/babel/library-of-babel.org index 330734440..5d3d9ce8c 100644 --- a/contrib/babel/library-of-babel.org +++ b/contrib/babel/library-of-babel.org @@ -96,9 +96,55 @@ plot(data) ** Gnuplot -* Table/Matrix manipulation +* Tables +** LaTeX Table export +This block can be used to wrap a table in the latex =longtable= +environment, it takes the following arguments -- all but the first +three are optional. +| arg | description | +|-----------+-------------------------------------------------------------| +| table | a reference to the table | +| env | table environment, e.g. longtable, tablex, etc... | +| align | optional alignment string | +| width | optional width specification string | +| hline | the string to use as hline separator, defaults to "\\hline" | +| head | optional "head" string | +| firsthead | optional "firsthead" string | +| foot | optional "foot" string | +| lastfoot | optional "lastfoot" string | -Elegant lisp code for transposing a matrix. +#+srcname: table +#+begin_src emacs-lisp :var table='((:table)) :var env="table" :var align='() :var width='() :var hline="\\hline" :var firsthead='() :var head='() :var foot='() :var lastfoot='() :noweb yes :results latex + (org-fill-template + " + \\begin{%env}%width%align + %firsthead + %head + %foot + %lastfoot + + %table + \\end{%env}\n" + (list + (cons "env" env) + (cons "width" (if width (format "{%s}" width) "")) + (cons "align" (if align (format "{%s}" align) "")) + (cons "firsthead" (if firsthead (concat firsthead "\n\\endfirsthead\n") "")) + (cons "head" (if head (concat head "\n\\endhead\n") "")) + (cons "foot" (if foot (concat foot "\n\\endfoot\n") "")) + (cons "lastfoot" (if lastfoot (concat lastfoot "\n\\endlastfoot\n") "")) + (cons "table" (orgtbl-to-generic + (mapcar (lambda (lis) + (if (listp lis) + (mapcar (lambda (el) + (if (stringp el) + el + (format "%S" el))) lis) + lis)) table) + (list :lend " \\\\" :sep " & " :hline hline))))) +#+end_src + +** Elegant lisp for transposing a matrix. #+tblname: transpose-example | 1 | 2 | 3 |