Skip to content

Instantly share code, notes, and snippets.

@cjdunn
Last active August 21, 2024 11:11
Show Gist options
  • Save cjdunn/5dcdb313e8f877018fd4c073503e8248 to your computer and use it in GitHub Desktop.
Save cjdunn/5dcdb313e8f877018fd4c073503e8248 to your computer and use it in GitHub Desktop.
glyphConstruction file for Latin S character set
### These are Glyph Construction formulas by CJ Dunn (www.CJType.com) used to support
### Latin S character set as defined by Christoph Koeberlin here: https://github.com/koeberlin/Latin-Character-Sets
###
### I use these with the Glyph Construction extension for Robofont: https://github.com/typemytype/GlyphConstruction/tree/master/GlyphConstruction.roboFontExt
###
### variables start with a dollar sign and to use them put the name between curly brackets
### offset for accents for uc and lc, change values for each style
$top_uc = `O:top+37`
$top_lc = `o:top+48`
### anchor names variables are below
### you can rename these variables if your anchors are named differently
$bottomAnchor = bottomAnchor
$center = center
###
### start glyph construction formulas ###
###
apostrophemod = quoteright | 02BC
commaturnedmod = quoteleft | 02BB
Adotbelow = A + dotbelowcmb @ {bottomAnchor} | 1EA0
Bdotbelow = B + dotbelowcmb @ {bottomAnchor} | 1E04
Ddotbelow = D + dotbelowcmb @ {bottomAnchor} | 1E0C
Edotbelow = E + dotbelowcmb @ {bottomAnchor} | 1EB8
Hdotbelow = H + dotbelowcmb @ {bottomAnchor} | 1E24
Idotbelow = I + dotbelowcmb @ {bottomAnchor} | 1ECA
Ndotbelow = N + dotbelowcmb @ {bottomAnchor} | 1E46
Odotbelow = O + dotbelowcmb @ {bottomAnchor} | 1ECC
Sdotbelow = S + dotbelowcmb @ {bottomAnchor} | 1E62
Udotbelow = U + dotbelowcmb @ {bottomAnchor} | 1EE4
Zdotbelow = Z + dotbelowcmb @ {bottomAnchor} | 1E92
adotbelow = a + dotbelowcmb @ {bottomAnchor} | 1EA1
bdotbelow = b + dotbelowcmb @ {bottomAnchor} | 1E05
ddotbelow = d + dotbelowcmb @ {bottomAnchor} | 1E0D
edotbelow = e + dotbelowcmb @ {bottomAnchor} | 1EB9
hdotbelow = h + dotbelowcmb @ {bottomAnchor} | 1E25
idotbelow = i + dotbelowcmb @ {bottomAnchor} | 1ECB
ndotbelow = n + dotbelowcmb @ {bottomAnchor} | 1E47
odotbelow = o + dotbelowcmb @ {bottomAnchor} | 1ECD
sdotbelow = s + dotbelowcmb @ {bottomAnchor} | 1E63
udotbelow = u + dotbelowcmb @ {bottomAnchor} | 1EE5
zdotbelow = z + dotbelowcmb @ {bottomAnchor} | 1E93
Vturned = V @~center,~top ^ V, V | 0245
vturned = v @~center,~top ^ v, v | 028C
Oopen = C @~center, top ^ C', C' | 0186
oopen = c @~center, top ^ c', c' | 0254
Ereversed = E @~center,top ^ E', E' | 018E
eturned = e @~center,~top ^ e', e' | 01DD
Istroke = I + overlaystrokeshortcmb@center,51% | 0197
istroke = i + overlaystrokeshortcmb@center,40% | 0268
Acaron = A + caroncmb @{center},{top_uc} | 01CD
Etilde = E + tildecmb @{center},{top_uc} | 1EBC
Gcaron = G + caroncmb @{center},{top_uc} | 01E6
Gmacron = G + macroncmb @{center},{top_uc} | 1E20
Hdieresis = H + dieresiscmb @{center},{top_uc} | 1E26
Icaron = I + caroncmb @{center},{top_uc} | 01CF
Ndot = N + dotaccentcmb @{center},{top_uc} | 1E44
Ocaron = O + caroncmb @{center},{top_uc} | 01D1
Pdot = P + dotaccentcmb @{center},{top_uc} | 1E56
Ucaron = U + caroncmb @{center},{top_uc} | 01D3
Xdieresis = X + dieresiscmb @{center},{top_uc} | 1E8C
Ymacron = Y + macroncmb @{center},{top_uc} | 0232
Ytilde = Y + tildecmb @{center},{top_uc} | 1EF8
acaron = a + caroncmb @{center},{top_lc} | 01CE
etilde = e + tildecmb @{center},{top_lc} | 1EBD
gcaron = g + caroncmb @{center},{top_lc} | 01E7
gmacron = g + macroncmb @{center},{top_lc} | 1E21
hdieresis = h + dieresis.uc @{center} | 1E27
icaron = dotlessi + caroncmb @{center},{top_lc} | 01D0
ndot = n + dotaccentcmb @{center},{top_lc} | 1E45
ocaron = o + caroncmb @{center},{top_lc} | 01D2
pdot = p + dotaccentcmb @{center},{top_lc} | 1E57
ucaron = u + caroncmb @{center},{top_lc} | 01D4
xdieresis = x + dieresiscmb @{center},{top_lc} | 1E8D
ymacron = y + macroncmb @{center},{top_lc} | 0233
ytilde = y + tildecmb @{center},{top_lc} | 1EF9
l_periodcentered.latnCAT = ldot
L_periodcentered.latnCAT = Ldot
### renamed to uni names, to avoid issues with ROM Tcommaaccent
uni0162 = T + cedillacmb @bottomAnchor | 0162
uni0163 = t + cedillacmb @bottomAnchor | 0163
### use these if you already have Cyrillic drawn
Eopen = Zecyrillic @~center, top ^ Zecyrillic', Zecyrillic' | 0190
eopen = zecyrillic @~center, top ^ zecyrillic', zecyrillic' | 025B
### these share the same code points as the related commaaccent glyphs, as used in Marshallese. These are part of L not S character set, so only build them if you want to skip ahead : )
Gcedilla = G + cedillacmb @bottomAnchor |
Kcedilla = K + cedillacmb @bottomAnchor |
Lcedilla = L + cedillacmb @bottomAnchor |
Ncedilla = N + cedillacmb @bottomAnchor |
Rcedilla = R + cedillacmb @bottomAnchor |
gcedilla = g + cedillacmb @bottomAnchor |
kcedilla = k + cedillacmb @bottomAnchor |
lcedilla = l + cedillacmb @bottomAnchor |
ncedilla = n + cedillacmb @bottomAnchor |
rcedilla = r + cedillacmb @bottomAnchor |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment