Advertisement
Guest User

Copy kerning from caps to small caps

a guest
Dec 7th, 2012
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.00 KB | None | 0 0
  1. #MenuTitle: Copy kerning from caps to small caps
  2. """Looks for Cap Kerning pairs and reduplicates their kerning in .sc glyphs."""
  3.  
  4. import GlyphsApp
  5.  
  6. Font = Glyphs.orderedDocuments()[0].font
  7. Doc  = Glyphs.currentDocument
  8. FontMasterID = Doc.selectedFontMaster().id
  9.  
  10. Caps = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
  11. SCending = ".sc"
  12.  
  13. for leftCap in Caps:
  14.     for rightCap in Caps:
  15.         LGroup = "@MMK_L_" + leftCap
  16.         RGroup = "@MMK_R_" + rightCap
  17.        
  18.         kerningValuePlain = Font.kerningForPair(FontMasterID, leftCap, rightCap)
  19.         kerningValueGroup = Font.kerningForPair(FontMasterID, LGroup, RGroup)
  20.         kerningValuePlainGroup = Font.kerningForPair(FontMasterID, leftCap, RGroup)
  21.         kerningValueGroupPlain = Font.kerningForPair(FontMasterID, LGroup, rightCap)
  22.        
  23.         if kerningValuePlain < 10000:
  24.             leftSC = leftCap.lower() + SCending
  25.             rightSC = rightCap.lower() + SCending
  26.             Font.setKerningForPair(FontMasterID, leftSC, rightSC, kerningValuePlain)
  27.             print "Kerning Pair set:", leftSC, rightSC, kerningValuePlain
  28.            
  29.         elif kerningValueGroup < 10000:
  30.             leftSCGroup = "@MMK_L_" + leftCap.lower() + SCending
  31.             rightSCGroup = "@MMK_R_" + rightCap.lower() + SCending
  32.             Font.setKerningForPair(FontMasterID, leftSCGroup, rightSCGroup, kerningValueGroup)
  33.             print "Kerning Pair set:", leftSCGroup, rightSCGroup, kerningValueGroup
  34.            
  35.         elif kerningValueGroupPlain < 10000:
  36.             leftSCGroup = "@MMK_L_" + leftCap.lower() + SCending
  37.             rightSC = rightCap.lower() + SCending
  38.             Font.setKerningForPair(FontMasterID, leftSCGroup, rightSC, kerningValueGroupPlain)
  39.             print "Kerning Pair set:", leftSCGroup, rightSC, kerningValueGroupPlain
  40.            
  41.         elif kerningValuePlainGroup < 10000:
  42.             leftSC = leftCap.lower() + SCending
  43.             rightSCGroup = "@MMK_R_" + rightCap.lower() + SCending
  44.             Font.setKerningForPair(FontMasterID, leftSC, rightSCGroup, kerningValueGroup)
  45.             print "Kerning Pair set:", leftSC, rightSCGroup, kerningValuePlainGroup
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement