Okay, I just checked (sorry, had to regenerate the files and that took some
time), and with the current version of Firefox the code I pasted is
unnecessary.
The problem I had with previous Firefox versions is that those decided on a
scale for displaying the SVG that differed from its preferred resolution,
but only if an object tag was used for inclusion; img tags would use the
preferred resolution and everything was fine.
The reason for the pt-to-px arithmetic is that graphviz outputs (or used
to) SVGs with a preferred size specified in pt only, not in px. I'm not
sure, but I think HTML pt and SVG pt don't necessarily agree.
Org mode is generating this tag:
Which looks okay to me. It's browser support that's the issue.
> The problems with the second bit of exported code is that it doesn't
scale the image to fit the block with 50% width (only a small part of the
image is visible)
Is it possible you're using an old browser? I'm on Iceweasel (Firefox)
38.1.0. (The bug was there a year or two ago, so by my standards it's a
recent fix that we shouldn't rely on yet.)
> and you when you right click on the image, you can't view it, save it or
anything.
Again, I can, using the "This Frame" popup menu.
But clearly that menu name is misleading and confusing in this case! And I
think that is reason enough to stick with the img tag for now: Firefox
users can't save the image unless they telepathically know that "frame"
means "image". "This Object" might be okay, I guess.
My suggestion is to use img for images; that also appears to be the
consensus on Stack Overflow. Let's find a good syntax for including
interactive objects in Org mode, though.
On Wed, Aug 26, 2015 at 9:56 PM, Rasmus wrote:
> Hi,
>
> Pip Cet writes:
>
> > let found = false;
> > for (let el of svgdoc.getElementsByTagName("svg")) {
> > let width = el.getAttribute("width");
> > let height = el.getAttribute("height");
> >
> > let width_pt = width.match(/^([0-9]*)pt$/)[1];
> > let height_pt = height.match(/^([0-9]*)pt$/)[1];
> >
> > let width_px = 5/4 * width_pt;
> > let height_px = 5/4 * height_pt;
> >
> > object.setAttribute("width", width_px + "px");
> > object.setAttribute("height", height_px + "px");
> > found = true;
>
> So are you saying that Org is changing the size from px to pt? Can you
> try to explain the problem you observe in words?
>
> Thanks,
> Rasmus
>
> --
> The second rule of Fight Club is: You do not talk about Fight Club
>