emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org f4414f5dbb 1/3: ox-latex: Fix references to src blo


From: ELPA Syncer
Subject: [elpa] externals/org f4414f5dbb 1/3: ox-latex: Fix references to src block results without #+name
Date: Mon, 5 Feb 2024 09:58:40 -0500 (EST)

branch: externals/org
commit f4414f5dbbbe310ae2576e1f3706b2f43de19493
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>

    ox-latex: Fix references to src block results without #+name
    
    * lisp/ox-latex.el (org-latex--label): Consider :results property in
    addition to :name property of the datum.  For datums that are results
    of evaluation, the label may not only come from #+name keyword, but
    can also be duplicated from the generating src block.
    (org-latex--wrap-label): Do not limit label to elements with #+name.
    Rely on `org-latex--label' to return appropriate label (or nil).
    
    Reported-by: gerard.vermeulen@posteo.net
    Link: https://orgmode.org/list/6d9db4be5d42236391d5c4e530250ee1@posteo.net
---
 lisp/ox-latex.el | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 2b44679c75..e3edef3bd5 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1552,12 +1552,11 @@ this case always return a unique label.
 Eventually, if FULL is non-nil, wrap label within \"\\label{}\"."
   (let* ((type (org-element-type datum))
         (user-label
-         (org-element-property
-          (cl-case type
-            ((headline inlinetask) :CUSTOM_ID)
-            (target :value)
-            (otherwise :name))
-          datum))
+          (cl-case type
+           ((headline inlinetask) (org-element-property :CUSTOM_ID datum))
+           (target (org-element-property :value datum))
+           (otherwise (or (org-element-property :name datum)
+                           (car (org-element-property :results datum))))))
         (label
          (and (or user-label force)
               (if (and user-label (plist-get info :latex-prefer-user-labels))
@@ -1818,11 +1817,11 @@ nil."
 INFO is the current export state, as a plist.  This function
 should not be used for floats.  See
 `org-latex--caption/label-string'."
-  (if (not (and (org-string-nw-p output) (org-element-property :name element)))
-      output
-    (concat (format "\\phantomsection\n\\label{%s}\n"
-                   (org-latex--label element info))
-           output)))
+  (let ((label (org-latex--label element info)))
+    (if (not (and (org-string-nw-p output) label))
+        output
+      (concat (format "\\phantomsection\n\\label{%s}\n" label)
+             output))))
 
 (defun org-latex--protect-text (text)
   "Protect special characters in string TEXT and return it."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]