From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: allow table* specification with #+ATTR_LaTeX: Date: Thu, 16 Dec 2010 06:16:25 -0700 Message-ID: <87aak5q29i.fsf@gmail.com> References: <8739pyraaq.fsf@cs.unm.edu> <49811CBB-F1B1-4031-B26D-A7E9709F1661@tsdye.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from [140.186.70.92] (port=33939 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PTDov-0004OM-9M for emacs-orgmode@gnu.org; Thu, 16 Dec 2010 08:24:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PTDot-0007Mv-Uk for emacs-orgmode@gnu.org; Thu, 16 Dec 2010 08:24:33 -0500 Received: from mail-iy0-f169.google.com ([209.85.210.169]:39371) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PTDot-0007Mq-PF for emacs-orgmode@gnu.org; Thu, 16 Dec 2010 08:24:31 -0500 Received: by iyj17 with SMTP id 17so1694061iyj.0 for ; Thu, 16 Dec 2010 05:24:31 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: "Thomas S. Dye" Cc: Org Mode Hi Tom, Thanks for the informative list. I had no idea LaTeX supported so many table options. How about I update the patch so that is supports the following sets of mutually exclusive options... - longtable :: wraps the table in a longtable with no table or tabular wrappers -- already implemented - table* :: replaces =table= wrapper with =table*= wrapper, contains an inner tabular wrapper - tabular[xy] :: specifies the inner tabular wrapping environment, only one can be specified so for example, the following #+begin_src org #+CAPTION: A wide table #+LABEL: tbl:wide #+ATTR_LaTeX: table* tabulary align=l|lp{3cm}r|l | ... | ... | | ... | ... | #+end_src results in the following #+begin_src latex \begin{table*}[htb] \caption{A wide table} \label{tbl:wide} \begin{center} \begin{tabulary}{l|lp{3cm}r|l} 1 & 2 & 3 \\ 4 & 5 & 6 \\ \end{tabulary} \end{center} \end{table*} #+end_src Then the next question would be how to insert a =figure*= instead of a simple =figure= environment. Thanks -- Eric Thomas S. Dye writes: > 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 "\\" attr)) >> + tblenv (if (and attr (stringp attr) >> + (string-match (regexp-quote "table*") attr)) >> + "table*" "table") >> align (and attr (stringp attr) >> (string-match "\\> \)" 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. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode