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

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

[elpa] externals/org 777c1c3 27/85: Merge branch 'bugfix'


From: ELPA Syncer
Subject: [elpa] externals/org 777c1c3 27/85: Merge branch 'bugfix'
Date: Mon, 27 Sep 2021 15:57:43 -0400 (EDT)

branch: externals/org
commit 777c1c3cb5a4a3732c7a1a6b3d731944e39f2aab
Merge: a3c912c ec7c16a
Author: Bastien <bzg@gnu.org>
Commit: Bastien <bzg@gnu.org>

    Merge branch 'bugfix'
---
 lisp/ox-latex.el        | 30 +++++++--------
 testing/lisp/test-ox.el | 97 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 111 insertions(+), 16 deletions(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index a049284..3b03c66 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -2994,22 +2994,20 @@ contextual information."
       (cond
        ;; Case 1.  No source fontification.
        ((or (not lang) (not listings))
-       (let* ((caption-str (org-latex--caption/label-string src-block info))
-              (float-env
-               (cond ((string= "multicolumn" float)
-                      (format "\\begin{figure*}[%s]\n%s%%s\n%s\\end{figure*}"
-                              (plist-get info :latex-default-figure-position)
-                              (if caption-above-p caption-str "")
-                              (if caption-above-p "" caption-str)))
-                     (caption (concat
-                               (if caption-above-p caption-str "")
-                               "%s"
-                               (if caption-above-p "" (concat "\n" 
caption-str))))
-                     (t "%s"))))
-         (format
-          float-env
-          (concat (format "\\begin{verbatim}\n%s\\end{verbatim}"
-                          (org-export-format-code-default src-block info))))))
+       (let ((caption-str (org-latex--caption/label-string src-block info))
+              (verbatim (format "\\begin{verbatim}\n%s\\end{verbatim}"
+                                (org-export-format-code-default src-block 
info))))
+          (cond ((string= "multicolumn" float)
+                 (format "\\begin{figure*}[%s]\n%s%s\n%s\\end{figure*}"
+                         (plist-get info :latex-default-figure-position)
+                         (if caption-above-p caption-str "")
+                         verbatim
+                         (if caption-above-p "" caption-str)))
+                (caption (concat
+                          (if caption-above-p caption-str "")
+                          verbatim
+                          (if caption-above-p "" (concat "\n" caption-str))))
+                (t verbatim))))
        ;; Case 2.  Custom environment.
        (custom-env
        (let ((caption-str (org-latex--caption/label-string src-block info))
diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el
index 3f39645..5455804 100644
--- a/testing/lisp/test-ox.el
+++ b/testing/lisp/test-ox.el
@@ -3907,6 +3907,103 @@ Another text. (ref:text)
              (org-export-format-code-default
               (org-element-map tree 'src-block #'identity info t) info))))))
 
+(ert-deftest test-org-export/latex-src-block-verbatim-caption ()
+  "Test `org-latex-src-block' caption for verbatim environment.
+Check that percent sign does not become a part of format.
+This test does not cover listings and custom environments."
+  (let ((export
+        (lambda (buffer-text)
+          (org-test-with-parsed-data
+              buffer-text
+            (let* ((backend (org-export-get-backend 'latex))
+                   (info (org-combine-plists
+                          (org-export--get-export-attributes backend)
+                          (org-export-get-environment backend)))
+                   (result (org-latex-src-block
+                            (org-element-map tree 'src-block #'identity info t)
+                            t info)))
+              ;; Remove properties to make failure reports more clear.
+              (set-text-properties 0 (length result) nil result)
+              result)))))
+
+    (should (equal
+            "\
+\\begin{verbatim}
+\"No float, no listings, 20%S\"
+\\end{verbatim}
+\\captionof{figure}{Caption of verbatim is below, 20\\%s}
+"
+            (funcall export
+                     "\
+#+CAPTION: Caption of verbatim is below, 20%s
+#+BEGIN_SRC emacs-lisp
+  \"No float, no listings, 20%S\"
+#+END_SRC")))
+
+    ;; `org-latex-caption-above' has no associated property or keyword.
+    (should (equal
+            "\
+\\captionof{figure}{Caption of verbatim is above, 40\\%s}
+\\begin{verbatim}
+\"No float, no listings, 40%S\"
+\\end{verbatim}"
+            (let ((org-latex-caption-above t))
+              (funcall export
+                       "\
+#+CAPTION: Caption of verbatim is above, 40%s
+#+BEGIN_SRC emacs-lisp
+  \"No float, no listings, 40%S\"
+#+END_SRC"))))
+
+    (should (equal
+            "\
+\\begin{figure*}[tp]
+\\caption{Caption is above, 60\\%s}
+\\begin{verbatim}
+\"Float, no listings, 60%S\"
+\\end{verbatim}
+\\end{figure*}"
+            (let ((org-latex-caption-above t)
+                  (org-latex-default-figure-position "tp"))
+              (funcall export
+                       "\
+#+CAPTION: Caption is above, 60%s
+#+ATTR_LATEX: :float multicolumn
+#+BEGIN_SRC emacs-lisp
+  \"Float, no listings, 60%S\"
+#+END_SRC"))))
+
+    (should (equal
+            "\
+\\begin{figure*}[tp]
+\\begin{verbatim}
+\"Float, no lang, listings, 80%S\"
+\\end{verbatim}
+\\caption{Caption is below, 60\\%s}
+\\end{figure*}"
+            (let ((org-latex-listings 'minted) ; inactive due to missing lang
+                  (org-latex-default-figure-position "tp"))
+              ;; Namely "multicolumn" value to get just figure environment
+              ;; looks like a bug.
+              (funcall export
+                       "\
+#+CAPTION: Caption is below, 60%s
+#+ATTR_LATEX: :float multicolumn
+#+BEGIN_SRC
+  \"Float, no lang, listings, 80%S\"
+#+END_SRC"))))
+
+    (should (equal
+            "\
+\\begin{verbatim}
+\"No caption, no float, no listings, 100%S\"
+\\end{verbatim}"
+            (funcall export
+                     "\
+#+BEGIN_SRC emacs-lisp
+  \"No caption, no float, no listings, 100%S\"
+#+END_SRC")))))
+
 
 
 ;;; Smart Quotes



reply via email to

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