Hi Alan,
Alan Schmitt <[email protected]> writes:
> 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