create-image can handle both images created from a file (represented as a path string) and data (represented as a binary string). Consider that it can't tell what your intention was from a string alone and it's obvious what the issue is, you must call it in a way making clear that this is inline data we're dealing with, not a file. For this you just use the ...
And if, like me, you're trying to do the same in org-mode, with-temp-buffer in combination with buffer-string does the trick:
#+begin_src emacs-lisp :file test.svg
(let ((svg (svg-create 400 400 :stroke-width 10)))
(svg-gradient svg "gradient1" 'linear '((0 . "red") (100 . "blue")))
(svg-circle svg 200 200 100 :gradient "gradient1" :stroke-...
You might try customizing one or both of these image-dired options (the text is what you get with C-h v).
image-dired-thumb-relief - Size of button-like border around thumbnails.
image-dired-thumb-margin - Size of the margin around thumbnails. This is where you see the cursor.
There are many other image-dired options, some of which might also help you more ...
I would use
#+ATTR_LATEX: :width 10.6\textwidth
This is described here: https://orgmode.org/manual/Images-in-LaTeX-export.html
For specifying image ‘:width’, ‘:height’, and other ‘:options’, use this
#+ATTR_LATEX: :width 5cm :options angle=90
Two methods would be useful to you image-transform-fit-to-width and image-transform-set-scale, you can use these two functions inside a image-mode-hook to setup the display like you want based on the file. You can get the file extension by using file-name-extension on buffer-file-name.
Here is an implementation:
(defun my-image-mode-setup ()
(when (and (...