Subject: bug#37159: 26.1; svg images in eww

From: Alan Third <[email-masked]>
Date: Thu, 19 Sep 2019 12:02:56 +0100

On Thu, 19 Sep 2019, 09:21 Tomasz Piotrowski, <[email-masked]> wrote:

> >>> Looks like whatever library Emacs is using for the svgs are saying that
> >>> they're shorter than they should be:
> >>>
> >>> (image-size (create-image "/tmp/d.svg" nil nil :scale 1) t)
> >>> => (12 . 13)
> >> What would be a solution to this?
> >
> > I do not know.
> If the patch lines are commented out in shr.el:
>
>     ;; SVG images often do not have a specified foreground/background
>     ;; color, so wrap them in styles.
>     ;; (when (eq content-type 'image/svg+xml)
>     ;;   (setq data (svg--wrap-svg data)))
>     (list data content-type)))
>
> (defun svg--wrap-svg (data))
>   ;; "Add a default foreground colour to SVG images."
>   ;; (with-temp-buffer
>   ;;   (insert "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
>   ;;           "xmlns:xi=\"http://www.w3.org/2001/XInclude\" "
>   ;;           "style=\"color: "
>   ;;           (face-foreground 'default) ";\">"
>   ;;           "<xi:include href=\"data:image/svg+xml;base64,"
>   ;;           (base64-encode-string data t)
>   ;;           "\"></xi:include></svg>")
>   ;;   (buffer-string)))
>
> then the equations (SVG images) are not overlapping with surrounding
> text.
>

Hmm, it looks like GTK explicitly sets the width and height of the wrapper
to match the SVG file. I don't know how practical that is for us, does it
mean loading the file twice: once to get the size and once to wrap it?