소스 검색

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.
Nicolas Goaziou 13 년 전
부모
커밋
61f831b923
1개의 변경된 파일13개의 추가작업 그리고 3개의 파일을 삭제
  1. 13 3
      EXPERIMENTAL/org-e-latex.el

+ 13 - 3
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