Hi, Nicolas Goaziou <m...@nicolasgoaziou.fr> writes:
>>> Since environments do not necessary start with \begin{...}, I think the >>> following is better >>> >>> (and (string-match ...) >>> (match-string ...)) >> >> Don't the element `latex-environment' always start \begin{.}? >> Cf. org-element--latex-begin-environment. > > At the moment, they do, but I have a patch somewhere to make "\[...\]" > an element instead of an object (e.g., to avoid filling it). It was > accepted, but it some similar change could happen. I'm just suggesting > to make it more robust right from the start. OK. AFAIR, org-element--latex-begin-environment shouldn't be used in other libraries. >> Another danger is that someone writes something like, >> >> \begin{center} >> \begin{table} >> ... > > You can start the regexp with "\\`[ \t]*..." The point is, that the env. will be center rather than table. So the code would detect the wrong environment. >> + 'table) >> + ((string-match-p "figure" env) 'image) >> + ((or (string-match-p "\\(\\(lst\\)?listing\\|verbatim\\|minted\\)" env) >> + (string-match-p >> + (regexp-opt >> + (mapcar (lambda (str) >> + (let ((s (cadr str))) >> + (if (string-match latex-begin-re s) > > You removed `latex-begin-re' binding so this is going to fail. Thanks. >> + (match-string 2 s) >> + s))) >> + org-latex-custom-lang-environments)) > > I'm not sure it is necessary. AFAIU, > `org-latex-custom-lang-environments' already provides a way to insert > captions. The matching process above seems fragile. I agree this is fragile, and I’m happy to remove that part of the matching. The support of captions in custom-lang-environments is not really the point here. The point of this patch is to be able to add captions to latex-environments. E.g. externally generated files, e.g. tables, to be included. Rasmus -- I hear there's rumors on the, uh, Internets. . .