mirror of
https://github.com/ryanoasis/nerd-fonts.git
synced 2024-09-19 09:51:48 +02:00
Work around for monospace ttf fonts not being detected by windows.
This commit is contained in:
parent
ab4f00e3ff
commit
d8b760aeed
1 changed files with 16 additions and 5 deletions
21
font-patcher
21
font-patcher
|
@ -407,6 +407,11 @@ def get_dim(glyph):
|
||||||
'height': bbox[3] + (-bbox[1]),
|
'height': bbox[3] + (-bbox[1]),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def set_width(sourceFont, width):
|
||||||
|
sourceFont.selection.all()
|
||||||
|
for glyph in sourceFont.selection.byGlyphs:
|
||||||
|
glyph.width = width
|
||||||
|
|
||||||
def copy_glyphs(sourceFont, sourceFontStart, sourceFontEnd, symbolFont, symbolFontStart, symbolFontEnd, exactEncoding=False):
|
def copy_glyphs(sourceFont, sourceFontStart, sourceFontEnd, symbolFont, symbolFontStart, symbolFontEnd, exactEncoding=False):
|
||||||
|
|
||||||
if exactEncoding is False:
|
if exactEncoding is False:
|
||||||
|
@ -542,6 +547,17 @@ def copy_glyphs(sourceFont, sourceFontStart, sourceFontEnd, symbolFont, symbolFo
|
||||||
# end for
|
# end for
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if args.extension == "":
|
||||||
|
extension = os.path.splitext(sourceFont.path)[1]
|
||||||
|
else:
|
||||||
|
extension = '.'+args.extension
|
||||||
|
|
||||||
|
if args.single and extension == '.ttf':
|
||||||
|
# Force width to be equal on all glyphs to ensure the font is considered monospaced on Windows.
|
||||||
|
# This needs to be done on all characters, as some information seems to be lost in the original font file.
|
||||||
|
# Seen only as a problem with ttf files, otf files seem to be okay.
|
||||||
|
set_width(sourceFont, font_dim['width'])
|
||||||
|
|
||||||
copy_glyphs(sourceFont, sourceFontOriginalStart, sourceFontOriginalEnd, symbols, symbolsOriginalRangeStart, symbolsOriginalRangeEnd)
|
copy_glyphs(sourceFont, sourceFontOriginalStart, sourceFontOriginalEnd, symbols, symbolsOriginalRangeStart, symbolsOriginalRangeEnd)
|
||||||
copy_glyphs(sourceFont, sourceFontDeviconsStart, sourceFontDeviconsEnd, symbolsDevicons, symbolsDeviconsRangeStart, symbolsDeviconsRangeEnd)
|
copy_glyphs(sourceFont, sourceFontDeviconsStart, sourceFontDeviconsEnd, symbolsDevicons, symbolsDeviconsRangeStart, symbolsDeviconsRangeEnd)
|
||||||
|
|
||||||
|
@ -566,11 +582,6 @@ if args.pomicons:
|
||||||
if args.fontlinux:
|
if args.fontlinux:
|
||||||
copy_glyphs(sourceFont, sourceFontFontLinuxStart, sourceFontFontLinuxEnd, fontlinux, symbolsFontLinuxRangeStart, symbolsFontLinuxRangeEnd, fontlinuxExactEncodingPosition)
|
copy_glyphs(sourceFont, sourceFontFontLinuxStart, sourceFontFontLinuxEnd, fontlinux, symbolsFontLinuxRangeStart, symbolsFontLinuxRangeEnd, fontlinuxExactEncodingPosition)
|
||||||
|
|
||||||
if args.extension == "":
|
|
||||||
extension = os.path.splitext(sourceFont.path)[1]
|
|
||||||
else:
|
|
||||||
extension = '.'+args.extension
|
|
||||||
|
|
||||||
# the `PfEd-comments` flag is required for Fontforge to save
|
# the `PfEd-comments` flag is required for Fontforge to save
|
||||||
# '.comment' and '.fontlog'.
|
# '.comment' and '.fontlog'.
|
||||||
sourceFont.generate(args.outputdir + "/" + sourceFont.fullname + extension, flags=('opentype', 'PfEd-comments'))
|
sourceFont.generate(args.outputdir + "/" + sourceFont.fullname + extension, flags=('opentype', 'PfEd-comments'))
|
||||||
|
|
Loading…
Reference in a new issue