Latex preview centering
This commit is contained in:
@@ -82,6 +82,44 @@
|
||||
(setq org-latex-preview-mode-display-live t)
|
||||
(setq org-latex-preview-mode-update-delay 0.25))
|
||||
|
||||
;; code for centering LaTeX previews -- a terrible idea
|
||||
(use-package org-latex-preview
|
||||
:ensure nil
|
||||
:hook (org-latex-preview-mode . org-latex-preview-center-mode)
|
||||
:config
|
||||
(defun my/org-latex-preview-uncenter (ov)
|
||||
(overlay-put ov 'before-string nil))
|
||||
(defun my/org-latex-preview-recenter (ov)
|
||||
(overlay-put ov 'before-string (overlay-get ov 'justify)))
|
||||
(defun my/org-latex-preview-center (ov)
|
||||
(save-excursion
|
||||
(goto-char (overlay-start ov))
|
||||
(when-let* ((elem (org-element-context))
|
||||
((or (eq (org-element-type elem) 'latex-environment)
|
||||
(string-match-p "^\\\\\\[" (org-element-property :value elem))))
|
||||
(img (overlay-get ov 'display))
|
||||
(prop `(space :align-to (- center (0.55 . ,img))))
|
||||
(justify (propertize " " 'display prop 'face 'default)))
|
||||
(overlay-put ov 'justify justify)
|
||||
(overlay-put ov 'before-string (overlay-get ov 'justify)))))
|
||||
(define-minor-mode org-latex-preview-center-mode
|
||||
"Center equations previewed with `org-latex-preview'."
|
||||
:global nil
|
||||
(if org-latex-preview-center-mode
|
||||
(progn
|
||||
(add-hook 'org-latex-preview-overlay-open-functions
|
||||
#'my/org-latex-preview-uncenter nil :local)
|
||||
(add-hook 'org-latex-preview-overlay-close-functions
|
||||
#'my/org-latex-preview-recenter nil :local)
|
||||
(add-hook 'org-latex-preview-overlay-update-functions
|
||||
#'my/org-latex-preview-center nil :local))
|
||||
(remove-hook 'org-latex-preview-overlay-close-functions
|
||||
#'my/org-latex-preview-recenter)
|
||||
(remove-hook 'org-latex-preview-overlay-update-functions
|
||||
#'my/org-latex-preview-center)
|
||||
(remove-hook 'org-latex-preview-overlay-open-functions
|
||||
#'my/org-latex-preview-uncenter))))
|
||||
|
||||
(use-package org-roam
|
||||
:ensure t
|
||||
:defer
|
||||
|
||||
Reference in New Issue
Block a user