Merge branch 'fixed-mono-fonts-single-width-glyphs-support'

Conflicts:
	readme.md
This commit is contained in:
ryanoasis 2015-03-09 18:10:32 -04:00
commit 6c6ef8ef0c
19 changed files with 702 additions and 237 deletions

View file

@ -4,6 +4,7 @@ import sys
import psMat
import re
import os.path
import argparse
try:
#Load the module
@ -13,15 +14,29 @@ except ImportError:
sys.stderr.write("FontForge module could not be loaded. Try installing fontforge python bindings\n")
sys.exit(1)
# argparse stuff
parser = argparse.ArgumentParser(description='Patches a given font with programming and web development related glyphs (mainly for vim-webdevicons)')
parser.add_argument('font', help='The path to the font to be patched (e.g. Inconsolata.otf)')
parser.add_argument('-s', '--use-single-width-glyphs', dest='single', action='store_true', help='Whether to generate the glyphs as single-width not double-width (default is double-width)', default=False)
parser.add_argument('-q', '--quiet', '--shutup', dest='quiet', action='store_true', help='Do not generate verbose output', default=False)
args = parser.parse_args()
print "using fontforge package version: " + str(fontforge.__version__)
sourceFont = fontforge.open(sys.argv[1])
additionalFontNameSuffix = " Plus Nerd File Types"
if args.single:
additionalFontNameSuffix += " Mono"
sourceFont = fontforge.open(args.font)
# rename font
fontname, style = re.match("^([^-]*)(?:(-.*))?$", sourceFont.fontname).groups()
sourceFont.familyname = sourceFont.familyname + " Plus Nerd File Types"
sourceFont.fullname = sourceFont.fullname + " Plus Nerd File Types"
sourceFont.fontname = fontname + 'PlusNerdFileTypes'
sourceFont.familyname = sourceFont.familyname + additionalFontNameSuffix
sourceFont.fullname = sourceFont.fullname + additionalFontNameSuffix
sourceFont.fontname = fontname + additionalFontNameSuffix.replace(" ", "")
sourceFont.appendSFNTName('English (US)', 'Preferred Family', sourceFont.familyname)
sourceFont.appendSFNTName('English (US)', 'Compatible Full', sourceFont.fullname)
@ -29,44 +44,195 @@ sourceFont.appendSFNTName('English (US)', 'Compatible Full', sourceFont.fullname
sourceFont_em_original = sourceFont.em
# glyph fonts
symbols = fontforge.open("glyph-source-fonts/original-source.otf")
symbols2 = fontforge.open("glyph-source-fonts/devicons.ttf")
#Open a font
glyphFont1=fontforge.open("glyph-source-fonts/original-source.otf")
## @todo improve/fix
sourceFont.em = glyphFont1.em
#select unicodes:
glyphFont1.selection.select(("ranges","unicode"),0xE500,0xE51D)
#Copy those glyphs into the clipboard:
glyphFont1.copy()
symbolsRangeStart = 0xE500
symbolsRangeEnd = 0xE521
#select unicodes:
sourceFont.selection.select(("ranges","unicode"),0xE600,0xE61D)
#paste the glyphs above in:
sourceFont.paste()
symbols2RangeStart = 0xE600
symbols2RangeEnd = 0xE6A4
# fix scaling of glyphs
sourceFont.em = sourceFont_em_original
sourceFontRange1Start = 0xE600
sourceFontRange1End = 0xE621
### even more glyphs
sourceFontRange2Start = 0xE700
sourceFontRange2End = 0xE7A4
##Open a font
glyphFont2=fontforge.open("glyph-source-fonts/devicons.ttf")
## @todo improve/fix
sourceFont.em = glyphFont2.em
##select unicodes:
glyphFont2.selection.select(("ranges","unicode"),0xE600,0xE6A4)
##Copy those glyphs into the clipboard
glyphFont2.copy()
SYM_ATTR = {
# Right/left-aligned glyphs will have their advance width reduced in order to overlap the next glyph slightly
0x2b60: { 'align': 'c', 'stretch': 'y' , 'overlap': False },
0x2b61: { 'align': 'c', 'stretch': '' , 'overlap': False },
0x2b62: { 'align': 'r', 'stretch': '' , 'overlap': False },
0x2b63: { 'align': 'l', 'stretch': '' , 'overlap': False },
0x2b64: { 'align': 'c', 'stretch': '' , 'overlap': False },
0x2b80: { 'align': 'l', 'stretch': 'xy', 'overlap': True },
0x2b81: { 'align': 'l', 'stretch': 'xy', 'overlap': True },
0x2b82: { 'align': 'r', 'stretch': 'xy', 'overlap': True },
0x2b83: { 'align': 'r', 'stretch': 'xy', 'overlap': True },
}
# Force the em size to be equal
symbols.em = sourceFont.em
symbols2.em = sourceFont.em
# Initial font dimensions
font_dim = {
'xmin' : 0,
'ymin' : -sourceFont.descent,
'xmax' : 0,
'ymax' : sourceFont.ascent,
'width' : 0,
'height': 0,
}
# Find the biggest char width and height
#
#
## #select unicodes
sourceFont.selection.select(("ranges","unicode"),0xE700,0xE7A4)
##paste the glyphs above in:
sourceFont.paste()
# 0x00-0x17f is the Latin Extended-A range
# 0x2500-0x2600 is the box drawing range
for glyph in range(0x00, 0x17f) + range(0x2500, 0x2600):
try:
(xmin, ymin, xmax, ymax) = sourceFont[glyph].boundingBox()
except TypeError:
continue
# fix scaling of glyphs
sourceFont.em = sourceFont_em_original
if font_dim['width'] == 0:
font_dim['width'] = sourceFont[glyph].width
if ymin < font_dim['ymin']: font_dim['ymin'] = ymin
if ymax > font_dim['ymax']: font_dim['ymax'] = ymax
if xmax > font_dim['xmax']: font_dim['xmax'] = xmax
# Calculate font height
font_dim['height'] = abs(font_dim['ymin']) + font_dim['ymax']
# Update the font encoding to ensure that the Unicode glyphs are available
sourceFont.encoding = 'ISO10646'
# Fetch this property before adding outlines
onlybitmaps = sourceFont.onlybitmaps
def get_dim(glyph):
bbox = glyph.boundingBox()
return {
'xmin' : bbox[0],
'ymin' : bbox[1],
'xmax' : bbox[2],
'ymax' : bbox[3],
'width' : bbox[2] + (-bbox[0]),
'height': bbox[3] + (-bbox[1]),
}
def copy_glyphs(sourceFont, sourceFontStart, sourceFontEnd, symbolFont, symbolFontStart, symbolFontEnd):
sourceFontList = []
sourceFontCounter = 0
for i in xrange(sourceFontStart, sourceFontEnd + 1):
sourceFontList.append(format(i, 'X'))
# Create glyphs from symbol font
symbolFont.selection.select(("ranges","unicode"),symbolFontStart,symbolFontEnd)
sourceFont.selection.select(("ranges","unicode"),sourceFontStart,sourceFontEnd)
for sym_glyph in symbolFont.selection.byGlyphs:
#sym_attr = SYM_ATTR[sym_glyph.unicode]
if args.quiet == False:
print "updating glyph: " + str(sym_glyph)
# convince that this string really is a hex:
currentSourceFontGlyph = int("0x" + sourceFontList[sourceFontCounter], 16)
# Prepare symbol glyph dimensions
sym_dim = get_dim(sym_glyph)
# Select and copy symbol from its encoding point
symbolFont.selection.select(sym_glyph.encoding)
symbolFont.copy()
# Select and paste symbol to its unicode code point
sourceFont.selection.select(currentSourceFontGlyph)
sourceFont.paste()
if args.single:
# Now that we have copy/pasted the glyph, it's time to scale and move it
# Handle glyph stretching
#if 'x' in sym_attr['stretch']:
# # Stretch the glyph horizontally
# scale_ratio = font_dim['width'] / sym_dim['width']
# sourceFont.transform(psMat.scale(scale_ratio, 1))
#if 'y' in sym_attr['stretch']:
# # Stretch the glyph vertically
# scale_ratio = font_dim['height'] / sym_dim['height']
# sourceFont.transform(psMat.scale(1, scale_ratio))
# Use the dimensions from the pasted and stretched glyph
sym_dim = get_dim(sourceFont[currentSourceFontGlyph])
# Center-align the glyph vertically
font_ycenter = font_dim['height'] / 2
sym_ycenter = sym_dim['height'] / 2
# First move it to the ymax (top)
sourceFont.transform(psMat.translate(0, font_dim['ymax'] - sym_dim['ymax']))
# Then move it the y center difference
sourceFont.transform(psMat.translate(0, sym_ycenter - font_ycenter))
# Ensure that the glyph doesn't extend outside the font's bounding box
if sym_dim['width'] > font_dim['width']:
# The glyph is too wide, scale it down to fit
scale_matrix = psMat.scale(font_dim['width'] / sym_dim['width'], 1)
sourceFont.transform(scale_matrix)
# Use the dimensions from the stretched glyph
sym_dim = get_dim(sourceFont[currentSourceFontGlyph])
# Handle glyph alignment
#if sym_attr['align'] == 'c':
# # Center align
# align_matrix = psMat.translate(font_dim['width'] / 2 - sym_dim['width'] / 2 , 0)
align_matrix = psMat.translate(font_dim['width'] / 2 - sym_dim['width'] / 2 , 0)
#elif sym_attr['align'] == 'r':
# # Right align
# align_matrix = psMat.translate(font_dim['width'] - sym_dim['width'], 0)
#else:
# No alignment (left alignment)
#align_matrix = psMat.translate(0, 0)
sourceFont.transform(align_matrix)
#if sym_attr['overlap'] is True:
# overlap_width = sourceFont.em / 48
# # Stretch the glyph slightly horizontally if it should overlap
# sourceFont.transform(psMat.scale((sym_dim['width'] + overlap_width) / sym_dim['width'], 1))
# if sym_attr['align'] == 'l':
# # The glyph should be left-aligned, so it must be moved overlap_width to the left
# # This only applies to left-aligned glyphs because the glyph is scaled to the right
# sourceFont.transform(psMat.translate(-overlap_width, 0))
# Ensure the font is considered monospaced on Windows
sourceFont[currentSourceFontGlyph].width = font_dim['width']
sourceFontCounter += 1
# reset selection so iteration works propertly @todo fix? rookie misunderstanding?
symbolFont.selection.select(("ranges","unicode"),symbolFontStart,symbolFontEnd)
# end for
return
copy_glyphs(sourceFont, sourceFontRange1Start, sourceFontRange1End, symbols, symbolsRangeStart, symbolsRangeEnd)
copy_glyphs(sourceFont, sourceFontRange2Start, sourceFontRange2End, symbols2, symbols2RangeStart, symbols2RangeEnd)
extension = os.path.splitext(sourceFont.path)[1]
@ -77,5 +243,4 @@ sourceFont.generate(sourceFont.fullname + extension)
print "Generated"
print sourceFont.fullname
print sourceFont.fontname

View file

@ -21,7 +21,7 @@ OS2Version: 3
OS2_WeightWidthSlopeOnly: 0
OS2_UseTypoMetrics: 1
CreationTime: 1168259284
ModificationTime: 1417751649
ModificationTime: 1425223576
PfmFamily: 17
TTFWeight: 400
TTFWidth: 5
@ -65,7 +65,7 @@ NameList: Adobe Glyph List
DisplaySize: -72
AntiAlias: 1
FitToEm: 1
WinInfo: 58608 8 9
WinInfo: 58604 13 9
BeginPrivate: 9
BlueValues 27 [-20 0 1098 1118 1462 1556]
OtherBlues 11 [-492 -492]
@ -77,7 +77,7 @@ StemSnapH 29 [123 196 202 208 232 253 414]
StemSnapV 38 [5 89 105 123 146 168 224 232 295 314]
ExpansionFactor 4 0.06
EndPrivate
BeginChars: 65564 971
BeginChars: 65564 975
StartChar: .notdef
Encoding: 65536 -1 0
@ -42624,194 +42624,460 @@ EndChar
StartChar: uniE51D
Encoding: 58653 58653 970
Width: 2048
VWidth: 0
Flags: HO
Flags: HW
LayerCount: 2
Back
Fore
SplineSet
652.511628413 1340.51972668 m 1
799.611378853 1435.8788571 986.445494849 1464.36265605 1155.38586882 1419.17078053 c 1
1316.43947997 1377.15202157 1459.88896783 1269.42002226 1542.318982 1123.87275718 c 0
1548.14213222 1113.59077921 1545.58711405 1097.25194694 1533.2216232 1089.99303202 c 0
1445.92252207 1038.74583485 1358.21366673 988.265108973 1270.39461074 938.104147701 c 0
1259.6430752 931.963027737 1244.12833127 934.946557618 1236.85549127 946.466481261 c 0
1195.33041916 1012.24074007 1130.51595892 1062.57117884 1055.12638596 1078.95605816 c 1
951.260404634 1104.18532593 835.41496288 1060.95526127 771.856171563 974.888532178 c 1
704.626392267 888.819968005 697.590045574 761.727007619 753.930436321 668.491060752 c 1
796.106487966 596.815119289 871.251531786 545.673826717 953.58833387 534.022316356 c 1
1063.27742599 516.397504371 1180.1215142 573.896804679 1235.10153187 670.076800842 c 0
1241.24314208 680.820705108 1256.76379472 686.436892642 1269.14207837 679.414182772 c 0
1357.62843074 629.212232531 1445.69587738 578.278566939 1533.44370747 526.909883119 c 0
1543.83694922 520.825548626 1549.61253354 505.345320498 1542.52003752 492.932331726 c 0
1460.31186156 349.055033419 1319.15701408 241.548136052 1159.54887099 198.896681544 c 1
999.258092128 154.950347243 822.160907864 177.226608995 678.061832494 260.810163884 c 0
582.624237891 315.691702756 501.550659159 396.081378452 446.281151741 491.41249598 c 1
364.553463113 629.58941088 340.49917785 799.318492182 377.825666347 955.025654774 c 1
414.935171205 1112.81866088 515.891311647 1253.80951707 652.511628413 1340.51972668 c 1
679.507902837 1298.43339832 m 0
553.606735228 1218.52642043 460.572641295 1088.46844849 426.473161778 943.474345226 c 1
392.09457215 800.064320318 414.356693137 643.60199537 489.427832634 516.679300895 c 1
540.464570775 428.649037751 614.956209878 354.77659486 703.108639692 304.084401458 c 1
835.396374122 227.351923587 998.918618393 206.702409163 1146.48433213 247.159959081 c 1
1285.63074603 284.343506411 1410.07491673 376.130176358 1486.3446094 496.531599169 c 1
1411.82415641 540.064284583 1337.89376783 582.780427905 1265.24990673 624.118226605 c 1
1195.72898928 522.753988749 1068.30621142 464.94814442 946.11869738 484.581199269 c 1
849.043390089 498.318360783 760.547808909 558.653630711 710.985579304 642.881986123 c 1
643.87500463 753.941172818 652.68048735 902.819332675 732.036548686 1005.13604202 c 1
808.273100021 1107.64947639 943.201013815 1157.1490433 1066.33322102 1127.68849997 c 1
1149.47131973 1109.3111778 1217.92965078 1058.56244434 1265.69320539 993.007254076 c 1
1340.82960077 1035.97927916 1413.03761606 1077.58126588 1486.18516561 1120.38020755 c 1
1408.83200883 1243.32637195 1283.00767549 1334.2006555 1142.61413118 1370.82921947 c 1
987.148255151 1412.41664083 814.398739978 1385.87795818 679.507902837 1298.43339832 c 0
1455.72070312 910.075195312 m 2
1455.72070312 915.004409415 1459.98006909 920.05011435 1465.67684578 920.075099139 c 0
1488.43262717 920.174900906 1511.16645453 920.124975969 1533.92715522 920.075171372 c 0
1538.89669695 920.064297101 1543.90527344 915.763980336 1543.90527344 910.075195312 c 0
1543.90527344 853.180664062 l 1
1602.08886719 853.180664062 l 0
1607.57438149 853.180664062 1612.10031114 848.597757318 1612.08884496 843.159579518 c 0
1612.04004641 820.015402441 1612.04004641 796.9211207 1612.08884496 773.777921371 c 0
1612.10041141 768.29241763 1607.52705671 763.756835938 1602.08886719 763.756835938 c 0
1543.90527344 763.756835938 l 1
1543.90527344 706.862304688 l 0
1543.90527344 701.892751065 1539.61592663 696.874776706 1533.92715522 696.862328628 c 0
1511.15185658 696.812492088 1488.42530753 696.812491985 1465.6987743 696.862328731 c 0
1460.7293191 696.873226191 1455.72070312 701.173502288 1455.72070312 706.862304688 c 0
1455.72070312 763.756835938 l 1
1398.82617188 763.756835938 l 0
1393.85515424 763.756835938 1388.83818853 768.047272352 1388.8261941 773.735750504 c 0
1388.7773364 796.907004299 1388.7773364 820.029519434 1388.8261941 843.201748607 c 0
1388.83667527 848.172756827 1393.13768141 853.180664062 1398.82617188 853.180664062 c 0
1455.72070312 853.180664062 l 1
1455.72070312 910.075195312 l 2
1475.72070312 900.109836209 m 1
1475.72070312 843.180664062 l 0
1475.72070312 837.12764892 1470.01266486 833.180664062 1465.72070312 833.180664062 c 0
1408.80812903 833.180664062 l 1
1408.7836108 816.814576145 1408.78610636 798.456324897 1408.80812849 783.756835938 c 1
1465.72070312 783.756835938 l 0
1471.77371827 783.756835938 1475.72070312 778.048797671 1475.72070312 773.756835938 c 0
1475.72070312 716.843606422 l 1
1491.53175126 716.819133306 1509.708774 716.821693992 1523.90527344 716.843634736 c 1
1523.90527344 773.756835938 l 0
1523.90527344 779.80985108 1529.6133117 783.756835938 1533.90527344 783.756835938 c 0
1592.07080136 783.756835938 l 1
1592.04638866 800.051996855 1592.04888578 818.551503533 1592.0708019 833.180664063 c 1
1533.90527344 833.180664062 l 0
1527.8522583 833.180664062 1523.90527344 838.888702329 1523.90527344 843.180664062 c 0
1523.90527344 900.096593014 l 1
1508.01209625 900.129132924 1489.87786668 900.146546111 1475.72070312 900.109836209 c 1
1708.62207031 910.075195312 m 2
1708.62207031 915.045354118 1712.91186752 920.062911547 1718.60051773 920.075172087 c 0
1741.72331483 920.125007807 1764.89484924 920.125007807 1788.01764633 920.075172087 c 0
1792.94673259 920.064548607 1797.9833258 915.794403959 1797.99606873 910.097563678 c 0
1798.03854846 891.106626569 1798.04502882 872.424135776 1798.01509218 853.180664062 c 1
1854.99023438 853.180664062 l 0
1860.47652132 853.180664062 1865.00190637 848.597161373 1864.99021125 843.159157829 c 0
1864.94043733 820.015261269 1864.94043733 796.921261866 1864.99021125 773.778343078 c 0
1865.00201069 768.292067156 1860.42825012 763.756835938 1854.99023438 763.756835938 c 0
1798.01509652 763.756835938 l 1
1798.04201614 746.461594066 1798.03794535 725.602303056 1797.99606884 706.839985268 c 0
1797.98506718 701.910810127 1793.71446987 696.874606069 1788.01764633 696.862327913 c 0
1764.89484924 696.812492193 1741.72331483 696.812492193 1718.60051773 696.862327913 c 0
1713.63037047 696.87303989 1708.62207031 701.17364127 1708.62207031 706.862304688 c 0
1708.62207031 763.756835938 l 1
1651.72753906 763.756835938 l 0
1646.75729671 763.756835938 1641.73979684 768.046695326 1641.72756219 773.735328797 c 0
1641.67772673 796.906863134 1641.67772673 820.029660606 1641.72756219 843.202170296 c 0
1641.73825131 848.17240282 1646.03889277 853.180664062 1651.72753906 853.180664062 c 0
1708.62207031 853.180664062 l 1
1708.62207031 910.075195312 l 2
1728.62207031 900.093623184 m 1
1728.62207031 843.180664062 l 0
1728.62207031 837.12764892 1722.91403205 833.180664062 1718.62207031 833.180664062 c 0
1661.70913559 833.180664062 l 1
1661.68412593 816.813877777 1661.68667137 798.457039095 1661.70913504 783.756835937 c 1
1718.62207031 783.756835938 l 0
1724.67508545 783.756835938 1728.62207031 778.048797671 1728.62207031 773.756835938 c 0
1728.62207031 716.843876816 l 1
1744.93562421 716.818921185 1763.33499611 716.821449027 1778.01504365 716.843905805 c 1
1778.0451116 736.161878151 1778.03861207 754.695799899 1777.99611866 773.734516518 c 0
1777.98398207 779.172183915 1782.50831683 783.756835938 1787.99609375 783.756835938 c 0
1844.971807 783.756835938 l 1
1844.94690711 800.051299607 1844.9494542 818.552216623 1844.97180755 833.180664063 c 1
1787.99609375 833.180664062 l 0
1782.55841281 833.180664062 1777.98387026 837.71522023 1777.99611866 843.202983482 c 0
1778.037985 861.960744411 1778.0420663 882.76555267 1778.01506827 900.093594157 c 1
1761.66894867 900.118599606 1743.27161732 900.116033303 1728.62207031 900.093623184 c 1
915.33984375 1813.92285156 m 0
968.697265625 1841.49414062 1037.37695312 1838.27050781 1087.65917969 1805.24414062 c 0
1334.11328125 1663.07519531 1580.71679688 1521.15234375 1827.31933594 1379.18164062 c 0
1850.52734375 1365.34570312 1868.37890625 1344.22167969 1882.46191406 1321.41113281 c 1
1762.06152344 1251.04492188 1639.97460938 1183.45605469 1520.56542969 1111.55273438 c 1
1441.62109375 1250.9453125 1303.71582031 1354.63476562 1149 1395 c 0
986.796875 1438.38964844 806.989257812 1410.86816406 666.009765625 1319.4765625 c 0
534.749023438 1236.16796875 437.75390625 1100.64355469 402.149414062 949.25 c 0
366.296875 799.69140625 389.455078125 636.595703125 467.854492188 504.045898438 c 1
346.561523438 435.31640625 226.209960938 364.950195312 105.21484375 295.724609375 c 1
92.51953125 319.229492188 82.4033203125 344.916015625 82.205078125 371.942382812 c 0
82.1064453125 657.967773438 82.3544921875 943.944335938 82.1064453125 1229.96972656 c 0
79.1806640625 1288.68261719 111.065429688 1347.54394531 160.356445312 1379.03222656 c 0
412.017578125 1524.02929688 663.728515625 1668.92578125 915.33984375 1813.92285156 c 0
751.946289062 990.01171875 m 0
821.122070312 1083.68457031 947.224609375 1130.89257812 1060.73242188 1103.32128906 c 0
1143.09960938 1085.41992188 1213.41503906 1030.42578125 1257.99511719 959.8125 c 1
1169.03417969 912.008789062 1081.90722656 860.5859375 995.028320312 809.063476562 c 0
908.49609375 756.301757812 818.692382812 708.895507812 732.458007812 655.686523438 c 1
670.819335938 757.690429688 678.505859375 895.9921875 751.946289062 990.01171875 c 0
1520.56542969 1111.55273438 m 0
1639.97460938 1183.45605469 1762.06152344 1251.04492188 1882.46191406 1321.41113281 c 1
1895.0078125 1297.80664062 1905.27246094 1272.0703125 1905.81835938 1244.99511719 c 0
1905.81835938 953.9609375 1905.81835938 662.926757812 1905.76855469 371.892578125 c 0
1905.27246094 344.916015625 1895.10644531 319.279296875 1882.56152344 295.82421875 c 1
1762.01171875 365.694335938 1640.22265625 433.580078125 1520.81347656 505.334960938 c 0
1433.14160156 556.659179688 1345.171875 607.536132812 1256.80566406 657.669921875 c 0
1168.68652344 706.465820312 1080.66699219 756.103515625 995.028320312 809.063476562 c 1
1081.90722656 860.5859375 1169.03417969 912.008789062 1257.99511719 959.8125 c 0
1345.76660156 1009.94628906 1433.38964844 1060.37792969 1520.56542969 1111.55273438 c 0
1465.72070312 910.075195312 m 1
1465.72070312 887.760742188 1465.72070312 865.495117188 1465.72070312 843.180664062 c 1
1443.40625 843.180664062 1421.09179688 843.180664062 1398.82617188 843.180664062 c 1
1398.77734375 820.022460938 1398.77734375 796.9140625 1398.82617188 773.756835938 c 1
1421.09179688 773.756835938 1443.40625 773.756835938 1465.72070312 773.756835938 c 1
1465.72070312 751.442382812 1465.72070312 729.176757812 1465.72070312 706.862304688 c 1
1488.43261719 706.8125 1511.14453125 706.8125 1533.90527344 706.862304688 c 1
1533.90527344 729.176757812 1533.90527344 751.442382812 1533.90527344 773.756835938 c 1
1556.61621094 773.756835938 1579.37792969 773.756835938 1602.08886719 773.756835938 c 1
1602.04003906 796.9140625 1602.04003906 820.022460938 1602.08886719 843.180664062 c 1
1579.37792969 843.180664062 1556.61621094 843.180664062 1533.90527344 843.180664062 c 1
1533.90527344 865.495117188 1533.90527344 887.809570312 1533.90527344 910.075195312 c 1
1511.14453125 910.125 1488.43261719 910.174804688 1465.72070312 910.075195312 c 1
1718.62207031 910.075195312 m 1
1718.62207031 887.760742188 1718.62207031 865.495117188 1718.62207031 843.180664062 c 1
1696.30664062 843.180664062 1673.9921875 843.180664062 1651.72753906 843.180664062 c 1
1651.67773438 820.022460938 1651.67773438 796.9140625 1651.72753906 773.756835938 c 1
1673.9921875 773.756835938 1696.30664062 773.756835938 1718.62207031 773.756835938 c 1
1718.62207031 751.442382812 1718.62207031 729.176757812 1718.62207031 706.862304688 c 1
1741.73046875 706.8125 1764.88769531 706.8125 1787.99609375 706.862304688 c 1
1788.04589844 729.176757812 1788.04589844 751.442382812 1787.99609375 773.756835938 c 1
1810.31054688 773.756835938 1832.67480469 773.756835938 1854.99023438 773.756835938 c 1
1854.94042969 796.9140625 1854.94042969 820.022460938 1854.99023438 843.180664062 c 1
1832.67480469 843.180664062 1810.31054688 843.180664062 1787.99609375 843.180664062 c 1
1788.04589844 865.495117188 1788.04589844 887.809570312 1787.99609375 910.075195312 c 1
1764.88769531 910.125 1741.73046875 910.125 1718.62207031 910.075195312 c 1
732.458007812 655.686523438 m 1
818.692382812 708.895507812 908.49609375 756.301757812 995.028320312 809.063476562 c 1
1080.66699219 756.103515625 1168.68652344 706.465820312 1256.80566406 657.669921875 c 1
1196.65429688 552.443359375 1069.90625 490.01171875 949.853515625 509.301757812 c 0
860.147460938 521.99609375 778.327148438 577.734375 732.458007812 655.686523438 c 1
105.21484375 295.724609375 m 1
226.209960938 364.950195312 346.561523438 435.31640625 467.854492188 504.045898438 c 1
521.012695312 412.356445312 598.767578125 335.247070312 690.60546875 282.435546875 c 0
828.758789062 202.30078125 999.094726562 180.828125 1153.01660156 223.028320312 c 0
1306.29492188 263.98828125 1442.01757812 367.4296875 1520.81347656 505.334960938 c 1
1640.22265625 433.580078125 1762.01171875 365.694335938 1882.56152344 295.82421875 c 1
1868.37890625 273.013671875 1850.72558594 251.541992188 1827.31933594 237.755859375 c 0
1580.76660156 95.7353515625 1334.16308594 -46.1376953125 1087.65917969 -188.307617188 c 0
1032.16992188 -224.853515625 954.712890625 -224.556640625 899.372070312 -187.811523438 c 0
653.017578125 -45.83984375 406.612304688 96.0322265625 160.208007812 237.954101562 c 0
137.049804688 251.7890625 119.248046875 273.013671875 105.21484375 295.724609375 c 1
652.512 1340.52 m 1
799.612 1435.8794 986.447 1464.362 1155.387 1419.1704 c 0
1316.441 1377.1518 1459.89 1269.4194 1542.32 1123.8724 c 0
1548.14324 1113.5902 1545.58855 1097.2513 1533.22332 1089.9925 c 0
1445.92452 1038.7454 1358.21532 988.2645 1270.39632 938.1035 c 0
1259.64432 931.96288 1244.12972 934.94627 1236.85722 946.4658 c 0
1195.33182 1012.2402 1130.51722 1062.5698 1055.12822 1078.9548 c 0
951.26222 1104.1843 835.41622 1060.9538 771.85722 974.8878 c 0
704.62772 888.8194 697.59162 761.7268 753.93242 668.4908 c 0
796.10822 596.815 871.25342 545.6738 953.59042 534.0218 c 0
1063.27942 516.3968 1180.12342 573.8958 1235.10442 670.0758 c 0
1241.24602 680.8199 1256.76652 686.4362 1269.14442 679.41369 c 0
1357.63072 629.21159 1445.69842 578.27769 1533.44642 526.90869 c 0
1543.84002 520.82471 1549.61532 505.34419 1542.52259 492.93119 c 0
1460.31459 349.05419 1319.15959 241.54719 1159.55059 198.89619 c 0
999.25959 154.94989 822.16159 177.22629 678.06359 260.81029 c 0
582.62609 315.69209 501.55259 396.08129 446.28359 491.41329 c 0
364.55609 629.59029 340.50159 799.31929 377.82749 955.02629 c 0
414.93689 1112.81929 515.89249 1253.81029 652.51349 1340.52029 c 1
652.512 1340.52 l 1
679.509 1298.43 m 0
553.608 1218.5228 460.573 1088.465 426.474 943.471 c 0
392.0951 800.061 414.3568 643.599 489.4281 516.676 c 0
540.4652 428.6457 614.9561 354.774 703.1091 304.081 c 0
835.3971 227.3486 998.9201 206.6992 1146.4851 247.1572 c 0
1285.6311 284.3408 1410.0761 376.1282 1486.3451 496.5292 c 1
1411.8246 540.0614 1337.8941 582.7772 1265.2501 624.1152 c 1
1195.7296 522.7512 1068.3071 464.9452 946.1191 484.5782 c 0
849.0439 498.3155 760.5491 558.6505 710.9861 642.8792 c 0
643.8757 753.9392 652.6814 902.8172 732.0379 1005.1332 c 0
808.2742 1107.6472 943.2019 1157.1472 1066.3339 1127.6862 c 0
1149.4716 1109.3092 1217.9299 1058.5602 1265.6929 993.0042 c 1
1340.8296 1035.9759 1413.0379 1077.5774 1486.1849 1120.3762 c 1
1408.8314 1243.3222 1283.0069 1334.1962 1142.6139 1370.8252 c 0
987.1479 1412.4131 814.3989 1385.874 679.509 1298.43 c 0
1327.13 960.878 m 1
1327.13 968.27253 1333.51965 975.8389 1342.0646 975.878 c 0
1376.1984 976.026438 1410.298 975.9522188 1444.4396 975.878 c 0
1451.8937 975.8613984 1459.4074 969.41023 1459.4074 960.878 c 2
1459.4074 875.5362 l 1
1546.6828 875.5362 l 2
1554.91034 875.5362 1561.7004 868.6612 1561.6828 860.503 c 0
1561.6095578 825.7882 1561.6095578 791.1456 1561.6828 756.433 c 0
1561.7003781 748.20253 1554.84003 741.3998 1546.6828 741.3998 c 2
1459.4074 741.3998 l 1
1459.4074 656.058 l 2
1459.4074 648.6039 1452.97381 641.0775 1444.4396 641.058 c 0
1410.2775 640.9837812 1376.1828 641.62343 1342.0976 641.058 c 0
1334.66498 640.934953 1326.8876 649.12441 1327.1298 656.058 c 2
1327.1298 741.3998 l 1
1241.788 741.3998 l 2
1234.33195 741.3998 1226.8056 747.83535 1226.788 756.3686 c 0
1226.7147578 791.1264 1226.7147578 825.809 1226.788 860.5676 c 0
1226.8046016 868.02463 1233.25577 875.5364 1241.788 875.5364 c 2
1327.1298 875.5364 l 1
1327.13 960.878 l 1
1357.13 945.929 m 1
1357.13 860.5364 l 2
1357.13 851.45632 1348.56848 845.5364 1342.13 845.5364 c 2
1256.7618 845.5364 l 1
1256.7237141 820.9866 1256.7285969 793.4485 1256.7618 771.3997 c 1
1342.13 771.3997 l 2
1351.2091 771.3997 1357.13 762.83818 1357.13 756.3997 c 2
1357.13 671.0306 l 1
1380.8478 670.9934906 1408.1124 670.9973969 1429.4073 671.0306 c 1
1429.4073 756.3997 l 2
1429.4073 765.47978 1437.96882 771.3997 1444.4073 771.3997 c 2
1531.6563 771.3997 l 1
1531.6191906 795.8431 1531.6221203 823.5931 1531.6563 845.5364 c 1
1444.4073 845.5364 l 2
1435.3282 845.5364 1429.4073 854.09792 1429.4073 860.5364 c 2
1429.4073 945.9094 l 1
1405.5665 945.9582281 1378.3663 945.9845953 1357.13 945.929 c 1
1670.48 960.877 m 1
1670.48 968.33305 1676.91457 975.8594 1685.4468 975.877 c 0
1720.1314 975.9521953 1754.8882 975.9521953 1789.5728 975.877 c 0
1796.96635 975.861375 1804.521 969.4561 1804.5406 960.9112 c 0
1804.6040766 932.4249 1804.6138422 904.4005 1804.5689203 875.5352 c 1
1890.0318203 875.5352 l 2
1898.2613103 875.5352 1905.0494203 868.6602 1905.0318203 860.503 c 0
1904.9576015 825.7872 1904.9576015 791.1466 1905.0318203 756.433 c 0
1905.0493984 748.20351 1898.1890503 741.4008 1890.0318203 741.4008 c 2
1804.5689203 741.4008 l 1
1804.6099359 715.4574 1804.6031 684.1684 1804.5406 656.0248 c 0
1804.5239984 648.63125 1798.11775 641.0766 1789.5728 641.059 c 0
1754.8882 640.9838047 1720.1314 640.9838047 1685.4468 641.059 c 0
1677.99172 641.074625 1670.48 647.5258 1670.48 656.059 c 2
1670.48 741.4008 l 1
1585.1382 741.4008 l 2
1577.68215 741.4008 1570.1558 747.83537 1570.1382 756.3676 c 0
1570.0630047 791.1254 1570.0630047 825.81 1570.1382 860.5686 c 0
1570.153825 868.02368 1576.605 875.5354 1585.1382 875.5354 c 2
1670.48 875.5354 l 1
1670.48 960.877 l 1
1700.48 945.905 m 1
1700.48 860.5349 l 2
1700.48 851.4558 1691.9175 845.5349 1685.48 845.5349 c 2
1600.1099 845.5349 l 1
1600.0727906 820.9851 1600.0766969 793.4499 1600.1099 771.3992 c 1
1685.48 771.400176562 l 2
1694.5591 771.400176562 1700.48 762.837676562 1700.48 756.400176562 c 2
1700.48 671.030076562 l 1
1724.9497 670.992967162 1752.5493 670.996873462 1774.5689 671.030076562 c 1
1774.6138219 700.007576562 1774.6040562 727.808376562 1774.5405797 756.365976562 c 0
1774.522025 764.522226562 1781.3091297 771.400176562 1789.5405797 771.400176562 c 2
1875.0044797 771.400176562 l 1
1874.9663938 795.841576562 1874.9703 823.592576562 1875.0044797 845.535876562 c 1
1789.5405797 845.5349 l 2
1781.3843297 845.5349 1774.5219797 852.33763 1774.5405797 860.5691 c 0
1774.6030797 888.7058 1774.6099156 919.9129 1774.5689 945.905 c 1
1750.0503 945.9421094 1722.4537 945.9382031 1700.48 945.905 c 1
915.341 1813.92 m 0
968.6984 1841.4913 1037.378 1838.2677 1087.66 1805.24129 c 0
1334.114 1663.07229 1580.718 1521.14929 1827.32 1379.17929 c 0
1850.528 1365.34339 1868.3796 1344.21929 1882.4626 1321.40879 c 1
1762.0626 1251.04259 1639.9756 1183.45379 1520.5666 1111.55079 c 1
1441.6223 1250.94379 1303.7166 1354.63279 1149.0016 1394.99779 c 0
986.7986 1438.38739 806.9906 1410.86599 666.0116 1319.47439 c 0
534.7506 1236.16579 437.7556 1100.64139 402.1516 949.24739 c 0
366.2991 799.68839 389.4573 636.59339 467.8567 504.04339 c 1
346.5637 435.31389 226.2117 364.94739 105.2167 295.72239 c 1
92.5214 319.22729 82.4052 344.91379 82.2069 371.94019 c 0
82.1082672 657.96519 82.356314 943.94219 82.1082672 1229.96719 c 0
79.1824872 1288.68009 111.0672672 1347.54119 160.3582672 1379.02919 c 0
412.0192672 1524.02619 663.7302672 1668.92319 915.341 1813.92 c 0
751.947 990.011 m 0
821.1228 1083.6839 947.225 1130.892 1060.733 1103.321 c 0
1143.1002 1085.4196 1213.416 1030.4255 1257.996 959.812 c 1
1169.0351 912.0083 1081.908 860.5854 995.029 809.063 c 0
908.4968 756.3013 818.693 708.895 732.459 655.686 c 1
670.8203 757.69 678.5069 895.992 751.947 990.011 c 0
1520.57 1111.55 m 0
1639.979 1183.4533 1762.066 1251.042 1882.466 1321.408 c 1
1895.0119 1297.8035 1905.2765 1272.0672 1905.8224 1244.992 c 0
1905.8224 953.958 1905.8224 662.924 1905.7725953 371.889 c 0
1905.2765013 344.9124 1895.1104953 319.2757 1882.5655953 295.8206 c 1
1762.0155953 365.6907 1640.2265953 433.5766 1520.8175953 505.3316 c 0
1433.1456953 556.6558 1345.1755953 607.5326 1256.8095953 657.6666 c 0
1168.6904953 706.4625 1080.6705953 756.1002 995.0325953 809.0606 c 1
1081.9114953 860.5831 1169.0385953 912.0056 1257.9995953 959.8096 c 0
1345.7710953 1009.9434 1433.3945953 1060.3746 1520.57 1111.55 c 0
1342.13 960.878 m 1
1342.13 860.536 l 1
1241.788 860.536 l 1
1241.7147578 825.7977 1241.7147578 791.1356 1241.788 756.399 c 1
1342.13 756.399 l 1
1342.13 656.057 l 1
1376.1984 655.9827812 1410.2657 655.9827812 1444.407 656.057 c 1
1444.407 756.399 l 1
1546.682 756.399 l 1
1546.6087578 791.1353 1546.6087578 825.7974 1546.682 860.536 c 1
1444.407 860.536 l 1
1444.407 960.878 l 1
1410.2654 960.9522188 1376.198 961.026438 1342.13 960.878 c 1
1685.48 960.877 m 1
1685.48 860.535 l 1
1585.138 860.535 l 1
1585.0628047 825.7987 1585.0628047 791.1356 1585.138 756.4 c 1
1685.48 756.4 l 1
1685.48 656.058 l 1
1720.1421 655.9828047 1754.8784 655.9828047 1789.541 656.058 c 1
1789.6161953 689.5287 1789.6161953 722.9271 1789.541 756.4 c 1
1890.032 756.4 l 1
1889.9577812 791.1354 1889.9577812 825.7984 1890.032 860.535 c 1
1789.541 860.535 l 1
1789.6161953 894.0077 1789.6161953 927.4784 1789.541 960.877 c 1
1754.8789 960.9521953 1720.1426 960.9521953 1685.48 960.877 c 1
732.459 655.686 m 1
818.6934 708.895 908.497 756.301 995.029 809.063 c 1
1080.6677 756.103 1168.687 706.465 1256.806 657.669 c 1
1196.6546 552.442 1069.907 490.011 949.854 509.301 c 0
860.1479 521.9953 778.328 577.7336 732.458 655.686 c 1
732.459 655.686 l 1
105.216 295.724 m 1
226.211 364.9496 346.563 435.316 467.856 504.045 c 1
521.0142 412.3555 598.769 335.246 690.607 282.435 c 0
828.76 202.3002 999.096 180.828 1153.018 223.0278 c 0
1306.296 263.9878 1442.019 367.4288 1520.815 505.3348 c 1
1640.224 433.5799 1762.013 365.6938 1882.563 295.8238 c 1
1868.3804 273.0133 1850.7271 251.5416 1827.3208 237.7554 c 0
1580.7678 95.7344 1334.1648 -46.1386 1087.6608 -188.3076 c 0
1032.1715 -224.8535 954.7148 -224.5566 899.3738 -187.811506 c 1
653.0198 -45.839506 406.6138 96.032494 160.2098 237.954494 c 0
137.0516 251.789494 119.2498 273.014094 105.2166 295.724994 c 1
105.216 295.724 l 1
EndSplineSet
EndChar
StartChar: uniE51E
Encoding: 58654 58654 971
Width: 2048
Flags: HW
LayerCount: 2
Back
Fore
SplineSet
652.512 1340.52 m 1
799.612 1435.8794 986.447 1464.362 1155.387 1419.1704 c 0
1316.441 1377.1518 1459.89 1269.4194 1542.32 1123.8724 c 0
1548.14324 1113.5902 1545.58855 1097.2513 1533.22332 1089.9925 c 0
1445.92452 1038.7454 1358.21532 988.2645 1270.39632 938.1035 c 0
1259.64432 931.96288 1244.12972 934.94627 1236.85722 946.4658 c 0
1195.33182 1012.2402 1130.51722 1062.5698 1055.12822 1078.9548 c 0
951.26222 1104.1843 835.41622 1060.9538 771.85722 974.8878 c 0
704.62772 888.8194 697.59162 761.7268 753.93242 668.4908 c 0
796.10822 596.815 871.25342 545.6738 953.59042 534.0218 c 0
1063.27942 516.3968 1180.12342 573.8958 1235.10442 670.0758 c 0
1241.24602 680.8199 1256.76652 686.4362 1269.14442 679.41369 c 0
1357.63072 629.21159 1445.69842 578.27769 1533.44642 526.90869 c 0
1543.84002 520.82471 1549.61532 505.34419 1542.52259 492.93119 c 0
1460.31459 349.05419 1319.15959 241.54719 1159.55059 198.89619 c 0
999.25959 154.94989 822.16159 177.22629 678.06359 260.81029 c 0
582.62609 315.69209 501.55259 396.08129 446.28359 491.41329 c 0
364.55609 629.59029 340.50159 799.31929 377.82749 955.02629 c 0
414.93689 1112.81929 515.89249 1253.81029 652.51349 1340.52029 c 1
652.512 1340.52 l 1
679.509 1298.43 m 0
553.608 1218.5228 460.573 1088.465 426.474 943.471 c 0
392.0951 800.061 414.3568 643.599 489.4281 516.676 c 0
540.4652 428.6457 614.9561 354.774 703.1091 304.081 c 0
835.3971 227.3486 998.9201 206.6992 1146.4851 247.1572 c 0
1285.6311 284.3408 1410.0761 376.1282 1486.3451 496.5292 c 1
1411.8246 540.0614 1337.8941 582.7772 1265.2501 624.1152 c 1
1195.7296 522.7512 1068.3071 464.9452 946.1191 484.5782 c 0
849.0439 498.3155 760.5491 558.6505 710.9861 642.8792 c 0
643.8757 753.9392 652.6814 902.8172 732.0379 1005.1332 c 0
808.2742 1107.6472 943.2019 1157.1472 1066.3339 1127.6862 c 0
1149.4716 1109.3092 1217.9299 1058.5602 1265.6929 993.0042 c 1
1340.8296 1035.9759 1413.0379 1077.5774 1486.1849 1120.3762 c 1
1408.8314 1243.3222 1283.0069 1334.1962 1142.6139 1370.8252 c 0
987.1479 1412.4131 814.3989 1385.874 679.509 1298.43 c 0
915.341 1813.92 m 0
968.6984 1841.4913 1037.378 1838.2677 1087.66 1805.24129 c 0
1334.114 1663.07229 1580.718 1521.14929 1827.32 1379.17929 c 0
1850.528 1365.34339 1868.3796 1344.21929 1882.4626 1321.40879 c 1
1762.0626 1251.04259 1639.9756 1183.45379 1520.5666 1111.55079 c 1
1441.6223 1250.94379 1303.7166 1354.63279 1149.0016 1394.99779 c 0
986.7986 1438.38739 806.9906 1410.86599 666.0116 1319.47439 c 0
534.7506 1236.16579 437.7556 1100.64139 402.1516 949.24739 c 0
366.2991 799.68839 389.4573 636.59339 467.8567 504.04339 c 1
346.5637 435.31389 226.2117 364.94739 105.2167 295.72239 c 1
92.5214 319.22729 82.4052 344.91379 82.2069 371.94019 c 0
82.1082672 657.96519 82.356314 943.94219 82.1082672 1229.96719 c 0
79.1824872 1288.68009 111.0672672 1347.54119 160.3582672 1379.02919 c 0
412.0192672 1524.02619 663.7302672 1668.92319 915.341 1813.92 c 0
751.947 990.011 m 0
821.1228 1083.6839 947.225 1130.892 1060.733 1103.321 c 0
1143.1002 1085.4196 1213.416 1030.4255 1257.996 959.812 c 1
1169.0351 912.0083 1081.908 860.5854 995.029 809.063 c 0
908.4968 756.3013 818.693 708.895 732.459 655.686 c 1
670.8203 757.69 678.5069 895.992 751.947 990.011 c 0
1520.57 1111.55 m 0
1639.979 1183.4533 1762.066 1251.042 1882.466 1321.408 c 1
1895.0119 1297.8035 1905.2765 1272.0672 1905.8224 1244.992 c 0
1905.8224 953.958 1905.8224 662.924 1905.7725953 371.889 c 0
1905.2765013 344.9124 1895.1104953 319.2757 1882.5655953 295.8206 c 1
1762.0155953 365.6907 1640.2265953 433.5766 1520.8175953 505.3316 c 0
1433.1456953 556.6558 1345.1755953 607.5326 1256.8095953 657.6666 c 0
1168.6904953 706.4625 1080.6705953 756.1002 995.0325953 809.0606 c 1
1081.9114953 860.5831 1169.0385953 912.0056 1257.9995953 959.8096 c 0
1345.7710953 1009.9434 1433.3945953 1060.3746 1520.57 1111.55 c 0
732.459 655.686 m 1
818.6934 708.895 908.497 756.301 995.029 809.063 c 1
1080.6677 756.103 1168.687 706.465 1256.806 657.669 c 1
1196.6546 552.442 1069.907 490.011 949.854 509.301 c 0
860.1479 521.9953 778.328 577.7336 732.458 655.686 c 1
732.459 655.686 l 1
105.216 295.724 m 1
226.211 364.9496 346.563 435.316 467.856 504.045 c 1
521.0142 412.3555 598.769 335.246 690.607 282.435 c 0
828.76 202.3002 999.096 180.828 1153.018 223.0278 c 0
1306.296 263.9878 1442.019 367.4288 1520.815 505.3348 c 1
1640.224 433.5799 1762.013 365.6938 1882.563 295.8238 c 1
1868.3804 273.0133 1850.7271 251.5416 1827.3208 237.7554 c 0
1580.7678 95.7344 1334.1648 -46.1386 1087.6608 -188.3076 c 0
1032.1715 -224.8535 954.7148 -224.5566 899.3738 -187.811506 c 1
653.0198 -45.839506 406.6138 96.032494 160.2098 237.954494 c 0
137.0516 251.789494 119.2498 273.014094 105.2166 295.724994 c 1
105.216 295.724 l 1
EndSplineSet
EndChar
StartChar: uniE51F
Encoding: 58655 58655 972
Width: 2048
VWidth: 0
Flags: H
LayerCount: 2
Back
Fore
SplineSet
0 192.358398438 m 1
481.885742188 915.178710938 l 1
0 1638 l 1
361.41015625 1638 l 1
843.296875 915.178710938 l 1
361.41015625 192.358398438 l 1
0 192.358398438 l 1
0 192.358398438 m 1024
481.885742188 192.358398438 m 1
963.772460938 915.178710938 l 1
481.885742188 1638 l 1
843.296875 1638 l 1
1807.05273438 192.358398438 l 1
1445.64160156 192.358398438 l 1
1144.47753906 644.11328125 l 1
843.296875 192.358398438 l 1
481.885742188 192.358398438 l 1
481.885742188 192.358398438 m 1024
1646.43457031 613.998046875 m 1
1485.81738281 854.932617188 l 1
2048.00390625 854.94921875 l 1
2048.00390625 613.998046875 l 1
1646.43457031 613.998046875 l 1
1646.43457031 613.998046875 m 1024
1405.5 975.408203125 m 1
1244.86621094 1216.34375 l 1
2048.00390625 1216.36035156 l 1
2048.00390625 975.408203125 l 1
1405.5 975.408203125 l 1
1405.5 975.408203125 m 1024
EndSplineSet
Comment: "haskell"
EndChar
StartChar: uniE520
Encoding: 58656 58656 973
Width: 2048
VWidth: 0
Flags: H
LayerCount: 2
Back
Fore
SplineSet
1919.03515625 1233.52539062 m 4
1913.41503906 1230.66113281 1911.11035156 1223.5703125 1913.97460938 1217.95019531 c 4
1972.89453125 1102.30957031 2021.5 899.852539062 2021.5 770.067382812 c 4
2021.5 225.490234375 1579.51660156 -216.491210938 1034.94140625 -216.491210938 c 4
490.364257812 -216.491210938 48.3828125 225.490234375 48.3828125 770.067382812 c 4
48.3828125 1314.64160156 490.364257812 1756.62597656 1034.94140625 1756.62597656 c 4
1195.20898438 1756.62597656 1437.84375 1684.75390625 1572.25683594 1597.46679688 c 4
1577.546875 1594.03125 1584.83984375 1595.58203125 1588.27539062 1600.87207031 c 4
1591.7109375 1606.16308594 1590.16113281 1613.45605469 1584.87011719 1616.89160156 c 4
1445.53320312 1707.37597656 1201.08105469 1779.78613281 1034.94140625 1779.78613281 c 4
477.571289062 1779.78613281 25.2216796875 1327.43457031 25.2216796875 770.067382812 c 4
25.2216796875 212.697265625 477.571289062 -239.65234375 1034.94140625 -239.65234375 c 4
1592.30859375 -239.65234375 2044.66015625 212.697265625 2044.66015625 770.067382812 c 4
2044.66015625 904.833007812 1995.79199219 1108.38671875 1934.61035156 1228.46484375 c 4
1931.74707031 1234.08496094 1924.65527344 1236.38867188 1919.03515625 1233.52539062 c 4
262.921875 770.0625 m 4
262.921875 1196.43652344 608.56640625 1542.08007812 1034.93945312 1542.08007812 c 4
1461.3125 1542.08007812 1806.95703125 1196.43652344 1806.95703125 770.0625 c 4
1806.95703125 343.689453125 1461.3125 -1.9541015625 1034.93945312 -1.9541015625 c 4
608.56640625 -1.9541015625 262.921875 343.689453125 262.921875 770.0625 c 4
1128.60351562 1089.84570312 m 4
1128.60351562 964.963867188 1229.83984375 863.7265625 1354.72265625 863.7265625 c 4
1479.60449219 863.7265625 1580.84179688 964.963867188 1580.84179688 1089.84570312 c 4
1580.84179688 1214.72851562 1479.60449219 1315.96484375 1354.72265625 1315.96484375 c 4
1229.83984375 1315.96484375 1128.60351562 1214.72851562 1128.60351562 1089.84570312 c 4
1580.83496094 1542.08007812 m 4
1580.83496094 1666.96386719 1682.07324219 1768.20117188 1806.95703125 1768.20117188 c 4
1931.83984375 1768.20117188 2033.078125 1666.96386719 2033.078125 1542.08007812 c 4
2033.078125 1417.19628906 1931.83984375 1315.95898438 1806.95703125 1315.95898438 c 4
1682.07324219 1315.95898438 1580.83496094 1417.19628906 1580.83496094 1542.08007812 c 4
EndSplineSet
Comment: "lua"
EndChar
StartChar: uniE521
Encoding: 58657 58657 974
Width: 2048
VWidth: 0
Flags: H
LayerCount: 2
Back
Fore
SplineSet
3 -405 m 0
3.66667 -381.667 12 -362 28 -346 c 0
44 -330 63.6667 -321.833 87 -321.5 c 0
110.333 -321.833 130 -330 146 -346 c 0
162 -362 170.167 -381.667 170.5 -405 c 0
170.167 -428.333 162 -448 146 -464 c 0
130 -480 110.333 -488.167 87 -488.5 c 0
63.6667 -488.167 44 -480 28 -464 c 0
10.6667 -446.667 2.33333 -427 3 -405 c 0
3 255 m 0
3.66667 278.333 12 298 28 314 c 0
44 330 63.6667 338.167 87 338.5 c 0
110.333 338.167 130 330 146 314 c 0
162 298 170.167 278.333 170.5 255 c 0
170.167 231.667 162 212 146 196 c 0
130 180 110.333 171.833 87 171.5 c 0
63.6667 171.833 44 180 28 196 c 0
10.6667 213.333 2.33333 233 3 255 c 0
3 -75 m 0
3.66667 -51.6667 12 -32 28 -16 c 0
44 0 63.6667 8.16667 87 8.5 c 0
110.333 8.16667 130 0 146 -16 c 0
162 -32 170.167 -51.6667 170.5 -75 c 0
170.167 -98.3333 162 -118 146 -134 c 0
130 -150 110.333 -158.167 87 -158.5 c 0
63.6667 -158.167 44 -150 28 -134 c 0
10.6667 -116.667 2.33333 -97 3 -75 c 0
3 915 m 0
3.66667 938.333 12 958 28 974 c 0
44 990 63.6667 998.167 87 998.5 c 0
110.333 998.167 130 990 146 974 c 0
162 958 170.167 938.333 170.5 915 c 0
170.167 891.667 162 872 146 856 c 0
130 840 110.333 831.833 87 831.5 c 0
63.6667 831.833 44 840 28 856 c 0
10.6667 873.333 2.33333 893 3 915 c 0
3 585 m 0
3.66667 608.333 12 628 28 644 c 0
44 660 63.6667 668.167 87 668.5 c 0
110.333 668.167 130 660 146 644 c 0
162 628 170.167 608.333 170.5 585 c 0
170.167 561.667 162 542 146 526 c 0
130 510 110.333 501.833 87 501.5 c 0
63.6667 501.833 44 510 28 526 c 0
10.6667 543.333 2.33333 563 3 585 c 0
3 1575 m 0
3.66667 1598.33 12 1618 28 1634 c 0
44 1650 63.6667 1658.17 87 1658.5 c 0
110.333 1658.17 130 1650 146 1634 c 0
162 1618 170.167 1598.33 170.5 1575 c 0
170.167 1551.67 162 1532 146 1516 c 0
130 1500 110.333 1491.83 87 1491.5 c 0
63.6667 1491.83 44 1500 28 1516 c 0
10.6667 1533.33 2.33333 1553 3 1575 c 0
3 1245 m 0
3.66667 1268.33 12 1288 28 1304 c 0
44 1320 63.6667 1328.17 87 1328.5 c 0
110.333 1328.17 130 1320 146 1304 c 0
162 1288 170.167 1268.33 170.5 1245 c 0
170.167 1221.67 162 1202 146 1186 c 0
130 1170 110.333 1161.83 87 1161.5 c 0
63.6667 1161.83 44 1170 28 1186 c 0
10.6667 1203.33 2.33333 1223 3 1245 c 0
3 1905 m 0
3.66667 1928.33 12 1948 28 1964 c 0
44 1980 63.6667 1988.17 87 1988.5 c 0
110.333 1988.17 130 1980 146 1964 c 0
162 1948 170.167 1928.33 170.5 1905 c 0
170.167 1881.67 162 1862 146 1846 c 0
130 1830 110.333 1821.83 87 1821.5 c 0
63.6667 1821.83 44 1830 28 1846 c 0
10.6667 1863.33 2.33333 1883 3 1905 c 0
EndSplineSet
EndChar
EndChars

View file

@ -1,10 +1,13 @@
nerd-filetype-glyphs-fonts-patcher v0.1.2
==================================
nerd-filetype-glyphs-fonts-patcher v0.2.0
=========================================
* A python fontforge command line script to patch any font for use with the [vim-webdevicons](https://github.com/ryanoasis/vim-webdevicons) vim plugin
* Adds the [vim-webdevicons](https://github.com/ryanoasis/vim-webdevicons) glyphs (icons) to any font you pass in
* patched-fonts folder contains pre-patched fonts provided for use with [vim-webdevicons](https://github.com/ryanoasis/vim-webdevicons) [(see list below)](#patched-fonts)
![image](https://github.com/ryanoasis/vim-webdevicons/wiki/screenshots/v0.3.4/fontforge-glyph-set-1.png)
... and more ...
## Usage
### Option A
@ -23,16 +26,27 @@ See: [Font Patcher](#font-patcher) for usage
## Patched Fonts
| Currnetly Included Patched Fonts | em size |
|--------------------------------------------------------|----------|
| Anonymice Powerline Plus Nerd File Types | 2048 |
| Droid Sans Mono for Powerline Plus Nerd File Types | 2048 |
| Literation Mono Powerline Plus Nerd File Types | 2048 |
| PragmataPro for Powerline Plus Nerd File Types | 2048 |
| ProggyCleanTT Plus Nerd File Types | 2048 |
| Sauce Code Powerline Plus Nerd File Types | 1000 |
| Ubuntu Mono derivative Powerline Plus Nerd File Types | 1000 |
| Ubuntu Mono Plus Nerd File Types | 1000 |
| Currently Included Patched Fonts (double width glyphs) | em size |
|-------------------------------------------------------------|----------|
| Anonymice Powerline Plus Nerd File Types | 2048 |
| Droid Sans Mono for Powerline Plus Nerd File Types | 2048 |
| Literation Mono Powerline Plus Nerd File Types | 2048 |
| PragmataPro for Powerline Plus Nerd File Types | 2048 |
| ProggyCleanTT Plus Nerd File Types | 2048 |
| Sauce Code Powerline Plus Nerd File Types | 1000 |
| Ubuntu Mono derivative Powerline Plus Nerd File Types | 1000 |
| Ubuntu Mono Plus Nerd File Types | 1000 |
| Currently Included Absolute Mono Patched Fonts (single width glyphs)| em size |
|---------------------------------------------------------------------|----------|
| Anonymice Powerline Plus Nerd File Types Mono | 2048 |
| Droid Sans Mono for Powerline Plus Nerd File Types Mono | 2048 |
| Literation Mono Powerline Plus Nerd File Types Mono | 2048 |
| PragmataPro for Powerline Plus Nerd File Types Mono | 2048 |
| ProggyCleanTT Plus Nerd File Types Mono | 2048 |
| Sauce Code Powerline Plus Nerd File Types Mono | 1000 |
| Ubuntu Mono derivative Powerline Plus Nerd File Types Mono | 1000 |
| Ubuntu Mono Plus Nerd File Types Mono | 1000 |
## Font Patcher
@ -42,10 +56,30 @@ Patching the font of your own choosing for use with the [vim-webdevicons](https:
> ./font-patcher PATH_TO_FONT
e.g.
```
usage: font-patcher [-h] [-s] [-q] font
Patches a given font with programming and web development related glyphs
(mainly for vim-webdevicons)
positional arguments:
font The path to the font to be patched (e.g.
Inconsolata.otf)
optional arguments:
-h, --help show this help message and exit
-s, --use-single-width-glyphs
Whether to generate the glyphs as single-width not
double-width (default is double-width)
-q, --quiet, --shutup
Do not generate verbose output
```
### Examples
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf -s -q
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf --use-single-width-glyphs --quiet
./font-patcher Inconsolata.otf