From 716e32492b5a479a4d735cb9d824d38235e3f506 Mon Sep 17 00:00:00 2001 From: Karthik Chikmagalur Date: Sun, 29 Jan 2023 19:20:36 -0800 Subject: [PATCH] org-latex-preview: Fix element start positions * lisp/org-latex-preview.el (org-latex-preview--place-from-elements, org-latex-preview-auto--maybe-track-element-here): The org-element property `:begin' includes any Org keyword text associated with the element, such as "#+RESULTS:" or "#+ATTR_LATEX:" and these are swallowed up in the created preview overlays. Fix by using the `:post-affiliated' property over `:begin' when it is available. Note that some calculations, such as equation numbering, still use the `:begin' keyword. These calculations don't involve creating overlays and thus this is not (expected to be) an issue. --- lisp/org-latex-preview.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lisp/org-latex-preview.el b/lisp/org-latex-preview.el index d5223446a..e278232e6 100644 --- a/lisp/org-latex-preview.el +++ b/lisp/org-latex-preview.el @@ -668,7 +668,8 @@ If an org-latex-overlay is already present, nothing is done." 'org-latex-overlay)) (when-let* ((element (org-element-context)) ((eq (org-element-type element) type)) - (elem-beg (org-element-property :begin element)) + (elem-beg (or (org-element-property :post-affiliated element) + (org-element-property :begin element))) (elem-end (- (org-element-property :end element) (or (org-element-property :post-blank element) 0) (if (eq (char-before (org-element-property :end element)) @@ -1044,7 +1045,8 @@ Some of the options can be changed using the variable (entries (mapcar (lambda (element) - (list (org-element-property :begin element) + (list (or (org-element-property :post-affiliated element) + (org-element-property :begin element)) (- (org-element-property :end element) (or (org-element-property :post-blank element) 0) (if (eq (char-before (org-element-property :end element)) @@ -1957,7 +1959,8 @@ the *entire* preview cache will be cleared, and `org-persist-gc' run." (and org-latex-preview-numbered (org-latex-preview--environment-numbering-table)))) (dolist (element (org-latex-preview-collect-fragments beg end)) - (pcase-let* ((begin (org-element-property :begin element)) + (pcase-let* ((begin (or (org-element-property :post-affiliated element) + (org-element-property :begin element))) (`(,fg ,bg) (org-latex-preview--colors-at begin)) (value (org-element-property :value element)) (number (and numbering-table