Hi Alan,

Alan Schmitt <alan.schm...@polytechnique.org> 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


Reply via email to