组织模式内联图像显示尺寸


11

我希望显示宽度为400的组织模式内联图像(在emacs中),但实际上它始终将其显示为原始大小。

我的步骤如下:

  1. 使用以下命令安装ImageMagick: sudo port install imagemagick
  2. 使用以下命令安装emacs: brew install emacs --HEAD --use-git-head --cocoa --with-gnutls --with-rsvg --with-imagemagick 然后检查它,emacs版本为GNU Emacs 26.0.50.1,但(image-type-available-p 'imagemagick)结果为nil

  3. 编辑〜/ .emacs.d / init.el添加以下行: (setq org-image-actual-width nil)

  4. 在test.org中编写以下组织代码:

#+ATTR_ORG: :width 400 [[file:test.png]] 5.运行后C-c C-x C-v,图像不显示为400,而是实际大小。


要通过MacPorts安装具有ImageMagick支持的图形Emacs(Emacs.app),请使用sudo port install emacs-app +imagemagick。看来您正在使用MacPorts安装HomeBrew的依赖项,我不知道它是否应该起作用。而且根本不需要手动安装依赖项,这是软件包管理器的工作。此外,一次使用两个程序包管理器通常是一个坏主意,并且不必要。
xuchunyang '17

@xuchunyang确实,使用port重新安装emacs-app之后,现在可以正常工作了。谢谢
beetlej

Answers:


6

Imagemagick版本不匹配。

更改brew install命令,如下所示:

brew install emacs --with-cocoa --with-gnutls --with-dbus --with-librsvg --with-imagemagick@6 --with-mailutils --devel

然后运行brew info emacs以检查magicmagick是否正常!

emacs: stable 25.1 (bottled), devel 25.2-rc2, HEAD
GNU Emacs text editor
https://www.gnu.org/software/emacs/
/usr/local/Cellar/emacs/25.2-rc2 (4,051 files, 120.1MB) *
  Built from source on 2017-03-11 at 16:56:47 with: --with-cocoa --with-gnutls --with-dbus --with-librsvg --with-imagemagick@6 --with-mailutils
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/emacs.rb
==> Dependencies
Build: pkg-config ✔
Optional: dbus ✔, gnutls ✔, librsvg ✔, imagemagick@6 ✔, mailutils ✔

如果选中了imagemagick @ 6,那么一切都应该很好。

在emacs中,运行以下命令以检查imagemagick软件包是否可用:

*** Welcome to IELM ***  Type (describe-mode) for help.
ELISP> (image-type-available-p 'imagemagick)
t
ELISP>

8
(setq org-image-actual-width 400)

应该做的工作。变量(C-h v org-image-actual-width RET)的文档提供了更多详细信息:

org-image-actual-width是在org.el中定义的变量。它的值是t

文档:内联图像时,我们应该使用图像的实际宽度吗?

设置为t时,请始终使用图像宽度。

设置为数字时,使用imagemagick(如果可用)将图像的宽度设置为此值。

如果将其设置为列表中的数字,请尝试从任何#+ ATTR。*关键字中获取宽度,如果它与宽度规范相匹配,例如

#+ATTR_HTML: :width 300px

如果找不到,则重新使用该数字。

设置为nil时,尝试从#+ ATTR。*关键字获取宽度,如果未找到则返回原始宽度。

这需要Emacs> = 24.1,具有imagemagick支持的build(sic)。


这听起来不像是一个答案,但可能是评论。
JeanPierre

这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方发表评论。- 评论
-JeanPierre

那个更好吗?
NickD

5

在您的步骤2中,

(image-type-available-p 'imagemagick)

应该回来tnil是为不可用。也许您得到的原因nil是从macports安装imagemagick的路径没有被emacs的brew安装获取。您是否注意到任何编译错误?

在任何情况下,都可以手动调整imagemagick的路径,或者也可以从brew安装它。从macports安装imagemagick和emacs都对我有用。


确实,在卸载emacs并使用port重新安装它之后,它现在可以正常工作了。
beetlej
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.