Calt not working
Options

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.8K Typeface Design
- 476 Type Design Critiques
- 555 Type Design Software
- 1.1K Type Design Technique & Theory
- 640 Type Business
- 831 Font Technology
- 29 Punchcutting
- 508 Typography
- 120 Type Education
- 313 Type History
- 75 Type Resources
- 109 Lettering and Calligraphy
- 30 Lettering Critiques
- 79 Lettering Technique & Theory
- 533 Announcements
- 86 Events
- 110 Job Postings
- 167 Type Releases
- 169 Miscellaneous News
- 274 About TypeDrawers
- 53 TypeDrawers Announcements
- 119 Suggestions and Bug Reports