From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Cl=c3=a9ment_Pit-Claudel?= Newsgroups: gmane.emacs.devel Subject: Re: Supporting stylistic sets Date: Sun, 25 Sep 2022 15:19:36 -0700 Message-ID: <8625e36a-10ec-5fcf-7e71-373c1c431735@gmail.com> References: <83r101ntwi.fsf@gnu.org> <83illdnpn3.fsf@gnu.org> <83h70xnp43.fsf@gnu.org> <83bkr5ne65.fsf@gnu.org> <83a66pnczg.fsf@gnu.org> <837d1sonyc.fsf@gnu.org> <834jwwolyz.fsf@gnu.org> <8335cgol11.fsf@gnu.org> <83y1u8n414.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12944"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Sep 26 00:20:33 2022 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 1ocZzE-0003CL-Up for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Sep 2022 00:20:32 +0200 Original-Received: from localhost ([::1]:37402 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ocZzD-0008Ih-8b for ged-emacs-devel@m.gmane-mx.org; Sun, 25 Sep 2022 18:20:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35114) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ocZyP-0007Yn-Kv for emacs-devel@gnu.org; Sun, 25 Sep 2022 18:19:41 -0400 Original-Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]:34731) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ocZyN-0005mJ-MF for emacs-devel@gnu.org; Sun, 25 Sep 2022 18:19:41 -0400 Original-Received: by mail-pf1-x431.google.com with SMTP id e68so4985869pfe.1 for ; Sun, 25 Sep 2022 15:19:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date; bh=eAKEcyf18CdfTHKtdro/FRYgcnbGnSLDq0Hly6sJPFA=; b=Zv+mW5QextAzGociOC6o7uD51rkk85lcVRPPtJF0AaYaEoOWXvuGxtGqzUwGEkSJ74 lwObE+INVYTWrRXUaFIQKlD71ZJU/Q+dPSauYA7fwKHGvuSnfMnG/9h1EsRp4bsuxaBk MiTCA0OHHoawQm3fkdJlTHSWuNkmC5pndlBLvmGI3X6ylT9/aIzO1kzXzM8C+Byka3IN ZCwwHHknNaN4e6E1s3eHIRJjgVEeE44+toCg0bfWSmwTMYZZb0vUlPd9mf8wLrYLB0p9 LpvO4fufe4MFxYDzH7bOCTW5qQwfrxYpn4NM0eDmf39ooCNNGiyvRGCPwpzaUxeYzXlB B0eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=eAKEcyf18CdfTHKtdro/FRYgcnbGnSLDq0Hly6sJPFA=; b=g5x6TxeRijWSU/7Kav07B9I3cGuFh8Z4mdDOugfwflxLDxoNiOlD8oqubiapnSZv2q eS/wjFyNyTshgUmcJS0nUXM1acq0yaUgoAPEv6i9IpoaVtmWxJJ3O2A/Kt66m3GoqzHl cjdIxSTvAa/wJQ+Peb7KmJPQ/RmJgNv7+nQVVOVbDa/svl3+jPJtqyrx9grOk212NP9g E/eu0rpQu1ahHAIW9yFkazcdIvcWVXFUhb/6FbdjPa2TMT3+aMHMBgwmlBsl/yE7EWvO bL1CVP5p7HWzvWMDbAFBXC7n5MQ4BPM/swu2LSlUUH5KkAMeV61mxZ5ZjDHx5RKrFRXK +IsA== X-Gm-Message-State: ACrzQf0p351o3Qk6yDD4H65gBf5oDJpULB7KHFCwS/F3iFQhlwjt+s7+ 5mzZkPvUwBSf0lpCBCqkYWORhFYHLrg= X-Google-Smtp-Source: AMsMyM678sAvdWfWWYZdws2tWSCm7OzsyJxHUC79Uix7IwnBl+flGqFNtXeQyN3OOVr8nBRDX6vN/w== X-Received: by 2002:a05:6a00:99f:b0:543:198b:f995 with SMTP id u31-20020a056a00099f00b00543198bf995mr20385759pfg.45.1664144377543; Sun, 25 Sep 2022 15:19:37 -0700 (PDT) Original-Received: from [192.168.0.10] (75-164-207-85.ptld.qwest.net. [75.164.207.85]) by smtp.gmail.com with ESMTPSA id g6-20020aa79dc6000000b00540b3be3bf6sm10503681pfq.196.2022.09.25.15.19.36 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 25 Sep 2022 15:19:36 -0700 (PDT) Content-Language: en-GB In-Reply-To: <83y1u8n414.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=cpitclaudel@gmail.com; helo=mail-pf1-x431.google.com X-Spam_score_int: -58 X-Spam_score: -5.9 X-Spam_bar: ----- X-Spam_report: (-5.9 / 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, NICE_REPLY_A=-3.766, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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:296239 Archived-At: On 9/24/22 09:14, Eli Zaretskii wrote: > Are you saying > that each tag can be used by a single character in a font? IOW, no > feature tag can ever be shared by two or more characters in a font? Sometimes, but not always: - Sometimes each stylistic set tag is used to toggle a different display for a single character. See e.g. https://ctan.org/tex-archive/fonts/garamond-math . This works like a GUI that lets you pick variants individually for each character. - Sometimes a stylistic set is used to change the appearance of multiple characters at once. See e.g. https://github.com/newbee1905/Iosevka-personal-config/blob/master/doc/stylistic-sets.md . This is more akin to customizing the feel of the whole face. I haven't thought deeply about how to best make these accessible in Emacs, but in most cases I think the preference for one stylistic set is "global". For example, I use the Iosevka font, and I use the stylistic set that imitates the "Ubuntu mono" font everywhere. So, for this use case, a font-level parameter would work well. There is one use case for stylistic sets where a global, per-font setting doesn't cut it, which is sometimes called "ligation sets" (see e.g. https://typeof.net/Iosevka/). The idea is that some font use stylistic sets to allow you to chose different sets of ligatures, and the appropriate set of ligatures depends on the context. For example, Iosevka has one "ligation set" per programming language: the expectation is that code in F# would be rendered with a different stylistic set than code written in Coq; same for OCaml, Haskell, etc. In an Org buffer with multiple code fragments, I would want to use a different stylistic set for each fragment. I'm not sure how to do this in Emacs. Clément.