all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [PATCH] ox-latex.el: Wrap 'minted' src blocks in a 'listing', environment
@ 2017-01-31  6:28 Lixin Chin
  2017-01-31  8:04 ` Nicolas Goaziou
  0 siblings, 1 reply; 3+ messages in thread
From: Lixin Chin @ 2017-01-31  6:28 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 2674 bytes --]

Hi everyone,

Included is a patch to make the 'minted' source code syntax highlighting
package behave the same as the 'listings' source code syntax package
when exporting an org-mode document to LaTeX.

Previously, 'minted' would only get exported to a floating environment
if '#+ATTR_LATEX: :float multicolumn' was provided, whereas the
org-mode documentation implies that it should be floated if any caption
is provided.

Regards,
Lixin Chin

* lisp/ox-latex.el (org-latex-src-block): Make source highlighting
   using the 'minted' syntax highlighting package behave the same as
   using the 'listings' syntax highlighting package.

The source block should be floating if a caption is provided, or if
':float t' is provided in an '#+ATTR_LATEX:' block. Previously, the
source block would only be floating if ':float multicolumn' was
provided. This now matches the org-mode documentation for source
blocks.
---
  lisp/ox-latex.el | 16 +++++++++++-----
  1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index d05991233..3cea81650 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1301,7 +1301,7 @@ For non-floats, see `org-latex--wrap-label'."
                 (and (eq type 'src-block)
                  (not (plist-get attr :float))
                  (memq (plist-get info :latex-listings)
-                  '(nil minted)))))
+                  '(nil)))))
       (short (org-export-get-caption element t))
       (caption-from-attr-latex (plist-get attr :caption)))
      (cond
@@ -2880,13 +2880,19 @@ contextual information."
             (float-env
          (cond
           ((string= "multicolumn" float)
-          (format "\\begin{listing*}\n%s%%s\n%s\\end{listing*}"
+          (format "\\begin{listing*}[%s]\n%s%%s\n%s\\end{listing*}"
+              (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))))
+          (format "\\begin{listing}[%s]\n%s%%s\n%s\\end{listing}"
+              (plist-get info :latex-default-figure-position)
+              (if caption-above-p caption-str "")
+              (if caption-above-p "" caption-str)))
+         ((string= "t" float)
+          (concat (format "\\begin{listing}[%s]\n"
+                  (plist-get info :latex-default-figure-position))
+              "%s\n\\end{listing}"))
           (t "%s")))
             (options (plist-get info :latex-minted-options))
             (body
-- 
2.11.0



[-- Attachment #2: 0001-ox-latex.el-Wrap-minted-src-blocks-in-a-listing-envi.patch --]
[-- Type: text/plain, Size: 2236 bytes --]

From 4daf10b3f5283e3e992fc9e11ff76b6b33c488b6 Mon Sep 17 00:00:00 2001
From: Lixin Chin <lixin.chin@research.uwa.edu.au>
Date: Tue, 31 Jan 2017 14:15:40 +0800
Subject: [PATCH] ox-latex.el: Wrap 'minted' src blocks in a 'listing'
 environment

* lisp/ox-latex.el (org-latex-src-block): Make source highlighting
  using the 'minted' syntax highlighting package behave the same as
  using the 'listings' syntax highlighting package.

The source block should be floating if a caption is provided, or if
':float t' is provided in an '#+ATTR_LATEX:' block. Previously, the
source block would only be floating if ':float multicolumn' was
provided. This now matches the org-mode documentation for source
blocks.
---
 lisp/ox-latex.el | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index d05991233..3cea81650 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1301,7 +1301,7 @@ For non-floats, see `org-latex--wrap-label'."
 		       (and (eq type 'src-block)
 			    (not (plist-get attr :float))
 			    (memq (plist-get info :latex-listings)
-				  '(nil minted)))))
+				  '(nil)))))
 	 (short (org-export-get-caption element t))
 	 (caption-from-attr-latex (plist-get attr :caption)))
     (cond
@@ -2880,13 +2880,19 @@ contextual information."
 	       (float-env
 		(cond
 		 ((string= "multicolumn" float)
-		  (format "\\begin{listing*}\n%s%%s\n%s\\end{listing*}"
+		  (format "\\begin{listing*}[%s]\n%s%%s\n%s\\end{listing*}"
+			  (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))))
+		  (format "\\begin{listing}[%s]\n%s%%s\n%s\\end{listing}"
+			  (plist-get info :latex-default-figure-position)
+			  (if caption-above-p caption-str "")
+			  (if caption-above-p "" caption-str)))
+		 ((string= "t" float)
+		  (concat (format "\\begin{listing}[%s]\n"
+				  (plist-get info :latex-default-figure-position))
+			  "%s\n\\end{listing}"))
 		 (t "%s")))
 	       (options (plist-get info :latex-minted-options))
 	       (body
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-31  8:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-31  6:28 [PATCH] ox-latex.el: Wrap 'minted' src blocks in a 'listing', environment Lixin Chin
2017-01-31  8:04 ` Nicolas Goaziou
2017-01-31  8:22   ` Lixin Chin

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.