org-{sketch,krita}等预览链接的插件,图像中心出现水平线的解决方法

背景

其他在 org-link 附近使用 overlay 与 create-image 的插件可能也受本问题影响。

问题

这两个插件的预览,都出现了图像中央有水平横线的 bug,截图以 org-krita 为例(鼠标随便画的,不要在意内容)。

image

原因

详见 https://list.orgmode.org/[email protected]/T/

The reason you are seeing the horizontal line is org-link face. org-link has underline. And the “center” line you are seeing is actually underline coming from the face. I’d say it is emacs bug.

解决方案

据上面的链接提供的方案,为 create-image 加上 :ascent 100 参数即可。

以 org-krita 为例,将 org-krita.el 中的

    (overlay-put overlay 'display (create-image (org-krita-extract-png kra-path) 'png t))

改为

    (overlay-put overlay 'display (create-image (org-krita-extract-png kra-path) 'png t :ascent 100))

水平线将不会出现在预览图中央,而是在底部,不再干扰查看。

其他在 org-link 附近使用 overlay 与 create-image 的插件应该也是同理的。


由于这可能影响一批同类插件,我仅把方案放在这里供参考,暂时不提交 PR;况且提交 PR 其实似乎也没人接收,org-krita 与 org-sketch 截至发此贴时,上次更新都在 3 年前,最后一个目前仍开启的 PR 都在 2021 年。请大家自行手动解决问题。 以及 @yuchen-lea 如果有空的话请看看,提前感谢(如果能顺便把仓库里的 PR 合并/处理了就更好了)。

此外,感谢 @stardiviner ,因为这个 bug 正是由他为他的插件 org-link-beautify 所反馈的,我这里的解决方案也是参考了此插件的代码。同样也要感谢 org-mode 与 Emacs 的开发者、维护者在排查问题中付出的努力。

因为现在不怎么在org-mode插入drawio等文件了,而且我觉得应该有一个更好的通用机制预览链接的图像,我似乎看到过论坛有过一些方案?所以确实没有太关注这个插件😂

十分感谢,我可能要过段时间再来看看。

1 个赞