emacs-orgmode
[Top][All Lists]
Advanced

[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




reply via email to

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