An oddity with the replacements via 'locl'
mauro sacchetto
Posts: 353
I noticed a fact that baffled me.
I do not know if it is physiological, or derives from some mistake of mine.
Imposed a 'locl' substitution lookup that concerns both lowercase letters and small caps (the example I report is purely simplifying; I did an experiment by modifying EB Garamond as a test).
Now:
1) the lowercase letter (in my experiment the <a>) respects the replacement of the lookup;
2) the same substitution is also applied to the <a> small cap, I don't understand why;
3) the substitutions for the letters small caps are not carried out at all.
What's strange or wrong?
0
Comments
-
I believe that 'locl' is a feature which is applied early, regardless of how it is ordered in your font (and thus will be applied before small caps). Therefore, you need your small caps feature to apply to the localized forms and the non-localized forms.5
-
I have:
lookup loclLocalizedFormslookup4 { lookupflag 0; sub \m by \perthousand ; sub \a.sc by \ampersand ; sub \e.sc by \w.sc ; sub \i.sc by \i.dotsc ; sub \o.sc by \oslashacute.sc ; sub \r.sc by \multiply ; sub \lacute.sc by \Wcircumflex ; } loclLocalizedFormslookup4; feature locl { script DFLT; language dflt ; lookup loclLocalizedFormslookup4; script grek; language dflt ; lookup loclLocalizedFormslookup4; script latn; language AZE exclude_dflt; lookup loclLocalizedFormslookup4; language CRT exclude_dflt; lookup loclLocalizedFormslookup4; language DEU exclude_dflt; lookup loclLocalizedFormslookup4; language FRA exclude_dflt; lookup loclLocalizedFormslookup4; language ITA exclude_dflt; lookup loclLocalizedFormslookup4; language MOL exclude_dflt; lookup loclLocalizedFormslookup4; language ROM exclude_dflt; lookup loclLocalizedFormslookup4; language TRK exclude_dflt; lookup loclLocalizedFormslookup4; language dflt ; lookup loclLocalizedFormslookup4; } locl;
andlookup smcpLowercasetoSmallCapitalslookup20 { lookupflag 0; sub \quotedbl by \quotedbl.sc ; sub \quotesingle by \quotesingle.sc ; sub \grave by \grave.sc ; sub \a by \a.sc ; sub \b by \b.sc ; sub \c by \c.sc ; sub \d by \d.sc ; sub \e by \e.sc ; sub \f by \f.sc ; sub \g by \g.sc ; sub \h by \h.sc ; sub \i by \i.sc ; sub \j by \j.sc ; sub \k by \k.sc ; sub \l by \l.sc ; sub \m by \m.sc ; sub \n by \n.sc ; sub \o by \o.sc ; sub \p by \p.sc ; sub \q by \q.sc ; sub \r by \r.sc ; sub \s by \s.sc ; sub \t by \t.sc ; sub \u by \u.sc ; sub \v by \v.sc ; sub \w by \w.sc ; sub \x by \x.sc ; sub \y by \y.sc ; sub \z by \z.sc ; . . . sub \dieresis by \dieresis.sc ; sub \macron by \macron.sc ; sub \uni1EF5 by \uni1EF5.sc ; sub \uni1EF7 by \uni1EF7.sc ; sub \uni1EF9 by \uni1EF9.sc ; } smcpLowercasetoSmallCapitalslookup20; feature smcp { script DFLT; language dflt ; lookup smcpLowercasetoSmallCapitalslookup20; script grek; language dflt ; lookup smcpLowercasetoSmallCapitalslookup20; script latn; language AZE exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language CRT exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language DEU exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language FRA exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language ITA exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language MOL exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language ROM exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language TRK exclude_dflt; lookup smcpLowercasetoSmallCapitalslookup20; language dflt ; lookup smcpLowercasetoSmallCapitalslookup20; } smcp;
Do you see anything wrong? 'locl" is lookup04, 'smcp' is lookup 20; both applied to all languages0 -
My point is that 'locl' will always be applied before smcp, so there won't be any a.sc etc. for locl to affect when locl is applied.
You'd need to either have a localized small caps feature that does the desired substitutions in your 'smcp' feature (e.g. r->multiply for the desired languages) or you'd need to have 'locl' change r->r.locl and then have 'smcp' change r.locl->multiply.6 -
I understand, although in reality it is my fault that I have probably complicated things.I have a font in which, immediately after the 'aalt' (0 and 1) lookups, I have two 'locl' replacement lookups.
https://www.dropbox.com/s/q7r6jcf5e9iyhwc/test-Regular.otf?dl=0Now, in lookup 3 the substitution cedilla.sc -> ccommaaccent.sc for MOL and ROM works.Instead in lookup 2 the i.sc -> i.dotsc for TRK does not go and I always find the lower case <i>.Apparently the settings are the same, and I can't understand this different behavior ...0 -
Ahhhh solved. It was lacking
i.dot --> i.dotsc
in "smtp" lookup.
Sorry for posting a not useful tread and thank you0
Categories
- All Categories
- 43 Introductions
- 3.7K Typeface Design
- 803 Font Technology
- 1K Technique and Theory
- 622 Type Business
- 444 Type Design Critiques
- 542 Type Design Software
- 30 Punchcutting
- 136 Lettering and Calligraphy
- 83 Technique and Theory
- 53 Lettering Critiques
- 485 Typography
- 303 History of Typography
- 114 Education
- 68 Resources
- 499 Announcements
- 80 Events
- 105 Job Postings
- 148 Type Releases
- 165 Miscellaneous News
- 270 About TypeDrawers
- 53 TypeDrawers Announcements
- 116 Suggestions and Bug Reports