Hi Haochen, Sorry for not being clearer. There is no imagemagick involved in the svg generation if everything is setup correctly. Instead the command defined in org-babel-latex-htlatex is used. My test file sets this to to "htlatex" from tex4th [1].
At the time of the thread I linked to there was a bug in ob-latex, though. So, make sure to be on a "recent" version of org (containing at least the commit 510e7037988d44151dea5b98631839fc8003dd57 from 2015-03-21) Just for reference, here are the first lines of the svg that is produced for me which look fine to me: --8<---------------cut here---------------start------------->8--- <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <?xml-stylesheet href="latex-28543ACk.css" type="text/css"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="60.55959pt" height="103.23871pt" viewBox="-30.27975 -94.29848 60.55959 103.23871 "> --8<---------------cut here---------------end--------------->8--- Regards, Andreas [1] https://www.tug.org/applications/tex4ht/mn-commands.html Haochen Xie <haoch...@acm.org> writes: > Hi Andreas, > > Thank you for your code example. I've tried almost the same code which > I saw from the thread you referred (with the htlatex initialization, > which I'm doing in my .emacs), and indeed got a svg file as > expected. But the problem is that when I try to browse the HTML page > in chrome, the image is shown as broken. I check the HTML source code, > the image is presented in an img tag, pointing to the svg file. My > first though was that the svg file isn't recognized because it's not > served by a HTTP server instead of being a filesystem link. I then > tried to use python SimpleHTTPServer, then python3 -m http.server (the > python2 SimpleHTTPServer was serving svg with a wrong Content-Type) > but without luck. > > Today, I tried svg again, and finally figured out the problem: the svg > file generated doesn't contain a proper xmlns in the svg tag, so both > chrome and internet explorer is interpreting it as a plain xml file > instead of rendering it. > > I guess this is a bug with imagemagick, but when I tried to do some > research on this problem I found nothing. Maybe I could find something > with more researches, but I don't have time now, and PNG is fine for > me. > > Still, Andreas, thank you very much for helping. > > Regards, > > Haochen > > -- > > Mail from Haochen Xie > > On Wed, Aug 12, 2015 at 5:50 PM, Andreas Leha > <andreas.l...@med.uni-goettingen.de> wrote: > > > Hi Haochen, > > You can render svg from latex through org directly. Here is a complete > example including a tikz diagram that that works on my system (once I > tackle a bug in PGF [1]). > It renders > - png by default (and for inlining the image into the org document) > - nothing for latex (directly include the tikz code into the tex document) > - svg for html > > --8<---------------cut here---------------start------------->8--- > #+LATEX_HEADER: \usepackage{tikz} > > First execute the second code block, to define the convenience macro > and to set the required new variables in ob-latex.el. Then export to > HTML and to pdf to see the tree exported as an SVG image and as > embedded tikz respectively. > > * Tikz test > Here's a tree, exported to both html and pdf. > > #+header: :file (by-backend (html "tree.svg") (latex "tree.tikz") (t > "tree.png")) > #+header: :imagemagick :iminoptions -density 600 :imoutoptions -geometry 800 > #+header: :results file raw > #+header: :fit yes > #+begin_src latex > \usetikzlibrary{trees} > \begin{tikzpicture} > \node [circle, draw, fill=red!20] at (0,0) {1} > child { node [circle, draw, fill=blue!30] {2} > child { node [circle, draw, fill=green!30] {3} } > child { node [circle, draw, fill=yellow!30] {4} }}; > \end{tikzpicture} > #+end_src > > #+results: > [[file:tree.png]] > > * COMMENT setup > #+begin_src emacs-lisp :results silent > (setq org-babel-latex-htlatex "htlatex") > (defmacro by-backend (&rest body) > `(case (if (boundp 'backend) (org-export-backend-name backend) nil) ,@body)) > #+end_src > --8<---------------cut here---------------end--------------->8--- > > Regards, > Andreas > > [1] http://tex.stackexchange.com/a/232739 > > Haochen Xie <haoch...@acm.org> writes: > > Hi Fabrice, > > > > Thank you for mentioning dvisvgm. I did some researches on it, and it > seems that as for now, the only way to invoke dvisvgm is to first export the > latex part to dvi, and call dvisvgm > > manually to convert it to svg, then include it in the org file, which, is > too troublesome for me. Is there any plan to add dvisvgm as an alternative to > dvipng and imagemagick? IMO svg > > images will look much better than png (well, in browsers supporting it), > so that's a nice option to have. > > > > Regards, > > > > Haochen > > > > -- > > > > Mail from Haochen Xie > > > > On Tue, Aug 11, 2015 at 5:53 PM, Fabrice Popineau > <fabrice.popin...@supelec.fr> wrote: > > > > > > 2015-08-11 10:47 GMT+02:00 Haochen Xie <haoch...@acm.org>: > > > > > > Hi Andreas, > > > > Thank you for your reply. I've read the whole thread, and found your > > example (the second link) very useful. Although for some reason, SVG > > image is not working well on my machine (not being displayed in > > chrome, nor on IE. I don't have firefox installed), but since the SVG > > image generated by imagemagick is indeed a raster image, I don't see > > any benefit using SVG over PNG, and exporting to PNG works perfectly. > > > > Use dvisvgm instead of imagemagick to generate the svg file. > > > > Fabrice