背景
- org-krita 可以插入 Krita 的 kra 文件并实时更新预览。
- org-sketch 可以插入
draw.io
及 xournalpp 的文件并实时更新预览,其借鉴了 org-krita 的实现(相关贴子:[新插件] org-xournal 在org-mode中快速插入手写笔记 )。
其他在 org-link 附近使用 overlay 与 create-image 的插件可能也受本问题影响。
问题
这两个插件的预览,都出现了图像中央有水平横线的 bug,截图以 org-krita 为例(鼠标随便画的,不要在意内容)。
原因
详见 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 的开发者、维护者在排查问题中付出的努力。