From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.devel Subject: Re: Ligatures (was: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY)) Date: Fri, 22 May 2020 13:56:29 +0000 Message-ID: References: <20200517165953.000044d2@web.de> <83lflqblp0.fsf@gnu.org> <83ftbybio3.fsf@gnu.org> <83zha69xs2.fsf@gnu.org> <83367x9qeq.fsf@gnu.org> <0ccae2a4-533b-d15c-2884-c2f00b067776@gmail.com> <83wo5987mk.fsf@gnu.org> <99d4beed-88ae-b5cd-3ecb-a44325c8a1dc@gmail.com> <20200518215908.GA57594@breton.holly.idiocy.org> <83mu6481v3.fsf@gnu.org> <75a90563-51b4-d3b8-4832-fc0e2542af0d@gmail.com> <83blmi7hys.fsf@gnu.org> <837dx55qff.fsf@gnu.org> <834ks95cmz.fsf@gnu.org> <4faa291f-f2df-36d1-73d5-332b93a9b6d8@gmail.com> <83wo544hx5.fsf@gnu.org> <831rnc43ih.fsf@gnu.org> <83ftbs2jr5.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="105689"; mail-complaints-to="usenet@ciao.gmane.io" Cc: cpitclaudel@gmail.com, alan@idiocy.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri May 22 15:58:00 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jc8BT-000RJw-4p for ged-emacs-devel@m.gmane-mx.org; Fri, 22 May 2020 15:57:59 +0200 Original-Received: from localhost ([::1]:35116 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc8BR-0000ic-Pr for ged-emacs-devel@m.gmane-mx.org; Fri, 22 May 2020 09:57:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52358) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc8Ag-00006O-VT for emacs-devel@gnu.org; Fri, 22 May 2020 09:57:11 -0400 Original-Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]:40235) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jc8Ae-0003aM-Rt; Fri, 22 May 2020 09:57:10 -0400 Original-Received: by mail-oi1-x231.google.com with SMTP id v128so9347453oia.7; Fri, 22 May 2020 06:57:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=nJ8r9/TX8NivKRWOHoojLL0W8Z1vjolvj7v40zX5rVI=; b=nWo95ORx3Jw/V+Vh/rhmnZ/9Mu42zWIIsof1xRo6st62EbcB8+XW1NM27KhwaVXDzy TF3x68IdPrlmHg+mNQ7Vu7kVOJMSnFVry8f9v6PoSWd42QAkyN5e/zbSasK2dG/5Uf7r 0AWqcGF5BiaSrasUqshAPWfD2VFR2PlDroXlAabaTL/BBeQW65uvwZ4gdMI7TUMahVm/ 9P/m9Tq6k0EmQVBp1gsTMWB6bvEG9IF9cAHviIL8A65rtGmTR5xkgC6WeWzqltz/7hFi DhdM04q8aO3TUDDBDc7sF7da3rLSbnuQ8fn5a2SlOP3RQZbhydrmvIBvdfVTlk7O2+vT Y1Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=nJ8r9/TX8NivKRWOHoojLL0W8Z1vjolvj7v40zX5rVI=; b=L+yXTpr6+EEPY3F08l6h4GUFAwxWgv+tgbzbJtPJeWAHribzY3KjAHH2Ay18Mdu5QI d1dQ8s2TK04oGJzQ+USI+QPigk58z2g/EIyv0NLawA2rsRn2z+5Oeu9RUG2pGmZdmvoC IfEBRs2RT8NVe1HGwnCC8bYbiw8oJGq8ZyD78IiN08y2Yu17MfdYg6Iz6yIMwaQ2oXdZ 2HB3PSgKOHAO/3G/rol2Y+uHmPhG2egTRPqpNBXZm0umhoY5McOnDs+lfPjwnyquwhg7 JcHl6b67b1CB4G3AYTqAvdwwURscTTIk4vx6GQ9wIrUTlgcFtwFSdrwBFkusZWqWuHNU 4XLg== X-Gm-Message-State: AOAM531LvUJQbXZ4sjGX7nKe5z3S/xPGSYvSQ3qTwDKbdUKq3qsbjIEo 8XHPVQgS5cIggOjXdMMc4BZ0oWsZmoO36K0pdhSsIr0a X-Google-Smtp-Source: ABdhPJzvCm2FaCqh+Ia62LZABxCCrb58flb97WqshHB4GUXZeTy/qkdsdcwFykr4JwiP8XIhw1D/YNGOGdp4NW60LZk= X-Received: by 2002:aca:b708:: with SMTP id h8mr1295502oif.122.1590155826073; Fri, 22 May 2020 06:57:06 -0700 (PDT) In-Reply-To: <83ftbs2jr5.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::231; envelope-from=pipcet@gmail.com; helo=mail-oi1-x231.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:251228 Archived-At: On Fri, May 22, 2020 at 1:15 PM Eli Zaretskii wrote: > > From: Pip Cet > > Date: Fri, 22 May 2020 12:52:41 +0000 > > Cc: cpitclaudel@gmail.com, alan@idiocy.org, emacs-devel@gnu.org > > > > > You can request all the ligatures that _can_ be supported; > > > > How do I do that? Opentype fonts can support arbitrary ligatures, such > > as "Zapfino" being a seven-letter ligature. > > I thought the set of all the ligatures is known, and guided by > typography experts. No, that's not how Opentype handles things at all. I just added a "ta" ligature to a font by converting it to ttx format, editing the XML, and converting back to .otf. It works fine. So ad-hoc ligatures certainly are a feature of Opentype. > Do font designers really support ligatures from > any arbitrary combination of characters? If so, where can I read > about this? https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#lookuptype-4= -ligature-substitution-subtable The font I'm looking at right now has these: Th, ch, ck, ffh, ffi, ffj, ffk, ffl, ff, fh, fi, fj, fk, fl, ft, tt, tz But I've also come across an example where "f=C3=A4" was displayed differently, though I'm not sure it used Opentype ligatures. > > > For example, when displaying program source code > > > you'd probably want the various symbols, like -> etc., to produce > > > ligatures, but you most probably won't want "ffi" in a variable name > > > to produce a ligature. > > > > Why not? > > It makes no sense to me. Why ligate them in that use case? Program > source code isn't supposed to behave like typeset human-readable text. Seems like an aesthetic decision. As far as I'm concerned, program source code is typeset human-readable text, it just has different (and possibly better) conventions for typesetting it. I wouldn't choose to use a variable-pitch font for program source code ordinarily, but if I did, I'd want ligatures. > > "For the list of typographical ligatures, see > > > > https://en.wikipedia.org/wiki/Orthographic_ligature#Ligatures_in_Unic= ode_(Latin_alphabets)" > > > > That's very wrong: typographical ligatures generally aren't assigned > > Unicode codepoints; those that have them usually do so for historical > > reasons. > > Indeed, ligatures don't have to have Unicode codepoints, only some of > them are precomposed. Emacs doesn't need them to have codepoints when > we use auto-composition-mode. The reference is there only to show the > list of ligatures, and I believe the list is full regardless of the > codepoint issue. Can you point me to a larger list of ligatures made > out of ASCII letters? "Th" is mentioned as an example in a few places, and it's not on the list. > But I don't think we should continue with these details before we have > a clear idea of whether the list of possible ligatures is really > infinite, as you seem to imply. I agree.