Browse Source

org.el: With an active region, act with latex-preview

* lisp/org.el (org-latex-preview): With an active region, display
images for all fragments in the region. With universal prefix
argument, remove all images in the region.
Sébastien Miquel 3 years ago
parent
commit
1425a86ae7
1 changed files with 14 additions and 5 deletions
  1. 14 5
      lisp/org.el

+ 14 - 5
lisp/org.el

@@ -15316,7 +15316,8 @@ BEG and END are buffer positions."
 If the cursor is on a LaTeX fragment, create the image and
 If the cursor is on a LaTeX fragment, create the image and
 overlay it over the source code, if there is none.  Remove it
 overlay it over the source code, if there is none.  Remove it
 otherwise.  If there is no fragment at point, display images for
 otherwise.  If there is no fragment at point, display images for
-all fragments in the current section.
+all fragments in the current section.  With an active region,
+display images for all fragments in the region.
 
 
 With a `\\[universal-argument]' prefix argument ARG, clear images \
 With a `\\[universal-argument]' prefix argument ARG, clear images \
 for all fragments
 for all fragments
@@ -15344,10 +15345,18 @@ fragments in the buffer."
    ;; Clear current section.
    ;; Clear current section.
    ((equal arg '(4))
    ((equal arg '(4))
     (org-clear-latex-preview
     (org-clear-latex-preview
-     (if (org-before-first-heading-p) (point-min)
-       (save-excursion
-	 (org-with-limited-levels (org-back-to-heading t) (point))))
-     (org-with-limited-levels (org-entry-end-position))))
+     (if (use-region-p)
+         (region-beginning)
+       (if (org-before-first-heading-p) (point-min)
+         (save-excursion
+	   (org-with-limited-levels (org-back-to-heading t) (point)))))
+     (if (use-region-p)
+         (region-end)
+       (org-with-limited-levels (org-entry-end-position)))))
+   ((use-region-p)
+    (message "Creating LaTeX previews in region...")
+    (org--latex-preview-region (region-beginning) (region-end))
+    (message "Creating LaTeX previews in region... done."))
    ;; Toggle preview on LaTeX code at point.
    ;; Toggle preview on LaTeX code at point.
    ((let ((datum (org-element-context)))
    ((let ((datum (org-element-context)))
       (and (memq (org-element-type datum) '(latex-environment latex-fragment))
       (and (memq (org-element-type datum) '(latex-environment latex-fragment))