emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Ulrich G. Wortmann" <uli.wortmann@utoronto.ca>
To: emacs-orgmode@gnu.org
Subject: Re: Bug: org export table.el [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
Date: Wed, 28 Nov 2018 12:10:34 -0500	[thread overview]
Message-ID: <CAKoZnLovkYk8h7EDjd4VDU38WnS4FF0Qis4H7HDhfz1=sr_kNw@mail.gmail.com> (raw)
In-Reply-To: <87woozwo1d.fsf@nicolasgoaziou.fr>

[-- Attachment #1: Type: text/plain, Size: 3260 bytes --]

Hi Nicolas,

I know nothing about lisp, but I think I understand enough of the structure
to propose the following changes:

In my testfile, this preserves the current behavior if no #+CAPTION is
present. However, if the  #+CAPTION is not empty, the table will be
exported as float with the proper caption and label. The code needs
probably some cleanup, but I don't understand enough lisp to know what's
save to drop.

Hope this can be merged

Cheers

Uli

--- org-mode/lisp/ox-latex.el   2018-11-28 11:58:15.234232222 -0500
+++ org-mode-uliw/ox-latex.el.uliw      2018-11-28 11:57:09.057281230 -0500

@@ -3305,6 +3310,21 @@

 This function assumes TABLE has `table.el' as its `:type'
 property."
+  (let* ((caption (org-latex--caption/label-string table info))
+        (attr (org-export-read-attribute :attr_latex table))
+        ;; Determine alignment string.
+        (alignment (org-latex--align-string table info))
+        ;; Determine environment for the table: longtable, tabular...
+        (table-env (or (plist-get attr :environment)
+                       (plist-get info :latex-default-table-environment)))
+        ;; If table is a float, determine environment: table, table*
+        ;; or sidewaystable.
+        (placement
+         (or (plist-get attr :placement)
+             (format "[%s]" (plist-get info
:latex-default-figure-position))))
+        (centerp (if (plist-member attr :center) (plist-get attr :center)
+                   (plist-get info :latex-tables-centered)))
+        (caption-above-p (org-latex--caption-above-p table info)))
   (require 'table)
   ;; Ensure "*org-export-table*" buffer is empty.
   (with-current-buffer (get-buffer-create "*org-export-table*")
@@ -3332,7 +3352,16 @@
       (let ((centerp (if (plist-member attr :center) (plist-get attr
:center)
                       (plist-get info :latex-tables-centered))))
        (if (not centerp) output
-         (format "\\begin{center}\n%s\n\\end{center}" output))))))
+         (if (string= "" caption)
+             (format (concat "\\begin{center}\n"
+                             "%s\n"
+                             "\\end{center}\n") output)
+           (format (concat "\\begin{table}\n"
+                           caption
+                           "\\centering\n"
+                           "%s\n"
+                           "\\end{table}\n") output))
+         ))))))

 (defun org-latex--math-table (table info)
   "Return appropriate LaTeX code for a matrix.


On Mon, 26 Nov 2018 at 16:02 Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:

> Hello,
>
> "Ulrich G. Wortmann" <uli.wortmann@utoronto.ca> writes:
>
> > I had a quick look at table.el
> >
> > It exports only a tabular command, not a table. Is there a way to make
> org
> > wrap the
> >
> > \begin{tabular}
> > \end{tabular}
> >
> > into a regular
> >
> > \begin{table}
> > \end{table}
> >
> > This would be perfectly correct latex, and keep the export mechanism,
> > neatly separated
>
> You may want to look at `org-latex--table.el-table' and see what can be
> done.
>
> Regards,
>
> --
> Nicolas Goaziou
>
-- 

Ulrich Wortmann 416 978 7084

Associate Chair Undergraduate Affairs

Department of Earth Sciences

University of Toronto
22 Russel St., Toronto, ON, Canada, M5S 3B1

[-- Attachment #2: Type: text/html, Size: 4900 bytes --]

  reply	other threads:[~2018-11-28 17:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-23 19:45 Bug: org export table.el [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)] Ulrich G. Wortmann
2018-11-24  9:37 ` Nicolas Goaziou
2018-11-26 16:21   ` Ulrich G. Wortmann
2018-11-26 16:30   ` Ulrich G. Wortmann
2018-11-26 21:02     ` Nicolas Goaziou
2018-11-28 17:10       ` Ulrich G. Wortmann [this message]
2018-11-30 20:27         ` Nicolas Goaziou
2018-12-03 15:02           ` Ulrich G. Wortmann
2018-12-03 17:15             ` Nicolas Goaziou
2018-12-04 20:14               ` Ulrich G. Wortmann
2018-12-06 13:35                 ` Nicolas Goaziou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKoZnLovkYk8h7EDjd4VDU38WnS4FF0Qis4H7HDhfz1=sr_kNw@mail.gmail.com' \
    --to=uli.wortmann@utoronto.ca \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).