summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/ChangeLog4
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/textmodes/tex-mode.el34
3 files changed, 47 insertions, 2 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index d8ba4fb60db..7024efa1967 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
+2007-09-28 Glenn Morris <rgm@gnu.org>
+
+ * PROBLEMS: Mention Tex superscript font issue.
+
2007-09-25 Johannes Weiner <hannes@saeurebad.de>
* NEWS: Fix typo.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index babc7ac209d..2023fa93c4e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
+2007-09-28 Glenn Morris <rgm@gnu.org>
+
+ * mail/supercite.el (sc-attribs-filter-namelist): Use mapc rather
+ than mapcar.
+
+ * textmodes/tex-mode.el (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.
+
2007-09-27 Juanma Barranquero <lekktu@gmail.com>
* progmodes/python.el (python-eldoc-function): Doc fix.
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 110351a6a60..8b1538e8ec3 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -676,12 +676,42 @@ An alternative value is \" . \", if you use a font with a narrow period."
(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)