emacs-orgmode
[Top][All Lists]

## Re: [O] interaction between org-latex-custom-lang-environments and name

 From: Rasmus Subject: Re: [O] interaction between org-latex-custom-lang-environments and name when exporting to latex Date: Mon, 23 Nov 2015 18:54:00 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

Hi Alan,

> What I propose is to have either a string or a function in
> org-latex-custom-lang-environments'. A string would be used as it is
> currently, whereas a function would be applied. Here is what it could
> look like:

I think a format-string is fine, though I don’t oppose allowing a function
as well.  I don’t foresee a great necessity of the latter, though.

I'd use format-spec.  E.g. here’s how hyperref is filled

(let ((template (plist-get info :latex-hyperref-template)))
(and (stringp template)
(format-spec template (org-latex--format-spec info))))

Then the cdr of an element in org-latex-custom-lang-environments can be
something like:

\begin{%e}[label=%l, myfunkyoption=val]
%c
\end{%e}

The only downside is that you’d have to somehow discriminate between the
"old" case where the cdr is a single word denoting an environment.
Something like this might work:

(string-match-p "\\\\w+\\'" "hest1")

> My main design question is what the arguments to the function should be.
> I thought the formatted source code and label would work, but I'm
> wondering if it may be better to simply give the src-block' and info'
> arguments directly.

Well, functions would be user written.  In general I’d favor info and
src-block, but I don’t think it’s very user-friendly, as it requires quite
some knowledge about how ox works.  Also, when using such functions, the
user would have to write a lot of boilerplate to get e.g . the label.

Rasmus

--
Not everything that goes around comes back around, you know