"Eric Schulte" writes: > 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