[-- Attachment #1.1.1: Type: text/plain, Size: 1960 bytes --] 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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.1.2: ob-latex.el.diff --] [-- Type: text/x-patch; name="ob-latex.el.diff", Size: 2896 bytes --] 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." [-- Attachment #1.2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 6432 bytes --] [-- Attachment #2: Type: text/plain, Size: 201 bytes --] _______________________________________________ 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
Andreas Leha <andreas.leha@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)
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.leha@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
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.leha@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
> #+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
[-- Attachment #1.1.1: Type: text/plain, Size: 3636 bytes --] 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.leha@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 #1.1.2: andreas_leha.vcf --] [-- Type: text/x-vcard, Size: 377 bytes --] begin:vcard fn:Andreas Leha n:Leha;Andreas org;quoted-printable:University Medicine G=C3=B6ttingen;Biostatistics/Bioinformatics (Dept. Medical Statistics) adr;quoted-printable:;;Humboldallee 32;G=C3=B6ttingen;;37073;Germany email;internet:andreas.leha@med.uni-goettingen.de title:Dipl. Inf. tel;work:+49 551 39-10710 tel;cell:+49 163 7662824 version:2.1 end:vcard [-- Attachment #1.2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 6432 bytes --] [-- Attachment #2: Type: text/plain, Size: 201 bytes --] _______________________________________________ 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
Andreas Leha <andreas.leha@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.leha@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
Andreas Leha <andreas.leha@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.leha@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
"Eric Schulte" <schulte.eric@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)
Hi Andreas and Eric,
Could this patch be part of 7.6? Very useful...
Best regards,
Seb
Andreas Leha wrote:
> 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.leha-A1rZ2h3LdSKGMSlLMZIubhS11BummzK+@public.gmane.org> 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-mXXj517/zsQ@public.gmane.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-mXXj517/zsQ@public.gmane.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
--
Sebastien Vauban
Hi Sebastien, As far as I know we have not received FSF papers for Andreas, so I do not believe it will be possible to apply this patch before the 7.6 release. Best -- Eric "Sebastien Vauban" <wxhgmqzgwmuf@spammotel.com> writes: > Hi Andreas and Eric, > > Could this patch be part of 7.6? Very useful... > > Best regards, > Seb > > Andreas Leha wrote: >> 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.leha@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 -- Eric Schulte http://cs.unm.edu/~eschulte/
FSF papers are signed and the process is completed - so the revert can be reverted now (the patch should still apply). Sorry for the long delay...
Applied, thanks -- Eric Andreas Leha <andreas.leha@med.uni-goettingen.de> writes: > FSF papers are signed and the process is completed - so the revert can > be reverted now (the patch should still apply). > Sorry for the long delay... > > -- Eric Schulte http://cs.unm.edu/~eschulte/