GNU bug report logs - #46853
Confusing terminology "face height" instead of "font size"

Previous Next

Package: emacs;

Reported by: Stefan Kangas <stefan <at> marxist.se>

Date: Mon, 1 Mar 2021 16:41:01 UTC

Severity: wishlist

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #68 received at 46853 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 46853 <at> debbugs.gnu.org, larsi <at> gnus.org
Subject: Re: bug#46853: Confusing terminology "face height" instead of "font
 size"
Date: Thu, 04 Mar 2021 15:46:08 +0200
> From: Stefan Kangas <stefan <at> marxist.se>
> Date: Wed, 3 Mar 2021 18:16:02 -0600
> Cc: 46853 <at> debbugs.gnu.org
> 
> >> and then `C-x C-+' in the buffer enlarges all the faces, even
> >> variable-pitch...
> >
> > It only enlarges those faces which inherit their size from 'default'.
> 
> I find the semantics here confusing.  I do this in emacs -Q:
> 
>     (progn
>       (defface foo-bar '((t :weight bold)) "foo")
>       (pop-to-buffer (get-buffer-create "foo"))
>       (insert "aaa " (propertize "bbb" 'face 'foo-bar) " ccc")
>       (text-scale-adjust 3))
> 
> And I see that "bbb" has its font size increased together with "aaa" and
> "ccc".  But `M-x describe-face RET foo-bar' says that "Inherit:
> unspecified".

All the faces implicitly inherit from 'default'.

> Looking at the manual, the node `(elisp) Basic Faces' says:
> 
>     ‘default’
>          The default face, whose attributes are all specified.  All other
>          faces implicitly inherit from it: any unspecified attribute
>          defaults to the attribute on this face (*note Face Attributes::).

Exactly.

> So when you say that "it only enlarges those faces which inherit their
> size from 'default'", doesn't that just mean that *any* face is resized,
> unless that face itself or any its parents specify an absolute :height
> (an integer)?

No, it doesn't have to be an absolute :height attribute.  It can also
be:

  . a face that inherits from a face other than 'default', which has
    an absolute :height attribute
  . a face that specifies a relative :height attribute and inherits
    from a face other than 'default that specifies an absolute :height
  . any other situation where a face recursively inherits from some
    other face with a non-default absolute :height




This bug report was last modified 3 years and 56 days ago.

Previous Next


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