emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [patch] LaTeX export using tabu tables


From: Nicolas Goaziou
Subject: Re: [O] [patch] LaTeX export using tabu tables
Date: Mon, 25 Mar 2013 20:59:38 +0100

Hello,

Eric Abrahamsen <address@hidden> writes:

> I was trying to be too clever! Attached is a non-clever version that
> includes a :spread keyword, and a (hopefully) correctly-written commit
> message.

Nice. A few more comments follow.

> Subject: [PATCH 8/8] ox-latex.el (org-latex--org-table, org-latex-table-row):
>  Allow use of the "tabu" table environment when exporting tables to
> LaTeX.

Actually the first line of the commit should be more general (and
shouldn't end with a full stop). Perhaps something like:

  ox-latex: Allow use of "tabu" table environment

> * ox-latex.el (org-latex--org-table): New latex export attribute
>   :spread accommodates weird width specification syntax of the tabu
>   package.

I would drop a note about the "tabu" and "longtabu" support in the
description of the patch.

> +;; - `:spread' is a boolean attribute specific to the "tabu" and
> +;;   "longtabu" environments, and only takes effect when used in
> +;;   conjunction with the `:width' attribute. When `:spread' is

Nitpick: Emacs documentation and comments require two spaces after
a sentence.

> +      (spread (plist-member attr :spread))

I think you mean (plist-get attr :spread), otherwise ":spread nil" will
still activate spread. Also, since it's a predicate, I suggest to name
the variable "spreadp".

>        (placement (or (plist-get attr :placement)
>                       (format "[%s]" org-latex-default-figure-position)))
>        (centerp (if (plist-member attr :center) (plist-get attr :center)
> @@ -2460,6 +2467,23 @@ This function assumes TABLE has `org' as its `:type' 
> property and
>                  (concat caption "\\\\\n"))
>             "\\end{longtable}\n"
>             (and fontsize "}")))
> +     ;; Longtabu
> +     ((equal "longtabu" table-env)
> +      (concat (and fontsize (concat "{" fontsize))
> +           (format "\\begin{longtabu}%s{%s}\n"
> +                   (if width
> +                     (format " %s %s "
> +                             (if spread "spread" "to") width) "")
> +                   alignment)
> +           (and org-latex-table-caption-above
> +                (org-string-nw-p caption)
> +                (concat caption "\\\\\n"))
> +           contents
> +           (and (not org-latex-table-caption-above)
> +                (org-string-nw-p caption)
> +                (concat caption "\\\\\n"))
> +           "\\end{longtabu}\n"
> +           (and fontsize "}")))
>       ;; Others.
>       (t (concat (cond
>                (float-env
> @@ -2471,7 +2495,10 @@ This function assumes TABLE has `org' as its `:type' 
> property and
>                (fontsize (concat "{" fontsize)))
>               (format "\\begin{%s}%s{%s}\n%s\\end{%s}"
>                       table-env
> -                     (if width (format "{%s}" width) "")
> +                     (if width (format
> +                                (if (equal "tabu" table-env)
> +                                    (if spread " spread %s " " to %s")
> +                                  "{%s}") width) "")

"longtabu" gets its own cond branch, but not "tabu". I think that
defeats the purpose of the separation, which is to be able to add
support for features of this rich table environment without cluttering
the rest of the code. Doing it partially isn't worth the code
duplication it implies.

IOW, either we separate both "tabu" and "longtabu" completely, or we
separate none of them. Your call.


Thank you again.


Regards,

-- 
Nicolas Goaziou



reply via email to

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