From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id +EwGBTgCnWbiewAAqHPOHw:P1 (envelope-from ) for ; Sun, 21 Jul 2024 12:42:32 +0000 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id +EwGBTgCnWbiewAAqHPOHw (envelope-from ) for ; Sun, 21 Jul 2024 14:42:32 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nRSEoaak; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1721565752; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=jzjdFcUthGgJsEZ3D0o805Eo3Kf6i1GldPollBpu/I8=; b=mLK7sn7n8RBPNvftKoUsleZgEcUG/VRW9BZKTcrfM7LYdQnecig7EmTVeAJ6tcz0O9OIIT 6/pirGB0DacTJPg55auZ250diCc00bkGHO8a+KWGN85b70QOcOKmoR4S8FJS6Wdgr3sfaf ZZ9DSD3Lg14+FuLsqUzGWcOH0NiN2eFdxgUvtUC7R04Rq9+uYiMTZSzz2LR/c7nn0d9em/ tW4VF/UJA+kYJFQFHf9iS5MdICuX1nqpYkin7Y2bTG4uADQ88rjRny4omTq+QmyUC+xXcf H4Wq9LYxc9pkfxGPgKhrZs88cmPG81thNsb7Xztle0Fs+wXw3gUuWjWOCJ5whA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nRSEoaak; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1721565752; a=rsa-sha256; cv=none; b=u+XBg6pfmBjR7MJYTJsXe2Fk19F7LWMkfFr3ZFORvQOfG+NeVnjrH/ttEigYLFYuqmNhnR PV5SO00MCjEdxS+APR1MqKRSD7p+y6VgMPwJKBFxF+UWQ+Ykf+19TYC0oY5sipDuraV4MS 5tIz6A+dQ6qLEMJArkjmumuaUtnxaMPYwY1L7NiAOqUkGq7qtQl6hnNcnIGR9Ye9419loI fCgSJeDdzLgDwMvofKPHYDvPt1m5S26mADO9mZqZ6TF5pFTuI4NLhvnlDnPw/g2xSntOOV UMEw6THf2+b/DruIOkdEBxOBuwW9zUTvzpiuv/0jvKjb8DaF30fr7dWidCwqbw== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A149F3BDC0 for ; Sun, 21 Jul 2024 14:42:30 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sVVsf-0005Fo-7z; Sun, 21 Jul 2024 08:41:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sVVsd-0005FQ-1G for emacs-orgmode@gnu.org; Sun, 21 Jul 2024 08:41:35 -0400 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sVVsa-00009e-EN for emacs-orgmode@gnu.org; Sun, 21 Jul 2024 08:41:34 -0400 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2ee920b0781so40080411fa.1 for ; Sun, 21 Jul 2024 05:41:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721565690; x=1722170490; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jzjdFcUthGgJsEZ3D0o805Eo3Kf6i1GldPollBpu/I8=; b=nRSEoaakcnPaT3OmYwDS0SD8CbZNBBm7uvPxCDiB5g2r43m3HmEl9SwquZH90qjVd7 bChkzJznmMM36NdeE9hCE95hau5+4BdW5p4jmHjwPRH1hNZfMNVqWv2/G1vmsRcPg3Tw PRSxALWnLtN/aQ+WOTk9amDNryWcQ0aZKXJ0GryAW9AItAln+MzXzExwErx9fwBKJB5i xfOFxYRmeSWnfbiS8dSrjsMff+Stc3KPKaPDGqxQy0nEqxbnxhxZqKps6XCoY2+1P0s9 vbUNX7NHko1Mc783v3MHe1E7X5NNuJNrjYaUEr22xdf0M4SV0by34dbg25W8MSoGv3kW ZR2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721565690; x=1722170490; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jzjdFcUthGgJsEZ3D0o805Eo3Kf6i1GldPollBpu/I8=; b=f7NTlp68TAH59B22DynXXse3ub1wIMXC39mBeMLmMrJoMt0ytoS3YXIX3O186eLwkD QfYphta4WElUOYsiRh3YAfAULGMeMcXZ4zxKnC+b6Dof/5DAQCt3Aw+3PS6t+tU75i8U 2VbwSAlv3WJ2J1/iqPpD2MgUq90xBpR83KFjmYcEg0lw+c+DOPVL8h0Ep6iH/TRTkcNS tfq9QYOPEluSjYxkBhVcPMDLmAF05rYOreBXvXg43tRuoyiDjoHZ8jzA62ER3YUVWb8B 5rxx8d0A2/m5orBNUfR9bbeIyl68cFkNE0P+F+eN/i+xdocRZJAYO/BmUF49Ir+A2J5/ xgiQ== X-Gm-Message-State: AOJu0Yw9NLibcB6i1JgpeLdwmYVT/DWKMh8JaAYEEPm5FktO3JfyJlf0 JTpVVu3URluhYHzOlzWpf7q3OAM/Hc97s5exn3yaHEQUHOkSBZXJO+471pBJXp0t9G1lnzH7uvk 4DFxPzM6dUeSeU6aO35+9hBmrh0zmQv+e X-Google-Smtp-Source: AGHT+IEcaUBxSXZrDzMlyxitCxe4GKzySPPu4qAx31dteJtmBbkkvxlXJY8kTPfJAbjLg5aW9w6xUAt6FT5sq43fTx8= X-Received: by 2002:a05:651c:211c:b0:2ef:2bb4:2ea1 with SMTP id 38308e7fff4ca-2ef2bb43610mr11650241fa.4.1721565689919; Sun, 21 Jul 2024 05:41:29 -0700 (PDT) MIME-Version: 1.0 References: <87lek2up0w.fsf@tec.tecosaur.net> In-Reply-To: <87lek2up0w.fsf@tec.tecosaur.net> From: Jun Inoue Date: Sun, 21 Jul 2024 21:41:02 +0900 Message-ID: Subject: Re: [Pre-PATCH] Overhaul of the LaTeX preview system To: Timothy Cc: emacs-orgmode@gnu.org Content-Type: multipart/alternative; boundary="00000000000067c080061dc13f31" Received-SPF: pass client-ip=2a00:1450:4864:20::236; envelope-from=jun.lambda@gmail.com; helo=mail-lj1-x236.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Queue-Id: A149F3BDC0 X-Migadu-Scanner: mx13.migadu.com X-Migadu-Spam-Score: -9.74 X-Spam-Score: -9.74 X-TUID: 6E4jC2Sgr+fo --00000000000067c080061dc13f31 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi there! I've been using this excellent overhaul ever since it came out, and I'd like to contribute a bug fix. I hope replying to this thread is the right way to do that; if not, please let me know. Recently, the previews stopped working after a system update. * Symptom On macOS with dvisvgm 3.2+, org-latex-preview can't typeset LaTeX fragments at all in a lot of files. It gives an error like the following: error in process filter: Opening input file: No such file or directory, /var/var/folders/8g/k689fc1j3gg2ny7xrzqchjsm0000gn/T/org-tex-ZqKlQw-0000000= 01.svg [2 times] ** Steps to Reproduce Put dvisvgm 3.2+ on your path and create a .org file anywhere outside temporary-file-directory that is shallower than (i.e. has fewer slashes than) temporary-file-directory. Try to preview any LaTeX fragment in that file. This should theoretically reproduce on non-macOS, but macOS has an especially deep temporary-file-directory that looks like /var/folders/8g/k689fc1j3gg2ny7xrzqchjsm0000g, making it easier to reproduce. If temporary-file-directory is /tmp on your system, I think you have to make the .org file in the root directory or change temporary-file-directory to a deeper directory (haven't tried). * Cause This is because org-latex-preview: 1. Runs dvisvgm in the same directory as the .org file, and 2. Tells dvisvgm to report the output SVG file names as relative paths using ?svgfile, but 3. Then expands those file names under temporary-file-directory in org-latex-preview--dvisvgm-filter. So dvisvgm relativizes in one path, then org-latex-preview expands in another. For instance, if I try to typeset fragments in /Users/jun/org/test/test.org= , then dvisvgm reports: output written to: ../../../../var/folders/8g/k689fc1j3gg2ny7xrzqchjsm0000gn/T/org-tex-CWRtgi-= 000000001.svg where /var/folders/8g... is the absolute path of the output file. This is expanded under temporary-file-directory, which is /var/folders/8g/k689fc1j3gg2ny7xrzqchjsm0000gn/T, leading org-latex-preview to busy-wait for files to arrive in /var/var/folders/8g/k689fc1j3gg2ny7xrzqchjsm0000gn/T. I think this is hard to reproduce on most non-macOS systems where the temporary-file-directory is shallow. ?svgfile contains as many ../ as there are slashes in the directory hosting the .org file, and expanding that relative to (say) /tmp will effectively remove all those ../, making it expand to the correct absolute path by accident. * Fix Use ?svgpath instead of ?svgfile. Here's a patch that applies to commit 9584a76a843e2e8122799e5653bb9120fe568f64 of [[ https://git.tecosaur.net/tec/org-mode.git]]. modified lisp/org-latex-preview.el @@ -200,7 +200,7 @@ Place-holders only used by `:image-converter': (list (concat "dvisvgm --page=3D1- --optimize --clipjoin --relative --no-fonts" (if (>=3D org-latex-preview--dvisvgm3-minor-version 2) - " -v3 --message=3D'processing page {?pageno}= : output written to {?svgfile}'" "") + " -v3 --message=3D'processing page {?pageno}= : output written to {?svgpath}'" "") " --bbox=3Dpreview -o %B-%%9p.svg %f")))))) (defcustom org-latex-preview-compiler-command-map @@ -2792,7 +2792,7 @@ EXTENDED-INFO, and displayed in the buffer." (when (save-excursion (re-search-forward "output written to \\(.*.svg\\)$" end t)) (setq fragment-info (nth (1- page) fragments)) - (plist-put fragment-info :path (expand-file-name (match-string 1) temporary-file-directory)) + (plist-put fragment-info :path (match-string 1)) (when (save-excursion (re-search-forward "^ page is empty" end t)) (unless (plist-get fragment-info :error) ** Environment GNU Emacs 29.1 (build 1, aarch64-apple-darwin21.6.0, Carbon Version 165 AppKit 2113.6) of 2023-08-09 (Brew tap railwaycat emacs-mac) dvisvgm 3.2.2 On Sun, Mar 12, 2023 at 9:35=E2=80=AFPM Timothy = wrote: > Hi All, > > After months of work, Karthink and I have prepared a rather large patch-s= et > completely overhauling the LaTeX preview system. I hope to have a patch s= et > shortly, but in the mean time it would be good to get some more people > testing > this. > > To test this feature, please check out the `dev' branch of > (it=E2=80=99s the default bra= nch). > There are > also some other changes there currently, but I don=E2=80=99t think anythi= ng is > broken. > > You can view the almost-ready path set/diff here: > , see th= e > ORG-NEWS and org-manual entries to get a bit more of an idea of what=E2= =80=99s > changed. > The short version is that now: > =E2=80=A2 Previews are generated in bulk, and hundreds of LaTeX fragments= can be > processed per second. > =E2=80=A2 Images are placed continuously as they are generated. > =E2=80=A2 Preview generation is asynchronous and will not block Emacs. > =E2=80=A2 Inline previews are aligned and scaled to match the font baseli= ne and > size. > =E2=80=A2 Previews scale along with text when the text scale is changed. > =E2=80=A2 Previews are coloured to match surrounding text and the active = theme. > =E2=80=A2 SVG previews automatically change colors when the active theme = changes. > =E2=80=A2 Error encountered when compiling LaTeX fragments can be accesse= d by > mousing over preview images. > =E2=80=A2 Preview overlays can hide and show themselves dynamically based= on > cursor position. > =E2=80=A2 Org mode can auto-generate LaTeX previews as you type or edit t= he text > of existing ones. > =E2=80=A2 Org mode can keep equation numbering consistent by regenerating= previews > as needed. > > If you do come across any issues, please let me know either in a reply > here or > the org-mode matrix room. If you could also run > and > share the > diagnostic info, that would be quite helpful. > > Lastly, Karthink has prepared a video giving an overview of the new > capabilities, you can give it a watch here: > > > All the best, > Timothy > > -- > Timothy (=E2=80=98tecosaur=E2=80=99/=E2=80=98TEC=E2=80=99), Org mode cont= ributor. > Learn more about Org mode at . > Support Org development at , > or support my work at . > --=20 Jun Inoue --00000000000067c080061dc13f31 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi there!=C2=A0 I've been using this excellent ov= erhaul ever since it came out, and I'd like to contribute a bug fix. I = hope replying to this thread is the right way to do that; if not, please le= t me know.

Recently, the previews stopped working = after a system update.

* Symptom
On macOS with = dvisvgm 3.2+, org-latex-preview can't typeset LaTeX fragments at all in= a lot of files.=C2=A0 It gives an error like the following:

error i= n process filter: Opening input file: No such file or directory, /var/var/f= olders/8g/k689fc1j3gg2ny7xrzqchjsm0000gn/T/org-tex-ZqKlQw-000000001.svg [2 = times]

** Steps to Reproduce
Put dvi= svgm 3.2+ on your path and create a .org file anywhere outside temporary-fi= le-directory that is shallower than (i.e. has fewer slashes than)=C2=A0temp= orary-file-directory.=C2=A0 Try to preview any LaTeX fragment in that file.=

This should theoretically reproduce on non-macOS,= but macOS has an especially deep temporary-file-directory that looks like = /var/folders/8g/k689fc1j3gg2ny7xrzqchjsm0000g, making it easier to reproduc= e.=C2=A0 If temporary-file-directory is /tmp on your system, I think you ha= ve to make the .org file in the root directory or change temporary-file-dir= ectory to a deeper directory (haven't tried).

<= div>* Cause
This is because org-latex-preview:
1. Runs dvisvgm in the= same directory as the .org file, and
2. Tells dvisvgm to report the out= put SVG file names as relative paths using ?svgfile, but
3. Then expands= those file names under temporary-file-directory in org-latex-preview--dvis= vgm-filter.

So dvisvgm relativizes in one path, then org-latex-previ= ew expands in another.

For instance, if I try to typeset fragments i= n /Users/jun/org/test/test.org, then dvisvg= m reports:

output written to: ../../../../var/folders/8g/k689fc1j3gg= 2ny7xrzqchjsm0000gn/T/org-tex-CWRtgi-000000001.svg

where /var/folder= s/8g... is the absolute path of the output file.=C2=A0 This is expanded und= er temporary-file-directory, which is /var/folders/8g/k689fc1j3gg2ny7xrzqch= jsm0000gn/T, leading org-latex-preview to busy-wait for files to arrive in = /var/var/folders/8g/k689fc1j3gg2ny7xrzqchjsm0000gn/T.

<= div>I think this is hard to reproduce on most non-macOS systems where the t= emporary-file-directory is shallow.=C2=A0 ?svgfile contains as many ../ as = there are slashes in the directory hosting the .org file, and expanding tha= t relative to (say) /tmp will effectively remove all those ../, making it e= xpand to the correct absolute path by accident.

* Fix
Use ?svgpath instead of ?svgfile.=C2=A0 Here's a patch that = applies to commit 9584a76a843e2e8122799e5653bb9120fe568f64 of [[https://git.tecosaur.net/tec/or= g-mode.git]].

modified =C2=A0 lisp/org-latex-preview.el
@@ -2= 00,7 +200,7 @@ Place-holders only used by `:image-converter':
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (list
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(concat "= ;dvisvgm --page=3D1- --optimize --clipjoin --relative --no-fonts"
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(if (>=3D org-latex-preview--dvisvgm3-minor-vers= ion 2)
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0" -v3 --message=3D'proces= sing page {?pageno}: output written to {?svgfile}'" "")<= br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0" -v3 --message=3D'processing pa= ge {?pageno}: output written to {?svgpath}'" "")
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0" --bbox=3Dpreview -o %B-%%9p.svg %f"))))))=C2=A0
=C2=A0(defcustom org-latex-preview-compiler-command-map
@@ -= 2792,7 +2792,7 @@ EXTENDED-INFO, and displayed in the buffer."
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(when (save-excursion
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(re-search-forward "outpu= t written to \\(.*.svg\\)$" end t))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(setq fragment-info (nth (1- page) fragments))
- =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0(plist-put fragment-info :path (expand-file-name (matc= h-string 1) temporary-file-directory))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0(plist-put fragment-info :path (match-string 1))
=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0(when (save-excursion
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(re-search-forward "^ =C2=A0p= age is empty" end t))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0(unless (plist-get fragment-info :error)

** Environment
GNU Em= acs 29.1 (build 1, aarch64-apple-darwin21.6.0, Carbon Version 165 AppKit 21= 13.6) of 2023-08-09 (Brew tap railwaycat emacs-mac)

dvisvgm 3.2.2
On Sun, Mar 12, 2023 at 9:35=E2=80=AFPM Timothy <orgmode@tec.tecosaur.net> wrote:
Hi All,

After months of work, Karthink and I have prepared a rather large patch-set=
completely overhauling the LaTeX preview system. I hope to have a patch set=
shortly, but in the mean time it would be good to get some more people test= ing
this.

To test this feature, please check out the `dev' branch of
<https://git.tecosaur.net/tec/org-mode.git> (it= =E2=80=99s the default branch). There are
also some other changes there currently, but I don=E2=80=99t think anything= is broken.

You can view the almost-ready path set/diff here:
<https://git.tecosaur.net/tec/org-= mode/compare/c8401d2f..6d60738>, see the
ORG-NEWS and org-manual entries to get a bit more of an idea of what=E2=80= =99s changed.
The short version is that now:
=E2=80=A2 Previews are generated in bulk, and hundreds of LaTeX fragments c= an be processed per second.
=E2=80=A2 Images are placed continuously as they are generated.
=E2=80=A2 Preview generation is asynchronous and will not block Emacs.
=E2=80=A2 Inline previews are aligned and scaled to match the font baseline= and size.
=E2=80=A2 Previews scale along with text when the text scale is changed. =E2=80=A2 Previews are coloured to match surrounding text and the active th= eme.
=E2=80=A2 SVG previews automatically change colors when the active theme ch= anges.
=E2=80=A2 Error encountered when compiling LaTeX fragments can be accessed = by mousing over preview images.
=E2=80=A2 Preview overlays can hide and show themselves dynamically based o= n cursor position.
=E2=80=A2 Org mode can auto-generate LaTeX previews as you type or edit the= text of existing ones.
=E2=80=A2 Org mode can keep equation numbering consistent by regenerating p= reviews as needed.

If you do come across any issues, please let me know either in a reply here= or
the org-mode matrix room. If you could also run
<https://gist.github.com/karthin= k/0ac48411a81459c0f3fd7557c4e817db> and share the
diagnostic info, that would be quite helpful.

Lastly, Karthink has prepared a video giving an overview of the new
capabilities, you can give it a watch here:
<https://www.youtube.com/watch?v=3Dn-AfvuV-bYo&g= t;

All the best,
Timothy

--
Timothy (=E2=80=98tecosaur=E2=80=99/=E2=80=98TEC=E2=80=99), Org mode contri= butor.
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,=
or support my work at <https://liberapay.com/tec>.


--
Jun Inoue --00000000000067c080061dc13f31--