From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: Rasmus <rasmus@gmx.us>
Cc: emacs-orgmode@gnu.org
Subject: Re: [patch, ox-latex] captions and latex-environments
Date: Fri, 17 Mar 2017 08:22:44 +0100 [thread overview]
Message-ID: <87tw6se5a3.fsf@nicolasgoaziou.fr> (raw)
In-Reply-To: <87bmt1v2xs.fsf@gmx.us> (rasmus@gmx.us's message of "Thu, 16 Mar 2017 13:09:03 +0100")
Hello,
Rasmus <rasmus@gmx.us> writes:
> The patch looks a bit dodgy, maybe because I used magit, which I don’t
> really understand, instead of the shell. I have attached it anew.
Thank you. Some comments follow.
> +(defun org-latex-environment--type (latex-environment)
It should be `org-latex--environment-type'.
> + "Return the TYPE of LATEX-ENVIRONMENT.
> +
> +The TYPE is determined from the actual latex environment, and
> +could be a member of `org-latex-caption-above' or `math'."
> + (let* ((value (org-remove-indentation
> + (org-element-property :value latex-environment)))
> + (latex-begin-re (cadr (assoc "begin" org-latex-regexps)))
I'd rather avoid using `org-latex-regexps', which predates the parser.
A hard-coded regexp is better.
> + (env (progn (string-match latex-begin-re value)
> + (match-string 2 value))))
Since environments do not necessary start with \begin{...}, I think the
following is better
(and (string-match ...)
(match-string ...))
> + (cond
> + ((string-match org-latex-math-environments-re value) 'math)
> + ((string-match-p "tab\\(le\\|ular\\)" env) 'table)
This is a bit sloppy. In particular, it doesn't match all table
environments supported out of the box, e.g., "longtabu". Also, a list of
strings, compiler into a regexp with `regexp-opt' may be better.
> ;; Environment is labeled: label must be within the environment
> ;; (otherwise, a reference pointing to that element will count
> - ;; the section instead).
> + ;; the section instead). Also insert caption if `latex-environment'
Missing space after the full stop.
> + ;; is not a math environment.
> (with-temp-buffer
> (insert value)
> - (goto-char (point-min))
> - (forward-line)
> - (insert (org-latex--label latex-environment info nil t))
> + (if caption-above-p
> + (progn
> + (goto-char (point-min))
> + (forward-line)
> + (insert caption))
> + (goto-char (point-max))
> + (forward-line -1)
> + (insert caption))
Nitpick: you can move (insert caption) outside the (if ...) and
de-duplicate it.
Regards,
--
Nicolas Goaziou
next prev parent reply other threads:[~2017-03-17 7:22 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-16 12:02 [patch, ox-latex] captions and latex-environments Rasmus
2017-03-16 12:09 ` Rasmus
2017-03-17 7:22 ` Nicolas Goaziou [this message]
2017-03-17 9:23 ` Rasmus
2017-03-18 9:44 ` Nicolas Goaziou
2017-03-20 14:34 ` Rasmus
2017-03-23 16:17 ` Nicolas Goaziou
2017-03-24 16:25 ` Rasmus
2017-03-27 12:02 ` Nicolas Goaziou
2017-03-27 12:30 ` Rasmus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tw6se5a3.fsf@nicolasgoaziou.fr \
--to=mail@nicolasgoaziou.fr \
--cc=emacs-orgmode@gnu.org \
--cc=rasmus@gmx.us \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).