Commit 2cfd50fc authored by antoine's avatar antoine

new font

parent 782eafa2
## LISTE
* penscircle, rotate 0, 2sasy, 2sasy
* mono style=0; 2sasx, 2sasx
* roman
* alternate
* extended
* condensed
* pensquare, rotate 45, 2sasy, 2sasy
* mono
* roman
* alternate
* extended
* condensed
* pensquare, rotate 45, .5sasy, 2sasy
* mono
* roman
* alternate
* extended
* condensed
......@@ -2,18 +2,18 @@
% ALT UPPER %
%%%%%%%%%%%%%
alt_B:=1;
alt_C:=1;
alt_B:=2;
alt_C:=2;
%%%%%%%%%%%%%
% ALT LOWER %
%%%%%%%%%%%%%
alt_a:=1;
alt_e:=1;
alt_a:=2;
alt_e:=2;
alt_g:=2;
alt_h:=1;
alt_i:=1;
alt_h:=2;
alt_i:=2;
alt_n:=2;
alt_o:=2;
alt_w:=2;
......@@ -15,7 +15,7 @@ def charstart(expr carac)=
pair A,B;
A:=(c,0u);
B:=(c,7u);
pickup pencircle xscaled sasx yscaled sasy rotated -20;
pickup pen_style xscaled sasx yscaled sasy rotated -20;
linecap:=rounded;
%linejoin:=beveled;
enddef;
......
import mpostmanager
convert_mpost('glyphs')
mpostmanager.convert_mpost('glyphs')
# mpostmanager.svg_to_font('svg/*.svg', 'rounded_regular-mono-condensed')
......@@ -4,73 +4,67 @@ import os
import glob
import argparse
import time
import fontforge
import lxml.etree as ET
from svgpathtools import svg2paths, parse_path
def svg_to_font(self, dir_svg):
def svg_to_font(dir_svg, name):
def removeCadra(root, pattern):
for child in root:
if child.tag == '{http://www.w3.org/2000/svg}path':
if child.attrib['style'].startswith(pattern):
b = child
root.remove(b)
root.remove(b)
ET.dump(root)
return ET.tostring(root, encoding='utf8', method='xml').decode()
# if not os.path.exists(ex_folder):
# os.mkdir(ex_folder)
# if not os.path.exists(ex_folder_svg):
# os.mkdir(ex_folder_svg)
# Build new directory
project_path = self.dir_projects+'/'+self.project
json_path = project_path+'/'+self.global_json
json = Plancton.read_json(json_path)
ex_folder = project_path+'/fonts/test/'
ex_folder_svg = project_path+'/fonts/test/svg/'
if not os.path.exists(ex_folder):
os.mkdir(ex_folder)
if not os.path.exists(ex_folder_svg):
os.mkdir(ex_folder_svg)
svg_dir = glob.glob(project_path+'/output-svg/*.svg')
font = fontforge.font()
height = 1000 / int(json['font_info']['height'])
font.descent = height * int(json['font_info']['descent'])
font.ascent = height * int(json['font_info']['ascent'])
font.fontname = json['font_info']['font-id']
font.familyname = json['font_info']['font-id']
font.copyright = json['font_info']['author-name']
for g in svg_dir:
for g in glob.glob(dir_svg):
gkey = os.path.basename(g).replace('.svg', '')
if gkey.isdigit() == True:
with open(g, 'rb') as gp:
treeLet = ET.parse(gp)
rootLet = treeLet.getroot()
gclean = removeCadra(rootLet, 'stroke:rgb(100.000000%,0.000000%,0.000000%);')
out_svg = ex_folder_svg+gkey+'.svg'
f = open(ex_folder_svg+gkey+'.svg', 'w')
out_svg = 'svg/'+gkey+'.svg'
f = open(out_svg, 'w')
f.write(gclean)
f.close()
subprocess.call(["bash", "stroke2path.sh", out_svg])
gwidth = rootLet.get('width')
gheight = rootLet.get('height')
print(gwidth, '\n', gheight)
print('\n----------------------\n', gkey, '\n----------------------\n' )
print('width: ', float(gwidth), '\nheight: ', gheight)
print('\n----------------------')
scale = float(gheight) / 1000
char = font.createChar(int(gkey))
try:
char.importOutlines(out_svg).simplify().handle_eraser()
except:
print('glyph failed')
continue
# test = char.importOutlines(out_svg)
char.importOutlines(out_svg).simplify()
char.width = float(gwidth) / scale
# char.correctDirection()
# char.removeOverlap()
char.removeOverlap()
# print(help(char.importOutlines), '\n')
# font.selection.all()
font.generate('temp.otf')
espace = font.createChar(32)
espace.width = font['f'].width
espacefine = font.createChar(8201)
espacefine.width = int(font['f'].width / 3)
font.familyname = 'OCR-PBI'
font.fontname = 'OCR-PBI-' + name
font.generate('output/OCR-PBI-'+name+'.sfd')
font.generate('output/OCR-PBI-'+name+'.otf')
font.generate('output/OCR-PBI-'+name+'.ttf')
def adjust_viewbox(f_svg):
tree = ET.parse(f_svg)
......@@ -120,8 +114,8 @@ def test(svg):
svg]
cmb1 = ['inkscape', '--verb', 'EditSelectAllInAllLayers', svg]
subprocess.call(cmb1)
def Main():
pass
# parser = argparse.ArgumentParser(description="[Metapost Font Manager] by Luuse")
# parser.add_argument("-c", "--convert", help="convert metapost files to svg", type=dir_path)
......
StartFontMetrics 2.0
Comment Generated by FontForge 20200314
Comment Creation Date: Thu Jun 25 13:08:54 2020
FontName OCR-PBI-rounded_regular-mono-condensed
FullName Untitled1
FamilyName OCR-PBI
Weight Regular
Notice (Copyright (c) 2020, antoine)
ItalicAngle 0
IsFixedPitch false
UnderlinePosition -100
UnderlineThickness 50
Version 001.000
EncodingScheme ISOLatin1Encoding
FontBBox -1 -202 584 763
CapHeight 744
XHeight 528
Ascender 751
Descender -175
StartCharMetrics 112
C 32 ; WX 509 ; N space ; B 0 0 0 0 ;
C 33 ; WX 509 ; N exclam ; B 206 21 304 745 ;
C 35 ; WX 509 ; N numbersign ; B 43 21 467 745 ;
C 37 ; WX 509 ; N percent ; B 55 11 455 755 ;
C 38 ; WX 509 ; N ampersand ; B 55 10 511 756 ;
C 40 ; WX 509 ; N parenleft ; B 171 21 397 745 ;
C 41 ; WX 509 ; N parenright ; B 113 21 339 745 ;
C 42 ; WX 509 ; N asterisk ; B 55 178 455 643 ;
C 43 ; WX 509 ; N plus ; B 55 123 455 643 ;
C 44 ; WX 509 ; N comma ; B 79 -141 399 198 ;
C 45 ; WX 509 ; N hyphen ; B 101 345 409 421 ;
C 46 ; WX 509 ; N period ; B 164 21 346 184 ;
C 47 ; WX 509 ; N slash ; B 102 21 409 745 ;
C 48 ; WX 509 ; N zero ; B 56 11 455 755 ;
C 49 ; WX 509 ; N one ; B 81 21 328 745 ;
C 50 ; WX 509 ; N two ; B 69 21 444 755 ;
C 51 ; WX 509 ; N three ; B 57 11 466 745 ;
C 52 ; WX 509 ; N four ; B 55 21 455 745 ;
C 53 ; WX 509 ; N five ; B 78 19 432 745 ;
C 54 ; WX 509 ; N six ; B 55 11 455 745 ;
C 55 ; WX 509 ; N seven ; B 55 21 455 745 ;
C 56 ; WX 509 ; N eight ; B 55 11 455 755 ;
C 57 ; WX 509 ; N nine ; B 56 21 455 755 ;
C 58 ; WX 509 ; N colon ; B 164 21 346 469 ;
C 59 ; WX 509 ; N semicolon ; B 79 -141 362 469 ;
C 60 ; WX 509 ; N less ; B 56 21 455 745 ;
C 61 ; WX 509 ; N equal ; B 55 234 455 522 ;
C 62 ; WX 509 ; N greater ; B 55 21 455 745 ;
C 63 ; WX 509 ; N question ; B 90 21 427 755 ;
C 64 ; WX 509 ; N at ; B 50 11 455 755 ;
C 65 ; WX 509 ; N A ; B 51 21 460 745 ;
C 66 ; WX 509 ; N B ; B 55 21 455 745 ;
C 67 ; WX 509 ; N C ; B 83 10 446 756 ;
C 68 ; WX 509 ; N D ; B 93 21 439 745 ;
C 69 ; WX 509 ; N E ; B 92 21 446 745 ;
C 70 ; WX 509 ; N F ; B 92 21 432 745 ;
C 71 ; WX 509 ; N G ; B 65 11 441 757 ;
C 72 ; WX 509 ; N H ; B 78 21 432 745 ;
C 73 ; WX 509 ; N I ; B 101 21 409 745 ;
C 74 ; WX 509 ; N J ; B 72 11 355 745 ;
C 75 ; WX 509 ; N K ; B 67 21 455 745 ;
C 76 ; WX 509 ; N L ; B 79 21 455 745 ;
C 77 ; WX 509 ; N M ; B 39 21 471 745 ;
C 78 ; WX 509 ; N N ; B 67 21 443 745 ;
C 79 ; WX 509 ; N O ; B 58 11 453 755 ;
C 80 ; WX 509 ; N P ; B 78 21 455 745 ;
C 81 ; WX 509 ; N Q ; B 58 11 455 755 ;
C 82 ; WX 509 ; N R ; B 87 21 437 745 ;
C 83 ; WX 509 ; N S ; B 74 10 427 756 ;
C 84 ; WX 509 ; N T ; B 55 21 455 745 ;
C 85 ; WX 509 ; N U ; B 67 11 443 745 ;
C 86 ; WX 509 ; N V ; B 55 21 455 745 ;
C 87 ; WX 509 ; N W ; B 56 21 455 745 ;
C 88 ; WX 509 ; N X ; B 72 21 439 745 ;
C 89 ; WX 509 ; N Y ; B 74 21 437 745 ;
C 90 ; WX 509 ; N Z ; B 79 21 432 745 ;
C 91 ; WX 509 ; N bracketleft ; B 148 21 455 745 ;
C 92 ; WX 509 ; N backslash ; B 102 21 409 745 ;
C 93 ; WX 509 ; N bracketright ; B 55 21 362 745 ;
C 94 ; WX 509 ; N asciicircum ; B 125 595 386 745 ;
C 95 ; WX 509 ; N underscore ; B 55 -53 455 22 ;
C 96 ; WX 509 ; N grave ; B 183 595 316 745 ;
C 97 ; WX 509 ; N a ; B 56 11 455 533 ;
C 98 ; WX 509 ; N b ; B 56 11 455 745 ;
C 99 ; WX 509 ; N c ; B 67 11 432 533 ;
C 100 ; WX 509 ; N d ; B 56 11 455 745 ;
C 101 ; WX 509 ; N e ; B 55 11 432 536 ;
C 102 ; WX 509 ; N f ; B 83 21 428 745 ;
C 103 ; WX 509 ; N g ; B 56 -191 455 533 ;
C 104 ; WX 509 ; N h ; B 90 21 420 745 ;
C 105 ; WX 509 ; N i ; B 124 21 339 745 ;
C 106 ; WX 509 ; N j ; B 90 -141 339 745 ;
C 107 ; WX 509 ; N k ; B 104 21 434 745 ;
C 108 ; WX 509 ; N l ; B 171 21 409 763 ;
C 109 ; WX 509 ; N m ; B 56 21 455 533 ;
C 110 ; WX 509 ; N n ; B 67 21 443 534 ;
C 111 ; WX 509 ; N o ; B 56 11 455 533 ;
C 112 ; WX 509 ; N p ; B 56 -202 455 533 ;
C 113 ; WX 509 ; N q ; B 56 -202 455 533 ;
C 114 ; WX 509 ; N r ; B 125 21 423 534 ;
C 115 ; WX 509 ; N s ; B 96 11 418 533 ;
C 116 ; WX 509 ; N t ; B 67 21 409 745 ;
C 117 ; WX 509 ; N u ; B 67 9 443 523 ;
C 118 ; WX 509 ; N v ; B 58 21 453 523 ;
C 119 ; WX 509 ; N w ; B 58 21 453 523 ;
C 120 ; WX 509 ; N x ; B 83 21 427 523 ;
C 121 ; WX 509 ; N y ; B 55 -144 453 523 ;
C 122 ; WX 509 ; N z ; B 83 21 435 522 ;
C 123 ; WX 509 ; N braceleft ; B 56 21 455 745 ;
C 124 ; WX 509 ; N bar ; B 218 21 293 745 ;
C 125 ; WX 509 ; N braceright ; B 55 21 454 745 ;
C 168 ; WX 509 ; N dieresis ; B 148 595 362 745 ;
C 171 ; WX 509 ; N guillemotleft ; B 56 10 386 470 ;
C 177 ; WX 509 ; N plusminus ; B 55 40 455 643 ;
C 180 ; WX 509 ; N acute ; B 194 595 328 745 ;
C 184 ; WX 509 ; N cedilla ; B 222 -103 311 68 ;
C 187 ; WX 509 ; N guillemotright ; B 125 10 455 470 ;
C 216 ; WX 509 ; N Oslash ; B 55 10 455 756 ;
C 248 ; WX 509 ; N oslash ; B 55 10 455 534 ;
C -1 ; WX 509 ; N glyph20 ; B 217 10 455 470 ;
C -1 ; WX 509 ; N glyph25 ; B 139 244 371 522 ;
C -1 ; WX 509 ; N glyph39 ; B 56 10 293 470 ;
C -1 ; WX 509 ; N glyph41 ; B 160 540 351 754 ;
C -1 ; WX 509 ; N glyph43 ; B -1 10 584 393 ;
C -1 ; WX 509 ; N glyph44 ; B 125 595 386 745 ;
C -1 ; WX 509 ; N glyph46 ; B -1 234 584 309 ;
C -1 ; WX 509 ; N glyph64 ; B 285 568 436 745 ;
C -1 ; WX 509 ; N glyph71 ; B 67 -202 444 763 ;
C -1 ; WX 509 ; N glyph78 ; B 55 345 455 421 ;
C -1 ; WX 509 ; N glyph81 ; B 100 567 410 745 ;
C -1 ; WX 509 ; N glyph104 ; B 182 567 327 745 ;
C -1 ; WX 169 ; N glyph111 ; B 0 0 0 0 ;
EndCharMetrics
EndFontMetrics
% outputtemplate := "%j%c.svg"; % exporter en svg.
outputtemplate := "svg/%c.svg";
outputformat := "svg";
%UNITE DE VALEUR
u:= 40pt;
%CHASSE-X
ux:= 2.5u; %Default 3u
%HAUTEUR
uy:= 3u; %Default 3u
corps:= 13;
h:= corps*uy;
X_Height:= 9;
Cap_Height:= 13;
Descender_Line:= -4;
Ascender_Line:= 13;
Crossbar:= (Cap_Height/1.9)*uy;
Bar_Height:= (Cap_Height/1.9)*uy;
%CHASSE && CORPS
chasse:= 11;
%PEN -> GRAISSE / PLEINS ET DELIEES
sas:= 2u;
sasx:= 2sas;
sasy:= 2sas;
rot_pen: 45;
def pen_style=
pencircle
enddef;
def drw=
draw
enddef;
def line_join=
enddef;
Ascender:= Ascender_Line *uy - (sasy/2);
Descender:= Descender_Line *uy + (sasy/2);
Cap_Ha:= Cap_Height*uy-(sasy/2);
Cap_Ba:= 0*uy+(sasy/2);
Cap_Ho:= Cap_Height*uy-(sasy/2.8);
Cap_Bo:= 0*uy+(sasy/2.8);
Bdc_Ha:= X_Height*uy-(sasy/2);
Bdc_Ba:= 0*uy+(sasy/2);
Bdc_Ho:= X_Height*uy-(sasy/2.8);
Bdc_Bo:= 0*uy+(sasy/2.8);
Asc_Ho:= Ascender_Line *uy - (sasy/2.8);
%TRAVERSE
barheight:= h/2;
%VISUALISATION
visual:= 1; %0=Brut 1=Avec Chasse 2=Avec Chasse + Grille + numero point
marg:= 0ux; %Marg en X
margL:= marg;
margR:= marg;
%CURVE
Curve:= 1;
MidCurve:= 0.5;
%Lobe Curve
Lobe_Curve:= 1 *Curve; %Default 1
Lobe_CurveX:= 0.75 *Lobe_Curve; %Default .75
Lobe_CurveY:= 0.72 *Lobe_Curve; %Default .72
%Bowl Curve
Bowl_Curve:= 1 * Curve; % curve global value default = 1
Bowl_CurveX:= 0.21 *Bowl_Curve; %Default .21
Bowl_CurveY:= 0.64 *Bowl_Curve; %Default .64
Bowl_TermX:= .1 *Curve;
Bowl_TermY:= .07 *Curve; %archive .07
bowl_termx:= .07 *Curve; %archive .07
bowl_termy:= .15 *Curve; %archive .15
%Trap
intrap:= 4u;
%ALTERN //
def // =
--
enddef;
%STYLE MONO
style= 0; % 0=mono; 1=non-mono
%LES INPUT
input def
input alt.mp
defaultscale:= .2;
StartFontMetrics 2.0
Comment Generated by FontForge 20200314
Comment Creation Date: Thu Jun 25 12:53:27 2020
FontName OCR-PBI-rounded_regular-mono-extended
FullName Untitled1
FamilyName OCR-PBI
Weight Regular
Notice (Copyright (c) 2020, antoine)
ItalicAngle 0
IsFixedPitch false
UnderlinePosition -100
UnderlineThickness 50
Version 001.000
EncodingScheme ISOLatin1Encoding
FontBBox -1 -202 788 763
CapHeight 744
XHeight 528
Ascender 751
Descender -176
StartCharMetrics 112
C 32 ; WX 712 ; N space ; B 0 0 0 0 ;
C 33 ; WX 712 ; N exclam ; B 303 21 411 745 ;
C 35 ; WX 712 ; N numbersign ; B 76 21 638 745 ;
C 37 ; WX 712 ; N percent ; B 92 11 622 755 ;
C 38 ; WX 712 ; N ampersand ; B 93 10 687 755 ;
C 40 ; WX 712 ; N parenleft ; B 255 21 541 745 ;
C 41 ; WX 712 ; N parenright ; B 173 21 459 745 ;
C 42 ; WX 712 ; N asterisk ; B 92 178 622 643 ;
C 43 ; WX 712 ; N plus ; B 92 123 622 643 ;
C 44 ; WX 712 ; N comma ; B 125 -141 544 198 ;
C 45 ; WX 712 ; N hyphen ; B 157 345 557 421 ;
C 46 ; WX 712 ; N period ; B 245 21 469 184 ;
C 47 ; WX 712 ; N slash ; B 157 21 557 745 ;
C 48 ; WX 712 ; N zero ; B 93 10 622 756 ;
C 49 ; WX 712 ; N one ; B 128 21 443 745 ;
C 50 ; WX 712 ; N two ; B 112 21 604 755 ;
C 51 ; WX 712 ; N three ; B 95 11 638 745 ;
C 52 ; WX 712 ; N four ; B 92 21 622 745 ;
C 53 ; WX 712 ; N five ; B 125 15 589 745 ;
C 54 ; WX 712 ; N six ; B 92 11 621 745 ;
C 55 ; WX 712 ; N seven ; B 92 21 622 745 ;
C 56 ; WX 712 ; N eight ; B 93 11 622 755 ;
C 57 ; WX 712 ; N nine ; B 93 21 622 755 ;
C 58 ; WX 712 ; N colon ; B 245 21 469 469 ;
C 59 ; WX 712 ; N semicolon ; B 125 -141 492 469 ;
C 60 ; WX 712 ; N less ; B 93 21 622 745 ;
C 61 ; WX 712 ; N equal ; B 92 234 622 522 ;
C 62 ; WX 712 ; N greater ; B 92 21 622 745 ;
C 63 ; WX 712 ; N question ; B 141 21 580 755 ;
C 64 ; WX 712 ; N at ; B 93 11 622 756 ;
C 65 ; WX 712 ; N A ; B 86 21 628 745 ;
C 66 ; WX 712 ; N B ; B 92 21 622 745 ;
C 67 ; WX 712 ; N C ; B 132 10 609 756 ;
C 68 ; WX 712 ; N D ; B 144 21 599 745 ;
C 69 ; WX 712 ; N E ; B 144 21 609 745 ;
C 70 ; WX 712 ; N F ; B 144 21 590 745 ;
C 71 ; WX 712 ; N G ; B 105 11 602 757 ;
C 72 ; WX 712 ; N H ; B 125 21 590 745 ;
C 73 ; WX 712 ; N I ; B 157 21 557 745 ;
C 74 ; WX 712 ; N J ; B 115 10 482 745 ;
C 75 ; WX 712 ; N K ; B 109 21 622 745 ;
C 76 ; WX 712 ; N L ; B 125 21 622 745 ;
C 77 ; WX 712 ; N M ; B 100 21 615 745 ;
C 78 ; WX 712 ; N N ; B 109 21 605 745 ;
C 79 ; WX 712 ; N O ; B 96 11 618 755 ;
C 80 ; WX 712 ; N P ; B 125 21 622 745 ;
C 81 ; WX 712 ; N Q ; B 96 11 622 755 ;
C 82 ; WX 712 ; N R ; B 137 21 596 745 ;
C 83 ; WX 712 ; N S ; B 118 11 583 755 ;
C 84 ; WX 712 ; N T ; B 92 21 622 745 ;
C 85 ; WX 712 ; N U ; B 109 11 605 745 ;
C 86 ; WX 712 ; N V ; B 92 21 622 745 ;
C 87 ; WX 712 ; N W ; B 93 21 622 745 ;
C 88 ; WX 712 ; N X ; B 115 21 599 745 ;
C 89 ; WX 712 ; N Y ; B 118 21 596 745 ;
C 90 ; WX 712 ; N Z ; B 125 21 590 745 ;
C 91 ; WX 712 ; N bracketleft ; B 222 21 622 745 ;
C 92 ; WX 712 ; N backslash ; B 157 21 557 745 ;
C 93 ; WX 712 ; N bracketright ; B 92 21 492 745 ;
C 94 ; WX 712 ; N asciicircum ; B 189 595 525 745 ;
C 95 ; WX 712 ; N underscore ; B 92 -53 622 22 ;
C 96 ; WX 712 ; N grave ; B 271 595 427 745 ;
C 97 ; WX 712 ; N a ; B 93 11 622 533 ;
C 98 ; WX 712 ; N b ; B 93 11 622 745 ;
C 99 ; WX 712 ; N c ; B 109 10 590 534 ;
C 100 ; WX 712 ; N d ; B 93 11 622 745 ;
C 101 ; WX 712 ; N e ; B 92 10 590 537 ;
C 102 ; WX 712 ; N f ; B 131 21 583 745 ;
C 103 ; WX 712 ; N g ; B 93 -193 622 533 ;
C 104 ; WX 712 ; N h ; B 141 21 573 745 ;
C 105 ; WX 712 ; N i ; B 189 21 459 745 ;
C 106 ; WX 712 ; N j ; B 141 -141 459 745 ;
C 107 ; WX 712 ; N k ; B 161 21 593 745 ;
C 108 ; WX 712 ; N l ; B 255 21 557 763 ;
C 109 ; WX 712 ; N m ; B 93 21 622 533 ;
C 110 ; WX 712 ; N n ; B 109 21 605 534 ;
C 111 ; WX 712 ; N o ; B 93 11 622 533 ;
C 112 ; WX 712 ; N p ; B 93 -202 622 533 ;
C 113 ; WX 712 ; N q ; B 93 -202 622 533 ;
C 114 ; WX 712 ; N r ; B 190 21 577 534 ;
C 115 ; WX 712 ; N s ; B 149 10 570 535 ;
C 116 ; WX 712 ; N t ; B 108 21 557 745 ;
C 117 ; WX 712 ; N u ; B 109 9 605 523 ;
C 118 ; WX 712 ; N v ; B 96 21 619 523 ;
C 119 ; WX 712 ; N w ; B 96 21 618 523 ;
C 120 ; WX 712 ; N x ; B 131 21 583 523 ;
C 121 ; WX 712 ; N y ; B 92 -144 619 523 ;
C 122 ; WX 712 ; N z ; B 132 21 593 522 ;
C 123 ; WX 712 ; N braceleft ; B 93 18 622 745 ;
C 124 ; WX 712 ; N bar ; B 320 21 395 745 ;
C 125 ; WX 712 ; N braceright ; B 92 19 621 745 ;
C 168 ; WX 712 ; N dieresis ; B 222 595 492 745 ;
C 171 ; WX 712 ; N guillemotleft ; B 93 10 525 470 ;
C 177 ; WX 712 ; N plusminus ; B 92 40 622 643 ;
C 180 ; WX 712 ; N acute ; B 287 595 444 745 ;
C 184 ; WX 712 ; N cedilla ; B 318 -113 428 68 ;
C 187 ; WX 712 ; N guillemotright ; B 189 10 622 470 ;
C 216 ; WX 712 ; N Oslash ; B 92 10 622 756 ;
C 248 ; WX 712 ; N oslash ; B 92 10 622 533 ;
C -1 ; WX 712 ; N glyph20 ; B 319 10 622 470 ;
C -1 ; WX 712 ; N glyph25 ; B 194 244 520 522 ;
C -1 ; WX 712 ; N glyph39 ; B 93 10 395 470 ;
C -1 ; WX 712 ; N glyph41 ; B 238 540 476 754 ;
C -1 ; WX 712 ; N glyph43 ; B -1 9 788 394 ;
C -1 ; WX 712 ; N glyph44 ; B 189 595 525 745 ;
C -1 ; WX 712 ; N glyph46 ; B -1 234 788 309 ;
C -1 ; WX 712 ; N glyph64 ; B 373 568 547 745 ;
C -1 ; WX 712 ; N glyph71 ; B 108 -202 606 763 ;
C -1 ; WX 712 ; N glyph78 ; B 92 345 622 421 ;
C -1 ; WX 712 ; N glyph81 ; B 188 567 526 745 ;
C -1 ; WX 712 ; N glyph104 ; B 270 567 443 745 ;
C -1 ; WX 237 ; N glyph111 ; B 0 0 0 0 ;
EndCharMetrics
EndFontMetrics
% outputtemplate := "%j%c.svg"; % exporter en svg.
outputtemplate := "svg/%c.svg";
outputformat := "svg";
%UNITE DE VALEUR
u:= 40pt;
%CHASSE-X
ux:= 3.5u; %Default 3u
%HAUTEUR
uy:= 3u; %Default 3u
corps:= 13;
h:= corps*uy;
X_Height:= 9;
Cap_Height:= 13;
Descender_Line:= -4;
Ascender_Line:= 13;
Crossbar:= (Cap_Height/1.9)*uy;
Bar_Height:= (Cap_Height/1.9)*uy;
%CHASSE && CORPS
chasse:= 11;
%PEN -> GRAISSE / PLEINS ET DELIEES
sas:= 2u;
sasx:= 2sas;
sasy:= 2sas;
rot_pen: 45;
def pen_style=
pencircle
enddef;
def drw=
draw
enddef;
def line_join=
enddef;
Ascender:= Ascender_Line *uy - (sasy/2);
Descender:= Descender_Line *uy + (sasy/2);
Cap_Ha:= Cap_Height*uy-(sasy/2);