From: Lars Ingebrigtsen <larsi@gnus.org>
Date: Sat, 20 Nov 2021 10:42:38 +0000 (+0100)
Subject: Make shr render text with superscripts prettier
X-Git-Tag: emacs-29.0.90~2852^2~166
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4351722477cda59d88e5b1a90aa92cd6902021a8;p=emacs.git

Make shr render text with superscripts prettier

* lisp/net/shr.el (shr-sup): New face.
(shr-tag-sup, shr-tag-sub): Use it to make the super/subscripts
slightly smaller so that we don't get uneven line heights with
text that uses these.
---

diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 5a36f19c5f1..87bacd4fbf8 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -183,6 +183,11 @@ temporarily blinks with this face."
   "Face for <abbr> elements."
   :version "27.1")
 
+(defface shr-sup
+  '((t :height 0.8))
+  "Face for <sup> and <sub> elements."
+  :version "29.1")
+
 (defface shr-h1
   '((t :height 1.3 :weight bold))
   "Face for <h1> elements."
@@ -1464,12 +1469,14 @@ ones, in case fg and bg are nil."
 (defun shr-tag-sup (dom)
   (let ((start (point)))
     (shr-generic dom)
-    (put-text-property start (point) 'display '(raise 0.2))))
+    (put-text-property start (point) 'display '(raise 0.2))
+    (add-face-text-property start (point) 'shr-sup)))
 
 (defun shr-tag-sub (dom)
   (let ((start (point)))
     (shr-generic dom)
-    (put-text-property start (point) 'display '(raise -0.2))))
+    (put-text-property start (point) 'display '(raise -0.2))
+    (add-face-text-property start (point) 'shr-sup)))
 
 (defun shr-tag-p (dom)
   (shr-ensure-paragraph)