Re: [Orgmode] [PATCH] fontified source-code on latex export with listings package
Carsten Dominik carsten.domi...@gmail.com writes: I have added the patch, thanks! Thanks for adding the patch. Eric, color setup is relative complex, which i why I don't want to discuss this in detail in the manual. Maybe you could write a Worg page about this, and/or a FAQ entry? I've added a FAQ entry to worg which encapsulates the *very little* I do know about using the listings and color packages in LaTeX documents. http://orgmode.org/worg/org-faq.php#fontified_source_code_w_latex Best -- Eric - Carsten On Aug 8, 2009, at 8:59 PM, Eric Schulte wrote: Hi, The attached patch allows for fontified source code blocks on export to LaTeX. It does this using the 'listings' latex package. A new variable is introduced; `org-export-latex-listings' which should be set to non-nil for source-code to be exported as listings blocks. This variable defaults to nil in which case the current practice of exporting source code to verbatim latex blocks remains unchanged. To use this functionality add the following to your org-mode config. --8---cut here---start-8--- ;; tell org to use listings (setq org-export-latex-listings t) ;; you must include the listings package (add-to-list 'org-export-latex-packages-alist '( listings)) ;; if you want colored source code then you need to include the color package (add-to-list 'org-export-latex-packages-alist '( color)) --8---cut here---end---8--- In addition to the patch, I'm attaching an example org-mode file, along with the generated LaTeX file and PDF file. Do you think this would be appropriate for inclusion into org-mode? Thanks -- Eric diff --git a/lisp/org-exp.el b/lisp/org-exp.el index 00fd6c8..9de5e5f 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -2204,6 +2204,8 @@ in the list) and remove property and value from the list in LISTVAR. (defvar htmlp) ;; dynamically scoped (defvar latexp) ;; dynamically scoped (defvar org-export-latex-verbatim-wrap) ;; defined in org-latex.el +(defvar org-export-latex-listings) ;; defined in org-latex.el +(defvar org-export-latex-listings-langs) ;; defined in org-latex.el (defun org-export-format-source-code-or-example (backend lang code optional opts indent) @@ -2310,8 +2312,20 @@ INDENT was the original indentation of the block. ((eq backend 'latex) (setq rtn (org-export-number-lines rtn 'latex 0 0 num cont rpllbl fmt)) (concat \n#+BEGIN_LaTeX\n - (org-add-props (concat (car org-export-latex-verbatim-wrap) - rtn (cdr org-export-latex-verbatim-wrap)) + (org-add-props + (if org-export-latex-listings + (concat + (if lang + (let* ((lang-sym (intern (concat : lang))) + (lstlang (or (plist-get org-export-latex-listings-langs + lang-sym) + lang))) + (format \\lstset{language=%s} \n lstlang)) + ) + \\begin{lstlisting}\n + rtn \\end{lstlisting}\n) +(concat (car org-export-latex-verbatim- wrap) +rtn (cdr org-export-latex- verbatim-wrap))) '(org-protected t)) #+END_LaTeX\n\n)) ((eq backend 'ascii) diff --git a/lisp/org-latex.el b/lisp/org-latex.el index fdf9ae2..f80e221 100644 --- a/lisp/org-latex.el +++ b/lisp/org-latex.el @@ -69,6 +69,9 @@ org-deadline-string \\| org-closed-string\\)) Regexp matching special time planning keywords plus the time after it.) +(defvar org-export-latex-listings nil + If non-nil then source code blocks will be fontified using the +listings package.) (defvar latexp); dynamically scoped from org.el (defvar re-quote) ; dynamically scoped from org.el @@ -297,6 +300,12 @@ Defaults to \\begin{verbatim} and \ \end{verbatim}. :type '(cons (string :tag Open) (string :tag Close))) +(defcustom org-export-latex-listings-langs + '(:emacs-lisp lisp) + Property list mapping languages to their listing language counterpart. + :group 'org-export-latex + :type 'plist) + (defcustom org-export-latex-remove-from-headlines '(:todo nil :priority nil :tags nil) A plist of keywords to remove from headlines. OBSOLETE. listngs .org listngs .texlistngs.pdf___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode
Re: [Orgmode] [PATCH] fontified source-code on latex export with listings package
Hi Eric, thanks! BTW, when adding your patch, I added a few more languages to the default settings. - Carsten On Aug 11, 2009, at 3:01 PM, Eric Schulte wrote: Carsten Dominik carsten.domi...@gmail.com writes: I have added the patch, thanks! Thanks for adding the patch. Eric, color setup is relative complex, which i why I don't want to discuss this in detail in the manual. Maybe you could write a Worg page about this, and/or a FAQ entry? I've added a FAQ entry to worg which encapsulates the *very little* I do know about using the listings and color packages in LaTeX documents. http://orgmode.org/worg/org-faq.php#fontified_source_code_w_latex Best -- Eric - Carsten On Aug 8, 2009, at 8:59 PM, Eric Schulte wrote: Hi, The attached patch allows for fontified source code blocks on export to LaTeX. It does this using the 'listings' latex package. A new variable is introduced; `org-export-latex-listings' which should be set to non-nil for source-code to be exported as listings blocks. This variable defaults to nil in which case the current practice of exporting source code to verbatim latex blocks remains unchanged. To use this functionality add the following to your org-mode config. --8---cut here---start-8--- ;; tell org to use listings (setq org-export-latex-listings t) ;; you must include the listings package (add-to-list 'org-export-latex-packages-alist '( listings)) ;; if you want colored source code then you need to include the color package (add-to-list 'org-export-latex-packages-alist '( color)) --8---cut here---end---8--- In addition to the patch, I'm attaching an example org-mode file, along with the generated LaTeX file and PDF file. Do you think this would be appropriate for inclusion into org-mode? Thanks -- Eric diff --git a/lisp/org-exp.el b/lisp/org-exp.el index 00fd6c8..9de5e5f 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -2204,6 +2204,8 @@ in the list) and remove property and value from the list in LISTVAR. (defvar htmlp) ;; dynamically scoped (defvar latexp) ;; dynamically scoped (defvar org-export-latex-verbatim-wrap) ;; defined in org-latex.el +(defvar org-export-latex-listings) ;; defined in org-latex.el +(defvar org-export-latex-listings-langs) ;; defined in org-latex.el (defun org-export-format-source-code-or-example (backend lang code optional opts indent) @@ -2310,8 +2312,20 @@ INDENT was the original indentation of the block. ((eq backend 'latex) (setq rtn (org-export-number-lines rtn 'latex 0 0 num cont rpllbl fmt)) (concat \n#+BEGIN_LaTeX\n - (org-add-props (concat (car org-export-latex-verbatim-wrap) -rtn (cdr org-export-latex-verbatim-wrap)) + (org-add-props + (if org-export-latex-listings + (concat + (if lang + (let* ((lang-sym (intern (concat : lang))) + (lstlang (or (plist-get org-export-latex-listings-langs + lang-sym) + lang))) + (format \\lstset{language=%s} \n lstlang)) + ) + \\begin{lstlisting}\n + rtn \\end{lstlisting}\n) +(concat (car org-export-latex-verbatim- wrap) +rtn (cdr org-export-latex- verbatim-wrap))) '(org-protected t)) #+END_LaTeX\n\n)) ((eq backend 'ascii) diff --git a/lisp/org-latex.el b/lisp/org-latex.el index fdf9ae2..f80e221 100644 --- a/lisp/org-latex.el +++ b/lisp/org-latex.el @@ -69,6 +69,9 @@ org-deadline-string \\| org-closed-string\\)) Regexp matching special time planning keywords plus the time after it.) +(defvar org-export-latex-listings nil + If non-nil then source code blocks will be fontified using the +listings package.) (defvar latexp); dynamically scoped from org.el (defvar re-quote) ; dynamically scoped from org.el @@ -297,6 +300,12 @@ Defaults to \\begin{verbatim} and \ \end{verbatim}. :type '(cons (string :tag Open) (string :tag Close))) +(defcustom org-export-latex-listings-langs + '(:emacs-lisp lisp) + Property list mapping languages to their listing language counterpart. + :group 'org-export-latex + :type 'plist) + (defcustom org-export-latex-remove-from-headlines '(:todo nil :priority nil :tags nil) A plist of keywords to remove from headlines. OBSOLETE. listngs .org listngs .texlistngs.pdf___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org
Re: [Orgmode] [PATCH] fontified source-code on latex export with listings package
Carsten Dominik carsten.domi...@gmail.com writes: Hi Eric, thanks! BTW, when adding your patch, I added a few more languages to the default settings. Oh, wonderful, Actually looking at your additions I have a few more which may make sense. :gnuplot Gnuplot :ocaml Caml :caml Caml :sql SQL Thanks -- Eric ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] fontified source-code on latex export with listings package
Added, thanks. - Carsten On Aug 11, 2009, at 3:34 PM, Eric Schulte wrote: Carsten Dominik carsten.domi...@gmail.com writes: Hi Eric, thanks! BTW, when adding your patch, I added a few more languages to the default settings. Oh, wonderful, Actually looking at your additions I have a few more which may make sense. :gnuplot Gnuplot :ocaml Caml :caml Caml :sql SQL Thanks -- Eric ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] fontified source-code on latex export with listings package
Hi Eric, I would like to include your patch, this was on my todo list for a long time, thanks for doing it! - Carsten On Aug 8, 2009, at 8:59 PM, Eric Schulte wrote: Hi, The attached patch allows for fontified source code blocks on export to LaTeX. It does this using the 'listings' latex package. A new variable is introduced; `org-export-latex-listings' which should be set to non-nil for source-code to be exported as listings blocks. This variable defaults to nil in which case the current practice of exporting source code to verbatim latex blocks remains unchanged. To use this functionality add the following to your org-mode config. --8---cut here---start-8--- ;; tell org to use listings (setq org-export-latex-listings t) ;; you must include the listings package (add-to-list 'org-export-latex-packages-alist '( listings)) ;; if you want colored source code then you need to include the color package (add-to-list 'org-export-latex-packages-alist '( color)) --8---cut here---end---8--- In addition to the patch, I'm attaching an example org-mode file, along with the generated LaTeX file and PDF file. Do you think this would be appropriate for inclusion into org-mode? Thanks -- Eric diff --git a/lisp/org-exp.el b/lisp/org-exp.el index 00fd6c8..9de5e5f 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -2204,6 +2204,8 @@ in the list) and remove property and value from the list in LISTVAR. (defvar htmlp) ;; dynamically scoped (defvar latexp) ;; dynamically scoped (defvar org-export-latex-verbatim-wrap) ;; defined in org-latex.el +(defvar org-export-latex-listings) ;; defined in org-latex.el +(defvar org-export-latex-listings-langs) ;; defined in org-latex.el (defun org-export-format-source-code-or-example (backend lang code optional opts indent) @@ -2310,8 +2312,20 @@ INDENT was the original indentation of the block. ((eq backend 'latex) (setq rtn (org-export-number-lines rtn 'latex 0 0 num cont rpllbl fmt)) (concat \n#+BEGIN_LaTeX\n - (org-add-props (concat (car org-export-latex-verbatim-wrap) -rtn (cdr org-export-latex-verbatim-wrap)) + (org-add-props + (if org-export-latex-listings + (concat + (if lang + (let* ((lang-sym (intern (concat : lang))) + (lstlang (or (plist-get org-export-latex-listings-langs + lang-sym) + lang))) + (format \\lstset{language=%s} \n lstlang)) + ) + \\begin{lstlisting}\n + rtn \\end{lstlisting}\n) +(concat (car org-export-latex-verbatim- wrap) +rtn (cdr org-export-latex- verbatim-wrap))) '(org-protected t)) #+END_LaTeX\n\n)) ((eq backend 'ascii) diff --git a/lisp/org-latex.el b/lisp/org-latex.el index fdf9ae2..f80e221 100644 --- a/lisp/org-latex.el +++ b/lisp/org-latex.el @@ -69,6 +69,9 @@ org-deadline-string \\| org-closed-string\\)) Regexp matching special time planning keywords plus the time after it.) +(defvar org-export-latex-listings nil + If non-nil then source code blocks will be fontified using the +listings package.) (defvar latexp); dynamically scoped from org.el (defvar re-quote) ; dynamically scoped from org.el @@ -297,6 +300,12 @@ Defaults to \\begin{verbatim} and \ \end{verbatim}. :type '(cons (string :tag Open) (string :tag Close))) +(defcustom org-export-latex-listings-langs + '(:emacs-lisp lisp) + Property list mapping languages to their listing language counterpart. + :group 'org-export-latex + :type 'plist) + (defcustom org-export-latex-remove-from-headlines '(:todo nil :priority nil :tags nil) A plist of keywords to remove from headlines. OBSOLETE. listngs .org listngs .texlistngs.pdf___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] fontified source-code on latex export with listings package
I have added the patch, thanks! Eric, color setup is relative complex, which i why I don't want to discuss this in detail in the manual. Maybe you could write a Worg page about this, and/or a FAQ entry? - Carsten On Aug 8, 2009, at 8:59 PM, Eric Schulte wrote: Hi, The attached patch allows for fontified source code blocks on export to LaTeX. It does this using the 'listings' latex package. A new variable is introduced; `org-export-latex-listings' which should be set to non-nil for source-code to be exported as listings blocks. This variable defaults to nil in which case the current practice of exporting source code to verbatim latex blocks remains unchanged. To use this functionality add the following to your org-mode config. --8---cut here---start-8--- ;; tell org to use listings (setq org-export-latex-listings t) ;; you must include the listings package (add-to-list 'org-export-latex-packages-alist '( listings)) ;; if you want colored source code then you need to include the color package (add-to-list 'org-export-latex-packages-alist '( color)) --8---cut here---end---8--- In addition to the patch, I'm attaching an example org-mode file, along with the generated LaTeX file and PDF file. Do you think this would be appropriate for inclusion into org-mode? Thanks -- Eric diff --git a/lisp/org-exp.el b/lisp/org-exp.el index 00fd6c8..9de5e5f 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -2204,6 +2204,8 @@ in the list) and remove property and value from the list in LISTVAR. (defvar htmlp) ;; dynamically scoped (defvar latexp) ;; dynamically scoped (defvar org-export-latex-verbatim-wrap) ;; defined in org-latex.el +(defvar org-export-latex-listings) ;; defined in org-latex.el +(defvar org-export-latex-listings-langs) ;; defined in org-latex.el (defun org-export-format-source-code-or-example (backend lang code optional opts indent) @@ -2310,8 +2312,20 @@ INDENT was the original indentation of the block. ((eq backend 'latex) (setq rtn (org-export-number-lines rtn 'latex 0 0 num cont rpllbl fmt)) (concat \n#+BEGIN_LaTeX\n - (org-add-props (concat (car org-export-latex-verbatim-wrap) -rtn (cdr org-export-latex-verbatim-wrap)) + (org-add-props + (if org-export-latex-listings + (concat + (if lang + (let* ((lang-sym (intern (concat : lang))) + (lstlang (or (plist-get org-export-latex-listings-langs + lang-sym) + lang))) + (format \\lstset{language=%s} \n lstlang)) + ) + \\begin{lstlisting}\n + rtn \\end{lstlisting}\n) +(concat (car org-export-latex-verbatim- wrap) +rtn (cdr org-export-latex- verbatim-wrap))) '(org-protected t)) #+END_LaTeX\n\n)) ((eq backend 'ascii) diff --git a/lisp/org-latex.el b/lisp/org-latex.el index fdf9ae2..f80e221 100644 --- a/lisp/org-latex.el +++ b/lisp/org-latex.el @@ -69,6 +69,9 @@ org-deadline-string \\| org-closed-string\\)) Regexp matching special time planning keywords plus the time after it.) +(defvar org-export-latex-listings nil + If non-nil then source code blocks will be fontified using the +listings package.) (defvar latexp); dynamically scoped from org.el (defvar re-quote) ; dynamically scoped from org.el @@ -297,6 +300,12 @@ Defaults to \\begin{verbatim} and \ \end{verbatim}. :type '(cons (string :tag Open) (string :tag Close))) +(defcustom org-export-latex-listings-langs + '(:emacs-lisp lisp) + Property list mapping languages to their listing language counterpart. + :group 'org-export-latex + :type 'plist) + (defcustom org-export-latex-remove-from-headlines '(:todo nil :priority nil :tags nil) A plist of keywords to remove from headlines. OBSOLETE. listngs .org listngs .texlistngs.pdf___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] fontified source-code on latex export with listings package
Ahhh - yeees, yes, yes! I'm looking forward to stop using my old \variable{name} stuff!!! :) Thanks a bunch! Sebastian Eric Schulte schulte.e...@gmail.com writes: Hi, The attached patch allows for fontified source code blocks on export to LaTeX. It does this using the 'listings' latex package. A new variable is introduced; `org-export-latex-listings' which should be set to non-nil for source-code to be exported as listings blocks. This variable defaults to nil in which case the current practice of exporting source code to verbatim latex blocks remains unchanged. To use this functionality add the following to your org-mode config. ;; tell org to use listings (setq org-export-latex-listings t) ;; you must include the listings package (add-to-list 'org-export-latex-packages-alist '( listings)) ;; if you want colored source code then you need to include the color package (add-to-list 'org-export-latex-packages-alist '( color)) In addition to the patch, I'm attaching an example org-mode file, along with the generated LaTeX file and PDF file. Do you think this would be appropriate for inclusion into org-mode? Thanks -- Eric diff --git a/lisp/org-exp.el b/lisp/org-exp.el index 00fd6c8..9de5e5f 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -2204,6 +2204,8 @@ in the list) and remove property and value from the list in LISTVAR. (defvar htmlp) ;; dynamically scoped (defvar latexp) ;; dynamically scoped (defvar org-export-latex-verbatim-wrap) ;; defined in org-latex.el +(defvar org-export-latex-listings) ;; defined in org-latex.el +(defvar org-export-latex-listings-langs) ;; defined in org-latex.el (defun org-export-format-source-code-or-example (backend lang code optional opts indent) @@ -2310,8 +2312,20 @@ INDENT was the original indentation of the block. ((eq backend 'latex) (setq rtn (org-export-number-lines rtn 'latex 0 0 num cont rpllbl fmt)) (concat \n#+BEGIN_LaTeX\n - (org-add-props (concat (car org-export-latex-verbatim-wrap) - rtn (cdr org-export-latex-verbatim-wrap)) + (org-add-props + (if org-export-latex-listings + (concat + (if lang + (let* ((lang-sym (intern (concat : lang))) + (lstlang (or (plist-get org-export-latex-listings-langs + lang-sym) + lang))) + (format \\lstset{language=%s}\n lstlang)) + ) + \\begin{lstlisting}\n + rtn \\end{lstlisting}\n) +(concat (car org-export-latex-verbatim-wrap) +rtn (cdr org-export-latex-verbatim-wrap))) '(org-protected t)) #+END_LaTeX\n\n)) ((eq backend 'ascii) diff --git a/lisp/org-latex.el b/lisp/org-latex.el index fdf9ae2..f80e221 100644 --- a/lisp/org-latex.el +++ b/lisp/org-latex.el @@ -69,6 +69,9 @@ org-deadline-string \\| org-closed-string\\)) Regexp matching special time planning keywords plus the time after it.) +(defvar org-export-latex-listings nil + If non-nil then source code blocks will be fontified using the +listings package.) (defvar latexp); dynamically scoped from org.el (defvar re-quote) ; dynamically scoped from org.el @@ -297,6 +300,12 @@ Defaults to \\begin{verbatim} and \\end{verbatim}. :type '(cons (string :tag Open) (string :tag Close))) +(defcustom org-export-latex-listings-langs + '(:emacs-lisp lisp) + Property list mapping languages to their listing language counterpart. + :group 'org-export-latex + :type 'plist) + (defcustom org-export-latex-remove-from-headlines '(:todo nil :priority nil :tags nil) A plist of keywords to remove from headlines. OBSOLETE. ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode