From b13b3e30d75acbe4fd32ad5b4a88a967ba203868 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 12 Nov 2011 15:04:19 +0100 Subject: [PATCH] Allow cdlatex expansions at a list item or an headline * lisp/org.el (org-try-cdlatex-tab): Don't try to expand a LaTeX environment when at an item or an headline, but allow LaTeX fragments. (org-cycle): Try to call `cdlatex-tab' before cycling item's or headline's visibility, in order to catch LaTeX fragments within. This patch is based on the report and work of Maik Beckmann. --- lisp/org.el | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 9f5754d32..8b33cf612 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -6144,6 +6144,8 @@ in special contexts. (or (bolp) (not (eq org-cycle-emulate-tab 'exc-hl-bol)))) (org-inlinetask-toggle-visibility)) + ((org-try-cdlatex-tab)) + ;; At an item/headline: delegate to `org-cycle-internal-local'. ((and (or (and org-cycle-include-plain-lists (org-at-item-p)) (save-excursion (beginning-of-line 1) @@ -6159,8 +6161,6 @@ in special contexts. ((org-try-structure-completion)) - ((org-try-cdlatex-tab)) - ((run-hook-with-args-until-success 'org-tab-before-tab-emulation-hook)) @@ -16563,14 +16563,16 @@ It makes sense to do so if `org-cdlatex-mode' is active and if the cursor is insert a LaTeX environment." (when org-cdlatex-mode (cond + ;; Before any word on the line: No expansion possible. + ((save-excursion (skip-chars-backward " \t") (bolp)) nil) + ;; Just after first word on the line: Expand it. Make sure it + ;; cannot happen on headlines, though. ((save-excursion (skip-chars-backward "a-zA-Z0-9*") (skip-chars-backward " \t") - (bolp)) + (and (bolp) (not (org-at-heading-p)))) (cdlatex-tab) t) - ((org-inside-LaTeX-fragment-p) - (cdlatex-tab) t) - (t nil)))) + ((org-inside-LaTeX-fragment-p) (cdlatex-tab) t)))) (defun org-cdlatex-underscore-caret (&optional arg) "Execute `cdlatex-sub-superscript' in LaTeX fragments.