Contextual kerning (LookupType 8, chaining contextual positioning)

Ramiro Espinoza's picture

Hi there,

I am trying to solve some triplets kerning problems in a script font without designing more characters.
I thought I could use contextual kerning (LookupType 8, chaining contextual positioning) but when I try to set something like

feature kern {
position d space' 20 D ;
} kern;

I get the message "Cannot mark positioning glyphs". What is the problem? Is 'kern' not the proper feature to place such substitution? In this case, which should be the proper feature to set my contextual positioning?

Thanks in advance.


JanekZ's picture

You need "Single Positioning" used in your kerninglookup:

lookup kernHorizontalKerninglookup2 {
pos \f \space' \T ;
} kernHorizontalKerninglookup2;

lookup SinglePositioninglookup3 {
pos \space <0 0 300 0 >;
} SinglePositioninglookup3;

if I understand it correctly...

Ramiro Espinoza's picture

In Fontlab your code gives:

syntax error at ";"


JanekZ's picture

"FontLab Studio currently does not support:
GSUB lookup type 2 (Multiple substitution, e.g. a b -> c d)
GPOS lookup types 3 (Cursive attachment positioning), 4 (Mark-to-Base attachment positioning), 5 (Mark-to-Ligature attachment
positioning), 6 (Mark-to-Mark attachment positioning), 7
(Contextual positioning), 8 (Chaining contextual positioning)"
Manual, p. 835
So VOLT or FontForge...

Ramiro Espinoza's picture

OK, understood. Now I am trying to import my FL features into VOLT without success :S
When I import my OT font to VOLT the features are lost. Any idea on how to keep FL features in Volt?

Jens Kutilek's picture


I think your code should work if you have FontLab Studio 5.1 because it uses a newer version of the Adobe FDK thank FLS 5.0.

Ramiro Espinoza's picture

Hi Jens,
I tried running in FL 5.1 the following code

feature kern {
lookup one {
position d space' <0 0 3000 0> D ;
} one;
} kern;

and now it does not give error message BUT there is not effect on the addressed glyphs (either in the preview window or generating and testing the font).

JanekZ's picture

my code in ttx syntax:

works in ID for sure!

Ramiro Espinoza's picture

Hereby I invoque the powers and wisdom of the omnipresent Adam Twardoch!
Please materialize and help us! :)

John Hudson's picture

VOLT does not decompile OTL tables, so the data needs to be either in the plain text formats used to store and transfer VOLT projects, lookups, groups or glyph set data (.vtp, .vtl, .vtg, .vtd) or in the private table binary format in which VOLT projects are stored within a source TTF). FontLab offers an option to 'Export VOLT data' when generating a TTF, which I think means it will try to write the private table, but I don't think it is very reliable. You would probably need to rebuild your features and lookups in VOLT.

Alternatively, you should be able to use the AFDKO v.2 outside of FontLab to compile your feature code. Or you could use DTL OTMaster.

Ramiro Espinoza's picture

Thanks for the help. I finally was able to run the code in Fontlab 5.1
The preview does not show the results but testing a generated font, the effects can be seen.
Great! Now I can set kerning for difficult triplets :)

twardoch's picture


sorry, I was on vacation :)


Ramiro Espinoza's picture

No problem Adam, I don't expect the Fontlab genie to materialize every time I invoke it :)

Syndicate content Syndicate content