From 1a61c446fa1c92df9ba28a68d13188c296b8b718 Mon Sep 17 00:00:00 2001 From: rasmus Date: Tue, 10 Feb 2015 12:02:59 +0100 Subject: [PATCH] org.el: Change indention for cdlatex environments * org.el (org-cdlatex-environment-indent): Use different indent algorithm based on content above the new latex-environment. --- lisp/org.el | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 9bc67a8..e0a8842 100755 --- a/lisp/org.el +++ b/lisp/org.el @@ -18647,10 +18647,24 @@ Revert to the normal definition outside of these fragments." (defun org-cdlatex-environment-indent (&optional environment item) "Execute `cdlatex-environment' and indent the inserted environment." (interactive) - (cdlatex-environment environment item) - (let ((element (org-element-at-point))) - (org-indent-region (org-element-property :begin element) - (org-element-property :end element)))) + (let* ((ind (org-get-indentation)) + (ind-str (make-string ind ? ))) + (cdlatex-environment environment item) + (let* ((element (org-element-at-point)) + (beg (org-element-property :begin element)) + (end (org-element-property :end element))) + ;; Make a rough estimate of the indention. We do this to + ;; because `org-indent-region' will always guess column zero, + ;; when dealing with e.g. description items. + (save-excursion + ;; Walk backwards. Otherwise we'd need markers. + (goto-char end) + (beginning-of-line) + (while (>= (point) beg) + (insert ind-str) + (forward-line -1))) + ;; indent cursor + (forward-char ind)))) ;;;; LaTeX fragments -- 2.3.0