emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [PATCH] org-e-latex: Tables get correct amount of vertical space


From: Myles English
Subject: Re: [O] [PATCH] org-e-latex: Tables get correct amount of vertical space
Date: Tue, 13 Nov 2012 21:31:31 +0000
User-agent: mu4e 0.9.9.5-dev1; emacs 24.2.1


Sebastien Vauban writes:

> Hi Myles and Nick,
>
> Nick Dokos wrote:
>> Myles English <address@hidden> wrote:
>>> Sebastien Vauban writes:
>>> > Myles English wrote:
>>> >> This patch replaces every occurence of the \begin{center} environment
>>> >> with \centering in the file contrib/lisp/org-e-latex.el.
>>> >> ...
>>> >> -   (format "\\begin{center}\n%s\\end{center}" contents)))
>>> >> +   (format "\\centering\n%s" contents)))
>>> >
>>> > Wouldn't you have to replace
>>> >
>>> >   \begin{center}
>>> >     ...
>>> >   \end{center}
>>> >
>>> > by
>>> >
>>> >   {\centering
>>> >     ...
>>> >   }
>>> >
>>> > ?  That is, add a group around?
>>> 
>>> I don't think so, at least I have not come across that usage, and it
>>> seems to work without.  Do you know different?
>>
>> If a \centering occurs at top-level in a latex document,
>> then *everything* after it will be centered: it's a declaration that
>> remains in force for the current group (which is the rest of the
>> document if it occurs at top-level).
>
> As confirmed by Nick, \centering just changes the layout for ever... up to the
> end of the document.
>
> Why does it work?  I guess because there are grouping commands inserted by Org
> at other places, that stop the propagation of the centering that far... But
> it's dangerous to count on them, IMHO.
>
>> \begin{center}...\end{center} is essentially {\centering ...} except
>> that it also starts a new paragraph.

>From within a figure or table environment, that new paragraph shows up
as uneeded vertical space, see the example I give lower down.

>> 
>>
>> It's not clear to me at least, that wholesale replacement is the correct
>> thing to do: it needs to be looked at on a case-by-case basis I
>> think.

Nick, I think you are right about this, the modified patch at the end of
this email makes only the replacements that are necessary just to
replace the center environment within table blocks.

The other \begin{center}'s in the org-e-latex.el file may be changed
some other time, if needed.

> I think that's a safe replacement (_with_ the grouping), and with something I
> forgot about (well seen Nick!): the \par.

I don't think the grouping is necessary because the implied group will
be closed when the table environment is ended.  Likewise, I don't think
the \par is necessary.

If you compile this this latex it illustrates the problem, and the
solution:

%______________________________begin example.tex_______________
\documentclass[11pt]{article}
\usepackage{float}

\begin{document}

Before.-------------------------------

\begin{table}[htb]
\caption{\label{tab:progress}Summary}
\begin{center}
\begin{tabular}{ll}
A & B\\
\end{tabular}
\end{center}
\end{table}

After.--------------------------------

Before.-------------------------------

\begin{table}[htb]
\caption{\label{tab:progress}Summary}
\centering
\begin{tabular}{ll}
A & B\\
\end{tabular}
\end{table}

After.-------------------------------
\end{document}
%______________________________end example.tex_______________

> See, for example,
> https://groups.google.com/forum/?fromgroups=#!topic/fr.comp.text.tex/0s4WfsIfmy8
> for the answer of Manuel Pégourié-Gonnard, one reference wrt LaTeX
> questions:

My French, and my browser apparently, is not good enough to understand
that thread.  Sorry.  Please translate if it is still relevant to this
discussion.

>
>   "replace the environment by {\centering ... \par}"

[answered above]

>
> Best regards,
>   Seb

Myles


>From 51686ada4cb2560eb5dfb6b445af547eccff8bff Mon Sep 17 00:00:00 2001
From: Myles English <address@hidden>
Date: Tue, 13 Nov 2012 21:04:16 +0000
Subject: [PATCH] org-e-latex:  Tables get correct amount of vertical space

* contrib/lisp/org-e-latex.el: Replaced a set of \begin{center}
  and \end{center} environment markers with a \centering
  declaration.

Using both \begin{table} and \being{center} environments leads to double
the vertical space around the float, whereas \centering adds none.

TINYCHANGE
---
 contrib/lisp/org-e-latex.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/contrib/lisp/org-e-latex.el b/contrib/lisp/org-e-latex.el
index 165beb3..5635c6a 100644
--- a/contrib/lisp/org-e-latex.el
+++ b/contrib/lisp/org-e-latex.el
@@ -2302,14 +2302,13 @@ This function assumes TABLE has `org' as its `:type' 
attribute."
                  (concat
                   (format "\\begin{%s}%s\n" float-env placement)
                   (if org-e-latex-table-caption-above caption "")))
-               (when org-e-latex-tables-centered "\\begin{center}\n")
+               (when org-e-latex-tables-centered "\\centering\n")
                (format "\\begin{%s}%s{%s}\n%s\\end{%s}"
                        table-env
                        (if width (format "{%s}" width) "")
                        alignment
                        contents
                        table-env)
-               (when org-e-latex-tables-centered "\n\\end{center}")
                (when float-env
                  (concat (if org-e-latex-table-caption-above "" caption)
                          (format "\n\\end{%s}" float-env))))))))
-- 
1.8.0




reply via email to

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