Latin, Greek, Cyrillic resources (classes, kerning, glyphs' comparing, Unicode blocks for LGC etc.)
Stefan Peev
Posts: 103
in Resources
I would just like to share with colleagues resources that I prepare and systematize for work on my projects. For now, these resources are in the process of development and are not comprehensive, but I hope that with time, and perhaps with the assistance of other colleagues, these resources will gain even greater practical utility. For me, the resources in the Cyrillic section are the most useful, but for colleagues in the forum, the Latin and Greek sections will probably be of greater interest. I am open to ideas and assistance to develop the resource base and make it more relevant.
Tagged:
5
Comments
-
When creating multilingual extended Cyrillic fonts, the question of the scope of the kerning class becomes quite complex. The combination of the Cyrillic glyphs /г/л practically necessarily requires the application of kerning, but in extended Cyrillic the class of the glyph /г (class: г ѓ ґ ғ ӷ ӻ) and the class of the /л (class: л љ ӆ ԉ ԓ ԕ ԡ ԯ) glyph are large enough and the danger of missing one of the glyphs in these classes is great. That's why I'm trying to systematize the resources that would be helpful in building extended Cyrillic projects.
2 -
Building a network of classes to cover in the most relevant way all cases requiring kerning corrections in multilingual Cyrillic is one of the main goals of the Common Serif and Veleka projects. Combining, for example, the uppercase letters:
uni0410 uni041B.loclBGR uni0466 uni0468 uni04D0 uni04D2 uniA656 uniA658 uniA65C
in the kerning left class does not at all mean that we can apply the same class to lowercase letters, which are:
The asymmetry of the kerning classes in the Cyrillic alphabet is a rather confusing phenomenon, especially if we take into account the graphic difference between the forms of the international Cyrillic alphabet and the Bulgarian form of the Cyrillic alphabet. The same glyph Л in Cyrillic would be present in two different kerning classes depending on whether it refers to the international Cyrillic (uni041B) or the Bulgarian form of Cyrillic (uni041B.loclBGR).
An example for Cyrillic kerning classes in case of ГЛ, Гл, гл, гЛ letter combinations.ГЛ Гл гл гЛ. ГЃҐӶҒӺ гѓґӷғӻ. ЛЉӅԈԒԔԠԮ лљӆԉԓԕԡԯKerning: LEFTUppercase glyphs: @_uni0413 = [uni0413 uni0403 uni0490 uni0492 uni04F6 uni04FA] [Г Ѓ Ґ Ӷ Ғ Ӻ]Lowercase glyphs: @_uni0433 = [uni0433 uni0453 uni0491 uni0493 uni04F7 uni04FB] [г ѓ ґ ӷ ғ ӻ]Kerning: RIGHTUppercase glyphs: @_uni041B = [uni041B uni0409 uni04C5 uni0508 uni0512 uni0514 uni0520 uni052E] [Л Љ Ӆ Ԉ Ԓ Ԕ Ԡ Ԯ]Lowercase glyphs: @_uni043B = [uni043B uni0459 uni04C6 uni0509 uni0513 uni0515 uni0521 uni052F] [л љ ӆ ԉ ԓ ԕ ԡ ԯ]
These kerning classes only apply to the use cases of the international form of the Cyrillic alphabet. With the Bulgarian form of the Cyrillic alphabet, there should be separate classes for glyphs Л л.2 -
An example of kerning classes for extended multilingual Cyrillic font. Kerning pairs КО Ко ко кО
1 -
In which cases is kerning mandatory in Cyrillic and what kerning classes can it cover? In a series of examples I will try to give an extended answer to these questions. The first characteristic case is with the capital letters ГД:
Kerning class: LEFT Kerning class: RIGHT Uppercase glyphs [Г Ѓ Ґ Ӷ Ғ Ӻ] ± Uppercase glyphs ± [Д Ԫ Ꙣ Ꚁ Ꚉ] @uni0413_ = [uni0413 uni0403 uni0490 uni0492 uni04F6 uni04FA]; @_uni0414 = [uni0414 uni052A uniA662 uniA680 uniA688];
0 -
Kerning: LEFT [Г Ѓ Ґ Ӷ Ғ Ӻ] Kerning: RIGHT [Л Љ Ӆ Ԉ Ԓ Ԕ Ԡ Ԯ]
– this produces 48 kerning pairs.
Kerning: LEFT [Г Ѓ Ґ Ӷ Ғ Ӻ] Kerning: RIGHT [Д Ԫ Ꙣ Ꚁ Ꚉ]
– this produces 30 kerning pairs.
How much of these pairings do actually occurr in texts?
0 -
Isn’t the point that class kernng can be used here, so there are, in fact, only two pairs being defined, not 78?1
-
My point is that I'm trying to define all the glyphs relevant to a kerning class and have them available as a database of sorts. In the specific projects, these same classes can be implemented in a different form, since not every font project contains multilingual Cyrillic for example. So what I do in relation to my own work is create models of kerning classes. I thought this might be useful for other colleagues, so I'm sharing it.
5 -
Speaking about kerning issues it's important anyone to have in mind the discussion about avoiding GPOS kerning overflow and especially the John Hudson's and Frank Brokland's remarks.
0 -
I thought this might be useful for other colleagues […]I think so too and your contribution is very much appreciated. I am curious about all the classes and kerning combinations you have in mind. In my opinion, it indeed makes sense to expand the classes as much as possible, that is, to add every possible member. The application used for compiling must then perform the subsetting if necessary (our tools, for example, do that, but I am sure there are more).
2 -
I think so too and your contribution is very much appreciated.I am curious about all the classes and kerning combinations you have in mind.
AV
(/uni0410 /uni0474).
On the other hand I have in mind the local forms for Bulgarian Cyrillic and the forms for small capitals.
Here starts a problem. Bulgarian local forms are variants of the default glyphs so they have not unique Unicode codepoints, on one hand, and on the other hand they are named differently in the different font projects. For example the default Cyrillic Л (uni041B) is named in the Bulgarian form as: uni041B.loclBGR, uni041B.BGR, uni041B.bg, El-cy.BGR etc. How will this variety of names affect the presentation of the local Bulgarian forms in the respective classes? That's a question I don't have an answer to.0 -
I don’t think you can cover all the naming conventions used by different type designers and foundries. In our production environment we have quite a bit of legacy naming in the character-layout files and therefore also in the kerning and layout-features files. For Cyrillic this largely means that the ‘afii[…]’ convention is still used. However, the generated fonts are ultimately given ‘uni[…]’ names for the characters, if applicable (for what it is worth). So, in any case we would have to convert the naming you use in your classes, but that can be handled with a script, of course.0
-
Cyrillic class kerning for glyphs like ЪХ
Left class kerning:@_uni0402_ = [uni0402 uni0409 uni040A uni042A uni042C uni0462 uni048C uniA64E uni042A0300 uni042A0301];
Right class kerning:@__uni0425 = [uni0425 uni04B2];2 -
Cyrillic class kerning for glyphs like ЪЛ
Left class kerning:@_uni0402_ = [uni0402 uni0409 uni040A uni042A uni042C uni0462 uni048C uniA64E uni042A0300 uni042A0301];
Right class kerning:@__uni041B = [uni0409 uni041B uni04C5 uni0508 uni0512 uni0514 uni0520 uni052E uniA664];1
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