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="6017" name="alt"/>
<GlyphID id="6018" name="kleisli_fwd"/> <GlyphID id="6018" name="kleisli_fwd"/>
<GlyphID id="6019" name="kleisli_back"/> <GlyphID id="6019" name="kleisli_back"/>
<GlyphID id="6020" name="longrightarrow"/>
<GlyphID id="6021" name="lessequal.alt"/>
<GlyphID id="6022" name="greaterequal.alt"/>
</GlyphOrder> </GlyphOrder>
<head> <head>
@ -12159,6 +12162,9 @@
<mtx name="alt" width="240" lsb="50"/> <mtx name="alt" width="240" lsb="50"/>
<mtx name="kleisli_fwd" width="240" lsb="50"/> <mtx name="kleisli_fwd" width="240" lsb="50"/>
<mtx name="kleisli_back" 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> </hmtx>
<VDMX> <VDMX>
@ -39536,6 +39542,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"/>
@ -42194,6 +42260,67 @@
</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"> <TTGlyph name="alt" xMin="40" yMin="-20" xMax="200" yMax="90">
<contour> <contour>
<pt x="80" y="0" on="1"/> <pt x="80" y="0" on="1"/>
@ -48702,6 +48829,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"/>
@ -247742,7 +247904,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>
@ -259451,6 +259613,7 @@
<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>
@ -259462,7 +259625,11 @@
<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,less" glyph="kleisli_back"/>
#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"/>
@ -259475,6 +259642,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"/>
@ -259498,6 +259668,7 @@
<Ligature components="equal,greater" glyph="kleisli_fwd"/> <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"/>

View File

@ -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 "^#" > $@

View File

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