From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Vincent Lefevre Newsgroups: gmane.emacs.bugs Subject: bug#29078: 25.2; font issue with FreeType 2.8; should not use the rounded ascender and descender Date: Mon, 18 Nov 2019 19:15:27 +0100 Message-ID: <20191118181527.GA1940@cventin.lip.ens-lyon.fr> References: <87d153pqw0.fsf@cventin.lip.ens-lyon.fr> <87ftinaq1h.fsf@gnus.org> <20191118074714.GB27349@zira.vinc17.org> <83d0dp42nx.fsf@gnu.org> <20191118160441.GD2742@cventin.lip.ens-lyon.fr> <83pnhp2jse.fsf@gnu.org> <20191118172333.GE2742@cventin.lip.ens-lyon.fr> <83lfsd2hwu.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="OgqxwSJOaUobr8KG" Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="240777"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.12.1+19 (078654a4) vl-117499 (2019-06-15) Cc: larsi@gnus.org, 29078@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Nov 18 19:16:18 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iWlZR-0010Qg-Pf for geb-bug-gnu-emacs@m.gmane.org; Mon, 18 Nov 2019 19:16:18 +0100 Original-Received: from localhost ([::1]:38032 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iWlZQ-0007SI-Bf for geb-bug-gnu-emacs@m.gmane.org; Mon, 18 Nov 2019 13:16:16 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37094) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iWlZE-0007Ne-S5 for bug-gnu-emacs@gnu.org; Mon, 18 Nov 2019 13:16:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iWlZC-00056c-HL for bug-gnu-emacs@gnu.org; Mon, 18 Nov 2019 13:16:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:37390) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iWlZC-00056T-C4 for bug-gnu-emacs@gnu.org; Mon, 18 Nov 2019 13:16:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iWlZC-0008ID-4d for bug-gnu-emacs@gnu.org; Mon, 18 Nov 2019 13:16:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Vincent Lefevre Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 18 Nov 2019 18:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 29078 X-GNU-PR-Package: emacs Original-Received: via spool by 29078-submit@debbugs.gnu.org id=B29078.157410094031842 (code B ref 29078); Mon, 18 Nov 2019 18:16:02 +0000 Original-Received: (at 29078) by debbugs.gnu.org; 18 Nov 2019 18:15:40 +0000 Original-Received: from localhost ([127.0.0.1]:46211 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iWlYp-0008HW-TJ for submit@debbugs.gnu.org; Mon, 18 Nov 2019 13:15:40 -0500 Original-Received: from cventin.lip.ens-lyon.fr ([140.77.13.17]:41404) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iWlYi-0008HI-Oz for 29078@debbugs.gnu.org; Mon, 18 Nov 2019 13:15:36 -0500 Original-Received: from vlefevre by cventin.lip.ens-lyon.fr with local (Exim 4.93-RC3) (envelope-from ) id 1iWlYd-0000zs-JH; Mon, 18 Nov 2019 19:15:27 +0100 Content-Disposition: inline In-Reply-To: <83lfsd2hwu.fsf@gnu.org> X-Mailer-Info: https://www.vinc17.net/mutt/ X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:171926 Archived-At: --OgqxwSJOaUobr8KG Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit On 2019-11-18 19:50:09 +0200, Eli Zaretskii wrote: > > Date: Mon, 18 Nov 2019 18:23:33 +0100 > > From: Vincent Lefevre > > Cc: larsi@gnus.org, 29078@debbugs.gnu.org > > > > AFAIK, from the font description (which does not involve rounding), > > there is no gap (that's why the FreeType developers suggested not > > to use the rounded values). Moreover, it does not make much sense > > to insert a gap. This looks ugly and this wastes screen space. > > Emacs doesn't insert any gaps, it just computes the line metrics from > all the characters displayed on that line. There are different ways to do the computation, and due to the rounded values, they give different results. Compared to the cell height, there is a gap. When I analyzed the issue with xterm, I could find that with the rounded metrics, height < ascent + descent (while this is an equality with the unrounded metrics). > I've read the discussions of the FreeType developers, but couldn't > understand what they were talking about, as the discussion was in > terms of internals of FreeType, and I don't know enough to map that to > what the Emacs display engine does. > > My point is that this seems to have nothing to do with the FreeType > library or its version, The issue appeared just after upgrading FreeType from 2.6 to 2.8, and the FreeType developers said this was because they changed the rounding rules for ttf fonts. > since I see the same on a system that uses neither FreeType nor this > particular font. IOW, this looks to me "normal", i.e. Emacs always > worked like that. Of course, if you change the font, you may see something different. I've attached what I get with the fixed bitmap font. As you can see, there is no gap, and this is the expected rendering (with bitmap fonts, there are no rounding issues, thus what is shown is as designed). -- Vincent Lefèvre - Web: 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon) --OgqxwSJOaUobr8KG Content-Type: image/png Content-Disposition: attachment; filename="fixed.png" Content-Transfer-Encoding: base64 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 QmCC --OgqxwSJOaUobr8KG--