From 61f831b9231a6ee935332f4bee4f6eced896de6d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 20 Feb 2012 01:05:46 +0100 Subject: [PATCH] org-e-latex: Fix label position in LaTeX environments * EXPERIMENTAL/org-e-latex.el (org-e-latex-latex-environment): label should be within the environment. --- EXPERIMENTAL/org-e-latex.el | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/EXPERIMENTAL/org-e-latex.el b/EXPERIMENTAL/org-e-latex.el index bdeeb5dad..eec331abd 100644 --- a/EXPERIMENTAL/org-e-latex.el +++ b/EXPERIMENTAL/org-e-latex.el @@ -1295,9 +1295,19 @@ CONTENTS is nil. INFO is a plist holding contextual information." (defun org-e-latex-latex-environment (latex-environment contents info) "Transcode a LATEX-ENVIRONMENT element from Org to LaTeX. CONTENTS is nil. INFO is a plist holding contextual information." - (org-e-latex--wrap-label - latex-environment - (org-remove-indentation (org-element-get-property :value latex-environment)))) + (let ((label (org-element-get-property :name latex-environment)) + (value (org-remove-indentation + (org-element-get-property :value latex-environment)))) + (if (not (org-string-nw-p label)) value + ;; Environment is labelled: label must be within the environment + ;; (otherwise, a reference pointing to that element will count + ;; the section instead). + (with-temp-buffer + (insert value) + (goto-char (point-min)) + (forward-line) + (insert (format "\\label{%s}\n" label)) + (buffer-string))))) ;;;; Latex Fragment