emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] allow table* specification with #+ATTR_LaTeX:


From: Thomas S . Dye
Subject: Re: [Orgmode] allow table* specification with #+ATTR_LaTeX:
Date: Wed, 15 Dec 2010 18:27:34 -1000

Hi Eric,

It would be great to have a more general solution. Tables are hard to typeset, so it might take a while to come up with a good specification. Here is what I know about the LaTeX side of things.

** LaTeX destinations for an Org-mode table
*** Environments for typesetting a table
    - table placed in the output where it occurs in the input
    - all of these environments can be used on their own
**** tabular
     standard LaTeX environment, doesn't break across pages, no caption
**** tabularx
     extended environment that can automatically calculate column
     widths and wrap text within table cells, doesn't break across
     pages, no caption
**** tabulary
like tabularx, but tries harder to come up with optimal column widths
**** supertabular
     extended tabular environment that breaks across pages, includes
     caption
**** supertabular*
     like supertabular, but for wide tables in a multicolumn page
     layout
**** mpsupertabular
     like supertabular, but also handles footnotes within the table
**** mpsupertabular*
     like mpsupertabular, but for multicolumn page layouts
**** longtable
     extended tabular environment that breaks across pages and
     includes a caption, but can't be used in a multicolumn page
     layout
*** Environment for floating a table and adding a caption
    floats a table typeset by some other environment to a place in the
    output that LaTeX determines appropriate, probably not where it
    occurs in the input
**** =table=, single column document
     typically wraps a =tabular=, =tabularx=, or =tabulary= environment
**** =table*=, multi-column document
     typically wraps a =tabular=, =tabularx=, or =tabulary= environment
*** "Typical" uses
    In our report production work we regularly use seven setups:
    - table or table* wrapped around tabularx or tabular
    - longtable
    - tabular or tabularx on their own

hth,
Tom
On Dec 15, 2010, at 11:33 AM, Eric Schulte wrote:

Hi,

The attached patch allows the use of table* latex tables from within Org
mode documents using the attr_latex lines, for example

#+CAPTION: A wide table
#+LABEL: tbl:wide
#+ATTR_LaTeX: table* align=l|lp{3cm}r|l
| ... | ... |
| ... | ... |

Should this be added, or should we put together a more general solution for different types of table environments? Currently only longtable is supported. Also, is there already a way to do this that I have missed?

Thanks -- Eric

diff --git a/lisp/org-latex.el b/lisp/org-latex.el
index a261171..b7f48d3 100644
--- a/lisp/org-latex.el
+++ b/lisp/org-latex.el
@@ -1741,7 +1741,7 @@ The conversion is made depending of STRING- BEFORE and STRING-AFTER."
             (org-table-last-column-widths (copy-sequence
org-table-last-column- widths))
             fnum fields line lines olines gr colgropen line-fmt align
-             caption shortn label attr floatp placement longtblp)
+ caption shortn label attr floatp placement longtblp tblenv)
        (if org-export-latex-tables-verbatim
            (let* ((tbl (concat "\\begin{verbatim}\n" raw-table
                                "\\end{verbatim}\n")))
@@ -1758,6 +1758,9 @@ The conversion is made depending of STRING- BEFORE and STRING-AFTER."
                         'org-label raw-table)
                  longtblp (and attr (stringp attr)
                                (string-match "\\<longtable\\>" attr))
+                 tblenv (if (and attr (stringp attr)
+                                 (string-match (regexp-quote "table*") attr))
+                            "table*" "table")
                  align (and attr (stringp attr)
(string-match "\\<align=\\([^ \t\n\r]+\ \)" attr)
                             (match-string 1 attr))
@@ -1821,7 +1824,8 @@ The conversion is made depending of STRING- BEFORE and STRING-AFTER."
                       (concat
                        (if longtblp
                            (concat "\\begin{longtable}{" align "}\n")
- (if floatp (format "\\begin{table}%s\n" placement)))
+                          (if floatp
+                             (format "\\begin{%s}%s\n" tblenv placement)))
                        (if floatp
                            (format
                             "\\caption%s{%s} %s"
@@ -1852,7 +1856,7 @@ The conversion is made depending of STRING- BEFORE and STRING-AFTER." "\n\\end{center}\n" "\n"))
                        (if longtblp
                            "\\end{longtable}"
-                          (if floatp "\\end{table}"))))
+                          (if floatp (format "\\end{%s}" tblenv)))))
                      "\n\n"))))))))

(defun org-export-latex-convert-table.el-table ()
_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode




reply via email to

[Prev in Thread] Current Thread [Next in Thread]