[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[AUCTeX-diffs] [elpa] externals/auctex 4c42f7a 25/57: Revert "Remove mul
From: |
Tassilo Horn |
Subject: |
[AUCTeX-diffs] [elpa] externals/auctex 4c42f7a 25/57: Revert "Remove multi-level/invisible feature of font-latex-fontify-script" |
Date: |
Wed, 11 Jan 2017 18:01:39 +0000 (UTC) |
branch: externals/auctex
commit 4c42f7a54dc7ab1e405a23c964eccc67cc49f359
Author: Tassilo Horn <address@hidden>
Commit: Tassilo Horn <address@hidden>
Revert "Remove multi-level/invisible feature of font-latex-fontify-script"
This reverts commit ccec8501960a448dd8faccaae54dfd9839a37c30.
---
doc/auctex.texi | 15 ++++++++++++---
font-latex.el | 57 +++++++++++++++++++++++++++++++++++++++++++++----------
2 files changed, 59 insertions(+), 13 deletions(-)
diff --git a/doc/auctex.texi b/doc/auctex.texi
index 3c3c293..e371899 100644
--- a/doc/auctex.texi
+++ b/doc/auctex.texi
@@ -2196,9 +2196,18 @@ variables @code{font-latex-fontify-script} and
If non-nil, fontify subscript and superscript strings. Concretely, this
means that the scripts are raised or lowered.
-Note that this feature is not available on XEmacs, for which it is
-disabled per default. In GNU Emacs raising and lowering is not enabled
-for versions 21.3 and before due to it working not properly.
+Another possiblity is setting this variable to the symbol
address@hidden In this case, in a formula @code{x^y^z}, y is
+raised above x, and z is raised above y. With many script levels, the
+text might become too small to be readable.
+
+Lastly, you can set this variable to @code{invisible} whose behavior is
+like @code{multi-level}, and in addition the super-/subscript characters
address@hidden and @code{_} are not displayed.
+
+Note that this feature is not available on XEmacs, for which
+it is disabled per default. In GNU Emacs raising and lowering is not
+enabled for versions 21.3 and before due to it working not properly.
@end defopt
@defopt font-latex-script-display
diff --git a/font-latex.el b/font-latex.el
index 1e96c00..896c6af 100644
--- a/font-latex.el
+++ b/font-latex.el
@@ -810,7 +810,7 @@ Generated by `font-latex-make-user-keywords'.")))
(add-to-list 'font-latex-keywords-1 item)
(add-to-list 'font-latex-keywords-2 item))
(dolist (item
- '((font-latex-match-math-env
+ `((font-latex-match-math-env
(0 'font-latex-warning-face t t)
(1 'font-latex-math-face append t))
(font-latex-match-math-envII
@@ -818,7 +818,9 @@ Generated by `font-latex-make-user-keywords'.")))
(font-latex-match-simple-command
(0 'font-latex-sedate-face append))
(font-latex-match-script
- (1 (font-latex-script (match-beginning 0)) append))))
+ (1 (font-latex-script (match-beginning 0)) append))
+ (font-latex-match-script-chars
+ (0 '(face font-latex-math-face invisible t)))))
(add-to-list 'font-latex-keywords-2 item t)))
(font-latex-make-user-keywords)
@@ -850,10 +852,28 @@ locking machinery will be triggered."
(defcustom font-latex-fontify-script (not (featurep 'xemacs))
"If non-nil, fontify subscript and superscript strings.
-This feature does not work in XEmacs."
- :type 'boolean
+This feature does not work in XEmacs.
+
+By default, super/subscripts are raised/lowered if this variable
+is non-nil. This fontification only affects one level of
+scripts, e.g., in x^{y^z}, the y and the z have the same size and
+are equally raised over x.
+
+If this variable is set to the symbol `multi-level', then y is
+raised above x, and z is raised above y. With many script
+levels, the text might become too small to be readable.
+
+If this variable is set to the symbol `invisible', then the
+effect is essentially like `multi-level' but additionally the
+script operators ^ and _ are not displayed."
+ :type '(choice (boolean :tag "Enabled")
+ (const :tag "Multiple levels" multi-level)
+ (const :tag "Hide ^ and _" invisible))
:group 'font-latex)
-(put 'font-latex-fontify-script 'safe-local-variable #'booleanp)
+(put 'font-latex-fontify-script 'safe-local-variable
+ (lambda (val)
+ (or (TeX-booleanp val)
+ (memq val '(multi-level invisible)))))
(defcustom font-latex-script-display '((raise -0.3) . (raise 0.3))
"Display specification for subscript and superscript content.
@@ -1895,11 +1915,12 @@ END marks boundaries for searching for quotation ends."
(when (and font-latex-fontify-script
(re-search-forward "[_^] *\([^
\{}]\|\
\\\(address@hidden|[^
]\)\|\({\)\)" limit t))
- (if (font-latex-faces-present-p '(font-latex-subscript-face
- font-latex-superscript-face))
- ;; Apply subscript and superscript highlighting only once in order to
- ;; prevent the font size becoming too small. We set an empty match to
- ;; do that.
+ (if (and (not (memq font-latex-fontify-script '(multi-level invisible)))
+ (font-latex-faces-present-p '(font-latex-subscript-face
+ font-latex-superscript-face)))
+ ;; Apply subscript and superscript highlighting only once (in case
+ ;; font-latex-fontify-script is not 'multi-level) in order to prevent
+ ;; the font size becoming too small. We set an empty match to do that.
(let ((point (point)))
(store-match-data (list point point point point)))
(when (match-end 3)
@@ -1914,6 +1935,22 @@ END marks boundaries for searching for quotation ends."
(list beg beg beg beg))))))
t))
+(defun font-latex-match-script-chars (limit)
+ (and (eq font-latex-fontify-script 'invisible)
+ (re-search-forward "[_^]" limit t)
+ (let ((pos (match-beginning 0)))
+ (and (font-latex-faces-present-p 'font-latex-math-face pos)
+ (not (font-latex-faces-present-p '(font-lock-constant-face
+ font-lock-builtin-face
+ font-lock-comment-face
+ font-latex-verbatim-face) pos))
+ ;; Check for backslash quoting
+ (not (let ((odd nil)
+ (pos pos))
+ (while (eq (char-before pos) ?\)
+ (setq pos (1- pos) odd (not odd)))
+ odd))))))
+
;; Copy and adaption of `tex-font-lock-suscript' from tex-mode.el in
;; GNU Emacs on 2004-07-07.
(defun font-latex-script (pos)
- [AUCTeX-diffs] [elpa] externals/auctex updated (a580432 -> 3dca7c4), Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 061aaf5 03/57: Mention improvements to `LaTeX-array-count-columns' in news, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex def20e7 05/57: Make AUCTeX and RefTeX aware of file loading macro \subfile, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex ac02ed2 02/57: Extend test for new column counting code with style files loaded, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 89ea0e4 19/57: Fix name of macros \lcnamecref and \lcnamecrefs, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 4747c24 29/57: Simple docfix, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 4c42f7a 25/57: Revert "Remove multi-level/invisible feature of font-latex-fontify-script",
Tassilo Horn <=
- [AUCTeX-diffs] [elpa] externals/auctex 1addc62 30/57: Use RefTeX for multiple citations in biblatex, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 0b16551 51/57: * Makefile.in (release-commit): Use UTF-8 coding for ChangeLog entry., Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 0766526 41/57: Don't use cl function copy-list, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex a181b14 55/57: ; make change-history-commit, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 61e56f2 40/57: Fix bug where font-latex-sub/superscript-face was not applied to ^_, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex bc47cb0 39/57: Fontify script characters with a new face, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex bef4873 22/57: Set `reftex-set-cite-format' to biblatex or natbib, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 1de2359 13/57: Add new style/titlesec.el, Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 01da194 23/57: ; * style/titletoc.el ("titletoc"): Use `TeX-arg-length'., Tassilo Horn, 2017/01/11
- [AUCTeX-diffs] [elpa] externals/auctex 69fc320 27/57: Add a newline only if \label is inserted, Tassilo Horn, 2017/01/11