mirror of
https://github.com/kika/fixedsys.git
synced 2024-06-10 14:14:30 +12:00
Compare commits
35 commits
Author | SHA1 | Date | |
---|---|---|---|
df78e71364 | |||
084b3db161 | |||
ed932dc558 | |||
6496c15de6 | |||
a9ef5b736e | |||
20d2684f1f | |||
793437a8bc | |||
648e74cc04 | |||
d9df2f48f1 | |||
47263daac2 | |||
2ad7b7971d | |||
b7b970b4ee | |||
efd6705f91 | |||
f6b7d94cce | |||
c7323b94f0 | |||
27beb0cad8 | |||
228a925305 | |||
59ed71e3b2 | |||
7f192786f8 | |||
fb207ee395 | |||
54b115e5d8 | |||
adbe348bf2 | |||
b4b311af0e | |||
c3a1ec4fdc | |||
faf1a47c22 | |||
bffb21c986 | |||
97e31bc1b5 | |||
489f71efbc | |||
cebe20c3d4 | |||
0642b4d599 | |||
63cb83bc5e | |||
c3953cefa8 | |||
1620b3a9f0 | |||
36b3334991 | |||
805f6d44e9 |
462
FSEX.ttx
462
FSEX.ttx
|
@ -6020,18 +6020,25 @@
|
||||||
<GlyphID id="6014" name="lt_tilde_gt"/>
|
<GlyphID id="6014" name="lt_tilde_gt"/>
|
||||||
<GlyphID id="6015" name="lt_caret_gt"/>
|
<GlyphID id="6015" name="lt_caret_gt"/>
|
||||||
<GlyphID id="6016" name="slash_backslash"/>
|
<GlyphID id="6016" name="slash_backslash"/>
|
||||||
|
<GlyphID id="6017" name="alt"/>
|
||||||
|
<GlyphID id="6018" name="kleisli_fwd"/>
|
||||||
|
<GlyphID id="6019" name="kleisli_back"/>
|
||||||
|
<GlyphID id="6020" name="longrightarrow"/>
|
||||||
|
<GlyphID id="6021" name="lessequal.alt"/>
|
||||||
|
<GlyphID id="6022" name="greaterequal.alt"/>
|
||||||
|
<GlyphID id="6023" name="leftfatlongarrow"/>
|
||||||
</GlyphOrder>
|
</GlyphOrder>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<!-- Most of this table will be recalculated by the compiler -->
|
<!-- Most of this table will be recalculated by the compiler -->
|
||||||
<tableVersion value="1.0"/>
|
<tableVersion value="1"/>
|
||||||
<fontRevision value="3.02"/>
|
<fontRevision value="3.02"/>
|
||||||
<checkSumAdjustment value="0x5dc58743"/>
|
<checkSumAdjustment value="0x5dc58743"/>
|
||||||
<magicNumber value="0x5f0f3cf5"/>
|
<magicNumber value="0x5f0f3cf5"/>
|
||||||
<flags value="00000000 00001001"/>
|
<flags value="00000000 00001001"/>
|
||||||
<unitsPerEm value="160"/>
|
<unitsPerEm value="160"/>
|
||||||
<created value="Mon Mar 5 00:27:48 2007"/>
|
<created value="Mon Mar 5 00:27:48 2007"/>
|
||||||
<modified value="Wed May 8 16:50:55 2016"/>
|
<modified value="Sun May 8 16:50:55 2016"/>
|
||||||
<xMin value="-140"/>
|
<xMin value="-140"/>
|
||||||
<yMin value="-40"/>
|
<yMin value="-40"/>
|
||||||
<xMax value="600"/>
|
<xMax value="600"/>
|
||||||
|
@ -6044,7 +6051,7 @@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<hhea>
|
<hhea>
|
||||||
<tableVersion value="1.0"/>
|
<tableVersion value="0x10000"/>
|
||||||
<ascent value="130"/>
|
<ascent value="130"/>
|
||||||
<descent value="-30"/>
|
<descent value="-30"/>
|
||||||
<lineGap value="0"/>
|
<lineGap value="0"/>
|
||||||
|
@ -12127,7 +12134,7 @@
|
||||||
<mtx name="zacute" width="80" lsb="10"/>
|
<mtx name="zacute" width="80" lsb="10"/>
|
||||||
<mtx name="zcaron" width="80" lsb="10"/>
|
<mtx name="zcaron" width="80" lsb="10"/>
|
||||||
<mtx name="zdotaccent" width="80" lsb="10"/>
|
<mtx name="zdotaccent" width="80" lsb="10"/>
|
||||||
<mtx name="zero" width="80" lsb="20"/>
|
<mtx name="zero" width="80" lsb="10"/>
|
||||||
<mtx name="zeta" width="80" lsb="10"/>
|
<mtx name="zeta" width="80" lsb="10"/>
|
||||||
<mtx name="plusplus" width="160" lsb="10"/>
|
<mtx name="plusplus" width="160" lsb="10"/>
|
||||||
<mtx name="doublecolon" width="160" lsb="40"/>
|
<mtx name="doublecolon" width="160" lsb="40"/>
|
||||||
|
@ -12153,6 +12160,13 @@
|
||||||
<mtx name="lt_tilde_gt" width="240" lsb="30"/>
|
<mtx name="lt_tilde_gt" width="240" lsb="30"/>
|
||||||
<mtx name="lt_caret_gt" width="240" lsb="40"/>
|
<mtx name="lt_caret_gt" width="240" lsb="40"/>
|
||||||
<mtx name="slash_backslash" width="160" lsb="20"/>
|
<mtx name="slash_backslash" width="160" lsb="20"/>
|
||||||
|
<mtx name="alt" width="240" lsb="50"/>
|
||||||
|
<mtx name="kleisli_fwd" width="240" lsb="50"/>
|
||||||
|
<mtx name="kleisli_back" width="240" lsb="50"/>
|
||||||
|
<mtx name="longrightarrow" width="240" lsb="20"/>
|
||||||
|
<mtx name="lessequal.alt" width="160" lsb="30"/>
|
||||||
|
<mtx name="greaterequal.alt" width="160" lsb="30"/>
|
||||||
|
<mtx name="leftfatlongarrow" width="240" lsb="10"/>
|
||||||
</hmtx>
|
</hmtx>
|
||||||
|
|
||||||
<VDMX>
|
<VDMX>
|
||||||
|
@ -39530,6 +39544,66 @@
|
||||||
</assembly></instructions>
|
</assembly></instructions>
|
||||||
</TTGlyph>
|
</TTGlyph>
|
||||||
|
|
||||||
|
<TTGlyph name="greaterequal.alt" xMin="30" yMin="0" xMax="120" yMax="90">
|
||||||
|
<contour>
|
||||||
|
<pt x="90" y="40" on="1"/>
|
||||||
|
<pt x="80" y="40" on="1"/>
|
||||||
|
<pt x="80" y="30" on="1"/>
|
||||||
|
<pt x="70" y="30" on="1"/>
|
||||||
|
<pt x="70" y="20" on="1"/>
|
||||||
|
<pt x="60" y="20" on="1"/>
|
||||||
|
<pt x="60" y="10" on="1"/>
|
||||||
|
<pt x="50" y="10" on="1"/>
|
||||||
|
<pt x="50" y="0" on="1"/>
|
||||||
|
<pt x="30" y="0" on="1"/>
|
||||||
|
<pt x="30" y="10" on="1"/>
|
||||||
|
<pt x="40" y="10" on="1"/>
|
||||||
|
<pt x="40" y="20" on="1"/>
|
||||||
|
<pt x="50" y="20" on="1"/>
|
||||||
|
<pt x="50" y="30" on="1"/>
|
||||||
|
<pt x="60" y="30" on="1"/>
|
||||||
|
<pt x="60" y="40" on="1"/>
|
||||||
|
<pt x="70" y="40" on="1"/>
|
||||||
|
<pt x="70" y="50" on="1"/>
|
||||||
|
<pt x="60" y="50" on="1"/>
|
||||||
|
<pt x="60" y="60" on="1"/>
|
||||||
|
<pt x="50" y="60" on="1"/>
|
||||||
|
<pt x="50" y="70" on="1"/>
|
||||||
|
<pt x="40" y="70" on="1"/>
|
||||||
|
<pt x="40" y="80" on="1"/>
|
||||||
|
<pt x="30" y="80" on="1"/>
|
||||||
|
<pt x="30" y="90" on="1"/>
|
||||||
|
<pt x="50" y="90" on="1"/>
|
||||||
|
<pt x="50" y="80" on="1"/>
|
||||||
|
<pt x="60" y="80" on="1"/>
|
||||||
|
<pt x="60" y="70" on="1"/>
|
||||||
|
<pt x="70" y="70" on="1"/>
|
||||||
|
<pt x="70" y="60" on="1"/>
|
||||||
|
<pt x="80" y="60" on="1"/>
|
||||||
|
<pt x="80" y="50" on="1"/>
|
||||||
|
<pt x="90" y="50" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<contour>
|
||||||
|
<pt x="120" y="40" on="1"/>
|
||||||
|
<pt x="100" y="40" on="1"/>
|
||||||
|
<pt x="100" y="30" on="1"/>
|
||||||
|
<pt x="90" y="30" on="1"/>
|
||||||
|
<pt x="90" y="20" on="1"/>
|
||||||
|
<pt x="80" y="20" on="1"/>
|
||||||
|
<pt x="80" y="10" on="1"/>
|
||||||
|
<pt x="70" y="10" on="1"/>
|
||||||
|
<pt x="70" y="0" on="1"/>
|
||||||
|
<pt x="90" y="0" on="1"/>
|
||||||
|
<pt x="90" y="10" on="1"/>
|
||||||
|
<pt x="100" y="10" on="1"/>
|
||||||
|
<pt x="100" y="20" on="1"/>
|
||||||
|
<pt x="110" y="20" on="1"/>
|
||||||
|
<pt x="110" y="30" on="1"/>
|
||||||
|
<pt x="120" y="30" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<instructions><assembly>
|
||||||
|
</assembly></instructions>
|
||||||
|
</TTGlyph>
|
||||||
<TTGlyph name="fwd_compose" xMin="40" yMin="0" xMax="200" yMax="90">
|
<TTGlyph name="fwd_compose" xMin="40" yMin="0" xMax="200" yMax="90">
|
||||||
<contour>
|
<contour>
|
||||||
<pt x="100" y="40" on="1"/>
|
<pt x="100" y="40" on="1"/>
|
||||||
|
@ -42188,6 +42262,252 @@
|
||||||
</assembly></instructions>
|
</assembly></instructions>
|
||||||
</TTGlyph>
|
</TTGlyph>
|
||||||
|
|
||||||
|
<TTGlyph name="lessequal.alt" xMin="30" yMin="0" xMax="120" yMax="90">
|
||||||
|
<contour>
|
||||||
|
<pt x="120" y="0" on="1"/>
|
||||||
|
<pt x="100" y="0" on="1"/>
|
||||||
|
<pt x="100" y="10" on="1"/>
|
||||||
|
<pt x="90" y="10" on="1"/>
|
||||||
|
<pt x="90" y="20" on="1"/>
|
||||||
|
<pt x="80" y="20" on="1"/>
|
||||||
|
<pt x="80" y="30" on="1"/>
|
||||||
|
<pt x="70" y="30" on="1"/>
|
||||||
|
<pt x="70" y="40" on="1"/>
|
||||||
|
<pt x="60" y="40" on="1"/>
|
||||||
|
<pt x="60" y="50" on="1"/>
|
||||||
|
<pt x="70" y="50" on="1"/>
|
||||||
|
<pt x="70" y="60" on="1"/>
|
||||||
|
<pt x="80" y="60" on="1"/>
|
||||||
|
<pt x="80" y="70" on="1"/>
|
||||||
|
<pt x="90" y="70" on="1"/>
|
||||||
|
<pt x="90" y="80" on="1"/>
|
||||||
|
<pt x="100" y="80" on="1"/>
|
||||||
|
<pt x="100" y="90" on="1"/>
|
||||||
|
<pt x="120" y="90" on="1"/>
|
||||||
|
<pt x="120" y="80" on="1"/>
|
||||||
|
<pt x="110" y="80" on="1"/>
|
||||||
|
<pt x="110" y="70" on="1"/>
|
||||||
|
<pt x="100" y="70" on="1"/>
|
||||||
|
<pt x="100" y="60" on="1"/>
|
||||||
|
<pt x="90" y="60" on="1"/>
|
||||||
|
<pt x="90" y="50" on="1"/>
|
||||||
|
<pt x="80" y="50" on="1"/>
|
||||||
|
<pt x="80" y="40" on="1"/>
|
||||||
|
<pt x="90" y="40" on="1"/>
|
||||||
|
<pt x="90" y="30" on="1"/>
|
||||||
|
<pt x="100" y="30" on="1"/>
|
||||||
|
<pt x="100" y="20" on="1"/>
|
||||||
|
<pt x="110" y="20" on="1"/>
|
||||||
|
<pt x="110" y="10" on="1"/>
|
||||||
|
<pt x="120" y="10" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<contour>
|
||||||
|
<pt x="80" y="0" on="1"/>
|
||||||
|
<pt x="60" y="0" on="1"/>
|
||||||
|
<pt x="60" y="10" on="1"/>
|
||||||
|
<pt x="50" y="10" on="1"/>
|
||||||
|
<pt x="50" y="20" on="1"/>
|
||||||
|
<pt x="40" y="20" on="1"/>
|
||||||
|
<pt x="40" y="30" on="1"/>
|
||||||
|
<pt x="30" y="30" on="1"/>
|
||||||
|
<pt x="30" y="40" on="1"/>
|
||||||
|
<pt x="50" y="40" on="1"/>
|
||||||
|
<pt x="50" y="30" on="1"/>
|
||||||
|
<pt x="60" y="30" on="1"/>
|
||||||
|
<pt x="60" y="20" on="1"/>
|
||||||
|
<pt x="70" y="20" on="1"/>
|
||||||
|
<pt x="70" y="10" on="1"/>
|
||||||
|
<pt x="80" y="10" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<instructions><assembly>
|
||||||
|
</assembly></instructions>
|
||||||
|
</TTGlyph>
|
||||||
|
|
||||||
|
<TTGlyph name="alt" xMin="40" yMin="-20" xMax="200" yMax="90">
|
||||||
|
<contour>
|
||||||
|
<pt x="80" y="0" on="1"/>
|
||||||
|
<pt x="80" y="10" on="1"/>
|
||||||
|
<pt x="70" y="10" on="1"/>
|
||||||
|
<pt x="70" y="20" on="1"/>
|
||||||
|
<pt x="60" y="20" on="1"/>
|
||||||
|
<pt x="60" y="30" on="1"/>
|
||||||
|
<pt x="50" y="30" on="1"/>
|
||||||
|
<pt x="50" y="40" on="1"/>
|
||||||
|
<pt x="60" y="40" on="1"/>
|
||||||
|
<pt x="60" y="50" on="1"/>
|
||||||
|
<pt x="70" y="50" on="1"/>
|
||||||
|
<pt x="70" y="60" on="1"/>
|
||||||
|
<pt x="80" y="60" on="1"/>
|
||||||
|
<pt x="80" y="70" on="1"/>
|
||||||
|
<pt x="100" y="70" on="1"/>
|
||||||
|
<pt x="100" y="60" on="1"/>
|
||||||
|
<pt x="90" y="60" on="1"/>
|
||||||
|
<pt x="90" y="50" on="1"/>
|
||||||
|
<pt x="80" y="50" on="1"/>
|
||||||
|
<pt x="80" y="40" on="1"/>
|
||||||
|
<pt x="70" y="40" on="1"/>
|
||||||
|
<pt x="70" y="30" on="1"/>
|
||||||
|
<pt x="80" y="30" on="1"/>
|
||||||
|
<pt x="80" y="20" on="1"/>
|
||||||
|
<pt x="90" y="20" on="1"/>
|
||||||
|
<pt x="90" y="10" on="1"/>
|
||||||
|
<pt x="100" y="10" on="1"/>
|
||||||
|
<pt x="100" y="0" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<contour>
|
||||||
|
<pt x="130" y="-20" on="1"/>
|
||||||
|
<pt x="110" y="-20" on="1"/>
|
||||||
|
<pt x="110" y="90" on="1"/>
|
||||||
|
<pt x="130" y="90" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<contour>
|
||||||
|
<pt x="190" y="30" on="1"/>
|
||||||
|
<pt x="180" y="30" on="1"/>
|
||||||
|
<pt x="180" y="20" on="1"/>
|
||||||
|
<pt x="170" y="20" on="1"/>
|
||||||
|
<pt x="170" y="10" on="1"/>
|
||||||
|
<pt x="160" y="10" on="1"/>
|
||||||
|
<pt x="160" y="0" on="1"/>
|
||||||
|
<pt x="140" y="0" on="1"/>
|
||||||
|
<pt x="140" y="10" on="1"/>
|
||||||
|
<pt x="150" y="10" on="1"/>
|
||||||
|
<pt x="150" y="20" on="1"/>
|
||||||
|
<pt x="160" y="20" on="1"/>
|
||||||
|
<pt x="160" y="30" on="1"/>
|
||||||
|
<pt x="170" y="30" on="1"/>
|
||||||
|
<pt x="170" y="40" on="1"/>
|
||||||
|
<pt x="160" y="40" on="1"/>
|
||||||
|
<pt x="160" y="50" on="1"/>
|
||||||
|
<pt x="150" y="50" on="1"/>
|
||||||
|
<pt x="150" y="60" on="1"/>
|
||||||
|
<pt x="140" y="60" on="1"/>
|
||||||
|
<pt x="140" y="70" on="1"/>
|
||||||
|
<pt x="160" y="70" on="1"/>
|
||||||
|
<pt x="160" y="60" on="1"/>
|
||||||
|
<pt x="170" y="60" on="1"/>
|
||||||
|
<pt x="170" y="50" on="1"/>
|
||||||
|
<pt x="180" y="50" on="1"/>
|
||||||
|
<pt x="180" y="40" on="1"/>
|
||||||
|
<pt x="190" y="40" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<instructions><assembly>
|
||||||
|
</assembly></instructions>
|
||||||
|
</TTGlyph>
|
||||||
|
|
||||||
|
<TTGlyph name="kleisli_fwd" xMin="50" yMin="0" xMax="190" yMax="70">
|
||||||
|
<contour>
|
||||||
|
<pt x="50" y="70" on="1"/>
|
||||||
|
<pt x="70" y="70" on="1"/>
|
||||||
|
<pt x="70" y="60" on="1"/>
|
||||||
|
<pt x="80" y="60" on="1"/>
|
||||||
|
<pt x="80" y="50" on="1"/>
|
||||||
|
<pt x="150" y="50" on="1"/>
|
||||||
|
<pt x="150" y="60" on="1"/>
|
||||||
|
<pt x="140" y="60" on="1"/>
|
||||||
|
<pt x="140" y="70" on="1"/>
|
||||||
|
<pt x="160" y="70" on="1"/>
|
||||||
|
<pt x="160" y="60" on="1"/>
|
||||||
|
<pt x="170" y="60" on="1"/>
|
||||||
|
<pt x="170" y="50" on="1"/>
|
||||||
|
<pt x="180" y="50" on="1"/>
|
||||||
|
<pt x="180" y="40" on="1"/>
|
||||||
|
<pt x="190" y="40" on="1"/>
|
||||||
|
<pt x="190" y="30" on="1"/>
|
||||||
|
<pt x="180" y="30" on="1"/>
|
||||||
|
<pt x="180" y="20" on="1"/>
|
||||||
|
<pt x="170" y="20" on="1"/>
|
||||||
|
<pt x="170" y="10" on="1"/>
|
||||||
|
<pt x="160" y="10" on="1"/>
|
||||||
|
<pt x="160" y="0" on="1"/>
|
||||||
|
<pt x="140" y="0" on="1"/>
|
||||||
|
<pt x="140" y="10" on="1"/>
|
||||||
|
<pt x="150" y="10" on="1"/>
|
||||||
|
<pt x="150" y="20" on="1"/>
|
||||||
|
<pt x="80" y="20" on="1"/>
|
||||||
|
<pt x="80" y="10" on="1"/>
|
||||||
|
<pt x="70" y="10" on="1"/>
|
||||||
|
<pt x="70" y="0" on="1"/>
|
||||||
|
<pt x="50" y="0" on="1"/>
|
||||||
|
<pt x="50" y="10" on="1"/>
|
||||||
|
<pt x="60" y="10" on="1"/>
|
||||||
|
<pt x="60" y="20" on="1"/>
|
||||||
|
<pt x="70" y="20" on="1"/>
|
||||||
|
<pt x="70" y="30" on="1"/>
|
||||||
|
<pt x="80" y="30" on="1"/>
|
||||||
|
<pt x="80" y="40" on="1"/>
|
||||||
|
<pt x="70" y="40" on="1"/>
|
||||||
|
<pt x="70" y="50" on="1"/>
|
||||||
|
<pt x="60" y="50" on="1"/>
|
||||||
|
<pt x="60" y="60" on="1"/>
|
||||||
|
<pt x="50" y="60" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<contour>
|
||||||
|
<pt x="100" y="30" on="1"/>
|
||||||
|
<pt x="170" y="30" on="1"/>
|
||||||
|
<pt x="170" y="40" on="1"/>
|
||||||
|
<pt x="100" y="40" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<instructions><assembly>
|
||||||
|
</assembly></instructions>
|
||||||
|
</TTGlyph>
|
||||||
|
|
||||||
|
<TTGlyph name="kleisli_back" xMin="50" yMin="0" xMax="190" yMax="70">
|
||||||
|
<contour>
|
||||||
|
<pt x="80" y="70" on="1"/>
|
||||||
|
<pt x="100" y="70" on="1"/>
|
||||||
|
<pt x="100" y="60" on="1"/>
|
||||||
|
<pt x="90" y="60" on="1"/>
|
||||||
|
<pt x="90" y="50" on="1"/>
|
||||||
|
<pt x="160" y="50" on="1"/>
|
||||||
|
<pt x="160" y="60" on="1"/>
|
||||||
|
<pt x="170" y="60" on="1"/>
|
||||||
|
<pt x="170" y="70" on="1"/>
|
||||||
|
<pt x="190" y="70" on="1"/>
|
||||||
|
<pt x="190" y="60" on="1"/>
|
||||||
|
<pt x="180" y="60" on="1"/>
|
||||||
|
<pt x="180" y="50" on="1"/>
|
||||||
|
<pt x="170" y="50" on="1"/>
|
||||||
|
<pt x="170" y="40" on="1"/>
|
||||||
|
<pt x="160" y="40" on="1"/>
|
||||||
|
<pt x="160" y="30" on="1"/>
|
||||||
|
<pt x="170" y="30" on="1"/>
|
||||||
|
<pt x="170" y="20" on="1"/>
|
||||||
|
<pt x="180" y="20" on="1"/>
|
||||||
|
<pt x="180" y="10" on="1"/>
|
||||||
|
<pt x="190" y="10" on="1"/>
|
||||||
|
<pt x="190" y="0" on="1"/>
|
||||||
|
<pt x="170" y="0" on="1"/>
|
||||||
|
<pt x="170" y="10" on="1"/>
|
||||||
|
<pt x="160" y="10" on="1"/>
|
||||||
|
<pt x="160" y="20" on="1"/>
|
||||||
|
<pt x="90" y="20" on="1"/>
|
||||||
|
<pt x="90" y="10" on="1"/>
|
||||||
|
<pt x="100" y="10" on="1"/>
|
||||||
|
<pt x="100" y="0" on="1"/>
|
||||||
|
<pt x="80" y="0" on="1"/>
|
||||||
|
<pt x="80" y="10" on="1"/>
|
||||||
|
<pt x="70" y="10" on="1"/>
|
||||||
|
<pt x="70" y="20" on="1"/>
|
||||||
|
<pt x="60" y="20" on="1"/>
|
||||||
|
<pt x="60" y="30" on="1"/>
|
||||||
|
<pt x="50" y="30" on="1"/>
|
||||||
|
<pt x="50" y="40" on="1"/>
|
||||||
|
<pt x="60" y="40" on="1"/>
|
||||||
|
<pt x="60" y="50" on="1"/>
|
||||||
|
<pt x="70" y="50" on="1"/>
|
||||||
|
<pt x="70" y="60" on="1"/>
|
||||||
|
<pt x="80" y="60" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<contour>
|
||||||
|
<pt x="70" y="30" on="1"/>
|
||||||
|
<pt x="140" y="30" on="1"/>
|
||||||
|
<pt x="140" y="40" on="1"/>
|
||||||
|
<pt x="70" y="40" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<instructions><assembly>
|
||||||
|
</assembly></instructions>
|
||||||
|
</TTGlyph>
|
||||||
|
|
||||||
<TTGlyph name="append" xMin="20" yMin="0" xMax="140" yMax="90">
|
<TTGlyph name="append" xMin="20" yMin="0" xMax="140" yMax="90">
|
||||||
<contour>
|
<contour>
|
||||||
<pt x="80" y="0" on="1"/>
|
<pt x="80" y="0" on="1"/>
|
||||||
|
@ -48511,6 +48831,41 @@
|
||||||
</assembly></instructions>
|
</assembly></instructions>
|
||||||
</TTGlyph>
|
</TTGlyph>
|
||||||
|
|
||||||
|
<TTGlyph name="longrightarrow" xMin="20" yMin="0" xMax="220" yMax="70">
|
||||||
|
<contour>
|
||||||
|
<pt x="170" y="70" on="1"/>
|
||||||
|
<pt x="190" y="70" on="1"/>
|
||||||
|
<pt x="190" y="60" on="1"/>
|
||||||
|
<pt x="200" y="60" on="1"/>
|
||||||
|
<pt x="200" y="50" on="1"/>
|
||||||
|
<pt x="210" y="50" on="1"/>
|
||||||
|
<pt x="210" y="40" on="1"/>
|
||||||
|
<pt x="220" y="40" on="1"/>
|
||||||
|
<pt x="220" y="30" on="1"/>
|
||||||
|
<pt x="210" y="30" on="1"/>
|
||||||
|
<pt x="210" y="20" on="1"/>
|
||||||
|
<pt x="200" y="20" on="1"/>
|
||||||
|
<pt x="200" y="10" on="1"/>
|
||||||
|
<pt x="190" y="10" on="1"/>
|
||||||
|
<pt x="190" y="0" on="1"/>
|
||||||
|
<pt x="170" y="0" on="1"/>
|
||||||
|
<pt x="170" y="10" on="1"/>
|
||||||
|
<pt x="180" y="10" on="1"/>
|
||||||
|
<pt x="180" y="20" on="1"/>
|
||||||
|
<pt x="190" y="20" on="1"/>
|
||||||
|
<pt x="190" y="30" on="1"/>
|
||||||
|
<pt x="20" y="30" on="1"/>
|
||||||
|
<pt x="20" y="40" on="1"/>
|
||||||
|
<pt x="190" y="40" on="1"/>
|
||||||
|
<pt x="190" y="50" on="1"/>
|
||||||
|
<pt x="180" y="50" on="1"/>
|
||||||
|
<pt x="180" y="60" on="1"/>
|
||||||
|
<pt x="170" y="60" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<instructions><assembly>
|
||||||
|
</assembly></instructions>
|
||||||
|
</TTGlyph>
|
||||||
|
|
||||||
<TTGlyph name="rightquotes.sf" xMin="20" yMin="50" xMax="70" yMax="90">
|
<TTGlyph name="rightquotes.sf" xMin="20" yMin="50" xMax="70" yMax="90">
|
||||||
<contour>
|
<contour>
|
||||||
<pt x="40" y="60" on="1"/>
|
<pt x="40" y="60" on="1"/>
|
||||||
|
@ -178789,6 +179144,42 @@
|
||||||
</assembly></instructions>
|
</assembly></instructions>
|
||||||
</TTGlyph>
|
</TTGlyph>
|
||||||
|
|
||||||
|
<TTGlyph name="leftfatlongarrow" xMin="10" yMin="0" xMax="220" yMax="70">
|
||||||
|
<contour>
|
||||||
|
<pt x="220" y="30" on="1"/>
|
||||||
|
<pt x="220" y="20" on="1"/>
|
||||||
|
<pt x="50" y="20" on="1"/>
|
||||||
|
<pt x="50" y="10" on="1"/>
|
||||||
|
<pt x="60" y="10" on="1"/>
|
||||||
|
<pt x="60" y="0" on="1"/>
|
||||||
|
<pt x="40" y="0" on="1"/>
|
||||||
|
<pt x="40" y="10" on="1"/>
|
||||||
|
<pt x="30" y="10" on="1"/>
|
||||||
|
<pt x="30" y="20" on="1"/>
|
||||||
|
<pt x="20" y="20" on="1"/>
|
||||||
|
<pt x="20" y="30" on="1"/>
|
||||||
|
<pt x="10" y="30" on="1"/>
|
||||||
|
<pt x="10" y="40" on="1"/>
|
||||||
|
<pt x="20" y="40" on="1"/>
|
||||||
|
<pt x="20" y="50" on="1"/>
|
||||||
|
<pt x="30" y="50" on="1"/>
|
||||||
|
<pt x="30" y="60" on="1"/>
|
||||||
|
<pt x="40" y="60" on="1"/>
|
||||||
|
<pt x="40" y="70" on="1"/>
|
||||||
|
<pt x="60" y="70" on="1"/>
|
||||||
|
<pt x="60" y="60" on="1"/>
|
||||||
|
<pt x="50" y="60" on="1"/>
|
||||||
|
<pt x="50" y="50" on="1"/>
|
||||||
|
<pt x="220" y="50" on="1"/>
|
||||||
|
<pt x="220" y="40" on="1"/>
|
||||||
|
<pt x="150" y="40" on="1"/>
|
||||||
|
<pt x="30" y="40" on="1"/>
|
||||||
|
<pt x="30" y="30" on="1"/>
|
||||||
|
</contour>
|
||||||
|
<instructions><assembly>
|
||||||
|
</assembly></instructions>
|
||||||
|
</TTGlyph>
|
||||||
|
|
||||||
<TTGlyph name="uni27F9" xMin="10" yMin="0" xMax="160" yMax="70">
|
<TTGlyph name="uni27F9" xMin="10" yMin="0" xMax="160" yMax="70">
|
||||||
<contour>
|
<contour>
|
||||||
<pt x="140" y="30" on="1"/>
|
<pt x="140" y="30" on="1"/>
|
||||||
|
@ -247398,34 +247789,34 @@
|
||||||
</assembly></instructions>
|
</assembly></instructions>
|
||||||
</TTGlyph>
|
</TTGlyph>
|
||||||
|
|
||||||
<TTGlyph name="zero" xMin="20" yMin="0" xMax="80" yMax="90">
|
<TTGlyph name="zero" xMin="10" yMin="0" xMax="70" yMax="90">
|
||||||
<contour>
|
<contour>
|
||||||
<pt x="80" y="10" on="1"/>
|
|
||||||
<pt x="70" y="10" on="1"/>
|
<pt x="70" y="10" on="1"/>
|
||||||
<pt x="70" y="0" on="1"/>
|
<pt x="60" y="10" on="1"/>
|
||||||
<pt x="30" y="0" on="1"/>
|
<pt x="60" y="0" on="1"/>
|
||||||
<pt x="30" y="10" on="1"/>
|
<pt x="20" y="0" on="1"/>
|
||||||
<pt x="20" y="10" on="1"/>
|
<pt x="20" y="10" on="1"/>
|
||||||
|
<pt x="10" y="10" on="1"/>
|
||||||
|
<pt x="10" y="80" on="1"/>
|
||||||
<pt x="20" y="80" on="1"/>
|
<pt x="20" y="80" on="1"/>
|
||||||
<pt x="30" y="80" on="1"/>
|
<pt x="20" y="90" on="1"/>
|
||||||
<pt x="30" y="90" on="1"/>
|
<pt x="60" y="90" on="1"/>
|
||||||
<pt x="70" y="90" on="1"/>
|
<pt x="60" y="80" on="1"/>
|
||||||
<pt x="70" y="80" on="1"/>
|
<pt x="70" y="80" on="1"/>
|
||||||
<pt x="80" y="80" on="1"/>
|
|
||||||
</contour>
|
</contour>
|
||||||
<contour>
|
<contour>
|
||||||
<pt x="60" y="10" on="1"/>
|
<pt x="50" y="10" on="1"/>
|
||||||
<pt x="60" y="50" on="1"/>
|
|
||||||
<pt x="50" y="50" on="1"/>
|
<pt x="50" y="50" on="1"/>
|
||||||
|
<pt x="40" y="50" on="1"/>
|
||||||
|
<pt x="40" y="70" on="1"/>
|
||||||
<pt x="50" y="70" on="1"/>
|
<pt x="50" y="70" on="1"/>
|
||||||
<pt x="60" y="70" on="1"/>
|
<pt x="50" y="80" on="1"/>
|
||||||
<pt x="60" y="80" on="1"/>
|
<pt x="30" y="80" on="1"/>
|
||||||
<pt x="40" y="80" on="1"/>
|
<pt x="30" y="40" on="1"/>
|
||||||
<pt x="40" y="40" on="1"/>
|
<pt x="40" y="40" on="1"/>
|
||||||
<pt x="50" y="40" on="1"/>
|
|
||||||
<pt x="50" y="20" on="1"/>
|
|
||||||
<pt x="40" y="20" on="1"/>
|
<pt x="40" y="20" on="1"/>
|
||||||
<pt x="40" y="10" on="1"/>
|
<pt x="30" y="20" on="1"/>
|
||||||
|
<pt x="30" y="10" on="1"/>
|
||||||
</contour>
|
</contour>
|
||||||
<instructions><assembly>
|
<instructions><assembly>
|
||||||
</assembly></instructions>
|
</assembly></instructions>
|
||||||
|
@ -247478,13 +247869,13 @@
|
||||||
Regular
|
Regular
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
DarienValentine: Fixedsys Excelsior 3.022: 2016
|
DarienValentine: Fixedsys Excelsior 3.022: 2017
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
Fixedsys Excelsior
|
Fixedsys Excelsior
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
Version 3.022 2016
|
Version 3.022 2017
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
FixedsysExcelsiorIIIb
|
FixedsysExcelsiorIIIb
|
||||||
|
@ -247511,13 +247902,13 @@
|
||||||
Regular
|
Regular
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
||||||
DarienValentine: Fixedsys Excelsior 3.022: 2016
|
DarienValentine: Fixedsys Excelsior 3.022: 2017
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
||||||
Fixedsys Excelsior
|
Fixedsys Excelsior
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
||||||
Version 3.022 2016
|
Version 3.022 2017
|
||||||
</namerecord>
|
</namerecord>
|
||||||
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
||||||
FixedsysExcelsiorIIIb
|
FixedsysExcelsiorIIIb
|
||||||
|
@ -247551,7 +247942,7 @@
|
||||||
found in the 'post' table. Since these names might not be unique,
|
found in the 'post' table. Since these names might not be unique,
|
||||||
we have to invent artificial names in case of clashes. In order to
|
we have to invent artificial names in case of clashes. In order to
|
||||||
be able to retain the original information, we need a name to
|
be able to retain the original information, we need a name to
|
||||||
ps name mapping for those cases where they differ. That's what
|
ps name mapping for those cases where they differ. Thats what
|
||||||
you see below.
|
you see below.
|
||||||
-->
|
-->
|
||||||
</psNames>
|
</psNames>
|
||||||
|
@ -253580,7 +253971,7 @@
|
||||||
</EBLC>
|
</EBLC>
|
||||||
|
|
||||||
<GDEF>
|
<GDEF>
|
||||||
<Version value="1.0"/>
|
<Version value="0x10000"/>
|
||||||
<GlyphClassDef>
|
<GlyphClassDef>
|
||||||
<ClassDef glyph=".notdef" class="1"/>
|
<ClassDef glyph=".notdef" class="1"/>
|
||||||
<ClassDef glyph="A" class="1"/>
|
<ClassDef glyph="A" class="1"/>
|
||||||
|
@ -258482,7 +258873,7 @@
|
||||||
</GDEF>
|
</GDEF>
|
||||||
|
|
||||||
<GPOS>
|
<GPOS>
|
||||||
<Version value="1.0"/>
|
<Version value="0x10000"/>
|
||||||
<ScriptList>
|
<ScriptList>
|
||||||
<!-- ScriptCount=5 -->
|
<!-- ScriptCount=5 -->
|
||||||
<ScriptRecord index="0">
|
<ScriptRecord index="0">
|
||||||
|
@ -258757,7 +259148,7 @@
|
||||||
</GPOS>
|
</GPOS>
|
||||||
|
|
||||||
<GSUB>
|
<GSUB>
|
||||||
<Version value="1.0"/>
|
<Version value="0x10000"/>
|
||||||
<ScriptList>
|
<ScriptList>
|
||||||
<!-- ScriptCount=5 -->
|
<!-- ScriptCount=5 -->
|
||||||
<ScriptRecord index="0">
|
<ScriptRecord index="0">
|
||||||
|
@ -259260,16 +259651,24 @@
|
||||||
<Ligature components="hyphen" glyph="comment_start.hask"/>
|
<Ligature components="hyphen" glyph="comment_start.hask"/>
|
||||||
</LigatureSet>
|
</LigatureSet>
|
||||||
<LigatureSet glyph="hyphen">
|
<LigatureSet glyph="hyphen">
|
||||||
|
<Ligature components="hyphen,greater" glyph="longrightarrow"/>
|
||||||
<Ligature components="greater" glyph="rightarrow"/>
|
<Ligature components="greater" glyph="rightarrow"/>
|
||||||
<Ligature components="braceright" glyph="comment_end.hask"/>
|
<Ligature components="braceright" glyph="comment_end.hask"/>
|
||||||
</LigatureSet>
|
</LigatureSet>
|
||||||
<LigatureSet glyph="less">
|
<LigatureSet glyph="less">
|
||||||
<Ligature components="less,less" glyph="compose"/>
|
<Ligature components="less,less" glyph="compose"/>
|
||||||
|
<Ligature components="bar,greater" glyph="alt"/>
|
||||||
<Ligature components="bar" glyph="compose.elm"/>
|
<Ligature components="bar" glyph="compose.elm"/>
|
||||||
<Ligature components="hyphen,greater" glyph="leftrightarrow"/>
|
<Ligature components="hyphen,greater" glyph="leftrightarrow"/>
|
||||||
<Ligature components="hyphen" glyph="leftarrow"/>
|
<Ligature components="hyphen" glyph="leftarrow"/>
|
||||||
<Ligature components="equal,greater" glyph="uni27FA"/>
|
<Ligature components="equal,greater" glyph="uni27FA"/>
|
||||||
|
<Ligature components="equal,less" glyph="kleisli_back"/>
|
||||||
|
<Ligature components="equal,equal" glyph="leftfatlongarrow"/>
|
||||||
|
#ifdef ALT_LESSEQUAL
|
||||||
|
<Ligature components="equal" glyph="lessequal.alt"/>
|
||||||
|
#else
|
||||||
<Ligature components="equal" glyph="uni27F8"/>
|
<Ligature components="equal" glyph="uni27F8"/>
|
||||||
|
#endif
|
||||||
<Ligature components="asterisk,greater" glyph="apply"/>
|
<Ligature components="asterisk,greater" glyph="apply"/>
|
||||||
<Ligature components="dollar,greater" glyph="map"/>
|
<Ligature components="dollar,greater" glyph="map"/>
|
||||||
<Ligature components="greater" glyph="append"/>
|
<Ligature components="greater" glyph="append"/>
|
||||||
|
@ -259282,6 +259681,9 @@
|
||||||
<Ligature components="equal,equal" glyph="equalequalequal"/>
|
<Ligature components="equal,equal" glyph="equalequalequal"/>
|
||||||
<Ligature components="equal" glyph="equalequal"/>
|
<Ligature components="equal" glyph="equalequal"/>
|
||||||
<Ligature components="less,less" glyph="leftshove"/>
|
<Ligature components="less,less" glyph="leftshove"/>
|
||||||
|
#ifndef ALT_LESSEQUAL
|
||||||
|
<Ligature components="less" glyph="lessequal.alt"/>
|
||||||
|
#endif
|
||||||
</LigatureSet>
|
</LigatureSet>
|
||||||
<LigatureSet glyph="plus">
|
<LigatureSet glyph="plus">
|
||||||
<Ligature components="plus" glyph="plusplus"/>
|
<Ligature components="plus" glyph="plusplus"/>
|
||||||
|
@ -259302,8 +259704,10 @@
|
||||||
<Ligature components="greater" glyph="fwd_compose.elm"/>
|
<Ligature components="greater" glyph="fwd_compose.elm"/>
|
||||||
</LigatureSet>
|
</LigatureSet>
|
||||||
<LigatureSet glyph="greater">
|
<LigatureSet glyph="greater">
|
||||||
|
<Ligature components="equal,greater" glyph="kleisli_fwd"/>
|
||||||
<Ligature components="greater,equal" glyph="rightshove"/>
|
<Ligature components="greater,equal" glyph="rightshove"/>
|
||||||
<Ligature components="greater,greater" glyph="fwd_compose"/>
|
<Ligature components="greater,greater" glyph="fwd_compose"/>
|
||||||
|
<Ligature components="equal" glyph="greaterequal.alt"/>
|
||||||
</LigatureSet>
|
</LigatureSet>
|
||||||
<LigatureSet glyph="asciitilde">
|
<LigatureSet glyph="asciitilde">
|
||||||
<Ligature components="greater" glyph="tilde_gt"/>
|
<Ligature components="greater" glyph="tilde_gt"/>
|
||||||
|
|
19
Makefile
19
Makefile
|
@ -1,5 +1,20 @@
|
||||||
FSEX302.ttf: FSEX.ttx
|
COMPILE=ttx -f --recalc-timestamp
|
||||||
ttx -f -o $@ $<
|
CPP=cpp
|
||||||
|
|
||||||
|
all: FSEX302.ttf FSEX302-alt.ttf
|
||||||
|
|
||||||
|
FSEX302.ttf: FSEX-default.ttx
|
||||||
|
$(COMPILE) -o $@ $<
|
||||||
cp $@ ~/Library/Fonts
|
cp $@ ~/Library/Fonts
|
||||||
atsutil databases -remove
|
atsutil databases -remove
|
||||||
|
rm $<
|
||||||
|
|
||||||
|
FSEX302-alt.ttf: FSEX-alt.ttx
|
||||||
|
$(COMPILE) -o $@ $<
|
||||||
|
rm $<
|
||||||
|
|
||||||
|
FSEX-default.ttx: FSEX.ttx
|
||||||
|
$(CPP) $< |grep -v "^#" > $@
|
||||||
|
|
||||||
|
FSEX-alt.ttx: FSEX.ttx
|
||||||
|
$(CPP) -DALT_LESSEQUAL $< |grep -v "^#" > $@
|
||||||
|
|
154
README.md
154
README.md
|
@ -1,64 +1,172 @@
|
||||||
# Fixedsys Excelsior font with programming ligatures
|
# Fixedsys Excelsior font with programming ligatures
|
||||||
|
|
||||||
## Original copyright
|
## Distribution terms
|
||||||
Created by Darien Valentine
|
|
||||||
|
|
||||||
[Font website](http://www.fixedsysexcelsior.com)
|
The font was originally authored by Darien Valentine [@bathos](https://github.com/bathos) and provided via a now-defunct site at [fixedsysexcelsior.com](http://www.fixedsysexcelsior.com). This derivative's source code repository and issue tracker can be found at [github.com/kika/fixedsys](https://github.com/kika/fixedsys/).
|
||||||
|
|
||||||
|
The creator(s) of this content have released it to the public domain. For jurisdictions where this is not permitted, it is released under the terms of the Creative Commons Zero Dedication.
|
||||||
|
|
||||||
## It looks like this
|
## It looks like this
|
||||||
<img src="./images/sample.png" />
|
<img src="./images/sample.png" />
|
||||||
|
|
||||||
## Where to get the result without compiling
|
## Where to get the result without compiling
|
||||||
The compiled TTF binary font is on the Releases page.
|
The compiled TTF binary font is on the Releases page.
|
||||||
|
There are two versions provided:
|
||||||
|
1. Default has =< and >= ligated into "less or equal" and "greater or equal"
|
||||||
|
1. Alt version enables <= (replacing reverse fat arrow) and >= instead (closes #3)
|
||||||
|
|
||||||
|
### What is the ALT version in the releases about?
|
||||||
|
|
||||||
|
The fonts declare a set of ligatures that replace certain groups of adjacent characters by a combined glyph. The ALT variant has some of the ligature declarations swapped to facilitate code programming, where `<=` is almost always meant to be a less-or-equal operator, and also works for the general case too, based on the presumption that left fat arrows are seldomly used even in scientific texts.
|
||||||
|
|
||||||
|
| Input | Normal variant | ALT variant |
|
||||||
|
|------- | ---------------- | ---------------- |
|
||||||
|
| `<=` | left fat arrow | less-or-equal |
|
||||||
|
| `<==` | left fat arrow | left fat arrow |
|
||||||
|
| `=>` | right fat arrow | right fat arrow |
|
||||||
|
| `=<` | less-or-equal | (no ligature) |
|
||||||
|
| `>=` | greater-or-equal | greater-or-equal |
|
||||||
|
| `>==` | (no ligature) | (no ligature) |
|
||||||
|
|
||||||
## Rationale
|
## Rationale
|
||||||
I was always jealous for folks using [Fira Code](https://github.com/tonsky/FiraCode),
|
I (Kirill Pertsev) was always jealous for folks using [Fira Code](https://github.com/tonsky/FiraCode),
|
||||||
[Hasklig](https://github.com/i-tu/Hasklig) or [Monoid](https://github.com/larsenwork/monoid)
|
[Hasklig](https://github.com/i-tu/Hasklig) or [Monoid](https://github.com/larsenwork/monoid)
|
||||||
fonts, but my problem is that I have a hard time reading (not even mentioning writing)
|
fonts, but my problem is that I have a hard time reading (not even mentioning writing)
|
||||||
a computer program in anything but 8x16 font. I probably spent too much time with older
|
a computer program in anything but an 8x16 font. I probably spent too much time with older
|
||||||
computers. So after fighting and losing an uphill battle with Glyph2, Fontlab and Fontforge
|
computers. So after fighting and losing an uphill battle with Glyph2, Fontlab and Fontforge
|
||||||
I discovered [TTX](https://github.com/behdad/fonttools) and was able to finally stop being jealous.
|
I discovered [TTX](https://github.com/behdad/fonttools) and was able to finally stop being jealous.
|
||||||
|
|
||||||
This current release has almost everything I use regularly. Feel free to request in the issues. PRs are of course
|
This current release has almost everything I use regularly. Feel free to request in the issues. PRs are of course
|
||||||
more than welcome. I hope I'm not the only crazy guy on the internet using 8x16
|
more than welcome. I hope I'm not the only crazy guy on the internet using 8x16
|
||||||
font for consoles and text editing.
|
font for consoles and text editing.
|
||||||
|
|
||||||
## History
|
## History
|
||||||
This font is a simulated 8x16 bitmap font from old Windows and DOS. It was
|
This font is a simulated 8x16 bitmap font from old Windows and DOS. It was
|
||||||
truly monospaced and really bitmapped and initially contained only Western ASCII
|
truly monospaced and really bitmapped and initially contained only
|
||||||
charset.
|
windows-1250, windows-1251, a subset of windows-1252, windows-1253
|
||||||
|
and windows-1254.
|
||||||
Darien simulated the bitmap with TrueType outlines by building the font from
|
Darien simulated the bitmap with TrueType outlines by building the font from
|
||||||
10x10 squares ("pixels") and then joining the squares together. As such, this font
|
10x10 squares ("pixels") and then joining the squares together. As such, this font
|
||||||
only works as intended in only one size and usually with antialiasing switched
|
only works as intended in only one size and usually with antialiasing switched
|
||||||
off. The size is 16px or 12pt.
|
off. The size is 16px, or 12pt@96dpi.
|
||||||
|
|
||||||
He also added a lot of foreign characters and made the font Unicode.
|
He also added a lot of foreign characters and made the font Unicode.
|
||||||
|
|
||||||
## Tech trivia
|
## Tech trivia
|
||||||
The font is distributed in binary TTF format and I decompiled it with
|
The font is distributed in binary TTF format and I decompiled it with
|
||||||
[TTX](https://github.com/behdad/fonttools), added a few symbols inspired by
|
[TTX](https://github.com/behdad/fonttools), added a few symbols inspired by
|
||||||
[Fira Code](https://github.com/tonsky/FiraCode) and created necessary ligatures.
|
[Fira Code](https://github.com/tonsky/FiraCode) and created necessary ligatures.
|
||||||
|
|
||||||
To design the symbols I used quad lined paper, pencil and rubber eraser. Like
|
To design the symbols I used quad lined paper, pencil and rubber eraser. Like
|
||||||
in good old days, you know.
|
in good old days, you know.
|
||||||
<img src="./images/IMG_3506.jpg" />
|
<img src="./images/IMG_3506.jpg" />
|
||||||
|
|
||||||
The supported programming ligatures are listed in the `ligatures.txt` file.
|
The supported programming ligatures are listed in the `ligatures.txt` file.
|
||||||
|
|
||||||
To create a TTF file from TTX XML just run `ttx -f FSEX.ttx`
|
To create a TTF file from TTX XML, just run `ttx -f FSEX.ttx`
|
||||||
(`-f` means overwrite) or use OS X Makefile to also copy to the user Fonts
|
(`-f` means overwrite) or use the OS X Makefile to also copy it to the user Fonts
|
||||||
folder and update font cache.
|
folder and update the font cache.
|
||||||
|
|
||||||
|
## Supported software (incomplete list, send updates please)
|
||||||
|
|
||||||
I only tested in MacVim so far (this is the only editor I use). Comments and bug
|
I only tested in MacVim so far (this is the only editor I use). Comments and bug
|
||||||
reports welcome. MacVim should be quite recent for ligatures to work.
|
reports welcome. MacVim should be quite recent for ligatures to work.
|
||||||
|
**Note**: Versions of MacVim above 8.1-146 seem to have a regression where ligatures are not displayed correctly. Use `brew pin` to maintain your MacVim version below this until this is fixed.
|
||||||
|
[Tracking issue and workaround](https://github.com/macvim-dev/macvim/issues/841)
|
||||||
|
|
||||||
Add the following to your `.vimrc`:
|
Add the following to your `.vimrc`:
|
||||||
|
|
||||||
```
|
```
|
||||||
set guifont=Fixedsys\ Excelsior:h16
|
set guifont=Fixedsys\ Excelsior:h16
|
||||||
set noanti
|
set noanti
|
||||||
set macligatures
|
set macligatures
|
||||||
```
|
```
|
||||||
|
Courtesy of [@ForNeVeR](https://github.com/ForNeVeR):
|
||||||
|
|
||||||
|
- Windows + IDEA (Oracle JDK): renders ligatures, but have problems rendering latin `A` letter (it occupies no space in text and gets composed with a next character). There's a warning in IDEA interface telling about incompatibilities of Oracle JDK and fonts with ligatures.
|
||||||
|
- Windows + IDEA (JetBrains JDK): no problems noticed.
|
||||||
|
- Windows + VS Code:
|
||||||
|
```json
|
||||||
|
"editor.fontFamily": "Fixedsys Excelsior",
|
||||||
|
"editor.fontSize": 16,
|
||||||
|
"editor.fontLigatures": true
|
||||||
|
```
|
||||||
|
or, for newer versions (courtesy of [@Kaffiend](https://github.com/Kaffiend))
|
||||||
|
|
||||||
|
```json
|
||||||
|
"editor.fontFamily": "'Fixedsys Excelsior 3.01'",
|
||||||
|
"editor.fontSize": 15,
|
||||||
|
"editor.fontLigatures": true
|
||||||
|
```
|
||||||
|
**(The following is only for VSCode on MacOS)** For many people this may look ugly because Fixedsys is not designed to be used with antialiasing. Then you may add the following option
|
||||||
|
|
||||||
|
```json
|
||||||
|
"workbench.fontAliasing": "none"
|
||||||
|
```
|
||||||
|
|
||||||
|
Which will make code editor look nice, but everything else in the VSCode UI - ugly. The solution to that is to modify the CSS for the VSCode itself.
|
||||||
|
[Here is the script that I keep more or less updated when VSCode changes the CSS](https://gist.github.com/kika/2b5a3ccf065a251a6a8cbcdca7d823cc)
|
||||||
|
|
||||||
|
- Windows + Visual Studio 2015: works mostly okay, but `->` ligature doesn't work. That's a [known problem of WPF text renderer](https://github.com/tonsky/FiraCode/issues/259#issuecomment-243422144).
|
||||||
|
- Windows + ConEmu: no ligatures at all. Powerline stuff works okay though, so font is usable even without ligatures. I'd recommend to set font cell width manually to 8 (otherwise it'll have problems determining proper places for line wrapping and rendering Far Manager UI): **Settings** → **Main** → **Main console font** group → select **Cell: 8** from the selector.
|
||||||
|
|
||||||
|
### Emacs
|
||||||
|
Courtesy of [@adrianparvino](https://github.com/adrianparvino)
|
||||||
|
|
||||||
|
Requires you to move the U+10001 PUA block to the first PUA block
|
||||||
|
|
||||||
|
In this example, U+10001 was moved to U+efb0.
|
||||||
|
|
||||||
|
Based on https://github.com/tonsky/FiraCode/wiki/Setting-up-Emacs
|
||||||
|
```
|
||||||
|
(set-fontset-font t '(#Xefb0 . #Xefc5) "Fixedsys Excelsior")
|
||||||
|
(defconst fixedsys-excelsior-font-lock-keywords-alist
|
||||||
|
(mapcar (lambda (regex-char-pair)
|
||||||
|
`(,(car regex-char-pair)
|
||||||
|
(0 (prog1 ()
|
||||||
|
(compose-region (match-beginning 1)
|
||||||
|
(match-end 1)
|
||||||
|
;; The first argument to concat is a string containing a literal tab
|
||||||
|
,(concat " " (list (decode-char 'ucs (cadr regex-char-pair)))))))))
|
||||||
|
'(("\\(>>=\\)" #Xefb0)
|
||||||
|
("\\(=<<\\)" #Xefb1)
|
||||||
|
("\\(<\\*>\\)" #Xefb2)
|
||||||
|
("\\(<\\$>\\)" #Xefb3)
|
||||||
|
("\\(::\\)" #Xefb4)
|
||||||
|
("\\(:=\\)" #Xefb5)
|
||||||
|
("\\(<<<\\)" #Xefb6)
|
||||||
|
("\\(>>>\\)" #Xefb7)
|
||||||
|
("\\(<>\\)" #Xefb8)
|
||||||
|
("\\(/=\\)" #Xefb9)
|
||||||
|
("\\({-\\)" #Xefba)
|
||||||
|
("\\(-}\\)" #Xefbb)
|
||||||
|
("\\(<|\\)" #Xefbc)
|
||||||
|
("\\(|>\\)" #Xefbd)
|
||||||
|
("\\(~>\\)" #Xefbe)
|
||||||
|
("\\(<~\\)" #Xefbf)
|
||||||
|
("\\(<~>\\)" #Xefc0)
|
||||||
|
("\\(<^>\\)" #Xefc1)
|
||||||
|
("\\(/\\\\\\)" #Xefc2)
|
||||||
|
("\\(<|>\\)" #Xefc3)
|
||||||
|
("\\(>=>\\)" #Xefc4)
|
||||||
|
("\\(<=<\\)" #Xefc5))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun add-fixedsys-excelsior-symbol-keywords ()
|
||||||
|
(font-lock-add-keywords nil fixedsys-excelsior-font-lock-keywords-alist))
|
||||||
|
|
||||||
|
(add-hook 'prog-mode-hook
|
||||||
|
#'add-fixedsys-excelsior-symbol-keywords)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Sublime Text 3 (build 3146+)
|
||||||
|
Should be defined in the user settings as so:
|
||||||
|
```
|
||||||
|
"font_face": "Fixedsys Excelsior",
|
||||||
|
"font_size": 16,
|
||||||
|
"font_options": ["gray_antialias"]
|
||||||
|
```
|
||||||
|
|
||||||
## ToDo
|
## ToDo
|
||||||
<* *> <$ $>
|
<* *> <$ $>
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 18 KiB |
|
@ -27,4 +27,11 @@ a<~b
|
||||||
a<~>b
|
a<~>b
|
||||||
b<^>b
|
b<^>b
|
||||||
a/\b
|
a/\b
|
||||||
|
a<=<b
|
||||||
|
a>=>b
|
||||||
|
a<|>b
|
||||||
|
a-->b
|
||||||
|
a>=b
|
||||||
|
a=<b
|
||||||
|
a<==b
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue