Updated some fonts and added python script to create plist files.
This commit is contained in:
@@ -231,9 +231,9 @@ required for an `.otf` font to work with `SwiftMath`. If you generate
|
|||||||
(and test) any other fonts please contribute them back to this project for
|
(and test) any other fonts please contribute them back to this project for
|
||||||
others to benefit.
|
others to benefit.
|
||||||
|
|
||||||
Note: The `KpMath-Light` and `KpMath-Sans` fonts current do not correctly
|
Note: The `KpMath-Light` and `KpMath-Sans` fonts currently incorrectly
|
||||||
render very large radicals correctly. It appears that the font files do
|
render very large radicals. It appears that the font files do
|
||||||
not correctly define the offsets required to typeset these glyphs. If
|
not properly define the offsets required to typeset these glyphs. If
|
||||||
anyone can fix this, it would be greatly appreciated.
|
anyone can fix this, it would be greatly appreciated.
|
||||||
|
|
||||||
##### Text Color
|
##### Text Color
|
||||||
@@ -246,7 +246,7 @@ label.textColor = .red
|
|||||||
|
|
||||||
It is also possible to set different colors for different parts of the
|
It is also possible to set different colors for different parts of the
|
||||||
equation. Just access the `displayList` field and set the `textColor`
|
equation. Just access the `displayList` field and set the `textColor`
|
||||||
on the underlying displays that you want to change the color of.
|
of the underlying displays of which you want to change the color.
|
||||||
|
|
||||||
##### Custom Commands
|
##### Custom Commands
|
||||||
You can define your own commands that are not already predefined. This is
|
You can define your own commands that are not already predefined. This is
|
||||||
|
|||||||
Binary file not shown.
@@ -2506,8 +2506,22 @@
|
|||||||
<integer>276</integer>
|
<integer>276</integer>
|
||||||
<key>ocirc</key>
|
<key>ocirc</key>
|
||||||
<integer>-220</integer>
|
<integer>-220</integer>
|
||||||
|
<key>overleftarrow</key>
|
||||||
|
<integer>-268</integer>
|
||||||
|
<key>overleftharpoon</key>
|
||||||
|
<integer>-268</integer>
|
||||||
|
<key>overleftrightarrow</key>
|
||||||
|
<integer>-335</integer>
|
||||||
|
<key>overrightarc</key>
|
||||||
|
<integer>-275</integer>
|
||||||
|
<key>overrightarrow</key>
|
||||||
|
<integer>-268</integer>
|
||||||
|
<key>overrightharpoon</key>
|
||||||
|
<integer>-268</integer>
|
||||||
<key>widebreve</key>
|
<key>widebreve</key>
|
||||||
<integer>-220</integer>
|
<integer>-220</integer>
|
||||||
|
<key>widebreve.h0</key>
|
||||||
|
<integer>-120</integer>
|
||||||
<key>widecheck</key>
|
<key>widecheck</key>
|
||||||
<integer>-220</integer>
|
<integer>-220</integer>
|
||||||
<key>widecheck.h0</key>
|
<key>widecheck.h0</key>
|
||||||
@@ -2534,7 +2548,7 @@
|
|||||||
<key>DisplayOperatorMinHeight</key>
|
<key>DisplayOperatorMinHeight</key>
|
||||||
<integer>1500</integer>
|
<integer>1500</integer>
|
||||||
<key>FlattenedAccentBaseHeight</key>
|
<key>FlattenedAccentBaseHeight</key>
|
||||||
<integer>670</integer>
|
<integer>650</integer>
|
||||||
<key>FractionDenomDisplayStyleGapMin</key>
|
<key>FractionDenomDisplayStyleGapMin</key>
|
||||||
<integer>150</integer>
|
<integer>150</integer>
|
||||||
<key>FractionDenominatorDisplayStyleShiftDown</key>
|
<key>FractionDenominatorDisplayStyleShiftDown</key>
|
||||||
@@ -2568,15 +2582,15 @@
|
|||||||
<key>OverbarVerticalGap</key>
|
<key>OverbarVerticalGap</key>
|
||||||
<integer>150</integer>
|
<integer>150</integer>
|
||||||
<key>RadicalDegreeBottomRaisePercent</key>
|
<key>RadicalDegreeBottomRaisePercent</key>
|
||||||
<integer>55</integer>
|
<integer>60</integer>
|
||||||
<key>RadicalDisplayStyleVerticalGap</key>
|
<key>RadicalDisplayStyleVerticalGap</key>
|
||||||
<integer>170</integer>
|
<integer>170</integer>
|
||||||
<key>RadicalExtraAscender</key>
|
<key>RadicalExtraAscender</key>
|
||||||
<integer>50</integer>
|
<integer>50</integer>
|
||||||
<key>RadicalKernAfterDegree</key>
|
<key>RadicalKernAfterDegree</key>
|
||||||
<integer>-560</integer>
|
<integer>-600</integer>
|
||||||
<key>RadicalKernBeforeDegree</key>
|
<key>RadicalKernBeforeDegree</key>
|
||||||
<integer>280</integer>
|
<integer>300</integer>
|
||||||
<key>RadicalRuleThickness</key>
|
<key>RadicalRuleThickness</key>
|
||||||
<integer>50</integer>
|
<integer>50</integer>
|
||||||
<key>RadicalVerticalGap</key>
|
<key>RadicalVerticalGap</key>
|
||||||
@@ -2642,8 +2656,73 @@
|
|||||||
</dict>
|
</dict>
|
||||||
<key>h_variants</key>
|
<key>h_variants</key>
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>Leftarrow</key>
|
||||||
|
<array>
|
||||||
|
<string>Leftarrow</string>
|
||||||
|
<string>Longleftarrow</string>
|
||||||
|
</array>
|
||||||
|
<key>Leftrightarrow</key>
|
||||||
|
<array>
|
||||||
|
<string>Leftrightarrow</string>
|
||||||
|
<string>Longleftrightarrow</string>
|
||||||
|
</array>
|
||||||
|
<key>Mapsfrom</key>
|
||||||
|
<array>
|
||||||
|
<string>Mapsfrom</string>
|
||||||
|
<string>Longmapsfrom</string>
|
||||||
|
</array>
|
||||||
|
<key>Mapsto</key>
|
||||||
|
<array>
|
||||||
|
<string>Mapsto</string>
|
||||||
|
<string>Longmapsto</string>
|
||||||
|
</array>
|
||||||
|
<key>Rightarrow</key>
|
||||||
|
<array>
|
||||||
|
<string>Rightarrow</string>
|
||||||
|
<string>Longrightarrow</string>
|
||||||
|
</array>
|
||||||
|
<key>equal</key>
|
||||||
|
<array/>
|
||||||
|
<key>equiv</key>
|
||||||
|
<array/>
|
||||||
|
<key>hookleftarrow</key>
|
||||||
|
<array/>
|
||||||
|
<key>hookrightarrow</key>
|
||||||
|
<array/>
|
||||||
|
<key>leftarrow</key>
|
||||||
|
<array>
|
||||||
|
<string>leftarrow</string>
|
||||||
|
<string>longleftarrow</string>
|
||||||
|
</array>
|
||||||
|
<key>leftarrowtail</key>
|
||||||
|
<array/>
|
||||||
|
<key>leftharpoondown</key>
|
||||||
|
<array/>
|
||||||
|
<key>leftharpoonup</key>
|
||||||
|
<array/>
|
||||||
|
<key>leftrightarrow</key>
|
||||||
|
<array>
|
||||||
|
<string>leftrightarrow</string>
|
||||||
|
<string>longleftrightarrow</string>
|
||||||
|
</array>
|
||||||
|
<key>leftrightarrows</key>
|
||||||
|
<array/>
|
||||||
|
<key>leftrightharpoons</key>
|
||||||
|
<array/>
|
||||||
|
<key>mapsfrom</key>
|
||||||
|
<array>
|
||||||
|
<string>mapsfrom</string>
|
||||||
|
<string>longmapsfrom</string>
|
||||||
|
</array>
|
||||||
|
<key>mapsto</key>
|
||||||
|
<array>
|
||||||
|
<string>mapsto</string>
|
||||||
|
<string>longmapsto</string>
|
||||||
|
</array>
|
||||||
<key>mathunderbar</key>
|
<key>mathunderbar</key>
|
||||||
<array/>
|
<array/>
|
||||||
|
<key>minus</key>
|
||||||
|
<array/>
|
||||||
<key>overbrace</key>
|
<key>overbrace</key>
|
||||||
<array>
|
<array>
|
||||||
<string>overbrace</string>
|
<string>overbrace</string>
|
||||||
@@ -2663,6 +2742,10 @@
|
|||||||
<array/>
|
<array/>
|
||||||
<key>overleftharpoon</key>
|
<key>overleftharpoon</key>
|
||||||
<array/>
|
<array/>
|
||||||
|
<key>overleftrightarrow</key>
|
||||||
|
<array>
|
||||||
|
<string>overleftrightarrow.h1</string>
|
||||||
|
</array>
|
||||||
<key>overparen</key>
|
<key>overparen</key>
|
||||||
<array>
|
<array>
|
||||||
<string>overparen</string>
|
<string>overparen</string>
|
||||||
@@ -2686,6 +2769,25 @@
|
|||||||
<array/>
|
<array/>
|
||||||
<key>overrightharpoon</key>
|
<key>overrightharpoon</key>
|
||||||
<array/>
|
<array/>
|
||||||
|
<key>rightarrow</key>
|
||||||
|
<array>
|
||||||
|
<string>rightarrow</string>
|
||||||
|
<string>longrightarrow</string>
|
||||||
|
</array>
|
||||||
|
<key>rightarrowtail</key>
|
||||||
|
<array/>
|
||||||
|
<key>rightharpoondown</key>
|
||||||
|
<array/>
|
||||||
|
<key>rightharpoonup</key>
|
||||||
|
<array/>
|
||||||
|
<key>rightleftarrows</key>
|
||||||
|
<array/>
|
||||||
|
<key>rightleftharpoons</key>
|
||||||
|
<array/>
|
||||||
|
<key>twoheadleftarrow</key>
|
||||||
|
<array/>
|
||||||
|
<key>twoheadrightarrow</key>
|
||||||
|
<array/>
|
||||||
<key>underbrace</key>
|
<key>underbrace</key>
|
||||||
<array>
|
<array>
|
||||||
<string>underbrace</string>
|
<string>underbrace</string>
|
||||||
@@ -2737,6 +2839,7 @@
|
|||||||
<key>widebreve</key>
|
<key>widebreve</key>
|
||||||
<array>
|
<array>
|
||||||
<string>widebreve</string>
|
<string>widebreve</string>
|
||||||
|
<string>widebreve.h0</string>
|
||||||
<string>widebreve.h1</string>
|
<string>widebreve.h1</string>
|
||||||
<string>widebreve.h2</string>
|
<string>widebreve.h2</string>
|
||||||
<string>widebreve.h3</string>
|
<string>widebreve.h3</string>
|
||||||
@@ -4909,27 +5012,27 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>1200</integer>
|
<integer>2700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>400</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>Vert.v2</string>
|
<string>Vert.v4</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>400</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>472</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>157</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>Vert.ex</string>
|
<string>Vert.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>157</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -4941,27 +5044,27 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>1200</integer>
|
<integer>2700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>400</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>Vvert.v2</string>
|
<string>Vvert.v4</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>400</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>472</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>157</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>Vvert.ex</string>
|
<string>Vvert.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>157</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5049,39 +5152,39 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lBrack.bt</string>
|
<string>lBrack.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>346</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>115</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lBrack.ex</string>
|
<string>lBrack.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>115</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lBrack.tp</string>
|
<string>lBrack.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5093,63 +5196,63 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>737</integer>
|
<integer>800</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lbrace.bt</string>
|
<string>lbrace.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>200</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>vbrace.ex</string>
|
<string>vbrace.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>777</integer>
|
<integer>1500</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>259</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lbracemid</string>
|
<string>lbracemid</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>259</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>200</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>vbrace.ex</string>
|
<string>vbrace.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>737</integer>
|
<integer>800</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lbrace.tp</string>
|
<string>lbrace.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5161,39 +5264,39 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lbrack.bt</string>
|
<string>lbrack.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lbrack.ex</string>
|
<string>lbrack.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lbrack.tp</string>
|
<string>lbrack.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5205,27 +5308,27 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>480</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lceil.ex</string>
|
<string>lceil.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>1531</integer>
|
<integer>2700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lceil.tp</string>
|
<string>lceil.v4</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5237,27 +5340,27 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>1531</integer>
|
<integer>2700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lfloor.bt</string>
|
<string>lfloor.v4</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>480</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lceil.ex</string>
|
<string>lceil.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5269,39 +5372,103 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>897</integer>
|
<integer>1700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lparen.bt</string>
|
<string>lparen.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lparen.ex</string>
|
<string>lparen.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>897</integer>
|
<integer>1700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>lparen.tp</string>
|
<string>lparen.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>mid</key>
|
||||||
|
<dict>
|
||||||
|
<key>italic</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>parts</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>advance</key>
|
||||||
|
<integer>925</integer>
|
||||||
|
<key>endConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
|
<key>extender</key>
|
||||||
|
<false/>
|
||||||
|
<key>glyph</key>
|
||||||
|
<string>mid</string>
|
||||||
|
<key>startConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>advance</key>
|
||||||
|
<integer>925</integer>
|
||||||
|
<key>endConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
|
<key>extender</key>
|
||||||
|
<true/>
|
||||||
|
<key>glyph</key>
|
||||||
|
<string>mid</string>
|
||||||
|
<key>startConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>parallel</key>
|
||||||
|
<dict>
|
||||||
|
<key>italic</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>parts</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>advance</key>
|
||||||
|
<integer>925</integer>
|
||||||
|
<key>endConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
|
<key>extender</key>
|
||||||
|
<false/>
|
||||||
|
<key>glyph</key>
|
||||||
|
<string>parallel</string>
|
||||||
|
<key>startConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>advance</key>
|
||||||
|
<integer>925</integer>
|
||||||
|
<key>endConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
|
<key>extender</key>
|
||||||
|
<true/>
|
||||||
|
<key>glyph</key>
|
||||||
|
<string>parallel</string>
|
||||||
|
<key>startConnector</key>
|
||||||
|
<integer>308</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5313,39 +5480,39 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rBrack.bt</string>
|
<string>rBrack.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rBrack.ex</string>
|
<string>rBrack.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rBrack.tp</string>
|
<string>rBrack.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5357,63 +5524,63 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>737</integer>
|
<integer>800</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rbrace.bt</string>
|
<string>rbrace.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>200</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>vbrace.ex</string>
|
<string>vbrace.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>777</integer>
|
<integer>1500</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>259</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rbracemid</string>
|
<string>rbracemid</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>259</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>200</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>vbrace.ex</string>
|
<string>vbrace.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>737</integer>
|
<integer>800</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rbrace.tp</string>
|
<string>rbrace.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>246</integer>
|
<integer>70</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5425,39 +5592,39 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rbrack.bt</string>
|
<string>rbrack.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rbrack.ex</string>
|
<string>rbrack.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>895</integer>
|
<integer>1550</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rbrack.tp</string>
|
<string>rbrack.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>298</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5469,27 +5636,27 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>480</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rceil.ex</string>
|
<string>rceil.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>1531</integer>
|
<integer>2700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rceil.tp</string>
|
<string>rceil.v4</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5501,27 +5668,27 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>1531</integer>
|
<integer>2700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rfloor.bt</string>
|
<string>rfloor.v4</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>510</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>480</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rceil.ex</string>
|
<string>rceil.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>160</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5533,39 +5700,39 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>897</integer>
|
<integer>1700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rparen.bt</string>
|
<string>rparen.bt</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>326</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rparen.ex</string>
|
<string>rparen.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>109</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>897</integer>
|
<integer>1700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>rparen.tp</string>
|
<string>rparen.tp</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>299</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5697,27 +5864,27 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>1200</integer>
|
<integer>2700</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>400</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>vert.v2</string>
|
<string>vert.v4</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>400</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>advance</key>
|
<key>advance</key>
|
||||||
<integer>472</integer>
|
<integer>400</integer>
|
||||||
<key>endConnector</key>
|
<key>endConnector</key>
|
||||||
<integer>157</integer>
|
<integer>133</integer>
|
||||||
<key>extender</key>
|
<key>extender</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>glyph</key>
|
<key>glyph</key>
|
||||||
<string>vert.ex</string>
|
<string>vert.ex</string>
|
||||||
<key>startConnector</key>
|
<key>startConnector</key>
|
||||||
<integer>157</integer>
|
<integer>133</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -5730,9 +5897,13 @@
|
|||||||
<string>Bbbsum.v1</string>
|
<string>Bbbsum.v1</string>
|
||||||
</array>
|
</array>
|
||||||
<key>Downarrow</key>
|
<key>Downarrow</key>
|
||||||
<array/>
|
<array>
|
||||||
|
<string>Downarrow</string>
|
||||||
|
</array>
|
||||||
<key>Uparrow</key>
|
<key>Uparrow</key>
|
||||||
<array/>
|
<array>
|
||||||
|
<string>Uparrow</string>
|
||||||
|
</array>
|
||||||
<key>Updownarrow</key>
|
<key>Updownarrow</key>
|
||||||
<array/>
|
<array/>
|
||||||
<key>Vert</key>
|
<key>Vert</key>
|
||||||
@@ -5740,12 +5911,16 @@
|
|||||||
<string>Vert</string>
|
<string>Vert</string>
|
||||||
<string>Vert.v1</string>
|
<string>Vert.v1</string>
|
||||||
<string>Vert.v2</string>
|
<string>Vert.v2</string>
|
||||||
|
<string>Vert.v3</string>
|
||||||
|
<string>Vert.v4</string>
|
||||||
</array>
|
</array>
|
||||||
<key>Vvert</key>
|
<key>Vvert</key>
|
||||||
<array>
|
<array>
|
||||||
<string>Vvert</string>
|
<string>Vvert</string>
|
||||||
<string>Vvert.v1</string>
|
<string>Vvert.v1</string>
|
||||||
<string>Vvert.v2</string>
|
<string>Vvert.v2</string>
|
||||||
|
<string>Vvert.v3</string>
|
||||||
|
<string>Vvert.v4</string>
|
||||||
</array>
|
</array>
|
||||||
<key>awint</key>
|
<key>awint</key>
|
||||||
<array>
|
<array>
|
||||||
@@ -5846,7 +6021,9 @@
|
|||||||
<string>coprodsans.v1</string>
|
<string>coprodsans.v1</string>
|
||||||
</array>
|
</array>
|
||||||
<key>downarrow</key>
|
<key>downarrow</key>
|
||||||
<array/>
|
<array>
|
||||||
|
<string>downarrow</string>
|
||||||
|
</array>
|
||||||
<key>fint</key>
|
<key>fint</key>
|
||||||
<array>
|
<array>
|
||||||
<string>fint</string>
|
<string>fint</string>
|
||||||
@@ -5991,6 +6168,10 @@
|
|||||||
<string>slash.v3</string>
|
<string>slash.v3</string>
|
||||||
<string>slash.v4</string>
|
<string>slash.v4</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>mid</key>
|
||||||
|
<array>
|
||||||
|
<string>mid</string>
|
||||||
|
</array>
|
||||||
<key>oiiint</key>
|
<key>oiiint</key>
|
||||||
<array>
|
<array>
|
||||||
<string>oiiint</string>
|
<string>oiiint</string>
|
||||||
@@ -6066,6 +6247,10 @@
|
|||||||
<string>ointcw</string>
|
<string>ointcw</string>
|
||||||
<string>ointcw.v1</string>
|
<string>ointcw.v1</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>parallel</key>
|
||||||
|
<array>
|
||||||
|
<string>parallel</string>
|
||||||
|
</array>
|
||||||
<key>prod</key>
|
<key>prod</key>
|
||||||
<array>
|
<array>
|
||||||
<string>prod</string>
|
<string>prod</string>
|
||||||
@@ -6201,7 +6386,9 @@
|
|||||||
<string>sumsans.v1</string>
|
<string>sumsans.v1</string>
|
||||||
</array>
|
</array>
|
||||||
<key>uparrow</key>
|
<key>uparrow</key>
|
||||||
<array/>
|
<array>
|
||||||
|
<string>uparrow</string>
|
||||||
|
</array>
|
||||||
<key>updownarrow</key>
|
<key>updownarrow</key>
|
||||||
<array/>
|
<array/>
|
||||||
<key>varidotsint</key>
|
<key>varidotsint</key>
|
||||||
@@ -6304,6 +6491,8 @@
|
|||||||
<string>vert</string>
|
<string>vert</string>
|
||||||
<string>vert.v1</string>
|
<string>vert.v1</string>
|
||||||
<string>vert.v2</string>
|
<string>vert.v2</string>
|
||||||
|
<string>vert.v3</string>
|
||||||
|
<string>vert.v4</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
<key>version</key>
|
<key>version</key>
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
205
Sources/SwiftMath/mathFonts.bundle/math_table_to_plist.py
Normal file
205
Sources/SwiftMath/mathFonts.bundle/math_table_to_plist.py
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
#!/usr/local/bin/python3
|
||||||
|
import plistlib
|
||||||
|
import sys
|
||||||
|
from fontTools.ttLib import TTFont
|
||||||
|
|
||||||
|
def usage(code):
|
||||||
|
print('Usage math_table_to_plist.py <fontfile> <plistfile>')
|
||||||
|
sys.exit(code)
|
||||||
|
|
||||||
|
def process_font(font_file, out_file):
|
||||||
|
font = TTFont(font_file)
|
||||||
|
math_table = font['MATH'].table
|
||||||
|
constants = get_constants(math_table)
|
||||||
|
italic_c = get_italic_correction(math_table)
|
||||||
|
v_variants = get_v_variants(math_table)
|
||||||
|
h_variants = get_h_variants(math_table)
|
||||||
|
assembly = get_v_assembly(math_table)
|
||||||
|
accents = get_accent_attachments(math_table)
|
||||||
|
pl = {
|
||||||
|
"version" : "1.3",
|
||||||
|
"constants": constants,
|
||||||
|
"v_variants" : v_variants,
|
||||||
|
"h_variants" : h_variants,
|
||||||
|
"italic" : italic_c,
|
||||||
|
"accents" : accents,
|
||||||
|
"v_assembly" : assembly }
|
||||||
|
ofile = open(out_file, 'w+b')
|
||||||
|
plistlib.dump(pl, ofile)
|
||||||
|
ofile.close()
|
||||||
|
|
||||||
|
def get_constants(math_table):
|
||||||
|
constants = math_table.MathConstants
|
||||||
|
if constants is None:
|
||||||
|
raise 'Cannot find MathConstants in MATH table'
|
||||||
|
|
||||||
|
int_consts = [ 'ScriptPercentScaleDown',
|
||||||
|
'ScriptScriptPercentScaleDown',
|
||||||
|
'DelimitedSubFormulaMinHeight',
|
||||||
|
'DisplayOperatorMinHeight',
|
||||||
|
'RadicalDegreeBottomRaisePercent']
|
||||||
|
consts = { c : getattr(constants, c) for c in int_consts }
|
||||||
|
|
||||||
|
record_consts = [ 'MathLeading',
|
||||||
|
'AxisHeight',
|
||||||
|
'AccentBaseHeight',
|
||||||
|
'FlattenedAccentBaseHeight',
|
||||||
|
'SubscriptShiftDown',
|
||||||
|
'SubscriptTopMax',
|
||||||
|
'SubscriptBaselineDropMin',
|
||||||
|
'SuperscriptShiftUp',
|
||||||
|
'SuperscriptShiftUpCramped',
|
||||||
|
'SuperscriptBottomMin',
|
||||||
|
'SuperscriptBaselineDropMax',
|
||||||
|
'SubSuperscriptGapMin',
|
||||||
|
'SuperscriptBottomMaxWithSubscript',
|
||||||
|
'SpaceAfterScript',
|
||||||
|
'UpperLimitGapMin',
|
||||||
|
'UpperLimitBaselineRiseMin',
|
||||||
|
'LowerLimitGapMin',
|
||||||
|
'LowerLimitBaselineDropMin',
|
||||||
|
'StackTopShiftUp',
|
||||||
|
'StackTopDisplayStyleShiftUp',
|
||||||
|
'StackBottomShiftDown',
|
||||||
|
'StackBottomDisplayStyleShiftDown',
|
||||||
|
'StackGapMin',
|
||||||
|
'StackDisplayStyleGapMin',
|
||||||
|
'StretchStackTopShiftUp',
|
||||||
|
'StretchStackBottomShiftDown',
|
||||||
|
'StretchStackGapAboveMin',
|
||||||
|
'StretchStackGapBelowMin',
|
||||||
|
'FractionNumeratorShiftUp',
|
||||||
|
'FractionNumeratorDisplayStyleShiftUp',
|
||||||
|
'FractionDenominatorShiftDown',
|
||||||
|
'FractionDenominatorDisplayStyleShiftDown',
|
||||||
|
'FractionNumeratorGapMin',
|
||||||
|
'FractionNumDisplayStyleGapMin',
|
||||||
|
'FractionRuleThickness',
|
||||||
|
'FractionDenominatorGapMin',
|
||||||
|
'FractionDenomDisplayStyleGapMin',
|
||||||
|
'SkewedFractionHorizontalGap',
|
||||||
|
'SkewedFractionVerticalGap',
|
||||||
|
'OverbarVerticalGap',
|
||||||
|
'OverbarRuleThickness',
|
||||||
|
'OverbarExtraAscender',
|
||||||
|
'UnderbarVerticalGap',
|
||||||
|
'UnderbarRuleThickness',
|
||||||
|
'UnderbarExtraDescender',
|
||||||
|
'RadicalVerticalGap',
|
||||||
|
'RadicalDisplayStyleVerticalGap',
|
||||||
|
'RadicalRuleThickness',
|
||||||
|
'RadicalExtraAscender',
|
||||||
|
'RadicalKernBeforeDegree',
|
||||||
|
'RadicalKernAfterDegree',
|
||||||
|
]
|
||||||
|
consts_2 = { c : getattr(constants, c).Value for c in record_consts }
|
||||||
|
consts.update(consts_2)
|
||||||
|
|
||||||
|
variants = math_table.MathVariants
|
||||||
|
consts['MinConnectorOverlap'] = variants.MinConnectorOverlap
|
||||||
|
return consts
|
||||||
|
|
||||||
|
def get_italic_correction(math_table):
|
||||||
|
glyph_info = math_table.MathGlyphInfo
|
||||||
|
if glyph_info is None:
|
||||||
|
raise "Cannot find MathGlyphInfo in MATH table."
|
||||||
|
italic = glyph_info.MathItalicsCorrectionInfo
|
||||||
|
if italic is None:
|
||||||
|
raise "Cannot find Italic Correction in GlyphInfo"
|
||||||
|
|
||||||
|
glyphs = italic.Coverage.glyphs
|
||||||
|
count = italic.ItalicsCorrectionCount
|
||||||
|
records = italic.ItalicsCorrection
|
||||||
|
italic_dict = {}
|
||||||
|
for i in range(count):
|
||||||
|
name = glyphs[i]
|
||||||
|
record = records[i]
|
||||||
|
if record.DeviceTable is not None:
|
||||||
|
raise "Don't know how to process device table for italic correction."
|
||||||
|
italic_dict[name] = record.Value
|
||||||
|
return italic_dict
|
||||||
|
|
||||||
|
def get_accent_attachments(math_table):
|
||||||
|
glyph_info = math_table.MathGlyphInfo
|
||||||
|
if glyph_info is None:
|
||||||
|
raise "Cannot find MathGlyphInfo in MATH table."
|
||||||
|
attach = glyph_info.MathTopAccentAttachment
|
||||||
|
if attach is None:
|
||||||
|
raise "Cannot find Top Accent Attachment in GlyphInfo"
|
||||||
|
|
||||||
|
glyphs = attach.TopAccentCoverage.glyphs
|
||||||
|
count = attach.TopAccentAttachmentCount
|
||||||
|
records = attach.TopAccentAttachment
|
||||||
|
attach_dict = {}
|
||||||
|
for i in range(count):
|
||||||
|
name = glyphs[i]
|
||||||
|
record = records[i]
|
||||||
|
if record.DeviceTable is not None:
|
||||||
|
raise "Don't know how to process device table for accent attachment."
|
||||||
|
attach_dict[name] = record.Value
|
||||||
|
return attach_dict
|
||||||
|
|
||||||
|
def get_v_variants(math_table):
|
||||||
|
variants = math_table.MathVariants
|
||||||
|
vglyphs = variants.VertGlyphCoverage.glyphs
|
||||||
|
vconstruction = variants.VertGlyphConstruction
|
||||||
|
count = variants.VertGlyphCount
|
||||||
|
variant_dict = {}
|
||||||
|
for i in range(count):
|
||||||
|
name = vglyphs[i]
|
||||||
|
record = vconstruction[i]
|
||||||
|
glyph_variants = [x.VariantGlyph for x in
|
||||||
|
record.MathGlyphVariantRecord]
|
||||||
|
variant_dict[name] = glyph_variants
|
||||||
|
return variant_dict
|
||||||
|
|
||||||
|
def get_h_variants(math_table):
|
||||||
|
variants = math_table.MathVariants
|
||||||
|
hglyphs = variants.HorizGlyphCoverage.glyphs
|
||||||
|
hconstruction = variants.HorizGlyphConstruction
|
||||||
|
count = variants.HorizGlyphCount
|
||||||
|
variant_dict = {}
|
||||||
|
for i in range(count):
|
||||||
|
name = hglyphs[i]
|
||||||
|
record = hconstruction[i]
|
||||||
|
glyph_variants = [x.VariantGlyph for x in
|
||||||
|
record.MathGlyphVariantRecord]
|
||||||
|
variant_dict[name] = glyph_variants
|
||||||
|
return variant_dict
|
||||||
|
|
||||||
|
def get_v_assembly(math_table):
|
||||||
|
variants = math_table.MathVariants
|
||||||
|
vglyphs = variants.VertGlyphCoverage.glyphs
|
||||||
|
vconstruction = variants.VertGlyphConstruction
|
||||||
|
count = variants.VertGlyphCount
|
||||||
|
assembly_dict = {}
|
||||||
|
for i in range(count):
|
||||||
|
name = vglyphs[i]
|
||||||
|
record = vconstruction[i]
|
||||||
|
assembly = record.GlyphAssembly
|
||||||
|
if assembly is not None:
|
||||||
|
# There is an assembly for this glyph
|
||||||
|
italic = assembly.ItalicsCorrection.Value
|
||||||
|
parts = [part_dict(part) for part in assembly.PartRecords]
|
||||||
|
assembly_dict[name] = {
|
||||||
|
"italic" : assembly.ItalicsCorrection.Value,
|
||||||
|
"parts" : parts }
|
||||||
|
return assembly_dict
|
||||||
|
|
||||||
|
def part_dict(part):
|
||||||
|
return {
|
||||||
|
"glyph": part.glyph,
|
||||||
|
"startConnector" : part.StartConnectorLength,
|
||||||
|
"endConnector" : part.EndConnectorLength,
|
||||||
|
"advance" : part.FullAdvance,
|
||||||
|
"extender" : (part.PartFlags == 1) }
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if len(sys.argv) != 3:
|
||||||
|
usage(1)
|
||||||
|
font_file = sys.argv[1]
|
||||||
|
plist_file = sys.argv[2]
|
||||||
|
process_font(font_file, plist_file)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user