blockligatures removing characters
Hi List, I'm using blockligatures to avoid the 'Th' ligature in some fonts but keep others. Recently I've found this removes the 'h' completely, i.e. 'Th' is changed to 'T', 'The' becomes 'Te' etc. Is there a way to restore the blockligatures functionality? I'm on ConTeXt version 2022.05.02 16:19. Here is a MWE using Almendra (https://fonts.google.com/specimen/Almendra https://fonts.google.com/specimen/Almendra?preview.text=Th%20Almost%20before%20we%20knew%20it,%20we%20had%20left%20the%20ground.%20&preview.text_type=custom) from Google Fonts. ``` \starttypescriptcollection[myfont] \starttypescript[myfont] \definefontsynonym[Serif][Almendra-Regular][features=default] \stoptypescript \starttypescript[myfont] \definetypeface[\typescriptone][rm][serif][myfont][default][] \stoptypescript \stoptypescriptcollection \blockligatures[Th] \definefontfeature[default][default][liga=yes] \definefontfeature[default:nolig][default][liga=no] \definefontfeature[default:blocklig][default][liga=yes,blockligatures=yes] \setupbodyfont[myfont] \starttext The This These have the Th ligature and others (fi) \definedfont[Serif*default:nolig] The This These have no ligatures (not fi) \definedfont[Serif*default:blocklig] The This These are missing the `h' (fi) \stoptext ``` Best, Ben
Happens here as well, already on ConTeXt ver: 2022.03.12 17:56 LMTX.
By the way, this even happens without special fonts:
\blockligatures[Th]
\definefontfeature[default:blocklig][default][liga=yes,blockligatures=yes]
\setupbodyfont[myfont]
\starttext
\definedfont[Serif*default:blocklig]
The This These are missing the `h'
\stoptext
Von: ntg-context
On 5/9/2022 9:56 AM, Denis Maier via ntg-context wrote:
Happens here as well, already on ConTeXt ver: 2022.03.12 17:56 LMTX.
By the way, this even happens without special fonts:
\blockligatures[Th]
\definefontfeature[default:blocklig][default][liga=yes,blockligatures=yes]
\setupbodyfont[myfont]
\starttext
\definedfont[Serif*default:blocklig]
The This These are missing the `h'
\stoptext I'll fix it but it's not the way to do it in lmtx where we have
\startluacode local demo = { name = "demo", options = { { patterns = { fio = "f|io", }, words = [[ fioot fiots ]], }, { patterns = { fio = "t|h", }, words = [[ this that ]], }, }, } table.save("oeps-fixes.llg",demo) \stopluacode \setuplanguage[en][goodies={oeps-fixes.llg}] \setupbodyfont[ebgaramond] \starttext fiets fiots fiats fioot this that \stoptext I just added (no upload) this \startluacode local demo = { name = "demo", options = { { substitutions = { th = "t|h", Th = "T|h", st = "s|t", St = "S|t", fi = "f|i", }, }, }, } table.save("oeps-fixes.llg",demo) \stopluacode \setuplanguage[en][goodies={oeps-fixes.llg}] \setupbodyfont[ebgaramond] \starttext The This These fiets and thisthis thisfiets \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
So, if IIUC those substitutions can be used to block certain ligatures throughout? You can load multiple goodies files as in the example below, correct? Best, Denis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startluacode local blockthlig = { name = "blockthlig", options = { { substitutions = { th = "t|h", Th = "T|h", }, }, }, } table.save("blockthlig.llg",blockthlig) \stopluacode \setuplanguage[en][goodies={lang-en.llg, blockthlig.llg }] \setupbodyfont[ebgaramond] \starttext The This These fiets and thisthis thisfiets \stoptext %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-----Ursprüngliche Nachricht----- Von: ntg-context
Im Auftrag von Hans Hagen via ntg-context Gesendet: Montag, 9. Mai 2022 15:03 An: ntg-context@ntg.nl Cc: Hans Hagen Betreff: Re: [NTG-context] blockligatures removing characters On 5/9/2022 9:56 AM, Denis Maier via ntg-context wrote:
Happens here as well, already on ConTeXt ver: 2022.03.12 17:56 LMTX.
By the way, this even happens without special fonts:
\blockligatures[Th]
\definefontfeature[default:blocklig][default][liga=yes,blockligatures= yes]
\setupbodyfont[myfont]
\starttext
\definedfont[Serif*default:blocklig]
The This These are missing the `h'
\stoptext I'll fix it but it's not the way to do it in lmtx where we have
\startluacode local demo = { name = "demo", options = { { patterns = { fio = "f|io", }, words = [[ fioot fiots ]], }, { patterns = { fio = "t|h", }, words = [[ this that ]], }, }, } table.save("oeps-fixes.llg",demo) \stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\setupbodyfont[ebgaramond]
\starttext fiets fiots fiats fioot this that \stoptext
I just added (no upload) this
\startluacode local demo = { name = "demo", options = { { substitutions = { th = "t|h", Th = "T|h", st = "s|t", St = "S|t", fi = "f|i", }, }, }, } table.save("oeps-fixes.llg",demo) \stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\setupbodyfont[ebgaramond]
\starttext The This These fiets and thisthis thisfiets \stoptext
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ______________________________________________________________ _____________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg- context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ______________________________________________________________ _____________________
Thanks Hans, I tried to modify your example for preventing the capital-Th ligature but this doesn't seem to work. The 'fi' ligature is prevented, but 'Th' still appears as a ligature. This occurs with the original lowercase version too. Have I missed something? ``` \startluacode local demo = { name = "demo", options = { { patterns = { fio = "f|io", }, words = [[ fioot fiots ]], }, { patterns = { fio = "T|h", }, words = [[ This That ]], }, }, } table.save("oeps-fixes.llg",demo) \stopluacode \setuplanguage[en][goodies={oeps-fixes.llg}] \setupbodyfont[ebgaramond] \starttext fiets fiots fiats fioot This That \stoptext ``` Ben On Mon, 9 May 2022, at 14:03, Hans Hagen via ntg-context wrote:
On 5/9/2022 9:56 AM, Denis Maier via ntg-context wrote:
Happens here as well, already on ConTeXt ver: 2022.03.12 17:56 LMTX.
By the way, this even happens without special fonts:
\blockligatures[Th]
\definefontfeature[default:blocklig][default][liga=yes,blockligatures=yes]
\setupbodyfont[myfont]
\starttext
\definedfont[Serif*default:blocklig]
The This These are missing the `h'
\stoptext I'll fix it but it's not the way to do it in lmtx where we have
\startluacode local demo = { name = "demo", options = { { patterns = { fio = "f|io", }, words = [[ fioot fiots ]], }, { patterns = { fio = "t|h", }, words = [[ this that ]], }, }, } table.save("oeps-fixes.llg",demo) \stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\setupbodyfont[ebgaramond]
\starttext fiets fiots fiats fioot this that \stoptext
I just added (no upload) this
\startluacode local demo = { name = "demo", options = { { substitutions = { th = "t|h", Th = "T|h", st = "s|t", St = "S|t", fi = "f|i", }, }, }, } table.save("oeps-fixes.llg",demo) \stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\setupbodyfont[ebgaramond]
\starttext The This These fiets and thisthis thisfiets \stoptext
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
I've just update and blockligatures=yes is working again; thanks very much Hans. Ben On Fri, 13 May 2022, at 14:29, Ben Moon via ntg-context wrote:
Thanks Hans,
I tried to modify your example for preventing the capital-Th ligature but this doesn't seem to work. The 'fi' ligature is prevented, but 'Th' still appears as a ligature. This occurs with the original lowercase version too. Have I missed something?
``` \startluacode local demo = { name = "demo", options = { { patterns = { fio = "f|io", }, words = [[ fioot fiots ]], }, { patterns = { fio = "T|h", }, words = [[ This That ]], }, }, } table.save("oeps-fixes.llg",demo) \stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\setupbodyfont[ebgaramond]
\starttext fiets fiots fiats fioot This That \stoptext ``` Ben
On Mon, 9 May 2022, at 14:03, Hans Hagen via ntg-context wrote:
On 5/9/2022 9:56 AM, Denis Maier via ntg-context wrote:
Happens here as well, already on ConTeXt ver: 2022.03.12 17:56 LMTX.
By the way, this even happens without special fonts:
\blockligatures[Th]
\definefontfeature[default:blocklig][default][liga=yes,blockligatures=yes]
\setupbodyfont[myfont]
\starttext
\definedfont[Serif*default:blocklig]
The This These are missing the `h'
\stoptext I'll fix it but it's not the way to do it in lmtx where we have
\startluacode local demo = { name = "demo", options = { { patterns = { fio = "f|io", }, words = [[ fioot fiots ]], }, { patterns = { fio = "t|h", }, words = [[ this that ]], }, }, } table.save("oeps-fixes.llg",demo) \stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\setupbodyfont[ebgaramond]
\starttext fiets fiots fiats fioot this that \stoptext
I just added (no upload) this
\startluacode local demo = { name = "demo", options = { { substitutions = { th = "t|h", Th = "T|h", st = "s|t", St = "S|t", fi = "f|i", }, }, }, } table.save("oeps-fixes.llg",demo) \stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\setupbodyfont[ebgaramond]
\starttext The This These fiets and thisthis thisfiets \stoptext
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
First of all, your pattern for Th is incorrect: fio = "T|h", doesn't make much sense.
Anyway, even with this corrected I can confirm the behaviour.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\startluacode
local demo = {
name = "demo",
options = {
{
patterns = {
fio = "f|io",
},
words = [[ fioot fiots ]],
},
{
patterns = {
Th = "T|h",
},
words = [[ This That ]],
},
},
}
table.save("oeps-fixes.llg",demo)
\stopluacode
\setuplanguage[en][goodies={oeps-fixes.llg}]
\mainlanguage[en]
\setupbodyfont[libertine]
\starttext
fiets fiots fiats fioot
This That Then
\noligature{Th}is
\noligature{Th}at
\noligature{Th}en
\stoptext
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Von: ntg-context
Happens here as well, already on ConTeXt ver: 2022.03.12 17:56 LMTX.
By the way, this even happens without special fonts:
\blockligatures[Th]
\definefontfeature[default:blocklig][default][liga=yes,blockligatures=yes]
\setupbodyfont[myfont]
\starttext
\definedfont[Serif*default:blocklig]
The This These are missing the `h'
\stoptext I'll fix it but it's not the way to do it in lmtx where we have
\startluacode local demo = { name = "demo", options = { { patterns = { fio = "f|io", }, words = [[ fioot fiots ]], }, { patterns = { fio = "t|h", }, words = [[ this that ]], }, }, } table.save("oeps-fixes.llg",demo) \stopluacode \setuplanguage[en][goodies={oeps-fixes.llg}] \setupbodyfont[ebgaramond] \starttext fiets fiots fiats fioot this that \stoptext I just added (no upload) this \startluacode local demo = { name = "demo", options = { { substitutions = { th = "t|h", Th = "T|h", st = "s|t", St = "S|t", fi = "f|i", }, }, }, } table.save("oeps-fixes.llg",demo) \stopluacode \setuplanguage[en][goodies={oeps-fixes.llg}] \setupbodyfont[ebgaramond] \starttext The This These fiets and thisthis thisfiets \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nlhttp://www.pragma-ade.nl | www.pragma-pod.nlhttp://www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nlmailto:ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
participants (3)
-
Ben Moon
-
denis.maier@unibe.ch
-
Hans Hagen