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