Subject: Re: bug#39264: 26.3; (frame-char-width) is different from real char width of monospace font 'Noto Sans Mono'
From: Stefan Kangas <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Mon, 10 Feb 2020 16:36:26 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:

> tags 39264 notabug
> thanks
>
>> From: [email-masked]
>> Date: Fri, 24 Jan 2020 23:55:42 +0900
>> 
>> I installed Noto fonts.
>> With setting frame font to "Noto Sans Mono", which is a monospace font,
>> (frame-char-width) and the real char width may differ.
>> 
>> For example, using "Noto Sans Mono-13", (frame-char-width) is one pixel larger.
>>   (progn
>>     (set-frame-font "Noto Sans Mono-13")
>>     (list (frame-char-width) (car (window-text-pixel-size nil 1 2))))
>>   => (11 10)
>
> This is not a bug.  frame-char-width returns the value of the font's
> "average width" attribute, whereas window-text-pixel-size actually
> performs the layout of the specified text, simulating its display, and
> measures the result.  Thus, the values can differ, although for
> monospaced fonts they cannot (or should not) differ by too much.
>
> The upshot of this is that you cannot really perform accurate layout
> calculations from Lisp, at least not easily.  There's no way around
> this basic difficulty.

I'm consequently also closing this bug report.

Best regards,
Stefan Kangas