[gentium-commits] [SCM] gentium updated: r90 - trunk/gentium/source/fonts/gentium-tug/type1
Pavel Far??
INVALID.NOREPLY at gnu.org.ua
Wed Apr 6 21:44:57 CEST 2022
Author: pavel
Date: 2022-04-06 19:44:57 +0000 (Wed, 06 Apr 2022)
New Revision: 90
Modified:
trunk/gentium/source/fonts/gentium-tug/type1/kerncorrection.py
Log:
refactor kerncorrection.py a little
Modified: trunk/gentium/source/fonts/gentium-tug/type1/kerncorrection.py
===================================================================
--- trunk/gentium/source/fonts/gentium-tug/type1/kerncorrection.py 2022-04-06 19:11:02 UTC (rev 89)
+++ trunk/gentium/source/fonts/gentium-tug/type1/kerncorrection.py 2022-04-06 19:44:57 UTC (rev 90)
@@ -77,6 +77,8 @@
# aacute.sc + quotedblleft and adieresis.sc + quotedblleft
# TODO: several methods could be merged (simpler code, but worse result to report to Victor)
kern_pairs_capital = [
+ # BE CAREFULL: It is used also for small caps and may cause problems
+ # when moving to class kerning
["V A", "V Aacute", "V Abreve", "V Acircumflex", "V Adieresis", "V AE", "V Agrave", "V Amacron", "V Aogonek", "V Aring", "V Atilde"],
["A Y", "A Yacute", "A Ydieresis", "Aacute Y", "Abreve Y", "Acircumflex Y", "Adieresis Y", "Agrave Y", "Amacron Y", "Aogonek Y", "Aring Y", "Atilde Y", "Aacute Yacute"],
["L V", "Lcommaaccent V", "Lslash V"],
@@ -349,7 +351,16 @@
kernline = a[0]
for b in derivedkerns:
newkernline = kernline.replace(basekern, b)
+ parts = newkernline.split()
+ # Write two capital letters
self.add_to_kern_lines(newkernline)
+ # Write two small caps
+ self.add_to_kern_lines("KPX " + parts[1].lower() + ".sc " + parts[2].lower() +
+ ".sc " + str(int(round(SMALL_CAPS_CORRECTION * float(parts[3])))) +
+ '\n')
+ # Write capital letter + small cap
+ self.add_to_kern_lines("KPX " + parts[1] + " " + parts[2].lower() + ".sc " +
+ str(int(round(SMALL_CAPS_CORRECTION * float(parts[3])))) + '\n')
def accented_small_letters(self, fromreader):
for x in self.kern_pairs_small:
@@ -361,19 +372,6 @@
newkernline = kernline.replace(basekern, b)
self.add_to_kern_lines(newkernline)
- def accented_small_caps(self, fromreader):
- for x in self.kern_pairs_capital:
- basekern = x[0]
- derivedkerns = x[1:]
- a = fromreader.getkerns("KPX " + basekern + " ")
- kernline = a[0]
- for b in derivedkerns:
- newkernline = kernline.replace(basekern, b)
- parts = newkernline.split()
- self.add_to_kern_lines("KPX " + parts[1].lower() + ".sc " + parts[2].lower() +
- ".sc " + str(int(round(SMALL_CAPS_CORRECTION * float(parts[3])))) +
- '\n')
-
def accented_initial_cap(self, fromreader):
for x in self.kern_pairs_initial_cap:
basekern = x[0]
@@ -384,18 +382,6 @@
newkernline = kernline.replace(basekern, b)
self.add_to_kern_lines(newkernline)
- def accented_initial_cap_small_cap(self, fromreader):
- for x in self.kern_pairs_capital:
- basekern = x[0]
- derivedkerns = x[1:]
- a = fromreader.getkerns("KPX " + basekern + " ")
- kernline = a[0]
- for b in derivedkerns:
- newkernline = kernline.replace(basekern, b)
- parts = newkernline.split()
- self.add_to_kern_lines("KPX " + parts[1] + " " + parts[2].lower() + ".sc " +
- str(int(round(SMALL_CAPS_CORRECTION * float(parts[3])))) + '\n')
-
def make_derived_latin_kerns(self, latin_kern):
left_base_letter, right_base_letter = latin_kern.split()
@@ -474,9 +460,7 @@
# letters with accents
output_generator.accented_capital_letters(fin)
output_generator.accented_small_letters(fin)
-output_generator.accented_small_caps(fin)
output_generator.accented_initial_cap(fin)
-output_generator.accented_initial_cap_small_cap(fin)
output_generator.make_latin_class_kerns(fin)
output_generator.accented_left_punctuation(fin)
output_generator.czech_quotes(fin)
More information about the gentium-commits
mailing list.