[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Block level specification for tex code html export method

From: Andreas Leha
Subject: Re: [O] Block level specification for tex code html export method
Date: Wed, 12 Aug 2015 14:40:19 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (darwin)

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

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---


[1] https://www.tug.org/applications/tex4ht/mn-commands.html

Haochen Xie <address@hidden> 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 <address@hidden> 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 <address@hidden> 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 <address@hidden> wrote:
>  >
>  >
>  > 2015-08-11 10:47 GMT+02:00 Haochen Xie <address@hidden>:
>  >
>  >
>  > 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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]