After installing and using the org latex preview experimental features according to https://abode.karthinks.com/org-latex-preview/, I get severe freezing when closing Emacs, due to the `org-persist-write-all` function in the `kill-emacs-hook`. I write a lot of math, so I have a significant number of LaTeX fragments in my =~/.cache/org-persist=.
Emacs : GNU Emacs 30.1 (build 2, x86_64-w64-mingw32) of 2025-02-24 Package: Org mode version 9.8-pre (cd2269ddb @ c:/Users/<username>/.emacs.d/straight/build/org/) current state: ============== (setq org-yank-image-file-name-function 'org-yank-image-autogen-filename org-modern-priority-faces '((65 :background "#291f26" :weight semibold :foreground "#b52c2c") (66 :background "#291f26" :weight semibold :foreground "#b08940") (67 :background "#291f26" :weight semibold :foreground "#bf9f8f")) org-persist-before-write-hook '(org-element--cache-persist-before-write) org-habit-show-habits-only-for-today nil org-clock-persist t org-html-head "<link rel='stylesheet' type='text/css' href='https://dakrone.github.io/org.css'/>" org-html-format-headline-function 'org-html-format-headline-default-function org-html-format-drawer-function #[514 "\207" [] 3 ("c:/Users/<username>/.emacs.d/straight/build/org/ox-html.elc" . 24330)] org-clock-out-hook '(bh-clock-out-maybe) org-preview-latex-image-directory "~/lateximg/" org-default-notes-file "~/org-mode/refile.org" org-log-into-drawer t org-refile-allow-creating-parent-nodes 'confirm org-clock-string-limit 1 org-directory "~/org-mode/" org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function org-clock-in-resume t org-agenda-custom-commands '(("N" "Notes" tags "NOTE" ((org-agenda-overriding-header "Notes") (org-tags-match-list-sublevels t)) ) ("h" "Habits" tags-todo "STYLE=\"habit\"" ((org-agenda-overriding-header "Habits") (org-agenda-sorting-strategy '(todo-state-down effort-up category-keep)) ) ) (" " "Full Agenda" ((agenda "" ((org-agenda-overriding-header "Today's Schedule") (org-agenda-span 'day) (org-agenda-ndays 1) (org-agenda-start-on-weekday nil) (org-agenda-start-day "+0d")) "Block showing a 1 day schedule.") (tags "refile" ((org-agenda-overriding-header "Tasks to Refile") (org-tags-match-list-sublevels nil)) "Block showing tasks that need refiling") (tags-todo "-refile-paper/NEXT" ((org-agenda-overriding-header "Next Tasks") (org-agenda-skip-function 'bh-skip-project-tasks) (org-agenda-todo-ignore-scheduled t) (org-agenda-todo-ignore-deadlines t) (org-agenda-todo-ignore-with-date t)) "Next Tasks") (tags-todo "-refile-paper/TODO|WAIT" ((org-agenda-overriding-header "Tasks") (org-agenda-skip-function 'bh-skip-project-tasks) (org-agenda-todo-ignore-scheduled t) (org-agenda-todo-ignore-deadlines t) (org-agenda-todo-ignore-with-date t)) "TODOs") (tags "-refile/" ((org-agenda-overriding-header "Tasks to Archive") (org-agenda-skip-function 'bh-skip-non-archivable-tasks) (org-tags-match-list-sublevels nil)) ) ) nil) ("r" "Research Agenda" ((agenda "" ((org-agenda-overriding-header "Today's Schedule") (org-agenda-span 'day) (org-agenda-ndays 1) (org-agenda-start-on-weekday nil) (org-agenda-start-day "+0d")) "Block showing a 1 day schedule.") (tags "refile" ((org-agenda-overriding-header "Tasks to Refile") (org-tags-match-list-sublevels nil)) "Block showing tasks that need refiling") (tags-todo "-refile/NEXT" ((org-agenda-overriding-header "Next Tasks") (org-agenda-skip-function 'bh-skip-project-tasks) (org-agenda-todo-ignore-scheduled t) (org-agenda-todo-ignore-deadlines t) (org-agenda-todo-ignore-with-date t)) "Next Tasks") (tags-todo "-refile/TODO|WAIT" ((org-agenda-overriding-header "Tasks") (org-agenda-skip-function 'bh-skip-project-tasks) (org-agenda-todo-ignore-scheduled t) (org-agenda-todo-ignore-deadlines t) (org-agenda-todo-ignore-with-date t)) "TODOs") (tags "-refile/" ((org-agenda-overriding-header "Tasks to Archive") (org-agenda-skip-function 'bh-skip-non-archivable-tasks) (org-tags-match-list-sublevels nil)) ) ) ((org-agenda-files (list "~/org-mode/research.org.gpg" "~/org-mode/personal.org.gpg" "~/org-mode/refile.org.gpg") ) ) nil) ("w" "Work Agenda" ((agenda "" ((org-agenda-overriding-header "Today's Schedule") (org-agenda-span 'day) (org-agenda-ndays 1) (org-agenda-start-on-weekday nil) (org-agenda-start-day "+0d")) "Block showing a 1 day schedule.") (tags "refile" ((org-agenda-overriding-header "Tasks to Refile") (org-tags-match-list-sublevels nil)) "Block showing tasks that need refiling") (tags-todo "-refile/NEXT" ((org-agenda-overriding-header "Next Tasks") (org-agenda-skip-function 'bh-skip-project-tasks) (org-agenda-todo-ignore-scheduled t) (org-agenda-todo-ignore-deadlines t) (org-agenda-todo-ignore-with-date t)) "Next Tasks") (tags-todo "-refile/TODO|WAIT" ((org-agenda-overriding-header "Tasks") (org-agenda-skip-function 'bh-skip-project-tasks) (org-agenda-todo-ignore-scheduled t) (org-agenda-todo-ignore-deadlines t) (org-agenda-todo-ignore-with-date t)) "TODOs") (tags "-refile/" ((org-agenda-overriding-header "Tasks to Archive") (org-agenda-skip-function 'bh-skip-non-archivable-tasks) (org-tags-match-list-sublevels nil)) ) ) ((org-agenda-files (list "~/org-mode/company.org.gpg" "~/org-mode/personal.org.gpg" "~/org-mode/refile.org.gpg") ) ) nil) ) org-clock-out-remove-zero-time-clocks t org-clock-report-include-clocking-task t org-roam-db-node-include-function #[0 "\300\207" [t] 1] org-roam-log-setup-hook '(org-roam--register-completion-functions-h) org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) org-persist-after-read-hook '(org-element--cache-persist-after-read) org-fold-catch-invisible-edits 'show-and-error org-confirm-elisp-link-function 'yes-or-no-p org-clock-clocked-in-display nil org-agenda-finalize-hook '(org-modern-agenda) org-roam-preview-function 'org-roam-preview-default-function org-log-done 'time org-latex-format-headline-function 'org-latex-format-headline-default-function org-agenda-window-setup 'only-window org-latex-format-drawer-function #[514 "\207" [] 3 ("c:/Users/<username>/.emacs.d/straight/build/org/ox-latex.elc" . 41080)] org-blank-before-new-entry '((heading . t) (plain-list-item . auto)) org-agenda-tags-todo-honor-ignore-options t org-modern-mode-hook '(org-modern-mode-set-explicitly) org-mode-hook '(org-latex-preview--clear-preamble-cache citar-capf-setup #[0 "\301\211\207" [imenu-create-index-function org-imenu-get-tree] 2] org-clock-load #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-fold-show-all append local] 5] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes org-fold-hide-drawer-all turn-on-org-cdlatex visual-line-mode org-latex-preview-auto-mode auto-fill-mode) org-hide-emphasis-markers t org-html-mathjax-options '((path "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js") (scale "1.0") (align "center") (indent "2em") (tags "ams")) org-capture-templates '(("t" "New Todo" entry (file "~/org-mode/refile.org.gpg") "* TODO %(pri) %? %^G\n:PROPERTIES:\n:CREATED: %U\n:END:\n" :prepend t) ("m" "Meeting Later" entry (file "~/org-mode/refile.org.gpg") "* TODO %^{Meeting Title|Supervisory Meeting} :meeting:\n:PROPERTIES:\n:CREATED: %U\n:EXPORT_HTML_HEAD: <<username>l='stylesheet' type='text/css' href='https://gongzhitaao.org/orgcss/org.css'/>\n:EXPORT_FILE_NAME: ~/meeting_notes_%<%Y-%m-%d>\n:EXPORT_DATE: %^{Meeting Date}U\n:END:\n** Attendees\n- [ ] %?\n\n** To Discuss\n_Topic:_\n\n** Notes\n- \n\n** Tasks\n| What | Who | When |\n|------+-----+------|\n| | | |\n" :prepend t) ("n" "Meeting Now" entry (file "~/org-mode/refile.org.gpg") "* MEET %^{Meeting Title|Chat with ...} :meeting:\n:PROPERTIES:\n:CREATED: %U\n:EXPORT_HTML_HEAD: <link r<username>lesheet' type='text/css' href='https://gongzhitaao.org/orgcss/org.css'/>\n:EXPORT_FILE_NAME: meeting_notes_%<%Y-%m-%d>\n:EXPORT_DATE: %U\n:END:\n** Attendees\n- [ ]\n\n** To Discuss\n_Topic:_\n\n** Notes\n- \n\n** Tasks\n| What | Who | When |\n|------+-----+------|\n| | | |\n" :clock-in t :clock-resume t :prepend t) ("i" "Interruption" entry (file "~/org-mode/refile.org.gpg") "* INTR %? :interruption:\n:PROPERTIES:\n:CREATED: %U\n:END:\n" :clock-in t :clock-resume t :prepend t) ("p" "Paper" entry (file "~/org-mode/refile.org.gpg") "* TODO %(pri) %^{Bagley and Brown} - %^{First few title words|Geographically}... (%^{Year|2020}) :paper:<username>ERTIES:\n:CREATED: %U\n:END:\n" :prepend t :immediate-finish t) ("j" "Journal") ("jt" "Today" plain #'org-journal-find-location-today "** %(format-time-string org-journal-time-format)\n%?" :jump-to-captured t :immediate-finish t) ("jy" "Yesterday" plain #'org-journal-find-location-yesterday "** %(format-time-string org-journal-time-format)\n%?" :jump-to-captured t :immediate-finish t) ("f" "Fleeting Note" entry (file "~/org-mode/org-roam/inbox.org") "* %?") ("h" "Habit" entry (file "~/org-mode/refile.org.gpg") "* NEXT %?\nSCHEDULED: %(format-time-string \"%<<%Y-%m-%d %a .+1d/3d>>\")\n:PROPERTIES:\n:STYLE: habit\n:<username>TO_STATE: NEXT\n:END:\n") ) org-refile-targets '((nil :maxlevel . 9) (org-agenda-files :maxlevel . 9)) org-confirm-shell-link-function 'yes-or-no-p org-odt-format-headline-function 'org-odt-format-headline-default-function org-archive-hook '(org-attach-archive-delete-maybe) org-agenda-category-icon-alist '(("work" (#("" 0 1 (face (:family "Symbols Nerd Font Mono" :height 0.5) font-lock-face (:family "Symbols Nerd Font Mono" :height 0.5) display (raise 0.0) rear-nonsticky t) ) ) nil nil :ascent center) ("personal" (#("" 0 1 (face (:family "Symbols Nerd Font Mono" :height 0.5) font-lock-face (:family "Symbols Nerd Font Mono" :height 0.5) display (raise 0.0) rear-nonsticky t) ) ) nil nil :ascent center) ("research" (#("" 0 1 (face (:family "Symbols Nerd Font Mono" :height 0.5) font-lock-face (:family "Symbols Nerd Font Mono" :height 0.5) display (raise 0.0) rear-nonsticky t) ) ) nil nil :ascent center) ("refile" (#("" 0 1 (face (:family "Symbols Nerd Font Mono" :height 0.5) font-lock-face (:family "Symbols Nerd Font Mono" :height 0.5) display (raise 0.0) rear-nonsticky t) ) ) nil nil :ascent center) ) org-habit-graph-column 50 org-insert-heading-respect-content t org-metaup-hook '(org-babel-load-in-session-maybe) org-latex-preview-appearance-options '(:foreground auto :background "Transparent" :scale 1.0 :zoom 1.0 :page-width 0.8 :matchers ("begin" "$1" "$" "$$" "\\(" "\\[")) org-modern-list '((43 . "◦") (45 . "•") (42 . "•")) org-reverse-note-order t org-occur-hook '(org-first-headline-recenter) org-roam-ui-browser-function 'browse-url org-ellipsis " [+]" org-edit-src-content-indentation 0 org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function org-export-with-tags nil org-roam-node-annotation-function 'org-roam-node-read--annotation org-ascii-format-drawer-function #[771 "\207" [] 4 ("c:/Users/<username>/.emacs.d/straight/build/org/ox-ascii.elc" . 13342)] org-modern-fold-stars nil org-agenda-scheduled-leaders '("Scheduled: " "Scheduled: %2d days: ") org-roam-directory "~/org-mode/org-roam/" org-clocktable-defaults '(:maxlevel 2 :lang "en" :scope file :block nil :wstart 1 :mstart 1 :tstart nil :tend nil :step nil :stepskip0 nil :fileskip0 t :tags nil :match nil :emphasize nil :link nil :narrow 40! :indent t :filetitle t :hidefiles nil :formula nil :timestamp nil :level nil :tcolumns nil :formatter nil) org-roam-db-autosync-mode t org-roam-indirect-buffer-hook '(org-roam--register-completion-functions-h) org-bibtex-headline-format-function 'org-bibtex-headline-format-default org-capture-prepare-finalize-hook '(org-roam-capture--install-finalize-h) org-link-parameters '(("eww" :follow org-eww-open :store org-eww-store-link) ("rmail" :follow org-rmail-open :store org-rmail-store-link) ("mhe" :follow org-mhe-open :store org-mhe-store-link) ("irc" :follow org-irc-visit :store org-irc-store-link :export org-irc-export) ("info" :follow org-info-open :export org-info-export :store org-info-store-link :insert-description org-info-description-as-command) ("gnus" :follow org-gnus-open :store org-gnus-store-link) ("docview" :follow org-docview-open :export org-docview-export :store org-docview-store-link) ("bibtex" :follow org-bibtex-open :store org-bibtex-store-link) ("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete org-bbdb-complete-link :store org-bbdb-store-link) ("w3m" :store org-w3m-store-link) ("doi" :follow org-link-doi-open :export org-link-doi-export) ("roam" :follow org-roam-link-follow-link) ("attachment" :follow org-attach-follow :complete org-attach-complete-link :preview org-attach-preview-file) ("id" :follow org-id-open :store org-id-store-link-maybe) ("file+sys") ("file+emacs") ("shell" :follow org-link--open-shell) ("news" :follow #[514 "\301\300\302Q\"\207" ["news" browse-url ":"] 6 ("c:/Users/<username>/.emacs.d/straight/build/org/ol.elc" . 74518)] ) ("mailto" :follow #[514 "\301\300\302Q\"\207" ["mailto" browse-url ":"] 6 ("c:/Users/<username>/.emacs.d/straight/build/org/ol.elc" . 74518)] ) ("https" :follow #[514 "\301\300\302Q\"\207" ["https" browse-url ":"] 6 ("c:/Users/<username>/.emacs.d/straight/build/org/ol.elc" . 74518)] ) ("http" :follow #[514 "\301\300\302Q\"\207" ["http" browse-url ":"] 6 ("c:/Users/<username>/.emacs.d/straight/build/org/ol.elc" . 74518)] ) ("ftp" :follow #[514 "\301\300\302Q\"\207" ["ftp" browse-url ":"] 6 ("c:/Users/<username>/.emacs.d/straight/build/org/ol.elc" . 74518)] ) ("shortdoc" :follow org-link--open-shortdoc :store org-link--store-shortdoc :complete org-link--complete-shortdoc) ("help" :follow org-link--open-help :store org-link--store-help) ("file" :complete org-link-complete-file :preview org-link-preview-file) ("elisp" :follow org-link--open-elisp)) org-roam-capture-templates '(("m" "main" plain "%?" :if-new (file+head "main/${slug}.org" ":PROPERTIES:\n:CREATED: %U\n:MODIFIED: %U\n:END:\n#+TITLE: ${title}\n") :immediate-finish t :unnarrowed t) ("l" "literature note" plain "%?" :target (file+head "%(expand-file-name (or citar-org-roam-subdir \"\") org-roam-directory)/${citar-citekey}.org" ":PRO<username>:\n:CREATED: %U\n:END:\n#+TITLE: ${citar-title}.\n#+SUBTITLE: ${citar-author} (${citar-date})\n\n* Importance\n\n* Notes\n") :unnarrowed t) ) org-log-buffer-setup-hook '(org-roam-log--setup) org-refile-use-outline-path t org-cycle-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-roam-node-display-template #("${directories:12} ${title:100} ${backlinkscount:5}${tags:*}" 52 61 (face org-tag)) org-modern-todo-faces '(("NEXT" :inverse-video t :weight semibold :foreground "dodger blue") ("WAIT" :inverse-video t :weight semibold :foreground "orange") ("INTR" :inverse-video t :weight semibold :foreground "#fdb4eb")) org-todo-keywords '((sequence "NEXT(n)" "TODO(t)" "WAIT(w)" "|" "DONE(d)" "CNCL(c)" "MEET(m)" "INTR(i)") ) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-metadown-hook '(org-babel-pop-to-session-maybe) org-agenda-restore-windows-after-quit t org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-sort-function 'string-collate-lessp org--warnings nil org-modern-block-fringe nil org-babel-pre-tangle-hook '(save-buffer) org-roam-capture-new-node-hook '(org-roam-capture--insert-captured-ref-h) org-tags-column 0 org-agenda-prefix-format '((agenda . " %-3:i%?-12t% s") (todo . " %-3:i ") (tags . " %-3:i ") (search . " %-3:i ")) org-export-before-parsing-hook '(org-attach-expand-links) org-clock-in-switch-to-state 'bh-clock-in-to-next org-export-with-todo-keywords nil org-startup-with-link-previews t org-link-shell-confirm-function 'yes-or-no-p org-fold-core-isearch-open-function 'org-fold-core--isearch-reveal org-roam-capture-preface-hook '(org-roam-dailies--override-capture-time-h org-roam-capture--try-capture-to-ref-h) outline-isearch-open-invisible-function 'outline-isearch-open-invisible org-src-mode-hook '(org-latex-preview-live--src-buffer-setup org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-roam-find-file-hook '(org-roam-buffer--setup-redisplay-h org-roam--register-completion-functions-h org-roam--replace-roam-links-on-save-h org-roam-db-autosync--setup-update-on-save-h) org-latex-preview-live-debounce 0.25 org-html-validation-link nil org-modules '(ol-doi ol-w3m ol-bbdb ol-bibtex ol-docview ol-gnus ol-info ol-irc ol-mhe ol-rmail ol-eww org-habit) org-roam-ref-annotation-function 'org-roam-ref-read--annotation org-agenda-loop-over-headlines-in-active-region nil org-auto-align-tags nil org-latex-preview-process-alist '((dvipng :programs ("latex" "dvipng") :description "dvi > png" :message "you need to install the programs: latex and dvipng." :image-input-type "dvi" :image-output-type "png" :latex-compiler ("%l -interaction nonstopmode -output-directory %o %f") :latex-precompiler ("%l -output-directory %o -ini -jobname=%b \"&%L\" mylatexformat.ltx %f") :image-converter ("dvipng --follow -D %D -T tight --depth --height -o %B-%%09d.png %f") :transparent-image-converter ("dvipng --follow -D %D -T tight -bg Transparent --depth --height -o %B-%%09d.png %f") ) (dvisvgm :programs ("latex" "dvisvgm") :description "dvi > svg" :message "you need to install the programs: latex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :latex-compiler ("%l -interaction nonstopmode -output-directory %o %f") :latex-precompiler ("%l -output-directory %o -ini -jobname=%b \"&%L\" mylatexformat.ltx %f") :image-converter ("dvisvgm --page=1- --optimize --clipjoin --relative --no-fonts -v3 --message='processing page <username>o}: output written to {?svgpath}' --bbox=preview -o %B-%%9p.svg %f") ) (imagemagick :programs ("pdflatex" "convert") :description "pdf > png" :message "you need to install the programs: latex and imagemagick." :image-input-type "pdf" :image-output-type "png" :latex-compiler ("pdflatex -interaction nonstopmode -output-directory %o %f") :latex-precompiler ("pdftex -output-directory %o -ini -jobname=%b \"&pdflatex\" mylatexformat.ltx %f") :image-converter ("convert -density %D -trim -antialias %f -quality 100 %B-%%09d.png") ) ) org-agenda-tags-column 80 org-latex-packages-alist '(("" "mathtools" t)) org-export-with-timestamps nil org-agenda-files '("~/org-mode/company.org.gpg" "~/org-mode/refile.org.gpg" "~/org-mode/personal.org.gpg" "~/org-mode/research.org.gpg") org-export-with-section-numbers nil org-export-with-drawers nil org-link-elisp-confirm-function 'yes-or-no-p org-outline-path-complete-in-steps nil org-startup-indented t org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function org-agenda-deadline-leaders '("Deadline: " "Deadline: %2d: days" "") org-latex-preview-live t org-src-lang-modes '(("beamer" . LaTeX) ("latex" . LaTeX) ("C" . c) ("C++" . c++) ("asymptote" . asy) ("beamer" . latex) ("calc" . fundamental) ("cpp" . c++) ("ditaa" . artist) ("desktop" . conf-desktop) ("dot" . fundamental) ("elisp" . emacs-lisp) ("ocaml" . tuareg) ("screen" . shell-script) ("sqlite" . sql) ("toml" . conf-toml) ("shell" . sh) ("ash" . sh) ("sh" . sh) ("bash" . sh) ("jsh" . sh) ("bash2" . sh) ("dash" . sh) ("dtksh" . sh) ("ksh" . sh) ("es" . sh) ("rc" . sh) ("itcsh" . sh) ("tcsh" . sh) ("jcsh" . sh) ("csh" . sh) ("ksh88" . sh) ("oash" . sh) ("pdksh" . sh) ("mksh" . sh) ("posix" . sh) ("wksh" . sh) ("wsh" . sh) ("zsh" . sh) ("rpm" . sh)) org-archive-location "%s_archive::* Archived Tasks" org-export-initial-scope 'subtree org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-show-empty-lines org-cycle-optimize-window-after-visibility-change org-cycle-display-link-previews) org-persist-before-read-hook '(org-element--cache-persist-before-read) org-html-doctype "html5" org-use-sub-superscripts "{}" org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default org-odt-format-drawer-function #[514 "\207" [] 3 ("c:/Users/<username>/.emacs.d/straight/build/org/ox-odt.elc" . 19276)] org-agenda-sorting-strategy '((todo todo-state-up category-keep priority-down effort-up) (tags todo-state-up category-keep priority-down effort-up) (search category-up)) )