GNU bug report logs - #53664
26.3; Doc of the font of a given face

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Mon, 31 Jan 2022 15:58:02 UTC

Severity: wishlist

Found in version 26.3

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 53664 in the body.
You can then email your comments to 53664 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#53664; Package emacs. (Mon, 31 Jan 2022 15:58:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Drew Adams <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 31 Jan 2022 15:58:02 GMT) Full text and rfc822 format available.

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

From: Drew Adams <drew.adams <at> oracle.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: 26.3; Doc of the font of a given face
Date: Mon, 31 Jan 2022 15:57:23 +0000
The Elisp manual doc about the font(s) of a given face is clear, if you
read it carefully and completely.  But it could be a bit more clear, in
particular when it comes to a face having more than one font.  This can
happen if attribute :font is a fontset.  But a face has only one :font
attribute, and by itself the name :font can be a bit misleading.

The description of function `face-font'says that the same face can use
different fonts for different chars, but it starts by talking about "the
font":

  This function returns the name of the font of face FACE.
                                    ^^^^^^^^

  ... the font name used for CHARACTER.
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

That first sentence can mislead.  Maybe say something like "the font of
FACE for a given character, or for all characters if its :font attribute
is not a fontset"?

The description doesn't say anything about fontsets currently.  Maybe it
should, to make the relation clear here.  Maybe we could add something
like this?

  The name of FACE can be different for different chars if the :font
  attribute for FACE is a fontset.

Other parts of the doc about faces:

 ':font'
   The font used to display the face.
   ^^^^^^^^
   Its value should be a font object or a fontset.

It might help to put that info in the first line:

   The font or fontset used to display the face.

The description of `set-face-font' says that it sets the :font
attribute, which is correct, and if you consult the doc for that
attribute you find that the value could be a fontset.  But it might
help if the description of `set-face-font' said something like this:

   This sets the :font attribute of FACE to FONT, which is a font or a
   fontset.

In GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)
 of 2019-08-29
Repository revision: 96dd0196c28bc36779584e47fffcca433c9309cd
Windowing system distributor `Microsoft Corp.', version 10.0.19043
Configured using:
 `configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static -g3''





Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Mon, 31 Jan 2022 17:42:02 GMT) Full text and rfc822 format available.

Notification sent to Drew Adams <drew.adams <at> oracle.com>:
bug acknowledged by developer. (Mon, 31 Jan 2022 17:42:02 GMT) Full text and rfc822 format available.

Message #10 received at 53664-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 53664-done <at> debbugs.gnu.org
Subject: Re: bug#53664: 26.3; Doc of the font of a given face
Date: Mon, 31 Jan 2022 19:41:05 +0200
> From: Drew Adams <drew.adams <at> oracle.com>
> Date: Mon, 31 Jan 2022 15:57:23 +0000
> 
> The Elisp manual doc about the font(s) of a given face is clear, if you
> read it carefully and completely.  But it could be a bit more clear, in
> particular when it comes to a face having more than one font.

Note: A face always has more than one font: if the user didn't specify
a fontset, Emacs will use the default fontset for characters that
cannot be displayed by the face's font.

> The description of function `face-font'says that the same face can use
> different fonts for different chars, but it starts by talking about "the
> font":
> 
>   This function returns the name of the font of face FACE.
>                                     ^^^^^^^^
> 
>   ... the font name used for CHARACTER.
>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> That first sentence can mislead.  Maybe say something like "the font of
> FACE for a given character, or for all characters if its :font attribute
> is not a fontset"?

The description of the function in the manual is quite short, and we
expect the readers to read it in its entirety, not just the first
sentence.  It is customary in our documentation to start with
describing the default behavior, and  only go into the details of
non-default one later -- this usually makes the description clearer
and easier to understand for the usual case.

So I didn't make the first sentence fuzzier, but instead fixed the
description of how CHARACTER arg is used (because it was inaccurate).

> The description doesn't say anything about fontsets currently.  Maybe it
> should, to make the relation clear here.  Maybe we could add something
> like this?
> 
>   The name of FACE can be different for different chars if the :font
>   attribute for FACE is a fontset.

That is incorrect: fontsets don't affect face names.  Maybe you meant
FONT instead of FACE, but then this just repeats what the
documentation already says in other words.

> Other parts of the doc about faces:
> 
>  ':font'
>    The font used to display the face.
>    ^^^^^^^^
>    Its value should be a font object or a fontset.
> 
> It might help to put that info in the first line:
> 
>    The font or fontset used to display the face.

I'd rather not go there.  What exactly happens when you specify a
fontset for the :font attribute is complicated, and doesn't really do
what you think it does.  I did add there a note that if the value is a
font, it's for ASCII characters.

> The description of `set-face-font' says that it sets the :font
> attribute, which is correct, and if you consult the doc for that
> attribute you find that the value could be a fontset.  But it might
> help if the description of `set-face-font' said something like this:
> 
>    This sets the :font attribute of FACE to FONT, which is a font or a
>    fontset.

I don't want to advertise this possibility, it wasn't supposed to be
used by applications.

And with that, I'm closing this bug report.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 01 Mar 2022 12:24:08 GMT) Full text and rfc822 format available.

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

Previous Next


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