Calt not working
mauro sacchetto
Posts: 353
I created a CALT (related to a simply substitution) which, for French and Latin, replaces quoteright with quoteright.fr; in truth, I have never understood the reason for having a different bearing for French and Italian than for other languages, except for the different function of the apostrophe, which in French and Italian indicates elision.
I similarly created a CALT that should replace quoteright.sc with quoteright.frsc, but it doesn't work in this case.
In fact, in the respective lookups that FontForge creates, I find the correct syntax in the first case:
========================================================================
lookup caltContextualAlternatesinLatinlookup40 {
lookupflag 0;
sub [\A \B \C \D \E \F \G \H \I \J \K \L \M \N \O \P \Q \R \S \U \V \W \X \Y \Z \a \b \c \d \e \f \g \h \i \j \k
\l \m \n \o \p \q \r \s \t \u \v \w \x \y \z ] [\quoteright ]' by [\quoteright.fr ];
} caltContextualAlternatesinLatinlookup40;
lookupflag 0;
sub [\A \B \C \D \E \F \G \H \I \J \K \L \M \N \O \P \Q \R \S \U \V \W \X \Y \Z \a \b \c \d \e \f \g \h \i \j \k
\l \m \n \o \p \q \r \s \t \u \v \w \x \y \z ] [\quoteright ]' by [\quoteright.fr ];
} caltContextualAlternatesinLatinlookup40;
========================================================================
In the second case, however, I find a confused (incorrect) syntax, which I can't decipher:
========================================================================
lookup SingleSubstitutionlookup46 {
lookupflag 0;
sub \quoteright.sc by \quoteright.frsc ;
} SingleSubstitutionlookup46;
lookup caltContextualAlternatesinLatinlookup41 {
lookupflag 0;
sub [\a.sc \b.sc \c.sc \d.sc \e.sc \f.sc \g.sc \h.sc \i.sc \j.sc \k.sc \l.sc \m.sc \n.sc
\o.sc \p.sc \q.sc \r.sc \s.sc \t.sc \u.sc \v.sc \w.sc \x.sc \y.sc \z.sc ] [\quoteright.sc ]'lookup SingleSubstitutionlookup46 ;
} caltContextualAlternatesinLatinlookup41;
lookupflag 0;
sub \quoteright.sc by \quoteright.frsc ;
} SingleSubstitutionlookup46;
lookup caltContextualAlternatesinLatinlookup41 {
lookupflag 0;
sub [\a.sc \b.sc \c.sc \d.sc \e.sc \f.sc \g.sc \h.sc \i.sc \j.sc \k.sc \l.sc \m.sc \n.sc
\o.sc \p.sc \q.sc \r.sc \s.sc \t.sc \u.sc \v.sc \w.sc \x.sc \y.sc \z.sc ] [\quoteright.sc ]'lookup SingleSubstitutionlookup46 ;
} caltContextualAlternatesinLatinlookup41;
========================================================================
Or perhaps the transition from quoteright to quoteright.sc and then to quoteright.frsc needs to be done differently?
Thank you
m
0
Comments
-
I saved the files in UFO3 format, edited the features.fea file by hand and generated the otf with fontmake and now everything works. I don't understand if FontForge gets confused with a non-Unicode glyph like quoteright.frsc
0 -
This may be irrelevant, or an artifact of something else in copying the code over, but… isn’t there a missing space near the end of the problem example?
> [\quoteright.sc ]'lookup SingleSubstitutionlookup46 ;
should be
> [\quoteright.sc ]' lookup SingleSubstitutionlookup46 ;
0 -
That syntax is automatically generated by FontForge based on the provisions provided in the GUI. In any case, it is not clear why this hypothetical error occurs only in that lookup.(Unfortunately, FontForge is not free from bugs, I myself have identified more than one. But to work with Glyphs I'll have to wait until I buy an iMac, probably the next one, announced for the end of the year).
0
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