소스 검색

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 년 전
부모
커밋
1425a86ae7
1개의 변경된 파일14개의 추가작업 그리고 5개의 파일을 삭제
  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))