项目分享: Org Mode 中 LaTeX 预览与导出的优化 (Improved LaTeX Preview).

本帖子简单介绍一个在 Discord 上发起的项目: Improved LaTeX Preview.

项目简介:

  • 一个 Org Mode 补丁, 在开发阶段.

  • 项目在 Org Mode 基础上增加了新的模块, 主要为 org-latex-preview.el.

  • 目前完成度大致在 80%, 主要功能基本已经实现.

  • 可能在 Org Mode 9.7 版本中正式发布.

项目内容:

项目优化了 Org Mode 中 LaTeX 预览的体验, 主要实现了下面的功能:

  1. 实现了异步且更加快速的预览速度.

  2. 整合了 org-element-cache-persistent, 提高了浏览和显示的性能.

  3. 实现了行内 LaTeX 式子和周围文本的基线对齐.

  4. 实现了行间式子居中与标签显示.

  5. 增加新的模式 org-latex-preview-auto-mode, 效果类似 org-fragtog 和 xenops, 同时增加了错误提示功能.

  6. LaTeX 式子可以自适应周围文本来调整显示颜色与大小.

简单的展示 (仅有部分功能, 详情:

ScreenShot 2

相关链接


P.S. 测试、开发相关:

该项目简介获取了其负责人 tecosaur 的同意后转载.

目前该项目的两位核心开发者: tecosaur 与 karthink, 二位都很欢迎本论坛的朋友了解并参与本项目.

如果你希望使用 dvisvgm, 请确保安装 dvisvgm3.0 以上的版本. dvisvgm 相比 dvipng 具有少量性能的缺失, 但是有更多功能. 由于一些原因 dvisvgm 不能通过正常的 TeX Live 渠道安装, 你需要自己编译安装. 可以参照这篇: 求助: 在 macOS 下编译 dvisvgm.

项目目前依然有不完善的地方

目前我所知的有 (2023年2月22日):

  1. XeTeX 和 LuaLaTeX 引擎是支持的, 但缺少测试来保证稳定性.

  2. 导出 HTML 时图片的生成 (转自 karthink, 这是目前比较棘手的问题):

We are currently blocked by a single last issue – image generation for html exports (which I’m working on). Once that’s done the patch will be sent to the Org mailing list for testing, at which point feedback in the form of suggestions, testing and code contributions will be welcome.


综上, 欢迎大家参与测试、来一起帮助完善该项目. :blush:

22 个赞

@VagrantJoker VagrantJoker 这位是 org 与 latex 编辑的大佬,赶快和楼主项目交流交流你们用 org 和 latex 的心得,让我们小鱼小虾学习学习。

2 个赞

题外话,我感觉楼主这个向下箭头作为 headline 的提示看起来还挺好的。有org theme 的详细配置吗?

可不是什么大佬,拾人牙慧罢了。

我也等着抄 tecosaur 和 karthink 两位真大佬的作业 :rofl:

2 个赞

抄作业的继承与多态。哈哈。 :crazy_face:

1 个赞

箭头的符号来自苹果的字体 SF Pro. 这个字体可以免费个人使用.

我的 Org 主题主要使用 org-modern 这个包来配置:

;; (require 'org-modern)

(setq org-modern-star '("􀄩"))
(setq org-modern-hide-stars "􀄩") ;; 这里显示不出来的字符就是那个向下的箭头

期待你能来参与帮助测试和开发 :blush:

图一里面是什么字体?

是我自定义的 Iosevka 字体: GitHub - ilyaw39/PesMono: Elegant font for scientific writing.

1 个赞

期待已久的演示视频已经放出:

开发、使用、贡献见: [Pre-PATCH] Overhaul of the LaTeX preview system - Timothy


目前正在广泛征集测试者. 参与可以通过上述 Mailing list 与 Discord.

7 个赞

楼主你好,我是 discord 那里的 mafty ~

2 个赞

org 和 LaTeX 的用法五花八门,即便目前两位主要作者经验丰富,也难免会有考虑不到的各种使用方法和 edge case。因此,各位道友如果能帮助测试并发现问题,将对项目有很大帮助

2 个赞

谁在doom emacs 里面尝试过吗?

原作者 tecosaur 就是在 Doom 中使用的, 见配置: packages.el.html

(package! org :recipe
  (:host nil :repo "https://git.tecosaur.net/mirrors/org-mode.git" :remote "mirror" :fork
         (:host nil :repo "https://git.tecosaur.net/tec/org-mode.git" :branch "dev" :remote "tecosaur")
         :files
         (:defaults "etc")
         :build t :pre-build
         (with-temp-file "org-version.el"
           (require 'lisp-mnt)
           (let
               ((version
                 (with-temp-buffer
                   (insert-file-contents "lisp/org.el")
                   (lm-header "version")))
                (git-version
                 (string-trim
                  (with-temp-buffer
                    (call-process "git" nil t nil "rev-parse" "--short" "HEAD")
                    (buffer-string)))))
             (insert
              (format "(defun org-release () \"The release version of Org.\" %S)\n" version)
              (format "(defun org-git-version () \"The truncate git commit hash of Org mode.\" %S)\n" git-version)
              "(provide 'org-version)\n"))))
  :pin nil)

(unpin! org)
2 个赞

请问需要怎么样开启这个特性呢?还是直接使用org-latex-preview就可以了呢?我直接C-c C-x C-l发现Emacs还是会卡住一下,不知道是我的电脑配置太低(i3-8130U)还是因为没有正确开启功能

hmm 理论上应该是开箱即用的

好吧,看来是我电脑性能太低了

我复制了这个到 package.el 后同样没有生效,org-latex-preview 会卡住,甚至不能正常生成图片。 视频中的控制面板又该怎样调出来呢?

视频中的控制面板又该怎样调出来呢?

我估计这是 karthink 为了展示专门写的,应该没有包含在 org 中

1 个赞

@colawithsauce @name8102 尝试进入本地 org-mode 目录, 运行 make autoloads, 然后再打开试一下?