emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <n.goaziou@gmail.com>
To: Rasmus <rasmus@gmx.us>
Cc: emacs-orgmode@gnu.org
Subject: Re: Export tables as matrices (change tbl-export function on the fly)
Date: Sun, 18 Nov 2012 09:53:22 +0100	[thread overview]
Message-ID: <87fw48lyoj.fsf@gmail.com> (raw)
In-Reply-To: <87d2zc84nk.fsf@pank.eu> (rasmus@gmx.us's message of "Sat, 17 Nov 2012 19:29:03 +0100")

Rasmus <rasmus@gmx.us> writes:

> Sorry; you posted a code first which didn't work at all for me; I
> tried to fix it, and I posted a code which I though worked but in the
> end it didn't.  Thus, I though it would be fair to post another
> message stating this, if nothing else than for future viewers.

I meant: what is the exact problem with my code (with examples and
expected output if possible)? It shouldn't be hard to fix.

>  - PROPOSAL: New option(s)for ATTR_LATEX
>    - :type :: options a lisp translation function or key words
>               associated with a lisp list translation function.

Forget the lisp translation function. At this level, the function
operates on parsed data. It doesn't use any orgtbl-to-* function. Also,
even if the ATTR_LATEX keyword applies on the table, it also affects how
`table-row' elements and `table-cell' objects are transcoded.

The usual way to define a new transcoder in the new export API is to
create a derived backed using an alternative translation table. It is
easier than it sounds.

>      - Default keyword: table; other known keywords: matrix
>        - table: current exporter
>        - matrix: exports to LaTeX matrix determined by the variable
>          org-export-latex-tables-matrix-default-type or :matrix-type.
>          Default is: bmatrix or pmatrix (probably bmatrix).
>          - in general array requires more configuration, but for me
>            array need not be supported.

I suggest to use a :math-mode t. With this mode, all cells are treated
as raw math code (no transformation is made on any cell). A global
variable can also set it `org-export-latex-table-math-mode' (default to
nil).

Then, the :environment keyword can be set to "tabular", "longtable",
"tabularx", "tabulary", "bmatrix", "pmatrix", "vmatrix", "kbordermatrix"
or "qbordermatrix". "bordermatrix", "array"... It would default to
`org-e-latex-default-table-environment' (default to "tabular").

>    - Matrix relevant keywords :: are the following
>      - If the additional variable ALIGN is set to k ∈ {l,r,c} use
>        the starred version of
>        org-export-latex-tables-matrix-default-type or :matrix-type

What is the variable ALIGN? You mean :align keyword? Do matrix
environments accept alignment? Also I haven't heard about starred
version of these. What do they do?

>      - If the additional keyword :bordered is t use the typeset
>        the matrix as \borderedmatrix{&col1&
>        ... &colN\\row1&...\\...\\rowN}.  A better example is
>        here ¹.  Also, the default bordermatrix macro is determined
>        via org-export-latex-tables-matrix-bordered-type s.t. one
>        can specify kbordermatrix ² or qbordermatrix ³.  

From the syntax perspective, I see no difference between bordered
matrices and the others: they just use a different environment, which
can be provided through :environment keyword. Am I missing something?

>        Perhaps Org automatically add the respective usepackage if this
>        option is set to something different from bordermatrix (i.e.
>        org-export-latex-tables-matrix-bordered-type is a list of lists
>        where the first element of a list is the macro name and the
>        second is the needed package).

The backend never adds any usepackage automatically. It is a can of
worms (incompatibilities, order of packages...). It's the responsibility
of the user to do so.

>      - If :matrix-pre "string" is set "string" is typeset before
>        the matrix
>      - If :matrix-post "string" is set then "string" is typeset
>        after the matrix.
>        - Alternatively, CAPTION could be used, but it seems weird.
>          Are they written before or after the matrix?  I'd prefer
>          CAPTIONs to be ignored typeset when matrices are typeset.
>      - If the table has a name the matrix is typeset using
>        equation and given an label.  If not it may be typeset
>        using equation* or \[·\].

Good idea.

>      - Potentially: an :inline exists s.t. if inline is t the
>        matrix is typeset inline [i.e. with \(\)].  Perhaps, it
>        should be smart and use the small verison of
>        org-export-latex-tables-matrix-default-type.  I.e. if
>        bmatrix use bsmallmatrix.  This could be set via
>        org-export-latex-tables-matrix-inline-small.

Do all matrix environments accept a small counterpart?


Regards,

-- 
Nicolas Goaziou

  reply	other threads:[~2012-11-18  8:57 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 [this message]
2012-11-18 11:50           ` Rasmus
2012-11-18 13:20             ` Nicolas Goaziou
2012-11-18 14:05               ` Rasmus
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=87fw48lyoj.fsf@gmail.com \
    --to=n.goaziou@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=rasmus@gmx.us \
    /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).