# HG changeset patch # User Glenn Morris # Date 1190950151 0 # Node ID ca3cf0871ecb80f02994ad607a0fb7dd0ae55cd2 # Parent ac461e78456bcff877b6d9148a94e727b151ce2b (tex-suscript-height-ratio, tex-suscript-height-minimum): New customizable variables. (tex-suscript-height): New function. (superscript, subscript): Set height using tex-suscript-height rather than fixing at 0.8. diff -r ac461e78456b -r ca3cf0871ecb lisp/textmodes/tex-mode.el --- a/lisp/textmodes/tex-mode.el Fri Sep 28 03:27:02 2007 +0000 +++ b/lisp/textmodes/tex-mode.el Fri Sep 28 03:29:11 2007 +0000 @@ -676,12 +676,42 @@ (put-text-property beg next 'display nil)) (setq beg next)))) +(defcustom tex-suscript-height-ratio 0.8 + "Ratio of subscript/superscript height to that of the preceding text. +In nested subscript/superscript, this factor is applied repeatedly, +subject to the limit set by `tex-suscript-height-minimum'." + :type 'float + :group 'tex + :version "23.1") + +(defcustom tex-suscript-height-minimum 0.0 + "Integer or float limiting the minimum size of subscript/superscript text. +An integer is an absolute height in units of 1/10 point, a float +is a height relative to that of the default font. Zero means no minimum." + :type '(choice (integer :tag "Integer height in 1/10 point units") + (float :tag "Fraction of default font height")) + :group 'tex + :version "23.1") + +(defun tex-suscript-height (height) + "Return the integer height of subscript/superscript font in 1/10 points. +Not smaller than the value set by `tex-suscript-height-minimum'." + (ceiling (max (if (integerp tex-suscript-height-minimum) + tex-suscript-height-minimum + ;; For bootstrapping. + (condition-case nil + (* tex-suscript-height-minimum + (face-attribute 'default :height)) + (error 0))) + ;; NB assumes height is integer. + (* height tex-suscript-height-ratio)))) + (defface superscript - '((t :height 0.8)) ;; :raise 0.2 + '((t :height tex-suscript-height)) ;; :raise 0.2 "Face used for superscripts." :group 'tex) (defface subscript - '((t :height 0.8)) ;; :raise -0.2 + '((t :height tex-suscript-height)) ;; :raise -0.2 "Face used for subscripts." :group 'tex)