EMACS-DOCUMENT

=============>集思广益

设置Org中图片显示的尺寸

我才发现,可以在不更改图片文件的情况下改变图片在Org 中显示的大小. 这太棒了: 这样我就能把它缩小到合适的大小了.

关键在于配置变量 org-image-actual-width 的值. 用 C-h v org-image-actual-width 可以看到相关说明:

org-image-actual-width 是一个定义在‘org.el’中的变量. 它的值是t

Documentation:

内嵌图片时是否显示它的实际宽度?

若设置为t,总是显示实际图片宽度.

若设置为一个数字, 使用imagemagick (如果可以的话) 来缩放图片宽度为该值大小.

若设置为一个只有一个数字的列表, 则若能找到类似 #+ATTR_HTML: :width 300px 这样的指定宽度的关键字,则尝试从 #+ATTR.* 中抽取相应的宽度,否则使用指定的数字.

若设置为nil, 则先尝试从 #+ATTR.* 关键字中获取宽度,如果获取不到宽度则使用实际宽度.

该功能要求Emacs >= 24.1, build with imagemagick support.

(我是直接从源代码中 中构建的Emacs, 并且构建是开启了ImageMagick 支持, 不过我忘了当初是怎么做的了. 貌似只需要安装ImageMagick就行了. 请运行 ./configure | grep -i imagemagick 来看看能否查出相关说明.)

我可以在init文件中设置该变量的值:

(setq org-image-actual-width nil)

不过我现在都是把它设置为文件局部变量, 方法是把在Org文件的i第一行加入下面内容:

# -*- org-image-actual-width: nil; -*-

然后, 假设我有如下内容:

#+NAME: fig:moodleviz
#+CAPTION: Screenshot from Moodleviz.
#+ATTR_ORG: :width 600
#+ATTR_LATEX: :width 5in
file:figures/moodleviz-laps.png

该图片原本有1520像素宽(要宽于我的个人笔记本电脑显示宽度—这张图片本身是从一个更大的屏幕上截屏下来的). 若按源大小显示则还需要上下移动该图片才能看清全貌,太麻烦了,所以最好将它缩小一点来显示. 上面这样设置能让她的宽度缩小到600像素:

20160825-attr_org.png

ATTR_LATEX 会在我将文档导出成PDF时将图片缩小到指定大小. 我不需要将文档到处成HTML,所以我也不关心设置导出成HTML时的图像大小.