似乎 Emacs Mac Port 最新的更新(基于 24.5 的第九次更新)有这方面的改进(粗体是我加的):
** Improvements
*** For frames on a Retina display, image-io/imagemagick image
descriptors involving non-integral transformations such as shrinking
or rotation are now processed with 2x pixel buffer even if the source
image file/data is for 1x. For example, (insert-image (create-image
“gnus/gnus.png” 'imagemagick nil :max-height 100)) now looks crisper .
*** Org mode LaTeX fragments preview may also create 2x images.
引用自: Re: Emacs Mac port
1 个赞
我也看到了,发在Slack上了。但是不一定会引入到emacs ns port.
Roife
2016 年8 月 17 日 04:21
7
在 Mac 下貌似可以修改配置使得生成的 PNG 尺寸更大,然后将其“压缩”(即在文件后面添加@2x,需要)放入
参见
Emacs-StackExchange: org-preview-latex-fragment in higher resolution
以及
StackOverflow: Org LaTeX preview is fuzzy on retina displays
不过每次都要自己去修改生成的文件,有什么更方便的方法吗,比如自行添加 @2x
不过貌似还可以将其改为生成 SVG?这个需要怎么配置?
现在 stackoverflow 回答中 给出了一个新的方法,可以通过设置
(setq org-latex-create-formula-image-program 'dvisvgm)
使用 dvisvgm
来生成预览图,试了一下确实有显著效果。上面 OD_{260} 是默认方法生成的,下面是通过 dvisvgm 生成的。
但是相较于网页上这个 OD_{260} ,显示效果还是有些差距。
我这基本看不出差别(截图,实际效果更好)
GNU Emacs 28.0.90 (build 1, x86_64-apple-darwin21.2.0, NS appkit-2113.20 Version 12.1 (Build 21C52)) of 2021-12-22
1 个赞
Ilya.w
2022 年2 月 25 日 11:27
10
使用 emacs-mac (homebrew-emacs-macport) + imagemagick 完美解决.
(setq org-preview-latex-default-process 'imagemagick)
dvisvgm
有时渲染容易出错.
1 个赞
刚试了下好像也不行,不知道怎么回事。
装了emacs-mac-port的最新版,配置里写了这句,用的配置是Doom。生成的图片分辨率还是很普通。
Ilya.w
2022 年2 月 28 日 03:56
13
试试检查下 org-preview-latex-process-alist
里 :image-converter
中 quality
是否为 100:
(setq org-preview-latex-process-alist
'((imagemagick
:programs
("latex" "convert")
:description "pdf > png"
:image-input-type "pdf"
:image-output-type "png"
:image-size-adjust
(1.0 . 1.0)
:latex-compiler
("xelatex -interaction nonstopmode -output-directory %o %f")
:image-converter
("convert -density %D -trim -antialias %f -quality 100 %O")))) ;; 这里
有可能是 Doom 为了优化渲染速度改了这个默认值.
另外如果这个还不行, 尝试下使用我的安装方式:
brew install emacs-mac --with-mac-metal --with-native-comp --HEAD
另外安装时详细的可选参数文档在这里: Formula Options
我试了一下。doom默认的这个alist的imagemagick部分和你是一样的。但我选imagemagick作为default process不但分辨率不高,反而把公式强制居中并且占用大片空间。选dvisvgm就可以了。并且这个在emacs-plus@28里可以用。
我个人不太喜欢emacs-mac,因为他自定义了一堆按键可能有冲突。比如我定义的C-M-SPC是我的mac系统切换输入法的按键,在emacs-mac里和mark-set冲突了。
无论在 emacs-mac 还是 emacs-plus 中使用 dvisvgm, 我总是遇到公式显示不完全的问题. 如下图所示, 有些积分号直接被截掉了一大半.
不知道 HepIsaac 在使用时是否遇到类似问题. 目前我试图调整 imagemagick 的渲染比例时也遇到了你所述的图片莫名居中的现象. (当生成公式的比例 aka. :scale
这个参数大于 1 时, 均会出现 imagemagick 居中显示 (有时候直偏到屏幕左下角) 的情况).
目前希望能解决的问题:
如何适当调整 dvisvgm 防止出现公式显示不完全的问题.
或者如何适当调整 imagemagick 使其能够缩小默认的公式显示大小. (scale 1.0 对我来说还是太大了)
这是我的dvisvgm结果,你会发现下面莫名其妙的有一个横色区域颜色是不一致的。在某些配色主题下这个区域的颜色会覆盖掉公式,导致显示不完全。这是我的感觉。
我不太愿意用emacs-mac还有一个原因是他没升级28.我电脑上27的emacs速度比28慢很多很多。
有时间我去试一下emacs-plus的imagemagick。不知道有没有emacs-plus上能完美渲染org preview的。
emacs-mac 没有遇到 “横色区域颜色不一致” 的情况, (我在用 emacs-plus 时也确实遇到了和你一致的情况), 但显示依然不完全. 所以或许不是背景色的原因.
另外其实emacs-mac是有28支持的, 你需要在安装时加入 --HEAD
选项. 但是在 emacs-mac 的 28 中暂时无法使用 emacs-plus 自带的 natural-title-bar (就是让窗口最顶端的那一栏颜色和你的 frame 背景色显示一致的功能).
我对emacs-mac的natural-title-bar一直不抱希望。哪怕装了也不能随时随着主题切换dark/light,每次都要输入命令重新启动,并且看上去作者没有改变的意思。
以及,不知道你有没有试过latex-mode里面的preview-latex的分辨率能不能改?
我试了一下emacs-mac --HEAD --with-mac-metals。
公式图片变大了,那个颜色不对的横条还在。分辨率没问题。
于是我退回emacs-plus了。。。
kssss
2022 年3 月 8 日 14:12
21
颜色不一致是因为org在读取latex公式转成tex文件的时候会读取当前背景的颜色作为tex文件的底色,所以你可能要改一下主题
关于图片变大, 开始时我也有遇到, 可以加入下面的代码来解决:
(require 'org)
(plist-put org-format-latex-options :scale 1.0) ;; 改这里
另外关于横条, @kssss 说的没有问题. 个人认为是 doom-themes 造成的. 可以尝试使用 Modus Themes , 它与 Doom 有很好的兼容.
Ilya.w
2022 年3 月 15 日 06:44
23
我找到了似乎比较完美的解决方案, 是使用 xenops 这个 package 来代替原生的 org-latex-preview
. 它会生成 svg, 但是相较于 dvisvgm 它没有出现公式显示不完全的情况 .
它与 emacs 中许多内置的相关于 org-latex 的变量设置都有非常好的结合. 比如 org-latex-packages-alist
的内置包都可以顺利加载.
它的特点有:
异步处理公式显示, 速度很快.
完美替代 org-fragtog.
更多关于 xenops 的讨论可以参考这个帖子: 如何提高 org-mode 的 LaTeX 预览速度?
关于 svg 在 macOS 上的分辨率问题, 我似乎找到了比 emacs-mac 更好的选择 如果你更倾向于emacs-plus : 可以尝试下是新出现的 emacs-builds . 它支持 macOS 的原生图片显示. 并且它结合了部分 emacs-plus 的优质功能.
在我的机器 (M1) 上目前能够运行稳定.
或许你可以尝试一下这个?
3 个赞