From unknown Mon Jun 23 16:44:20 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#20628 <20628@debbugs.gnu.org> To: bug#20628 <20628@debbugs.gnu.org> Subject: Status: 25.0.50; Incorrect line height for some fonts Reply-To: bug#20628 <20628@debbugs.gnu.org> Date: Mon, 23 Jun 2025 23:44:20 +0000 retitle 20628 25.0.50; Incorrect line height for some fonts reassign 20628 emacs submitter 20628 Cl=C3=A9ment Pit--Claudel severity 20628 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Thu May 21 23:02:30 2015 Received: (at submit) by debbugs.gnu.org; 22 May 2015 03:02:31 +0000 Received: from localhost ([127.0.0.1]:52474 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvdED-0007ie-Sm for submit@debbugs.gnu.org; Thu, 21 May 2015 23:02:30 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33210) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvdEA-0007iQ-H5 for submit@debbugs.gnu.org; Thu, 21 May 2015 23:02:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YvdE3-0003Uv-Rw for submit@debbugs.gnu.org; Thu, 21 May 2015 23:02:21 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:59267) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YvdE3-0003Ur-PD for submit@debbugs.gnu.org; Thu, 21 May 2015 23:02:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46715) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YvdE2-0004c4-7K for bug-gnu-emacs@gnu.org; Thu, 21 May 2015 23:02:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YvdDx-0003TV-7j for bug-gnu-emacs@gnu.org; Thu, 21 May 2015 23:02:18 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:64912) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YvdDw-0003TJ-Vk for bug-gnu-emacs@gnu.org; Thu, 21 May 2015 23:02:13 -0400 Received: from [18.189.125.138] ([18.189.125.138]) by mrelayeu.kundenserver.de (mreue101) with ESMTPSA (Nemesis) id 0MgfcV-1YYJD341IN-00O0rd for ; Fri, 22 May 2015 05:02:12 +0200 Message-ID: <555E9C2E.8040008@live.com> Date: Thu, 21 May 2015 23:02:06 -0400 From: =?UTF-8?B?Q2zDqW1lbnQgUGl0LS1DbGF1ZGVs?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: bug-gnu-emacs@gnu.org Subject: 25.0.50; Incorrect line height for some fonts Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:ZwlEpDyqUnT2+22KwFZog1vYAmQaivQlUkL4qw+NK3wNMENTe84 5N8ruUwtg2XCrDM0gdRUrl/HPIHuV7dKtH5ip1NiIaWqT625BiQlgCjiOJQXOF9/hBBoSna No2enGpIrkql+XuXTlkXYV2d3Jg8butmhRrUDr/xgpiYrIFA9jPONJCLnIBvo/JZqO/brE/ uU94hm6HrAzy2X2fSE3Kg== X-UI-Out-Filterresults: notjunk:1; X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) Hi, Some Unicode characters incorrectly increase the height of the line on which they are inserted, by an incorrect amount (typically 4/5 times the normal line height). This is due to Emacs falling back to a font for which line height calculations are incorrect. The problem can generally be reproduced just by inputing the following characters: (𝓝𝓟) Alternatively, the problem can be reproduced by switching to certain specific fonts. For example: (set-frame-font "-unknown-Latin Modern Math-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1" nil nil) This problem is not specific to 25.0.50. It is discussed on stackexchange [1] and the effect can be observed in [2]. It only occurs with specific fonts. It particularly impacts packages that rely on prettify-symbols-mode to display math symbols; when users install the package, some lines in the buffer start being 4 or 5 times taller than other lines, although no characters on the affected lines stand out. For this reason, even if this is likely a problem in the way the fonts are packaged, it would be nice to have a workaround at the Emacs level. Emacs is the only program on my system that displays this behaviour; typing the same text in gedit or switching gedit to one of the misbehaving fonts, for example, does not affect the line height. [1] http://emacs.stackexchange.com/questions/251/ [2] https://cloud.githubusercontent.com/assets/2506825/7760973/67ceaaea-ffd5-11e4-8bf6-d796aa162b0e.png --- In GNU Emacs 25.0.50.4 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) of 2015-05-14 on c-mint Windowing system distributor `The X.Org Foundation', version 11.0.11501000 System Description: Linux Mint 17.1 Rebecca Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB Important settings: value of $LC_TIME: en_DK.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message dired format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils mule-util time-date tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 76472 5652) (symbols 48 18496 0) (miscs 40 87 99) (strings 32 11421 4141) (string-bytes 1 314062) (vectors 16 9839) (vector-slots 8 396279 11643) (floats 8 102 46) (intervals 56 177 0) (buffers 976 11) (heap 1024 40850 1039)) From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 03:33:00 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 07:33:00 +0000 Received: from localhost ([127.0.0.1]:52543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvhRz-00067f-RW for submit@debbugs.gnu.org; Fri, 22 May 2015 03:33:00 -0400 Received: from mtaout24.012.net.il ([80.179.55.180]:37556) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvhRu-00067J-2O for 20628@debbugs.gnu.org; Fri, 22 May 2015 03:32:55 -0400 Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0NOQ00G00POGBR00@mtaout24.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 10:24:09 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOQ00FY2PW9CT10@mtaout24.012.net.il>; Fri, 22 May 2015 10:24:09 +0300 (IDT) Date: Fri, 22 May 2015 10:32:46 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <555E9C2E.8040008@live.com> X-012-Sender: halo1@inter.net.il To: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel Message-id: <83617l5aox.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Thu, 21 May 2015 23:02:06 -0400 > From: Clément Pit--Claudel > > > Some Unicode characters incorrectly increase the height of the line on which > they are inserted, by an incorrect amount (typically 4/5 times the normal line > height). This is due to Emacs falling back to a font for which line height > calculations are incorrect. The problem can generally be reproduced just by > inputing the following characters: > > (𝓝𝓟) > > Alternatively, the problem can be reproduced by switching to certain > specific fonts. For example: > > (set-frame-font "-unknown-Latin Modern Math-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1" nil nil) > > This problem is not specific to 25.0.50. It is discussed on stackexchange [1] > and the effect can be observed in [2]. It only occurs with specific fonts. It > particularly impacts packages that rely on prettify-symbols-mode to display math > symbols; when users install the package, some lines in the buffer start being 4 > or 5 times taller than other lines, although no characters on the affected lines > stand out. For this reason, even if this is likely a problem in the way the > fonts are packaged, it would be nice to have a workaround at the Emacs level. > > Emacs is the only program on my system that displays this behaviour; typing the > same text in gedit or switching gedit to one of the misbehaving fonts, for > example, does not affect the line height. I'm sorry, but I don't see the bug here, at least not a bug I know how to fix. Emacs obeys the information about the glyph sizes that the font supplies; if the font says the font glyphs need more vertical space than in the font used for the default face, then Emacs will enlarge line height. What else can it do? In particular, the ugly effect in https://cloud.githubusercontent.com/assets/2506825/7760973/67ceaaea-ffd5-11e4-8bf6-d796aa162b0e.png is most probably caused by using a font whose Math Alphanumerics block specifies a very large vertical space, to accommodate for superscripts, power, integrals, etc. Just switch to a different font which covers the same block without this adverse side effect. So the only way to fix this (if it really can be fixed) is for someone who knows enough about these fonts to explain (a) why the metrics provided by these fonts are incorrect, and (b) what metrics to use instead and how to compute them. Failing that, there's nothing that can be done here, as Emacs behaves as required and as designed. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 06:18:06 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 10:18:06 +0000 Received: from localhost ([127.0.0.1]:52571 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvk1m-0001f7-24 for submit@debbugs.gnu.org; Fri, 22 May 2015 06:18:06 -0400 Received: from mail-wi0-f172.google.com ([209.85.212.172]:33086) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvk1j-0001ea-1H for 20628@debbugs.gnu.org; Fri, 22 May 2015 06:18:03 -0400 Received: by wicmx19 with SMTP id mx19so36246463wic.0 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 03:17:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=LThyqhkShrm/UAa7kPErfSHeJCuVYg7mlsxmItYunMQ=; b=f4ZciV+AKjLxjmUOi7gprn+eX62Id9qPMEFSCNGxTqD0IQHSooSGzTTShVpIDM0cmY eLeUZAS5KoWb8AiL8AbyzPJqN8JDZKDW18CiLmYX10rGY6e7hoLNXx9//jnAWxg98pmg t+wgIxThoDzepEDvF6kNPOntN6p7J0Watav35/ZyVd3Zp6XsWW8aHq3yWc5DXTRyYNxx xx28TLX22MYHABIKApHUPDSGbkpZjWqDW3fNV0cSv7SQbhm3kxWGiokDn6JTlxmrujSO DjUDJBsYQF7ELlOvyaTqZU9DE7B+CBgECKhv4x20DcsliVyX/xibxJTWc5+FnaEezPAh TiPQ== X-Received: by 10.194.191.201 with SMTP id ha9mr13937589wjc.20.1432289877350; Fri, 22 May 2015 03:17:57 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id g15sm6791654wiv.22.2015.05.22.03.17.54 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 03:17:56 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> Date: Fri, 22 May 2015 12:11:40 +0200 In-Reply-To: <83617l5aox.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 10:32:46 +0300") Message-ID: <87pp5s2a77.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > In particular, the ugly effect in > https://cloud.githubusercontent.com/assets/2506825/7760973/67ceaaea-ffd5-= 11e4-8bf6-d796aa162b0e.png > is most probably caused by using a font whose Math Alphanumerics block > specifies a very large vertical space, to accommodate for > superscripts, power, integrals, etc. Just switch to a different font > which covers the same block without this adverse side effect. > > So the only way to fix this (if it really can be fixed) is for someone > who knows enough about these fonts to explain (a) why the metrics > provided by these fonts are incorrect, and (b) what metrics to use > instead and how to compute them. Failing that, there's nothing that > can be done here, as Emacs behaves as required and as designed. I have the same problem with DejaVu: -unknown-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-fontset-a= uto2 which is basically the most popular free font. And yet when I paste a problematic char, like =F0=9D=9D=B9 into gedit, configured also with DejaVu= Sans Mono, there's no issue. So it can be solved, since gedit does it. Oleh From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 08:27:36 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 12:27:36 +0000 Received: from localhost ([127.0.0.1]:52636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvm35-0006Gx-Pe for submit@debbugs.gnu.org; Fri, 22 May 2015 08:27:36 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:33130) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvm30-0006Gg-K9 for 20628@debbugs.gnu.org; Fri, 22 May 2015 08:27:32 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NOR00F003WDY900@a-mtaout22.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:26:48 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00FJW3WOHM70@a-mtaout22.012.net.il>; Fri, 22 May 2015 15:26:48 +0300 (IDT) Date: Fri, 22 May 2015 15:26:47 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87pp5s2a77.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83wq004x2w.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: Clément Pit--Claudel , > 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 12:11:40 +0200 > > I have the same problem with DejaVu: > > -unknown-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-fontset-auto2 > > which is basically the most popular free font. And yet when I paste a > problematic char, like 𝝹 into gedit, configured also with DejaVu Sans Mono, > there's no issue. So it can be solved, since gedit does it. If someone tells how to fix that, that would be welcome. Failing that, I will claim that gedit has a bug (did you try all the glyphs in that font, to make sure none of them come out cropped in some way?). From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 08:55:43 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 12:55:44 +0000 Received: from localhost ([127.0.0.1]:52640 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvmUG-0006yg-J5 for submit@debbugs.gnu.org; Fri, 22 May 2015 08:55:43 -0400 Received: from mail-wg0-f44.google.com ([74.125.82.44]:35107) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvmUC-0006yR-SL for 20628@debbugs.gnu.org; Fri, 22 May 2015 08:55:37 -0400 Received: by wgfl8 with SMTP id l8so17007151wgf.2 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 05:55:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=bzpsyiTv4k2i9SouGqMS2Ukr31q9hFCpURqSjp9GULY=; b=jjfNKXlD0edPxvDVU7+e6ACyY92VPM80qxCpHCbWF4xFdI/VcDTSzDAw6y4mty5BBr 7Vj42WILqSo/H5iOabHjQAB9PX+0gxc27NQn+IR3CWDB9eQD9c+jr3Cm3YHpxKARW7f7 NMVkdp3w04BmY+iysAxA06JGDBy4f5dWOM2yuRkxO4d0hq1V78R2VIy7PCGr2XC93pWY ozyvOJnlJmqO37gLqCQnRmQImALrOmvcz3S/4Bhf/gNw43rcp5oBgxFWxPa5sD0Mbl5Q LP+vZBpUdpQ0cfxuDFFjdID3GM+w6eXX6K4LPF6XOn01UAsDlcXSoyWE+8gfSW1g9+IF RhMg== X-Received: by 10.180.95.10 with SMTP id dg10mr7447772wib.41.1432299331148; Fri, 22 May 2015 05:55:31 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id f8sm7406280wiy.7.2015.05.22.05.55.30 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 05:55:30 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> Date: Fri, 22 May 2015 14:49:16 +0200 In-Reply-To: <83wq004x2w.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 15:26:47 +0300") Message-ID: <87k2w07p6b.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> From: Oleh Krehel >> Cc: Cl=C3=A9ment Pit--Claudel , >> 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 12:11:40 +0200 >>=20 >> I have the same problem with DejaVu: >>=20 >> -unknown-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-fontse= t-auto2 >>=20 >> which is basically the most popular free font. And yet when I paste a >> problematic char, like =F0=9D=9D=B9 into gedit, configured also with Dej= aVu Sans Mono, >> there's no issue. So it can be solved, since gedit does it. > > If someone tells how to fix that, that would be welcome. Failing > that, I will claim that gedit has a bug (did you try all the glyphs in > that font, to make sure none of them come out cropped in some way?). The test file with contents: asdf =F0=9D=9E=B3 is displayed fine with "emacs -nw" when inside a GNOME Terminal. Other applications like Firefox, Gedit, and Chromium also display it fine. Could you point me to a code position in Emacs where the line pixel height is determined. I'll try to play around with it, maybe I can fix it at least for GTK. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 09:04:09 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 13:04:09 +0000 Received: from localhost ([127.0.0.1]:52645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvmcP-0007Ca-Sp for submit@debbugs.gnu.org; Fri, 22 May 2015 09:04:09 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]:62492) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvmcK-0007By-I7 for 20628@debbugs.gnu.org; Fri, 22 May 2015 09:04:04 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0NOR00K004SQDB00@a-mtaout21.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 16:03:54 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00KBE5MHCD50@a-mtaout21.012.net.il>; Fri, 22 May 2015 16:03:53 +0300 (IDT) Date: Fri, 22 May 2015 16:03:52 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <83wq004x2w.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: ohwoeowho@gmail.com Message-id: <83twv44vd3.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 15:26:47 +0300 > From: Eli Zaretskii > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > > > From: Oleh Krehel > > Cc: Clément Pit--Claudel , > > 20628@debbugs.gnu.org > > Date: Fri, 22 May 2015 12:11:40 +0200 > > > > I have the same problem with DejaVu: > > > > -unknown-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-fontset-auto2 > > > > which is basically the most popular free font. And yet when I paste a > > problematic char, like 𝝹 into gedit, configured also with DejaVu Sans Mono, > > there's no issue. So it can be solved, since gedit does it. > > If someone tells how to fix that, that would be welcome. Failing > that, I will claim that gedit has a bug (did you try all the glyphs in > that font, to make sure none of them come out cropped in some way?). Btw, in the version of DejaVu Sans Mono I just downloaded from their site doesn't cover the U+01D779 character. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 09:16:53 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 13:16:54 +0000 Received: from localhost ([127.0.0.1]:52649 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvmon-0007Ve-7j for submit@debbugs.gnu.org; Fri, 22 May 2015 09:16:53 -0400 Received: from mtaout28.012.net.il ([80.179.55.184]:37238) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvmok-0007VP-CA for 20628@debbugs.gnu.org; Fri, 22 May 2015 09:16:51 -0400 Received: from conversion-daemon.mtaout28.012.net.il by mtaout28.012.net.il (HyperSendmail v2007.08) id <0NOR00L005I9K100@mtaout28.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 16:13:08 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout28.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00JND61VI330@mtaout28.012.net.il>; Fri, 22 May 2015 16:13:08 +0300 (IDT) Date: Fri, 22 May 2015 16:13:59 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87k2w07p6b.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83siao4uw8.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <87k2w07p6b.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 14:49:16 +0200 > > The test file with contents: > asdf 𝞳 > > is displayed fine with "emacs -nw" when inside a GNOME Terminal. In "emacs -nw", Emacs doesn't perform layout, it just writes the characters using stdio functions. It's the terminal emulator that performs layout. > Other applications like Firefox, Gedit, and Chromium also display it > fine. Knowing that doesn't help in fixing Emacs behavior. > Could you point me to a code position in Emacs where the line pixel > height is determined. It's in xdisp.c:x_produce_glyphs. Emacs updates the line's ascent and descent as it processes each character for display, based on the data it gets from the font used by the face of that character. Later in display_line, the height of each screen line is determined: row->ascent = max (row->ascent, it->max_ascent); row->height = max (row->height, it->max_ascent + it->max_descent); row->phys_ascent = max (row->phys_ascent, it->max_phys_ascent); row->phys_height = max (row->phys_height, it->max_phys_ascent + it->max_phys_descent); row->extra_line_spacing = max (row->extra_line_spacing, it->max_extra_line_spacing); > I'll try to play around with it, maybe I can fix it at least for > GTK. This code is device independent, so GTK doesn't come into play here. Thanks in advance for any solutions you might find and/or suggest. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 09:18:38 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 13:18:38 +0000 Received: from localhost ([127.0.0.1]:52653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvmqU-0007Yf-0v for submit@debbugs.gnu.org; Fri, 22 May 2015 09:18:38 -0400 Received: from mtaout28.012.net.il ([80.179.55.184]:56698) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvmqS-0007YT-3m for 20628@debbugs.gnu.org; Fri, 22 May 2015 09:18:36 -0400 Received: from conversion-daemon.mtaout28.012.net.il by mtaout28.012.net.il (HyperSendmail v2007.08) id <0NOR00L005I9K100@mtaout28.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 16:17:37 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout28.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00JD769DI340@mtaout28.012.net.il>; Fri, 22 May 2015 16:17:37 +0300 (IDT) Date: Fri, 22 May 2015 16:18:29 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87k2w07p6b.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83r3q84uoq.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <87k2w07p6b.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 14:49:16 +0200 > > The test file with contents: > asdf 𝞳 > > is displayed fine with "emacs -nw" when inside a GNOME Terminal. In "emacs -nw", Emacs doesn't perform layout, it just writes the characters using stdio functions. It's the terminal emulator that performs layout. > Other applications like Firefox, Gedit, and Chromium also display it > fine. Knowing that doesn't help in fixing Emacs behavior. > Could you point me to a code position in Emacs where the line pixel > height is determined. It's in xdisp.c:x_produce_glyphs. Emacs updates the line's ascent and descent as it processes each character for display, based on the data it gets from the font used by the face of that character. Later in display_line, the height of each screen line is determined: row->ascent = max (row->ascent, it->max_ascent); row->height = max (row->height, it->max_ascent + it->max_descent); row->phys_ascent = max (row->phys_ascent, it->max_phys_ascent); row->phys_height = max (row->phys_height, it->max_phys_ascent + it->max_phys_descent); row->extra_line_spacing = max (row->extra_line_spacing, it->max_extra_line_spacing); > I'll try to play around with it, maybe I can fix it at least for > GTK. The code mentioned above is device independent, so GTK doesn't come into play here. Thanks in advance for any solutions you might find and/or suggest. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 09:21:07 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 13:21:08 +0000 Received: from localhost ([127.0.0.1]:52657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvmst-0007cx-11 for submit@debbugs.gnu.org; Fri, 22 May 2015 09:21:07 -0400 Received: from mail-out.m-online.net ([212.18.0.10]:59567) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvmsq-0007ce-2z for 20628@debbugs.gnu.org; Fri, 22 May 2015 09:21:05 -0400 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3ltT3M07Jjz3hj0F; Fri, 22 May 2015 15:21:02 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3ltT3L37t7zvkdS; Fri, 22 May 2015 15:21:02 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id LT3xk0FfG7tg; Fri, 22 May 2015 15:21:01 +0200 (CEST) X-Auth-Info: uxMIjB7MvjcDOdyioFC88hTHOxhrVu6gN1qdDsGxk7Nfy+Hw3TiYvLGEvMZLO9/d Received: from igel.home (ppp-93-104-62-249.dynamic.mnet-online.de [93.104.62.249]) by mail.mnet-online.de (Postfix) with ESMTPA; Fri, 22 May 2015 15:21:01 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id 5ABA92C432A; Fri, 22 May 2015 15:21:01 +0200 (CEST) From: Andreas Schwab To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> X-Yow: I'm wearing PAMPERS!! Date: Fri, 22 May 2015 15:21:01 +0200 In-Reply-To: <83twv44vd3.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 16:03:52 +0300") Message-ID: <87pp5s4uki.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Btw, in the version of DejaVu Sans Mono I just downloaded from their > site doesn't cover the U+01D779 character. On my system Emacs choses TeX Gyre Pagella Math to display 𝝹. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 09:22:08 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 13:22:09 +0000 Received: from localhost ([127.0.0.1]:52665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvmts-0007f3-BA for submit@debbugs.gnu.org; Fri, 22 May 2015 09:22:08 -0400 Received: from mail-wi0-f180.google.com ([209.85.212.180]:36233) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvmtp-0007eL-LT for 20628@debbugs.gnu.org; Fri, 22 May 2015 09:22:06 -0400 Received: by wizk4 with SMTP id k4so47392367wiz.1 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 06:22:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=Mmh7srsCql7lc+hvK7WuCg7ZsWD6afi7ea1FWPjgquY=; b=Gew3jMt1m3VYqVYLwqYPpEyNF25BIknAuSz735jXeBs8TJPvmPOZuEiZ2G4jDsse5t FqIsL55HV4jq5XGm+DFuu/IZ6EQGoMmJtUmaUxzP6E/EgnGkUbvoraYnfPGRtVP6DBGx UzetP/mEw4NrlT+Q/9JegTj1VQLzXEbFYZslDmxdphR9bz4blS+cLXCJZCFkZicoYf95 UG7hRS8CaccGRlfsY8Y05+XX1nee81EfrJ4e2qZC9jukbRhRzJ/tMApMurheb/9s1ega iQPRrKs45Na9/+C1yPOKodqE9YvwenwChz+1WRh1e4L6/Qsw2sLJb7tEQ221Yv7AnRGq 8zbQ== X-Received: by 10.194.238.193 with SMTP id vm1mr15155375wjc.57.1432300920085; Fri, 22 May 2015 06:22:00 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id r9sm3149179wjo.26.2015.05.22.06.21.59 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 06:21:59 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> Date: Fri, 22 May 2015 15:15:45 +0200 In-Reply-To: <83twv44vd3.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 16:03:52 +0300") Message-ID: <87egm87ny6.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Btw, in the version of DejaVu Sans Mono I just downloaded from their > site doesn't cover the U+01D779 character. It appears to re-use the system fixed width font (Ubuntu Mono 13) in case the selected font (DejaVu Sans Mono) doesn't support a char. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 09:55:51 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 13:55:51 +0000 Received: from localhost ([127.0.0.1]:53008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvnQU-00007w-Rh for submit@debbugs.gnu.org; Fri, 22 May 2015 09:55:51 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]:50584) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvnQP-00007Z-9p for 20628@debbugs.gnu.org; Fri, 22 May 2015 09:55:47 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0NOR009007WHBL00@a-mtaout23.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 16:55:38 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR009TV80Q0160@a-mtaout23.012.net.il>; Fri, 22 May 2015 16:55:38 +0300 (IDT) Date: Fri, 22 May 2015 16:55:37 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87egm87ny6.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83oalc4syu.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 15:15:45 +0200 > > Eli Zaretskii writes: > > > Btw, in the version of DejaVu Sans Mono I just downloaded from their > > site doesn't cover the U+01D779 character. > > It appears to re-use the system fixed width font (Ubuntu Mono 13) in > case the selected font (DejaVu Sans Mono) doesn't support a char. So that means the problem is not with DejaVu Sans Mono, it's with the fallback font, right? From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 10:00:46 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 14:00:46 +0000 Received: from localhost ([127.0.0.1]:53012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvnVE-0000F8-LZ for submit@debbugs.gnu.org; Fri, 22 May 2015 10:00:45 -0400 Received: from mail-wi0-f182.google.com ([209.85.212.182]:37319) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvnVB-0000Eu-EV for 20628@debbugs.gnu.org; Fri, 22 May 2015 10:00:42 -0400 Received: by wibt6 with SMTP id t6so48318811wib.0 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 07:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=A/pgzjjwd1Lew2RUo7y8pAgB+LObEvulRgVn8Z8ygOE=; b=iZJqmF+lko71AYqcCr3FLJEp92JQznSe9Y6/tr1S1JgcI0PnHbKkfdhaoWBqwf8B3d FxwUu+XQ1UGo3tkZ3lb6rT2sD01ot7uL/3d8aNqoC2ZOFTCkvg52wb+MwCS+irrn2cL8 1NYdRGXw5UAtf9VpvJ8f/2thbqmwpDXgLK5mgBrDT0JH6adGMyM9zEradIzLppXH9lbF g68RGqDoidRQySS4W3JpOwSMBIGAf74c4jnCSc63LJvJghcxQUqnnGUaJUoXQbQqLuBc UwrZ4kKsQMOfhATsN684aT8fyoYPN07oSmpRl3p5lMTu9g97mtXSMX+pDgdO4b620feQ 3s5A== X-Received: by 10.180.77.8 with SMTP id o8mr8033052wiw.74.1432303235661; Fri, 22 May 2015 07:00:35 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id bh7sm3318488wjb.8.2015.05.22.07.00.34 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 07:00:34 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> Date: Fri, 22 May 2015 15:54:21 +0200 In-Reply-To: <83oalc4syu.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 16:55:37 +0300") Message-ID: <87617k7m5u.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 15:15:45 +0200 >> >> Eli Zaretskii writes: >> >> > Btw, in the version of DejaVu Sans Mono I just downloaded from their >> > site doesn't cover the U+01D779 character. >> >> It appears to re-use the system fixed width font (Ubuntu Mono 13) in >> case the selected font (DejaVu Sans Mono) doesn't support a char. > > So that means the problem is not with DejaVu Sans Mono, it's with the > fallback font, right? Right. I'm looking at xdisp.c now. When I set this: it->max_ascent = 0; it->max_descent = 0; the problem disappears. Of course, it causes a problem in places where ascent and descent are actually used, like for displaying images. I just need to figure out how it->max_ascent gets computed from glyph->descent. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 10:08:07 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 14:08:08 +0000 Received: from localhost ([127.0.0.1]:53022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvncN-0000Qv-7b for submit@debbugs.gnu.org; Fri, 22 May 2015 10:08:07 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:34466) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvncK-0000QQ-Q3 for 20628@debbugs.gnu.org; Fri, 22 May 2015 10:08:05 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NOR00M0084HYE00@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 17:03:47 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00FYU8EAKK70@mtaout25.012.net.il>; Fri, 22 May 2015 17:03:47 +0300 (IDT) Date: Fri, 22 May 2015 17:07:56 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87617k7m5u.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83mw0w4seb.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 15:54:21 +0200 > > I'm looking at xdisp.c now. When I set this: > > it->max_ascent = 0; > it->max_descent = 0; > > the problem disappears. Of course, it does: you've just made Emacs ignore characters which have non-zero ascent and descent. > Of course, it causes a problem in places where ascent and descent > are actually used, like for displaying images. More importantly, it will display characters with ascent or descent incorrectly clipped. > I just need to figure out how it->max_ascent gets computed from > glyph->descent. Like this: it->max_ascent = max (it->max_ascent, it->ascent); it->max_descent = max (it->max_descent, it->descent); IOW, it's the max value of ascent and descent of all the characters on that screen line. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 10:26:55 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 14:26:55 +0000 Received: from localhost ([127.0.0.1]:53037 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvnuY-0000tP-MX for submit@debbugs.gnu.org; Fri, 22 May 2015 10:26:55 -0400 Received: from mail-wi0-f173.google.com ([209.85.212.173]:37076) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvnuW-0000tB-8l for 20628@debbugs.gnu.org; Fri, 22 May 2015 10:26:52 -0400 Received: by wibt6 with SMTP id t6so49142698wib.0 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 07:26:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=KvCQpspm5k7Pwgi3Knye99kSYUipHw1bJECHq8ZI5YA=; b=Pc7kdNjwm67HQyeNrqwAoRD4icXz1kM09Bm+H+5SM1CbDX9Gu+e14iwvdmr1sYxPoB I749pY0cJpDE5pkirk961B9XCkcgPNiFp/kiTJkPSmsEtjLqAJhE+1GhmCG2mbXJNH5+ wrLyWUDINx38cQ8TrKxyjE7W+sdWCis5590KGFbE7k9z1oduMOLrxh/OE+Jwg1xd73wX NXtiBByd8gObY044LBlATb2OVcDFJmNEKnmHOnU41nfAWirvczIJAMiWy+ttDTRL2xcd bKkW9Do3C7C1hJynoHL1zKIEqgqoNxYYj9B/qx+Enb5RKPtzIibLY7ShISeeHXhUPtCs 60wA== X-Received: by 10.194.249.201 with SMTP id yw9mr16030338wjc.5.1432304806677; Fri, 22 May 2015 07:26:46 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id g11sm3393355wjr.25.2015.05.22.07.26.45 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 07:26:45 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> Date: Fri, 22 May 2015 16:20:31 +0200 In-Reply-To: <83mw0w4seb.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 17:07:56 +0300") Message-ID: <87zj4w66ds.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Like this: > > it->max_ascent = max (it->max_ascent, it->ascent); > it->max_descent = max (it->max_descent, it->descent); > > IOW, it's the max value of ascent and descent of all the characters on > that screen line. OK, I got this far: p FACE_FROM_ID(it->f,it->face_id)->font->ascent $18 = 15 (gdb) p FACE_FROM_ID(it->f,it->face_id)->font->descent $19 = 4 15 and 4 are the eventual (wrong) values of it->max_ascent and it->max_descent. But I don't know how and where the font structure is initialized and how the current glyph actually is factored here: I just see a reference to a frame and a face, no reference to the current char. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 10:49:27 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 14:49:28 +0000 Received: from localhost ([127.0.0.1]:53045 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvoGN-0001Tk-7T for submit@debbugs.gnu.org; Fri, 22 May 2015 10:49:27 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:55447) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvoGK-0001TR-5a for 20628@debbugs.gnu.org; Fri, 22 May 2015 10:49:25 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOR00600A2TTU00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 17:49:17 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR006L4AI4UZ00@a-mtaout20.012.net.il>; Fri, 22 May 2015 17:49:17 +0300 (IDT) Date: Fri, 22 May 2015 17:49:16 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87zj4w66ds.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83lhgg4qhf.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 16:20:31 +0200 > > Eli Zaretskii writes: > > > Like this: > > > > it->max_ascent = max (it->max_ascent, it->ascent); > > it->max_descent = max (it->max_descent, it->descent); > > > > IOW, it's the max value of ascent and descent of all the characters on > > that screen line. > > OK, I got this far: > > p FACE_FROM_ID(it->f,it->face_id)->font->ascent > $18 = 15 > (gdb) p FACE_FROM_ID(it->f,it->face_id)->font->descent > $19 = 4 > > 15 and 4 are the eventual (wrong) values of it->max_ascent and > it->max_descent. Why do you think they are wrong? > But I don't know how and where the font structure is initialized and > how the current glyph actually is factored here: I just see a > reference to a frame and a face, no reference to the current char. AFAIK, they are initialized from the font data. Here's what ftfont.c does in ftfont_open: scalable = (INTEGERP (AREF (entity, FONT_AVGWIDTH_INDEX)) && XINT (AREF (entity, FONT_AVGWIDTH_INDEX)) == 0); if (scalable) { font->ascent = ft_face->ascender * size / upEM; font->descent = - ft_face->descender * size / upEM; font->height = ft_face->height * size / upEM; } else { font->ascent = ft_face->size->metrics.ascender >> 6; font->descent = - ft_face->size->metrics.descender >> 6; font->height = ft_face->size->metrics.height >> 6; } And the fields of ft_face seem to be set by FreeType library, via the call to FT_Set_Pixel_Sizes, a few lines before the above snippet. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 11:05:32 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 15:05:32 +0000 Received: from localhost ([127.0.0.1]:53049 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvoVv-0001r8-Ie for submit@debbugs.gnu.org; Fri, 22 May 2015 11:05:31 -0400 Received: from mtaout27.012.net.il ([80.179.55.183]:40311) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvoVs-0001qr-Pq for 20628@debbugs.gnu.org; Fri, 22 May 2015 11:05:30 -0400 Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NOR00400A603H00@mtaout27.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 18:00:35 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR009Z7B0Z4H20@mtaout27.012.net.il>; Fri, 22 May 2015 18:00:35 +0300 (IDT) Date: Fri, 22 May 2015 18:05:21 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <83lhgg4qhf.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: ohwoeowho@gmail.com Message-id: <83k2w04pqm.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 17:49:16 +0300 > From: Eli Zaretskii > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > > AFAIK, they are initialized from the font data. Here's what ftfont.c > does in ftfont_open: > > scalable = (INTEGERP (AREF (entity, FONT_AVGWIDTH_INDEX)) > && XINT (AREF (entity, FONT_AVGWIDTH_INDEX)) == 0); > if (scalable) > { > font->ascent = ft_face->ascender * size / upEM; > font->descent = - ft_face->descender * size / upEM; > font->height = ft_face->height * size / upEM; > } > else > { > font->ascent = ft_face->size->metrics.ascender >> 6; > font->descent = - ft_face->size->metrics.descender >> 6; > font->height = ft_face->size->metrics.height >> 6; > } > > And the fields of ft_face seem to be set by FreeType library, via the > call to FT_Set_Pixel_Sizes, a few lines before the above snippet. Forgot to tell that similar code you can find in xfont.c and xftfont.c (and w32font.c for Windows). Which of these is actually used in your Emacs depends on how it was configured and against which libraries it was linked. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 11:09:52 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 15:09:52 +0000 Received: from localhost ([127.0.0.1]:53053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvoa7-0001xF-Ex for submit@debbugs.gnu.org; Fri, 22 May 2015 11:09:51 -0400 Received: from mail-wg0-f54.google.com ([74.125.82.54]:32907) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvoa4-0001x0-St for 20628@debbugs.gnu.org; Fri, 22 May 2015 11:09:49 -0400 Received: by wgez8 with SMTP id z8so20780431wge.0 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 08:09:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=Xrw9wVcec1RsGqDqLnSbW0+Q7cGuiFUPorDn5re6PkQ=; b=PpTndlw8LmI+XDeTmU3LyPC7KMvYN14OvqXYldTQKqLCbm/DnJZyDUrEgzjTY5uw1i FOQpIYKAMvtgBcjR3CopuYptpOHUQVK7y/LHpV3TOJrETVRZEAK6wbzhNWGeknHMiikK YcRbtS1SPjLpFOOcV4ZrinJUqiMuQ1c8Ui4+DsqLXku4sgbrH1BWFLMVj3Ds3vmqjHNJ rMsQPMEZwjfiyatNrJt5BZ+xrievCCLkygfLOgySySpNCQSNLk09DGk3v4Wvq3onXea2 Zuzl+KMzVVqfo1JJoBZ+cV89QBJ8fcc3MBDlnkpR33AmKE7vvbu4JspPLXgblH8QsZor pg1A== X-Received: by 10.180.83.40 with SMTP id n8mr8496937wiy.57.1432307383291; Fri, 22 May 2015 08:09:43 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id pd7sm3556398wjb.27.2015.05.22.08.09.42 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 08:09:42 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> Date: Fri, 22 May 2015 17:03:29 +0200 In-Reply-To: <83lhgg4qhf.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 17:49:16 +0300") Message-ID: <87iobk64e6.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Why do you think they are wrong? Never mind, I made a bad assumption. Here's what I've found by looking at: ;; equivalent: (format "%c" #x01d779) (format "%c" 120697) ;; what gets passed to x_produce_glyphs: (format "%c" 120755) So now, if I put this check at the end of x_produce_glyphs: if (it->char_to_display == 120755) { it->max_ascent = 0; it->max_descent = 0; } The problem is solved for this one char. So now the question is how 120697 got translated into 120755? Also, for some reason I can't evaluate this in gdb: p get_char_glyph_code (it->char_to_display, font, &char2b) It says that get_char_glyph_code isn't defined. In any case, for this character it returns FONT_INVALID_CODE. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 11:17:05 2015 Received: (at submit) by debbugs.gnu.org; 22 May 2015 15:17:05 +0000 Received: from localhost ([127.0.0.1]:53057 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvoh6-00028O-V8 for submit@debbugs.gnu.org; Fri, 22 May 2015 11:17:05 -0400 Received: from eggs.gnu.org ([208.118.235.92]:54931) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvoh4-00027p-PY for submit@debbugs.gnu.org; Fri, 22 May 2015 11:17:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yvogy-0003GC-Ds for submit@debbugs.gnu.org; Fri, 22 May 2015 11:16:57 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=2.0 required=5.0 tests=BAYES_50,FREEMAIL_FROM, FSL_HELO_BARE_IP_2,RCVD_NUMERIC_HELO autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:49496) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yvogy-0003G8-B4 for submit@debbugs.gnu.org; Fri, 22 May 2015 11:16:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40205) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yvogx-0001xi-FD for bug-gnu-emacs@gnu.org; Fri, 22 May 2015 11:16:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yvogu-0003Fg-9M for bug-gnu-emacs@gnu.org; Fri, 22 May 2015 11:16:55 -0400 Received: from plane.gmane.org ([80.91.229.3]:35209) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yvogu-0003FW-2O for bug-gnu-emacs@gnu.org; Fri, 22 May 2015 11:16:52 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Yvogr-0008Od-8s for bug-gnu-emacs@gnu.org; Fri, 22 May 2015 17:16:49 +0200 Received: from 46.166.186.218 ([46.166.186.218]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 22 May 2015 17:16:49 +0200 Received: from rasmus by 46.166.186.218 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 22 May 2015 17:16:49 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Rasmus Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts Date: Fri, 22 May 2015 17:16:41 +0200 Lines: 29 Message-ID: <87lhggbq1y.fsf@gmx.us> References: <555E9C2E.8040008@live.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 46.166.186.218 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) Cancel-Lock: sha1:QwG22ZI1BIdu/kP9BAYI7ErPWgQ= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -3.2 (---) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.2 (---) Clément Pit--Claudel writes: > Some Unicode characters incorrectly increase the height of the line on which > they are inserted, by an incorrect amount (typically 4/5 times the normal line > height). This is due to Emacs falling back to a font for which line height > calculations are incorrect. The problem can generally be reproduced just by > inputing the following characters: > > (𝓝𝓟) > > Alternatively, the problem can be reproduced by switching to certain > specific fonts. For example: > > (set-frame-font "-unknown-Latin Modern Math-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1" nil nil) It would be great if this "bug" could be fixed somehow. As a workaround, I have found that XITS Math behaves nicely. I have something like this in my init (much simplified). (mapc (lambda (set) (set-fontset-font set 'mathematical (font-spec :family "XITS Math") nil 'append) (set-fontset-font set 'symbol (font-spec :family "DejaVu Sans Mono") nil 'prepend)) '("fontset-startup" "fontset-default")) —Rasmus -- I almost cut my hair, it happened just the other day From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 11:28:10 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 15:28:10 +0000 Received: from localhost ([127.0.0.1]:53069 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvorp-0002Ro-TP for submit@debbugs.gnu.org; Fri, 22 May 2015 11:28:10 -0400 Received: from mercure.iro.umontreal.ca ([132.204.24.67]:56183) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvoro-0002Rg-Qq for 20628@debbugs.gnu.org; Fri, 22 May 2015 11:28:09 -0400 Received: from hidalgo.iro.umontreal.ca (hidalgo.iro.umontreal.ca [132.204.27.50]) by mercure.iro.umontreal.ca (Postfix) with ESMTP id 7486C9C161; Fri, 22 May 2015 11:28:08 -0400 (EDT) Received: from lechon.iro.umontreal.ca (lechon.iro.umontreal.ca [132.204.27.242]) by hidalgo.iro.umontreal.ca (Postfix) with ESMTP id 4DA671E5B8D; Fri, 22 May 2015 11:27:45 -0400 (EDT) Received: by lechon.iro.umontreal.ca (Postfix, from userid 20848) id 319B6B4334; Fri, 22 May 2015 11:27:45 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts Message-ID: References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> Date: Fri, 22 May 2015 11:27:45 -0400 In-Reply-To: <83lhgg4qhf.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 17:49:16 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-DIRO-MailScanner-Information: Please contact the ISP for more information X-DIRO-MailScanner: Found to be clean X-DIRO-MailScanner-SpamCheck: n'est pas un polluriel, SpamAssassin (score=-2.82, requis 5, autolearn=not spam, ALL_TRUSTED -2.82, MC_TSTLAST 0.00) X-DIRO-MailScanner-From: monnier@iro.umontreal.ca X-Spam-Status: No X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, Oleh Krehel , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) > And the fields of ft_face seem to be set by FreeType library, via the > call to FT_Set_Pixel_Sizes, a few lines before the above snippet. Could it be that the difference between Emacs and things like GEdit is that we request the ascent/descent of the whole font, whereas GEdit requests this data on a glyph-by-glyph basis? Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 11:39:28 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 15:39:29 +0000 Received: from localhost ([127.0.0.1]:53077 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvp2m-0002jX-9U for submit@debbugs.gnu.org; Fri, 22 May 2015 11:39:28 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:62935) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvp2k-0002jI-8o for 20628@debbugs.gnu.org; Fri, 22 May 2015 11:39:27 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOR00700CP54Y00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 18:39:20 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR007G0CTG5300@a-mtaout20.012.net.il>; Fri, 22 May 2015 18:39:17 +0300 (IDT) Date: Fri, 22 May 2015 18:39:16 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87iobk64e6.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83h9r44o63.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 17:03:29 +0200 > > ;; equivalent: > (format "%c" #x01d779) > (format "%c" 120697) > > ;; what gets passed to x_produce_glyphs: > (format "%c" 120755) > > So now, if I put this check at the end of x_produce_glyphs: > > if (it->char_to_display == 120755) > { > it->max_ascent = 0; > it->max_descent = 0; > } > > The problem is solved for this one char. So now the question is how > 120697 got translated into 120755? I can't reproduce this: I only see 120697. I'd suggest to put a by-location watchpoint on it->char_to_display, conditioned on the value being greater than 120000, and see which code sets it to 120755. > Also, for some reason I can't evaluate this in gdb: > > p get_char_glyph_code (it->char_to_display, font, &char2b) > > It says that get_char_glyph_code isn't defined. Is your build optimized, per chance? It works for me, FWIW. > In any case, for this character it returns FONT_INVALID_CODE. Not sure how this is relevant; and it should return either 'true' or 'false'. Anyway, on my system, this character enlarges the it->max_ascent value by 1 pixel, and leaves the it->max_descent value unchanged. The font used to display it is Code2001, and the default font is Courier New. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 11:41:16 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 15:41:16 +0000 Received: from localhost ([127.0.0.1]:53081 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvp4V-0002mc-D8 for submit@debbugs.gnu.org; Fri, 22 May 2015 11:41:16 -0400 Received: from mail-out.m-online.net ([212.18.0.9]:53695) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvp4R-0002mS-HY for 20628@debbugs.gnu.org; Fri, 22 May 2015 11:41:12 -0400 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3ltX921Xntz3hj1C; Fri, 22 May 2015 17:41:10 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3ltX9200h0zvjDB; Fri, 22 May 2015 17:41:09 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id fRaEikBHyLe0; Fri, 22 May 2015 17:41:09 +0200 (CEST) X-Auth-Info: 5DowsWgPjqwKuy7wGFK5+pX7qfJhH4kj9YUVjbXPDqUnaz/07pvS6KDHnec8qlGc Received: from igel.home (ppp-93-104-62-249.dynamic.mnet-online.de [93.104.62.249]) by mail.mnet-online.de (Postfix) with ESMTPA; Fri, 22 May 2015 17:41:09 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id F0CFA2C1CC6; Fri, 22 May 2015 17:41:08 +0200 (CEST) From: Andreas Schwab To: Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> X-Yow: ONE: I will donate my entire ``BABY HUEY'' comic book collection to the downtown PLASMA CENTER.. TWO: I won't START a BAND called ``KHADAFY & THE HIT SQUAD''.. THREE: I won't ever TUMBLE DRY my FOX TERRIER again!! Date: Fri, 22 May 2015 17:41:08 +0200 In-Reply-To: <87iobk64e6.fsf@gmail.com> (Oleh Krehel's message of "Fri, 22 May 2015 17:03:29 +0200") Message-ID: <87zj4woc17.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, Eli Zaretskii , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Oleh Krehel writes: > Also, for some reason I can't evaluate this in gdb: > > p get_char_glyph_code (it->char_to_display, font, &char2b) > > It says that get_char_glyph_code isn't defined. It's probably inlined, since it's called only once. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 11:42:36 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 15:42:36 +0000 Received: from localhost ([127.0.0.1]:53085 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvp5n-0002oX-IH for submit@debbugs.gnu.org; Fri, 22 May 2015 11:42:35 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:54776) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvp5l-0002oK-50 for 20628@debbugs.gnu.org; Fri, 22 May 2015 11:42:34 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NOR00K00CQ7YM00@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 18:38:11 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00CQDCRMNE70@mtaout25.012.net.il>; Fri, 22 May 2015 18:38:11 +0300 (IDT) Date: Fri, 22 May 2015 18:42:20 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83fv6o4o0z.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Stefan Monnier > Cc: Oleh Krehel , clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 11:27:45 -0400 > > > And the fields of ft_face seem to be set by FreeType library, via the > > call to FT_Set_Pixel_Sizes, a few lines before the above snippet. > > Could it be that the difference between Emacs and things like GEdit is > that we request the ascent/descent of the whole font, whereas GEdit > requests this data on a glyph-by-glyph basis? _Is_ there such a thing as glyph-specific ascent and descent values? From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 12:11:48 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 16:11:48 +0000 Received: from localhost ([127.0.0.1]:53104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvpY4-0004yu-F7 for submit@debbugs.gnu.org; Fri, 22 May 2015 12:11:48 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:33976) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvpY2-0004yg-9u for 20628@debbugs.gnu.org; Fri, 22 May 2015 12:11:46 -0400 Received: by wicmc15 with SMTP id mc15so44603973wic.1 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 09:11:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=UbmXDM9wMM6/TfqOkN/o+t7VgYGUzMWKc5zXzXcX14I=; b=IGRd2UF+UqgTHw1bXUlVju+9ko7JEVcbRp7KoHrsXTa0LqgZ7B+n61wNLMHkM/ULOI 5XKyHHYhFV28+Le+w3zKzkPZBTPG3fxSHLgB9vy+Jd5ZOJ8JB5LeXkGIkdeOo+9gp+Hw iyJ2aO3nMAm4HQT+6MeuBK38kQsm2e/eg9OgTNCc6xRQjL4+KDYMRqf2ah8ey5EXtqqn soz4TDlLH9MuXZI/p8pD61pURaufEDuZ3cYx/wOddlfq5I0yIvhr0A/IGJX77B7APVZs 0DEmUnIfd2k1FeltKIVRiyjqOl2VqwQA+qgJ9GbD9JYmqrOL03V8XldSGoxeR77Lc/3b OM6A== X-Received: by 10.180.97.7 with SMTP id dw7mr9103328wib.74.1432311100758; Fri, 22 May 2015 09:11:40 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id x10sm3774154wjw.39.2015.05.22.09.11.39 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 09:11:39 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> Date: Fri, 22 May 2015 18:05:25 +0200 In-Reply-To: <83h9r44o63.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 18:39:16 +0300") Message-ID: <87pp5sy4vu.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Is your build optimized, per chance? It works for me, FWIW. How do I set it to non-optimized? So far I've tracked the bug to xftfont_open, where instead of the usual font ascent: 14, descent: 5 I get for the 120755 char: font ascent: 54, descent: 46 However, a lot of the stuff in xftfont_open is optimized out, so I need to figure out how to re-make with -O0. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 12:14:51 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 16:14:51 +0000 Received: from localhost ([127.0.0.1]:53108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvpb0-00053e-WD for submit@debbugs.gnu.org; Fri, 22 May 2015 12:14:51 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:36449) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvpay-00053R-SW for 20628@debbugs.gnu.org; Fri, 22 May 2015 12:14:50 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOR00700ECSCN00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 19:14:42 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR007HKEGH5370@a-mtaout20.012.net.il>; Fri, 22 May 2015 19:14:42 +0300 (IDT) Date: Fri, 22 May 2015 19:14:40 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87pp5sy4vu.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83egm84mj3.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 18:05:25 +0200 > > Eli Zaretskii writes: > > > Is your build optimized, per chance? It works for me, FWIW. > > How do I set it to non-optimized? Reconfigure like this: CFLAGS='-O0 -g3' ./configure ... and then re-run "make". > So far I've tracked the bug to xftfont_open, where instead of the > usual > > font ascent: 14, descent: 5 > > I get for the 120755 char: > > font ascent: 54, descent: 46 How is this strange character displayed, eventually? Is it displayed as a character or as a box with its hex code? From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 12:21:51 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 16:21:51 +0000 Received: from localhost ([127.0.0.1]:53112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvphm-0006ha-80 for submit@debbugs.gnu.org; Fri, 22 May 2015 12:21:51 -0400 Received: from mail-wg0-f54.google.com ([74.125.82.54]:33019) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvphk-0006hK-3A for 20628@debbugs.gnu.org; Fri, 22 May 2015 12:21:48 -0400 Received: by wgez8 with SMTP id z8so22617359wge.0 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 09:21:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=TZL3KGtNFAW/W3LyQYj6g1Y0a6SIkNXQ8QoADHhzj9Y=; b=kspJNr9ahVCGDINHGoRLwlcMF9ehkyAE14xfaui+5GFppfToL+zCmzZnccw7n3dLoe O91oiwonEjqnisQvh4aSBGcvH80xwdcK2Syshjn0d0+QODw6NdXNY3OvexF11E8XDWND cXgHiEL7/j9BXRVAYA8TuO3yu0IedGzKdfBcE6o+3XZmJyZrZ0VXiJvj6ffnhUIZBATH tcJGiuSTMT6LTIAQnxl1KmoHA6WepFNfIvS12LRabD0tEuAmYC2QUyGEIQ85QYqxw1Pr 2P6SiuQvuKT/mSgLj/OB5Tr4xKasWrtm71Yk2tJAVvvgzSW+rJ/06UA9tnXu0P/Dt8L3 WzMg== X-Received: by 10.180.100.194 with SMTP id fa2mr9128550wib.8.1432311702507; Fri, 22 May 2015 09:21:42 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id ck16sm3815512wjb.37.2015.05.22.09.21.41 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 09:21:41 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> Date: Fri, 22 May 2015 18:15:28 +0200 In-Reply-To: <83egm84mj3.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 19:14:40 +0300") Message-ID: <87617k6127.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 18:05:25 +0200 >> >> Eli Zaretskii writes: >> >> > Is your build optimized, per chance? It works for me, FWIW. >> >> How do I set it to non-optimized? > > Reconfigure like this: > > CFLAGS='-O0 -g3' ./configure ... > > and then re-run "make". Thanks, I'll try that. >> So far I've tracked the bug to xftfont_open, where instead of the >> usual >> >> font ascent: 14, descent: 5 >> >> I get for the 120755 char: >> >> font ascent: 54, descent: 46 > > How is this strange character displayed, eventually? Is it displayed > as a character or as a box with its hex code? It's displayed just the way gedit displays it, only with a huge (3 line height) ascent and a huge (3 line height) descent. So the line with the char is effectively 7 times taller than a regular line. Also, I've tracked the font family of the char to be "Latin Modern Mathfont" in xftfont_open. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 12:32:22 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 16:32:22 +0000 Received: from localhost ([127.0.0.1]:53116 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvprx-0006xX-Im for submit@debbugs.gnu.org; Fri, 22 May 2015 12:32:22 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:49123) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvpru-0006xI-2T for 20628@debbugs.gnu.org; Fri, 22 May 2015 12:32:19 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NOR00200E90C100@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 19:28:01 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00OLKF2OB860@mtaout25.012.net.il>; Fri, 22 May 2015 19:28:01 +0300 (IDT) Date: Fri, 22 May 2015 19:32:10 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87617k6127.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83d21s4lpx.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 18:15:28 +0200 > > >> So far I've tracked the bug to xftfont_open, where instead of the > >> usual > >> > >> font ascent: 14, descent: 5 > >> > >> I get for the 120755 char: > >> > >> font ascent: 54, descent: 46 According to what I see here 120755 (#x1d7b3) is the same kappa symbol as #x1d779, just in italic form. Not sure why Emacs on your system displays the former when you request the latter, but at least it's the same letter. Perhaps the font driver substitutes one for the other? > > How is this strange character displayed, eventually? Is it displayed > > as a character or as a box with its hex code? > > It's displayed just the way gedit displays it, only with a huge (3 line > height) ascent and a huge (3 line height) descent. So the line with the > char is effectively 7 times taller than a regular line. > > Also, I've tracked the font family of the char to be "Latin Modern > Mathfont" in xftfont_open. Math fonts are notorious for requesting huge ascent and descent values. I always disable them using fontsets. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 12:40:10 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 16:40:11 +0000 Received: from localhost ([127.0.0.1]:53121 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvpzU-00078Y-3Y for submit@debbugs.gnu.org; Fri, 22 May 2015 12:40:10 -0400 Received: from mail-wg0-f45.google.com ([74.125.82.45]:34918) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvpzP-00077y-Ok for 20628@debbugs.gnu.org; Fri, 22 May 2015 12:40:05 -0400 Received: by wgfl8 with SMTP id l8so22957638wgf.2 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 09:39:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=7fKNyJP1CV4YBzTcPguqe3/r7iIehyY7FBC7PTGKe7A=; b=v7BRFa2G4VDACfTCYTlLG2GDtxgGobrkdm6rJ3Q/fi7F77+1jZN21Fa5eid4b6RVtV /qInZG/nIqoXtmC2dHtZA5AwfdZQjBQvso4avhABnAldPMw8LhlZ9Of32kztw8RWYO0A Vk2gwPL+bd68DVXbq8ovv0pSnYg5xYXTjcZOf0dQOlJ17SBNU5jTLSKV3bAG8QshFXcy dc7Xgwzf+Tc42AEPYLmUIhzxa6JAWGj/MDNCSUquFxNH9cVmKx7ExFmCR9G7mSGWDL7R MBzBMD93mIpIwVW93ioa/5SLEM/UxV9mk0WiEV/mVh2uDMx2SROloJ8iEJ4iODRq89vL K1cw== X-Received: by 10.194.79.225 with SMTP id m1mr16971414wjx.8.1432312798051; Fri, 22 May 2015 09:39:58 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id a18sm3871300wja.46.2015.05.22.09.39.57 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 09:39:57 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> Date: Fri, 22 May 2015 18:33:43 +0200 In-Reply-To: <83d21s4lpx.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 19:32:10 +0300") Message-ID: <87twv44lnc.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) Eli Zaretskii writes: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 18:15:28 +0200 >> >> >> So far I've tracked the bug to xftfont_open, where instead of the >> >> usual >> >> >> >> font ascent: 14, descent: 5 >> >> >> >> I get for the 120755 char: >> >> >> >> font ascent: 54, descent: 46 > > According to what I see here 120755 (#x1d7b3) is the same kappa symbol > as #x1d779, just in italic form. Not sure why Emacs on your system > displays the former when you request the latter, but at least it's the > same letter. Perhaps the font driver substitutes one for the other? Could be. I don't mind that really, just the ascent/descent. >> > How is this strange character displayed, eventually? Is it displayed >> > as a character or as a box with its hex code? >> >> It's displayed just the way gedit displays it, only with a huge (3 line >> height) ascent and a huge (3 line height) descent. So the line with the >> char is effectively 7 times taller than a regular line. >> >> Also, I've tracked the font family of the char to be "Latin Modern >> Mathfont" in xftfont_open. > > Math fonts are notorious for requesting huge ascent and descent > values. I always disable them using fontsets. Can you explain what are fontsets and how to use the to disable ascent/descent in math? Is it possible for Emacs to do so by default? In any case, here's more data for the bad font that gets created with XftFontOpenPattern. Family: $ p (FcChar8 *) SDATA (SYMBOL_NAME (val)) "Latin Modern Math" Foundry: $ p (FcChar8 *) SDATA (SYMBOL_NAME (val)) "unknown" Filename: $ p (FcChar8 *) SDATA (filename) "/usr/share/texmf/fonts/opentype/public/lm-math/latinmodernmath-regular.otf" So it might be that I could just patch latinmodernmath-regular.otf to fix the problem. Or maybe Emacs could fix the problem specifically for this file / font family. That's what gedit does, I guess. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 13:00:44 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 17:00:44 +0000 Received: from localhost ([127.0.0.1]:53126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvqJO-0007cA-Av for submit@debbugs.gnu.org; Fri, 22 May 2015 13:00:44 -0400 Received: from mail-wg0-f44.google.com ([74.125.82.44]:35234) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvqJK-0007bv-Rh for 20628@debbugs.gnu.org; Fri, 22 May 2015 13:00:40 -0400 Received: by wgfl8 with SMTP id l8so23421601wgf.2 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 10:00:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=4vTutpNH0neN4Qqs160rDOfPeFQ3KKihr7hOqinH3/s=; b=ddiul7B3KHHi2LOFxsLkE8YTHaE6ee+5Qnu7z2OXiRTQWpM4Oag6onKAZyflixBaRh KcTENplTPR8uYEoEe4vhBtnvsiajzcfF041J+sHs2SXl+W6Dh7r3MWkxW6fyshQPCdM2 gdba7lMwpfHIGju0QmFTPRlTl4Mx5ibFIPnlA8jAvk53+pb8RoyP/HyiQUUNW7wukAZM ERA9QJtKrutsvoBQclSA/+0mv8vPiLH79ANXdxBEry6MyK0NAuHoM0FlwA08gl8rD1EO +vAEv3nJ7SlQxY4ixzCjO0QdW2XT5Tf2pTDrQ67S/OPMoQk9QXfphaS6glY0Z5MucS3h /GQw== X-Received: by 10.180.87.199 with SMTP id ba7mr9505933wib.81.1432314031936; Fri, 22 May 2015 10:00:31 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id i6sm3970018wjf.29.2015.05.22.10.00.30 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 10:00:30 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> Date: Fri, 22 May 2015 18:54:17 +0200 In-Reply-To: <87twv44lnc.fsf@gmail.com> (Oleh Krehel's message of "Fri, 22 May 2015 18:33:43 +0200") Message-ID: <87egm84kp2.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain I attach a patch that sets ascent/descent to 0 specifically for the problematic font family "Latin Modern Math". This way, the problem is solved for me for all 1152 chars with "math" in their name that `ucs-names' returns. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Set-font-ascent-descent-to-zero-for-Latin-Modern-Mat.patch >From 802b84adc05a92650ee882ddd25e6860bacde457 Mon Sep 17 00:00:00 2001 From: Oleh Krehel Date: Fri, 22 May 2015 18:46:51 +0200 Subject: [PATCH] Set font ascent/descent to zero for "Latin Modern Math" * src/xftfont.c (xftfont_open): Update. --- src/xftfont.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/xftfont.c b/src/xftfont.c index 0e8b876..a09f7fc 100644 --- a/src/xftfont.c +++ b/src/xftfont.c @@ -289,6 +289,7 @@ xftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) FcPatternAddInteger (pat, FC_WIDTH, FONT_WIDTH_NUMERIC (entity)); FcPatternAddDouble (pat, FC_PIXEL_SIZE, pixel_size); val = AREF (entity, FONT_FAMILY_INDEX); + int mathp = strcmp("Latin Modern Math", SDATA(SYMBOL_NAME(val))) == 0; if (! NILP (val)) FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) SDATA (SYMBOL_NAME (val))); val = AREF (entity, FONT_FOUNDRY_INDEX); @@ -332,6 +333,11 @@ xftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) XftPatternDestroy (match); return Qnil; } + if (mathp) + { + xftfont->ascent = 0; + xftfont->descent = 0; + } ft_face = XftLockFace (xftfont); unblock_input (); -- 1.8.4 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 13:15:49 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 17:15:49 +0000 Received: from localhost ([127.0.0.1]:53130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvqY0-0007xk-Cn for submit@debbugs.gnu.org; Fri, 22 May 2015 13:15:48 -0400 Received: from mail-out.m-online.net ([212.18.0.9]:45986) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvqXw-0007xa-QR for 20628@debbugs.gnu.org; Fri, 22 May 2015 13:15:45 -0400 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3ltZG746j8z3hjKS; Fri, 22 May 2015 19:15:38 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3ltZG234PNzvh2K; Fri, 22 May 2015 19:15:38 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id MK7iEf4Szk2J; Fri, 22 May 2015 19:15:37 +0200 (CEST) X-Auth-Info: vQNjg78+EXgpZ9X/a7Gx7Wz9x/VphjGdqEqc4AC9bdA3W5OTNK6uLS4EQE7e1yMN Received: from igel.home (ppp-93-104-62-249.dynamic.mnet-online.de [93.104.62.249]) by mail.mnet-online.de (Postfix) with ESMTPA; Fri, 22 May 2015 19:15:37 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id 72E682C1ED6; Fri, 22 May 2015 19:15:37 +0200 (CEST) From: Andreas Schwab To: Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> X-Yow: I guess we can live on his POT FARM in HADES!! Date: Fri, 22 May 2015 19:15:37 +0200 In-Reply-To: <87egm84kp2.fsf@gmail.com> (Oleh Krehel's message of "Fri, 22 May 2015 18:54:17 +0200") Message-ID: <87vbfko7nq.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, Eli Zaretskii , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Oleh Krehel writes: > I attach a patch that sets ascent/descent to 0 specifically for the > problematic font family "Latin Modern Math". Why only this family? Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 13:47:06 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 17:47:07 +0000 Received: from localhost ([127.0.0.1]:53136 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvr2I-0000Fg-9A for submit@debbugs.gnu.org; Fri, 22 May 2015 13:47:06 -0400 Received: from mail-wg0-f42.google.com ([74.125.82.42]:32825) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvr2G-0000FA-5E for 20628@debbugs.gnu.org; Fri, 22 May 2015 13:47:04 -0400 Received: by wgez8 with SMTP id z8so24521241wge.0 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 10:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=0Kf56oUslq3ggh3cyCirelzF7Pb3zUiGWqDv50zwU8o=; b=KtcYMugGHbmamP+2XInTz2gr/ajCaUa1AkOXzreNhG0Xh5CB1JfHK8O71u2rgGPn1Z qhVRXvLKr0YhUM6gFpIVAzvTI25Rs05/e/MWhImtYnoFOHBgHHnQs6q2Hyh08UahMa9c zNhPntMqKqDYPQcDUzNkXU6RrT2mvZ4FFAHrxlcZPg3G/daAIOEGvevXFNnFo31Lq7FI ctGOpdzBsE2amwNV2+gs//LppEHFC4onL8ek64qCgbCvX4M361/gq/M5LBIV1yT01u/6 1kvUqzlD8HQFtmXIWqeeJgI4666EvSOf19PDskfTkqfenjIaMzFRvhALInCj9BqZZGaK QCOw== X-Received: by 10.194.184.174 with SMTP id ev14mr14194893wjc.95.1432316818353; Fri, 22 May 2015 10:46:58 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id g5sm4164958wjq.6.2015.05.22.10.46.57 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 10:46:57 -0700 (PDT) From: Oleh Krehel To: Andreas Schwab Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <87vbfko7nq.fsf@igel.home> Date: Fri, 22 May 2015 19:40:44 +0200 In-Reply-To: <87vbfko7nq.fsf@igel.home> (Andreas Schwab's message of "Fri, 22 May 2015 19:15:37 +0200") Message-ID: <87zj4wmrxf.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Andreas Schwab writes: > Oleh Krehel writes: > >> I attach a patch that sets ascent/descent to 0 specifically for the >> problematic font family "Latin Modern Math". > > Why only this family? That's the one that causes problems on my machine. I don't know any others. Of course, the list can be extended. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 14:16:03 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 18:16:03 +0000 Received: from localhost ([127.0.0.1]:53143 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvrUI-0000ty-4S for submit@debbugs.gnu.org; Fri, 22 May 2015 14:16:03 -0400 Received: from mtaout27.012.net.il ([80.179.55.183]:32929) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvrUE-0000td-Tf for 20628@debbugs.gnu.org; Fri, 22 May 2015 14:16:00 -0400 Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NOR00I00ISVCE00@mtaout27.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 21:11:05 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00JHSJUHH520@mtaout27.012.net.il>; Fri, 22 May 2015 21:11:05 +0300 (IDT) Date: Fri, 22 May 2015 21:15:51 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87twv44lnc.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83bnhc4gx4.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 18:33:43 +0200 > > > Math fonts are notorious for requesting huge ascent and descent > > values. I always disable them using fontsets. > > Can you explain what are fontsets Type "i fontset RET" in the ELisp manual and "i fontsets RET" in the Emacs User manual, and you will be able to read about that. The latter includes (in the section next to the one where the above command lands you) several examples of how to set up your fontset to display certain ranges of characters with specific fonts. > and how to use the to disable ascent/descent in math? You cannot disable that. What you can do is find a font that covers the same range of characters, but does not specify such huge ascend and descent values. > Is it possible for Emacs to do so by default? You mean, have the default fontset set up to avoid the problem? The difficulty with that is that the fonts we'd need to put into the default fontset are not free, and there's an understandable reluctance to advertise them. > maybe Emacs could fix the problem specifically for this file / font > family. That's what gedit does, I guess. It would be nice if someone could look at gedit sources and describe what it does to avoid the problem. Finding such a solution is what this discussion is all about, no? From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 14:19:08 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 18:19:08 +0000 Received: from localhost ([127.0.0.1]:53151 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvrXI-0000zN-7L for submit@debbugs.gnu.org; Fri, 22 May 2015 14:19:08 -0400 Received: from mtaout29.012.net.il ([80.179.55.185]:42991) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvrXF-0000ys-Mg for 20628@debbugs.gnu.org; Fri, 22 May 2015 14:19:06 -0400 Received: from conversion-daemon.mtaout29.012.net.il by mtaout29.012.net.il (HyperSendmail v2007.08) id <0NOR00M00JYMXD00@mtaout29.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 21:18:13 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout29.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00MG8K6C9F10@mtaout29.012.net.il>; Fri, 22 May 2015 21:18:13 +0300 (IDT) Date: Fri, 22 May 2015 21:18:58 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87egm84kp2.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83a8ww4grx.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 18:54:17 +0200 > > I attach a patch that sets ascent/descent to 0 specifically for the > problematic font family "Latin Modern Math". That's hardly TRT. Even if we'd want to "fix" some fonts, setting ascent/descent to zero can only be justified if someone would examine all of the characters of that font and verify that none of then needs a non-zero value of ascent/descent, or tell us which (smaller) values are actually needed. But what I'd really like to do is find out how do other applications avoid this problem. I thought that's what we wanted to do in this thread. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 14:24:41 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 18:24:41 +0000 Received: from localhost ([127.0.0.1]:53155 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvrce-00017G-Fu for submit@debbugs.gnu.org; Fri, 22 May 2015 14:24:41 -0400 Received: from mail-wi0-f169.google.com ([209.85.212.169]:36291) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvrcc-000172-27 for 20628@debbugs.gnu.org; Fri, 22 May 2015 14:24:38 -0400 Received: by wizk4 with SMTP id k4so55644386wiz.1 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 11:24:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=WJqSsNOXLjX/g6kOkCBZz7csncy4ettAD5INCDkg2EE=; b=V8zkJSXBn2iDo3rA1q9L1W8du1/jrWxxnKDiiiVD2FyD0wosOyQe+tvGM/iilUseSt rMMdqpf59oW9BYrczth1XxybEFhUbaPN0yUGAi6Hj05pjQwBPbUSv+ntrwhnH9Hgee9+ jQvG2/GSkUlVJn3Le5aEfhfjmdKSX0dEqMsaVoc968cdThGx04fNNoQcB3rI8azafukl iP04j91l7ZOD8WO09WRiQvDq8fwT3SVE4DCg/8EHDBpBGAfVUYjJPbOTb72f3iGh0rqa kuDCY7wiqUFHUuI4eL//vOoIpytQxbzSpCiDdXuA2AKYgD6xAytcnvn2f5th48Az8x2F fTSg== X-Received: by 10.194.205.101 with SMTP id lf5mr17692129wjc.42.1432319072209; Fri, 22 May 2015 11:24:32 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id yz3sm4287163wjc.19.2015.05.22.11.24.31 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 11:24:31 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> Date: Fri, 22 May 2015 20:18:17 +0200 In-Reply-To: <83a8ww4grx.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 21:18:58 +0300") Message-ID: <87lhggmq6u.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 18:54:17 +0200 >> >> I attach a patch that sets ascent/descent to 0 specifically for the >> problematic font family "Latin Modern Math". > > That's hardly TRT. Why not? "Latin Modern Math" has likely been unchanged in ages and isn't getting changed soon; and we know that it causes a bug. > But what I'd really like to do is find out how do other applications > avoid this problem. I thought that's what we wanted to do in this > thread. Would be great to know this. Unfortunately, I can't do much to help. I barely found how Emacs sets the font, thanks to you. I don't know if it's easy to do with gedit. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 14:43:23 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 18:43:23 +0000 Received: from localhost ([127.0.0.1]:53159 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvrul-0001XU-1d for submit@debbugs.gnu.org; Fri, 22 May 2015 14:43:23 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:57740) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvrue-0001XC-O6 for 20628@debbugs.gnu.org; Fri, 22 May 2015 14:43:21 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOR00800KPT7K00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 21:43:10 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR008FILBX6940@a-mtaout20.012.net.il>; Fri, 22 May 2015 21:43:10 +0300 (IDT) Date: Fri, 22 May 2015 21:43:09 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87lhggmq6u.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <838ucg4fnm.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87lhggmq6u.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 20:18:17 +0200 > > Eli Zaretskii writes: > > >> From: Oleh Krehel > >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > >> Date: Fri, 22 May 2015 18:54:17 +0200 > >> > >> I attach a patch that sets ascent/descent to 0 specifically for the > >> problematic font family "Latin Modern Math". > > > > That's hardly TRT. > > Why not? Because you assume no one will want to see that font in its original metrics, and don't provide any way for users that might want that to get that back. There's no "fire escape". > "Latin Modern Math" has likely been unchanged in ages and isn't > getting changed soon; and we know that it causes a bug. Isn't it much easier (and cleaner) to set up Emacs to not use that font for these characters? There are quite a few good fonts out there that support these symbols without such huge ascent/descent values, just use them instead. > > But what I'd really like to do is find out how do other applications > > avoid this problem. I thought that's what we wanted to do in this > > thread. > > Would be great to know this. Unfortunately, I can't do much to help. Well, I hope someone does. Thanks for your efforts, regardless. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 14:57:19 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 18:57:20 +0000 Received: from localhost ([127.0.0.1]:53163 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvs8F-0001qa-04 for submit@debbugs.gnu.org; Fri, 22 May 2015 14:57:19 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:50613) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvs8A-0001qK-RS for 20628@debbugs.gnu.org; Fri, 22 May 2015 14:57:16 -0400 Received: from [128.30.9.212] ([128.30.9.212]) by mrelayeu.kundenserver.de (mreue002) with ESMTPSA (Nemesis) id 0M0p4h-1Z9PEz2o4V-00v73j; Fri, 22 May 2015 20:57:06 +0200 Message-ID: <555F7BFD.2090105@live.com> Date: Fri, 22 May 2015 14:57:01 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii , Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> In-Reply-To: <83bnhc4gx4.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:uod2yAPeSVt0Qt0HmtdR0WxtbwoPOHOG97SomZyL1WdYYGPnhLE vpR72G2i4ykKys37KlcwP5+av0vWmHEGACG1pVAo7LAlfF1HhC/BW02oEo1BgriwIBfsoUF GclUDhT+PwUMuQ5rneFynTXIE5x9867db9fz7ox2wm/JKEwI4lxTziw1Et0d0a3wKcCWd2W 1hcD4DRbKeohfYY8gDTtg== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/22/2015 02:15 PM, Eli Zaretskii wrote: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 18:33:43 +0200 >> >>> Math fonts are notorious for requesting huge ascent and descent >>> values. I always disable them using fontsets. >> > > It would be nice if someone could look at gedit sources and describe > what it does to avoid the problem. Finding such a solution is what > this discussion is all about, no? I don't know much about gedit's source code, nor how fonts are handled. However, I'm not sure if gedit can really give us much information: indeed, Emacs is the only application that behaves this way on my system. LibreOffice and Thunderbird, for example, display these characters fine. Here is an hypothesis. When I open Latin Modern in FontForge, I see two types of ascent and descent values: the ones in the "General" tab are 806 and 194, and the ones in the OS/2 tab, in particular Win Ascent and Win Descent, are 3560 and 3060. Such a discrepancy does not seem to exist in the few well-behaved fonts that I checked. Could it be that most applications use the first set of values, but Emacs relies on the second? Clment. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 14:59:27 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 18:59:27 +0000 Received: from localhost ([127.0.0.1]:53171 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsAJ-0001tv-9P for submit@debbugs.gnu.org; Fri, 22 May 2015 14:59:27 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:36469) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsAH-0001ti-MK for 20628@debbugs.gnu.org; Fri, 22 May 2015 14:59:26 -0400 Received: by wizk4 with SMTP id k4so56396779wiz.1 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 11:59:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=nI+0/sg2l5kf8J0GV2CWxGrHbssfj18H0PJ7uW61/mY=; b=WtcMJgvScaR2wuEADiLYJrJOIYqZ03+lGEYQSr/gQd4iT/HNi4IHgCo+WSWtb0uonE McPvA2Xg1E5emAsPo8OABe6WL5ZFoX3KWUu92fu+mU9uJso9HXXFsKWbT5WPl0JDQG7T ThsFGiYRmpXd6hDEwNh7uwofPQhIHe7pOmpaqZEFe7mbhIn1lqIYO5116O5VwDUm+Kc4 V0biApRu7JVn4qsMN22CNUym7u/ocKM6cISdYc2fja8LjPWR87Z2V51TSdHZYOG85XGu eEmzCzNUsXic/PFFfdaNaRxM6NeOyz5CM6Sil8nok5FAO+4fBV2BUTP+zNl/WE4crJOc JzKA== X-Received: by 10.180.85.231 with SMTP id k7mr10034149wiz.93.1432321159953; Fri, 22 May 2015 11:59:19 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id bm9sm4407301wjc.21.2015.05.22.11.59.19 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 11:59:19 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87lhggmq6u.fsf@gmail.com> <838ucg4fnm.fsf@gnu.org> Date: Fri, 22 May 2015 20:53:05 +0200 In-Reply-To: <838ucg4fnm.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 21:43:09 +0300") Message-ID: <87egm8moku.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Isn't it much easier (and cleaner) to set up Emacs to not use that > font for these characters? There are quite a few good fonts out there > that support these symbols without such huge ascent/descent values, > just use them instead. It may be, but I've noticed this problem a month ago with no idea how to fix it. And even now, I still have to research some more: find a good font and write down the needed setting. Most users won't go to such lengths to fix a visual bug, they'll just be silently annoyed and unhappy. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 15:03:39 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 19:03:39 +0000 Received: from localhost ([127.0.0.1]:53175 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsEM-000214-NW for submit@debbugs.gnu.org; Fri, 22 May 2015 15:03:39 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:62094) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsEJ-00020q-Ti for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:03:36 -0400 Received: from [128.30.9.212] ([128.30.9.212]) by mrelayeu.kundenserver.de (mreue101) with ESMTPSA (Nemesis) id 0LsQ2q-1ZK68V2Qy8-0122xE; Fri, 22 May 2015 21:03:27 +0200 Message-ID: <555F7D7C.8070503@live.com> Date: Fri, 22 May 2015 15:03:24 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii , Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> In-Reply-To: <83bnhc4gx4.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:KkoAZdJ+VXbGsCGGYxKU2lUUeb6dx+2kQtDA/xDlxHlF+Pc56Dt DJolXctqHSCOSW6wjhlb+5BJahMyKnrrqDitT/QFXVmMvyudPIO7zrfw0h3B3lNqB6QWSLr PHhfF4G9L9TCV0gDtYUsm6lhERAsdRLoRG/wwDtIIzTYu46rKadq36QkBLaeceZFuTGzjTl EUVDkByxKVqtsrcn6n0Kg== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/22/2015 02:15 PM, Eli Zaretskii wrote: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 18:33:43 +0200 >> >>> Math fonts are notorious for requesting huge ascent and descent >>> values. I always disable them using fontsets. >> >> Can you explain what are fontsets > > Type "i fontset RET" in the ELisp manual and "i fontsets RET" in the > Emacs User manual, and you will be able to read about that. The > latter includes (in the section next to the one where the above > command lands you) several examples of how to set up your fontset to > display certain ranges of characters with specific fonts. I believe you have something like the following line in mind: (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) Indeed, this fixes the problem. Unfortunately, this problem makes it hard for package developers to make use of prettify-symbols-mode. Indeed, programming languages like Agda or Gallina (Coq) would gain a lot from heavy prettification, but since the default fallback font tends to be one of these badly behaved TeX fonts, users of Adga and Coq packages will often run into this problem if we enable prettification by default at the package level the package level. IOW, it's currently hard to come up with a workaround that does not involve user intervention at the moment. > (...) >> Is it possible for Emacs to do so by default? > > You mean, have the default fontset set up to avoid the problem? The > difficulty with that is that the fonts we'd need to put into the > default fontset are not free, and there's an understandable reluctance > to advertise them. Symbola (in package ttf-ancient-fonts in Debian) actually seems to have good coverage for the kind of math symbols that triggers fallback to TeX fonts. Clment. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 15:05:38 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 19:05:38 +0000 Received: from localhost ([127.0.0.1]:53179 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsGG-000240-Pb for submit@debbugs.gnu.org; Fri, 22 May 2015 15:05:37 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:58504) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsGE-00023m-54 for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:05:35 -0400 Received: from [128.30.9.212] ([128.30.9.212]) by mrelayeu.kundenserver.de (mreue104) with ESMTPSA (Nemesis) id 0Mhl9H-1YYxuu22Hz-00Mvv4; Fri, 22 May 2015 21:05:27 +0200 Message-ID: <555F7DF5.50400@live.com> Date: Fri, 22 May 2015 15:05:25 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Oleh Krehel , Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87lhggmq6u.fsf@gmail.com> <838ucg4fnm.fsf@gnu.org> <87egm8moku.fsf@gmail.com> In-Reply-To: <87egm8moku.fsf@gmail.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:wUtsW+IFYQBdgQEAxP/iYqKg2OdMqZhZYxAXT0SJjORpeI5AQYS RIdtSvZ6KCxHAZnmc87N5H76JJ5lV+tZabR/NKHoZRg13K4oLPM6S+ETvVSyjrVRsDw7hO8 OEkP9VfD3tgm7jXpXU3YhlBiqjn3HStr05TbRNt1892dU/6Ff6S3yanvEmlFMW5GCZ+xk/X g+tJ8D4OaFQ5whbviy7tw== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/22/2015 02:53 PM, Oleh Krehel wrote: > Eli Zaretskii writes: > >> Isn't it much easier (and cleaner) to set up Emacs to not use that >> font for these characters? There are quite a few good fonts out there >> that support these symbols without such huge ascent/descent values, >> just use them instead. > > It may be, but I've noticed this problem a month ago with no idea how to > fix it. And even now, I still have to research some more: find a good > font and write down the needed setting. Most users won't go to such > lengths to fix a visual bug, they'll just be silently annoyed and > unhappy. I agree with this statement. For the record, the correct invocation is (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) and Symbola is in package ttf-ancient-fonts in Debian. Clment. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 15:09:24 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 19:09:24 +0000 Received: from localhost ([127.0.0.1]:53183 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsJv-0002AH-Fs for submit@debbugs.gnu.org; Fri, 22 May 2015 15:09:24 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:55216) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsJr-0002A0-SN for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:09:21 -0400 Received: from [128.30.9.212] ([128.30.9.212]) by mrelayeu.kundenserver.de (mreue104) with ESMTPSA (Nemesis) id 0LtG3f-1ZJGxw3ybT-012r6h; Fri, 22 May 2015 21:09:12 +0200 Message-ID: <555F7ED7.7020107@live.com> Date: Fri, 22 May 2015 15:09:11 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii , Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87lhggmq6u.fsf@gmail.com> <838ucg4fnm.fsf@gnu.org> In-Reply-To: <838ucg4fnm.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:dK+23joowURDsDJXfvk3yVgLQmHnIXZdX52RIufHWZYL2edTiF8 RcHqnZjQCW9WkNLb4Jw53J4qVxthxGOOVsbChDg2yCDwgusY/HFX6msQeVRr4RQGblpUgst UN/tZbUINTL65cvKfwko6IW0WS1teA6WOSMRb698+brdaongSNS//Bax1TQ+Hjj/VuE0Sxg ozS1uiZ/Q53PGdo+Vti0w== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/22/2015 02:43 PM, Eli Zaretskii wrote: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 20:18:17 +0200 >> >> Eli Zaretskii writes: >> >>>> From: Oleh Krehel >>>> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >>>> Date: Fri, 22 May 2015 18:54:17 +0200 >>>> >>>> I attach a patch that sets ascent/descent to 0 specifically for the >>>> problematic font family "Latin Modern Math". >>> >>> That's hardly TRT. >> >> Why not? > > Because you assume no one will want to see that font in its original > metrics, and don't provide any way for users that might want that to > get that back. There's no "fire escape". If we don't find what causes this strange ascent computation, and as a slightly more general approach that the patch above, what about including an ascent-override-alist at the Lisp level, which could by default contain ("Latin Modern Math" . 0) and maybe other entries for a number of other Latin Modern variants? From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 15:15:49 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 19:15:49 +0000 Received: from localhost ([127.0.0.1]:53188 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsQ8-0002KO-PH for submit@debbugs.gnu.org; Fri, 22 May 2015 15:15:49 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:62409) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsQ6-0002K8-S0 for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:15:48 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOR00800MSZGY00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 22:15:40 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR0087LMU4GW00@a-mtaout20.012.net.il>; Fri, 22 May 2015 22:15:40 +0300 (IDT) Date: Fri, 22 May 2015 22:15:39 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <555F7BFD.2090105@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <83617k4e5g.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> <555F7BFD.2090105@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 14:57:01 -0400 > From: Clment Pit--Claudel > > CC: 20628@debbugs.gnu.org > > Here is an hypothesis. When I open Latin Modern in FontForge, I see two types of ascent and descent values: the ones in the "General" tab are 806 and 194, and the ones in the OS/2 tab, in particular Win Ascent and Win Descent, are 3560 and 3060. Such a discrepancy does not seem to exist in the few well-behaved fonts that I checked. > > Could it be that most applications use the first set of values, but Emacs relies on the second? Maybe. I know nothing about these internals of the fonts, sorry. I hope someone more knowledgeable could chime in and tell us what, if anything, to do with this discrepancy. If you can find such person(s) on some relevant forum, please invite them to join this discussion and help us fix this problem. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 15:27:25 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 19:27:25 +0000 Received: from localhost ([127.0.0.1]:53196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsbM-0002cc-Sf for submit@debbugs.gnu.org; Fri, 22 May 2015 15:27:25 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:50464) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvsbK-0002cM-DE for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:27:22 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NOR00F00MX9M400@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 22:23:06 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00BPXN6H8N40@mtaout25.012.net.il>; Fri, 22 May 2015 22:23:06 +0300 (IDT) Date: Fri, 22 May 2015 22:27:15 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87egm8moku.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83382o4dm4.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87lhggmq6u.fsf@gmail.com> <838ucg4fnm.fsf@gnu.org> <87egm8moku.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 20:53:05 +0200 > > I've noticed this problem a month ago with no idea how to > fix it. And even now, I still have to research some more: find a good > font and write down the needed setting. Most users won't go to such > lengths to fix a visual bug, they'll just be silently annoyed and > unhappy. If we document the solution in the user manual, they could read it there and act accordingly. Or they can discover this discussion by googling. As for good fonts, try these: Styx (but not Styx Math!), Symbola, or Quivira. I think they all cover that block. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 15:35:26 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 19:35:26 +0000 Received: from localhost ([127.0.0.1]:53200 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvsj8-0002qg-0F for submit@debbugs.gnu.org; Fri, 22 May 2015 15:35:26 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:40339) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvsj3-0002qR-Ar for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:35:22 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NOR00I00MUGSV00@a-mtaout22.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 22:35:14 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00IGFNQQT710@a-mtaout22.012.net.il>; Fri, 22 May 2015 22:35:14 +0300 (IDT) Date: Fri, 22 May 2015 22:35:13 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <555F7D7C.8070503@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <831ti84d8u.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> <555F7D7C.8070503@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 15:03:24 -0400 > From: Clment Pit--Claudel > > CC: 20628@debbugs.gnu.org > > I believe you have something like the following line in mind: > > (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) That's too radical. You could be more selective, e.g.: (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") That's because you may wish using other fonts for other Unicode blocks. > Indeed, this fixes the problem. Unfortunately, this problem makes it hard for package developers to make use of prettify-symbols-mode. Indeed, programming languages like Agda or Gallina (Coq) would gain a lot from heavy prettification, but since the default fallback font tends to be one of these badly behaved TeX fonts, users of Adga and Coq packages will often run into this problem if we enable prettification by default at the package level the package level. IOW, it's currently hard to come up with a workaround that does not involve user intervention at the moment. Couldn't those package developers recommend fontset settings, of even include ready-to-use .emacs snippets as part of the package? > > (...) > >> Is it possible for Emacs to do so by default? > > > > You mean, have the default fontset set up to avoid the problem? The > > difficulty with that is that the fonts we'd need to put into the > > default fontset are not free, and there's an understandable reluctance > > to advertise them. > > Symbola (in package ttf-ancient-fonts in Debian) actually seems to have good coverage for the kind of math symbols that triggers fallback to TeX fonts. Yes, and there are others (I mentioned them in my other message). From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 15:37:16 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 19:37:16 +0000 Received: from localhost ([127.0.0.1]:53204 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvsku-0002tK-1d for submit@debbugs.gnu.org; Fri, 22 May 2015 15:37:16 -0400 Received: from mtaout27.012.net.il ([80.179.55.183]:41581) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvskq-0002t6-RB for 20628@debbugs.gnu.org; Fri, 22 May 2015 15:37:13 -0400 Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NOR00B00MZLFM00@mtaout27.012.net.il> for 20628@debbugs.gnu.org; Fri, 22 May 2015 22:32:19 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOR00DK3NLV3700@mtaout27.012.net.il>; Fri, 22 May 2015 22:32:19 +0300 (IDT) Date: Fri, 22 May 2015 22:37:05 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <555F7ED7.7020107@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <83zj4w2yla.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87lhggmq6u.fsf@gmail.com> <838ucg4fnm.fsf@gnu.org> <555F7ED7.7020107@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 15:09:11 -0400 > From: Clment Pit--Claudel > > CC: 20628@debbugs.gnu.org > > If we don't find what causes this strange ascent computation, and as a slightly more general approach that the patch above, what about including an ascent-override-alist at the Lisp level, which could by default contain ("Latin Modern Math" . 0) and maybe other entries for a number of other Latin Modern variants? > I'd rather tell users how to avoid these fonts entirely. Making such ad-hoc changes to font metrics sounds too much for my palate, unless some expert tells us this is how everybody else does it. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 16:14:57 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 20:14:57 +0000 Received: from localhost ([127.0.0.1]:53238 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvtLN-0003lL-9g for submit@debbugs.gnu.org; Fri, 22 May 2015 16:14:57 -0400 Received: from mail-wi0-f177.google.com ([209.85.212.177]:35823) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvtLK-0003l7-4K for 20628@debbugs.gnu.org; Fri, 22 May 2015 16:14:54 -0400 Received: by wicmx19 with SMTP id mx19so57827265wic.0 for <20628@debbugs.gnu.org>; Fri, 22 May 2015 13:14:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=VT0qph1yWEZbbi85uGKRzSvV3gailS/mcFlIJuLpQ+o=; b=DOr5sp3kxujnCy7JS0dp80z+evuGdlnVKjQL/2zBc0eouO0+fbA0CSYoimvQ1vxYAr spQRRoA7rUnMothaileX6F0HKHrTFviixRLtZXo5pOZJlo80y62kO8LQ3KZsTQxShp8d QcaPilHCNnffKyr7aGBZUruCBJub2sWZfpT+CGyGqpS9MwcS1CdklNmFxDYVqtNeB5he aTda/PyUpddoJDGLf2ZqPN9jWC11JjkV94+7fg3sjfgiEVDNiqA/SpXevzs0ed43VB2c AruhATMscTZlKUSiUW7f7NiH4lV1gZIVHpmYjYAPfDSIsA4bd+ldZhGtV89BQ73W+1nx O+FQ== X-Received: by 10.180.103.231 with SMTP id fz7mr10622877wib.35.1432325688601; Fri, 22 May 2015 13:14:48 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id 12sm4678377wjw.17.2015.05.22.13.14.47 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 22 May 2015 13:14:47 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> Date: Fri, 22 May 2015 22:08:34 +0200 In-Reply-To: <83a8ww4grx.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 22 May 2015 21:18:58 +0300") Message-ID: <87382oml31.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Fri, 22 May 2015 18:54:17 +0200 >> >> I attach a patch that sets ascent/descent to 0 specifically for the >> problematic font family "Latin Modern Math". > > That's hardly TRT. Even if we'd want to "fix" some fonts, setting > ascent/descent to zero can only be justified if someone would examine > all of the characters of that font and verify that none of then needs > a non-zero value of ascent/descent, or tell us which (smaller) values > are actually needed. Actually, I just found out that "Latin Modern Math" is inherently completely broken. If I set it in gedit, even the ASCII chars have ridiculous ascent/descent. So "Latin Modern Math" is basically unusable unless a program specifically modifies ascent/descent, like I did. The reason gedit was working fine previously is that it never used "Latin Modern Math", it used some other font. So it makes sense to "fix" a font that is common and inherently broken. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 16:25:25 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 20:25:25 +0000 Received: from localhost ([127.0.0.1]:53242 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvtVT-000408-LB for submit@debbugs.gnu.org; Fri, 22 May 2015 16:25:24 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:58506) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvtVP-0003zt-82 for 20628@debbugs.gnu.org; Fri, 22 May 2015 16:25:21 -0400 Received: from [128.30.9.221] ([128.30.9.221]) by mrelayeu.kundenserver.de (mreue103) with ESMTPSA (Nemesis) id 0LfY1R-1ZWuD84BNR-00p8TF; Fri, 22 May 2015 22:25:12 +0200 Message-ID: <555F90A1.9080001@live.com> Date: Fri, 22 May 2015 16:25:05 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> <555F7D7C.8070503@live.com> <831ti84d8u.fsf@gnu.org> In-Reply-To: <831ti84d8u.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:XRPGp9qA1YNgLuVxMhN/xytcZj06Q+zulpLirQhRNiBrdilNaTK EmkxjkTkAjsn8nvvoAPouR+bKrKGA/VZvXbGM7Cj6/h/ggPFGT/+CBI92oMld+qnq5wWrba ZkiRN0KGsS1RHrjmkMyf7gvN963xlh616I0GLHfkv8GvM+D8h5p1FPsG2cxn5XP8oJSV70f MIERD1JdsUzs3bTjw6jFQ== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/22/2015 03:35 PM, Eli Zaretskii wrote: >> Date: Fri, 22 May 2015 15:03:24 -0400 >> From: Clment Pit--Claudel >> >> CC: 20628@debbugs.gnu.org >> >> I believe you have something like the following line in mind: >> >> (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) > > That's too radical. You could be more selective, e.g.: > > (set-fontset-font "fontset-default" > '(#x1d400 . #x1d7ff) > "Symbola") > > That's because you may wish using other fonts for other Unicode > blocks. Note that I added the 'append parameter at the end of that line, so if it is executed last (and if I understand correctly!) then it should not override any other preferences. >> Indeed, this fixes the problem. Unfortunately, this problem makes it hard for package developers to make use of prettify-symbols-mode. Indeed, programming languages like Agda or Gallina (Coq) would gain a lot from heavy prettification, but since the default fallback font tends to be one of these badly behaved TeX fonts, users of Adga and Coq packages will often run into this problem if we enable prettification by default at the package level the package level. IOW, it's currently hard to come up with a workaround that does not involve user intervention at the moment. > > Couldn't those package developers recommend fontset settings, of even > include ready-to-use .emacs snippets as part of the package? Indeed. In fact, that's what I already do with company-coq ( https://github.com/cpitclaudel/company-coq/#troubleshooting ). However, people are still reporting this as a bug. I am not sure what I can do as a package developer to make it work "out of the box". An option to override the line height would be helpful, since I could do it at the package level; advanced users could then tweak things further (eg. by installing better fonts), but basic users would still benefit from decent defaults. This is particularly relevant in the Coq case, since Emacs (as part of the Proof General package) is one of the main IDEs for Coq, and a number of users have no experience with Emacs when they start using it. Clment. From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 17:50:17 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 21:50:17 +0000 Received: from localhost ([127.0.0.1]:53265 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvupb-0007Mo-HE for submit@debbugs.gnu.org; Fri, 22 May 2015 17:50:16 -0400 Received: from mout.gmx.net ([212.227.17.22]:55987) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YvupY-0007MM-CF for 20628@debbugs.gnu.org; Fri, 22 May 2015 17:50:13 -0400 Received: from gnu.org ([178.115.130.41]) by mail.gmx.com (mrgmx101) with ESMTPSA (Nemesis) id 0MC8iq-1Z4gGp1jd2-008sBJ; Fri, 22 May 2015 23:50:03 +0200 Date: Fri, 22 May 2015 23:49:59 +0200 (CEST) Message-Id: <20150522.234959.238191883.wl@gnu.org> To: eliz@gnu.org Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts From: Werner LEMBERG In-Reply-To: <83617k4e5g.fsf@gnu.org> References: <83bnhc4gx4.fsf@gnu.org> <555F7BFD.2090105@live.com> <83617k4e5g.fsf@gnu.org> X-Mailer: Mew version 6.5 on Emacs 25.0.50.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:IczNBZWWDbAuyz4cHa3imSJrW5ZZ6v8BfDrQpMqpDo5bqq8B3R7 x9KaRpPkTUkA7fEgC2WYfI9xZ7EddAGChoFHn73N0VcQ2/JJd7D40f9sQiC+WXXQV4gi3c6 zfgGgIVUs41rHWDsou5gBiFCaMr9PZThJTZl2QDafg40ZumJbq1+jOMYuf8PX/bW2kk147A uDG0PxjbtyUfonMiN/MLQ== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) >> Here is an hypothesis. When I open Latin Modern in FontForge, I see >> two types of ascent and descent values: the ones in the "General" >> tab are 806 and 194, and the ones in the OS/2 tab, in particular >> Win Ascent and Win Descent, are 3560 and 3060. Such a discrepancy >> does not seem to exist in the few well-behaved fonts that I >> checked. Could it be that most applications use the first set of >> values, but Emacs relies on the second? Actually, there are *three* sets of font-wide ascender and descender values in TrueType fonts: (1) From the `hhea' table: The `ascent' and `descent' fields, together with `linegap'. Used by Apple, cf. https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6hhea.html These values are normally set by the font developer; there is no relation to the actual ascender and descender values of individual glyphs. (2) From the `OS/2' table: The `usWinAscent' and `usWinDescent' fields, for Windows. Originally, those values are the ymax and ymin values from all characters in the Windows ANSI character set. Today, however, it is often set to the ymax and ymin values of all glyphs in a font to avoid nasty clipping on (some? older?) Windows applications. (3) From the `OS/2' table: The `sTypoAscender' and `sTypoDescender' fields, together with `sTypoLinegap'. For Windows. These values are normally set by the font developer; there is no relation to the actual ascender and descender values of individual glyphs. Note that (1) and (3) are defined differently. Mac fonts often miss an `OS/2' table, making (2) and (3) unavailable. Additionally, many fonts have incompatible or erroneous values for any of the fields. It's really a mess, unfortunately. IMHO the bes solution is to completely ignore font-wide ascender and descender values. Instead, use the TeX approach: set the line gap to the current size of the font, multiplied by a factor of 1.2 (and make this configurable on a font-by-font basis in case it isn't already), and increase the linegap if individual glyphs need it. Werner From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 18:44:07 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 22:44:07 +0000 Received: from localhost ([127.0.0.1]:53288 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvvfj-0001CZ-6W for submit@debbugs.gnu.org; Fri, 22 May 2015 18:44:07 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:32289) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvvfg-0001Bm-TD for 20628@debbugs.gnu.org; Fri, 22 May 2015 18:44:05 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AwEwA731xV/xaz+M5cgxCEAoVVuzcJhH6CTQQCAoE8ORQBAQEBAQEBgQpBBYNdAQEDAVYjBQsLDiYSFBgNJIg3CM8jAQEBAQEBBAEBAQEeizqFBQeELQWLRKd7gUUjhBQigngBAQE X-IPAS-Result: A0AwEwA731xV/xaz+M5cgxCEAoVVuzcJhH6CTQQCAoE8ORQBAQEBAQEBgQpBBYNdAQEDAVYjBQsLDiYSFBgNJIg3CM8jAQEBAQEBBAEBAQEeizqFBQeELQWLRKd7gUUjhBQigngBAQE X-IronPort-AV: E=Sophos;i="5.13,465,1427774400"; d="scan'208";a="121818185" Received: from 206-248-179-22.dsl.teksavvy.com (HELO pastel.home) ([206.248.179.22]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 May 2015 18:43:57 -0400 Received: by pastel.home (Postfix, from userid 20848) id ED39C24E2; Fri, 22 May 2015 18:43:56 -0400 (EDT) From: Stefan Monnier To: Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts Message-ID: References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> Date: Fri, 22 May 2015 18:43:56 -0400 In-Reply-To: <87382oml31.fsf@gmail.com> (Oleh Krehel's message of "Fri, 22 May 2015 22:08:34 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, Eli Zaretskii , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) > The reason gedit was working fine previously is that it never used > "Latin Modern Math", it used some other font. IOW Emacs doesn't seem to behave differently from other applications w.r.t this font, except for the fact that it ends up selecting up while other apps select another font instead. So the question becomes: why does Emacs select this font and how could we change ti so it selects something else. BTW, I think that using something like (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) or (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") just sucks: we don't want to say "use Symbola", but we instead want to say something like "avoid Latin Modern Math" or "ignore Latin Modern Math's ascent/descent information". Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri May 22 19:55:45 2015 Received: (at 20628) by debbugs.gnu.org; 22 May 2015 23:55:46 +0000 Received: from localhost ([127.0.0.1]:53320 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvwn3-0004Hc-7K for submit@debbugs.gnu.org; Fri, 22 May 2015 19:55:45 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:54599) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yvwmz-0004HB-5R for 20628@debbugs.gnu.org; Fri, 22 May 2015 19:55:42 -0400 Received: from [18.189.125.138] ([18.189.125.138]) by mrelayeu.kundenserver.de (mreue002) with ESMTPSA (Nemesis) id 0Lwzrl-1ZFK4s2blJ-016buf; Sat, 23 May 2015 01:55:29 +0200 Message-ID: <555FC1EC.2080509@live.com> Date: Fri, 22 May 2015 19:55:24 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Stefan Monnier , Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------020503090905060902090607" X-Provags-ID: V03:K0:zvY7tIVRBllv+VJ535+Gl4hmXFwXgB2jL8egAyfoRD/3GJx/+o5 jkRltDWqHSMqZuFIioygWP/wNUyC6m1KjpPD6IG0Bv13OzE72wzu7ZKhkWNulI0rqqpPM4z 3qABS4X+Wsryul5pb47p5zMKttStvVD1IfLAFKHsUFS5XPk5pEYXw4c0HaDjRey52jdeHBX AnlEAF56cUfOoD98Go19A== X-UI-Out-Filterresults: notjunk:1; X-Debbugs-Envelope-To: 20628 Cc: Eli Zaretskii , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" This is a multi-part message in MIME format. --------------020503090905060902090607 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit On 05/22/2015 06:43 PM, Stefan Monnier wrote: >> The reason gedit was working fine previously is that it never used >> "Latin Modern Math", it used some other font. > > IOW Emacs doesn't seem to behave differently from other applications > w.r.t this font, except for the fact that it ends up selecting up while > other apps select another font instead. No, I don't think that's correct. On my machine, explicitly selecting Latin Modern Math on Emacs yields very tall lines. Selecting it in gedit or LibreOffice or Tomboy (the notes application) does not. See the attached screenshots. > So the question becomes: why does Emacs select this font and how could > we change ti so it selects something else. If we don't have a way to detect misbehaving fonts dynamically, then I don't think that this works. Indeed, Latin Modern Math is not the only misbehaving font. > BTW, I think that using something like > > (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) > or > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") > > just sucks: we don't want to say "use Symbola", but we instead want to > say something like "avoid Latin Modern Math" or "ignore Latin Modern > Math's ascent/descent information". I don't think so; this forces us to maintain a list of misbehaving fonts. If we just say "Avoid Latin Modern Math" and the next selected font is also broken, then the problem remains (Asana Math, for example, is broken too, albeit a bit less). Ideally, we would also want to be able to use Latin Modern Math: ignoring the height issue, it's a nice font for maths symbols. Clment. --------------020503090905060902090607 Content-Type: image/png; name="Screenshot from 2015-05-22 19:54:35.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Screenshot from 2015-05-22 19:54:35.png" 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 moZh/D1ztBmGmT179scff6yqasITBEE499xzb7nlFsMw9nHbOh0hhGEYlmVbPdMwDNM0/55T 4qBmvW80d+FafratFbX6HtXBimIfDh155JGNnvrll18AYJ+9a1mdZRgmNoDWb0fn1r5vakEI oYMIBqARQgghhBBqmzYFEViWtbJum77KOmgYRvvioVZM54orrti8eXPs4CGHHDJv3rzmojl/ 7fAHIWTJkiVut7u5aBqldMmSJbfeeiscqEORfKsYhpk1a9Ynn3zSXLTdIgjCOeecc8stt5im 2UUtQUlq65DW1dWVlJQMHTq06bVjGOZ///tfQUFBWlpaB1tFCNm6dWtlZWVzM4RhGJ/P16NH j/ZNidgnJSzLHn300RkZGY1OOProo1esWEEIad8nJW0633rP/OSTT7766ivrbbNXr15jxow5 55xzdF3vrDlv1fL6669/9913O3fuBID8/Pxjjz32qquu6sRaEELo4IIBaIQQQgghhLoKy7Jz 5sxZuHBhCzm548aNu/nmm9sdg66srPR6vbEjFRUVVk500zCHlX/3F86PJoTwPE8Ief/999PS 0uK7SQipr68fP348pfQv8I14K8K1dOnSFqLtFkrp0qVLb7vtNkyCPrgQQkpLSxVFKSsry87O bvRsWVmZoiilpaVer7fjuck1NTUc11JkoKampmfPnu2riGGYF1544dNPP1VVNSsrCwAWL15s FUUIOfXUU7OyskaMGCEIwtlnnz1x4sSu+3YCIaSurm7atGmbNm2y2Ww8zwPA1q1b169fv2TJ kunTp3d8MKHhPfn+++8vLS212Wx2ux0AKisr33rrra+//vrxxx/3+Xz4m4gQ+hvCADRCCCGE EEJtk2T4wEr9+/rrr1NTU1vIyf36669vvfXW9sWFKaUOh6PRkZEjRyY8meO400477Y477tB1 va0VHRQopVYcjef5urq6RgFoQRCsDStog/3W0ETa2ipKqSAIhJD33nuvuTTY+vr6Cy+8kMbp ipagVrVjSAkhmqaxLFtWVpaZmRm/zQ6ltKysjGVZTdOgA7nqsZ03rAfDhg2zYrLxNE1buXIl tHcXDus9cNmyZfHvgbIsW9nWDMMIgqDruhWTXbZsmfVRXFdMVOszm8cee6ysrGzo0KGTJk3q 3r07AGzbtm3WrFnFxcXTp0+fNWtWBz+fs2qZPn263+8fNGjQzTff3Lt3bwDYtGnTnDlztm7d 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 XtezTWj23n2nit1rHSo7T7DzEksJGPKo57UgBTQbeNuIFvkbft1wxv2vyqWQ9rc89dRD91/d 5Zp+HeJCc/ftPXNhOmz5h/fkxLcu2nT+07GE1rRqbDvnu5+hlmwqbMXnilu1L1j09cbsi1uU elZsPt189KOueaWw2cqqXTiw9myTpoqbrRPF7UtnImkMoM7WVXLjqLnr2Ceee/rxW7tFlez4 dd0pS2CLATcN79J14ODuCQ3kY3tS8m2ae5H2xpK6MyVTZTP39MAj+c5TLAW1G/X4xNF9mzVu 2bZlQhPj8T1p5h6ex7Oqi+u0oa3TeY5FjnjUeQU9cvHbYxv/XHdQdc9xubOB6/Od22IsztVY 7+ppsL6w/0NVDUnpGfNU3kmtjTRP17ipP8+6/rAsWOdCqKX0K/DT2v1cWfPPiSu6ZC6Yt+ac S5FcaScRQni9TXn5eiMl31qlHcNSViaE+HjWHMf/hBBDBg8WQoSFhZ04cSIxMTEyMtLjmAAA AACXpy1btiQkJEgtEtso/jo0PKLaTUiSJEmSLNtk33/Y10XG2Js+njNy/aMPzT5WhTu2Xrrq ZrRrmylu6IigNT8eKvV86GWl9ma/HqwvKaj93f+5w7bo40WbThZLfkEhISGRcV1HP3ZP7IJH n12V81fO/9pWa3lVv7YvyWAQHkOpR3uRJElCkhxDrvJ41sPFVQ9DcndJBAnvyLIshCjMz1P8 rf0e0HFxcevWrRsxYkSLFi1qNTgAAADg0vHBBx/07du3CveA1k+WZZut9gsK9j9AruVG614d jXatkgLikwIOnlT9YKDLVy3Oft2vLykkvl2T0iMHThVZZbmirCg36+yxPZu3pRVa/tLZXxdq La/q1/Ylew6lXu1Fsiy7hFzl8ayHi6sehuTukggSAAAAAOpMDX3WXn1hjOp1x4RR17Y0Rjd4 7O+GxZ/NWXO2fnysE2qAFNhycOeMNUuKeUdfR+rJ+rKdW/H6vytG3flAYm52fmmFLIz+oRGh llWvvLqOKw1RG/66e1E9XFz1MCR3l0SQAAAAAFBnfHoLDgAAAOASwy04AAAAgBpRC7fgAAAA AAAAAABcvihAAwAAAAAAAAB8ggI0AAAAAAAAAMAnKEADAAAAAAAAAHyCAjQAAAAAAAAAwCco QAMAAAAAAAAAfIICNAAAAAAAAADAJyhAAwAAAAAAAAB8ggI0AAAAAAAAAMAnKEADAAAAAAAA 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 njpWYyqLLfubt9aJo28dnaqS09K0H31xqtPOiETDqdO2iDaxSuI0rSLKqz7+u6dQ2xE9eE/W XpxdqogOlz8wqZO7p6hIl9QmQa/ivB209ioijudc8+YUSWMmDY6Vq4uJdkvpkaPlTuJ03ae8 ueT1e/rofXyWFq0s/coL2sZEhIfrNCq3p/bUpR7sOWt/PJY6aVrczr2Gms1eLbfO/F/f+OJM 30kXJstPeeIjeo4dkqhQapV8HWq7llqqrdo597mHARWBGrSL+lSPcnk5hM+38D77T9db3nj/ 5du66nxnVhEeGxuprlmDJ354afFBUaNyVZX/CvFSk54V68e5dqnr6BRUJ6n9vHPncwjy8Xbv A0hN/qs0kBR8VrXXksp5JH3n3slya3Pqtlfc2CV7Sa0jtjdeCm7g/JXI/0hVI59ey+5jqK/n EBrcYOX00QOtWZ+/uoa/bNKQVnIH5CP7Txgl/fTW8mx7LRXrLc+VPjqbw3f/96ycoC+adbu6 uVent90COd2CHtk8m8bPJckjG357YxDnlLe8ib4yXOvVx+eYGcgwLte7vzaq4/UumC7KyHOw rflrfRu6LhcI33XWZGtxsIARkSAIK1euvPfeey+99NJLL7303nvvXblypSAIQaXTEtHZ4Lur WzdhZkpKSvr06nc0J+vw0cysYwePHDuUffxw9onDR09kHT2RdSwn61jOkWM5WfKv2Z1jV/UA ACAASURBVCcOZx8/fOTYoaxjB4/lHOnds29JSUkTZt7F1QN5np8xY8bQoUOHDh06Y8YMnufr 0DmrpxmK3AarDjnJNK/9t2jlXtOq3cWrPf/dU7Fyd/GaEOUWAACgoTTK3asXQnRs7OIlH1f/ T35BrdG47Wo9vfcI1+2qy3okxrTu1K2NdfNPh1Iuvbqb8tSf2/YWVpbs2/S3OOTWCf07pLVN 79417sTqnw6bvE4j5cO7XHlVm8NbS9v079WtW59RF/c2fTf39d/y7MTpe1w7645rhqbGp6a1 jqacY5qL755xzbDU+JS0xGjK+WvzH4e8Z+DvvLYTZk67fGBycsf0NqmtrFmZeRZGxKyn/vp9 j3bUzVcO7NKuTaduXaOO/PRzdiUjInvB/rz4Sydd0D4+UX1o41+5jphBN87ySMFvkb3NZ3VP 1sqISCw7dEjqO25Qm4S0Lt3aqbKPxWSM7DdgxNCowzu5MXd5ZttvFYV3nXDvXROGpSWmtU1Q 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 AAAAIBECaAAAAAAAEiGABgAAAAAgEQJoAAAAAAASIYAGAAAAACARAmgAAAAAABIhgAYAAAAA IBECaAAAAAAAEiGABgAAAAAgEQJoAAAAAAASIYAGAAAAACARAmgAAAAAABIhgAYAAAAAIBEC aAAAAAAAEiGABgAAAAAgEQJoAAAAOPDjQgAAIABJREFUAAASIYAGAAAAACARAmgAAAAAABIh gAYAAAAAIBECaAAAAAAAEiGABgAAAAAgEQJoAAAAAAASIYAGAAAAACARAmgAAAAAABIhgAYA AAAAIBECaAAAAAAAEiGABgAAAAAgEQJoAAAAAAASIYAGAAAAACARAmgAAAAAABIhgAYAAAAA IBECaAAAAAAAEiGABgAAAAAgEQJoAAAAAAASkWl40ziOk6sD4Evo+l2H1bzLb0IAAACABjMD GgAAAACARAigAQAAAABIhAAaAAAax9p0AADQEHEcC6ABAAAAAEiEABoAAAAAgEQIoAEAAAAA SIQAGgAAAACARAigAQAAAABIhAAaAAAAAIBECKABAAAAAEiEABoAAAAAgEQIoAEAAAAASIQA GgAAAACARAigAQAAAABIhAAaAAAAAIBECKABAAAAAEiEABoAAAAAgEQIoAEAAAAASIQAGgAA AACARAigAQAAAABIhAAaAAAAAIBECKABAAAAAEiEABoAAAAAgEQIoAEAAAAASIQAGgAAAACA RAigAQAAAABIhAAaAAAAAIBECKABAAAAAEiEABoAAAAAgEQIoAEAAAAASIQAGgAAAACARAig AQAAAABIhAAaAAAAAIBECKABAAAAAEhE5sknH97cNRBCCBedf9nmLmFrdufdf9xgm1tuun0T VAI02eVXXLLBNl+R36UN+Z0GJGT82E83dwkAALAlMQMaAAAAAIBECKABAAAAAEiEABoAAAAA gEQIoAEAAAAASIQAGgAAAACARAigAQCgceI43twlAADAFiCOYwE0AAAAAACJEEADAAAAAJAI ATQAAAAAAIkQQAMAAAAAkAgBNAAAAAAAiRBAAwAAAACQCAE0AAAAAACJEEADAAAAAJAIATQA AAAAAIkQQAMAAAAAkAgBNAAAAAAAiRBAAwAAAACQCAE0AAAAAACJEEADAAAAAJAIATQAAAAA AIkQQAMAAAAAkAgBNAAAAAAAiRBAAwAAAACQCAE0AAAAAACJEEADAAAAAJAIATQAAAAAAIkQ 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 --------------020503090905060902090607-- From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 02:52:46 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 06:52:46 +0000 Received: from localhost ([127.0.0.1]:53393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3IY-0007n0-Dw for submit@debbugs.gnu.org; Sat, 23 May 2015 02:52:46 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:62121) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3IT-0007mZ-Ea for 20628@debbugs.gnu.org; Sat, 23 May 2015 02:52:41 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOS00C00IO1GK00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 09:52:30 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00CGSJ3H7150@a-mtaout20.012.net.il>; Sat, 23 May 2015 09:52:30 +0300 (IDT) Date: Sat, 23 May 2015 09:52:30 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <20150522.234959.238191883.wl@gnu.org> X-012-Sender: halo1@inter.net.il To: Werner LEMBERG Message-id: <83lhgf3hw1.fsf@gnu.org> References: <83bnhc4gx4.fsf@gnu.org> <555F7BFD.2090105@live.com> <83617k4e5g.fsf@gnu.org> <20150522.234959.238191883.wl@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 23:49:59 +0200 (CEST) > Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org > From: Werner LEMBERG > > IMHO the bes solution is to completely ignore font-wide ascender and > descender values. Instead, use the TeX approach: set the line gap to > the current size of the font, multiplied by a factor of 1.2 (and make > this configurable on a font-by-font basis in case it isn't already), > and increase the linegap if individual glyphs need it. Could you perhaps look at the Emacs sources and suggest how to change the *_open functions in the *font.c back-ends, to do what you suggest above? Or at least tell how to get "the current size of the font" from the back-ends we use, which are Freetype, Fontconfig, and XLib's XLoadQueryFont? The relevant source files are xfont.c, ftfont.c, and xftfont.c. Also, how to know from the glyph metrics, in their Emacs incarnation, that an individual glyph needs an increase of the vertical space? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 03:10:21 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 07:10:21 +0000 Received: from localhost ([127.0.0.1]:53397 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3ZZ-0008Gd-9o for submit@debbugs.gnu.org; Sat, 23 May 2015 03:10:21 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:54188) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3ZU-0008GN-3V for 20628@debbugs.gnu.org; Sat, 23 May 2015 03:10:16 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NOS00200JLHUC00@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 10:05:55 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00GOHJPV2H90@mtaout25.012.net.il>; Sat, 23 May 2015 10:05:55 +0300 (IDT) Date: Sat, 23 May 2015 10:10:06 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87382oml31.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83k2vz3h2p.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 22:08:34 +0200 > > Actually, I just found out that "Latin Modern Math" is inherently > completely broken. If I set it in gedit, even the ASCII chars have > ridiculous ascent/descent. So "Latin Modern Math" is basically unusable > unless a program specifically modifies ascent/descent, like I did. > > The reason gedit was working fine previously is that it never used > "Latin Modern Math", it used some other font. > > So it makes sense to "fix" a font that is common and inherently broken. IMO, it makes even more sense to avoid using it. Patches to introduce a list of fonts to ignore while searching for a suitable font, and allow users to configure that list, will be welcome. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 03:12:23 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 07:12:23 +0000 Received: from localhost ([127.0.0.1]:53401 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3bX-0008Jd-HK for submit@debbugs.gnu.org; Sat, 23 May 2015 03:12:23 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:37831) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3bR-0008JM-Us for 20628@debbugs.gnu.org; Sat, 23 May 2015 03:12:17 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NOS00200JLHUC00@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 10:07:57 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00GZQJT92H90@mtaout25.012.net.il>; Sat, 23 May 2015 10:07:57 +0300 (IDT) Date: Sat, 23 May 2015 10:12:08 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <555F90A1.9080001@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <83iobj3gzb.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> <555F7D7C.8070503@live.com> <831ti84d8u.fsf@gnu.org> <555F90A1.9080001@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 16:25:05 -0400 > From: Clment Pit--Claudel > > CC: ohwoeowho@gmail.com, 20628@debbugs.gnu.org > > > Couldn't those package developers recommend fontset settings, of even > > include ready-to-use .emacs snippets as part of the package? > > Indeed. In fact, that's what I already do with company-coq ( https://github.com/cpitclaudel/company-coq/#troubleshooting ). However, people are still reporting this as a bug. > > I am not sure what I can do as a package developer to make it work "out of the box". An option to override the line height would be helpful, since I could do it at the package level; advanced users could then tweak things further (eg. by installing better fonts), but basic users would still benefit from decent defaults. How about setting the list of fonts to be ignored (assuming Emacs acquires such a capability) -- would that be useful for packages? From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 03:21:01 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 07:21:02 +0000 Received: from localhost ([127.0.0.1]:53405 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3jt-0008Vn-CM for submit@debbugs.gnu.org; Sat, 23 May 2015 03:21:01 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:33320) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3jn-0008VT-0s for 20628@debbugs.gnu.org; Sat, 23 May 2015 03:20:55 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOS00C00K37LY00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 10:20:44 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00C8MKEK5790@a-mtaout20.012.net.il>; Sat, 23 May 2015 10:20:44 +0300 (IDT) Date: Sat, 23 May 2015 10:20:45 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83h9r33gky.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Stefan Monnier > Cc: Eli Zaretskii , clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 22 May 2015 18:43:56 -0400 > > > The reason gedit was working fine previously is that it never used > > "Latin Modern Math", it used some other font. > > IOW Emacs doesn't seem to behave differently from other applications > w.r.t this font, except for the fact that it ends up selecting up while > other apps select another font instead. > > So the question becomes: why does Emacs select this font and how could > we change ti so it selects something else. Emacs selects that font because it's available, and claims support for the particular character Emacs needs to display. The only mechanism we currently have for tailoring the fonts used for specific ranges of characters is by defining the standard fontsets. The ones we provide out of the box are set up on fontset.el, which see. > BTW, I think that using something like > > (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) > or > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") > > just sucks: we don't want to say "use Symbola", but we instead want to > say something like "avoid Latin Modern Math" or "ignore Latin Modern > Math's ascent/descent information". We don't have such a feature, AFAIK. At least not a documented one. And I don't agree with the "just sucks" part: there are use cases when the user might prefer a specific font for valid reason, e.g. the quality of the glyphs. If there are more than a few fonts on the system that support the same range of characters, it is easier to prefer one than to un-prefer the rest. Also, there are fonts that claim support for a specific block, but in fact support that block only partially, in some extreme cases just a few characters. Emacs's naive (due to efficiency considerations) way of looking up suitable fonts might yield a negative result, where a font is chosen that claims support, and then turns out not to have a glyph for the specific character we need to display. In this situation, making a fontset that names a font with good coverage for some block is the way to go. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 03:24:15 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 07:24:16 +0000 Received: from localhost ([127.0.0.1]:53409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3n2-000097-1c for submit@debbugs.gnu.org; Sat, 23 May 2015 03:24:15 -0400 Received: from mtaout27.012.net.il ([80.179.55.183]:53334) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw3mv-00008X-SX for 20628@debbugs.gnu.org; Sat, 23 May 2015 03:24:09 -0400 Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NOS00200KBBFX00@mtaout27.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 10:19:12 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00IGIKC0KY70@mtaout27.012.net.il>; Sat, 23 May 2015 10:19:12 +0300 (IDT) Date: Sat, 23 May 2015 10:24:00 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <555FC1EC.2080509@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <83fv6n3gfj.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <555FC1EC.2080509@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org, monnier@iro.umontreal.ca, ohwoeowho@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 19:55:24 -0400 > From: Clment Pit--Claudel > > CC: Eli Zaretskii , 20628@debbugs.gnu.org > > > BTW, I think that using something like > > > > (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) > > or > > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") > > > > just sucks: we don't want to say "use Symbola", but we instead want to > > say something like "avoid Latin Modern Math" or "ignore Latin Modern > > Math's ascent/descent information". > > I don't think so; this forces us to maintain a list of misbehaving fonts. If we just say "Avoid Latin Modern Math" and the next selected font is also broken, then the problem remains (Asana Math, for example, is broken too, albeit a bit less). Ideally, we would also want to be able to use Latin Modern Math: ignoring the height issue, it's a nice font for maths symbols. But the proposed patch, to which you agreed, did precisely that: it singled out a particular font where the ascent/descent information was to be ignored (and suggested to extend the list if needed). How's that different from what Stefan proposes? And what's wrong with maintaining a list of fonts that are known to misbehave? There a lot of broken fonts out there, and so far we relied on users configuring the fonts on their machines to avoid negative effects, something that's not always possible. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 03:48:11 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 07:48:11 +0000 Received: from localhost ([127.0.0.1]:53413 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw4AB-0000jg-4A for submit@debbugs.gnu.org; Sat, 23 May 2015 03:48:11 -0400 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:63475) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw4A4-0000jB-6y for 20628@debbugs.gnu.org; Sat, 23 May 2015 03:48:04 -0400 Received: from fermat1.math.s.chiba-u.ac.jp (fermat [192.168.32.10]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 45629C0563; Sat, 23 May 2015 16:47:56 +0900 (JST) Date: Sat, 23 May 2015 16:47:56 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-Reply-To: <83k2vz3h2p.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, Oleh Krehel , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) >>>>> On Sat, 23 May 2015 10:10:06 +0300, Eli Zaretskii said: > Patches to introduce a list of fonts to ignore while searching for a > suitable font, and allow users to configure that list, will be > welcome. face-ignored-fonts ? DEFVAR_LISP ("face-ignored-fonts", Vface_ignored_fonts, doc: /* List of ignored fonts. Each element is a regular expression that matches names of fonts to ignore. */); Vface_ignored_fonts = Qnil; The regexps to specify are against font names in the XLFD format. The documentation is not so clear about this, probably because it was written for older font code that predates the current font backend. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 04:19:58 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 08:19:58 +0000 Received: from localhost ([127.0.0.1]:53424 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw4ew-0001RE-Ia for submit@debbugs.gnu.org; Sat, 23 May 2015 04:19:58 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]:44934) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw4eq-0001Qw-JI for 20628@debbugs.gnu.org; Sat, 23 May 2015 04:19:52 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0NOS00B00M1PTL00@a-mtaout23.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 11:19:42 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00BT1N4TUM00@a-mtaout23.012.net.il>; Sat, 23 May 2015 11:19:42 +0300 (IDT) Date: Sat, 23 May 2015 11:19:42 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <555F90A1.9080001@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <83bnhb3dup.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> <555F7D7C.8070503@live.com> <831ti84d8u.fsf@gnu.org> <555F90A1.9080001@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 22 May 2015 16:25:05 -0400 > From: Clment Pit--Claudel > > CC: ohwoeowho@gmail.com, 20628@debbugs.gnu.org > > On 05/22/2015 03:35 PM, Eli Zaretskii wrote: > >> Date: Fri, 22 May 2015 15:03:24 -0400 > >> From: Clment Pit--Claudel > >> > >> CC: 20628@debbugs.gnu.org > >> > >> I believe you have something like the following line in mind: > >> > >> (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) > > > > That's too radical. You could be more selective, e.g.: > > > > (set-fontset-font "fontset-default" > > '(#x1d400 . #x1d7ff) > > "Symbola") > > > > That's because you may wish using other fonts for other Unicode > > blocks. > > Note that I added the 'append parameter at the end of that line, so if it is executed last (and if I understand correctly!) then it should not override any other preferences. When you use 'append' you can never know whether that would fix the problem, because there could be other specs in the fontset that override your addition. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 04:27:14 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 08:27:14 +0000 Received: from localhost ([127.0.0.1]:53428 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw4ly-0001c3-IF for submit@debbugs.gnu.org; Sat, 23 May 2015 04:27:14 -0400 Received: from mtaout28.012.net.il ([80.179.55.184]:60064) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw4lt-0001bW-Bf for 20628@debbugs.gnu.org; Sat, 23 May 2015 04:27:09 -0400 Received: from conversion-daemon.mtaout28.012.net.il by mtaout28.012.net.il (HyperSendmail v2007.08) id <0NOS00200MQ7FQ00@mtaout28.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 11:26:05 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout28.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS004C5NFHJ800@mtaout28.012.net.il>; Sat, 23 May 2015 11:26:05 +0300 (IDT) Date: Sat, 23 May 2015 11:26:58 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: X-012-Sender: halo1@inter.net.il To: YAMAMOTO Mitsuharu Message-id: <83a8wv3dil.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sat, 23 May 2015 16:47:56 +0900 > From: YAMAMOTO Mitsuharu > Cc: Oleh Krehel , > clement.pitclaudel@live.com, > 20628@debbugs.gnu.org > > >>>>> On Sat, 23 May 2015 10:10:06 +0300, Eli Zaretskii said: > > > Patches to introduce a list of fonts to ignore while searching for a > > suitable font, and allow users to configure that list, will be > > welcome. > > face-ignored-fonts ? Yep, looks like it, thanks. And completely undocumented in any manual. So, Oleh, does this variable help to avoid using the offending font? From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 05:50:50 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 09:50:51 +0000 Received: from localhost ([127.0.0.1]:53435 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw64r-0003Vv-OO for submit@debbugs.gnu.org; Sat, 23 May 2015 05:50:50 -0400 Received: from mout.gmx.net ([212.227.15.18]:60071) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw64i-0003VZ-G0 for 20628@debbugs.gnu.org; Sat, 23 May 2015 05:50:42 -0400 Received: from gnu.org ([178.115.130.41]) by mail.gmx.com (mrgmx001) with ESMTPSA (Nemesis) id 0LeN3N-1ZUe4d3VYT-00qC0o; Sat, 23 May 2015 11:50:27 +0200 Date: Sat, 23 May 2015 11:50:22 +0200 (CEST) Message-Id: <20150523.115022.503695176.wl@gnu.org> To: eliz@gnu.org Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts From: Werner LEMBERG In-Reply-To: <83lhgf3hw1.fsf@gnu.org> References: <83617k4e5g.fsf@gnu.org> <20150522.234959.238191883.wl@gnu.org> <83lhgf3hw1.fsf@gnu.org> X-Mailer: Mew version 6.5 on Emacs 25.0.50.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:uYjdxvKrZ44XUbYga3IfFbIAitOXHan9+oyK8MJWp1O8tv4PNGI AId1h18cYrcs/wZm+2hD51vj7EJ+wgLjCccN+tMwUX9CAY+vbsDpydugntRcgW8564yPc5I lbVQURajNvoNcybE8S6EpqPz6Ral+hFbI7dYvL2BPCB4AriQR+mZmxjKYaszSClQnQFBURP cK7lDcl6lXfEyBos9NUMg== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) >> IMHO the bes solution is to completely ignore font-wide ascender >> and descender values. Instead, use the TeX approach: set the line >> gap to the current size of the font, multiplied by a factor of 1.2 >> (and make this configurable on a font-by-font basis in case it >> isn't already), and increase the linegap if individual glyphs need >> it. > > Could you perhaps look at the Emacs sources and suggest how to > change the *_open functions in the *font.c back-ends, to do what you > suggest above? Or at least tell how to get "the current size of the > font" from the back-ends we use, which are Freetype, Fontconfig, and > XLib's XLoadQueryFont? The relevant source files are xfont.c, > ftfont.c, and xftfont.c. Sorry, no time. However, with `current size' I mean the pixels per EM value computed in the standard way: ppem = size * DPI / 72 where `size' is given in points and `DPI' the screen resolution. This should be completely independent of the back-end. The idea is that font designers have a vital interest that a font rendered at, say, 10pt (more or less) fits other fonts drawn at 10pt, regardless what the font metrics say. An exception to that are math fonts, of course, since those need a real two-dimensional layout instead of positioning glyphs in lines. > Also, how to know from the glyph metrics, in their Emacs > incarnation, that an individual glyph needs an increase of the > vertical space? Again no time to check this, sorry. Assuming that Emacs somehow provides the maximum descender of the glyphs in the previous line together with a linegap value, simply check that the maximum ascender of the glyphs in the current line doesn't collide, shifting the line downwards if necessary. AFAIK, Emacs does this already. As a corollary, the only question is how to compute a proper default linegap value without relying on quirks caused by incompatible font formats and font metric data. Werner PS: If you want it especially nifty, implement a skyline algorithm to check whether the ascender of the glyph at a given horizontal position collides with the descender of the glyph(s) at the same horizontal position one line above. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 05:57:56 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 09:57:56 +0000 Received: from localhost ([127.0.0.1]:53439 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6Bj-0003fZ-8B for submit@debbugs.gnu.org; Sat, 23 May 2015 05:57:55 -0400 Received: from mout.gmx.net ([212.227.17.20]:63105) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6Bd-0003fJ-CG for 20628@debbugs.gnu.org; Sat, 23 May 2015 05:57:50 -0400 Received: from gnu.org ([178.115.130.41]) by mail.gmx.com (mrgmx102) with ESMTPSA (Nemesis) id 0LfYqz-1ZTYGO22a9-00p5JP; Sat, 23 May 2015 11:57:37 +0200 Date: Sat, 23 May 2015 11:57:31 +0200 (CEST) Message-Id: <20150523.115731.197331942.wl@gnu.org> To: eliz@gnu.org Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts From: Werner LEMBERG In-Reply-To: <20150523.115022.503695176.wl@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <83lhgf3hw1.fsf@gnu.org> <20150523.115022.503695176.wl@gnu.org> X-Mailer: Mew version 6.5 on Emacs 25.0.50.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:n9XuYRDnbr4nUxeotIbN222OmdYZgZBPEY8yujrRMbFqWISSoQ0 dkrTXKUkli+FTr31fsWoCgA+vPxapiMzjoLiWmj3oLtHS5iTiy+1Ftim4oTuR7htqw7ndpi kNFdyLVksq9iCQM/EGsC7EyfSxvzJGPg/Ke9TeA+EQf8H3Fv0+wMhPmgGbu4+2BQdEXSY8E bT9nospqxm+ctwUk+8gEA== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) > IMHO the bes solution is to completely ignore font-wide ascender and > descender values. Instead, use the TeX approach: set the line gap > to the current size of the font, multiplied by a factor of 1.2 (and > make this configurable on a font-by-font basis in case it isn't > already), and increase the linegap if individual glyphs need it. I have to correct myself: The linegap should apply to all fonts, of course. To make various fonts optically fit a per-font scaling factor should be used (what Emacs already provides, I think). > As a corollary, the only question is how to compute a proper default > linegap value without relying on quirks caused by incompatible font > formats and font metric data. And for this default linegap value I suggest the abovementioned value: linegap_default = 1.2 * font_size Werner From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 06:03:10 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 10:03:10 +0000 Received: from localhost ([127.0.0.1]:53443 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6Go-0003oG-Ro for submit@debbugs.gnu.org; Sat, 23 May 2015 06:03:10 -0400 Received: from mail-wi0-f169.google.com ([209.85.212.169]:34441) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6Gj-0003nj-07 for 20628@debbugs.gnu.org; Sat, 23 May 2015 06:03:04 -0400 Received: by wicmc15 with SMTP id mc15so8465199wic.1 for <20628@debbugs.gnu.org>; Sat, 23 May 2015 03:02:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=PHlif2uGU7HjNcK1VrjKM++1HdIc0uHQnRq2NlBqm8M=; b=QcdQH2LCr5h+P4sfmu7Kw3TGy6EzYkd0xfJgPt2IFC8XF6Bk1FM2Oo4YmW+Sn72TTP JlgywUQfiRJN8uSIX0SS4rPMcmWkeyyilr8yq4Rk3Unao5MWLQuCBlR4+h4n+T2agIrZ HvHxiB3K6GyWsFlbdLd5/0NEduJ69o/oEE0pwo/5+Mhy4TLVnRRQVqOFfda0J7dfbUvw 0cRHsmEKnUKFHD2WEKhg/YS2RKlAsRIYTewtcVXJe+b+agWKVYAjqlMjb74WY+TwJI2k AOGMIzGFYdoZpgwHz59uX462JYzXKrtRmNoAAA94U2al7j3BdbJMq6K1wgEDPtEg8a3I m2uA== X-Received: by 10.194.47.231 with SMTP id g7mr22134382wjn.140.1432375375425; Sat, 23 May 2015 03:02:55 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id tl3sm551390wjc.36.2015.05.23.03.02.54 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 23 May 2015 03:02:54 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> <83a8wv3dil.fsf@gnu.org> Date: Sat, 23 May 2015 11:56:38 +0200 In-Reply-To: <83a8wv3dil.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 23 May 2015 11:26:58 +0300") Message-ID: <87vbfjliqx.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org, YAMAMOTO Mitsuharu X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> Date: Sat, 23 May 2015 16:47:56 +0900 >> From: YAMAMOTO Mitsuharu >> Cc: Oleh Krehel , >> clement.pitclaudel@live.com, >> 20628@debbugs.gnu.org >> >> >>>>> On Sat, 23 May 2015 10:10:06 +0300, Eli Zaretskii said: >> >> > Patches to introduce a list of fonts to ignore while searching for a >> > suitable font, and allow users to configure that list, will be >> > welcome. >> >> face-ignored-fonts ? > > Yep, looks like it, thanks. And completely undocumented in any > manual. > > So, Oleh, does this variable help to avoid using the offending font? Yes! It works great. How strange that we haven't seen this before? Only 363 variables matching "font", all I had to do was add "ignore" to the query:) From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 06:21:51 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 10:21:51 +0000 Received: from localhost ([127.0.0.1]:53451 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6Yt-0004E1-DU for submit@debbugs.gnu.org; Sat, 23 May 2015 06:21:51 -0400 Received: from mtaout26.012.net.il ([80.179.55.182]:60445) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6Yo-0004Dl-1d for 20628@debbugs.gnu.org; Sat, 23 May 2015 06:21:45 -0400 Received: from conversion-daemon.mtaout26.012.net.il by mtaout26.012.net.il (HyperSendmail v2007.08) id <0NOS00D00SDBUK00@mtaout26.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 13:23:22 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout26.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00CN2SUYBI20@mtaout26.012.net.il>; Sat, 23 May 2015 13:23:22 +0300 (IDT) Date: Sat, 23 May 2015 13:21:36 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87vbfjliqx.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83zj4v1tn3.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> <83a8wv3dil.fsf@gnu.org> <87vbfjliqx.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org, mituharu@math.s.chiba-u.ac.jp X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: YAMAMOTO Mitsuharu , clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Sat, 23 May 2015 11:56:38 +0200 > > Eli Zaretskii writes: > > >> face-ignored-fonts ? > > > > Yep, looks like it, thanks. And completely undocumented in any > > manual. > > > > So, Oleh, does this variable help to avoid using the offending font? > > Yes! It works great. How strange that we haven't seen this before? Only > 363 variables matching "font", all I had to do was add "ignore" to the query:) For completeness, would you please post the customization you used? If nothing else, we should have that in the manual. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 06:31:31 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 10:31:32 +0000 Received: from localhost ([127.0.0.1]:53456 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6iG-0004V2-27 for submit@debbugs.gnu.org; Sat, 23 May 2015 06:31:31 -0400 Received: from mtaout24.012.net.il ([80.179.55.180]:60879) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw6i9-0004Uk-K6 for 20628@debbugs.gnu.org; Sat, 23 May 2015 06:31:25 -0400 Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0NOS00H00S4S2600@mtaout24.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 13:22:38 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOS00FI3STQEC30@mtaout24.012.net.il>; Sat, 23 May 2015 13:22:38 +0300 (IDT) Date: Sat, 23 May 2015 13:31:16 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <20150523.115022.503695176.wl@gnu.org> X-012-Sender: halo1@inter.net.il To: Werner LEMBERG Message-id: <83y4kf1t6z.fsf@gnu.org> References: <83617k4e5g.fsf@gnu.org> <20150522.234959.238191883.wl@gnu.org> <83lhgf3hw1.fsf@gnu.org> <20150523.115022.503695176.wl@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sat, 23 May 2015 11:50:22 +0200 (CEST) > Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org > From: Werner LEMBERG > > > >> IMHO the bes solution is to completely ignore font-wide ascender > >> and descender values. Instead, use the TeX approach: set the line > >> gap to the current size of the font, multiplied by a factor of 1.2 > >> (and make this configurable on a font-by-font basis in case it > >> isn't already), and increase the linegap if individual glyphs need > >> it. > > > > Could you perhaps look at the Emacs sources and suggest how to > > change the *_open functions in the *font.c back-ends, to do what you > > suggest above? Or at least tell how to get "the current size of the > > font" from the back-ends we use, which are Freetype, Fontconfig, and > > XLib's XLoadQueryFont? The relevant source files are xfont.c, > > ftfont.c, and xftfont.c. > > Sorry, no time. However, with `current size' I mean the pixels per EM > value computed in the standard way: > > ppem = size * DPI / 72 > > where `size' is given in points and `DPI' the screen resolution. I guess you mean font->pixel_size, something we have already. > > Also, how to know from the glyph metrics, in their Emacs > > incarnation, that an individual glyph needs an increase of the > > vertical space? > > Again no time to check this, sorry. Assuming that Emacs somehow > provides the maximum descender of the glyphs in the previous line > together with a linegap value, simply check that the maximum ascender > of the glyphs in the current line doesn't collide, shifting the line > downwards if necessary. AFAIK, Emacs does this already. Emacs indeed does that already, but it uses the font's ascent and descent values, not values specific to each glyph. I was under the impression that you said we could access and use the ascent/descent values of each glyph in a font, and I was asking how to do that, i.e. which metrics express these per-glyph values. > As a corollary, the only question is how to compute a proper default > linegap value without relying on quirks caused by incompatible font > formats and font metric data. What do you mean by "linegap"? the vertical gap between two screen lines in Emacs is the sum of the line height, computed as a sum of its max_ascent and max_descent values, plus the value of line-spacing. > PS: If you want it especially nifty, implement a skyline algorithm to > check whether the ascender of the glyph at a given horizontal > position collides with the descender of the glyph(s) at the same > horizontal position one line above. This again goes back to the question how to access the ascender of a glyph. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 07:02:58 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 11:02:58 +0000 Received: from localhost ([127.0.0.1]:53476 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw7Cg-0005Eb-4y for submit@debbugs.gnu.org; Sat, 23 May 2015 07:02:58 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:38375) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw7CZ-0005EJ-Md for 20628@debbugs.gnu.org; Sat, 23 May 2015 07:02:51 -0400 Received: by wichy4 with SMTP id hy4so10242431wic.1 for <20628@debbugs.gnu.org>; Sat, 23 May 2015 04:02:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=CdsmKfkUMzoK6ZHoNzHbZ2PSxbIYxM352VUXkqIgk3g=; b=O+5NoXCAIpA5NbcYafgYQHPYovJMqce51vLIJRAnyETgaPlPwmN1XZSPWeCwOsyWGP iYg6E0RqRqeIH2jm/AqLqWYS9y33Oh0R6AhbsRYSbu2gM77Jzgah4aG7ItdJt/Y5hekX I5bP20+LESHlnpAvP+qJmJLClIOJUHYmRf8nK9aIVsqvH7QN4+kLnj/eRkx+XqUil45B TInHakki5b7ysEXRZckO15qyAI2Oxnf/WkBkIRdXGlebvuZ0+cPUaETnT6XCjp/O6hAi klmLw85ZzyAC++Otu951CgRf+6ggW+jiTAWYqXDP4dellToAHcc0khDtG04j8MeAx+A+ PlvA== X-Received: by 10.180.74.68 with SMTP id r4mr15386877wiv.69.1432378962092; Sat, 23 May 2015 04:02:42 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id mc20sm2483688wic.15.2015.05.23.04.02.41 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 23 May 2015 04:02:41 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> <83a8wv3dil.fsf@gnu.org> <87vbfjliqx.fsf@gmail.com> <83zj4v1tn3.fsf@gnu.org> Date: Sat, 23 May 2015 12:56:25 +0200 In-Reply-To: <83zj4v1tn3.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 23 May 2015 13:21:36 +0300") Message-ID: <87mw0vh89y.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> > So, Oleh, does this variable help to avoid using the offending font? >> >> Yes! It works great. How strange that we haven't seen this before? Only >> 363 variables matching "font", all I had to do was add "ignore" to the query:) > > For completeness, would you please post the customization you used? > If nothing else, we should have that in the manual. (setq face-ignored-fonts '("Latin Modern Math")) Thanks for the help in investigating this. I still think it would be nice to fix Latin Modern Math for the hypothetical poor user that either has no other font or doesn't know about `face-ignored-fonts'. Maybe: (setq face-fonts-descent-accent-alist '("Latin Modern Math" . (0 . 0))) But anyway, my problem is solved, so I'm not that inclined to fix it further. From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 07:45:36 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 11:45:36 +0000 Received: from localhost ([127.0.0.1]:53480 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw7rv-0007ey-U7 for submit@debbugs.gnu.org; Sat, 23 May 2015 07:45:36 -0400 Received: from mout.gmx.net ([212.227.17.22]:59343) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw7rp-0007eg-1x for 20628@debbugs.gnu.org; Sat, 23 May 2015 07:45:30 -0400 Received: from gnu.org ([77.119.130.253]) by mail.gmx.com (mrgmx101) with ESMTPSA (Nemesis) id 0M0tr1-1ZHuwH2YYR-00v6O2; Sat, 23 May 2015 13:45:14 +0200 Date: Sat, 23 May 2015 13:45:09 +0200 (CEST) Message-Id: <20150523.134509.44040747.wl@gnu.org> To: eliz@gnu.org Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts From: Werner LEMBERG In-Reply-To: <83y4kf1t6z.fsf@gnu.org> References: <83lhgf3hw1.fsf@gnu.org> <20150523.115022.503695176.wl@gnu.org> <83y4kf1t6z.fsf@gnu.org> X-Mailer: Mew version 6.5 on Emacs 25.0.50.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:H0dbPzwGDDkfIA6n2seFeq1Ane2VzmR3vARERMEl5kvjc7lcwkv aN3dG4NC+r9ObxIZz9klhRz6LvzvDQlo36GJqALo68irGH/uThacuhDIP/qYySJhDS/1Bp5 LWZbcQIFgBGw3y3sZJKbf+b7+KQAex+L5C8Qzc7GjVeI5VWtR2GxWrW6Uqa2+EAASZftZVH tmtqZXWaVKoQCej/I6TGQ== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 20628 Cc: handa@gnu.org, clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) >> However, with `current size' I mean the pixels per EM value >> computed in the standard way: >> >> ppem = size * DPI / 72 >> >> where `size' is given in points and `DPI' the screen resolution. > > I guess you mean font->pixel_size, something we have already. Sounds right. >> Assuming that Emacs somehow provides the maximum descender of the >> glyphs in the previous line together with a linegap value, simply >> check that the maximum ascender of the glyphs in the current line >> doesn't collide, shifting the line downwards if necessary. AFAIK, >> Emacs does this already. > > Emacs indeed does that already, but it uses the font's ascent and > descent values, not values specific to each glyph. I suggest to change that, not relying on the font's ascent and descent value, but deriving this value from the font size instead. > I was under the impression that you said we could access and use the > ascent/descent values of each glyph in a font, and I was asking how > to do that, i.e. which metrics express these per-glyph values. Well, a quick search for FreeType functions brings me to function `ftfont_text_extents', which fills `font_metrics' structures for individual glyphs. So I guess the answer are the fields `ascent' and `descent' of Emacs's `font_metrics' structure. >> As a corollary, the only question is how to compute a proper >> default linegap value without relying on quirks caused by >> incompatible font formats and font metric data. > > What do you mean by "linegap"? the vertical gap between two screen > lines in Emacs is the sum of the line height, computed as a sum of > its max_ascent and max_descent values, plus the value of > line-spacing. Yes, I've meant the baseline-to-baseline distance. Sorry for the confusion. Werner From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 09:28:13 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 13:28:13 +0000 Received: from localhost ([127.0.0.1]:53516 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw9TE-0001aZ-FW for submit@debbugs.gnu.org; Sat, 23 May 2015 09:28:13 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:21362) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw9T5-0001a6-73 for 20628@debbugs.gnu.org; Sat, 23 May 2015 09:28:04 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0A2FgA731xV/9N+3mhcgxCEAoVVu0CEfoJNBAICgTw7EgEBAQEBAQGBCkEFg10BAQMBViMFCws0EhQYDSSINwjPIwEBAQEBAQQBAQEBHos6hQUHhC0FtQQjhBQigngBAQE X-IPAS-Result: A0A2FgA731xV/9N+3mhcgxCEAoVVu0CEfoJNBAICgTw7EgEBAQEBAQGBCkEFg10BAQMBViMFCws0EhQYDSSINwjPIwEBAQEBAQQBAQEBHos6hQUHhC0FtQQjhBQigngBAQE X-IronPort-AV: E=Sophos;i="5.13,465,1427774400"; d="scan'208";a="121908287" Received: from 104-222-126-211.cpe.teksavvy.com (HELO pastel.home) ([104.222.126.211]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 23 May 2015 09:27:53 -0400 Received: by pastel.home (Postfix, from userid 20848) id 27B4024E2; Sat, 23 May 2015 09:27:53 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts Message-ID: References: <555E9C2E.8040008@live.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83h9r33gky.fsf@gnu.org> Date: Sat, 23 May 2015 09:27:52 -0400 In-Reply-To: <83h9r33gky.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 23 May 2015 10:20:45 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> So the question becomes: why does Emacs select this font and how could >> we change ti so it selects something else. > Emacs selects that font because it's available, and claims support for > the particular character Emacs needs to display. That doesn't explain why it selects that font instead of some other font (say Symbola). > And I don't agree with the "just sucks" part: there are use cases when > the user might prefer a specific font for valid reason, e.g. the > quality of the glyphs. Oh, I'm not saying that specifying the font you want sucks. I'm just saying that having to specify a good font sucks when what you want to do is to specify which font is bad instead (and you may not even know which font is good, and/or that font may not always be the same). Stefan From debbugs-submit-bounces@debbugs.gnu.org Sat May 23 09:54:17 2015 Received: (at 20628) by debbugs.gnu.org; 23 May 2015 13:54:17 +0000 Received: from localhost ([127.0.0.1]:53528 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw9sT-0002D3-FA for submit@debbugs.gnu.org; Sat, 23 May 2015 09:54:17 -0400 Received: from mtaout24.012.net.il ([80.179.55.180]:46274) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yw9sO-0002Co-Om for 20628@debbugs.gnu.org; Sat, 23 May 2015 09:54:12 -0400 Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0NOT006001W27Y00@mtaout24.012.net.il> for 20628@debbugs.gnu.org; Sat, 23 May 2015 16:45:26 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOT00O9V27P9M60@mtaout24.012.net.il>; Sat, 23 May 2015 16:45:26 +0300 (IDT) Date: Sat, 23 May 2015 16:54:03 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83r3q71jt0.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83h9r33gky.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Stefan Monnier > Cc: ohwoeowho@gmail.com, clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Sat, 23 May 2015 09:27:52 -0400 > > >> So the question becomes: why does Emacs select this font and how could > >> we change ti so it selects something else. > > Emacs selects that font because it's available, and claims support for > > the particular character Emacs needs to display. > > That doesn't explain why it selects that font instead of some other font > (say Symbola). Most probably because it came up first in the search. From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 04:20:44 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 08:20:44 +0000 Received: from localhost ([127.0.0.1]:54190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR9D-0005iE-8r for submit@debbugs.gnu.org; Sun, 24 May 2015 04:20:43 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:62084) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR96-0005hv-I9 for 20628@debbugs.gnu.org; Sun, 24 May 2015 04:20:36 -0400 Received: from [18.189.125.138] ([18.189.125.138]) by mrelayeu.kundenserver.de (mreue101) with ESMTPSA (Nemesis) id 0LakfY-1ZOvHF0J5c-00kQWl; Sun, 24 May 2015 10:20:25 +0200 Message-ID: <556189C6.5070103@live.com> Date: Sun, 24 May 2015 04:20:22 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> <555F7D7C.8070503@live.com> <831ti84d8u.fsf@gnu.org> <555F90A1.9080001@live.com> <83iobj3gzb.fsf@gnu.org> In-Reply-To: <83iobj3gzb.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:YDNUE6LtNIuk+qGK5esJojbmsPlOvg5lTVW2TQzzI1s8SVz2BM6 PBnSnQtTb9XWMV6SNhPgj6YvFcfxEtZYrvcKLZ2vrzQRDWGbDa1a8Dbe5nStnDjxOPiDVLP WnDB/QI7ipo/pl2eMboh1swTDavUZfSbke+FYyaX8kfH/Hgn2q+f45RhdssohdTA6bNRx9j xsTzzGnucRtqytblLsSGg== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On 05/23/2015 03:12 AM, Eli Zaretskii wrote: >> Date: Fri, 22 May 2015 16:25:05 -0400 >> From: Clment Pit--Claudel >> >> CC: ohwoeowho@gmail.com, 20628@debbugs.gnu.org >> >>> Couldn't those package developers recommend fontset settings, of even >>> include ready-to-use .emacs snippets as part of the package? >> >> Indeed. In fact, that's what I already do with company-coq ( https://github.com/cpitclaudel/company-coq/#troubleshooting ). However, people are still reporting this as a bug. >> >> I am not sure what I can do as a package developer to make it work "out of the box". An option to override the line height would be helpful, since I could do it at the package level; advanced users could then tweak things further (eg. by installing better fonts), but basic users would still benefit from decent defaults. > > How about setting the list of fonts to be ignored (assuming Emacs > acquires such a capability) -- would that be useful for packages? [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [212.227.17.24 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (clement.pitclaudel[at]live.com) 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 1.0 FREEMAIL_REPLY From and body contain different freemails X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/23/2015 03:12 AM, Eli Zaretskii wrote: >> Date: Fri, 22 May 2015 16:25:05 -0400 >> From: Clment Pit--Claudel >> >> CC: ohwoeowho@gmail.com, 20628@debbugs.gnu.org >> >>> Couldn't those package developers recommend fontset settings, of even >>> include ready-to-use .emacs snippets as part of the package? >> >> Indeed. In fact, that's what I already do with company-coq ( https://github.com/cpitclaudel/company-coq/#troubleshooting ). However, people are still reporting this as a bug. >> >> I am not sure what I can do as a package developer to make it work "out of the box". An option to override the line height would be helpful, since I could do it at the package level; advanced users could then tweak things further (eg. by installing better fonts), but basic users would still benefit from decent defaults. > > How about setting the list of fonts to be ignored (assuming Emacs > acquires such a capability) -- would that be useful for packages? Maybe. The problem is that if a good font is not installed yet, ignoring Latin Modern Math means replacing huge lines with square boxes. I'm not sure which one is best. Ignoring Latin Modern Math may be better because fixing the square boxes then only requires installing a new font (while fixing the line heights requires installing a new font /and/ setting up fontsets in Emacs). But ignoring Latin Modern Math is also more confusing (the symbols will display fine in user's web browsers, but not in Emacs). The unearthing of `face-ignored-fonts' likely makes this an easy change; do you have an opinion either way? From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 04:20:55 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 08:20:55 +0000 Received: from localhost ([127.0.0.1]:54194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR9O-0005ic-HR for submit@debbugs.gnu.org; Sun, 24 May 2015 04:20:55 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:59161) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR9H-0005iC-45 for 20628@debbugs.gnu.org; Sun, 24 May 2015 04:20:48 -0400 Received: from [18.189.125.138] ([18.189.125.138]) by mrelayeu.kundenserver.de (mreue104) with ESMTPSA (Nemesis) id 0LfSYr-1ZT40o1tBx-00p1P6; Sun, 24 May 2015 10:20:35 +0200 Message-ID: <556189D0.2000208@live.com> Date: Sun, 24 May 2015 04:20:32 -0400 From: =?UTF-8?B?Q2zDqW1lbnQgUGl0LS1DbGF1ZGVs?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Werner LEMBERG , eliz@gnu.org Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <83bnhc4gx4.fsf@gnu.org> <555F7BFD.2090105@live.com> <83617k4e5g.fsf@gnu.org> <20150522.234959.238191883.wl@gnu.org> In-Reply-To: <20150522.234959.238191883.wl@gnu.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:17bl1Huapb5yiTgZX/SR212+gp9fj5ORNe68v/eQEkGkjpzPyPh SGDssr222qSfSYl9GJ9fgarfO1HBfIEM7G3vdLwDWyfPThPLRJSE+ow9GBVeUAhMxvKoSXp BY8f8JCY1pbZ1ckbi7timhkTtwYvO85JJsIkucQ916zP/MR5EFFipLIkIZqYvNKzmnahJz2 Dx6YPJYrNNWhtFGFN05eQ== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/22/2015 05:49 PM, Werner LEMBERG wrote: > >>> Here is an hypothesis. When I open Latin Modern in FontForge, I see >>> two types of ascent and descent values: the ones in the "General" >>> tab are 806 and 194, and the ones in the OS/2 tab, in particular >>> Win Ascent and Win Descent, are 3560 and 3060. Such a discrepancy >>> does not seem to exist in the few well-behaved fonts that I >>> checked. Could it be that most applications use the first set of >>> values, but Emacs relies on the second? > > Actually, there are *three* sets of font-wide ascender and descender > values in TrueType fonts: > > (1) From the `hhea' table: The `ascent' and `descent' fields, > together with `linegap'. Used by Apple, cf. > > https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6hhea.html > > These values are normally set by the font developer; there is no > relation to the actual ascender and descender values of > individual glyphs. > > (2) From the `OS/2' table: The `usWinAscent' and `usWinDescent' > fields, for Windows. Originally, those values are the ymax and > ymin values from all characters in the Windows ANSI character > set. Today, however, it is often set to the ymax and ymin > values of all glyphs in a font to avoid nasty clipping on (some? > older?) Windows applications. > > (3) From the `OS/2' table: The `sTypoAscender' and `sTypoDescender' > fields, together with `sTypoLinegap'. For Windows. These > values are normally set by the font developer; there is no > relation to the actual ascender and descender values of > individual glyphs. > > Note that (1) and (3) are defined differently. Mac fonts often miss > an `OS/2' table, making (2) and (3) unavailable. Additionally, many > fonts have incompatible or erroneous values for any of the fields. > It's really a mess, unfortunately. > > IMHO the bes solution is to completely ignore font-wide ascender and > descender values. Instead, use the TeX approach: set the line gap to > the current size of the font, multiplied by a factor of 1.2 (and make > this configurable on a font-by-font basis in case it isn't already), > and increase the linegap if individual glyphs need it. Thanks for this detailed description! I looked a bit more into how other programs handle this, and it seems that they take the simple approach of relying on font-wide metrics. Only, they don't seem to use the same ones as Emacs. This causes LibreOffice and vim-gtk to display "∫" as slightly truncated when using Latin Modern Math (it's taller than the line height). Emacs on the other hand displays it fine (at the cost of having a huge line height. I wonder if changing the set of metrics used in Emacs would be easy. From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 04:21:00 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 08:21:00 +0000 Received: from localhost ([127.0.0.1]:54196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR9T-0005iq-Dh for submit@debbugs.gnu.org; Sun, 24 May 2015 04:21:00 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:51673) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR9M-0005iK-Bd for 20628@debbugs.gnu.org; Sun, 24 May 2015 04:20:53 -0400 Received: from [18.189.125.138] ([18.189.125.138]) by mrelayeu.kundenserver.de (mreue103) with ESMTPSA (Nemesis) id 0MEKbo-1YuHQH3KSu-00FWPS; Sun, 24 May 2015 10:20:42 +0200 Message-ID: <556189D7.8060201@live.com> Date: Sun, 24 May 2015 04:20:39 -0400 From: =?UTF-8?B?Q2zDqW1lbnQgUGl0LS1DbGF1ZGVs?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> In-Reply-To: <83617l5aox.fsf@gnu.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:i/aHRSPupxAdai2+dw8VmkTWMy+foyry/H//D4IAjsbz6Fhpeeb jFQz6X8ob1J60t9gkgVLsk1SUMPlbSDbV4pLIzPxU+q2gdQhvJ2IqoqKLFzpqEyGEdVLmu7 jUScgCGa3XLirADBQemlXA73RAXFTs1UxxO40GvVZTxa0eH3b9+W6kXoSc+Y9x5UD8FAlLP r2Q7nOpOK3HWNchl8cyyQ== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/23/2015 06:56 AM, Oleh Krehel wrote: > Thanks for the help in investigating this. I still think it would be > nice to fix Latin Modern Math for the hypothetical poor user that either > has no other font or doesn't know about `face-ignored-fonts'. Maybe: > > (setq face-fonts-descent-accent-alist '("Latin Modern Math" . (0 . 0))) I agree with this (Latin Modern Math is commonly available, and not many other fonts cover math symbols like "𝓟"). From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 04:21:12 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 08:21:12 +0000 Received: from localhost ([127.0.0.1]:54202 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR9f-0005jy-TS for submit@debbugs.gnu.org; Sun, 24 May 2015 04:21:11 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:59169) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwR9Y-0005is-Oi for 20628@debbugs.gnu.org; Sun, 24 May 2015 04:21:04 -0400 Received: from [18.189.125.138] ([18.189.125.138]) by mrelayeu.kundenserver.de (mreue104) with ESMTPSA (Nemesis) id 0M4a32-1ZLg8v1yf6-00ykYS; Sun, 24 May 2015 10:20:53 +0200 Message-ID: <556189E2.4020600@live.com> Date: Sun, 24 May 2015 04:20:50 -0400 From: =?windows-1252?Q?Cl=E9ment_Pit--Claudel?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <555FC1EC.2080509@live.com> <83fv6n3gfj.fsf@gnu.org> In-Reply-To: <83fv6n3gfj.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:gg3VRP2hf61LfqLdggth0m3/3pQ9rJer2QPy4NA5eZ1o2nGw48o IhoVN6roDxw0tOiP/XhJ9I17sRu7RY4vopsz13IXVJC5YsBvYZgJuUx/VsPXZFgwqjAEMv5 SoqjDsEBrtrUhMjrcNJMs2k/H/J+Xqjhzh3OhuqW9Z4u/MD/nkGa2S27J7lG8UnCr3u97QJ 8BhuZCVNDcPfeAuR0hVnA== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org, monnier@iro.umontreal.ca, ohwoeowho@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/23/2015 03:24 AM, Eli Zaretskii wrote: >> Date: Fri, 22 May 2015 19:55:24 -0400 From: Clment Pit--Claudel >> CC: Eli Zaretskii , >> 20628@debbugs.gnu.org >> >>> BTW, I think that using something like >>> >>> (set-fontset-font fontset 'unicode (font-spec :name "Symbola") >>> nil 'append) or (set-fontset-font "fontset-default" '(#x1d400 . >>> #x1d7ff) "Symbola") >>> >>> just sucks: we don't want to say "use Symbola", but we instead >>> want to say something like "avoid Latin Modern Math" or "ignore >>> Latin Modern Math's ascent/descent information". >> >> I don't think so; this forces us to maintain a list of misbehaving >> fonts. If we just say "Avoid Latin Modern Math" and the next >> selected font is also broken, then the problem remains (Asana >> Math, for example, is broken too, albeit a bit less). Ideally, we >> would also want to be able to use Latin Modern Math: ignoring the >> height issue, it's a nice font for maths symbols. > > But the proposed patch, to which you agreed, did precisely that: it > singled out a particular font where the ascent/descent information > was to be ignored (and suggested to extend the list if needed). I meant to disagree with the part regarding ignoring a font entirely. Maintaining a list of broken fonts in a way that still allows us to use them (for example by overriding line height information) is not the most robust solution (ideally, we'd like to support these fonts just like virtually every other program out there), but it's still an improvement over the current situation. On the other hand, adding Latin Modern Math to a list of ignored fonts means that: * Emacs suddenly seems to not support one of the fonts that users can use elsewhere without problems (e.g. in LibreOffice). * If Latin Modern Math is the only font that covers a particular character, we've changed "incorrect line height" into "square boxes in place of symbols", which is hardly an improvement over the current behaviour. * If users install a fixed version of Latin Modern Math, is still won't be used unless they also remove Latin Modern from the ignore list. > How's that different from what Stefan proposes? And what's wrong > with maintaining a list of fonts that are known to misbehave? There > a lot of broken fonts out there, and so far we relied on users > configuring the fonts on their machines to avoid negative effects, > something that's not always possible. > > From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 05:30:12 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 09:30:12 +0000 Received: from localhost ([127.0.0.1]:54210 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSEQ-0007KQ-OV for submit@debbugs.gnu.org; Sun, 24 May 2015 05:30:11 -0400 Received: from mtaout24.012.net.il ([80.179.55.180]:44310) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSEJ-0007Jg-9K for 20628@debbugs.gnu.org; Sun, 24 May 2015 05:30:03 -0400 Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0NOU00A00KA8LC00@mtaout24.012.net.il> for 20628@debbugs.gnu.org; Sun, 24 May 2015 12:21:15 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOU00AIXKNF6C10@mtaout24.012.net.il>; Sun, 24 May 2015 12:21:15 +0300 (IDT) Date: Sun, 24 May 2015 12:29:47 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <556189D0.2000208@live.com> X-012-Sender: halo1@inter.net.il To: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel Message-id: <83bnha1fxw.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <83bnhc4gx4.fsf@gnu.org> <555F7BFD.2090105@live.com> <83617k4e5g.fsf@gnu.org> <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: wl@gnu.org, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 04:20:32 -0400 > From: Clément Pit--Claudel > > CC: ohwoeowho@gmail.com, 20628@debbugs.gnu.org > > I looked a bit more into how other programs handle this, and it seems that they take the simple approach of relying on font-wide metrics. Only, they don't seem to use the same ones as Emacs. This causes LibreOffice and vim-gtk to display "∫" as slightly truncated when using Latin Modern Math (it's taller than the line height). Emacs on the other hand displays it fine (at the cost of having a huge line height. > > I wonder if changing the set of metrics used in Emacs would be easy. Changing how? Which metrics to use instead? We need details to discuss our options. And why is it TRT to make a change that clearly results in incorrect display of some of the glyphs in that font? It seems we have just found the answer to the question how do those other programs "avoid" the problem: they do it at a price of producing incorrect display of tall glyphs. I don't think Emacs should go that way. A better alternative would be to detect such tall glyphs when they are needed for display, and enlarge the line height only then. But I don't yet see the data of these glyphs that could tell us to do that, any help will be appreciated. From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 05:31:31 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 09:31:31 +0000 Received: from localhost ([127.0.0.1]:54214 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSFj-0007NW-EW for submit@debbugs.gnu.org; Sun, 24 May 2015 05:31:31 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:43701) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSFd-0007NE-Ti for 20628@debbugs.gnu.org; Sun, 24 May 2015 05:31:25 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOU00L00KOET200@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sun, 24 May 2015 12:31:15 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOU00L2RL43UQ00@a-mtaout20.012.net.il>; Sun, 24 May 2015 12:31:15 +0300 (IDT) Date: Sun, 24 May 2015 12:31:12 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <556189C6.5070103@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <83a8wu1fvj.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <83bnhc4gx4.fsf@gnu.org> <555F7D7C.8070503@live.com> <831ti84d8u.fsf@gnu.org> <555F90A1.9080001@live.com> <83iobj3gzb.fsf@gnu.org> <556189C6.5070103@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 04:20:22 -0400 > From: Clment Pit--Claudel > > CC: ohwoeowho@gmail.com, 20628@debbugs.gnu.org > > > How about setting the list of fonts to be ignored (assuming Emacs > > acquires such a capability) -- would that be useful for packages? > > Maybe. The problem is that if a good font is not installed yet, ignoring Latin Modern Math means replacing huge lines with square boxes. I'm not sure which one is best. Ignoring Latin Modern Math may be better because fixing the square boxes then only requires installing a new font (while fixing the line heights requires installing a new font /and/ setting up fontsets in Emacs). But ignoring Latin Modern Math is also more confusing (the symbols will display fine in user's web browsers, but not in Emacs). The unearthing of `face-ignored-fonts' likely makes this an easy change; do you have an opinion either way? I think it is better top ignore fonts that produce display which is unacceptable to users. You can include in the installation instructions advice on which fonts to install. From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 05:32:25 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 09:32:25 +0000 Received: from localhost ([127.0.0.1]:54218 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSGa-0007P3-Mq for submit@debbugs.gnu.org; Sun, 24 May 2015 05:32:25 -0400 Received: from mout.gmx.net ([212.227.15.18]:60330) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSGU-0007Ok-B7 for 20628@debbugs.gnu.org; Sun, 24 May 2015 05:32:19 -0400 Received: from gnu.org ([77.119.128.218]) by mail.gmx.com (mrgmx001) with ESMTPSA (Nemesis) id 0MXq3L-1Ybv8q3JPr-00Wj9I; Sun, 24 May 2015 11:32:08 +0200 Date: Sun, 24 May 2015 11:32:03 +0200 (CEST) Message-Id: <20150524.113203.250674550.wl@gnu.org> To: eliz@gnu.org Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts From: Werner LEMBERG In-Reply-To: <83bnha1fxw.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> X-Mailer: Mew version 6.5 on Emacs 25.0.50.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:zgx3SakxruLhN8c1kX0Pja2slM3G8TRqCoIAEuDNcchq/vMGBUp LVu9awseXuKO69A/HIJ1xdWMvsMaYkCp5+bd8NkDNMnOR//5kzDWtVJ0UQ0jQgQGu2B5L5a yjen8ISEXFIo4LLtcztEsFsqmUYs8D7t7qQ8LedqPbcbQcxSy9MmFISP/rQRfUyA41sK4zK 4KBOhXyKvuaYADCS3v4Ig== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) > A better alternative would be to detect such tall glyphs when they are > needed for display, and enlarge the line height only then. Yep. > But I don't yet see the data of these glyphs that could tell us to > do that, any help will be appreciated. Have you seen my message w.r.t. the `ascent' and `descent' fields in the `font_metrics' structure of Emacs? Does this help? Werner From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 05:32:43 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 09:32:43 +0000 Received: from localhost ([127.0.0.1]:54221 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSGt-0007Pa-I7 for submit@debbugs.gnu.org; Sun, 24 May 2015 05:32:43 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:55389) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSGn-0007PJ-UC for 20628@debbugs.gnu.org; Sun, 24 May 2015 05:32:37 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NOU00E00KN47B00@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Sun, 24 May 2015 12:28:16 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOU007EQKZ4GH60@mtaout25.012.net.il>; Sun, 24 May 2015 12:28:16 +0300 (IDT) Date: Sun, 24 May 2015 12:32:23 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <556189D7.8060201@live.com> X-012-Sender: halo1@inter.net.il To: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel Message-id: <838uce1ftk.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <556189D7.8060201@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 04:20:39 -0400 > From: Clément Pit--Claudel > > CC: 20628@debbugs.gnu.org > > I agree with this (Latin Modern Math is commonly available, and not many other fonts cover math symbols like "𝓟"). Actually, quite a few do. I mentioned them in this thread. From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 05:36:40 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 09:36:40 +0000 Received: from localhost ([127.0.0.1]:54227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSKi-0007VJ-Mr for submit@debbugs.gnu.org; Sun, 24 May 2015 05:36:40 -0400 Received: from mtaout29.012.net.il ([80.179.55.185]:56405) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSKe-0007V4-3n for 20628@debbugs.gnu.org; Sun, 24 May 2015 05:36:35 -0400 Received: from conversion-daemon.mtaout29.012.net.il by mtaout29.012.net.il (HyperSendmail v2007.08) id <0NOU00A00L96V100@mtaout29.012.net.il> for 20628@debbugs.gnu.org; Sun, 24 May 2015 12:35:39 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout29.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOU008QWLBFWT10@mtaout29.012.net.il>; Sun, 24 May 2015 12:35:39 +0300 (IDT) Date: Sun, 24 May 2015 12:36:21 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <556189E2.4020600@live.com> X-012-Sender: halo1@inter.net.il To: =?windows-1252?Q?Cl=E9ment?= Pit--Claudel Message-id: <837fry1fmy.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 8BIT References: <555E9C2E.8040008@live.com> <83617l5aox.fsf@gnu.org> <87pp5s2a77.fsf@gmail.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <555FC1EC.2080509@live.com> <83fv6n3gfj.fsf@gnu.org> <556189E2.4020600@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org, monnier@iro.umontreal.ca, ohwoeowho@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 04:20:50 -0400 > From: Clment Pit--Claudel > > CC: monnier@iro.umontreal.ca, ohwoeowho@gmail.com, 20628@debbugs.gnu.org > > On the other hand, adding Latin Modern Math to a list of ignored fonts means that: > * Emacs suddenly seems to not support one of the fonts that users can use elsewhere without problems (e.g. in LibreOffice). As you yourself described, using that font is not "without problems": some glyphs come out truncated. > * If Latin Modern Math is the only font that covers a particular character, we've changed "incorrect line height" into "square boxes in place of symbols", which is hardly an improvement over the current behaviour. It's an improvement if using Latin Modern Math produces results that are unacceptable. This bug report says loud and clear that the results are indeed unacceptable. > * If users install a fixed version of Latin Modern Math, is still won't be used unless they also remove Latin Modern from the ignore list. Does such a fixed version exist? I doubt that. I see several fonts whose names match ".* Math" which all have this problem. So it sounds like this was done on purpose, and the font designers will not fix that. From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 05:49:06 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 09:49:06 +0000 Received: from localhost ([127.0.0.1]:54235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSWk-0007mz-26 for submit@debbugs.gnu.org; Sun, 24 May 2015 05:49:05 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:46205) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSWe-0007mf-Md for 20628@debbugs.gnu.org; Sun, 24 May 2015 05:49:00 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOU00L00L9GV400@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sun, 24 May 2015 12:48:50 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOU00LKYLXEUQ10@a-mtaout20.012.net.il>; Sun, 24 May 2015 12:48:50 +0300 (IDT) Date: Sun, 24 May 2015 12:48:46 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <20150524.113203.250674550.wl@gnu.org> X-012-Sender: halo1@inter.net.il To: Werner LEMBERG Message-id: <83617i1f29.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 11:32:03 +0200 (CEST) > Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org > From: Werner LEMBERG > > > > A better alternative would be to detect such tall glyphs when they are > > needed for display, and enlarge the line height only then. > > Yep. > > > But I don't yet see the data of these glyphs that could tell us to > > do that, any help will be appreciated. > > Have you seen my message w.r.t. the `ascent' and `descent' fields in > the `font_metrics' structure of Emacs? Does this help? Yes, I've seen it; and yes, it helps. I need to try the solution based on that. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 06:07:21 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 10:07:21 +0000 Received: from localhost ([127.0.0.1]:54240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSoP-0008Dp-7z for submit@debbugs.gnu.org; Sun, 24 May 2015 06:07:21 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:49456) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwSoJ-0008DY-ST for 20628@debbugs.gnu.org; Sun, 24 May 2015 06:07:15 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOU00M00MN32000@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sun, 24 May 2015 13:07:04 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOU00LASMRPUQ50@a-mtaout20.012.net.il>; Sun, 24 May 2015 13:07:04 +0300 (IDT) Date: Sun, 24 May 2015 13:06:57 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <83617i1f29.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: wl@gnu.org, clement.pitclaudel@live.com, ohwoeowho@gmail.com Message-id: <834mn21e7y.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 12:48:46 +0300 > From: Eli Zaretskii > Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org > > > Have you seen my message w.r.t. the `ascent' and `descent' fields in > > the `font_metrics' structure of Emacs? Does this help? > > Yes, I've seen it; and yes, it helps. I need to try the solution > based on that. Actually, I need help with this, as I don't know enough about fonts, and don't have access to systems where per-character ascent/descent values are currently available in Emacs. So I'm going to describe here the information that should allow those who have access to affected systems to propose a patch. The relevant place in the display engine where these factors are taken into consideration is around line 26388 in xdisp.c, which is part of the function x_produce_glyphs. There you will find a call to the function get_per_char_metric, which in turn calls the font driver's text_extents method. The metrics returned by get_per_char_metric include ascent and descent, but I think they are not in pixel units. We currently assign these values to the phys_ascent and phys_descent of 'struct it', the iterator object used to walk the visible portion of the buffer and produce glyphs for display. I'm not sure what we do with phys_ascent and phys_descent values once we compute them, but you can search for them in xdisp.c to get the idea. By contrast, the height of the screen line is computed by summing it->ascent and it->descent, which currently are set using the font's ascent and descent values. The change we look for should: . set the initial values for it->ascent and it->descent using some heuristics based on pixel_size of the default face's font; . update it->ascent and it->descent based on ascent/descent values returned by get_per_char_metric in the per-character metrics data If people who want to work on this have questions about the display engine, please don't hesitate to ask. Thanks in advance! From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 06:29:26 2015 Received: (at 20628) by debbugs.gnu.org; 24 May 2015 10:29:27 +0000 Received: from localhost ([127.0.0.1]:54270 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwT9m-0000NF-N4 for submit@debbugs.gnu.org; Sun, 24 May 2015 06:29:26 -0400 Received: from mtaout29.012.net.il ([80.179.55.185]:33757) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwT9h-0000Mm-3I for 20628@debbugs.gnu.org; Sun, 24 May 2015 06:29:21 -0400 Received: from conversion-daemon.mtaout29.012.net.il by mtaout29.012.net.il (HyperSendmail v2007.08) id <0NOU00K00NPATX00@mtaout29.012.net.il> for 20628@debbugs.gnu.org; Sun, 24 May 2015 13:28:25 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout29.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOU00IG1NRDBA20@mtaout29.012.net.il>; Sun, 24 May 2015 13:28:25 +0300 (IDT) Date: Sun, 24 May 2015 13:29:06 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <834mn21e7y.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: wl@gnu.org, clement.pitclaudel@live.com, ohwoeowho@gmail.com Message-id: <83382m1d71.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 13:06:57 +0300 > From: Eli Zaretskii > Cc: 20628@debbugs.gnu.org > > The relevant place in the display engine where these factors are taken > into consideration is around line 26388 in xdisp.c, which is part of > the function x_produce_glyphs. There you will find a call to the > function get_per_char_metric, which in turn calls the font driver's > text_extents method. The metrics returned by get_per_char_metric > include ascent and descent, but I think they are not in pixel units. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This part seems to be incorrect, as I see elsewhere in the code that phys_ascent and ascent are freely added and subtracted, and the same for phys_descent and descent. IOW, the per-character ascent/descent values are returned in pixel units. Sorry for any confusion I caused. From debbugs-submit-bounces@debbugs.gnu.org Mon May 25 06:33:35 2015 Received: (at submit) by debbugs.gnu.org; 25 May 2015 10:33:35 +0000 Received: from localhost ([127.0.0.1]:55301 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwphL-0001Xw-8F for submit@debbugs.gnu.org; Mon, 25 May 2015 06:33:34 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47040) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwphF-0001Xe-Ro for submit@debbugs.gnu.org; Mon, 25 May 2015 06:33:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ywph9-0003Cx-Q4 for submit@debbugs.gnu.org; Mon, 25 May 2015 06:33:20 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_40,FREEMAIL_FROM, FSL_HELO_BARE_IP_2,RCVD_NUMERIC_HELO autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:40026) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ywph9-0003Cs-NO for submit@debbugs.gnu.org; Mon, 25 May 2015 06:33:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60505) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ywph5-0004Dk-Ps for bug-gnu-emacs@gnu.org; Mon, 25 May 2015 06:33:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ywph1-0003AM-LX for bug-gnu-emacs@gnu.org; Mon, 25 May 2015 06:33:15 -0400 Received: from plane.gmane.org ([80.91.229.3]:48849) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ywph1-0003AF-Ex for bug-gnu-emacs@gnu.org; Mon, 25 May 2015 06:33:11 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Ywpgy-0002fG-D6 for bug-gnu-emacs@gnu.org; Mon, 25 May 2015 12:33:08 +0200 Received: from 46.166.188.219 ([46.166.188.219]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 May 2015 12:33:08 +0200 Received: from rasmus by 46.166.188.219 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 May 2015 12:33:08 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Rasmus Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts Date: Mon, 25 May 2015 12:32:59 +0200 Lines: 34 Message-ID: <87oal954mc.fsf@gmx.us> References: <555E9C2E.8040008@live.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 46.166.188.219 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) Cancel-Lock: sha1:BewOBcBYVAnzIGcp3GVHdXaB2Ak= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -3.2 (---) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.2 (---) YAMAMOTO Mitsuharu writes: >>>>>> On Sat, 23 May 2015 10:10:06 +0300, Eli Zaretskii said: > >> Patches to introduce a list of fonts to ignore while searching for a >> suitable font, and allow users to configure that list, will be >> welcome. > > face-ignored-fonts ? > > DEFVAR_LISP ("face-ignored-fonts", Vface_ignored_fonts, > doc: /* List of ignored fonts. > Each element is a regular expression that matches names of fonts to > ignore. */); > Vface_ignored_fonts = Qnil; > > The regexps to specify are against font names in the XLFD format. The > documentation is not so clear about this, probably because it was > written for older font code that predates the current font backend. Thanks for pointing this variable out! It is insanely helpful and would have solved my old woes: http://thread.gmane.org/gmane.emacs.help/93832 [Note to self: apropos!] It should definitely be documented prominently in the documentation preferably close to the fontset variable! Rasmus -- ツ From debbugs-submit-bounces@debbugs.gnu.org Mon May 25 09:25:00 2015 Received: (at 20628) by debbugs.gnu.org; 25 May 2015 13:25:00 +0000 Received: from localhost ([127.0.0.1]:55367 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwsND-0006sB-O6 for submit@debbugs.gnu.org; Mon, 25 May 2015 09:25:00 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:18982) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwsN6-0006rr-V7 for 20628@debbugs.gnu.org; Mon, 25 May 2015 09:24:53 -0400 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t4PDOenW002945 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 25 May 2015 13:24:41 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id t4PDOeXr029534 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Mon, 25 May 2015 13:24:40 GMT Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id t4PDOd4N008548; Mon, 25 May 2015 13:24:39 GMT MIME-Version: 1.0 Message-ID: Date: Mon, 25 May 2015 06:24:40 -0700 (PDT) From: Drew Adams To: Rasmus , 20628@debbugs.gnu.org Subject: RE: bug#20628: 25.0.50; Incorrect line height for some fonts References: <555E9C2E.8040008@live.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> <87oal954mc.fsf@gmx.us> In-Reply-To: <87oal954mc.fsf@gmx.us> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6691.5000 (x86)] Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Source-IP: userv0021.oracle.com [156.151.31.71] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 20628 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) > > DEFVAR_LISP ("face-ignored-fonts", Vface_ignored_fonts, > > =09 doc: /* List of ignored fonts. > > Each element is a regular expression that matches names of fonts > > to ignore. */); Why does it have `face' in the name, let alone as the prefix? The value doesn't refer to fonts to be ignored for any specific face, right? It might be easier to discover, as well as easier to understand, if it started with `font' and didn't include `face': `fonts-to-ignore'. From debbugs-submit-bounces@debbugs.gnu.org Mon May 25 10:40:00 2015 Received: (at 20628) by debbugs.gnu.org; 25 May 2015 14:40:00 +0000 Received: from localhost ([127.0.0.1]:55734 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwtXo-0000BR-Hh for submit@debbugs.gnu.org; Mon, 25 May 2015 10:40:00 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:41725) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwtXi-0000BA-N9 for 20628@debbugs.gnu.org; Mon, 25 May 2015 10:39:54 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NOW00A00TZGKR00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Mon, 25 May 2015 17:39:44 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NOW00A05U279Q90@a-mtaout20.012.net.il>; Mon, 25 May 2015 17:39:44 +0300 (IDT) Date: Mon, 25 May 2015 17:39:31 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: X-012-Sender: halo1@inter.net.il To: Drew Adams Message-id: <83oal8zpp8.fsf@gnu.org> References: <555E9C2E.8040008@live.com> <83wq004x2w.fsf@gnu.org> <83twv44vd3.fsf@gnu.org> <87egm87ny6.fsf@gmail.com> <83oalc4syu.fsf@gnu.org> <87617k7m5u.fsf@gmail.com> <83mw0w4seb.fsf@gnu.org> <87zj4w66ds.fsf@gmail.com> <83lhgg4qhf.fsf@gnu.org> <87iobk64e6.fsf@gmail.com> <83h9r44o63.fsf@gnu.org> <87pp5sy4vu.fsf@gmail.com> <83egm84mj3.fsf@gnu.org> <87617k6127.fsf@gmail.com> <83d21s4lpx.fsf@gnu.org> <87twv44lnc.fsf@gmail.com> <87egm84kp2.fsf@gmail.com> <83a8ww4grx.fsf@gnu.org> <87382oml31.fsf@gmail.com> <83k2vz3h2p.fsf@gnu.org> <87oal954mc.fsf@gmx.us> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org, rasmus@gmx.us X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Mon, 25 May 2015 06:24:40 -0700 (PDT) > From: Drew Adams > > > > DEFVAR_LISP ("face-ignored-fonts", Vface_ignored_fonts, > > > doc: /* List of ignored fonts. > > > Each element is a regular expression that matches names of fonts > > > to ignore. */); > > Why does it have `face' in the name, let alone as the prefix? Historical reasons. > The value doesn't refer to fonts to be ignored for any specific > face, right? Emacs cannot use any font, unless it has a face that specifies that font. From debbugs-submit-bounces@debbugs.gnu.org Mon May 25 11:39:46 2015 Received: (at 20628) by debbugs.gnu.org; 25 May 2015 15:39:46 +0000 Received: from localhost ([127.0.0.1]:55767 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwuTe-0001bc-A4 for submit@debbugs.gnu.org; Mon, 25 May 2015 11:39:46 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:32061) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YwuTY-0001bM-SK for 20628@debbugs.gnu.org; Mon, 25 May 2015 11:39:41 -0400 Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t4PFdRrj011475 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 25 May 2015 15:39:27 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.13.8/8.13.8) with ESMTP id t4PFdQNd029059 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Mon, 25 May 2015 15:39:26 GMT Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id t4PFdQ1c009488; Mon, 25 May 2015 15:39:26 GMT MIME-Version: 1.0 Message-ID: Date: Mon, 25 May 2015 08:39:26 -0700 (PDT) From: Drew Adams To: Eli Zaretskii Subject: RE: bug#20628: 25.0.50; Incorrect line height for some fonts References: <<555E9C2E.8040008@live.com>> <<83wq004x2w.fsf@gnu.org>> <<83twv44vd3.fsf@gnu.org>> <<87egm87ny6.fsf@gmail.com>> <<83oalc4syu.fsf@gnu.org>> <<87617k7m5u.fsf@gmail.com>> <<83mw0w4seb.fsf@gnu.org>> <<87zj4w66ds.fsf@gmail.com>> <<83lhgg4qhf.fsf@gnu.org>> <<87iobk64e6.fsf@gmail.com>> <<83h9r44o63.fsf@gnu.org>> <<87pp5sy4vu.fsf@gmail.com>> <<83egm84mj3.fsf@gnu.org>> <<87617k6127.fsf@gmail.com>> <<83d21s4lpx.fsf@gnu.org>> <<87twv44lnc.fsf@gmail.com>> <<87egm84kp2.fsf@gmail.com>> <<83a8ww4grx.fsf@gnu.org>> <<87382oml31.fsf@gmail.com>> <<83k2vz3h2p.fsf@gnu.org>> <> <<87oal954mc.fsf@gmx.us>> <> <<83oal8zpp8.fsf@gnu.org>> In-Reply-To: <<83oal8zpp8.fsf@gnu.org>> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6691.5000 (x86)] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Source-IP: userv0022.oracle.com [156.151.31.74] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org, rasmus@gmx.us X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) > Emacs cannot use any font, unless it has a face that specifies > that font. Irrelevant to the question of `face-' prefixing the name. From debbugs-submit-bounces@debbugs.gnu.org Wed May 27 11:20:27 2015 Received: (at 20628) by debbugs.gnu.org; 27 May 2015 15:20:27 +0000 Received: from localhost ([127.0.0.1]:58504 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yxd82-0002Vs-JU for submit@debbugs.gnu.org; Wed, 27 May 2015 11:20:26 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:33862) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yxd7x-0002Vb-Er for 20628@debbugs.gnu.org; Wed, 27 May 2015 11:20:21 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NP000K00KW6A900@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Wed, 27 May 2015 18:16:01 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP000EG4L2P4L70@mtaout25.012.net.il>; Wed, 27 May 2015 18:16:01 +0300 (IDT) Date: Wed, 27 May 2015 18:20:02 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <834mn21e7y.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: wl@gnu.org, clement.pitclaudel@live.com, ohwoeowho@gmail.com Message-id: <83y4kaxd25.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 24 May 2015 13:06:57 +0300 > From: Eli Zaretskii > Cc: 20628@debbugs.gnu.org > > Actually, I need help with this, as I don't know enough about fonts, > and don't have access to systems where per-character ascent/descent > values are currently available in Emacs. Since no one volunteered, I've pushed an experimental branch scratch/large-fonts, which attempts to deal with the problem. After looking into the relevant code and trying a few things, I concluded that I don't want to stop using the font-global height information for fonts that provide reasonable values. That's because the current code works well enough in those cases, and it would be a shame to throw it out the window. Also, it turns out that the assumptions about using font-global values are all over the place, and in some of them the per-glyph information is not even available. So instead I added a heuristic test intended to detect the problematic fonts, and code to fall back on the per-glyph data when such fonts are detected. I also fixed a few issues exposed by this change, mainly with the hollow cursor. The changes are in platform-independent code, but I could only test them on MS-Windows. So users of Unix and GNU systems who are affected by this problem are encouraged to try the branch and report their experiences, whether good or bad. I will look into merging the branch to master in a few days, barring any grave bugs. TIA From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 04:20:27 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 08:20:28 +0000 Received: from localhost ([127.0.0.1]:60040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyFWk-00034Q-Mp for submit@debbugs.gnu.org; Fri, 29 May 2015 04:20:27 -0400 Received: from mtaout26.012.net.il ([80.179.55.182]:38211) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyFWi-00034B-3k for 20628@debbugs.gnu.org; Fri, 29 May 2015 04:20:25 -0400 Received: from conversion-daemon.mtaout26.012.net.il by mtaout26.012.net.il (HyperSendmail v2007.08) id <0NP300K00R6O2M00@mtaout26.012.net.il> for 20628@debbugs.gnu.org; Fri, 29 May 2015 11:22:09 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout26.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP300AFGR8XCEA0@mtaout26.012.net.il>; Fri, 29 May 2015 11:22:09 +0300 (IDT) Date: Fri, 29 May 2015 11:20:11 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <83y4kaxd25.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: wl@gnu.org, clement.pitclaudel@live.com, ohwoeowho@gmail.com Message-id: <83eglzx0as.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Wed, 27 May 2015 18:20:02 +0300 > From: Eli Zaretskii > Cc: 20628@debbugs.gnu.org > > The changes are in platform-independent code, but I could only test > them on MS-Windows. So users of Unix and GNU systems who are affected > by this problem are encouraged to try the branch and report their > experiences, whether good or bad. > > I will look into merging the branch to master in a few days, barring > any grave bugs. > > TIA A bug reported that generated 70 messages describing how important it was to fix it, and yet no one -- not a single soul -- says anything when the solution seems to be at hand? Isn't that strange? Would people who urged us to fix this please try the scratch/large-fonts branch, and see if it's good enough to be merged to master? I can post the diffs here, if that would make things easier for someone. Once again, the Unix-specific portions of the changes are untested, and need at least to be verified to do a reasonable job with the offending fonts. If there are no comments in a few days, I will proceed with the merge. TIA From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 04:35:31 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 08:35:31 +0000 Received: from localhost ([127.0.0.1]:60048 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyFlK-0003RP-Va for submit@debbugs.gnu.org; Fri, 29 May 2015 04:35:31 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:58547) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyFlH-0003R5-Vt for 20628@debbugs.gnu.org; Fri, 29 May 2015 04:35:29 -0400 Received: from [172.20.11.8] ([12.10.78.5]) by mrelayeu.kundenserver.de (mreue003) with ESMTPSA (Nemesis) id 0MEJGG-1Yre403yp6-00FRBn; Fri, 29 May 2015 10:35:21 +0200 Message-ID: <556824C6.1090909@live.com> Date: Fri, 29 May 2015 01:35:18 -0700 From: =?UTF-8?B?Q2zDqW1lbnQgUGl0LS1DbGF1ZGVs?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii , wl@gnu.org, ohwoeowho@gmail.com Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> In-Reply-To: <83eglzx0as.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:WyZKSvssj3LfoJegBZgD1wOXydrcH7CxpHkMfFO5cQVaS5Id25C DsDHAdbhXfxoZEkmNMynG2akfONsNSVLicla4u+u41Uf6Upfg2V7gC8qNSr/IrHFqGE0vr2 SE+7Lygw/bVtOZA7GKfBmMDtyZ5OH932DQM9klNEyJgnuqMFXFh/BYwWccu19pJ7yao8F97 Gaq7xvKvXqekgOc1CRJOg== X-UI-Out-Filterresults: notjunk:1;V01:K0:4Cow5ghuEOc=:tfU7OZY0qIM+kjGiymL5VE QuFegoFQf6XZ4igPD/cNu3NPcISGJnhIw7o3xJ0cQY8O1RGrMkKEEOZLw2T4niGRpZOClTuOx KecknG+aDNI1NQ/3lDTe9sxJDo2xB/0KfvbOiUGh3WF3q5byq+2qHPMoDmGNM3dV0gMF56+EJ Jy1z8xuF//idPSwm0ZgbcOVIpKdexfSJn9hmcOg9DbDjbBwSZtrQvjlzIRySqseQWqapKmaPv bNP45sDK5sFAX6IciLxkW0IH4aF43CV6epK2Wgu5oXigXZhEk8px8L6mpQV5P2DFiAWfkY8/8 jZQ41cLqUfQhzSKxH/cZ8Qr9fDdhB6oi9W7tNLm7kAwQdvtRr1dYE9/uRJ67+pHx7wu5CsXg8 z4eWqCbcYa6mT9WtrMIUs4r1OrSdxNomHEgtXLvOZGdcxhpXtETP/jlB3gUK1zXdLXkrTFIeZ lmLjLf2foPKrr+So4lUXZ7jtBjO28lUE8u83WTmxuyPMEAH1gEOK28NJyGL6aztHdzWCB5gu+ zqo3AslTmjuPJWxjTn/TFd5lwJHUuW+ib1HTifQODut/pPHQTsO+0Vzfha0ii4rEuVl7W9c53 enWlWOgJRLwuD2QQAo23IQQsBe7e8WpL8L0NDJv/xQDCQn4rVjLQrAOZnjJAEWlJw2L6YzOkw aBYszXlZhxrzQ6uwxNu2RPJRmtnDSjHW7GvCqKzZb5pngSw== X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/29/2015 01:20 AM, Eli Zaretskii wrote: >> Date: Wed, 27 May 2015 18:20:02 +0300 >> From: Eli Zaretskii >> Cc: 20628@debbugs.gnu.org >> >> The changes are in platform-independent code, but I could only test >> them on MS-Windows. So users of Unix and GNU systems who are affected >> by this problem are encouraged to try the branch and report their >> experiences, whether good or bad. >> >> I will look into merging the branch to master in a few days, barring >> any grave bugs. >> >> TIA > > A bug reported that generated 70 messages describing how important it > was to fix it, and yet no one -- not a single soul -- says anything > when the solution seems to be at hand? Isn't that strange? Hi Eli, Thanks a lot for taking the time to put this patch together! I've been pretty busy these last few days, and just got around testing your patch (on Linux Mint). The approach of only activating per-glyph metrics when the font provides absurd ascent and descent values seems reasonable. > Would people who urged us to fix this please try the > scratch/large-fonts branch, and see if it's good enough to be merged > to master? I can post the diffs here, if that would make things > easier for someone. The patch partially solves the problem for me, but I noticed a few problems after running (set-frame-font "Latin Modern Math") * When the cursor is at the end of the file, on an empty line, it has a very height. * The modeline is still very tall * The fix seems to only apply to certain characters. The line that I mentioned in my original email, in particular, is still very tall. In other words, when trying the following three lines in a Latin Modern Math buffer, the last line is much too tall: 𝓝 ;; This is still very tall ∏∑∫ ;; This is a bit taller than the normal height, which is great ABC ;; This has the normal height, which is also great > > Once again, the Unix-specific portions of the changes are untested, > and need at least to be verified to do a reasonable job with the > offending fonts. > > If there are no comments in a few days, I will proceed with the merge. > > TIA > > From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 05:37:32 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 09:37:32 +0000 Received: from localhost ([127.0.0.1]:60072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyGjL-0004vc-Qw for submit@debbugs.gnu.org; Fri, 29 May 2015 05:37:32 -0400 Received: from mail-wi0-f176.google.com ([209.85.212.176]:37288) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyGjJ-0004vO-0h for 20628@debbugs.gnu.org; Fri, 29 May 2015 05:37:29 -0400 Received: by wifw1 with SMTP id w1so16288008wif.0 for <20628@debbugs.gnu.org>; Fri, 29 May 2015 02:37:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=WdYGK7ns+bU1a5J8Qi4MNYnRwTCghCi2/6qF9uIFylE=; b=Yu4NW2hgYo8qjmNuwn4b8G1DngOmaEw9ukbgST4Ih7yeGEEW6LbAWTfMNMr52NVcMs gP61r5eA2Jc6MduHVUB2c8UVhOLLqj7lDAZ3STSADUjMvfGkHc4q/HLQfnOab6luQfk/ 6K76n9bKU7o3614QqrLlUrDRkXL6vMdqUUrZuBWY7QuqzhY39i362K9nmGWuz2bflgnX roYNukUBPGPv4d/OG4AbSqfc8b5wmH5zWGEKTopBNmcCHFaA1CNZEsVSSLQvh874pA9D dzE/2YsBdgdVNAAbORKI+iWcm/YWk8m/fejTY622ou3Osalk3d5NqELQdKKhNjWsMhyi n0IA== X-Received: by 10.195.13.113 with SMTP id ex17mr13401933wjd.17.1432892243170; Fri, 29 May 2015 02:37:23 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id f6sm7449673wjq.31.2015.05.29.02.37.21 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 29 May 2015 02:37:22 -0700 (PDT) From: Oleh Krehel To: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> Date: Fri, 29 May 2015 11:30:55 +0200 In-Reply-To: <556824C6.1090909@live.com> (=?utf-8?Q?=22Cl=C3=A9ment?= Pit--Claudel"'s message of "Fri, 29 May 2015 01:35:18 -0700") Message-ID: <877frr3f3k.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: Eli Zaretskii , wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Cl=C3=A9ment Pit--Claudel writes: > The patch partially solves the problem for me, but I noticed a few > problems after running (set-frame-font "Latin Modern Math") > * When the cursor is at the end of the file, on an empty line, it has a v= ery height. > * The modeline is still very tall > * The fix seems to only apply to certain characters. The line that I > mentioned in my original email, in particular, is still very tall. In > other words, when trying the following three lines in a Latin Modern > Math buffer, the last line is much too tall: > > =F0=9D=93=9D ;; This is still very tall > =E2=88=8F=E2=88=91=E2=88=AB ;; This is a bit taller than the normal heigh= t, which is great > ABC ;; This has the normal height, which is also great Same issues for me on Ubuntu. The most outstanding one is the mode line height (of 7 lines instead of 1). And the cursor at eof is very tall as well. Additionally, these chars are bad: \\|, =CE=BB. And all lines in Buffer-menu-mode are super-tall, just like the mode line. And the header line is tall. Oleh From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 06:23:27 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 10:23:27 +0000 Received: from localhost ([127.0.0.1]:60080 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyHRn-00061h-Am for submit@debbugs.gnu.org; Fri, 29 May 2015 06:23:27 -0400 Received: from mtaout28.012.net.il ([80.179.55.184]:54003) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyHRj-00061P-Mr for 20628@debbugs.gnu.org; Fri, 29 May 2015 06:23:25 -0400 Received: from conversion-daemon.mtaout28.012.net.il by mtaout28.012.net.il (HyperSendmail v2007.08) id <0NP300G00WDF2K00@mtaout28.012.net.il> for 20628@debbugs.gnu.org; Fri, 29 May 2015 13:22:32 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout28.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP300C37WTK2R60@mtaout28.012.net.il>; Fri, 29 May 2015 13:22:32 +0300 (IDT) Date: Fri, 29 May 2015 13:23:12 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <877frr3f3k.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83d21jwulr.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: Eli Zaretskii , wl@gnu.org, 20628@debbugs.gnu.org > Date: Fri, 29 May 2015 11:30:55 +0200 > > Clément Pit--Claudel writes: > > > The patch partially solves the problem for me, but I noticed a few > > problems after running (set-frame-font "Latin Modern Math") > > * When the cursor is at the end of the file, on an empty line, it has a very height. > > * The modeline is still very tall > > * The fix seems to only apply to certain characters. The line that I > > mentioned in my original email, in particular, is still very tall. In > > other words, when trying the following three lines in a Latin Modern > > Math buffer, the last line is much too tall: > > > > 𝓝 ;; This is still very tall > > ∏∑∫ ;; This is a bit taller than the normal height, which is great > > ABC ;; This has the normal height, which is also great > > Same issues for me on Ubuntu. The most outstanding one is the mode line > height (of 7 lines instead of 1). And the cursor at eof is very tall as > well. I will need snapshots of all you see, because I cannot even begin debugging without seeing the exact pictures. Mode line is not handled in the patches I made, so it's little wonder you see what you see. (Does someone actually use Latin Modern Math as the default font? it's an ugly font, AFAICS, and I expect it to be used only for math stuff that the main font doesn't cover.) > Additionally, these chars are bad: \\|, λ. Any special character you see look bad, please make sure with "C-u C-x =" with which font it's displayed. > And all lines in Buffer-menu-mode are super-tall, just like the mode > line. Recipe, please. Starting from "emacs -Q", as usual. > And the header line is tall. That's the same code as for mode line, so it's expected. From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 06:44:43 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 10:44:43 +0000 Received: from localhost ([127.0.0.1]:60088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyHmM-00073X-QX for submit@debbugs.gnu.org; Fri, 29 May 2015 06:44:43 -0400 Received: from mail-wi0-f172.google.com ([209.85.212.172]:34528) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyHmK-000734-BM for 20628@debbugs.gnu.org; Fri, 29 May 2015 06:44:41 -0400 Received: by wicmc15 with SMTP id mc15so12389746wic.1 for <20628@debbugs.gnu.org>; Fri, 29 May 2015 03:44:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=Tw4IFR58BxbuxiS1H7XX8GvD+wWdqUjA5gYuJXtVjNs=; b=VVdIWFzF+GivZq8xisKBvHpS5a87zG1zG+6+fJvF2zRByyOSw6n9ZKcBEjxvWjwTA1 dJix0NhuXmIWxuzvQrFNsnJCqwh5mot5wtMWRJUCkFdiPsgNTNJNXR03GQZsvRh+Wwpu hgYUcTFINvh9fhRKzrfrQvDIFFRuwSlj6570DUHJ68AXdM/Sv26UJtVb3Q4Hj/ReebYt Y+CMKejcLR7gvMDwnGdZPpufZotDk3u2TuaE7uGDbtSvn8k7ko0p2whGkEp2cfMm4LPc cGVRR+MDA/M6QY5JTks7Y084cwGM6+hy4CCqt5SNFjmGxwzmRfN775zn93xBi53kA5kt gYPQ== X-Received: by 10.180.72.198 with SMTP id f6mr5065879wiv.21.1432896274413; Fri, 29 May 2015 03:44:34 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id vy5sm7718316wjc.33.2015.05.29.03.44.33 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 29 May 2015 03:44:33 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83d21jwulr.fsf@gnu.org> Date: Fri, 29 May 2015 12:38:07 +0200 In-Reply-To: <83d21jwulr.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 29 May 2015 13:23:12 +0300") Message-ID: <871thzmzxs.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > I will need snapshots of all you see, because I cannot even begin > debugging without seeing the exact pictures. > > Mode line is not handled in the patches I made, so it's little wonder > you see what you see. (Does someone actually use Latin Modern Math as > the default font? it's an ugly font, AFAICS, and I expect it to be > used only for math stuff that the main font doesn't cover.) Of course I don't use it. I've added it to `face-ignored-fonts'. But since you want to make a better fix, I did (set-frame-font "Latin Modern Math") to check everything. >> Additionally, these chars are bad: \\|, =CE=BB. > > Any special character you see look bad, please make sure with "C-u C-x = =3D" > with which font it's displayed. OK, they are: 0x2228 and 0x03BB. > >> And all lines in Buffer-menu-mode are super-tall, just like the mode >> line. > > Recipe, please. Starting from "emacs -Q", as usual. Eval (set-frame-font "Latin Modern Math"), and "C-x C-b". From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 09:15:40 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 13:15:40 +0000 Received: from localhost ([127.0.0.1]:60106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyK8Q-0006Hc-97 for submit@debbugs.gnu.org; Fri, 29 May 2015 09:15:39 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:49603) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyK8L-0006HH-LS for 20628@debbugs.gnu.org; Fri, 29 May 2015 09:15:36 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NP4000004MQM100@a-mtaout22.012.net.il> for 20628@debbugs.gnu.org; Fri, 29 May 2015 16:15:26 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP4000F44TP4480@a-mtaout22.012.net.il>; Fri, 29 May 2015 16:15:26 +0300 (IDT) Date: Fri, 29 May 2015 16:15:22 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <877frr3f3k.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83bnh3wmmt.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: Eli Zaretskii , wl@gnu.org, 20628@debbugs.gnu.org > Date: Fri, 29 May 2015 11:30:55 +0200 > > Clément Pit--Claudel writes: > > > The patch partially solves the problem for me, but I noticed a few > > problems after running (set-frame-font "Latin Modern Math") > > * When the cursor is at the end of the file, on an empty line, it has a very height. ^^^^^^^^^^^ "Very WHAT height"? "very small" or "very large"? > > * The fix seems to only apply to certain characters. The line that I > > mentioned in my original email, in particular, is still very tall. In > > other words, when trying the following three lines in a Latin Modern > > Math buffer, the last line is much too tall: > > > > 𝓝 ;; This is still very tall I don't see this on my system. Here, it makes the line slightly higher, and that's all. Perhaps you have a different version of the font installed. But in any case, if that character still shows up as too large (a screenshot would be nice), and Emacs uses the Latin Modern Math font to display it (make sure with "C-u C-x ="), then there's nothing that can be done about that, since it means the metrics of the glyph itself, as reported by the font/font driver, are screwed. If you want to make sure that's the reason, put a breakpoint on line 26425 of xdisp.c, after the call to get_per_char_metric, as shown below: if (get_char_glyph_code (it->char_to_display, font, &char2b)) { pcm = get_per_char_metric (font, &char2b); if (pcm->width == 0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< && pcm->rbearing == 0 && pcm->lbearing == 0) pcm = NULL; } and see what ascent and descent values are reported for that character in pcm->ascent and pcm->descent. > Additionally, these chars are bad: \\|, λ. What do you mean by "bad"? Here, they just make the line slightly higher (by a few pixels), again due to the metrics of the glyphs, but nowhere near the original height before my changes. Isn't that what you see? > And all lines in Buffer-menu-mode are super-tall, just like the mode > line. That's because Buffer-menu-mode uses 'space' display property, which is another place where we use font dimensions. I will see if that can be fixed. From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 09:23:19 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 13:23:19 +0000 Received: from localhost ([127.0.0.1]:60112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyKFr-0006T6-A6 for submit@debbugs.gnu.org; Fri, 29 May 2015 09:23:19 -0400 Received: from mail-wg0-f52.google.com ([74.125.82.52]:34130) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyKFp-0006Ss-Pt for 20628@debbugs.gnu.org; Fri, 29 May 2015 09:23:18 -0400 Received: by wgv5 with SMTP id 5so62615368wgv.1 for <20628@debbugs.gnu.org>; Fri, 29 May 2015 06:23:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=7TYdSOaMO1m5hOf6L8k/vKYXm+2eA5rxoGgc+9rbyx0=; b=pEjBiSOV6S+rAJzVdGCpODbVhxTA6L/9JBNy8lkoUrHNiCNhpVclW9I3ZyxfAmMzAl cF6iaaCzUAtHAXR9tNePVjPK4Pq9Tt418tJWfiatQiXoa86j6SqlMrFivxxzqxJHGow4 CgCmugeoW/+QwyAbSVt+euqXU4ELNkfyvz8U1jqTDLkT8dpjdQiXuwB/hnraLONE3/tr dAShgi2v60Hb77OxPTKwJjA6J6nwVJ5kgtKJwhuxI7HojhoBHg5JTm1+lFAsc8+Hpmw2 6NP8lqrMb0wqCquTic9oNYv7l2xp2m272ZbvwwxIYAFMK1KnEWe/YvwLSDPqxSdhym6J NcBQ== X-Received: by 10.194.122.168 with SMTP id lt8mr14988938wjb.77.1432905792048; Fri, 29 May 2015 06:23:12 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id u6sm8343447wja.40.2015.05.29.06.23.10 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 29 May 2015 06:23:10 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> Date: Fri, 29 May 2015 15:16:44 +0200 In-Reply-To: <83bnh3wmmt.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 29 May 2015 16:15:22 +0300") Message-ID: <87d21jle0z.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> Additionally, these chars are bad: =E2=88=A8, =CE=BB. > > What do you mean by "bad"? Here, they just make the line slightly > higher (by a few pixels), again due to the metrics of the glyphs, but > nowhere near the original height before my changes. Isn't that what > you see? I see 7x line height caused by any of these chars. Which was exactly the initial issue for all chars. Now most of them are fine, but these two are not. Actually now, I notice that they are fine in this buffer. This issue happens if I use them for `prettify-symbols-mode' stuff, like: (font-lock-add-keywords 'emacs-lisp-mode '(("\\\\\\\\|" (0 font-lock-keyword-face t) (0 (prog1 (compose-region (match-beginning 0) (match-end 0) "=E2=88=A8") nil))))) From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 10:50:27 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 14:50:27 +0000 Received: from localhost ([127.0.0.1]:60754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyLcA-0000Ak-Ge for submit@debbugs.gnu.org; Fri, 29 May 2015 10:50:26 -0400 Received: from mercure.iro.umontreal.ca ([132.204.24.67]:37641) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyLc8-0000Aa-Aj for 20628@debbugs.gnu.org; Fri, 29 May 2015 10:50:25 -0400 Received: from hidalgo.iro.umontreal.ca (hidalgo.iro.umontreal.ca [132.204.27.50]) by mercure.iro.umontreal.ca (Postfix) with ESMTP id EBF009C148; Fri, 29 May 2015 10:50:22 -0400 (EDT) Received: from lechon.iro.umontreal.ca (lechon.iro.umontreal.ca [132.204.27.242]) by hidalgo.iro.umontreal.ca (Postfix) with ESMTP id EB8ED1E5B9B; Fri, 29 May 2015 10:49:40 -0400 (EDT) Received: by lechon.iro.umontreal.ca (Postfix, from userid 20848) id D126AB4130; Fri, 29 May 2015 10:49:40 -0400 (EDT) From: Stefan Monnier To: Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts Message-ID: References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83d21jwulr.fsf@gnu.org> <871thzmzxs.fsf@gmail.com> Date: Fri, 29 May 2015 10:49:40 -0400 In-Reply-To: <871thzmzxs.fsf@gmail.com> (Oleh Krehel's message of "Fri, 29 May 2015 12:38:07 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-DIRO-MailScanner-Information: Please contact the ISP for more information X-DIRO-MailScanner: Found to be clean X-DIRO-MailScanner-SpamCheck: n'est pas un polluriel, SpamAssassin (score=-2.82, requis 5, autolearn=not spam, ALL_TRUSTED -2.82, MC_TSTLAST 0.00) X-DIRO-MailScanner-From: monnier@iro.umontreal.ca X-Spam-Status: No X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, Eli Zaretskii , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) >> Any special character you see look bad, please make sure with "C-u C-x =" >> with which font it's displayed. > OK, they are: 0x2228 and 0x03BB. That's only the char. C-u C-x = should give you a crapload more info, including the actual font being used. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 10:56:16 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 14:56:16 +0000 Received: from localhost ([127.0.0.1]:60759 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyLhn-0000Jq-P6 for submit@debbugs.gnu.org; Fri, 29 May 2015 10:56:16 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:34730) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyLhm-0000Ja-8W for 20628@debbugs.gnu.org; Fri, 29 May 2015 10:56:14 -0400 Received: by wicmc15 with SMTP id mc15so18401033wic.1 for <20628@debbugs.gnu.org>; Fri, 29 May 2015 07:56:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=Fhm431YBWJ3w7kD+bLK15omznWQ3rVDwmwjTV+DtTPk=; b=VCTRo1U3WGRCdOwGZCb8z5VANh0qt1RI9/AF1zXl8jC1qnEfPJWePqv8blv+pXLLE2 1I7U07ZCcvEinIenDBs5wMTEdvKb/abVYiZO84CQipT24TQpwK2z4GblzKxkZuRiuEfn uywGXCt9ZErJ4we7NJ/QNTpvci9FWxl746VpRFCu4wiw4Bz2BRqBEf07lajQYgjrUPjg /0nzUv2SLOqXDq2BVkO666wjiYdf78+F6/G3XjBGV120/5GdCvi220q+Mnl4bzbrjUZV 7JY71RCftFMq8/c+tsdQgW/WHjzgsj5HDHvNFCjcj6DKu1KoUd2QtYjmAUDn7Y+1+qcX VNgg== X-Received: by 10.180.7.169 with SMTP id k9mr7341186wia.84.1432911368584; Fri, 29 May 2015 07:56:08 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id eu10sm3490437wib.8.2015.05.29.07.56.07 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 29 May 2015 07:56:07 -0700 (PDT) From: Oleh Krehel To: Stefan Monnier Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83d21jwulr.fsf@gnu.org> <871thzmzxs.fsf@gmail.com> Date: Fri, 29 May 2015 16:49:41 +0200 In-Reply-To: (Stefan Monnier's message of "Fri, 29 May 2015 10:49:40 -0400") Message-ID: <87d21je8vu.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, Eli Zaretskii , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Stefan Monnier writes: >>> Any special character you see look bad, please make sure with "C-u C-x = =3D" >>> with which font it's displayed. >> OK, they are: 0x2228 and 0x03BB. > > That's only the char. C-u C-x =3D should give you a crapload more info, > including the actual font being used. Here's the rest of the info for "lambda" being composed into "lambda": position: 14095 of 224875 (6%), column: 4 character: l (displayed as l) (codepoint 108, #o154, #x6c) preferred charset: ascii (ASCII (ISO646 IRV)) code point in charset: 0x6C script: latin syntax: w which means: word category: .:Base, L:Left-to-right (strong), a:ASCII, l:Latin, = r:Roman to input: type "C-x 8 RET HEX-CODEPOINT" or "C-x 8 RET NAME" buffer code: #x6C file code: #x6C (encoded by coding system utf-8-unix) display: composed to form "lambda" (see below) Composed with the following character(s) "ambda" by the rule: (?=CE=BB) The component character(s) are displayed by these fonts (glyph codes): =CE=BB: xft:-unknown-Latin Modern Math-normal-normal-normal-*-15-*-*-*-*-0= -iso10646-1 (#xF6F) See the variable `reference-point-alist' for the meaning of the rule. Character code properties: customize what to show name: LATIN SMALL LETTER L general-category: Ll (Letter, Lowercase) decomposition: (108) ('l') There are text properties here: composition [Show] face font-lock-keyword-face fontified nil From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 14:17:29 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 18:17:29 +0000 Received: from localhost ([127.0.0.1]:60838 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyOqW-0006o9-Qj for submit@debbugs.gnu.org; Fri, 29 May 2015 14:17:29 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:52903) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyOqT-0006nu-JJ for 20628@debbugs.gnu.org; Fri, 29 May 2015 14:17:27 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NP400O00I2EG600@mtaout25.012.net.il> for 20628@debbugs.gnu.org; Fri, 29 May 2015 21:13:10 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP400NSCILY3N20@mtaout25.012.net.il>; Fri, 29 May 2015 21:13:10 +0300 (IDT) Date: Fri, 29 May 2015 21:17:15 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87d21je8vu.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <838uc7w8no.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83d21jwulr.fsf@gnu.org> <871thzmzxs.fsf@gmail.com> <87d21je8vu.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, monnier@iro.umontreal.ca, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: Eli Zaretskii , clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Fri, 29 May 2015 16:49:41 +0200 > > Here's the rest of the info for "lambda" being composed into "lambda": > > position: 14095 of 224875 (6%), column: 4 > character: l (displayed as l) (codepoint 108, #o154, #x6c) > preferred charset: ascii (ASCII (ISO646 IRV)) > code point in charset: 0x6C > script: latin > syntax: w which means: word > category: .:Base, L:Left-to-right (strong), a:ASCII, l:Latin, r:Roman > to input: type "C-x 8 RET HEX-CODEPOINT" or "C-x 8 RET NAME" > buffer code: #x6C > file code: #x6C (encoded by coding system utf-8-unix) > display: composed to form "lambda" (see below) > > Composed with the following character(s) "ambda" by the rule: > (?λ) > The component character(s) are displayed by these fonts (glyph codes): > λ: xft:-unknown-Latin Modern Math-normal-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#xF6F) > See the variable `reference-point-alist' for the meaning of the rule. The key part is "Composed with" etc. My changes didn't touch the composed characters, so it's small wonder you see this. I will try to have a look, once I get the other issues covered, but don't hold your breath: I don't really understand all the complex juggling we do with ascent and descent for composed characters, and unless I find an easy and safe solution, I'd prefer to tell people not to set these fonts as default fonts than to break character composition, which is much more central to Emacs display capabilities. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri May 29 14:20:12 2015 Received: (at 20628) by debbugs.gnu.org; 29 May 2015 18:20:13 +0000 Received: from localhost ([127.0.0.1]:60842 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyOt8-0006sS-QT for submit@debbugs.gnu.org; Fri, 29 May 2015 14:20:12 -0400 Received: from mtaout24.012.net.il ([80.179.55.180]:47681) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyOt4-0006rq-Br for 20628@debbugs.gnu.org; Fri, 29 May 2015 14:20:08 -0400 Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0NP400300IEAYM00@mtaout24.012.net.il> for 20628@debbugs.gnu.org; Fri, 29 May 2015 21:09:55 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP400IYIIGJW580@mtaout24.012.net.il>; Fri, 29 May 2015 21:09:55 +0300 (IDT) Date: Fri, 29 May 2015 21:18:20 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87d21jle0z.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <837frrw8lv.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <87d21jle0z.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org > Date: Fri, 29 May 2015 15:16:44 +0200 > > Actually now, I notice that they are fine in this buffer. This > issue happens if I use them for `prettify-symbols-mode' stuff, like: > > (font-lock-add-keywords > 'emacs-lisp-mode > '(("\\\\\\\\|" > (0 font-lock-keyword-face t) > (0 > (prog1 > (compose-region > (match-beginning 0) > (match-end 0) > "∨") > nil))))) That explains the difference in what we see: compose-region causes the display engine to take a different path through the code. From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 01:21:45 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 05:21:45 +0000 Received: from localhost ([127.0.0.1]:32792 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyZDM-0007KX-4j for submit@debbugs.gnu.org; Sat, 30 May 2015 01:21:44 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:49283) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyZDJ-0007KI-4X for 20628@debbugs.gnu.org; Sat, 30 May 2015 01:21:42 -0400 Received: from [172.20.11.8] ([12.10.78.5]) by mrelayeu.kundenserver.de (mreue101) with ESMTPSA (Nemesis) id 0MgOVK-1YmyL41M06-00Njd4; Sat, 30 May 2015 07:21:33 +0200 Message-ID: <556948D9.8070409@live.com> Date: Fri, 29 May 2015 22:21:29 -0700 From: =?UTF-8?B?Q2zDqW1lbnQgUGl0LS1DbGF1ZGVs?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii , Oleh Krehel Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> In-Reply-To: <83bnh3wmmt.fsf@gnu.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:5yfoQukIVMy/QtX2YlCVunxlP6y2F3FCPsS8ld6lL+e1lkx1zJT GJL7TngDGAw+4gf6HO4qV3o4OpaOegGa92O7EM9a7UkHpQ8ViyqDX+5SAvfXwU+RqHIqwJv LIr7/MTliyr8PJOrghoYPd9KqKhThX86IHALgi15tDev9IP0F0uCerEzWwfuWkJ4jMDpoh+ hpq4roVqk0GK2oYK2Vz9g== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/29/2015 06:15 AM, Eli Zaretskii wrote: >> From: Oleh Krehel >> Cc: Eli Zaretskii , wl@gnu.org, 20628@debbugs.gnu.org >> Date: Fri, 29 May 2015 11:30:55 +0200 >> >> Clément Pit--Claudel writes: >> >>> The patch partially solves the problem for me, but I noticed a few >>> problems after running (set-frame-font "Latin Modern Math") >>> * When the cursor is at the end of the file, on an empty line, it has a very height. > ^^^^^^^^^^^ > > "Very WHAT height"? "very small" or "very large"? Woops, sorry. Very large height. >>> * The fix seems to only apply to certain characters. The line that I >>> mentioned in my original email, in particular, is still very tall. In >>> other words, when trying the following three lines in a Latin Modern >>> Math buffer, the last line is much too tall: >>> >>> 𝓝 ;; This is still very tall > > I don't see this on my system. Here, it makes the line slightly > higher, and that's all. Perhaps you have a different version of the > font installed. But in any case, if that character still shows up as > too large (a screenshot would be nice), and Emacs uses the Latin > Modern Math font to display it (make sure with "C-u C-x ="), then > there's nothing that can be done about that, since it means the > metrics of the glyph itself, as reported by the font/font driver, are > screwed. If you want to make sure that's the reason, put a breakpoint > on line 26425 of xdisp.c, after the call to get_per_char_metric, as > shown below: > > if (get_char_glyph_code (it->char_to_display, font, &char2b)) > { > pcm = get_per_char_metric (font, &char2b); > if (pcm->width == 0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< > && pcm->rbearing == 0 && pcm->lbearing == 0) > pcm = NULL; > } > > and see what ascent and descent values are reported for that character > in pcm->ascent and pcm->descent. Thanks for the detailed explanation! You were right, the height is fine if the character itself is inserted. The problem is due to prettify-symbols-mode. Thanks for your work on this, it's very cool! This is a bug that had annoyed me 4 or 5 years ago when I first used Emacs, but at that time I didn't really know how to report bugs. From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 05:40:59 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 09:40:59 +0000 Received: from localhost ([127.0.0.1]:32892 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YydGE-000531-0e for submit@debbugs.gnu.org; Sat, 30 May 2015 05:40:59 -0400 Received: from mtaout24.012.net.il ([80.179.55.180]:35186) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YydGA-00052l-Nf for 20628@debbugs.gnu.org; Sat, 30 May 2015 05:40:56 -0400 Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0NP500400P28E600@mtaout24.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 12:32:20 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP500LDBP5WKF70@mtaout24.012.net.il>; Sat, 30 May 2015 12:32:20 +0300 (IDT) Date: Sat, 30 May 2015 12:40:46 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87d21jle0z.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83zj4mv1wh.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <87d21jle0z.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, wl@gnu.org, 20628@debbugs.gnu.org > Date: Fri, 29 May 2015 15:16:44 +0200 > > I see 7x line height caused by any of these chars. Which was exactly the > initial issue for all chars. Now most of them are fine, but these two > are not. Actually now, I notice that they are fine in this buffer. This > issue happens if I use them for `prettify-symbols-mode' stuff, like: > > (font-lock-add-keywords > 'emacs-lisp-mode > '(("\\\\\\\\|" > (0 font-lock-keyword-face t) > (0 > (prog1 > (compose-region > (match-beginning 0) > (match-end 0) > "∨") > nil))))) I pushed a few more fixes to the branch, please try it. The problem in Buffer-menu-mode should be fixed now. I don't see the problem with prettify-symbols-mode, though. Is it enough to "M-x prettify-symbols-mode RET" in *scratch*, and then type "(lambda ", to reproduce the bad display? If not, what else is needed? Can you show a screenshot? I also don't see the problem with mode line and header line. If I evaluate '(set-frame-font "Latin Modern Math")', I get a very tall frame (expected), but the mode line has reasonable dimensions, and if I enter Info, the header line is also OK. Is there any step I'm missing? Do you still see the problem with the current branch head? From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 05:42:34 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 09:42:34 +0000 Received: from localhost ([127.0.0.1]:32896 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YydHl-00055v-GA for submit@debbugs.gnu.org; Sat, 30 May 2015 05:42:34 -0400 Received: from mtaout27.012.net.il ([80.179.55.183]:46125) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YydHj-00055d-J1 for 20628@debbugs.gnu.org; Sat, 30 May 2015 05:42:32 -0400 Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NP500L00P2BJU00@mtaout27.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 12:37:40 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP500ECYPESOA70@mtaout27.012.net.il>; Sat, 30 May 2015 12:37:40 +0300 (IDT) Date: Sat, 30 May 2015 12:42:23 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <556948D9.8070409@live.com> X-012-Sender: halo1@inter.net.il To: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel Message-id: <83y4k6v1ts.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: wl@gnu.org, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Fri, 29 May 2015 22:21:29 -0700 > From: Clément Pit--Claudel > > CC: wl@gnu.org, 20628@debbugs.gnu.org > > On 05/29/2015 06:15 AM, Eli Zaretskii wrote: > >> From: Oleh Krehel > >> Cc: Eli Zaretskii , wl@gnu.org, 20628@debbugs.gnu.org > >> Date: Fri, 29 May 2015 11:30:55 +0200 > >> > >> Clément Pit--Claudel writes: > >> > >>> The patch partially solves the problem for me, but I noticed a few > >>> problems after running (set-frame-font "Latin Modern Math") > >>> * When the cursor is at the end of the file, on an empty line, it has a very height. > > ^^^^^^^^^^^ > > > > "Very WHAT height"? "very small" or "very large"? > > Woops, sorry. Very large height. Do you still see the problem with the current branch head? > Thanks for the detailed explanation! You were right, the height is fine if the character itself is inserted. The problem is due to prettify-symbols-mode. Do you still see the problem with the current branch head? If I just turn on prettify-symbols-mode (the one included in the Emacs repository) in *scratch*, I see no problems with the current branch head. From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 09:07:30 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 13:07:30 +0000 Received: from localhost ([127.0.0.1]:32975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YygU6-0002yI-6K for submit@debbugs.gnu.org; Sat, 30 May 2015 09:07:30 -0400 Received: from mail-wi0-f180.google.com ([209.85.212.180]:38262) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YygU3-0002y4-MY for 20628@debbugs.gnu.org; Sat, 30 May 2015 09:07:28 -0400 Received: by wizo1 with SMTP id o1so53803942wiz.1 for <20628@debbugs.gnu.org>; Sat, 30 May 2015 06:07:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=vf51ukhTbsTvglykP4FsMS3MeNSotpwYb+QOhFW0vSQ=; b=d9mAZ68KBvJyySZqiH7J0yLmbTs4L37fDME5Xzlupj04K6UdkMl+0oeNkAp3eLNYYS tcDbDePKM8C4IV/Tq6XlluDcjbS9TSRGQwTyQYEDTfnadj+UuOmdqO2uU2SgRI/zwPvU B8Zu76qxLtEUnuU1YswLof86jJMIsKGz1b1zC3bRtqwBSjYNVpwcqYSXve8AbiiBekNj SJPlOSdWx4WAV7BmfRw3qYTOm2Xi4DCM4P/5yNuwsnUm5VA180KUQUEJwO2Snk8s8YIy PfpfJ7+zq/lsP7fzAxpCP4adowUfIJXhNx7bx79jlYzzqD65nqmeNhKjvNDqXaehpFPp Ryuw== X-Received: by 10.180.215.8 with SMTP id oe8mr1955971wic.0.1432991242201; Sat, 30 May 2015 06:07:22 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id be3sm7502636wib.21.2015.05.30.06.07.20 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 30 May 2015 06:07:21 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> Date: Sat, 30 May 2015 15:00:52 +0200 In-Reply-To: <83y4k6v1ts.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 30 May 2015 12:42:23 +0300") Message-ID: <87617a2pa3.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel , 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Do you still see the problem with the current branch head? If I just > turn on prettify-symbols-mode (the one included in the Emacs > repository) in *scratch*, I see no problems with the current branch > head. I still see the problem with the current branch head. Here are my settings: (font-lock-add-keywords 'emacs-lisp-mode `((,"\\\\\\\\|" (0 font-lock-keyword-face t) (0 (prog1 (compose-region (match-beginning 0) (match-end 0) ,"=E2=88=A8") nil))))) Also, while the mode line became normal height, the echo area became x7 height instead. The buffer menu is fine. From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 10:20:30 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 14:20:30 +0000 Received: from localhost ([127.0.0.1]:33624 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yyhcj-0004mq-Me for submit@debbugs.gnu.org; Sat, 30 May 2015 10:20:30 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:47868) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yyhcf-0004mY-AE for 20628@debbugs.gnu.org; Sat, 30 May 2015 10:20:26 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NP600F002FDOF00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 17:20:17 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP600FFK2HRIC80@a-mtaout20.012.net.il>; Sat, 30 May 2015 17:20:17 +0300 (IDT) Date: Sat, 30 May 2015 17:20:14 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87617a2pa3.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83eglyuoyp.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: Clément Pit--Claudel , > 20628@debbugs.gnu.org > Date: Sat, 30 May 2015 15:00:52 +0200 > > I still see the problem with the current branch head. Here are my settings: > > (font-lock-add-keywords > 'emacs-lisp-mode > `((,"\\\\\\\\|" > (0 font-lock-keyword-face t) > (0 > (prog1 > (compose-region > (match-beginning 0) > (match-end 0) > ,"∨") > nil))))) Sorry, I don't understand: what do you do _after_ evaluating the above, to show the problem? IOW, I'm guessing that your recipe is this: emacs -Q M-: (set-frame-font "Latin Modern Math") RET "M-:" to eval the above form to set up font-lock-keyword and then ...? If the above is correct, then what is the last part required to produce some problematic display? > the echo area became x7 height instead. This is expected, if you use set-frame-font: Emacs reserves for each window the space in pixels that is derived from the frame font's size. This happens very early in redisplay cycle, where Emacs cannot yet override these dimensions. Fixing that would not be simple; I don't see a reason for trying, as people should not have any plausible reasons to set frame's font to one of the offending fonts discussed in this thread. But if you set only the font of the buffer (e.g., by clicking S-mouse-1 in the echo area, when the minibuffer is active), then the echo area height remains almost the same, whereas it wasn't before these changes. From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 10:39:05 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 14:39:05 +0000 Received: from localhost ([127.0.0.1]:33636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yyhui-0005Ek-Io for submit@debbugs.gnu.org; Sat, 30 May 2015 10:39:05 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:33697) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yyhuf-0005EC-Kk for 20628@debbugs.gnu.org; Sat, 30 May 2015 10:39:02 -0400 Received: by wicmx19 with SMTP id mx19so36868490wic.0 for <20628@debbugs.gnu.org>; Sat, 30 May 2015 07:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=dy5OagA4RyU8ncbhFhuoO7X+BwmlK2oVcqy7W6ab2BI=; b=VoozUSeUNnILOdA2qiH/9ZwsFbx0jk6Ls+k2t4gqoh0xN5LBUSImxpOx9AGg28m8hO 98ywMtCX3G9Zkzs+aWYODrdWDOLEY+z9lfkqc0eqHgqOjda2mI+15LVYooE7TcoqyYpl o0maVueL7Bk9ih7W5JTIZfD+ysQW3IQW852qGv61VQJxOipnFKg5HI00EcZESLnbX8yv b6c1Rl5gF39k8hY3ImaUcQ6jnWIgz1HrgOOMGkZBnt628J2JmxzQtZoNCVAbFjEwE2qg 81Sv8tKgOD6FVZAheoMU77dTdO/t99+DIjk45g3T0Z791bIB0xbolSULZIO9zRGvwSKv xIUg== X-Received: by 10.180.91.40 with SMTP id cb8mr5230340wib.64.1432996735849; Sat, 30 May 2015 07:38:55 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id um5sm13065264wjc.1.2015.05.30.07.38.54 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 30 May 2015 07:38:54 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> Date: Sat, 30 May 2015 16:32:26 +0200 In-Reply-To: <83eglyuoyp.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 30 May 2015 17:20:14 +0300") Message-ID: <87y4k616h1.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> I still see the problem with the current branch head. Here are my settin= gs: >>=20 >> (font-lock-add-keywords >> 'emacs-lisp-mode >> `((,"\\\\\\\\|" >> (0 font-lock-keyword-face t) >> (0 >> (prog1 >> (compose-region >> (match-beginning 0) >> (match-end 0) >> ,"=E2=88=A8") >> nil))))) > > Sorry, I don't understand: what do you do _after_ evaluating the > above, to show the problem? > > IOW, I'm guessing that your recipe is this: > > emacs -Q > M-: (set-frame-font "Latin Modern Math") RET > "M-:" to eval the above form to set up font-lock-keyword > and then ...? Insert this string into an `emacs-lisp-mode' buffer: "^\\|\\s-\\|\\[\\|[(`'#@~_%,]" From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 12:28:11 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 16:28:11 +0000 Received: from localhost ([127.0.0.1]:33663 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyjcI-0007lg-H7 for submit@debbugs.gnu.org; Sat, 30 May 2015 12:28:11 -0400 Received: from mtaout29.012.net.il ([80.179.55.185]:33604) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YyjcF-0007lA-No for 20628@debbugs.gnu.org; Sat, 30 May 2015 12:28:09 -0400 Received: from conversion-daemon.mtaout29.012.net.il by mtaout29.012.net.il (HyperSendmail v2007.08) id <0NP600O008AUEO00@mtaout29.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 19:27:19 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout29.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP600JMR8DJN840@mtaout29.012.net.il>; Sat, 30 May 2015 19:27:19 +0300 (IDT) Date: Sat, 30 May 2015 19:28:00 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87y4k616h1.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <838uc6uj1r.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Sat, 30 May 2015 16:32:26 +0200 > > Eli Zaretskii writes: > > >> I still see the problem with the current branch head. Here are my settings: > >> > >> (font-lock-add-keywords > >> 'emacs-lisp-mode > >> `((,"\\\\\\\\|" > >> (0 font-lock-keyword-face t) > >> (0 > >> (prog1 > >> (compose-region > >> (match-beginning 0) > >> (match-end 0) > >> ,"∨") > >> nil))))) > > > > Sorry, I don't understand: what do you do _after_ evaluating the > > above, to show the problem? > > > > IOW, I'm guessing that your recipe is this: > > > > emacs -Q > > M-: (set-frame-font "Latin Modern Math") RET > > "M-:" to eval the above form to set up font-lock-keyword > > and then ...? > > Insert this string into an `emacs-lisp-mode' buffer: > > "^\\|\\s-\\|\\[\\|[(`'#@~_%,]" Thanks. I don't really see what you say, but I saw something similar, and fix that. Could you see if your problem is fixed with the latest branch tip? From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 13:06:04 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 17:06:04 +0000 Received: from localhost ([127.0.0.1]:33676 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YykCx-0000Ck-Au for submit@debbugs.gnu.org; Sat, 30 May 2015 13:06:03 -0400 Received: from mail-wi0-f169.google.com ([209.85.212.169]:37077) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YykCu-0000CD-IB for 20628@debbugs.gnu.org; Sat, 30 May 2015 13:06:01 -0400 Received: by wifw1 with SMTP id w1so58096809wif.0 for <20628@debbugs.gnu.org>; Sat, 30 May 2015 10:05:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=j4/FKr/qYU8Au+3EMp0x0PKwQI/Qy1L6m4mJoQUzn0Y=; b=FeU7oJcFeC0nZSckOlM2DozGUB+Dg72ByFjVMnevoA7PpBuW5Bt/OK0w8aTXGbIM/n z8Ucr35XFP4pNY7FaT/jeV7eYgLtWRKbkxRyMDe/PdTAavYFf0Pslml4hd61SOFCDMxi 5CpKAN1DlW0fNHfGvGoXxDjxsEID9umpv4WcAADMLlvcfVLJ0GvdB8xtPEeHmaQWTZL/ NhjUfV+pO6m2QRLLCwWIRot9aN6WDPcQhfUW+JR7O4dqBON9PVJxxfmb1d+uJdZNci6k N7yhOYFWcsSQ+ihKewn/hq92RRkMtVHH8zF6KIReH1lymURx9Nfp/CbSDlqoO9W5Wax/ I1Dw== X-Received: by 10.180.106.73 with SMTP id gs9mr5977989wib.1.1433005555076; Sat, 30 May 2015 10:05:55 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id bo5sm13918568wjc.43.2015.05.30.10.05.54 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 30 May 2015 10:05:54 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> Date: Sat, 30 May 2015 18:59:25 +0200 In-Reply-To: <838uc6uj1r.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 30 May 2015 19:28:00 +0300") Message-ID: <87twuu0zo2.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Thanks. I don't really see what you say, but I saw something similar, > and fix that. Could you see if your problem is fixed with the latest > branch tip? Thanks, I just tried. It looked fine, but then suddenly I got a segfault: Fatal error 11: Segmentation fault Backtrace: newemacs[0x4fed82] newemacs[0x4e67d9] newemacs[0x4fdbae] newemacs[0x4fddb3] newemacs[0x4fde2f] /lib/x86_64-linux-gnu/libpthread.so.0(+0x10340)[0x7ff73ea44340] newemacs[0x44e61b] newemacs[0x452186] newemacs[0x45e37c] newemacs[0x46232e] newemacs[0x554eb3] newemacs[0x4502d8] newemacs[0x4f03db] newemacs[0x4f2cd3] newemacs[0x4f4891] newemacs[0x554d8b] newemacs[0x4e6d0c] newemacs[0x554c93] newemacs[0x4e6cc7] newemacs[0x4eb248] newemacs[0x4eb565] newemacs[0x415a48] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7ff73e690ec5] newemacs[0x416556] Segmentation fault (core dumped) From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 14:35:26 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 18:35:27 +0000 Received: from localhost ([127.0.0.1]:33716 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YylbR-0002LX-Pk for submit@debbugs.gnu.org; Sat, 30 May 2015 14:35:26 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:56487) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YylbN-0002LH-Vl for 20628@debbugs.gnu.org; Sat, 30 May 2015 14:35:23 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NP600H00EA58T00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 21:35:14 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP600H1JEAP6E30@a-mtaout20.012.net.il>; Sat, 30 May 2015 21:35:14 +0300 (IDT) Date: Sat, 30 May 2015 21:35:13 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87twuu0zo2.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <834mmtvrq6.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Sat, 30 May 2015 18:59:25 +0200 > > Eli Zaretskii writes: > > > Thanks. I don't really see what you say, but I saw something similar, > > and fix that. Could you see if your problem is fixed with the latest > > branch tip? > > Thanks, I just tried. It looked fine, but then suddenly I got a segfault: Can you convert this to file names and line numbers, or reproduce the crash under GDB and show the backtrace? Without that, I cannot do much with this information. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 14:58:43 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 18:58:43 +0000 Received: from localhost ([127.0.0.1]:33729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yylxz-0002sL-0O for submit@debbugs.gnu.org; Sat, 30 May 2015 14:58:43 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:58222) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yylxv-0002s5-T4 for 20628@debbugs.gnu.org; Sat, 30 May 2015 14:58:41 -0400 Received: from [172.20.11.8] ([12.10.78.5]) by mrelayeu.kundenserver.de (mreue003) with ESMTPSA (Nemesis) id 0LcTL8-1ZPtr50MgY-00jqal; Sat, 30 May 2015 20:58:33 +0200 Message-ID: <556A0855.10903@live.com> Date: Sat, 30 May 2015 11:58:29 -0700 From: =?UTF-8?B?Q2zDqW1lbnQgUGl0LS1DbGF1ZGVs?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> In-Reply-To: <83y4k6v1ts.fsf@gnu.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:t/ZSMM86JRjPKIRsNm9LBmcu18ILzk8bz5f3Ut3NKn0DeDfFmSt N6vwwwrsNCipuYnOWSxcOrLl3KnZpQgD9g4IucbUAnkEW3NZDTUOk8bPpiCxBHfRXinigRH Drny3IY0OcbID8fI3cl6PMMuSUlTllIuDdGCfGDJsC8xBV2DXtau9qPOjjuNvcQmqp7tl0V AvR+izqjfE3MmjQCvgB6g== X-UI-Out-Filterresults: notjunk:1;V01:K0:jvpbqywONgY=:YZUdiA2hg7isfKW4q8iX8G yVEBxsuQp8JoYlc+oQ3YeeG69vVUinkVhW9dZK2lGLsmjsWTCd8NJ62IB2h4kpkI2O15BwHTS JbG+g7FugAW8XoB0/pk4d+/HR/71d2XvysERQskgAc13mmbdAJ++NiZHRTDNmOlt5fbtwqw68 aSUREB7584sc71QXQ7RzPfC2GMVk4T0p7VZLfYwMSbjzJ3ZuSjGIsGVjCgEB8VBWEakhCkjmd IJG4DpxmA+N0hYLmZSHdBmo9q2lCVfkN1H3lvIf4xjAhLxM+iVaVAsaklRmW5l/gFStjCkSk3 P3Y9KVmynEjkqr/Y/o61yS2aNty0dM+K+Wcj8Nvv1WbvuTU4fVHD9kNpFNTXkI6B7I17c+/Iu ThPhAFbAwod27ddXSfaZWCf0zaYDxm4DjVANXrj6rIrhOlx+TgGS9OGh0Y+TMtfkXSRBym86V rrYlBTTnFE/qKnc0Dcj7+4sCn9SGxQ+6ghyT5APgjNpND7yyziICDqpOH32EkR/iuyKcxyml8 NPxkP5ag37brGTwylt+IliNIH+xZ+da6y6PJtLUowa3Fv+osadH6EHxvPenXyGv4/LIDAHlfH Kv1oTMzTYeKIckgkrF29AgGI8KoiWgn3hvxNDHa0cEKHjBT0mH9tT0PaFMg9dYiBxvoefof3f 7CizypoR+0glkAb8FXFSIuVsj6L0Ah1k4171I9avF9JiJ1g== X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: wl@gnu.org, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) On 05/30/2015 02:42 AM, Eli Zaretskii wrote: >> Date: Fri, 29 May 2015 22:21:29 -0700 >> From: Clément Pit--Claudel >> >> CC: wl@gnu.org, 20628@debbugs.gnu.org >> >> On 05/29/2015 06:15 AM, Eli Zaretskii wrote: >>>> From: Oleh Krehel >>>> Cc: Eli Zaretskii , wl@gnu.org, 20628@debbugs.gnu.org >>>> Date: Fri, 29 May 2015 11:30:55 +0200 >>>> >>>> Clément Pit--Claudel writes: >>>> >>>>> The patch partially solves the problem for me, but I noticed a few >>>>> problems after running (set-frame-font "Latin Modern Math") >>>>> * When the cursor is at the end of the file, on an empty line, it has a very height. >>> ^^^^^^^^^^^ >>> >>> "Very WHAT height"? "very small" or "very large"? >> >> Woops, sorry. Very large height. > > Do you still see the problem with the current branch head? > >> Thanks for the detailed explanation! You were right, the height is fine if the character itself is inserted. The problem is due to prettify-symbols-mode. > > Do you still see the problem with the current branch head? If I just > turn on prettify-symbols-mode (the one included in the Emacs > repository) in *scratch*, I see no problems with the current branch > head. This works beautifully for me! It's very nice to see this long-standing issue come to a resolution :) From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 15:04:38 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 19:04:38 +0000 Received: from localhost ([127.0.0.1]:33733 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yym3h-00032O-KM for submit@debbugs.gnu.org; Sat, 30 May 2015 15:04:38 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:34532) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yym3e-00032B-NB for 20628@debbugs.gnu.org; Sat, 30 May 2015 15:04:35 -0400 Received: by wibut5 with SMTP id ut5so7508110wib.1 for <20628@debbugs.gnu.org>; Sat, 30 May 2015 12:04:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=iPluLp8P5Lj/9HlyaFTn6JciU4GQ3MuNgfjd+DbP5yU=; b=njl2uVypqGiP51Emm8rfsB/n323nDUKiH3Nzx/NqrlXomf7+mU4Wyb0f2iQuPj6t2O t/lV3jQDuK7M4JCvBrPygdsYyuz55N6CSXFqsBswVQfzWG3l9LFYQfUZbOZV3HbK/swh +9Zrf1+jr57Eo2cfLnLhjHVo8HeEGSvOlUjsRE0Zl5/K3CVdmSh2CFoQupDitFEI97lq ZvIHLVpVh95gcEuBeIAxU8MO16hQttFMIoLhmnIzyQ0qYXCD1z4rj6NxnAObIu4nbcBV 2vW4vHwoFpVBYc+Nxhw3zIPhsv+5xsFG2eognLMJnwqRXa78AoFKesrbrLCJnGy38AwP 34GA== X-Received: by 10.180.75.8 with SMTP id y8mr6699560wiv.31.1433012669171; Sat, 30 May 2015 12:04:29 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id um5sm13940732wjc.1.2015.05.30.12.04.27 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 30 May 2015 12:04:28 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> Date: Sat, 30 May 2015 20:57:59 +0200 In-Reply-To: <834mmtvrq6.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 30 May 2015 21:35:13 +0300") Message-ID: <87oal128qw.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> From: Oleh Krehel >> Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org >> Date: Sat, 30 May 2015 18:59:25 +0200 >> >> Eli Zaretskii writes: >> >> > Thanks. I don't really see what you say, but I saw something similar, >> > and fix that. Could you see if your problem is fixed with the latest >> > branch tip? >> >> Thanks, I just tried. It looked fine, but then suddenly I got a segfault: > > Can you convert this to file names and line numbers, or reproduce the > crash under GDB and show the backtrace? Without that, I cannot do > much with this information. I get dropped into GDB at line 3135 in xdisp.c. Here's bt: #0 init_from_display_pos (it=it@entry=0x7fffffff7bc0, w=w@entry=0x11d5eb0, pos=pos@entry=0x163c580) at xdisp.c:3135 #1 0x0000000000452186 in init_to_row_start (row=0x163c530, w=0x11d5eb0, it=0x7fffffff7bc0) at xdisp.c:3205 #2 try_window_reusing_current_matrix (w=w@entry=0x11d5eb0) at xdisp.c:17245 #3 0x000000000045e37c in redisplay_window (window=18702005, just_this_one_p=just_this_one_p@entry=true) at xdisp.c:16577 #4 0x000000000046232e in redisplay_window_1 (window=window@entry=18702005) at xdisp.c:14203 #5 0x0000000000554eb3 in internal_condition_case_1 (bfun=bfun@entry=0x462300 , arg=18702005, handlers=, hfun=hfun@entry=0x429930 ) at eval.c:1372 #6 0x00000000004502d8 in redisplay_internal () at xdisp.c:13846 #7 0x0000000000451775 in redisplay () at xdisp.c:13030 #8 0x00000000004f03db in read_char (commandflag=commandflag@entry=1, map=map@entry=48583475, prev_event=0, used_mouse_menu=used_mouse_menu@entry=0x7fffffffcf6b, end_time=end_time@entry=0x0) at keyboard.c:2542 #9 0x00000000004f2cd3 in read_key_sequence (keybuf=keybuf@entry=0x7fffffffd040, prompt=prompt@entry=0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, bufsize=30) at keyboard.c:9156 #10 0x00000000004f4891 in command_loop_1 () at keyboard.c:1407 #11 0x0000000000554d8b in internal_condition_case (bfun=bfun@entry=0x4f4660 , handlers=handlers@entry=19872, hfun=hfun@entry=0x4eb610 ) at eval.c:1348 #12 0x00000000004e6d0c in command_loop_2 (ignore=ignore@entry=0) at keyboard.c:1139 #13 0x0000000000554c93 in internal_catch (tag=tag@entry=47328, func=func@entry=0x4e6cf0 , arg=arg@entry=0) at eval.c:1108 #14 0x00000000004e6cc7 in command_loop () at keyboard.c:1118 #15 0x00000000004eb248 in recursive_edit_1 () at keyboard.c:728 #16 0x00000000004eb565 in Frecursive_edit () at keyboard.c:799 #17 0x0000000000415a48 in main (argc=1, argv=0x7fffffffd3b8) at emacs.c:1626 From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 15:23:52 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 19:23:52 +0000 Received: from localhost ([127.0.0.1]:33744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YymMJ-0003W9-GS for submit@debbugs.gnu.org; Sat, 30 May 2015 15:23:51 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:36282) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YymMG-0003Vr-6E for 20628@debbugs.gnu.org; Sat, 30 May 2015 15:23:49 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NP600C00GDVOM00@a-mtaout22.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 22:23:07 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP600COIGIJMN40@a-mtaout22.012.net.il>; Sat, 30 May 2015 22:23:07 +0300 (IDT) Date: Sat, 30 May 2015 22:23:07 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87oal128qw.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83zj4luaxw.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> <87oal128qw.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Sat, 30 May 2015 20:57:59 +0200 > > >> Thanks, I just tried. It looked fine, but then suddenly I got a segfault: > > > > Can you convert this to file names and line numbers, or reproduce the > > crash under GDB and show the backtrace? Without that, I cannot do > > much with this information. > > I get dropped into GDB at line 3135 in xdisp.c. Here's bt: > > #0 init_from_display_pos (it=it@entry=0x7fffffff7bc0, w=w@entry=0x11d5eb0, pos=pos@entry=0x163c580) at xdisp.c:3135 Thanks. I think I know what the problem is. If you still have this in GDB, could you show the output of the following commands: (gdb) frame 2 (gdb) p first_row_to_display->y (gdb) p yb (gdb) p window_text_bottom_y (w) From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 15:25:17 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 19:25:17 +0000 Received: from localhost ([127.0.0.1]:33748 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YymNh-0003YZ-7m for submit@debbugs.gnu.org; Sat, 30 May 2015 15:25:17 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]:38137) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YymNf-0003YJ-5f for 20628@debbugs.gnu.org; Sat, 30 May 2015 15:25:16 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0NP600800G9V5O00@a-mtaout21.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 22:25:08 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP6008TVGLV5820@a-mtaout21.012.net.il>; Sat, 30 May 2015 22:25:08 +0300 (IDT) Date: Sat, 30 May 2015 22:25:07 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <556A0855.10903@live.com> X-012-Sender: halo1@inter.net.il To: =?utf-8?Q?Cl=C3=A9ment?= Pit--Claudel Message-id: <83wpzpuauk.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <556A0855.10903@live.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: wl@gnu.org, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sat, 30 May 2015 11:58:29 -0700 > From: Clément Pit--Claudel > > CC: ohwoeowho@gmail.com, wl@gnu.org, 20628@debbugs.gnu.org > > This works beautifully for me! It's very nice to see this long-standing issue come to a resolution :) Thanks for testing. From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 15:32:49 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 19:32:49 +0000 Received: from localhost ([127.0.0.1]:33757 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YymUy-0004m2-4L for submit@debbugs.gnu.org; Sat, 30 May 2015 15:32:48 -0400 Received: from mail-wg0-f42.google.com ([74.125.82.42]:35642) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YymUr-0004gE-0Y for 20628@debbugs.gnu.org; Sat, 30 May 2015 15:32:42 -0400 Received: by wgme6 with SMTP id e6so85875518wgm.2 for <20628@debbugs.gnu.org>; Sat, 30 May 2015 12:32:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=3RzoXAPpEqimwgIqJg9GSsoA8mLjPiZdNIgUUdtAIM4=; b=B5Cg6ID9fTalDwQjUS/tjd8Dc5ghpCOIYx94m01cJAu/hPQ+fKHKAalQP6UfkbIwt1 pR9EzWsjG8UJMAuIJgeOZEFfeXu1n0PvSDvGL+25KOWnWAwCWMOUHStoritoiJzNyi3f 5dvg2vpn4BGuLAoyH+WIz/26hci4DGrYrLBQSVkco4lS3UiwYcf9KOzct8Gf0ujeNbv+ e4WQeeUyGph20a/K5bpE23iJLq13KK8RhhSjeyTgH9/Avut01k/f/D+w5MKcoVtSUYlu 0NnqdDmsUbmaVrM4LjdGTwP/4P+irfWW8wb9XdUjCFR/tgJRat/JULLa+ndOkwQLSE92 U/AA== X-Received: by 10.194.87.1 with SMTP id t1mr27278940wjz.24.1433014355211; Sat, 30 May 2015 12:32:35 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id b10sm8807977wic.1.2015.05.30.12.32.33 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 30 May 2015 12:32:33 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> <87oal128qw.fsf@gmail.com> <83zj4luaxw.fsf@gnu.org> Date: Sat, 30 May 2015 21:26:03 +0200 In-Reply-To: <83zj4luaxw.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 30 May 2015 22:23:07 +0300") Message-ID: <87h9qt27g4.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > Thanks. I think I know what the problem is. If you still have this > in GDB, could you show the output of the following commands: > > (gdb) frame 2 > (gdb) p first_row_to_display->y > (gdb) p yb > (gdb) p window_text_bottom_y (w) I closed it, but here it is from the new one: bt #0 init_from_display_pos (it=it@entry=0x7fffffff7bc0, w=w@entry=0x11d5eb0, pos=pos@entry=0x1b71180) at xdisp.c:3135 #1 0x0000000000452186 in init_to_row_start (row=0x1b71130, w=0x11d5eb0, it=0x7fffffff7bc0) at xdisp.c:3205 #2 try_window_reusing_current_matrix (w=w@entry=0x11d5eb0) at xdisp.c:17245 #3 0x000000000045e37c in redisplay_window (window=18702005, just_this_one_p=just_this_one_p@entry=true) at xdisp.c:16577 #4 0x000000000046232e in redisplay_window_1 (window=window@entry=18702005) at xdisp.c:14203 #5 0x0000000000554eb3 in internal_condition_case_1 (bfun=bfun@entry=0x462300 , arg=18702005, handlers=, hfun=hfun@entry=0x429930 ) at eval.c:1372 #6 0x00000000004502d8 in redisplay_internal () at xdisp.c:13846 #7 0x0000000000451775 in redisplay () at xdisp.c:13030 #8 0x00000000004f03db in read_char (commandflag=commandflag@entry=1, map=map@entry=30649395, prev_event=0, used_mouse_menu=used_mouse_menu@entry=0x7fffffffcf6b, end_time=end_time@entry=0x0) at keyboard.c:2542 #9 0x00000000004f2cd3 in read_key_sequence (keybuf=keybuf@entry=0x7fffffffd040, prompt=prompt@entry=0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, bufsize=30) at keyboard.c:9156 #10 0x00000000004f4891 in command_loop_1 () at keyboard.c:1407 #11 0x0000000000554d8b in internal_condition_case (bfun=bfun@entry=0x4f4660 , handlers=handlers@entry=19872, hfun=hfun@entry=0x4eb610 ) at eval.c:1348 #12 0x00000000004e6d0c in command_loop_2 (ignore=ignore@entry=0) at keyboard.c:1139 #13 0x0000000000554c93 in internal_catch (tag=tag@entry=47328, func=func@entry=0x4e6cf0 , arg=arg@entry=0) at eval.c:1108 #14 0x00000000004e6cc7 in command_loop () at keyboard.c:1118 #15 0x00000000004eb248 in recursive_edit_1 () at keyboard.c:728 #16 0x00000000004eb565 in Frecursive_edit () at keyboard.c:799 #17 0x0000000000415a48 in main (argc=1, argv=0x7fffffffd3b8) at emacs.c:1626 frame 2 #2 try_window_reusing_current_matrix (w=w@entry=0x11d5eb0) at xdisp.c:17245 17245 init_to_row_start (&it, w, first_row_to_display); p first_row_to_display->y $1 = 909 p yb $2 = p window_text_bottom_y (w) $3 = 909 From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 15:52:25 2015 Received: (at 20628) by debbugs.gnu.org; 30 May 2015 19:52:25 +0000 Received: from localhost ([127.0.0.1]:33775 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yymnw-0007Du-AO for submit@debbugs.gnu.org; Sat, 30 May 2015 15:52:24 -0400 Received: from mtaout27.012.net.il ([80.179.55.183]:59077) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yymnt-0007De-72 for 20628@debbugs.gnu.org; Sat, 30 May 2015 15:52:22 -0400 Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NP600300HEMCY00@mtaout27.012.net.il> for 20628@debbugs.gnu.org; Sat, 30 May 2015 22:47:29 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP600P53HN43440@mtaout27.012.net.il>; Sat, 30 May 2015 22:47:29 +0300 (IDT) Date: Sat, 30 May 2015 22:52:13 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87h9qt27g4.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <83vbf9u9le.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> <87oal128qw.fsf@gmail.com> <83zj4luaxw.fsf@gnu.org> <87h9qt27g4.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Sat, 30 May 2015 21:26:03 +0200 > > frame 2 > #2 try_window_reusing_current_matrix (w=w@entry=0x11d5eb0) at xdisp.c:17245 > 17245 init_to_row_start (&it, w, first_row_to_display); > > p first_row_to_display->y > $1 = 909 > > p yb > $2 = > > p window_text_bottom_y (w) > $3 = 909 Thanks, this confirms my suspicions: we are writing beyond the window's glyph matrix. I will see what can be done about that. From debbugs-submit-bounces@debbugs.gnu.org Sun May 31 10:48:47 2015 Received: (at 20628) by debbugs.gnu.org; 31 May 2015 14:48:47 +0000 Received: from localhost ([127.0.0.1]:35010 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yz4Xe-0006Rj-G6 for submit@debbugs.gnu.org; Sun, 31 May 2015 10:48:47 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:37839) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yz4Xb-0006RO-6r for 20628@debbugs.gnu.org; Sun, 31 May 2015 10:48:44 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NP700200YG4UA00@a-mtaout20.012.net.il> for 20628@debbugs.gnu.org; Sun, 31 May 2015 17:48:36 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP7002ZVYGWMN60@a-mtaout20.012.net.il>; Sun, 31 May 2015 17:48:36 +0300 (IDT) Date: Sun, 31 May 2015 17:48:24 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <83vbf9u9le.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: ohwoeowho@gmail.com, clement.pitclaudel@live.com Message-id: <83mw0ku7k7.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <556189D0.2000208@live.com> <83bnha1fxw.fsf@gnu.org> <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> <87oal128qw.fsf@gmail.com> <83zj4luaxw.fsf@gnu.org> <87h9qt27g4.fsf@gmail.com> <83vbf9u9le.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sat, 30 May 2015 22:52:13 +0300 > From: Eli Zaretskii > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > > > From: Oleh Krehel > > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > > Date: Sat, 30 May 2015 21:26:03 +0200 > > > > frame 2 > > #2 try_window_reusing_current_matrix (w=w@entry=0x11d5eb0) at xdisp.c:17245 > > 17245 init_to_row_start (&it, w, first_row_to_display); > > > > p first_row_to_display->y > > $1 = 909 > > > > p yb > > $2 = > > > > p window_text_bottom_y (w) > > $3 = 909 > > Thanks, this confirms my suspicions: we are writing beyond the > window's glyph matrix. I will see what can be done about that. I couldn't actually reproduce such crashes on my system, but I made a few changes that hopefully will prevent them. Could you please see if the latest branch tip still crashes under some circumstances? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 01 07:01:10 2015 Received: (at 20628) by debbugs.gnu.org; 1 Jun 2015 11:01:10 +0000 Received: from localhost ([127.0.0.1]:35369 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YzNSw-0002sb-9M for submit@debbugs.gnu.org; Mon, 01 Jun 2015 07:01:10 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:33744) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YzNSt-0002sA-La for 20628@debbugs.gnu.org; Mon, 01 Jun 2015 07:01:08 -0400 Received: by wicmx19 with SMTP id mx19so67087156wic.0 for <20628@debbugs.gnu.org>; Mon, 01 Jun 2015 04:01:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=Sp/1+a9rvFAqINu0xJIQ5cBYcYfiT+UMTIFmbBO4+Fk=; b=uK1UxkhMer20q1jQDjRrSuDJ2MD0M4iGcI2lSlYDe8LrnuV3IXFAvzveGMVh3AZxo6 id+DCw1ZwCDHZfyFcEMLSHScoiiQ1z3TnrROBYqmYvuSkwHIcNuudaKbyZ1gi9Yedcch qBFGw9jrmbkxTKb1WFfMbA4Vx7YqFdjPcwvoq19vhbA20n6OSTVBW8ogOqwR+6szocTi DXh9J4mo3j0qW/igLHDuxJm/7gVmLwmdAPVJ7Sqaa/V38nrJRKeK5HA0Iji0SavFvaar FuZsfjVrOEzNuEQzQHaVKtACeDuWRL5RVRCuFDGeFRkOuLSvryIqvB25vnG5JtjSnhkW WFfQ== X-Received: by 10.194.59.46 with SMTP id w14mr22237676wjq.106.1433156461755; Mon, 01 Jun 2015 04:01:01 -0700 (PDT) Received: from firefly (dyn069045.nbw.tue.nl. [131.155.69.45]) by mx.google.com with ESMTPSA id di7sm16083374wib.23.2015.06.01.04.01.00 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 01 Jun 2015 04:01:00 -0700 (PDT) From: Oleh Krehel To: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts References: <20150522.234959.238191883.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> <87oal128qw.fsf@gmail.com> <83zj4luaxw.fsf@gnu.org> <87h9qt27g4.fsf@gmail.com> <83vbf9u9le.fsf@gnu.org> <83mw0ku7k7.fsf@gnu.org> Date: Mon, 01 Jun 2015 12:54:28 +0200 In-Reply-To: <83mw0ku7k7.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 31 May 2015 17:48:24 +0300") Message-ID: <87bngz1yxn.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > I couldn't actually reproduce such crashes on my system, but I made a > few changes that hopefully will prevent them. Could you please see if > the latest branch tip still crashes under some circumstances? Thanks, the crash no longer occurs with your latest change. From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 01 10:49:40 2015 Received: (at 20628) by debbugs.gnu.org; 1 Jun 2015 14:49:40 +0000 Received: from localhost ([127.0.0.1]:36276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YzR24-0001Q8-0E for submit@debbugs.gnu.org; Mon, 01 Jun 2015 10:49:40 -0400 Received: from mtaout29.012.net.il ([80.179.55.185]:54267) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YzR21-0001Pu-Hx for 20628@debbugs.gnu.org; Mon, 01 Jun 2015 10:49:38 -0400 Received: from conversion-daemon.mtaout29.012.net.il by mtaout29.012.net.il (HyperSendmail v2007.08) id <0NP900400T333E00@mtaout29.012.net.il> for 20628@debbugs.gnu.org; Mon, 01 Jun 2015 17:48:50 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout29.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NP90038CT5EC010@mtaout29.012.net.il>; Mon, 01 Jun 2015 17:48:50 +0300 (IDT) Date: Mon, 01 Jun 2015 17:49:17 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <87bngz1yxn.fsf@gmail.com> X-012-Sender: halo1@inter.net.il To: Oleh Krehel Message-id: <838uc3trf6.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> <87oal128qw.fsf@gmail.com> <83zj4luaxw.fsf@gnu.org> <87h9qt27g4.fsf@gmail.com> <83vbf9u9le.fsf@gnu.org> <83mw0ku7k7.fsf@gnu.org> <87bngz1yxn.fsf@gmail.com> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > From: Oleh Krehel > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > Date: Mon, 01 Jun 2015 12:54:28 +0200 > > Eli Zaretskii writes: > > > I couldn't actually reproduce such crashes on my system, but I made a > > few changes that hopefully will prevent them. Could you please see if > > the latest branch tip still crashes under some circumstances? > > Thanks, the crash no longer occurs with your latest change. Great! I will wait a few more days, in the hope that more people could check out the branch and provide feedback, and will merge it then, barring any new problems. (Could someone please test this on NS?) Thank you and Clement for your help in testing these non-trivial changes. From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 03 05:44:28 2015 Received: (at 20628) by debbugs.gnu.org; 3 Jun 2015 09:44:29 +0000 Received: from localhost ([127.0.0.1]:38256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z05Do-0002U7-2i for submit@debbugs.gnu.org; Wed, 03 Jun 2015 05:44:28 -0400 Received: from mout.gmx.net ([212.227.15.15]:61382) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z05Dl-0002Tp-8L for 20628@debbugs.gnu.org; Wed, 03 Jun 2015 05:44:25 -0400 Received: from gnu.org ([91.115.88.13]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0MHoC5-1Yx2x53TJN-003hMI; Wed, 03 Jun 2015 11:44:19 +0200 Date: Wed, 03 Jun 2015 11:44:17 +0200 (CEST) Message-Id: <20150603.114417.268457608.wl@gnu.org> To: eliz@gnu.org Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts From: Werner LEMBERG In-Reply-To: <834mn21e7y.fsf@gnu.org> References: <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> X-Mailer: Mew version 6.5 on Emacs 25.0.50.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:AX3WT1mk2SbloR5YBD0/NsO1PGyPVLVplh2fMJ7aQ1yLwG3TcQH jRUKRnmZYDbOHPFfq4SsjzLiZAQTT/5julGIkgZSe+04xjmuelq0Cb6pAp586cOUVXbuxRq XFMKnz9hpreUUte4Gl5T0vKv/keWq8CTmCc0Iw7uy1vu2NffBX0HIAGDoog5zQf9YNqV9C2 LKVfOpJLEDZuX7JLl822Q== X-UI-Out-Filterresults: notjunk:1;V01:K0:SlwxssEOoT0=:kKRrte8qz/0yATTT2JfYfe gyMHW+vZr14QUH4Q8z185IQBbTwSzLvA0SRTdKSFgDskAVO8TedsFEHKyonuJZvAIYEkBnRU8 BzoS1CzaUjNyuxrJPAZTY77JZ3Y1YPfYHa5e0rYy2mT83zpaSZpbq0UQ2UrBj6eIkcngeHL5b EV9Uzp4T97tkdGaHVmkp2BrjqJHVsQBWtilb0w44IVArx1xCMlJe+4L5w/SZuMi00nvrjkvBt 9zPy5/Yk64I3VceswM3CHrmvDwlucSuqC0l9WhMr8nsloEHrUJ19Fwrnugc5421iQEq77ssLo IeodOYOJAC4uvbBA5s7pQUo5saqp5IJZBk4nYLTMfbe6AnaZLwwlt1sBHHQZuHqBkxNMC1c9i Zt7raGVgI3sXPowLhezNXMLswz2NEnfzGPcUwiJTCBMJA4RozIMLCxPI+nh7r3POPDXJ9uXij AL5eWGsWrn7oyx/wP70k8FsK+bTdmKThLxUtu20lnDITnnzWSVTINOzXrgLtv2sYFv5+ZRomJ ecHknW5O1U7lvyYhWj6Co6GakhScHnqoKdRjRQM6qFE203Zdqc6v736QKz/YAWIDX2MbmPGXv 4gk8dgn2fMy7A28yRY0lSa3hxZDK2k8dR4mf6HM14jNkwhxQRfg8NO6r24m7LuwUYZFNxgjP1 tvUjOg7f6arSn5qil+pDrt6PTKUute5ZhB3xnsadglON2zLZMQXHPIUKHsI79AW6yHO8= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) > The relevant place in the display engine where these factors are > taken into consideration is around line 26388 in xdisp.c, [...] I'm completely lost in this huuuge file. > The change we look for should: > > . set the initial values for it->ascent and it->descent using some > heuristics based on pixel_size of the default face's font; Where are the initial values set? > . update it->ascent and it->descent based on ascent/descent values > returned by get_per_char_metric in the per-character metrics > data I think this already happens, right? At least the line height increases on my GNU/Linux version of Emacs if I use a font with larger ascent/descent values... So no additional action is needed for this, it seems. Werner From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 03 10:53:37 2015 Received: (at 20628) by debbugs.gnu.org; 3 Jun 2015 14:53:37 +0000 Received: from localhost ([127.0.0.1]:39149 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z0A2y-0003IA-Dc for submit@debbugs.gnu.org; Wed, 03 Jun 2015 10:53:36 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:51724) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z0A2v-0003Hw-Rl for 20628@debbugs.gnu.org; Wed, 03 Jun 2015 10:53:34 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NPD00900IKFXY00@a-mtaout22.012.net.il> for 20628@debbugs.gnu.org; Wed, 03 Jun 2015 17:53:27 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NPD00959IP2JRB0@a-mtaout22.012.net.il>; Wed, 03 Jun 2015 17:53:27 +0300 (IDT) Date: Wed, 03 Jun 2015 17:53:18 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <20150603.114417.268457608.wl@gnu.org> X-012-Sender: halo1@inter.net.il To: Werner LEMBERG Message-id: <83y4k0rggx.fsf@gnu.org> References: <20150524.113203.250674550.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <20150603.114417.268457608.wl@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628 Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Wed, 03 Jun 2015 11:44:17 +0200 (CEST) > Cc: clement.pitclaudel@live.com, ohwoeowho@gmail.com, 20628@debbugs.gnu.org > From: Werner LEMBERG > > > The relevant place in the display engine where these factors are > > taken into consideration is around line 26388 in xdisp.c, [...] > > I'm completely lost in this huuuge file. Which is why I mentioned the line number explicitly... > > The change we look for should: > > > > . set the initial values for it->ascent and it->descent using some > > heuristics based on pixel_size of the default face's font; > > Where are the initial values set? They are not set anywhere in the original display engine, because it was not needed. The values were set to the ascent and descent of each produced glyph in x_produce_glyphs and its subroutines. For character glyphs, these were taken from the font-global values, since the assumption was that those global values are reasonable. But I was somewhat wrong in the above description: the important values are not it->ascent and it->descent, but rather it->max_ascent and it->max_descent. These accumulate the maximum values seen while producing a single screen line, and when the screen line ends, they determine the line's height (see compute_line_metrics): row->height = it->max_ascent + it->max_descent; > > . update it->ascent and it->descent based on ascent/descent values > > returned by get_per_char_metric in the per-character metrics > > data > I think this already happens, right? At least the line height > increases on my GNU/Linux version of Emacs if I use a font with larger > ascent/descent values... So no additional action is needed for this, > it seems. Actually, since I wrote the message to which you respond, I think I already solved the problem, you can see the solution in the scratch/large-fonts branch of the Emacs Git repository. If you have time, I'd appreciate your opinion about the heuristics I use there. Specifically, the following macro is used to detect fonts that claim preposterously large ascent/descent values: #define FONT_TOO_HIGH(ft) ((ft)->ascent + (ft)->descent > 3*(ft)->pixel_size) The pixel_size member of the struct font object is the pixel size with which we opened the font, see the 'open' method of the font drivers (e.g., 'xftfont_open' in xftfont.c). The number 3 above is the heuristics. The other part of the heuristics is in how I compute "reasonable" values of ascent and descent to be used instead of font's global values. The code is in the function 'normal_char_ascent_descent' defined in xdisp.c. This is necessary because, as I expected, the font's global values are used all over the place in display-related code, and so just computing line height from character metrics was not enough to countermand all the negative effects of such preposterously large font height values. As just 2 examples, the font height was used to allocate pixel screen estate for the mode line, and for calculating line height when a 'display' property or a line-height property specifies height as a fraction of the "normal" text height. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 06 09:14:53 2015 Received: (at 20628-done) by debbugs.gnu.org; 6 Jun 2015 13:14:53 +0000 Received: from localhost ([127.0.0.1]:42661 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z1Dw4-0005kB-Pa for submit@debbugs.gnu.org; Sat, 06 Jun 2015 09:14:53 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:50656) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z1Dw1-0005jw-NL for 20628-done@debbugs.gnu.org; Sat, 06 Jun 2015 09:14:51 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NPI00E00X8AIU00@a-mtaout20.012.net.il> for 20628-done@debbugs.gnu.org; Sat, 06 Jun 2015 16:14:42 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NPI00EMUY4IPN00@a-mtaout20.012.net.il>; Sat, 06 Jun 2015 16:14:42 +0300 (IDT) Date: Sat, 06 Jun 2015 16:14:41 +0300 From: Eli Zaretskii Subject: Re: bug#20628: 25.0.50; Incorrect line height for some fonts In-reply-to: <838uc3trf6.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: ohwoeowho@gmail.com, clement.pitclaudel@live.com Message-id: <83y4jxm11a.fsf@gnu.org> References: <20150522.234959.238191883.wl@gnu.org> <83617i1f29.fsf@gnu.org> <834mn21e7y.fsf@gnu.org> <83y4kaxd25.fsf@gnu.org> <83eglzx0as.fsf@gnu.org> <556824C6.1090909@live.com> <877frr3f3k.fsf@gmail.com> <83bnh3wmmt.fsf@gnu.org> <556948D9.8070409@live.com> <83y4k6v1ts.fsf@gnu.org> <87617a2pa3.fsf@gmail.com> <83eglyuoyp.fsf@gnu.org> <87y4k616h1.fsf@gmail.com> <838uc6uj1r.fsf@gnu.org> <87twuu0zo2.fsf@gmail.com> <834mmtvrq6.fsf@gnu.org> <87oal128qw.fsf@gmail.com> <83zj4luaxw.fsf@gnu.org> <87h9qt27g4.fsf@gmail.com> <83vbf9u9le.fsf@gnu.org> <83mw0ku7k7.fsf@gnu.org> <87bngz1yxn.fsf@gmail.com> <838uc3trf6.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 20628-done Cc: 20628-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Mon, 01 Jun 2015 17:49:17 +0300 > From: Eli Zaretskii > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > > > From: Oleh Krehel > > Cc: clement.pitclaudel@live.com, 20628@debbugs.gnu.org > > Date: Mon, 01 Jun 2015 12:54:28 +0200 > > > > Eli Zaretskii writes: > > > > > I couldn't actually reproduce such crashes on my system, but I made a > > > few changes that hopefully will prevent them. Could you please see if > > > the latest branch tip still crashes under some circumstances? > > > > Thanks, the crash no longer occurs with your latest change. > > Great! > > I will wait a few more days, in the hope that more people could check > out the branch and provide feedback, and will merge it then, barring > any new problems. The changes are now merged with master. I'm marking this bug "done". Thanks again to everyone for their help. From unknown Mon Jun 23 16:44:20 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 05 Jul 2015 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator