emacs org-mode inline image 中文路径显示不出来, 英文路径就没有问题, 怎么办?

操作系统以及版本信息

操作系统 : Mac Mojave.

org-mode 版本 : 9.4.4


背景信息

我的电脑有两个版本的 Emacs:

一个版本是 我自己编译的 emacs-ng , 版本是 The last merged commit is 978afd788f by Andrea Corallo (Thu Apr 1 2021) .

emacs-ng 的编译选项是

./configure  --enable-autodepend --disable-silent-rules --with-sound=yes \
    --with-pdumper=yes --without-imagemagick --with-xpm --with-jpeg \
    --with-tiff --with-gif --with-png --with-rsvg --with-lcms2 \
    --with-cairo --with-xml2 --with-native-image-api --with-json \
    --with-xft --with-harfbuzz --with-libotf --with-xaw3d --with-gpm \
    --with-dbus --with-gconf --with-gsettings --with-gnutls \
    --with-zlib --with-modules --with-threads \
    --with-file-notification=yes --with-xwidgets \
    --without-compress-install --with-libgmp --with-included-regex \
    --disable-ns-self-contained  --with-no-title-bars --with-ns 

另一个版本是 使用 homebrew 安装的 emacs-mac , 版本是 27. emacs-mac 是正常的满意的状态, 图片能显示, 并且是高清的. 之前我用过 emacs-plus 图片是模糊的(估计加了–with-imagemagick , 见下面实验结果)


最新实验结果

如果 emacs-ng 的编译选项, 加上 --with-imagemagick , 能解决部分图片显示不出来的问题, 但是图片是模糊的(跟emacs-plus差不多), emacs-mac 是高清的.

为什么说加了 --with-imagemagick 是部分解决呢? 因为我发现有些路径还是显示不出来, emacs-mac 是所有的路径都能正常显示, 包括路径中带有 中文字符, | - _ , 空格等


之前的问题

同一个张图, 我把它放到两个路径下, 一个是路径带有中文, 一个没有.

执行 org-toggle-inline-images 之后显示如下, 带有中文路径的显示不出来:

不能光贴图,请提供:

  1. 系统/Emacs/Orgmode 版本信息
  2. org 文件源代码

* Test displaying

[[file:./test-inline-images/output/image.png]]

[[file:./test-inline-images/输出/图片.png]]

已经在原文补充提供版本信息以及最新实验结果

imagemagick 已经不推荐了,你安装的 emacs-mac 应该也没有开启 imagemagick。

中文路径的图片无法显示,恐怕就是 imagemagick 导致。你试试把中文路径用 url-hexify-string 进行编码。

原:

[[file:images/中文路径/screenshot.png]]

整个路径进行编码:

[[file:images%2F%E4%B8%AD%E6%96%87%E8%B7%AF%E5%BE%84%2Fscreenshot.png]]

或仅中文部分进行编码:

[[file:images/%E4%B8%AD%E6%96%87%E8%B7%AF%E5%BE%84/screenshot.png]]

已试过, emacs无法识别经过 url-hexify-string 转化后的路径.

我找了一份去年编译的 Emacs,看来 imagemagick 不影响中文路径图片的显示:

我的实验结果是 加了 --imagemagick 带中文路径图片才能正常显示, 但是图片比较模糊.

而 emacs-mac 版本不知道为什么既能支持中文路径的显示, 而且图片是高清的.

我不知道怎么达到和 emacs-mac 一样的效果.

你这个问题很蹊跷,我在网上没找到第二例。建议 emacs -Q 再试试,或者换一台电脑看看能否复现。