manpagez: man pages & more
html files: harfbuzz
Home | html | info | man

A clustering example for levels 0 and 1

Let's say we start with the following character sequence and cluster values:

   A,B,C,D,E
   0,1,2,3,4

We then map the characters to glyphs. For simplicity, let's assume that each character maps to the corresponding, identical-looking glyph:

   A,B,C,D,E
   0,1,2,3,4

Now if, for example, B and C ligate, then the clusters to which they belong "merge". This merged cluster takes for its cluster number the minimum of all the cluster numbers of the clusters that went in. In this case, we get:

   A,BC,D,E
   0,1 ,3,4

Now let's assume that the BC glyph decomposes into three components, and D also decomposes into two. The components each inherit the cluster value of their parent:

   A,BC0,BC1,BC2,D0,D1,E
   0,1  ,1  ,1  ,3 ,3 ,4

Now if BC2 and D0 ligate, then their clusters (numbers 1 and 3) merge into min(1,3) = 1:

   A,BC0,BC1,BC2D0,D1,E
   0,1  ,1  ,1    ,1 ,4

At this point, cluster 1 means: the character sequence BCD is represented by glyphs BC0,BC1,BC2D0,D1 and cannot be broken down any further.

© manpagez.com 2000-2017
Individual documents may contain additional copyright information.