calt
)calt
) to add the joins between letters, as well as the entry strokes and exit strokes. Contextual alternates are absolutely essential.calt
'-table to invoke a set of 'single substitution'-tables. Cogncur uses the 'calt
'-table to invoke a set of 'multiple substitution'-tables. As this combination of features is rare, you should test an application specifically with Cogncur before concluding that it will work with Cogncur.ssXX
)ss20
ss07
, ss20
kern
)liga
)ss01
(no entry strokes from the baseline) is also active.
rlig
)calt
'-table to join them to other letters. Some renderers such as Chromium will not fall back to a default font to show unsupported characters, but will use the OpenType positioning table to 'compose' these characters on the fly. Unfortunately, characters composed by the application do not connect to other characters and do not receive entry or exit strokes, and this effect is sometimes too subtle to spot. A few (as of yet) unsupported characacters to test with, are: Ǹ ǹ Ń ń
. cg
.
name | before... (standard letters) | before... (variant letters) |
---|---|---|
cgi | i j p u w | p (p1) r (r1) y (y1) ij (ij1) |
cgn | m n r v x y ij | w (w1) p (p2) p (p4) |
cgh | b f h k l | |
cgo | c o | |
cga | a d g q | |
cge | e | |
cgs | s | |
cgs1 | s (s1) |
|
cgt1 | t (t1) |
|
cgt | t | |
cgz1 | z (z1) |
|
cgz | z |
cgi
and cgt1
are interchangeable. If one of these glyphs 'fits' as entry strokes towards a letter, the other glyph will also fit. Some stylistic sets swap these entrys trokes (as well as related joins.cgi
and cgn
are not interchangeable. To use a different entry stroke, a different variant of the letter glyph will be needed. This is why the letters r, w, y and z all have multiple variants.
cgz
and cgn
are interchangeble, but cgz
has a slope that better matches the internal diagonal stroke of the letter z. The same is true for cgz1
and cgi
.
ce
. Some exit strokes are not used with any of the default letters, only with variant letters.name | after... (standard letters) | after... (variant letters) |
---|---|---|
cen | a d h i k l m n r u x H K M R U X | p (p4) A (A2) M (M2) N (N2) |
ceo | o |
|
cee | c e C E L |
|
cev | b v w | w (w1) |
ceg | g j y ij G J Y | y (y1) ij (ij1) |
ces | s | s (s1) |
cep | p ß | p (p2) |
ceq | f q z | f (f2) f (f3) |
cet | t |
|
ceO | D O V W | W (w1) |
ceB | B S |
|
ceA | A |
|
ceP | P |
|
ceF | F T |
|
ceI | I |
|
ceN | N |
|
cef1 | f (f1) |
|
cef4 | f (f5) f (f5) |
|
ceq1 | q (q1) |
|
ceq2 | q (q2) |
|
cer2 | r (r2) |
calt
'-table as 'Back classes'.
second letter in pair 🡓 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
first letter in pair 🡓 | i j p r u w y z ß |
m n p r v w x y z |
b f h k l | e | a d g q | c o | s | s | t | t |
a d h i k l m n p r t u x A H K M M N R U |
ccni aw du |
ccnn my Un |
ccnh ll nk |
ccne he ie |
ccna dd xa |
ccno ho Ho |
ccns is us |
ccns1 is us |
ccnt it ut |
ccnt1 it tt |
b v w | ccvi bi vu |
ccvn wr vy |
ccvh bl wh |
ccve ve we |
ccva ba va |
ccvo bo wc |
ccvs bs vs |
ccvs1 bs vs |
ccvt bt wt |
ccvt1 bt wt |
o | ccoi oi ou |
ccon on ox |
ccoh of ob |
ccoe oe |
ccoa oa od |
ccoo oc oo |
ccos os |
ccos1 os |
ccot ot |
ccot1 ot |
g j y ij G J Y y ij G J |
ccgi gu Yp |
ccgn gr yx |
ccgh Gl yk |
ccge je ye |
ccga gg yd |
ccgo Go yc |
ccgs Ys gs |
ccgs1 Ys gs |
ccgt Gt yt |
ccgt1 Gt yt |
c e C E L C L |
ccei ei cw |
ccen cr Ly |
cceh Cl ef |
ccee ce ee |
ccea Ea cq |
cceo ec co |
cces es Es |
cces1 es Es |
ccet et ct |
ccet1 et ct |
t | ccti ti tu |
cctn tr tx |
ccth th tl |
ccte te |
ccta ta tg |
ccto to tc |
ccts ts |
ccts1 ts |
cctt tt |
N/A |
s s | ccsi sp si |
ccsn sn sr |
ccsh sh sl |
ccse se |
ccsa sa sq |
ccso sc so |
ccss ss |
N/A | ccst st |
ccst1 st |
p ß | ccpi pi pp |
ccpn pr pn |
ccph ph pl |
ccpe pe ße |
ccpa pa pg |
ccpo pc po |
ccps ps ßs |
ccps1 ps ßs |
ccpt pt ßt |
ccpt1 pt ßt |
f q | ccqi, ccqj1 qu fi fj |
ccqn fr fy |
ccqh ff fl |
ccqe fe qe |
ccqa qa fa |
ccqo fo fc |
ccqs fs qs |
ccqs1 fs qs |
ccqt ft qt |
ccqt1 ft qt |
z f q Q Z | cczi zi qu |
cczn Zx fr |
cczh Zh fl |
ccze ze fe |
ccza za qq |
cczo zo Qo |
cczs zs fs |
cczs1 zs fs |
cczt zt ft |
cczt1 zt ft |
f | ccf1i, ccf1j1 fu fi fj |
ccf1n fr fy |
ccf1h ff fl |
ccf1e fe |
ccf1a fa fq |
ccf1o fo qc |
ccf1s fs |
ccf1s1 fs |
ccf1t ft |
ccf1t1 ft |
q | ccq1i qu qi |
ccq1n qr qy |
ccq1h ql qh |
ccq1e qe |
ccq1a qq qa |
ccq1o qo qc |
ccq1s qs |
ccq1s1 qs |
ccq1t qs |
ccq1t1 qs |
q | ccq2i qu qi |
ccq2n qr qy |
ccq2h ql qh |
ccq2e qe |
ccq2a qq qa |
ccq2o qo qc |
ccq2s qs |
ccq2s1 qs |
ccq2t qs |
ccq2t1 qs |
r | ccr2i ru rp |
ccr2n rr rx |
ccr2h rf rk |
ccr2e re |
ccr2a ra rg |
ccr2o rc ro |
ccr2s rs |
ccr2s1 rs |
ccr2t rt |
ccr2t1 rt |
A | ccAi Au Ap |
ccAn Ar Ax |
ccAh Af Ak |
ccAe Ae |
ccAa Ad Aq |
ccAo Ac Ao |
ccAs As |
ccAs1 As |
ccAt At |
ccAt1 At |
B S | ccBi Bu Si |
ccBn Br Sy |
ccBh Bb Sh |
ccBe Be Se |
ccBa Ba Sq |
ccBo Bo Sc |
ccBs Bs Ss |
ccBs1 Bs Ss |
ccBt Bt St |
ccBt1 Bt St |
D O V W | ccOi Ow Vi |
ccOn On Dr |
ccOh Wh Ol |
ccOe De Oe |
ccOa Va Od |
ccOo Oo Do |
ccOs Os Vs |
ccOs1 Os Vs |
ccOt Ot Vt |
ccOt1 Ot Vt |
F T | ccFi Fj Ti |
ccFn Fr Ty |
ccFh Th Fl |
ccFe Te Fe |
ccFa Ta Fa |
ccFo To Fo |
ccFs is us |
ccFs1 is us |
ccFt it ut |
ccFt1 it tt |
P | ccPi Pi Pp |
ccPn Pr Py |
ccPh Ph Pf |
ccPe Pe |
ccPa Pa Pd |
ccPo Po Pc |
ccPs Ps |
ccPs1 Ps |
ccPt Pt |
ccPt1 Pt |
I | ccIi Ii Ip |
ccIn In Ir |
ccIh If Ib |
ccIe Ie |
ccIa Id Ig |
ccIo Io Ic |
ccIs Is |
ccIs1 Is |
ccIt It |
ccIt1 It |
N | ccNi Ni Nu |
ccNn Nn Ny |
ccNh Nk Nb |
ccNe Ne |
ccNa Na Ng |
ccNo No Nc |
ccNs Ns |
ccNs1 Ns |
ccNt Nt |
ccNt1 Nt |
ccqj
and ccf1q
are only used to join from (some variants of) f and q towards j. All other joins towards j are identical to the correspondings joins towards i.
calt
'-tables in Cogncur invoke multiple substition tables, there is no need for the font to combine letter glyphs and entry/exit/join glyphs into ligatures. ss01
to get shorter entry strokes (not from the baseline), you will get a ligature at the beginning of each lowercase word, which combines the letter glyph with the glyph for the short entry stroke (whose name starts with cs
in FontForge). The reason for this is the need to decrease whitespace, and the impossibility of taking more whitespace from some of the short entry stroke glyphs.