GNU bug report logs - #67269
30.0.50; italic face fallback does not assume italic properties

Previous Next

Package: emacs;

Reported by: Po Lu <luangruo <at> yahoo.com>

Date: Sun, 19 Nov 2023 06:02:01 UTC

Severity: normal

Tags: notabug

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 67269 <at> debbugs.gnu.org
Subject: bug#67269: 30.0.50; italic face fallback does not assume italic properties
Date: Mon, 20 Nov 2023 13:55:10 +0200
> From: Po Lu <luangruo <at> yahoo.com>
> Cc: 67269 <at> debbugs.gnu.org
> Date: Mon, 20 Nov 2023 08:22:35 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > Then maybe we should change the default fontset's definition on
> > Android (if those are the systems you have in mind).  We already do
> > that for w32, see w32-standard-fontset-spec as opposed to
> > standard-fontset-spec.
> 
> The systems I have in mind aren't only Android: Noto Sand Mono is the
> default (or only) Monospace font on many GNU/Linux systems as well, and
> I've also witnessed DejaVu Sans Mono being installed without an Italic
> variant.

If so, then it is strange that we haven't heard about this issue
before.

Maybe we should do something like the below, and leave the rest to end
users and downstream distros.

> > I don't understand how shr-tag-i is relevant.  I'm probably missing
> > something.
> 
> It combines a variable pitch face with italic, and so loses when the
> italic face doesn't support slant properties, even if the variable pitch
> one does.

Yes, you already said that in your original message.  I thought
shr-tag-i provides some additional insight.

diff --git a/lisp/faces.el b/lisp/faces.el
index 7eacc40..8eaabbf 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -2440,7 +2440,10 @@ italic
   '((((supports :slant italic))
      :slant italic)
     (((supports :underline t))
-     :underline t)
+     ;; Include italic, even if it isn't supported by the default
+     ;; font, because this face could be merged with another face
+     ;; which uses font that does have an italic variant.
+     :underline t :slant italic)
     (t
      ;; Default to italic, even if it doesn't appear to be supported,
      ;; because in some cases the display engine will do its own
@@ -2457,7 +2460,9 @@ bold-italic
 (defface underline
   '((((supports :underline t))
      :underline t)
-    (((supports :weight bold))
+    ;; Include underline, for when this face is merged with another
+    ;; whose font does support underline.
+    (((supports :weight bold :underline t))
      :weight bold)
     (t :underline t))
   "Basic underlined face."




This bug report was last modified 1 year and 258 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.