Added long right arrow --> (closes #4)

Added "less or equal" and "greater or equal" ligatures
Added support for conditional compilation using C preprocessor
  Default compilation enables =< and >= ligatures for the above
  Alt compilation enables <= (used to be fat arrow) and >= (closes #3)
This commit is contained in:
Kirill Pertsev 2016-11-21 18:57:17 -08:00
parent 805f6d44e9
commit 36b3334991
3 changed files with 192 additions and 4 deletions

173
FSEX.ttx
View File

@ -6023,6 +6023,9 @@
<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"/>
</GlyphOrder>
<head>
@ -12159,6 +12162,9 @@
<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"/>
</hmtx>
<VDMX>
@ -39536,6 +39542,66 @@
</assembly></instructions>
</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">
<contour>
<pt x="100" y="40" on="1"/>
@ -42194,6 +42260,67 @@
</assembly></instructions>
</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"/>
@ -48702,6 +48829,41 @@
</assembly></instructions>
</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">
<contour>
<pt x="40" y="60" on="1"/>
@ -247742,7 +247904,7 @@
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
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.
-->
</psNames>
@ -259451,6 +259613,7 @@
<Ligature components="hyphen" glyph="comment_start.hask"/>
</LigatureSet>
<LigatureSet glyph="hyphen">
<Ligature components="hyphen,greater" glyph="longrightarrow"/>
<Ligature components="greater" glyph="rightarrow"/>
<Ligature components="braceright" glyph="comment_end.hask"/>
</LigatureSet>
@ -259462,7 +259625,11 @@
<Ligature components="hyphen" glyph="leftarrow"/>
<Ligature components="equal,greater" glyph="uni27FA"/>
<Ligature components="equal,less" glyph="kleisli_back"/>
#ifdef ALT_LESSEQUAL
<Ligature components="equal" glyph="lessequal.alt"/>
#else
<Ligature components="equal" glyph="uni27F8"/>
#endif
<Ligature components="asterisk,greater" glyph="apply"/>
<Ligature components="dollar,greater" glyph="map"/>
<Ligature components="greater" glyph="append"/>
@ -259475,6 +259642,9 @@
<Ligature components="equal,equal" glyph="equalequalequal"/>
<Ligature components="equal" glyph="equalequal"/>
<Ligature components="less,less" glyph="leftshove"/>
#ifndef ALT_LESSEQUAL
<Ligature components="less" glyph="lessequal.alt"/>
#endif
</LigatureSet>
<LigatureSet glyph="plus">
<Ligature components="plus" glyph="plusplus"/>
@ -259498,6 +259668,7 @@
<Ligature components="equal,greater" glyph="kleisli_fwd"/>
<Ligature components="greater,equal" glyph="rightshove"/>
<Ligature components="greater,greater" glyph="fwd_compose"/>
<Ligature components="equal" glyph="greaterequal.alt"/>
</LigatureSet>
<LigatureSet glyph="asciitilde">
<Ligature components="greater" glyph="tilde_gt"/>

View File

@ -1,5 +1,20 @@
FSEX302.ttf: FSEX.ttx
ttx -f -o $@ $<
COMPILE=ttx -f --recalc-timestamp
CPP=cpp
all: FSEX302.ttf FSEX302-alt.ttf
FSEX302.ttf: FSEX-default.ttx
$(COMPILE) -o $@ $<
cp $@ ~/Library/Fonts
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 "^#" > $@

View File

@ -30,5 +30,7 @@ a/\b
a<=<b
a>=>b
a<|>b
a-->b
a>=b
a=<b