From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasmus Subject: Re: Export tables as matrices (change tbl-export function on the fly) Date: Sun, 18 Nov 2012 15:05:23 +0100 Message-ID: <87lidz3t24.fsf@pank.eu> References: <877gpojl2s.fsf@pank.iue.private> <87y5i4yx2w.fsf@gmail.com> <87sj888in4.fsf@pank.eu> <87haoont2g.fsf@gmail.com> <87d2zc84nk.fsf@pank.eu> <87fw48lyoj.fsf@gmail.com> <87ehjr6sgl.fsf@pank.eu> <878v9zdp3g.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:37729) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ta5V9-0005eD-I4 for emacs-orgmode@gnu.org; Sun, 18 Nov 2012 09:05:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ta5V6-0005mO-G5 for emacs-orgmode@gnu.org; Sun, 18 Nov 2012 09:05:35 -0500 Received: from mailout-eu.gmx.com ([213.165.64.43]:55085) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1Ta5V6-0005m9-6e for emacs-orgmode@gnu.org; Sun, 18 Nov 2012 09:05:32 -0500 In-Reply-To: <878v9zdp3g.fsf@gmail.com> (Nicolas Goaziou's message of "Sun, 18 Nov 2012 14:20:51 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: n.goaziou@gmail.com Cc: emacs-orgmode@gnu.org Nicolas, > That's because you use "booktabs" by default. It creates horizontal > rules, and the filter hence doesn't apply. Aha. Is this (again) a misunderstanding because I though of org source? I tried to identify org tables with rules. > Since e-latex back-end doesn't strip anything in regular LaTeX > snippets or environments, it should be the same here. Switching to > math mode won't happen automatically, so the user can act > appropriately. I guess it's fine for most applications. > :environment value is a string. It can be set to anything. Probably the best approach. > That's not a problem, Org handles alignment per column already: > > | | | > | a | b | > | c | d | I had no idea. That's very cool. > Then the backend can add the alignment as an optional argument in math > mode only when the name of the environment ends with a star and the > alignment string is one character long. In the LATEX_ATTR or as in the example above? The former I assume. > To circumvent the problem, org-e-latex.el can use a defconst to store > table/matrix environments requiring "\cr" instead of "\\" at the end of > each row. It will, as a starter, only contain "bordermatrix". OK. How about just making a list of strings (with typical member STRING) which are known to have the format \STRING{matrix-like-output}? Then one can add whichever crazy environment that might be needed to this list. And users can easily add their favorite flavor of e.g. bordermatrix. A short experiment seems to suggest that \cr works in place of \\. > Any name to suggest for it? I prefer the approach where the exists a list of macro-matrices, maybe with delimiter and/or line separator. Then the the value of :environment can be checked against this list. E.g. org-e-latex-matrix-macro-environments. By default: '(("bordermatrix" "\cr")) And I'd personally extend it to '(("bordermatrix" "\cr") ("kbordermatrix" "\\")) NOTE: probably it's not nice to store line seperator and such here, and indeed '("bordermatrix" "kbordermatix") seems like a nicer (as in simpler) list. > Ok. Then the sanest approach is to allow :math-mode to be set to nil, > t or `inline'. When `inline', as you suggest, it replaces \[...\] with > \(...\) and ignores any label. But it still uses whatever environment is > provided in :environment, that is, it won't make any guess about which > one to use. Yeah, you're right. Less guessing is better guessing. 'Display' might be same t. > Also, instead of using a single `org-e-latex-default-table-environment', > its value can be a plist like the following: > > (:table-mode "tabular" :math-mode "bmatrix" :inline-math-mode "smallmatrix") Yeah, that would be nice. Would it extend to the options in ATTR_LATEX? I.e. would it be nice (?) to be able to specify - environment - math-environment - inline-math-environment in one option line s.t. I could easily switch from table to matrix to inline matrix? E.g. #+ATTR_LATEX: :math-environment "Bmatrix" :math-mode t prints a display matrix but #+ATTR_LATEX: :math-environment "Bmatrix" :math-mode nil prints a table. I don't know whether this is just making things more confusing or whether it would be useful. . . Also, at least a prefix string would be very useful as that's how matrices are usually named. E.g. #+ATTR_LATEX: :math-mode t :prefix "P=" |1|2| |3|4| is translated to P=\begin{bmatrix}1&2\\3&4\end{bmatrix} Thanks, Rasmus -- Dung makes an excellent fertilizer