[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.