emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: n.goaziou@gmail.com
Cc: emacs-orgmode@gnu.org
Subject: Re: Export tables as matrices (change tbl-export function on the fly)
Date: Sun, 18 Nov 2012 15:05:23 +0100	[thread overview]
Message-ID: <87lidz3t24.fsf@pank.eu> (raw)
In-Reply-To: <878v9zdp3g.fsf@gmail.com> (Nicolas Goaziou's message of "Sun, 18 Nov 2012 14:20:51 +0100")


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:
>
>     | <c> | <c> |
>     | 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

  reply	other threads:[~2012-11-18 14:05 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-14 14:49 Export tables as matrices (change tbl-export function on the fly) Rasmus
2012-11-14 16:21 ` Nicolas Goaziou
2012-11-14 18:05   ` Rasmus
2012-11-17 13:26   ` Rasmus Pank Roulund
2012-11-17 15:32     ` Nicolas Goaziou
2012-11-17 18:29       ` Rasmus
2012-11-18  8:53         ` Nicolas Goaziou
2012-11-18 11:50           ` Rasmus
2012-11-18 13:20             ` Nicolas Goaziou
2012-11-18 14:05               ` Rasmus [this message]
2012-11-18 19:12                 ` 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=87lidz3t24.fsf@pank.eu \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    --cc=n.goaziou@gmail.com \
    /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).