Re: [NTG-context] If a Font Has Ligature Glyphs But No Feature?

2022-07-21 Thread Hans Hagen via ntg-context

On 7/20/2022 9:40 PM, Bruce Horrocks via ntg-context wrote:




On 20 Jul 2022, at 05:31, Michael Urban via ntg-context  
wrote:

Aside from purchasing a real font product from Linotype at enormous expense and 
hoping it is better equipped, is there a way to coerce ConTeXt into using the 
ligature glyphs for fi and fl?


Yes - I had to do the same for a font called Venetian 301 for which I found 
these 4 files:

FilenameName as it appears to MacOS
--
Venetian301BT-Roman.otf Venetian 301 Regular
Venetian301BT-Italic.otfVenetian 301 Italic
Venetian301BT-Bold.otf  Venetian 301 Bold
venetian-301-demi-bt.ttfVenetian Dm BT Demi

They each had the fi and fl ligatures, but at different character positions 
depending on which file, and they weren't recognised by default. So I used the 
following code to add them (and add en and em dash substitution as well).

%%  start
\startluacode
 fonts.handlers.otf.addfeature {
 name = "v1", -- these character substitutions will be applied to 
venetian-301-demi-bt
 type = "ligature",
 data = {
 [0xF001] = { "f", "i" },
 [0xF002] = { "f", "l" },
 }
 }
 fonts.handlers.otf.addfeature {
 name = "v2", -- these character substitutions will be applied to 
Venetian301BT
 type = "ligature",
 data = {
 [0xFB01] = { "f", "i" },
 [0xFB02] = { "f", "l" },
 }
 }
 fonts.handlers.otf.addfeature {
 name = "v3", -- these character substitutions will be applied to both
 type = "ligature",
 data = {
 [0x2013] = { "-", "-" },  -- en dash
 [0x2014] = { "-", "-", "-" }, -- em dash
 }
 }
\stopluacode
\definefontfeature [venetian-301-demi-ligatures] [v1=yes,v3=yes]
\definefontfeature [venetian-301-BT-ligatures]   [v2=yes,v3=yes]

\starttypescript [serif] [myBookFont]
   \definefontsynonym [Serif]   [file:venetian-301-demi-bt] 
[features=venetian-301-demi-ligatures]
   \definefontsynonym [SerifBold]   [file:Venetian301BT-Bold]   
[features=venetian-301-BT-ligatures]
   \definefontsynonym [SerifItalic] [file:Venetian301BT-Italic] 
[features=venetian-301-BT-ligatures]
\stoptypescript
%%  end

Note that the names v1, v2 and v3 are entirely arbitrary. Also, the 
\starttypescript section sets the font features to be just those I've defined - 
potentially losing whatever 'default' would provide. But since the font doesn't 
seem to have a lot of features in the first place I've so far not noticed any 
problems. I'm sure a real expert could tell you how to retain 'default' and add 
the ligatures, if needed.

just name them 'liga' and default will then do them


-
  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 / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] If a Font Has Ligature Glyphs But No Feature?

2022-07-20 Thread Bruce Horrocks via ntg-context


> On 20 Jul 2022, at 22:11, Henning Hraban Ramm via ntg-context 
>  wrote:
> 
> Am 20.07.22 um 21:40 schrieb Bruce Horrocks via ntg-context:
> 
>> \definefontfeature [venetian-301-demi-ligatures] [v1=yes,v3=yes]
>> \definefontfeature [venetian-301-BT-ligatures]   [v2=yes,v3=yes]
>> Note that the names v1, v2 and v3 are entirely arbitrary. Also, the 
>> \starttypescript section sets the font features to be just those I've 
>> defined - potentially losing whatever 'default' would provide. But since the 
>> font doesn't seem to have a lot of features in the first place I've so far 
>> not noticed any problems. I'm sure a real expert could tell you how to 
>> retain 'default' and add the ligatures, if needed.
> 
> Hi Bruce, you can simply inherit your feature sets from default:
> 
> \definefontfeature [venetian-301-demi-ligatures][default][v1=yes,v3=yes]
> \definefontfeature [venetian-301-BT-ligatures][default][v2=yes,v3=yes]
> 
> I’d like to borrow your example for my book, if you don’t object.

Thank-you for the tip, and please feel free to use my example in your book.

—
Bruce Horrocks
Hampshire, UK

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] If a Font Has Ligature Glyphs But No Feature?

2022-07-20 Thread Henning Hraban Ramm via ntg-context

Am 20.07.22 um 21:40 schrieb Bruce Horrocks via ntg-context:


