From 6665f5274c87e70878c8c9d6ece1bffa5824b0c0 Mon Sep 17 00:00:00 2001 From: TEC Date: Fri, 8 Mar 2024 14:35:09 +0800 Subject: [PATCH] ox-latex: Fix interning of engraved theme keyword * lisp/ox-latex.el (org-latex-src-block--engraved, org-latex-inline-src-block--engraved): The engrave-faces backend expects themes to be named using symbols, as does the default theme used by org `org-latex-engraved-theme'. However, when set using #+attr_latex or the use of #+latex_engraved_theme the value in the info plist is a string. Thus, the code path needs to handle both string and symbol values, interning string values to symbols. --- lisp/ox-latex.el | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 759d9e9f7..70a8be7ca 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -2761,9 +2761,10 @@ INFO, CODE, and LANG are provided by `org-latex-inline-src-block'." "Transcode an inline src block's content from Org to LaTeX, using engrave-faces. INFO, CODE, and LANG are provided by `org-latex-inline-src-block'." (let ((engraved-theme (plist-get info :latex-engraved-theme))) + (when (stringp engraved-theme) + (setq engraved-theme (intern engraved-theme))) (org-latex-src--engrave-code - code lang - (and engraved-theme (intern engraved-theme)) nil + code lang engraved-theme nil (plist-get info :latex-engraved-options) t))) (defun org-latex-inline-src-block--listings (info code lang) @@ -3897,9 +3898,16 @@ and FLOAT are extracted from SRC-BLOCK and INFO in `org-latex-src-block'." `(("linenos") ("firstnumber" ,(number-to-string (1+ num-start))))) (and local-options `((,local-options)))))) - (engraved-doc-theme (plist-get info :latex-engraved-theme)) - (engraved-theme (or (plist-get attributes :engraved-theme) - engraved-doc-theme)) + (intern-safe + (lambda (name) + (if (stringp name) + (intern name) + name))) + (engraved-doc-theme + (funcall intern-safe (plist-get info :latex-engraved-theme))) + (engraved-theme + (or (funcall intern-safe (plist-get attributes :engraved-theme)) + engraved-doc-theme)) (content (let* ((code-info (org-export-unravel-code src-block)) (max-width @@ -3925,7 +3933,7 @@ and FLOAT are extracted from SRC-BLOCK and INFO in `org-latex-src-block'." (org-latex-src--engrave-mathescape-p info options))) (org-latex-src--engrave-code content lang - (and engraved-theme (intern engraved-theme)) + engraved-theme (not (eq engraved-theme engraved-doc-theme)) options)))) (concat (car float-env) body (cdr float-env))))