* adding options to the minted environment of exported source blocks in latex @ 2014-02-07 15:19 Alan Schmitt 2014-02-07 20:45 ` Nicolas Goaziou 0 siblings, 1 reply; 10+ messages in thread From: Alan Schmitt @ 2014-02-07 15:19 UTC (permalink / raw) To: emacs-orgmode Hello, I use and abuse the `org-latex-minted-options' when exporting source blocks in latex, but I'm stumped by a usage pattern. I need to change the list of options for one given source block (adding a "belowskip" option to it). I tried the following, but it did not do anything: --8<---------------cut here---------------start------------->8--- #+attr_latex: :belowskip 1cm #+BEGIN_SRC ocaml #load "graphics.cma";; Graphics.open_graph "";; #+END_SRC --8<---------------cut here---------------end--------------->8--- I guess that I can only put some specific options for "attr_latex". Is there a way to put arbitrary options in the exported minted environment? Thanks a lot, Alan ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-02-07 15:19 adding options to the minted environment of exported source blocks in latex Alan Schmitt @ 2014-02-07 20:45 ` Nicolas Goaziou 2014-02-09 10:16 ` Alan Schmitt 0 siblings, 1 reply; 10+ messages in thread From: Nicolas Goaziou @ 2014-02-07 20:45 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode Hello, Alan Schmitt <alan.schmitt@polytechnique.org> writes: > I use and abuse the `org-latex-minted-options' when exporting source > blocks in latex, but I'm stumped by a usage pattern. I need to change > the list of options for one given source block (adding a "belowskip" > option to it). I tried the following, but it did not do anything: > > #+attr_latex: :belowskip 1cm > #+BEGIN_SRC ocaml > #load "graphics.cma";; > Graphics.open_graph "";; > #+END_SRC > > I guess that I can only put some specific options for "attr_latex". Is > there a way to put arbitrary options in the exported minted > environment? At the moment, there is no Org way to add arbitrary options to listings or minted on a per block basis. There are basically two ways to implement this. Either we add an :options keyword and stuff options there: #+attr_latex: :options a=b,c=d #+begin_src ... Another option is to turn options into keywords: #+attr_latex: :a b :c d #+begin_src ... The latter is more elegant, but it requires to know about every minted/listings options. It is also possible to do something in-between, i.e., tell Org about a few selected keywords and stuff the others into :options. This is what is done for images. Org knows about :height and :width and uses :options for everything else. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-02-07 20:45 ` Nicolas Goaziou @ 2014-02-09 10:16 ` Alan Schmitt 2014-02-10 16:51 ` Nicolas Goaziou 0 siblings, 1 reply; 10+ messages in thread From: Alan Schmitt @ 2014-02-09 10:16 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Hi Nicolas, Nicolas Goaziou <n.goaziou@gmail.com> writes: > At the moment, there is no Org way to add arbitrary options to listings > or minted on a per block basis. > > There are basically two ways to implement this. Either we add > an :options keyword and stuff options there: > > #+attr_latex: :options a=b,c=d > #+begin_src ... > > Another option is to turn options into keywords: > > #+attr_latex: :a b :c d > #+begin_src ... > > The latter is more elegant, but it requires to know about every > minted/listings options. > > It is also possible to do something in-between, i.e., tell Org about > a few selected keywords and stuff the others into :options. This is what > is done for images. Org knows about :height and :width and uses :options > for everything else. The latter would be great. The option I'm considering does not exist in minted, I add it in my preamble. Best, Alan ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-02-09 10:16 ` Alan Schmitt @ 2014-02-10 16:51 ` Nicolas Goaziou 2014-02-11 15:23 ` Alan Schmitt 0 siblings, 1 reply; 10+ messages in thread From: Nicolas Goaziou @ 2014-02-10 16:51 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode Hello, Alan Schmitt <alan.schmitt@polytechnique.org> writes: > Nicolas Goaziou <n.goaziou@gmail.com> writes: > >> It is also possible to do something in-between, i.e., tell Org about >> a few selected keywords and stuff the others into :options. This is what >> is done for images. Org knows about :height and :width and uses :options >> for everything else. > > The latter would be great. The option I'm considering does not exist in > minted, I add it in my preamble. Then the next question is: what would be the blessed keywords known by Org? They need to be supported in both listings and minted (but not necessarily under the same name internally). Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-02-10 16:51 ` Nicolas Goaziou @ 2014-02-11 15:23 ` Alan Schmitt 2014-02-11 18:10 ` Nicolas Goaziou 0 siblings, 1 reply; 10+ messages in thread From: Alan Schmitt @ 2014-02-11 15:23 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Nicolas Goaziou <n.goaziou@gmail.com> writes: > Hello, > > Alan Schmitt <alan.schmitt@polytechnique.org> writes: > >> Nicolas Goaziou <n.goaziou@gmail.com> writes: >> >>> It is also possible to do something in-between, i.e., tell Org about >>> a few selected keywords and stuff the others into :options. This is what >>> is done for images. Org knows about :height and :width and uses :options >>> for everything else. >> >> The latter would be great. The option I'm considering does not exist in >> minted, I add it in my preamble. > > Then the next question is: what would be the blessed keywords known by > Org? They need to be supported in both listings and minted (but not > necessarily under the same name internally). It is a good questions. I don't use listings, so I cannot comment about it. I usually tweak the "frame" and "fontsize" options for minted. Maybe the simplest approach is to have no blessed keyword, and have them in :latex_options (as these are latex specific, the option name could be called that). Alan ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-02-11 15:23 ` Alan Schmitt @ 2014-02-11 18:10 ` Nicolas Goaziou 2014-02-12 10:25 ` Alan Schmitt 0 siblings, 1 reply; 10+ messages in thread From: Nicolas Goaziou @ 2014-02-11 18:10 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode Hello, Alan Schmitt <alan.schmitt@polytechnique.org> writes: > Nicolas Goaziou <n.goaziou@gmail.com> writes: > >> Alan Schmitt <alan.schmitt@polytechnique.org> writes: >> >>> Nicolas Goaziou <n.goaziou@gmail.com> writes: >>> >>>> It is also possible to do something in-between, i.e., tell Org about >>>> a few selected keywords and stuff the others into :options. This is what >>>> is done for images. Org knows about :height and :width and uses :options >>>> for everything else. >>> >>> The latter would be great. The option I'm considering does not exist in >>> minted, I add it in my preamble. >> >> Then the next question is: what would be the blessed keywords known by >> Org? They need to be supported in both listings and minted (but not >> necessarily under the same name internally). > > It is a good questions. I don't use listings, so I cannot comment about > it. I usually tweak the "frame" and "fontsize" options for minted. > > Maybe the simplest approach is to have no blessed keyword, and have them > in :latex_options (as these are latex specific, the option name could be > called that). I must have misunderstood your answer then. Anyway :latex_options would be redundant on an #+attr_latex: line. I'll have a look at it when I get some spare time. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-02-11 18:10 ` Nicolas Goaziou @ 2014-02-12 10:25 ` Alan Schmitt 2014-03-25 15:04 ` Nicolas Goaziou 0 siblings, 1 reply; 10+ messages in thread From: Alan Schmitt @ 2014-02-12 10:25 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Hello Nicolas, Nicolas Goaziou <n.goaziou@gmail.com> writes: > Anyway :latex_options would be redundant on an #+attr_latex: line. I'll > have a look at it when I get some spare time. Using attr_latex would be great. Thanks, Alan ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-02-12 10:25 ` Alan Schmitt @ 2014-03-25 15:04 ` Nicolas Goaziou 2014-03-25 15:48 ` Alan Schmitt 0 siblings, 1 reply; 10+ messages in thread From: Nicolas Goaziou @ 2014-03-25 15:04 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 156 bytes --] Hello, Alan Schmitt <alan.schmitt@polytechnique.org> writes: > Using attr_latex would be great. Here is the patch. WDYT? Regards, -- Nicolas Goaziou [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-ox-latex-Allow-options-in-LaTeX-attributes.patch --] [-- Type: text/x-diff, Size: 6162 bytes --] From c56bd2754030fd999d50d349ee5282a6c16ba832 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <n.goaziou@gmail.com> Date: Tue, 25 Mar 2014 15:58:41 +0100 Subject: [PATCH] ox-latex: Allow :options in LaTeX attributes * lisp/ox-latex.el (org-latex-src-block): Allow to add options to listings or minted block-wise. (org-latex-listings-options, org-latex-minted-options): Update docstring. * doc/org.texi (@LaTeX{} specific attributes): Document feature. --- doc/org.texi | 22 +++++++++++++++-- lisp/ox-latex.el | 72 +++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 65 insertions(+), 29 deletions(-) diff --git a/doc/org.texi b/doc/org.texi index 2abfa66..2330835 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -9842,6 +9842,7 @@ Here is an example @end example @cindex formatting source code, markup rules +@vindex org-latex-listings If the example is source code from a programming language, or any other text that can be marked up by font-lock in Emacs, you can ask for the example to look like the fontified Emacs buffer@footnote{This works automatically for @@ -11833,8 +11834,10 @@ that environment. @cindex source blocks, in @LaTeX{} export In addition to syntax defined in @ref{Literal examples}, names and captions -(@pxref{Images and tables}), source blocks also accept a @code{:float} -attribute. You may set it to: +(@pxref{Images and tables}), source blocks also accept two additional +attributes: @code{:float} and @code{:options}. + +You may set the former to @itemize @minus @item @code{t}: if you want to make the source block a float. It is the default @@ -11854,6 +11857,21 @@ Code that may not fit in a single page. #+END_SRC @end example +@vindex org-latex-listings-options +@vindex org-latex-minted-options +The latter allows to specify options relative to the package used to +highlight code in the output (e.g., @code{listings}). This is the local +counterpart to @code{org-latex-listings-options} and +@code{org-latex-minted-options} variables, which see. + +@example +#+ATTR_LATEX: :options commentstyle=\bfseries +#+BEGIN_SRC emacs-lisp + (defun Fib (n) ; Count rabbits. + (if (< n 2) n (+ (Fib (- n 1)) (Fib (- n 2))))) +#+END_SRC +@end example + @subsubheading Special blocks in @LaTeX{} export @cindex special blocks, in @LaTeX{} export @cindex abstract, in @LaTeX{} export diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 4616574..fdf1008 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -770,7 +770,13 @@ will typeset the code in a small size font with underlined, bold black keywords. Note that the same options will be applied to blocks of all -languages." +languages. If you need block-specific options, you may use the +following syntax: + + #+ATTR_LATEX: :options key1=value1,key2=value2 + #+BEGIN_SRC <LANG> + ... + #+END_SRC" :group 'org-export-latex :type '(repeat (list @@ -817,7 +823,13 @@ will result in src blocks being exported with \\begin{minted}[bgcolor=bg,frame=lines]{<LANG>} as the start of the minted environment. Note that the same -options will be applied to blocks of all languages." +options will be applied to blocks of all languages. If you need +block-specific options, you may use the following syntax: + + #+ATTR_LATEX: :options key1=value1,key2=value2 + #+BEGIN_SRC <LANG> + ... + #+END_SRC" :group 'org-export-latex :type '(repeat (list @@ -2279,14 +2291,17 @@ contextual information." (format "\\begin{minted}[%s]{%s}\n%s\\end{minted}" ;; Options. - (org-latex--make-option-string - (if (or (not num-start) - (assoc "linenos" org-latex-minted-options)) - org-latex-minted-options - (append - `(("linenos") - ("firstnumber" ,(number-to-string (1+ num-start)))) - org-latex-minted-options))) + (concat + (org-latex--make-option-string + (if (or (not num-start) + (assoc "linenos" org-latex-minted-options)) + org-latex-minted-options + (append + `(("linenos") + ("firstnumber" ,(number-to-string (1+ num-start)))) + org-latex-minted-options))) + (let ((local-options (plist-get attributes :options))) + (and local-options (concat "," local-options)))) ;; Language. (or (cadr (assq (intern lang) org-latex-minted-langs)) lang) ;; Source code. @@ -2328,23 +2343,26 @@ contextual information." ;; Options. (format "\\lstset{%s}\n" - (org-latex--make-option-string - (append - org-latex-listings-options - (cond - ((and (not float) (plist-member attributes :float)) nil) - ((string= "multicolumn" float) '(("float" "*"))) - ((and float (not (assoc "float" org-latex-listings-options))) - `(("float" ,org-latex-default-figure-position)))) - `(("language" ,lst-lang)) - (when label `(("label" ,label))) - (when caption-str `(("caption" ,caption-str))) - (cond ((assoc "numbers" org-latex-listings-options) nil) - ((not num-start) '(("numbers" "none"))) - ((zerop num-start) '(("numbers" "left"))) - (t `(("numbers" "left") - ("firstnumber" - ,(number-to-string (1+ num-start))))))))) + (concat + (org-latex--make-option-string + (append + org-latex-listings-options + (cond + ((and (not float) (plist-member attributes :float)) nil) + ((string= "multicolumn" float) '(("float" "*"))) + ((and float (not (assoc "float" org-latex-listings-options))) + `(("float" ,org-latex-default-figure-position)))) + `(("language" ,lst-lang)) + (when label `(("label" ,label))) + (when caption-str `(("caption" ,caption-str))) + (cond ((assoc "numbers" org-latex-listings-options) nil) + ((not num-start) '(("numbers" "none"))) + ((zerop num-start) '(("numbers" "left"))) + (t `(("numbers" "left") + ("firstnumber" + ,(number-to-string (1+ num-start)))))))) + (let ((local-options (plist-get attributes :options))) + (and local-options (concat "," local-options))))) ;; Source code. (format "\\begin{lstlisting}\n%s\\end{lstlisting}" -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-03-25 15:04 ` Nicolas Goaziou @ 2014-03-25 15:48 ` Alan Schmitt 2014-03-25 18:10 ` Nicolas Goaziou 0 siblings, 1 reply; 10+ messages in thread From: Alan Schmitt @ 2014-03-25 15:48 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Nicolas Goaziou <n.goaziou@gmail.com> writes: > Hello, > > Alan Schmitt <alan.schmitt@polytechnique.org> writes: > >> Using attr_latex would be great. > > Here is the patch. WDYT? It's working great, thanks a lot! Alan ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: adding options to the minted environment of exported source blocks in latex 2014-03-25 15:48 ` Alan Schmitt @ 2014-03-25 18:10 ` Nicolas Goaziou 0 siblings, 0 replies; 10+ messages in thread From: Nicolas Goaziou @ 2014-03-25 18:10 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode Alan Schmitt <alan.schmitt@polytechnique.org> writes: > It's working great, thanks a lot! Applied, then. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-03-25 18:10 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-07 15:19 adding options to the minted environment of exported source blocks in latex Alan Schmitt 2014-02-07 20:45 ` Nicolas Goaziou 2014-02-09 10:16 ` Alan Schmitt 2014-02-10 16:51 ` Nicolas Goaziou 2014-02-11 15:23 ` Alan Schmitt 2014-02-11 18:10 ` Nicolas Goaziou 2014-02-12 10:25 ` Alan Schmitt 2014-03-25 15:04 ` Nicolas Goaziou 2014-03-25 15:48 ` Alan Schmitt 2014-03-25 18:10 ` Nicolas Goaziou
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).