\definefontfeature [venetian-301-demi-ligatures] [v1=yes,v3=yes]
\definefontfeature [venetian-301-BT-ligatures]   [v2=yes,v3=yes]

Note that the names v1, v2 and v3 are entirely arbitrary. Also, the 
\starttypescript section sets the font features to be just those I've defined - 
potentially losing whatever 'default' would provide. But since the font doesn't 
seem to have a lot of features in the first place I've so far not noticed any 
problems. I'm sure a real expert could tell you how to retain 'default' and add 
the ligatures, if needed.


Hi Bruce, you can simply inherit your feature sets from default:

\definefontfeature [venetian-301-demi-ligatures][default][v1=yes,v3=yes]
\definefontfeature [venetian-301-BT-ligatures][default][v2=yes,v3=yes]

I’d like to borrow your example for my book, if you don’t object.

Hraban
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] If a Font Has Ligature Glyphs But No Feature?

2022-07-20 Thread Bruce Horrocks via ntg-context


> On 20 Jul 2022, at 05:31, Michael Urban via ntg-context  
> wrote:
> 
> Aside from purchasing a real font product from Linotype at enormous expense 
> and hoping it is better equipped, is there a way to coerce ConTeXt into using 
> the ligature glyphs for fi and fl?

Yes - I had to do the same for a font called Venetian 301 for which I found 
these 4 files:

FilenameName as it appears to MacOS
--
Venetian301BT-Roman.otf Venetian 301 Regular
Venetian301BT-Italic.otfVenetian 301 Italic
Venetian301BT-Bold.otf  Venetian 301 Bold
venetian-301-demi-bt.ttfVenetian Dm BT Demi

They each had the fi and fl ligatures, but at different character positions 
depending on which file, and they weren't recognised by default. So I used the 
following code to add them (and add en and em dash substitution as well).

%%  start
\startluacode
fonts.handlers.otf.addfeature {
name = "v1",-- these character substitutions will be applied to 
venetian-301-demi-bt
type = "ligature",
data = {
[0xF001] = { "f", "i" },
[0xF002] = { "f", "l" },
}
}
fonts.handlers.otf.addfeature {
name = "v2",-- these character substitutions will be applied to 
Venetian301BT
type = "ligature",
data = {
[0xFB01] = { "f", "i" },
[0xFB02] = { "f", "l" },
}
}
fonts.handlers.otf.addfeature {
name = "v3",-- these character substitutions will be applied to both
type = "ligature",
data = {
[0x2013] = { "-", "-" },  -- en dash
[0x2014] = { "-", "-", "-" }, -- em dash
}
}
\stopluacode
\definefontfeature [venetian-301-demi-ligatures] [v1=yes,v3=yes]
\definefontfeature [venetian-301-BT-ligatures]   [v2=yes,v3=yes]

\starttypescript [serif] [myBookFont]
  \definefontsynonym [Serif]   [file:venetian-301-demi-bt] 
[features=venetian-301-demi-ligatures]
  \definefontsynonym [SerifBold]   [file:Venetian301BT-Bold]   
[features=venetian-301-BT-ligatures]
  \definefontsynonym [SerifItalic] [file:Venetian301BT-Italic] 
[features=venetian-301-BT-ligatures]
\stoptypescript
%%  end

Note that the names v1, v2 and v3 are entirely arbitrary. Also, the 
\starttypescript section sets the font features to be just those I've defined - 
potentially losing whatever 'default' would provide. But since the font doesn't 
seem to have a lot of features in the first place I've so far not noticed any 
problems. I'm sure a real expert could tell you how to retain 'default' and add 
the ligatures, if needed.

Regards,
—
Bruce Horrocks
Hampshire, UK

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___


Re: [NTG-context] If a Font Has Ligature Glyphs But No Feature?

2022-07-20 Thread Hans Hagen via ntg-context

On 7/20/2022 6:31 AM, Michael Urban via ntg-context wrote:

I downloaded something that purports to be Century Expanded from fontsgeek.com. 
  Although the font has fi and fl ligature glyphs, it does not have a ligature 
font feature and ConTeXt does not use those glyphs.

Aside from purchasing a real font product from Linotype at enormous expense and 
hoping it is better equipped, is there a way to coerce ConTeXt into using the 
ligature glyphs for fi and fl?
you can define your own ligature feature (examples in test suite and 
elsewhere) but personally i'd not spend money on a font that is half 
done (some t1 font converted to ot?); or maybe it does have a feature 
but it's script / language dependent


Hans

-
  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 / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___