From 34a3cd5467b3d0ea5425234190c681943a6ad8ed Mon Sep 17 00:00:00 2001 From: Rasmus Date: Mon, 20 Apr 2015 15:06:55 +0200 Subject: [PATCH] ox-latex: Use standard LaTeX label prefixes * ox-latex.el (org-latex--label): Use standard LaTeX prefixes. (org-latex-math-environments-re): New defconst. --- lisp/ox-latex.el | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index f0a604f60..192739ac7 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -209,6 +209,19 @@ ("kbordermatrix" . "\\\\")) "Alist between matrix macros and their row ending.") +(defconst org-latex-math-environments-re + (format + "\\`[ \t]*\\\\begin{%s\\*?}" + (regexp-opt + '("equation" "eqnarray" "math" "displaymath" + "align" "gather" "multline" "flalign" "alignat" + "xalignat" "xxalignat" + "subequations" + ;; breqn + "dmath" "dseries" "dgroup" "darray" + ;; empheq + "empheq"))) + "Regexp of LaTeX math environments.") ;;; User Configurable Variables @@ -1067,7 +1080,18 @@ Eventually, if FULL is non-nil, wrap label within \"\\label{}\"." (and (or user-label force) (if (and user-label (plist-get info :latex-prefer-user-labels)) user-label - (org-export-get-reference datum info))))) + (concat (case type + (headline "sec:") + (table "tab:") + (latex-environment + (and (org-string-match-p + org-latex-math-environments-re + (org-element-property :value datum)) + "eq:")) + (paragraph + (and (org-element-property :caption datum) + "fig:"))) + (org-export-get-reference datum info)))))) (cond ((not full) label) (label (format "\\label{%s}%s" label -- 2.11.4.GIT