add glyph fields for vowel attachment points [not used yet]
This commit is contained in:
parent
10d0b11570
commit
e095a9bbb2
4 changed files with 242 additions and 215 deletions
|
@ -42,27 +42,27 @@ tGlyphs = [("t",t), ("tt",tt), ("tk",tk), ("tg",tg), ("td",td), ("tƶ",tƶ),
|
|||
("tn",tn), ("tr",tr), ("tč",tč), ("tǧ",tǧ), ("tw",tw), ("th",th),
|
||||
("tf",tf), ("tj",tj)]
|
||||
|
||||
t = G {path = tPath, width = 5.5}
|
||||
tt = G {path = ttPath, width = 7}
|
||||
tk = G {path = tkPath, width = 9}
|
||||
tg = G {path = tgPath, width = 9}
|
||||
td = G {path = tdPath, width = 9}
|
||||
tƶ = G {path = tƶPath, width = 9}
|
||||
tp = G {path = tpPath, width = 9.5}
|
||||
tb = G {path = tbPath, width = 10}
|
||||
ts = G {path = tsPath, width = 9}
|
||||
tš = G {path = tšPath, width = 9}
|
||||
tl = G {path = tlPath, width = 8.5}
|
||||
tm = G {path = tmPath, width = 10}
|
||||
tn = G {path = tnPath, width = 9}
|
||||
tr = G {path = trPath, width = 7}
|
||||
tč = G {path = tčPath, width = 9}
|
||||
tǧ = G {path = tǧPath, width = 10}
|
||||
tw = G {path = twPath, width = 10}
|
||||
th = G {path = thPath, width = 12}
|
||||
tf = G {path = tfPath, width = 10}
|
||||
tj = G {path = tjPath, width = 4.75}
|
||||
t0 = G {path = t0Path, width = 5}
|
||||
t = simpleG tPath 5.5
|
||||
tt = simpleG ttPath 7
|
||||
tk = simpleG tkPath 9
|
||||
tg = simpleG tgPath 9
|
||||
td = simpleG tdPath 9
|
||||
tƶ = simpleG tƶPath 9
|
||||
tp = simpleG tpPath 9.5
|
||||
tb = simpleG tbPath 10
|
||||
ts = simpleG tsPath 9
|
||||
tš = simpleG tšPath 9
|
||||
tl = simpleG tlPath 8.5
|
||||
tm = simpleG tmPath 10
|
||||
tn = simpleG tnPath 9
|
||||
tr = simpleG trPath 7
|
||||
tč = simpleG tčPath 9
|
||||
tǧ = simpleG tǧPath 10
|
||||
tw = simpleG twPath 10
|
||||
th = simpleG thPath 12
|
||||
tf = simpleG tfPath 10
|
||||
tj = simpleG tjPath 4.75
|
||||
t0 = simpleG t0Path 5
|
||||
|
||||
tPath = P [mA (0,0), lA (5.5,0)] <> shiftX 1.5 aPath <> shiftX 5.25 aPath
|
||||
tNarrow = P [mA (0,0), lA (5,0)] <> shiftX 1.5 aPath <> shiftX 4.75 aPath
|
||||
|
@ -95,9 +95,9 @@ t0Path = tPath <> P [mA (1.5,7), cR (1.8,-0.25) (3.1,0) (3.5,0.5)]
|
|||
|
||||
kGlyphs = [("k", k), ("kk", kk), ("ks", ks)]
|
||||
|
||||
k = G {path = kPath, width = 5}
|
||||
kk = G {path = kkPath, width = 8}
|
||||
ks = G {path = ksPath, width = 9}
|
||||
k = simpleG kPath 5
|
||||
kk = simpleG kkPath 8
|
||||
ks = simpleG ksPath 9
|
||||
|
||||
kLeft = P [mA (0,0), cR (0.5,0.75) (0,3) (0,5)]
|
||||
kBottomShort = P [cR (0,0) (2.6,0) (4,-0.5)]
|
||||
|
@ -109,7 +109,7 @@ kkPath = kShortPart <> shiftX 4 kShort
|
|||
ksPath = kShortPart <> shiftX 4 sPath
|
||||
|
||||
|
||||
g = G {path = gPath, width = 5}
|
||||
g = simpleG gPath 5
|
||||
|
||||
gPath = gHat <> kPath
|
||||
gHat = P [mA (1.5,-2.75), qR (1.5,0.125) (3.5,-0.25)]
|
||||
|
@ -117,7 +117,7 @@ gShort = gShortHat <> kShort
|
|||
gShortHat = P [mA (1.25,-2.75), qR (1.25,0.125) (2.75,-0.25)]
|
||||
|
||||
|
||||
d = G {path = dPath, width = 5}
|
||||
d = simpleG dPath 5
|
||||
|
||||
dPath = dPart <> P [mA (5,-3), lR (0,8)]
|
||||
dPart' = dBase <> dJoin'
|
||||
|
@ -133,27 +133,27 @@ dLong = dFree <> shiftX 1.5 dJoin
|
|||
("ƶm",ƶm), ("ƶn",ƶn), ("ƶr",ƶr), ("ƶč",ƶč), ("ƶǧ",ƶǧ), ("ƶw",ƶw),
|
||||
("ƶh",ƶh), ("ƶf",ƶf), ("ƶj",ƶj)]
|
||||
|
||||
ƶ = G {path = ƶPath, width = 5}
|
||||
ƶt = G {path = ƶtPath, width = 10.5}
|
||||
ƶk = G {path = ƶkPath, width = 9}
|
||||
ƶg = G {path = ƶgPath, width = 9}
|
||||
ƶd = G {path = ƶdPath, width = 10}
|
||||
ƶƶ = G {path = ƶƶPath, width = 10}
|
||||
ƶp = G {path = ƶpPath, width = 10.5}
|
||||
ƶb = G {path = ƶbPath, width = 11}
|
||||
ƶs = G {path = ƶsPath, width = 10}
|
||||
ƶš = G {path = ƶšPath, width = 10}
|
||||
ƶl = G {path = ƶlPath, width = 10}
|
||||
ƶm = G {path = ƶmPath, width = 11}
|
||||
ƶn = G {path = ƶnPath, width = 9.75}
|
||||
ƶr = G {path = ƶrPath, width = 8}
|
||||
ƶč = G {path = ƶčPath, width = 10}
|
||||
ƶǧ = G {path = ƶǧPath, width = 10}
|
||||
ƶw = G {path = ƶwPath, width = 11}
|
||||
ƶh = G {path = ƶhPath, width = 13}
|
||||
ƶf = G {path = ƶfPath, width = 10}
|
||||
ƶj = G {path = ƶjPath, width = 7.5}
|
||||
ƶ0 = G {path = ƶ0Path, width = 3.5}
|
||||
ƶ = simpleG ƶPath 5
|
||||
ƶt = simpleG ƶtPath 10.5
|
||||
ƶk = simpleG ƶkPath 9
|
||||
ƶg = simpleG ƶgPath 9
|
||||
ƶd = simpleG ƶdPath 10
|
||||
ƶƶ = simpleG ƶƶPath 10
|
||||
ƶp = simpleG ƶpPath 10.5
|
||||
ƶb = simpleG ƶbPath 11
|
||||
ƶs = simpleG ƶsPath 10
|
||||
ƶš = simpleG ƶšPath 10
|
||||
ƶl = simpleG ƶlPath 10
|
||||
ƶm = simpleG ƶmPath 11
|
||||
ƶn = simpleG ƶnPath 9.75
|
||||
ƶr = simpleG ƶrPath 8
|
||||
ƶč = simpleG ƶčPath 10
|
||||
ƶǧ = simpleG ƶǧPath 10
|
||||
ƶw = simpleG ƶwPath 11
|
||||
ƶh = simpleG ƶhPath 13
|
||||
ƶf = simpleG ƶfPath 10
|
||||
ƶj = simpleG ƶjPath 7.5
|
||||
ƶ0 = simpleG ƶ0Path 3.5
|
||||
|
||||
ƶPath = gHat <> dPath
|
||||
ƶtPath = dLong <> shiftX 5 tPath
|
||||
|
@ -180,10 +180,10 @@ dLong = dFree <> shiftX 1.5 dJoin
|
|||
|
||||
pGlyphs = [("p", p), ("pp", pp), ("ps", ps), ("pj", pj)]
|
||||
|
||||
p = G {path = pPath, width = 5.5}
|
||||
pp = G {path = ppPath, width = 9}
|
||||
ps = G {path = psPath, width = 10.5}
|
||||
pj = G {path = pjPath, width = 10}
|
||||
p = simpleG pPath 5.5
|
||||
pp = simpleG ppPath 9
|
||||
ps = simpleG psPath 10.5
|
||||
pj = simpleG pjPath 10
|
||||
|
||||
pInit =
|
||||
P [mA (0,-3), cR (-1,1) (-0.5,6) (-0.5,8)]
|
||||
|
@ -206,8 +206,8 @@ pjPath =
|
|||
|
||||
bGlyphs = [("b", b), ("bj", bj)]
|
||||
|
||||
b = G {path = bPath, width = 6}
|
||||
bj = G {path = bjPath, width = 9}
|
||||
b = simpleG bPath 6
|
||||
bj = simpleG bjPath 9
|
||||
|
||||
bPath = shiftX 1 gHat <> wPart <> P [mA (6,-3), lR (0,8)]
|
||||
bjPath =
|
||||
|
@ -221,27 +221,27 @@ sGlyphs = [("s",s), ("st",st), ("sk",sk), ("sg",sg), ("sd",sd), ("sƶ",sƶ),
|
|||
("sn",sn), ("sr",sr), ("sč",sč), ("sǧ",sǧ), ("sw",sw), ("sh",sh),
|
||||
("sf",sf), ("sj",sj)]
|
||||
|
||||
s = G {path = sPath, width = 5.125}
|
||||
st = G {path = stPath, width = 8.5}
|
||||
sk = G {path = skPath, width = 9}
|
||||
sg = G {path = sgPath, width = 9}
|
||||
sd = G {path = sdPath, width = 9}
|
||||
sƶ = G {path = sƶPath, width = 9}
|
||||
sp = G {path = spPath, width = 9.5}
|
||||
sb = G {path = sbPath, width = 10.5}
|
||||
ss = G {path = ssPath, width = 10}
|
||||
sš = G {path = sšPath, width = 10}
|
||||
sl = G {path = slPath, width = 9}
|
||||
sm = G {path = smPath, width = 10.5}
|
||||
sn = G {path = snPath, width = 9.5}
|
||||
sr = G {path = srPath, width = 7}
|
||||
sč = G {path = sčPath, width = 9}
|
||||
sǧ = G {path = sǧPath, width = 10}
|
||||
sw = G {path = swPath, width = 10}
|
||||
sh = G {path = shPath, width = 13}
|
||||
sf = G {path = sfPath, width = 10.25}
|
||||
sj = G {path = sjPath, width = 5}
|
||||
s0 = G {path = s0Path, width = 5}
|
||||
s = simpleG sPath 5.125
|
||||
st = simpleG stPath 8.5
|
||||
sk = simpleG skPath 9
|
||||
sg = simpleG sgPath 9
|
||||
sd = simpleG sdPath 9
|
||||
sƶ = simpleG sƶPath 9
|
||||
sp = simpleG spPath 9.5
|
||||
sb = simpleG sbPath 10.5
|
||||
ss = simpleG ssPath 10
|
||||
sš = simpleG sšPath 10
|
||||
sl = simpleG slPath 9
|
||||
sm = simpleG smPath 10.5
|
||||
sn = simpleG snPath 9.5
|
||||
sr = simpleG srPath 7
|
||||
sč = simpleG sčPath 9
|
||||
sǧ = simpleG sǧPath 10
|
||||
sw = simpleG swPath 10
|
||||
sh = simpleG shPath 13
|
||||
sf = simpleG sfPath 10.25
|
||||
sj = simpleG sjPath 5
|
||||
s0 = simpleG s0Path 5
|
||||
|
||||
sPath = sPartLine <> shiftX 4.75 aPath
|
||||
sPart' = P [mA (0, 0),
|
||||
|
@ -313,29 +313,29 @@ lGlyphs = [("l",l), ("ll", ll), ("lt",lt), ("lk",lk), ("lg",lg), ("ld",ld),
|
|||
("ln",ln), ("lr",lr), ("lč",lč), ("lǧ",lǧ), ("lw",lw), ("lh",lh),
|
||||
("lf",lf), ("lj",lj)]
|
||||
|
||||
l = G {path = lPath, width = 4.5}
|
||||
ll = G {path = llPath, width = 9}
|
||||
lt = G {path = ltPath, width = 10}
|
||||
lk = G {path = lkPath, width = 8.5}
|
||||
lg = G {path = lgPath, width = 8.5}
|
||||
ld = G {path = ldPath, width = 9.5}
|
||||
lƶ = G {path = lƶPath, width = 9.5}
|
||||
lp = G {path = lpPath, width = 10}
|
||||
lb = G {path = lbPath, width = 10.5}
|
||||
ls = G {path = lsPath, width = 9.5}
|
||||
lš = G {path = lšPath, width = 9.5}
|
||||
lm = G {path = lmPath, width = 10.5}
|
||||
ln = G {path = lnPath, width = 9.25}
|
||||
lr = G {path = lrPath, width = 7.5}
|
||||
lč = G {path = lčPath, width = 9.5}
|
||||
lǧ = G {path = lǧPath, width = 9.5}
|
||||
lw = G {path = lwPath, width = 10.5}
|
||||
lh = G {path = lhPath, width = 12.5}
|
||||
lf = G {path = lfPath, width = 10.5}
|
||||
lj = G {path = ljPath, width = 5}
|
||||
l0 = G {path = l0Path, width = 3.75}
|
||||
l = simpleG lPath 4.625
|
||||
ll = simpleG llPath 9
|
||||
lt = simpleG ltPath 10
|
||||
lk = simpleG lkPath 8.5
|
||||
lg = simpleG lgPath 8.5
|
||||
ld = simpleG ldPath 9.5
|
||||
lƶ = simpleG lƶPath 9.5
|
||||
lp = simpleG lpPath 10
|
||||
lb = simpleG lbPath 10.5
|
||||
ls = simpleG lsPath 9.5
|
||||
lš = simpleG lšPath 9.5
|
||||
lm = simpleG lmPath 10.5
|
||||
ln = simpleG lnPath 9.25
|
||||
lr = simpleG lrPath 7.5
|
||||
lč = simpleG lčPath 9.5
|
||||
lǧ = simpleG lǧPath 9.5
|
||||
lw = simpleG lwPath 10.5
|
||||
lh = simpleG lhPath 12.5
|
||||
lf = simpleG lfPath 10.5
|
||||
lj = simpleG ljPath 5
|
||||
l0 = simpleG l0Path 3.75
|
||||
|
||||
lPath = lPart <> P [mA (4.5,0), lR (0,5)]
|
||||
lPath = lPart <> shiftX 4.5 aPath
|
||||
lBase = P [mA (3,0.5), cR (0.25,-0.25) (0,-0.75) (-1.25,-0.5),
|
||||
cR (-1.5,0.3) (-2,2.5) (0,2.5),
|
||||
lR (0.75,0), mR (-1.25,0),
|
||||
|
@ -373,27 +373,27 @@ mGlyphs = [("m",m), ("mt",mt), ("mk",mk), ("mg",mg), ("md",md), ("mƶ",mƶ),
|
|||
("mn",mn), ("mr",mr), ("mč",mč), ("mǧ",mǧ), ("mw",mw), ("mh",mh),
|
||||
("mf",mf), ("mj",mj)]
|
||||
|
||||
m = G {path = mPath, width = 6}
|
||||
mt = G {path = mtPath, width = 10}
|
||||
mk = G {path = mkPath, width = 10}
|
||||
mg = G {path = mgPath, width = 10}
|
||||
md = G {path = mdPath, width = 12}
|
||||
mƶ = G {path = mƶPath, width = 12}
|
||||
mp = G {path = mpPath, width = 12.5}
|
||||
mb = G {path = mbPath, width = 12}
|
||||
ms = G {path = msPath, width = 11}
|
||||
mš = G {path = mšPath, width = 11}
|
||||
ml = G {path = mlPath, width = 11}
|
||||
mm = G {path = mmPath, width = 12}
|
||||
mn = G {path = mnPath, width = 11}
|
||||
mr = G {path = mrPath, width = 9}
|
||||
mč = G {path = mčPath, width = 12}
|
||||
mǧ = G {path = mǧPath, width = 12}
|
||||
mw = G {path = mwPath, width = 12}
|
||||
mh = G {path = mhPath, width = 14}
|
||||
mf = G {path = mfPath, width = 13}
|
||||
mj = G {path = mjPath, width = 9}
|
||||
m0 = G {path = m0Path, width = 6}
|
||||
m = simpleG mPath 6
|
||||
mt = simpleG mtPath 10
|
||||
mk = simpleG mkPath 10
|
||||
mg = simpleG mgPath 10
|
||||
md = simpleG mdPath 12
|
||||
mƶ = simpleG mƶPath 12
|
||||
mp = simpleG mpPath 12.5
|
||||
mb = simpleG mbPath 12
|
||||
ms = simpleG msPath 11
|
||||
mš = simpleG mšPath 11
|
||||
ml = simpleG mlPath 11
|
||||
mm = simpleG mmPath 12
|
||||
mn = simpleG mnPath 11
|
||||
mr = simpleG mrPath 9
|
||||
mč = simpleG mčPath 12
|
||||
mǧ = simpleG mǧPath 12
|
||||
mw = simpleG mwPath 12
|
||||
mh = simpleG mhPath 14
|
||||
mf = simpleG mfPath 13
|
||||
mj = simpleG mjPath 9
|
||||
m0 = simpleG m0Path 6
|
||||
|
||||
mPath = mPart <> P [mA (6,0), lR (0,5)]
|
||||
mInit = P [mA (0.5,0), cR (-0.25,0.2) (-0.5,2.25) (-0.5,3.5)]
|
||||
|
@ -427,33 +427,33 @@ nGlyphs = [("n", n), ("nt", nt), ("nk", nk), ("ng", ng), ("nd", nd), ("nƶ", nƶ
|
|||
("nm", nm), ("nn", nn), ("nr", nr), ("nč", nč), ("nǧ", nǧ),
|
||||
("nw", nw), ("nh", nh), ("nf", nf), ("nj", nj)]
|
||||
|
||||
n = G {path = nPath, width = 5}
|
||||
nt = G {path = ntPath, width = 10.5}
|
||||
nk = G {path = nkPath, width = 9}
|
||||
ng = G {path = ngPath, width = 9}
|
||||
nd = G {path = ndPath, width = 10}
|
||||
nƶ = G {path = nƶPath, width = 10}
|
||||
np = G {path = npPath, width = 10.25}
|
||||
nb = G {path = nbPath, width = 11}
|
||||
ns = G {path = nsPath, width = 10}
|
||||
nš = G {path = nšPath, width = 10}
|
||||
nl = G {path = nlPath, width = 10}
|
||||
nm = G {path = nmPath, width = 11}
|
||||
nn = G {path = nnPath, width = 10}
|
||||
nr = G {path = nrPath, width = 6.5}
|
||||
nč = G {path = nčPath, width = 10}
|
||||
nǧ = G {path = nǧPath, width = 9.75}
|
||||
nw = G {path = nwPath, width = 11}
|
||||
nh = G {path = nhPath, width = 13}
|
||||
nf = G {path = nfPath, width = 10.75}
|
||||
nj = G {path = njPath, width = 5.25}
|
||||
n0 = G {path = n0Path, width = 3.5}
|
||||
n = simpleG nPath 5.125
|
||||
nt = simpleG ntPath 10.5
|
||||
nk = simpleG nkPath 9
|
||||
ng = simpleG ngPath 9
|
||||
nd = simpleG ndPath 10
|
||||
nƶ = simpleG nƶPath 10
|
||||
np = simpleG npPath 10.25
|
||||
nb = simpleG nbPath 11
|
||||
ns = simpleG nsPath 10
|
||||
nš = simpleG nšPath 10
|
||||
nl = simpleG nlPath 10
|
||||
nm = simpleG nmPath 11
|
||||
nn = simpleG nnPath 10
|
||||
nr = simpleG nrPath 6.5
|
||||
nč = simpleG nčPath 10
|
||||
nǧ = simpleG nǧPath 9.75
|
||||
nw = simpleG nwPath 11
|
||||
nh = simpleG nhPath 13
|
||||
nf = simpleG nfPath 10.75
|
||||
nj = simpleG njPath 5.25
|
||||
n0 = simpleG n0Path 3.5
|
||||
|
||||
nPath = nPart <> P [mA (5,0), lR (0,5)]
|
||||
nPath = nPart <> shiftX 5 aPath
|
||||
nPart = nPart' <> P [cR (1.6,-0.25) (2.5,-1.75) (2.5,-2.5)]
|
||||
nPart' = P [mA (3.5,1), cR (0.5,-1) (-0.5,-1.125) (-1,-1),
|
||||
cR (-3.2,0.5) (-3.2,5.5) (0,5)]
|
||||
nLong = nPart' <> P [cR (1.6,-0.25) (4,-1) (4,-2.5)]
|
||||
nLong = nPart' <> P [cR (3.2,-0.5) (4,-1.5) (4,-2.5)]
|
||||
nFlat = P [mA (5,0), lR (-2.5,0), aR 2.5 2.5 0 Large CCW (0,5),
|
||||
cR (0.5,0) (1,-0.5) (1,-1.5)]
|
||||
nFree = nPart' <> P [qR (0.8,-0.125) (1.5,-1)]
|
||||
|
@ -485,27 +485,27 @@ rGlyphs = [("r", r), ("rt", rt), ("rk", rk), ("rg", rg), ("rd", rd), ("rƶ", rƶ
|
|||
("rm", rm), ("rn", rn), ("rr", rr), ("rč", rč), ("rǧ", rǧ),
|
||||
("rw", rw), ("rh", rh), ("rf", rf), ("rj", rj)]
|
||||
|
||||
r = G {path = rPath, width = 5}
|
||||
rt = G {path = rtPath, width = 7.5}
|
||||
rk = G {path = rkPath, width = 7}
|
||||
rg = G {path = rgPath, width = 7}
|
||||
rd = G {path = rdPath, width = 9.5}
|
||||
rƶ = G {path = rƶPath, width = 9.5}
|
||||
rp = G {path = rpPath, width = 10}
|
||||
rb = G {path = rbPath, width = 10.5}
|
||||
rs = G {path = rsPath, width = 9.5}
|
||||
rš = G {path = ršPath, width = 9.5}
|
||||
rl = G {path = rlPath, width = 9.5}
|
||||
rm = G {path = rmPath, width = 10.5}
|
||||
rr = G {path = rrPath, width = 6}
|
||||
rn = G {path = rnPath, width = 9}
|
||||
rč = G {path = rčPath, width = 9.5}
|
||||
rǧ = G {path = rǧPath, width = 9.5}
|
||||
rw = G {path = rwPath, width = 10.5}
|
||||
rh = G {path = rhPath, width = 12.5}
|
||||
rf = G {path = rfPath, width = 10.5}
|
||||
rj = G {path = rjPath, width = 7.5}
|
||||
r0 = G {path = r0Path, width = 5}
|
||||
r = simpleG rPath 5
|
||||
rt = simpleG rtPath 7.5
|
||||
rk = simpleG rkPath 7
|
||||
rg = simpleG rgPath 7
|
||||
rd = simpleG rdPath 9.5
|
||||
rƶ = simpleG rƶPath 9.5
|
||||
rp = simpleG rpPath 10
|
||||
rb = simpleG rbPath 10.5
|
||||
rs = simpleG rsPath 9.5
|
||||
rš = simpleG ršPath 9.5
|
||||
rl = simpleG rlPath 9.5
|
||||
rm = simpleG rmPath 10.5
|
||||
rr = simpleG rrPath 6
|
||||
rn = simpleG rnPath 9
|
||||
rč = simpleG rčPath 9.5
|
||||
rǧ = simpleG rǧPath 9.5
|
||||
rw = simpleG rwPath 10.5
|
||||
rh = simpleG rhPath 12.5
|
||||
rf = simpleG rfPath 10.5
|
||||
rj = simpleG rjPath 7.5
|
||||
r0 = simpleG r0Path 5
|
||||
|
||||
rPath = rPart <> P [mA (5,-3), lR (0,8)]
|
||||
rPart = P [mA (0,5), cR (3.5,0) (5,-1) (5,-2)]
|
||||
|
@ -537,9 +537,9 @@ r0Path = ŕPath <> P [mA (1.25,7), cR (2.2,-0.25) (2.8,0) (3,0.5)]
|
|||
|
||||
čGlyphs = [("č", č), ("čs", čs), ("čč", čč)]
|
||||
|
||||
č = G {path = čPath, width = 5}
|
||||
čs = G {path = čsPath, width = 10}
|
||||
čč = G {path = ččPath, width = 10}
|
||||
č = simpleG čPath 5
|
||||
čs = simpleG čsPath 10
|
||||
čč = simpleG ččPath 10
|
||||
|
||||
čPath = čPart <> čJoin <> P [mA (5,0), lR (0,5)]
|
||||
čPart = P [mA (0,0.5), cR (2.25,-0.75) (2.55,-0.5) (2.75,-0.5)] <> čPart'
|
||||
|
@ -553,7 +553,7 @@ r0Path = ŕPath <> P [mA (1.25,7), cR (2.2,-0.25) (2.8,0) (3,0.5)]
|
|||
ččPath = čPart <> shiftX 5 čPath
|
||||
|
||||
|
||||
ǧ = G {path = ǧPath, width = 5}
|
||||
ǧ = simpleG ǧPath 5
|
||||
|
||||
ǧPath = ǧPart <> čJoin <> P [mA (5,-3), lR (0,8)]
|
||||
ǧPart = P [mA (0,-2), cR (2.25,-0.75) (2.55,-0.5) (2.75,-0.5),
|
||||
|
@ -565,7 +565,7 @@ r0Path = ŕPath <> P [mA (1.25,7), cR (2.2,-0.25) (2.8,0) (3,0.5)]
|
|||
cR (-0.2,0.25) (-2.25,0) (-2.75,-0.5)]
|
||||
|
||||
|
||||
w = G {path = wPath, width = 6}
|
||||
w = simpleG wPath 6
|
||||
|
||||
wPath = wPart <> shiftX 5.75 aPath
|
||||
wPart = uPath <> P [mA (2.5,0), lR (3.5,0)]
|
||||
|
@ -573,10 +573,10 @@ wPart = uPath <> P [mA (2.5,0), lR (3.5,0)]
|
|||
|
||||
hGlyphs = [("h", h), ("hh", hh), ("hn", hn), ("hm", hm)]
|
||||
|
||||
h = G {path = hPath, width = 8.5}
|
||||
hh = G {path = hhPath, width = 16.5}
|
||||
hn = G {path = hnPath, width = 15}
|
||||
hm = G {path = hmPath, width = 16}
|
||||
h = simpleG hPath 8.5
|
||||
hh = simpleG hhPath 16.5
|
||||
hn = simpleG hnPath 15
|
||||
hm = simpleG hmPath 16
|
||||
|
||||
hPath = hPart <> shiftX 3.5 gHat <> P [mA (8.5,-3), lR (0,8)]
|
||||
hPart' x = sPart <> P [mA (2.5,0), lR (1.5,0)] <> shiftX 4 x
|
||||
|
@ -589,10 +589,10 @@ hmPath = hPath <> shiftX 10 mPath
|
|||
|
||||
fGlyphs = [("f", f), ("fn", fn), ("fm", fm)]
|
||||
|
||||
f = G {path = fPath, width = 6}
|
||||
fn = G {path = fnPath, width = 12}
|
||||
fm = G {path = fmPath, width = 12}
|
||||
f0 = G {path = f0Path, width = 6}
|
||||
f = simpleG fPath 6
|
||||
fn = simpleG fnPath 12
|
||||
fm = simpleG fmPath 12
|
||||
f0 = simpleG f0Path 6
|
||||
|
||||
fPath = fPart <> P [lR (0,2.5)]
|
||||
fPart = P [mA (4.25,2.5),
|
||||
|
@ -606,7 +606,7 @@ fnPath = fPath <> shiftX 7 nPath
|
|||
fmPath = fPart <> P [lR (0,1)] <> mBump <> mBump' <> P [mA (12,0), lR (0,5)]
|
||||
f0Path = fPath <> P [mA (1.5,7), cR (2.8,-0.35) (3.1,0) (3.5,0.5)]
|
||||
|
||||
j = G {path = jPath, width = 4}
|
||||
j = simpleG jPath 4
|
||||
|
||||
jPath = P [mA (0,0), qR (1.25,0.5) (4,0)] <> shiftX 3.75 aPath
|
||||
jPathShort = P [mA (0,0), qR (1,0.25) (3,0)] <> shiftX 2.75 aPath
|
||||
|
@ -617,20 +617,20 @@ vGlyphs = [("a", a), ("á", á), ("i", i), ("í", í), ("u", u), ("ú", ú),
|
|||
("ai", ai), ("au", au), ("ia", ia), ("ua", ua), ("ḿ", ḿ),
|
||||
("ń", ń), ("ł", ł), ("ŕ", ŕ)]
|
||||
|
||||
a = G {path = aPath, width = 0.125}
|
||||
á = G {path = áPath, width = 2.125}
|
||||
a = simpleG aPath 0.125
|
||||
á = simpleG áPath 2.125
|
||||
i = j
|
||||
í = G {path = íPath, width = 5}
|
||||
u = G {path = uPath, width = 4.5}
|
||||
ú = G {path = úPath, width = 4}
|
||||
ai = G {path = aiPath, width = 5}
|
||||
au = G {path = auPath, width = 4.5}
|
||||
ia = G {path = iaPath, width = 5}
|
||||
ua = G {path = uaPath, width = 4.5}
|
||||
ḿ = G {path = ḿPath, width = 6}
|
||||
ń = G {path = ńPath, width = 4}
|
||||
ł = G {path = łPath, width = 3.75}
|
||||
ŕ = G {path = ŕPath, width = 5}
|
||||
í = simpleG íPath 5
|
||||
u = simpleG uPath 4.5
|
||||
ú = simpleG úPath 4
|
||||
ai = simpleG aiPath 5
|
||||
au = simpleG auPath 4.5
|
||||
ia = simpleG iaPath 5
|
||||
ua = simpleG uaPath 4.5
|
||||
ḿ = simpleG ḿPath 6
|
||||
ń = simpleG ńPath 4
|
||||
ł = simpleG łPath 3.75
|
||||
ŕ = simpleG ŕPath 5
|
||||
|
||||
aPath = P [mA (0.25,0), cR (-0.25,1) (-0.25,2) (-0.25,5)]
|
||||
áPath = aPath <> shiftX 2 aPath
|
||||
|
@ -657,10 +657,10 @@ uaPath = uNarrow <> shiftX 4.5 aPath
|
|||
|
||||
adot = P . circR 0.2
|
||||
|
||||
withWidth f w = (f w, w)
|
||||
withWidth f (SI {width}) = (f width, width)
|
||||
sP = simpleDia . P
|
||||
|
||||
-- dont move because letters like t have the join not quite at the edge
|
||||
-- no @mA@ because letters like t have the join not quite at the edge
|
||||
da = [sP [lR (0,5)]]
|
||||
dá = da <> [withWidth \w -> P [mA (w/2-1,8), cR (0.75,-0.5) (1.25,0.5) (2,0)]]
|
||||
di = da <> [sP [cR (1,-2) (3,-3) (0,-3)]]
|
||||
|
@ -699,28 +699,29 @@ punctuation = Map.fromList
|
|||
[(".", eos), ("?", eos), ("!", eos), (",", eop), (":", eop), (";", eop),
|
||||
("…", ellipsis)]
|
||||
|
||||
eos = G {path = eosPath, width = 4}
|
||||
eos = simpleG eosPath 4
|
||||
eosPath = P $ circA 1 (4,1) <> circA 1 (4,4)
|
||||
|
||||
eop = G {path = eopPath, width = 2}
|
||||
eop = simpleG eopPath 2
|
||||
eopPath = P $ circA 1 (3,2.5)
|
||||
|
||||
num = G {path = P [mA (0,0), lR (0,5), mA (1,0), lR (0,5)], width = 1}
|
||||
num = simpleG path 1
|
||||
where path = P [mA (0,0), lR (0,5), mA (1,0), lR (0,5)]
|
||||
|
||||
numbers = Map.fromList $
|
||||
zip [0..9::Int] [u, t, n2, G dFree 3, n4, n5, ł, ḿ, ń, f]
|
||||
n2 = G n2Path 5
|
||||
zip [0..9::Int] [u, t, n2, simpleG dFree 3, n4, n5, ł, ḿ, ń, f]
|
||||
n2 = simpleG n2Path 5
|
||||
n2Path = P [mA (0,0), lR (0,5), sR (3,0) (5,-0.5), mA (5,0), lR (0,5)]
|
||||
n4 = G n4Path 5
|
||||
n4 = simpleG n4Path 5
|
||||
n4Path = P [mA (1.5,0), lR (0,5), sR (-1.5,-3) (-1.5,-5), lR (5,0), lR (0,5)]
|
||||
n5 = G n5Path 4
|
||||
n5 = simpleG n5Path 4
|
||||
n5Path = P [mA (0,5), lR (0,-3.5), aR 1.5 1.5 0 Small CW (1.5,-1.5),
|
||||
lR (1,0), aR 1.5 1.5 0 Small CW (1.5,1.5), lR (0,3.5)]
|
||||
|
||||
wave :: Glyph
|
||||
wave = G {path = wavePath, width = 4}
|
||||
|
||||
wavePath = P [mA (0,2.5), cR (1.5,-2) (2.5,2) (4,0)]
|
||||
wave = simpleG wavePath 4
|
||||
|
||||
ellipsis :: Glyph
|
||||
ellipsis = G {path = shiftX 3.5 wavePath, width = 6}
|
||||
ellipsis = simpleG (shiftX 3.5 wavePath) 6
|
||||
|
||||
wavePath = P [mA (0,2.5), cR (1.5,-2) (2.5,2) (4,0)]
|
||||
|
|
|
@ -9,7 +9,17 @@ import Numeric
|
|||
import Prelude hiding (Word)
|
||||
|
||||
|
||||
data Glyph = G {path :: Segs, width :: Double}
|
||||
data Glyph = G {path :: Segs, size :: SizeInfo}
|
||||
|
||||
data SizeInfo = SI {
|
||||
width :: Double, -- ^ total width
|
||||
right :: Double, -- ^ attachment point for e.g. a
|
||||
center :: Double -- ^ attachment point for e.g. á
|
||||
}
|
||||
|
||||
simpleG :: Segs -> Double -> Glyph
|
||||
simpleG path width =
|
||||
G {path, size = SI {width, right = width, center = width/2}}
|
||||
|
||||
-- | base amounts
|
||||
charHeight', lineHeight', spaceWidth', gap' :: Double
|
||||
|
@ -78,10 +88,11 @@ type Word = [EGlyph]
|
|||
|
||||
type EGlyph = (Glyph, [Diacritic])
|
||||
|
||||
type Diacritic = Double -> (Segs, Double)
|
||||
type Diacritic' a = SizeInfo -> (Segs, a)
|
||||
type Diacritic = Diacritic' Double
|
||||
|
||||
simpleDia :: Segs -> Diacritic
|
||||
simpleDia ss w = (ss, w)
|
||||
simpleDia ss (SI {width}) = (ss, width)
|
||||
|
||||
doGlyphs :: [Word] -> Env -> Element
|
||||
doGlyphs gs e = wrap $ run act e where
|
||||
|
@ -96,10 +107,13 @@ doGlyphs gs e = wrap $ run act e where
|
|||
doctype <> svg11_ content `with` sattrs
|
||||
|
||||
|
||||
liftDia :: Diacritic -> Diacritic' SizeInfo
|
||||
liftDia f sz = let (x, w) = f sz in (x, sz {width = w} :: SizeInfo)
|
||||
|
||||
glyphWidth :: EGlyph -> M Double
|
||||
glyphWidth (G {width}, ss) =
|
||||
let w = foldl (\x f -> snd $ f x) width ss in
|
||||
(+) <$> withSize (* w) <*> gap
|
||||
glyphWidth (G {size}, ss) =
|
||||
let SI {width} = foldl (\x f -> snd $ liftDia f x) size ss in
|
||||
(+) <$> withSize (* width) <*> gap
|
||||
|
||||
totalWidth :: Double -> M Double
|
||||
totalWidth width = (+) <$> withSize (* width) <*> gap
|
||||
|
@ -122,17 +136,17 @@ placeWord w = do
|
|||
pure e
|
||||
|
||||
placeGlyph :: EGlyph -> M Element
|
||||
placeGlyph (G {path = path1, width = width1}, dias) = do
|
||||
let (segs', width') = placeDia width1 dias
|
||||
placeGlyph (G {path = path1, size}, dias) = do
|
||||
let (segs', width') = placeDias size dias
|
||||
path <- joinSegs $ path1 <> segs'
|
||||
width <- totalWidth width'
|
||||
modify \s@(S {x}) -> s {x = x + width}
|
||||
pure $ path_ [D_ <<- path]
|
||||
|
||||
placeDia :: Double -> [Diacritic] -> (Segs, Double)
|
||||
placeDia w dias =
|
||||
flip runState w $
|
||||
fold <$> traverse state dias
|
||||
placeDias :: SizeInfo -> [Diacritic] -> (Segs, Double)
|
||||
placeDias sz =
|
||||
unlift . flip runState sz . fmap fold . traverse (state . liftDia)
|
||||
where unlift (x, SI {width}) = (x, width)
|
||||
|
||||
newline :: M ()
|
||||
newline = do
|
||||
|
|
|
@ -9,7 +9,8 @@ where
|
|||
import Control.Monad.Reader
|
||||
import Control.Monad.State
|
||||
import qualified Graphics.Svg as Base
|
||||
import Graphics.Svg hiding (mA, mR, lA, lR, cA, cR, sA, sR, aA, aR, qA, qR)
|
||||
import Graphics.Svg
|
||||
hiding (mA, mR, lA, lR, cA, cR, sA, sR, aA, aR, qA, qR, tA, tR)
|
||||
import Data.Text (Text, pack)
|
||||
|
||||
|
||||
|
@ -78,6 +79,16 @@ qR (x1, y1) (x2, y2) =
|
|||
Base.qR (x1 * size) (y1 * size)
|
||||
(x2 * size) (y2 * size)
|
||||
|
||||
tA :: Point -> M Text
|
||||
tA (x1, y1) =
|
||||
reader \E {size} ->
|
||||
Base.tA (x1 * size) (y1 * size)
|
||||
|
||||
tR :: Point -> M Text
|
||||
tR (x1, y1) =
|
||||
reader \E {size} ->
|
||||
Base.tR (x1 * size) (y1 * size)
|
||||
|
||||
|
||||
data Arc = Large | Small
|
||||
data Sweep = CW | CCW
|
||||
|
|
|
@ -27,7 +27,8 @@ executable laantas-script
|
|||
MultiWayIf,
|
||||
NamedFieldPuns,
|
||||
OverloadedStrings,
|
||||
RecordWildCards
|
||||
RecordWildCards,
|
||||
ViewPatterns
|
||||
build-depends:
|
||||
base >= 4.14.0.0 && < 4.17,
|
||||
containers ^>= 0.6.2.1,
|
||||
|
|
Loading…
Reference in a new issue