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
- 46 Introductions
- 3.9K Typeface Design
- 480 Type Design Critiques
- 558 Type Design Software
- 1.1K Type Design Technique & Theory
- 648 Type Business
- 841 Font Technology
- 29 Punchcutting
- 514 Typography
- 119 Type Education
- 319 Type History
- 76 Type Resources
- 110 Lettering and Calligraphy
- 31 Lettering Critiques
- 79 Lettering Technique & Theory
- 540 Announcements
- 88 Events
- 112 Job Postings
- 168 Type Releases
- 171 Miscellaneous News
- 275 About TypeDrawers
- 53 TypeDrawers Announcements
- 120 Suggestions and Bug Reports