[O] Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
Eric Schulte schulte.e...@gmail.com writes: #+begin_src org * tikz with image magick The following is a simple figure generated using tikz: #+begin_src latex :exports results :results (if (and (boundp 'backend) (eq backend 'latex)) latex file) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) \begin{tikzpicture} \node[red!50!black] (a) {A}; \node (b) [right of=a] {B}; \draw[-] (a) -- (b); \end{tikzpicture} #+end_src #+end_src Very nice, are you aware of the option to split header arguments among multiple lines? the above could be written as... #+headers: :file test.png :fit yes #+headers: :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 #+headers: :results (if (and (boundp 'backend) (eq backend 'latex)) latex file) #+begin_src latex :exports results :noweb yes :headers '(\\usepackage{tikz}) \begin{tikzpicture} \node[red!50!black] (a) {A}; \node (b) [right of=a] {B}; \draw[-] (a) -- (b); \end{tikzpicture} #+end_src which is (possibly) easier to write/read Best -- Eric It is indeed. Thanks for reminding me of this. My headers are seldom this long so I had forgotten they could be split. -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1 : using Org-mode version 7.4 (release_7.4.529.gb23d.dirty) ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
It's on the way. Am 26.02.2011 01:13, schrieb Eric Schulte: Hi Andreas, This patch looks like a great idea and a clean implementation. Thanks for sharing. Would you be willing to sign the FSF copyright assignment papers? If not I probably can not apply your patch as it changes over 10 lines -- which I'm pretty sure is the copyright assignment cutoff. For more information on contributing to Org-mode see the following http://orgmode.org/worg/org-contribute.html Thanks! -- Eric Andreas Leha andreas.l...@med.uni-goettingen.de writes: Hi all, Just a small patch that might make life easier for LaTeX (and esp. tikz) users. It enables the output of graphics in a lot of formats using imagemagick. See below for an example. This is my first patch, I have never programmed emacs lisp before, and my common lisp experiences have been short and a while ago. So please excuse a (possibly) bad patch. Details: LaTeX source blocks now have three new options: - :imagemagick When not nil the source block is processed to pdf and the pdf is converted with imagemagick to whatever is given as :file Thus, the format is not limited to png. - :iminoptions This is passed to imagemagick before the pdf file - :imoutoptions This is passed to imagemagick before the output file Small Example: #+begin_src latex ... :file test.jpg :imagemagick yes :iminoptions -density 300 :imoutoptions -geometry 400 ... will use this command for conversion: convert -density 300 tmp-pdf -geometry 400 test.jpg Full example: Export this to pdf and to html to see the effect. === * Test #+begin_src R :session :exports both :results silent library(tikzDevice) #+end_src #+srcname: test_plot #+begin_src R :session :exports code :results output latex tikz(console=TRUE, width=4, height=4) plot(rnorm(100), rnorm(100)) dummy - dev.off() #+end_src #+srcname: test_plot_png #+begin_src latex :exports (if (and (boundp 'backend) (eq backend 'latex)) none results) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) test_plot() #+end_src #+srcname: test_plot_tikz #+begin_src latex :noweb yes test_plot() #+end_src * Latex Options :noexport: #+LATEX_HEADER: \usepackage{tikz} === Regards, Andreas ___ Emacs-orgmode mailing list Please 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 Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode -- Universitätsmedizin Göttingen Abteilung Medizinische Statistik Humboldtallee 32 37073 Göttingen Tel: +49 (0)551 39-10710 Fax: +49 (0)551 39-4995 http://www.ams.med.uni-goettingen.de/amsneu/leha.html University Medical Center Göttingen Department for Medical Statistics Humboldtallee 32 37073 Göttingen Germany Phone: +49 (0) 551 39-10710 Fax: +49 (0) 551 39-4995 http://www.ams.med.uni-goettingen.de/amsneu/leha-en.html attachment: andreas_leha.vcf smime.p7s Description: S/MIME Cryptographic Signature ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
Andreas Leha andreas.l...@med.uni-goettingen.de writes: It's on the way. Wonderful, in that case I'll apply your patch immediately. Thanks -- Eric Am 26.02.2011 01:13, schrieb Eric Schulte: Hi Andreas, This patch looks like a great idea and a clean implementation. Thanks for sharing. Would you be willing to sign the FSF copyright assignment papers? If not I probably can not apply your patch as it changes over 10 lines -- which I'm pretty sure is the copyright assignment cutoff. For more information on contributing to Org-mode see the following http://orgmode.org/worg/org-contribute.html Thanks! -- Eric Andreas Leha andreas.l...@med.uni-goettingen.de writes: Hi all, Just a small patch that might make life easier for LaTeX (and esp. tikz) users. It enables the output of graphics in a lot of formats using imagemagick. See below for an example. This is my first patch, I have never programmed emacs lisp before, and my common lisp experiences have been short and a while ago. So please excuse a (possibly) bad patch. Details: LaTeX source blocks now have three new options: - :imagemagick When not nil the source block is processed to pdf and the pdf is converted with imagemagick to whatever is given as :file Thus, the format is not limited to png. - :iminoptions This is passed to imagemagick before the pdf file - :imoutoptions This is passed to imagemagick before the output file Small Example: #+begin_src latex ... :file test.jpg :imagemagick yes :iminoptions -density 300 :imoutoptions -geometry 400 ... will use this command for conversion: convert -density 300 tmp-pdf -geometry 400 test.jpg Full example: Export this to pdf and to html to see the effect. === * Test #+begin_src R :session :exports both :results silent library(tikzDevice) #+end_src #+srcname: test_plot #+begin_src R :session :exports code :results output latex tikz(console=TRUE, width=4, height=4) plot(rnorm(100), rnorm(100)) dummy - dev.off() #+end_src #+srcname: test_plot_png #+begin_src latex :exports (if (and (boundp 'backend) (eq backend 'latex)) none results) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) test_plot() #+end_src #+srcname: test_plot_tikz #+begin_src latex :noweb yes test_plot() #+end_src * Latex Options :noexport: #+LATEX_HEADER: \usepackage{tikz} === Regards, Andreas ___ Emacs-orgmode mailing list Please 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 Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode -- Universitätsmedizin Göttingen Abteilung Medizinische Statistik Humboldtallee 32 37073 Göttingen Tel: +49 (0)551 39-10710 Fax: +49 (0)551 39-4995 http://www.ams.med.uni-goettingen.de/amsneu/leha.html University Medical Center Göttingen Department for Medical Statistics Humboldtallee 32 37073 Göttingen Germany Phone: +49 (0) 551 39-10710 Fax: +49 (0) 551 39-4995 http://www.ams.med.uni-goettingen.de/amsneu/leha-en.html ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
Andreas Leha andreas.l...@med.uni-goettingen.de writes: It's on the way. Wonderful, in that case I'll apply your patch immediately. Thanks -- Eric Am 26.02.2011 01:13, schrieb Eric Schulte: Hi Andreas, This patch looks like a great idea and a clean implementation. Thanks for sharing. Would you be willing to sign the FSF copyright assignment papers? If not I probably can not apply your patch as it changes over 10 lines -- which I'm pretty sure is the copyright assignment cutoff. For more information on contributing to Org-mode see the following http://orgmode.org/worg/org-contribute.html Thanks! -- Eric Andreas Leha andreas.l...@med.uni-goettingen.de writes: Hi all, Just a small patch that might make life easier for LaTeX (and esp. tikz) users. It enables the output of graphics in a lot of formats using imagemagick. See below for an example. This is my first patch, I have never programmed emacs lisp before, and my common lisp experiences have been short and a while ago. So please excuse a (possibly) bad patch. Details: LaTeX source blocks now have three new options: - :imagemagick When not nil the source block is processed to pdf and the pdf is converted with imagemagick to whatever is given as :file Thus, the format is not limited to png. - :iminoptions This is passed to imagemagick before the pdf file - :imoutoptions This is passed to imagemagick before the output file Small Example: #+begin_src latex ... :file test.jpg :imagemagick yes :iminoptions -density 300 :imoutoptions -geometry 400 ... will use this command for conversion: convert -density 300 tmp-pdf -geometry 400 test.jpg Full example: Export this to pdf and to html to see the effect. === * Test #+begin_src R :session :exports both :results silent library(tikzDevice) #+end_src #+srcname: test_plot #+begin_src R :session :exports code :results output latex tikz(console=TRUE, width=4, height=4) plot(rnorm(100), rnorm(100)) dummy - dev.off() #+end_src #+srcname: test_plot_png #+begin_src latex :exports (if (and (boundp 'backend) (eq backend 'latex)) none results) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) test_plot() #+end_src #+srcname: test_plot_tikz #+begin_src latex :noweb yes test_plot() #+end_src * Latex Options :noexport: #+LATEX_HEADER: \usepackage{tikz} === Regards, Andreas ___ Emacs-orgmode mailing list Please 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 Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode -- Universitätsmedizin Göttingen Abteilung Medizinische Statistik Humboldtallee 32 37073 Göttingen Tel: +49 (0)551 39-10710 Fax: +49 (0)551 39-4995 http://www.ams.med.uni-goettingen.de/amsneu/leha.html University Medical Center Göttingen Department for Medical Statistics Humboldtallee 32 37073 Göttingen Germany Phone: +49 (0) 551 39-10710 Fax: +49 (0) 551 39-4995 http://www.ams.med.uni-goettingen.de/amsneu/leha-en.html ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
Hi Andreas, This patch looks like a great idea and a clean implementation. Thanks for sharing. Would you be willing to sign the FSF copyright assignment papers? If not I probably can not apply your patch as it changes over 10 lines -- which I'm pretty sure is the copyright assignment cutoff. For more information on contributing to Org-mode see the following http://orgmode.org/worg/org-contribute.html Thanks! -- Eric Andreas Leha andreas.l...@med.uni-goettingen.de writes: Hi all, Just a small patch that might make life easier for LaTeX (and esp. tikz) users. It enables the output of graphics in a lot of formats using imagemagick. See below for an example. This is my first patch, I have never programmed emacs lisp before, and my common lisp experiences have been short and a while ago. So please excuse a (possibly) bad patch. Details: LaTeX source blocks now have three new options: - :imagemagick When not nil the source block is processed to pdf and the pdf is converted with imagemagick to whatever is given as :file Thus, the format is not limited to png. - :iminoptions This is passed to imagemagick before the pdf file - :imoutoptions This is passed to imagemagick before the output file Small Example: #+begin_src latex ... :file test.jpg :imagemagick yes :iminoptions -density 300 :imoutoptions -geometry 400 ... will use this command for conversion: convert -density 300 tmp-pdf -geometry 400 test.jpg Full example: Export this to pdf and to html to see the effect. === * Test #+begin_src R :session :exports both :results silent library(tikzDevice) #+end_src #+srcname: test_plot #+begin_src R :session :exports code :results output latex tikz(console=TRUE, width=4, height=4) plot(rnorm(100), rnorm(100)) dummy - dev.off() #+end_src #+srcname: test_plot_png #+begin_src latex :exports (if (and (boundp 'backend) (eq backend 'latex)) none results) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) test_plot() #+end_src #+srcname: test_plot_tikz #+begin_src latex :noweb yes test_plot() #+end_src * Latex Options :noexport: #+LATEX_HEADER: \usepackage{tikz} === Regards, Andreas ___ Emacs-orgmode mailing list Please 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 Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
#+begin_src org * tikz with image magick The following is a simple figure generated using tikz: #+begin_src latex :exports results :results (if (and (boundp 'backend) (eq backend 'latex)) latex file) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) \begin{tikzpicture} \node[red!50!black] (a) {A}; \node (b) [right of=a] {B}; \draw[-] (a) -- (b); \end{tikzpicture} #+end_src #+end_src Very nice, are you aware of the option to split header arguments among multiple lines? the above could be written as... #+headers: :file test.png :fit yes #+headers: :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 #+headers: :results (if (and (boundp 'backend) (eq backend 'latex)) latex file) #+begin_src latex :exports results :noweb yes :headers '(\\usepackage{tikz}) \begin{tikzpicture} \node[red!50!black] (a) {A}; \node (b) [right of=a] {B}; \draw[-] (a) -- (b); \end{tikzpicture} #+end_src which is (possibly) easier to write/read Best -- Eric ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
Hi Andreas, This patch looks like a great idea and a clean implementation. Thanks for sharing. Would you be willing to sign the FSF copyright assignment papers? If not I probably can not apply your patch as it changes over 10 lines -- which I'm pretty sure is the copyright assignment cutoff. For more information on contributing to Org-mode see the following http://orgmode.org/worg/org-contribute.html Thanks! -- Eric Andreas Leha andreas.l...@med.uni-goettingen.de writes: Hi all, Just a small patch that might make life easier for LaTeX (and esp. tikz) users. It enables the output of graphics in a lot of formats using imagemagick. See below for an example. This is my first patch, I have never programmed emacs lisp before, and my common lisp experiences have been short and a while ago. So please excuse a (possibly) bad patch. Details: LaTeX source blocks now have three new options: - :imagemagick When not nil the source block is processed to pdf and the pdf is converted with imagemagick to whatever is given as :file Thus, the format is not limited to png. - :iminoptions This is passed to imagemagick before the pdf file - :imoutoptions This is passed to imagemagick before the output file Small Example: #+begin_src latex ... :file test.jpg :imagemagick yes :iminoptions -density 300 :imoutoptions -geometry 400 ... will use this command for conversion: convert -density 300 tmp-pdf -geometry 400 test.jpg Full example: Export this to pdf and to html to see the effect. === * Test #+begin_src R :session :exports both :results silent library(tikzDevice) #+end_src #+srcname: test_plot #+begin_src R :session :exports code :results output latex tikz(console=TRUE, width=4, height=4) plot(rnorm(100), rnorm(100)) dummy - dev.off() #+end_src #+srcname: test_plot_png #+begin_src latex :exports (if (and (boundp 'backend) (eq backend 'latex)) none results) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) test_plot() #+end_src #+srcname: test_plot_tikz #+begin_src latex :noweb yes test_plot() #+end_src * Latex Options :noexport: #+LATEX_HEADER: \usepackage{tikz} === Regards, Andreas ___ Emacs-orgmode mailing list Please 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 Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
[Orgmode] [PATCH] new babel latex feature :imagemagick
Hi all, Just a small patch that might make life easier for LaTeX (and esp. tikz) users. It enables the output of graphics in a lot of formats using imagemagick. See below for an example. This is my first patch, I have never programmed emacs lisp before, and my common lisp experiences have been short and a while ago. So please excuse a (possibly) bad patch. Details: LaTeX source blocks now have three new options: - :imagemagick When not nil the source block is processed to pdf and the pdf is converted with imagemagick to whatever is given as :file Thus, the format is not limited to png. - :iminoptions This is passed to imagemagick before the pdf file - :imoutoptions This is passed to imagemagick before the output file Small Example: #+begin_src latex ... :file test.jpg :imagemagick yes :iminoptions -density 300 :imoutoptions -geometry 400 ... will use this command for conversion: convert -density 300 tmp-pdf -geometry 400 test.jpg Full example: Export this to pdf and to html to see the effect. === * Test #+begin_src R :session :exports both :results silent library(tikzDevice) #+end_src #+srcname: test_plot #+begin_src R :session :exports code :results output latex tikz(console=TRUE, width=4, height=4) plot(rnorm(100), rnorm(100)) dummy - dev.off() #+end_src #+srcname: test_plot_png #+begin_src latex :exports (if (and (boundp 'backend) (eq backend 'latex)) none results) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) test_plot() #+end_src #+srcname: test_plot_tikz #+begin_src latex :noweb yes test_plot() #+end_src * Latex Options :noexport: #+LATEX_HEADER: \usepackage{tikz} === Regards, Andreas diff --git a/lisp/ob-latex.el b/lisp/ob-latex.el index 8943ded..6152ad3 100644 --- a/lisp/ob-latex.el +++ b/lisp/ob-latex.el @@ -72,6 +72,10 @@ This function is called by `org-babel-execute-src-block'. (let* ((out-file (cdr (assoc :file params))) (tex-file (org-babel-temp-file latex- .tex)) (border (cdr (assoc :border params))) + (imagemagick (cdr (assoc :imagemagick params))) + (im-in-options (cdr (assoc :iminoptions params))) + (im-out-options (cdr (assoc :imoutoptions params))) + (pdfpng (cdr (assoc :pdfpng params))) (fit (or (cdr (assoc :fit params)) border)) (height (and fit (cdr (assoc :pdfheight params (width (and fit (cdr (assoc :pdfwidth params @@ -81,10 +85,10 @@ This function is called by `org-babel-execute-src-block'. (append (cdr (assoc :packages params)) org-export-latex-packages-alist))) (cond - ((string-match \\.png$ out-file) + ((and (string-match \\.png$ out-file) (not imagemagick)) (org-create-formula-image body out-file org-format-latex-options in-buffer)) - ((string-match \\.pdf$ out-file) + ((or (string-match \\.pdf$ out-file) imagemagick) (require 'org-latex) (with-temp-file tex-file (insert @@ -118,13 +122,26 @@ This function is called by `org-babel-execute-src-block'. (concat \n\\begin{document}\n body \n\\end{document}\n))) (org-export-latex-fix-inputenc)) (when (file-exists-p out-file) (delete-file out-file)) - (rename-file (org-babel-latex-tex-to-pdf tex-file) out-file)) + (let* ((transient-pdf-file (org-babel-latex-tex-to-pdf tex-file))) + (cond + ((string-match \\.pdf$ out-file) + (rename-file transient-pdf-file out-file)) + (imagemagick + (convert-pdf transient-pdf-file out-file im-in-options im-out-options) + (when (file-exists-p transient-pdf-file) (delete-file transient-pdf-file)) ((string-match \\.\\([^\\.]+\\)$ out-file) - (error can not create %s files, please specify a .png or .pdf file + (error can not create %s files, please specify a .png or .pdf file or try the :imagemagick header arguement (match-string 1 out-file nil) ;; signal that output has already been written to file body)) + +(defun convert-pdf (pdffile out-file im-in-options im-out-options) + Generate a file from a pdf file using imagemagick. + (let* ((cmd (concat convert im-in-options pdffile im-out-options out-file))) +(message (concat Converting pdffile file cmd ...)) +(shell-command cmd))) + (defun org-babel-latex-tex-to-pdf (file) Generate a pdf file according to the contents FILE. Extracted from `org-export-as-pdf' in org-latex.el. smime.p7s Description: S/MIME Cryptographic Signature ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [PATCH] new babel latex feature :imagemagick
Andreas Leha andreas.l...@med.uni-goettingen.de writes: Hi all, Just a small patch that might make life easier for LaTeX (and esp. tikz) users. It enables the output of graphics in a lot of formats using imagemagick. See below for an example. [...] This seems to work rather well. I tried the following: #+begin_src org * tikz with image magick The following is a simple figure generated using tikz: #+begin_src latex :exports results :results (if (and (boundp 'backend) (eq backend 'latex)) latex file) :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '(\\usepackage{tikz}) \begin{tikzpicture} \node[red!50!black] (a) {A}; \node (b) [right of=a] {B}; \draw[-] (a) -- (b); \end{tikzpicture} #+end_src #+end_src and I get native tikz in the latex output and a png in the html output. very nice! I haven't done exhaustive testing so I don't know if the patch breaks anything, mind you. Thanks, eric -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1 : using Org-mode version 7.4 (release_7.4.529.gb23d.dirty) ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode