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