How to resize images in org-mode
Solution 1
As of Org 8.0, "Attribute lines now take plists" :
#+attr_html: :width 100px
#+attr_latex: :width 100px
[[~/images/example.jpg]]
Solution 2
As per Jacobo's comment, add the following to your init.el file:
(setq org-image-actual-width nil)
Then in org-mode, you can use this for inline previews of JPGs and PNGs.
#+ATTR_ORG: :width 100
[[~/images/example.svg]]
and if you want to size this for both inline previews and html output:
#+ATTR_HTML: width="100px"
#+ATTR_ORG: :width 100
[[~/images/example.svg]]
Solution 3
#+ATTR_HTML: width="100px"
[[~/images/example.jpg]]
Solution 4
This is a sample on how to resize an image using percentages (Org mode version 9.0.5):
#+CAPTION: Weight space
#+ATTR_HTML: :alt neural network :title Neural network representation :align right
#+ATTR_HTML: :width 50% :height 50%
https://i.stack.imgur.com/nzHSl.jpg
Solution 5
Here is a way to resize images in emacs Org mode for preview (not exporting). Typically,
- We want to set an image to a specific width like 249px when we need to.
- We want to set a default image width, so that we don't need to specify
+attr_html
for every image - that would be tedious.
This can be achieved by configuring org-image-actual-width
like follows:
(setq org-image-actual-width (list 550))
Then, in your .org
file, if you have
#+attr_html :width 249
[[~/images/example1.jpg]]
then the image will be displayed in preview at width 249px. For another image, where no +attr_*
is specified, the default width of 550px will be applied.
[[~/images/example2.jpg]]
You can see this behavior from the documentation in org-mode source code:
When set to a number in a list, try to get the width from any
#+ATTR.* keyword if it matches a width specification like
#+ATTR_HTML: :width 300px
and fall back on that number if none is found.
I found it hard to understand what does "a number in a list mean", so I looked at the implementation, and indeed, something like (list 550)
works.
user1323995
Updated on July 08, 2022Comments
-
user1323995 almost 2 years
Is there a general way to define the size, in percent or pixels, for an image that is linked in
org-mode
?Say I have the following link in my
.org
file:[[~/images/example.jpg]]
This JPG is way too large, so if I export it to HTML or LaTeX or open it in
org-mode
with C-c C-o i will only see a fraction of the image. -
user1323995 almost 12 yearsThank you for your answer bzg! First of all, I was hoping for an option that is not specific to html but would also work for LaTex and viewing in Emacs itself. Anyway, even though your suggestion appears to be correct according to the official documentation [1][2] it does somehow not work for me. I'm using emacs 24.1.1 without any customization but when I try your code, the image is still in its original, gigantic size. This is true for Chrome and Firefox. [1] orgmode.org/worg/org-tutorials/images-and-xhtml-export.html [2] w3schools.com/tags/tag_img.asp
-
user1323995 almost 12 yearsI've also tried #+ATTR_HTML: width="0.3" Which, if I understand correct, should scale by a factor of 0.3 (or 0.003 = 0.3% ?) but this has no effect either. :-/
-
Jacobo de Vera over 11 yearsIn order for this to work, you need to set this in your .emacs file:
(setq org-image-actual-width nil)
. Other possible values and behaviours are explained in this post to org-mode's mailing list -
ealfonso almost 5 yearsother answers didn't work for me for images based on a URL
-
lab almost 3 yearsand to set it to the full linewidth (or any other value), use
(setq org-latex-image-default-width "1.0\\linewidth")
-
HappyFace almost 3 yearsDoes this work with inline previews as well?
-
Niclas Börlin over 2 yearsAdam, I would assume that Scalable Vector Graphics (SVG) images do not have an inherent size, as they are designed to be scalable.
-
Adam over 2 yearsHi @NiclasBörlin it looks like this was a bug in my version of Emacs (but has since been resolved). I can confirm that as of Emacs 27.2 (Railwaycat Homebrew edition of Mitsuharu's Emacs) this works for SVGs as well.
-
Kadir Gunel over 2 years@Adam I accidentally down-voted your answer, and stack overflow does not permit me to adjust it. Due to that I upvoted your comment. Sorry for the inconvenience
-
Adam over 2 years@KadirGunel No worries, I'm now only 38 points behind the accepted answer! ;D
-
Emmanuel Goldstein over 2 yearsHow about height?
-
Adam over 2 years@EmmanuelGoldstein the height should adjust itself proportionately, when you set the width. So as long as your are not looking to purposefully distort your image, you only need to set one of these.
-
Emmanuel Goldstein over 2 yearsI want to purposefully "distort" my image because by default the data points look too clustered, so I'd like to have a different ratio. Thanks.