From 999c65abbebaa30f36beb4f9ac812542458574b2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 9 May 2011 21:10:33 +0000 Subject: new font fdsymbol (9may11) git-svn-id: svn://tug.org/texlive/trunk@22383 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt | 39 + Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt | 95 + Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf | Bin 0 -> 901373 bytes .../fonts/enc/dvips/fdsymbol/fdsymbol-a.enc | 53 + .../fonts/enc/dvips/fdsymbol/fdsymbol-b.enc | 54 + .../fonts/enc/dvips/fdsymbol/fdsymbol-c.enc | 53 + .../fonts/enc/dvips/fdsymbol/fdsymbol-d.enc | 53 + .../fonts/enc/dvips/fdsymbol/fdsymbol-e.enc | 53 + .../fonts/enc/dvips/fdsymbol/fdsymbol-f.enc | 53 + .../fonts/map/dvips/fdsymbol/fdsymbol.map | 24 + .../fonts/source/public/fdsymbol/FdSymbolA-Bold.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolA-Book.mf | 13 + .../source/public/fdsymbol/FdSymbolA-Medium.mf | 13 + .../source/public/fdsymbol/FdSymbolA-Regular.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolA.mf | 40 + .../fonts/source/public/fdsymbol/FdSymbolB-Bold.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolB-Book.mf | 13 + .../source/public/fdsymbol/FdSymbolB-Medium.mf | 13 + .../source/public/fdsymbol/FdSymbolB-Regular.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolB.mf | 24 + .../fonts/source/public/fdsymbol/FdSymbolC-Bold.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolC-Book.mf | 13 + .../source/public/fdsymbol/FdSymbolC-Medium.mf | 13 + .../source/public/fdsymbol/FdSymbolC-Regular.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolC.mf | 20 + .../fonts/source/public/fdsymbol/FdSymbolD-Bold.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolD-Book.mf | 13 + .../source/public/fdsymbol/FdSymbolD-Medium.mf | 13 + .../source/public/fdsymbol/FdSymbolD-Regular.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolD.mf | 20 + .../fonts/source/public/fdsymbol/FdSymbolE-Bold.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolE-Book.mf | 13 + .../source/public/fdsymbol/FdSymbolE-Medium.mf | 13 + .../source/public/fdsymbol/FdSymbolE-Regular.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolE.mf | 29 + .../fonts/source/public/fdsymbol/FdSymbolF-Bold.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolF-Book.mf | 13 + .../source/public/fdsymbol/FdSymbolF-Medium.mf | 13 + .../source/public/fdsymbol/FdSymbolF-Regular.mf | 13 + .../fonts/source/public/fdsymbol/FdSymbolF.mf | 16 + .../fonts/source/public/fdsymbol/fdaccents.mf | 89 + .../fonts/source/public/fdsymbol/fdarrows.mf | 728 +++++ .../fonts/source/public/fdsymbol/fdbase.mf | 884 ++++++ .../fonts/source/public/fdsymbol/fddelims.mf | 585 ++++ .../fonts/source/public/fdsymbol/fdgeometric.mf | 1837 +++++++++++ .../fonts/source/public/fdsymbol/fdoperators.mf | 480 +++ .../fonts/source/public/fdsymbol/fdrelations.mf | 1132 +++++++ .../fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm | Bin 0 -> 1196 bytes .../fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm | Bin 0 -> 1196 bytes .../fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm | Bin 0 -> 1196 bytes .../tfm/public/fdsymbol/FdSymbolA-Regular.tfm | Bin 0 -> 1196 bytes .../fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm | Bin 0 -> 1132 bytes .../fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm | Bin 0 -> 1132 bytes .../fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm | Bin 0 -> 1132 bytes .../tfm/public/fdsymbol/FdSymbolB-Regular.tfm | Bin 0 -> 1132 bytes .../fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm | Bin 0 -> 1228 bytes .../fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm | Bin 0 -> 1228 bytes .../fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm | Bin 0 -> 1228 bytes .../tfm/public/fdsymbol/FdSymbolC-Regular.tfm | Bin 0 -> 1228 bytes .../fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm | Bin 0 -> 1216 bytes .../fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm | Bin 0 -> 1216 bytes .../fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm | Bin 0 -> 1216 bytes .../tfm/public/fdsymbol/FdSymbolD-Regular.tfm | Bin 0 -> 1216 bytes .../fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm | Bin 0 -> 852 bytes .../fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm | Bin 0 -> 852 bytes .../fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm | Bin 0 -> 852 bytes .../tfm/public/fdsymbol/FdSymbolE-Regular.tfm | Bin 0 -> 852 bytes .../fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm | Bin 0 -> 1332 bytes .../fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm | Bin 0 -> 1332 bytes .../fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm | Bin 0 -> 1332 bytes .../tfm/public/fdsymbol/FdSymbolF-Regular.tfm | Bin 0 -> 1332 bytes .../fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb | Bin 0 -> 223761 bytes .../fonts/type1/public/fdsymbol/FdSymbol-Book.pfb | Bin 0 -> 216666 bytes .../type1/public/fdsymbol/FdSymbol-Medium.pfb | Bin 0 -> 220622 bytes .../type1/public/fdsymbol/FdSymbol-Regular.pfb | Bin 0 -> 216109 bytes .../texmf-dist/source/latex/fdsymbol/fdsymbol.dtx | 3228 ++++++++++++++++++++ .../texmf-dist/source/latex/fdsymbol/fdsymbol.ins | 55 + Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty | 1754 +++++++++++ 78 files changed, 11710 insertions(+) create mode 100644 Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt create mode 100644 Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt create mode 100644 Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf create mode 100644 Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc create mode 100644 Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf create mode 100644 Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfm create mode 100644 Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfb create mode 100644 Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx create mode 100644 Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins create mode 100644 Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt b/Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt new file mode 100644 index 00000000000..e6012fd792e --- /dev/null +++ b/Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt @@ -0,0 +1,39 @@ +FONTLOG for FdSymbol +-------------------- + +This file provides detailed information on the FdSymbol font family. +This information should be distributed along with the FdSymbol fonts +and any derivative works. + + +Basic Font Information +---------------------- + +FdSymbol is a font of mathematical symbols designed as a companion to +Typotheque's Fedra family, but it might also fit well to other contemporary +typefaces. + +FdSymbol is derived from MnSymbol, designed and released into the public +domain by Achim Blumensath. + +FdSymbol development is currently hosted on: +http://github.com/ummels/fdsymbol + + +ChangeLog +--------- + +17 Mar 2011 (Michael Ummels) FdSymbol version 1.000 +- First public release + +31 Mar 2011 (Michael Ummels) FdSymbol version 1.001 +- Added aleph, beth, daleth and gimel + +Acknowledgements +------------------------- +(Here is where contributors can be acknowledged. If you make modifications be sure to add your name (N), email (E), web-address (W) and description (D). This list is sorted by last name in alphabetical order.) + +N: Michael Ummels +E: michael.ummels@rwth-aachen.de +W: http://www.ummels.de +D: Original Designer diff --git a/Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt b/Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt new file mode 100644 index 00000000000..dbd79a44897 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt @@ -0,0 +1,95 @@ +Copyright (c) 2011, Michael Ummels +All Rights Reserved. + +"FdSymbol" is Reserved Font Name for this Font Software. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf b/Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf new file mode 100644 index 00000000000..5ed5728b880 Binary files /dev/null and b/Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf differ diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc new file mode 100644 index 00000000000..7838e6ce3ba --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc @@ -0,0 +1,53 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/FdSymbolA [ +%00 + /dotmath /hdotdot /ratio /udotdot /ddotdot /uni22EF /ellipsisvertical /uni22F0 + /uni22F1 /righttherefore /therefore /lefttherefore /because /proportion /minus /divisionslash.small +%10 + /uni2216 /plus /multiply /plusminus /minusplus /uni2238 /uni2A2A /uni2A2B + /uni2A2C /uni223A /divide /logicalnot /revlogicalnot /uni2A3C /uni2A3D /uni22CB +%20 + /uni22CC /uni2A32 /uni22CA /utimes /uni22C9 /uni22C8 /uni29D6 /rightY + /upY /leftY /downY /logicaland /logicalor /uni27D1 /uni27C7 /uni2A55 +%30 + /uni2A56 /curlyand /curlyor /curlywedgedot /curlyveedot /doublecurlywedge /doublecurlyvee /union + /intersection /uni22D3 /uni22D2 /uni228D /uni2A40 /uni228E /capplus /uni2294 +%40 + /uni2293 /uni2A4F /uni2A4E /sqcupdot /sqcapdot /sqcupplus /sqcapplus /uni27D3 + /uni27D4 /uni25B9 /uni25B5 /uni25C3 /uni25BF /uni25B8 /uni25B4 /uni25C2 +%50 + /uni25BE /uni25B7 /uni25B3 /uni25C1 /uni25BD /uni25B6 /uni25B2 /uni25C0 + /uni25BC /uni25B3.big /uni25BD.big /openbullet /bullet /uni25CB /uni25CF /minuscircle +%60 + /uni29B6 /uni2298 /uni29B8 /circleplus /circlemultiply /circleot /uni229A /uni229B + /uni229C /uni229D /emptyset /uni29B0 /uni25EF /uni2B24 /uni25AB /uni25AA +%70 + /uni25A1 /uni25A0 /uni229F /uni25EB /uni29C4 /uni29C5 /uni229E /uni22A0 + /uni22A1 /uni29C8 /uni2B1C /uni2B1B /uni22C4 /uni2B29 /uni25C7 /uni25C6 +%80 + /diamondminus /diamondvert /diamondslash /diamondbackslash /diamondplus /diamondtimes /uni27D0 /diamonddiamond + /uni2B2B /uni2B2A /uni25CA /uni29EB /uni27E0 /uni2B52 /uni22C6 /uni2B50 +%90 + /uni2B51 /uni2606 /uni2605 /asteriskmath /infinity /proportional /revproportional /crossing + /uni226C /separated /uni22A5 /uni22A4 /uni2240 /angle /uni29A3 /uni2221 +%A0 + /uni299B /uni2222 /uni29A1 /uni29A0 /sphericaldown /uni221F /uni22BE /uni299C + /uni299D /minute /primereversed /product.small /uni2A3F /integral.small /checkmark /uni21AF +%B0 + /diamondsuitwhite /diamond /heartsuitwhite /heartsuitblack /spade /club /uni2720 /uni2721 + /uni2314 /universal /existential /uni2204 /uni2132 /uni2141 /uni2201 /musicflatsign +%C0 + /uni266E /musicsharpsign /uni2135 /uni2136 /uni2137 /uni2138 /weierstrass /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc new file mode 100644 index 00000000000..6d3924698cf --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc @@ -0,0 +1,54 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/FdSymbolB [ +%00 + /equal /equivalence /similar /uni223D /approxequal /uni224B /uni2243 /uni22CD + /uni2242 /congruent /uni224C /uni224A /uni224F /2AAE /uni224E /uni2250 +%10 + /uni2A66 /uni2251 /uni2252 /uni2253 /uni2323 /uni2322 /uni224D /uni2050 + /smileequal /uni2258 /uni2256 /uni2257 /uni2259 /uni225A /uni225B /uni225C +%20 + /element /suchthat /less /greater /lessequal /greaterequal /uni2A7D /uni2A7E + /uni2266 /uni2267 /uni2272 /uni2273 /uni2A85 /uni2A86 /uni2276 /uni2277 +%30 + /uni22DA /uni22DB /uni2A8B /uni2A8C /uni22DA.alt /uni22DB.alt /uni226A /uni226B + /uni22D8 /uni22D9 /uni22B2 /uni22B3 /uni22B4 /uni22B5 /uni2AA6 /uni2AA7 +%40 + /uni2AA8 /uni2AA9 /uni228F /uni2290 /uni2291 /uni2292 /sqsubseteqq /sqsupseteqq + /Sqsubset /Sqsupset /propersubset /propersuperset /reflexsubset /reflexsuperset + /uni2AC5 /uni2AC6 +%50 + /uni22D0 /uni22D1 /uni227A /uni227B /uni2AAF /uni2AB0 /uni227C /uni227D + /uni2AB3 /uni2AB4 /uni227E /uni227F /uni2AB7 /uni2AB8 /uni22D6 /uni22D7 +%60 + /leqdot /geqdot /uni2A7F /uni2A80 /uni2A95 /uni2A96 /uni22DE /uni22DF + /notequal /uni2262 /uni2241 /uni223D0338 /uni2249 /uni224B0338 /uni2244 /uni22CD0338 +%70 + /uni22420338 /uni2247 /uni224C0338 /uni224A0338 /uni224F0338 /uni2AAE0338 /uni224E0338 /uni22500338 + /uni2A660338 /uni22510338 /uni22520338 /uni22530338 /uni23230338 /uni23220338 /uni226D /uni20500338 +%80 + /smileequal_uni0338 /uni22580338 /uni22560338 /uni22570338 /uni22590338 /uni225A0338 /uni225B0338 /uni225C0338 + /notelement /uni220C /uni226E /uni226F /uni2270 /uni2271 /uni2A7D0338 /uni2A7E0038 +%90 + /uni22660338 /uni22670338 /uni2274 /uni2275 /uni2A850338 /uni2A860338 /uni2278 /uni2279 + /uni22DA0338 /uni22DB0338 /uni2A8B0338 /uni2A8C0338 /uni22DA0338.alt /uni22DB0038.alt /uni226A0338 /uni226B0338 +%A0 + /uni22D80338 /uni22D90338 /uni22EA /uni22EB /uni22EC /uni22ED /uni2AA60338 /uni2AA70338 + /uni2AA80338 /uni2AA90338 /uni228F0338 /uni22900338 /uni22E2 /uni22E3 /sqsubseteqq_uni0338 /sqsupseteqq_uni0338 +%B0 + /Sqsubset_uni0338 /Sqsupset_uni0338 /notsubset /uni2285 /uni2288 /uni2289 /uni2AC50338 /uni2AC60338 + /uni22D00338 /uni22D10338 /uni2280 /uni2281 /uni2AAF0338 /uni2AB00338 /uni22E0 /uni22E1 +%C0 + /uni2AB30338 /uni2AB40338 /uni227E0338 /uni227F0338 /uni2AB70338 /uni2AB80338 /uni22D60338 /uni22D70338 + /leqdot_uni0338 /geqdot_uni0338 /uni2A7F0338 /uni2A800338 /uni2A950338 /uni2A960338 /uni22DE0338 /uni22DF0338 +%D0 + /uni2246 /backsimneqq /uni2A87 /uni2A88 /uni2268 /uni2269 /uni22E6 /uni22E7 + /uni2A89 /uni2A8A /lessneqqgtr /gtrneqqless /uni22E4 /uni22E5 /sqsubsetneqq /sqsupsetneqq +%E0 + /uni228A /uni228B /uni2ACB /uni2ACC /uni2AB1 /uni2AB2 /uni2AB5 /uni2AB6 + /uni22E8 /uni22E9 /uni2AB9 /uni2ABA /.notdef /.notdef /.notdef /.notdef +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc new file mode 100644 index 00000000000..660256e41b2 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc @@ -0,0 +1,53 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/FdSymbolC [ +%00 + /arrowright /arrowup /arrowleft /arrowdown /arrowupright /arrowupleft /arrowdownleft /arrowdownright + /arrowdblright /arrowdblup /arrowdblleft /arrowdbldown /uni21D7 /uni21D6 /uni21D9 /uni21D8 +%10 + /arrowboth /arrowupdn /uni2921 /uni2922 /arrowdblboth /uni21D5 /Neswarrow /Nwsearrow + /uni21A0 /uni219F /uni219E /uni21A1 /twoheadnearrow /twoheadnwarrow /twoheadswarrow /twoheadsearrow +%20 + /uni21A3 /uparrowtail /uni21A2 /downarrowtail /nearrowtail /nwarrowtail /swarrowtail /searrowtail + /uni21A6 /uni21A5 /uni21A4 /uni21A7 /nemapsto /nwmapsto /swmapsto /semapsto +%30 + /uni21AA /lhookuparrow /lhookleftarrow /lhookdownarrow /lhooknearrow /uni2923 /lhookswarrow /uni2925 + /rhookrightarrow /rhookuparrow /uni21A9 /rhookdownarrow /uni2924 /rhooknwarrow /uni2926 /rhooksearrow +%40 + /harpoonrightbarbup /uni21BF /uni21BD /uni21C2 /neharpoonup /nwharpoonup /swharpoonup /seharpoonup + /uni21C1 /uni21BE /harpoonleftbarbup /uni21C3 /neharpoondown /nwharpoondown /swharpoondown /seharpoondown +%50 + /uni294B /uni294D /neswharpoonnwse /senwharpoonnesw /uni294A /uni294B /neswharpoonsenw /nwseharpoonswne + /uni21CC /uni296E /neswharpoons /senwharpoons /uni21CB /uni296F /swneharpoons /nwseharpoons +%60 + /arrowdashright /arrowdashup /arrowdashleft /arrowdashdown /dashednearrow /dashednwarrow /dashedswarrow /dashedsearrow + /uni22B8 /uni2AEF /uni27DC /uni2AF0 /rightfilledspoon /upfilledspoon /leftfilledspoon /downfilledspoon +%70 + /rightpitchfork /uni22D4 /leftpitchfork /downpitchfork /uni21C9 /uni21C8 /uni21C7 /uni21CA + /nenearrows /nwnwarrows /swswarrows /sesearrows /arrowrightoverleft /updownarrows /neswarrows /nwsearrows +%80 + /uni21C6 /uni21F5 /swnearrows /senwarrows /uni219D /uplsquigarrow /leftlsquigarrow /downlsquigarrow + /rightrsquigarrow /uprsquigarrow /uni219C /downrsquigarrow /uni21AD /squigarrowupdown /squigarrowrightleft /squigarrowdownup +%90 + /uni21B7 /lcurvearrowup /lcurvearrowleft /uni2938 /lcurvearrowne /lcurvearrownw /uni293E /lcurvearrowse + /uni293B /rcurvearrowup /uni21B6 /uni2939 /rcurvearrowne /rcurvearrownw /rcurvearrowsw /uni293F +%A0 + /curvearrowleftright /curvearrowupdown /curvearrowrightleft /curvearrowdownup /curvearrownesw /curvearrownwse /curvearrowswne /curvearrowsenw + /uni27DD /uni27DE /acwcirclearrowup /uni21BA /uni27F2 /acwcirclearrowright /uni27F3 /uni21BB +%B0 + /cwcirclearrowup /cwcirclearrowleft /uni21DB /uni290A /uni21DA /uni290B /uni21B0 /uni21B1 + /uni21B2 /uni21B3 /uni21AC /uni21AB /.notdef /.notdef /.notdef /.notdef +%C0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /uni22A2 /uni27C2 /uni22A3 /downvdash /uni22A8 /uni2AEB /uni2AE4 /uni2AEA + /uni22A9 /uni234A /uni2AE3 /uni2351 /uni22AB /upVDash /uni2AE5 /downVDash +%F0 + /uni22AA /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc new file mode 100644 index 00000000000..dbca79ff1a5 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc @@ -0,0 +1,53 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/FdSymbolD [ +%00 + /uni219B /uni21910338 /uni219A /uni21930338 /uni21970338 /uni21960338 /uni21990338 /uni21980338 + /arrowrightdblstroke /uni21D10338 /uni21CD /uni21D30338 /uni21D70338 /uni21D60338 /uni21D90338 /uni21D80338 +%10 + /uni21AE /uni21950338 /uni29210338 /uni29220338 /uni21CE /uni21D50338 /Neswarrow_uni0338 /Nwsearrow_uni0338 + /uni21A00338 /uni219F0338 /uni219E0338 /uni21A10338 /twoheadnearrow_uni0338 /twoheadnwarrow_uni0338 /twoheadswarrow_uni0338 /twoheadsearrow_uni0338 +%20 + /uni21A30338 /uparrowtail_uni0338 /uni21A20338 /downarrowtail_uni0338 /nearrowtail_uni0338 /nwarrowtail_uni0338 /swarrowtail_uni0338 /searrowtail_uni0338 + /uni21A60338 /uni21A50338 /uni21A40338 /uni21A70338 /nemapsto_uni0338 /nwmapsto_uni0338 /swmapsto_uni0338 /semapsto_uni0338 +%30 + /uni21AA0338 /lhookuparrow_uni0338 /lhookleftarrow_uni0338 /lhookdownarrow_uni0338 /lhooknearrow_uni0338 /uni29230338 /lhookswarrow_uni0338 /uni29250338 + /rhookrightarrow_uni0338 /rhookuparrow_uni0338 /uni21A90338 /rhookdownarrow_uni0338 /uni29240338 /rhooknwarrow_uni0338 /uni29260338 /rhooksearrow_uni0338 +%40 + /uni21C00338 /uni21BF0338 /uni21BD0338 /uni21C20338 /neharpoonup_uni0338 /nwharpoonup_uni0338 /swharpoonup_uni0338 /seharpoonup_uni0338 + /uni21C10338 /uni21BE0338 /uni21BC0338 /uni21C30338 /neharpoondown_uni0338 /nwharpoondown_uni0338 /swharpoondown_uni0338 /seharpoondown_uni0338 +%50 + /uni294B0338 /uni294D0338 /neswharpoonnwse_uni0338 /senwharpoonnesw_uni0338 /uni294A0338 /uni294B0338 /neswharpoonsenw_uni0338 /nwseharpoonswne_uni0338 + /uni21CC0338 /uni296E0338 /neswharpoons_uni0338 /senwharpoons_uni0338 /uni21CB0338 /uni296F0338 /swneharpoons_uni0338 /nwseharpoons_uni0338 +%60 + /uni21E20338 /uni21E10338 /uni21E00338 /uni21E30338 /dashednearrow_uni0338 /dashednwarrow_uni0338 /dashedswarrow_uni0338 /dashedsearrow_uni0338 + /uni22B80338 /uni2AEF0338 /uni27DC0338 /uni2AF00338 /rightfilledspoon_uni0338 /upfilledspoon_uni0338 /leftfilledspoon_uni0338 /downfilledspoon_uni0338 +%70 + /rightpitchfork_uni0338 /uni22D40338 /leftpitchfork_uni0338 /downpitchfork_uni0338 /uni21C90338 /uni21C80338 /uni21C70338 /uni21CA0338 + /nenearrows_uni0338 /nwnwarrows_uni0338 /swswarrows_uni0338 /sesearrows_uni0338 /uni21C40338 /updownarrows_uni0338 /neswarrows_uni0338 /nwsearrows_uni0338 +%80 + /uni21C60338 /uni21F50338 /swnearrows_uni0338 /senwarrows_uni0338 /uni219D0338 /uplsquigarrow_uni0338 /leftlsquigarrow_uni0338 /downlsquigarrow_uni0338 + /rightrsquigarrow_uni0338 /uprsquigarrow_uni0338 /uni219C0338 /downrsquigarrow_uni0338 /squigarrowleftright_uni0338 /squigarrowupdown_uni0338 /squigarrowrightleft_uni0338 /squigarrowdownup_uni0338 +%90 + /uni21B70338 /lcurvearrowup_uni0338 /lcurvearrowleft_uni0338 /uni29380338 /lcurvearrowne_uni0338 /lcurvearrownw_uni0338 /uni293E0338 /lcurvearrowse_uni0338 + /uni293B0338 /rcurvearrowup_uni0338 /uni21B60338 /uni29390338 /rcurvearrowne_uni0338 /rcurvearrownw_uni0338 /rcurvearrowsw_uni0338 /uni293F0338 +%A0 + /curvearrowleftright_uni0338 /curvearrowupdown_uni0338 /curvearrowrightleft_uni0338 /curvearrowdownup_uni0338 /curvearrownesw_uni0338 /curvearrownwse_uni0338 /curvearrowswne_uni0338 /curvearrowsenw_uni0338 + /uni27DD0338 /uni27DE0338 /acwcirclearrowup_uni0338 /uni21BA0338 /uni27F20338 /acwcirclearrowright_uni0338 /uni27F30338 /uni21BB0338 +%B0 + /cwcirclearrowup_uni0338 /cwcirclearrowleft_uni0338 /uni21DB0338 /uni290A0338 /uni21DA0338 /uni290B0338 /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%C0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /uni22AC /uni27C20338 /uni22A30338 /downvdash_uni0338 /uni22AD /uni2AEB0338 /uni2AE40338 /uni2AEA0338 + /uni22AE /uni234A0338 /uni2AE30338 /uni23510338 /uni22AF /upVDash_uni0338 /uni2AE50338 /downVDash_uni0338 +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc new file mode 100644 index 00000000000..c94660f312a --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc @@ -0,0 +1,53 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/FdSymbolE [ +%00 + /plus.big /plus.big.disp /uni2A09 /uni2A09.disp /uni22C0 /uni22C0.disp /uni22C1 /uni22C1.disp + /uni27D1.big /uni27D1.big.disp /uni27C7.big /uni27C7.big.disp /uni2A07 /uni2A07.disp /uni2A08 /uni2A08.disp +%10 + /curlyand.big /curlyand.big.disp /curlyor.big /curlyor.big.disp /curlywedgedot.big /curlywedgedot.big.disp /curlyveedot.big /curlyveedot.big.disp + /doublecurlywedge.big /doublecurlywedge.big.disp /doublecurlyvee.big /doublecurlyvee.big.disp /uni22C2 /uni22C2.disp /uni22C3 /uni22C3.disp +%20 + /uni2A40.big /uni2A40.big.disp /uni2A03 /uni2A03.disp /capplus.big /capplus.big.disp /uni2A04 /uni2A04.disp + /uni2A05 /uni2A05.disp /uni2A06 /uni2A06.disp /sqcapdot.big /sqcapdot.big.disp /sqcupdot.big /sqcupdot.big.disp +%30 + /sqcapplus.big /sqcapplus.big.disp /sqcupplus.big /sqcupplus.big.disp /uni2A01 /uni2A01.disp /uni2A02 /uni2A02.disp + /uni2A00 /uni2A00.disp /uni229B.big /uni229B.big.disp /product /product.disp /uni2210 /uni2210.disp +%40 + /summation /summation.disp /uni2A0A /uni2A0A.disp /integral /integral.disp /uni222C /uni222C.disp + /uni222D /uni222D.disp /uni2A0C /uni2A0C.disp /uni222B2026222B /uni222B2026222B.disp /uni2231 /uni2231.disp +%50 + /uni2A11 /uni2A11.disp /uni2A0D /uni2A0D.disp /uni2A0E /uni2A0E.disp /uni2A0F /uni2A0F.disp + /uni222E /uni222E.disp /uni222F /uni222F.disp /uni2230 /uni2230.disp /uni2233 /uni2233.disp +%60 + /uni2232.alt /uni2232.alt.disp /uni2233.alt /uni2233.alt.disp /uni2232 /uni2232.disp /uni2A0B /uni2A0B.disp + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%70 + /.notdef /.notdef /circumflexcmb /circumflexcmb.big1 /circumflexcmb.big2 /circumflexcmb.big3 /circumflexcmb.big4 /circumflexcmb.big5 + /tildecomb /tildecomb.big1 /tildecomb.big2 /tildecomb.big3 /tildecomb.big4 /tildecomb.big5 /parencmb /parencmb.big1 +%80 + /parencmb.big2 /parencmb.big3 /parencmb.big4 /parencmb.big5 /uni20D7 /uni0335 /uni0337 /uni0338 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%90 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%A0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%B0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%C0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc new file mode 100644 index 00000000000..11cbac18105 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc @@ -0,0 +1,53 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/FdSymbolF [ +%00 + /parenleft /parenleft.big1 /parenleft.big2 /parenleft.big3 /parenleft.big4 /parenleft.big5 /parenright /parenright.big1 + /parenright.big2 /parenright.big3 /parenright.big4 /parenright.big5 /uni239B /uni239E /uni239D /uni23A0 +%10 + /uni239C /uni239F /bracketleft /bracketleft.big1 /bracketleft.big2 /bracketleft.big3 /bracketleft.big4 /bracketleft.big5 + /bracketright /bracketright.big1 /bracketright.big2 /bracketright.big3 /bracketright.big4 /bracketright.big5 /uni230A /uni230A.big1 +%20 + /uni230A.big2 /uni230A.big3 /uni230A.big4 /uni230A.big5 /uni230B /uni230B.big1 /uni230B.big2 /uni230B.big3 + /uni230B.big4 /uni20B.big5 /uni2308 /uni2308.big1 /uni2308.big2 /uni2308.big3 /uni2308.big4 /uni2308.big5 +%30 + /uni2309 /uni2309.big1 /uni2309.big2 /uni2309.big3 /uni2309.big4 /uni2309.big5 /uni231C /uni231C.big1 + /uni231C.big2 /uni231C.big3 /uni231C.big4 /uni231C.big5 /uni231D /uni231D.big1 /uni231D.big2 /uni231D.big3 +%40 + /uni231D.big4 /uni231D.big5 /uni231E /uni231E.big1 /uni231E.big2 /uni231E.big3 /uni231E.big4 /uni231E.big5 + /uni231F /uni231F.big1 /uni231F.big2 /uni231F.big3 /uni231F.big4 /uni231F.big5 /ullcorner /ullcorner.big1 +%50 + /ullcorner.big2 /ullcorner.big3 /ullcorner.big4 /ullcorner.big5 /ulrcorner /ulrcorner.big1 /ulrcorner.big2 /ulrcorner.big3 + /ulrcorner.big4 /ulrcorner.big5 /uni23A1 /uni23A4 /uni23A3 /uni23A6 /uni23A2 /uni23A5 +%60 + /uni27E6 /uni27E6.big1 /uni27E6.big2 /uni27E6.big3 /uni27E6.big4 /uni27E6.big5 /uni27E7 /uni27E7.big1 + /uni27E7.big2 /uni27E7.big3 /uni27E7.big4 /uni27E7.big5 /lsemtop /rsemtop /lsembot /rsembot +%70 + /lsemmod /rsemmod /braceleft /braceleft.big1 /braceleft.big2 /braceleft.big3 /braceleft.big4 /braceleft.big5 + /braceright /braceright.big1 /braceright.big2 /braceright.big3 /braceright.big4 /braceright.big5 /uni23A7 /uni23AB +%80 + /uni23A9 /uni23AD /uni23A8 /uni23AC /uni23AA /uni27E8 /uni27E8.big1 /uni27E8.big2 + /uni27E8.big3 /uni27E8.big4 /uni27E8.big5 /uni27E9 /uni27E9.big1 /uni27E9.big2 /uni27E9.big3 /uni27E9.big4 +%90 + /uni27E9.big5 /uni27EA /uni27EA.big1 /uni27EA.big2 /uni27EA.big3 /uni27EA.big4 /uni27EA.big5 /uni27EB + /uni27EB.big1 /uni27EB.big2 /uni27EB.big3 /uni27EB.big4 /uni27EB.big5 /uni2991 /uni2991.big1 /uni2991.big2 +%A0 + /uni2991.big3 /uni2991.big4 /uni2991.big5 /uni2992 /uni2992.big1 /uni2992.big2 /uni2992.big3 /uni2992.big4 + /uni2992.big5 /slash /slash.big1 /slash.big2 /slash.big3 /slash.big4 /slash.big5 /backslash +%B0 + /backslash.big1 /backslash.big2 /backslash.big3 /backslash.big4 /backslash.big5 /divides.small /verticalbar /verticalbar.big1 + /uni2224.small /uni2224 /uni224.big1 /arrowvert /parallel.small /dblverticalbar /dblverticalbar.big1 /notparallel.small +%C0 + /notparallel /notparallel.big1 /dblarrowvert /uni2980 /uni2980.big1 /trparrowvert /arrowtop /arrowbot + /arrowmod /dblarrowtop /dblarrowbot /dblarrowmod /ucurlyleft /dcurlyleft /ucurlyright /dcurlyright +%D0 + /ucurlymid /dcurlymid /udcurlymod /radical /radical.big1 /radical.big2 /radical.big3 /radical.big4 + /radical.big5 /roottop /uni23B7 /rootmod /.notdef /.notdef /.notdef /.notdef +%E0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def diff --git a/Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map b/Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map new file mode 100644 index 00000000000..2b412d33e86 --- /dev/null +++ b/Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map @@ -0,0 +1,24 @@ +FdSymbolA-Book FdSymbol-Book "FdSymbolA ReEncodeFont" <[fdsymbol-a.enc +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Bold"; +weight_index := 3; + +input FdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf new file mode 100644 index 00000000000..2337d69fa49 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Book"; +weight_index := 0; + +input FdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf new file mode 100644 index 00000000000..72090e329ac --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Medium"; +weight_index := 2; + +input FdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf new file mode 100644 index 00000000000..ff042c04483 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Regular"; +weight_index := 1; + +input FdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf new file mode 100644 index 00000000000..0dcbb870fe3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf @@ -0,0 +1,40 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +font_identifier := "FdSymbolA"; +design_size := 10; +font_size design_size * pt#; + +input fdbase; +input fdgeometric; + +font_slant 0; +font_x_height x_height#; +font_quad 10pt#; + +subs := 7/10; % subscript size +rth# := rule_thickness#; + +fontdimen 8: % parameters $\sigma_8$ to $\sigma_{22}$ will now be listed + math_axis# + 3.5rth# + desc_depth#, % num1 (\sigma_8) + math_axis# + 1.5rth# + 5/6pt#, % num2 (\sigma_9) + math_axis# + 1.5rth# + 5/6pt#, % num3 (\sigma_{10}) + 3.5rth# + subs * asc_height# - math_axis#, % denom1 (\sigma_{11}) + 1.5rth# + subs * asc_height# - math_axis# + 5/6pt#, % denom2 (\sigma_{12}) + 5.5pt#, % sup1 (\sigma_{13}) + 5.2pt#, % sup2 (\sigma_{14}) + 3.7pt#, % sup3 (\sigma_{15}) + 1.8pt#, % sub1 (\sigma_{16}) + 2.0pt#, % sub2 (\sigma_{17}) + 4.0pt#, % sup\_drop (\sigma_{18}) + 0.5pt#, % sub\_drop (\sigma_{19}) + 25pt#, % delim1 (\sigma_{20}) + 12pt#, % delim2 (\sigma_{21}) + math_axis#; % axis\_height (\sigma_{22}) + +bye; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf new file mode 100644 index 00000000000..f9c03337604 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Bold"; +weight_index := 3; + +input FdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf new file mode 100644 index 00000000000..7fc816b8029 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Book"; +weight_index := 0; + +input FdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf new file mode 100644 index 00000000000..d387172b34c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Medium"; +weight_index := 2; + +input FdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf new file mode 100644 index 00000000000..c918496f36d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Regular"; +weight_index := 1; + +input FdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf new file mode 100644 index 00000000000..a0af7cf6df2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf @@ -0,0 +1,24 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +font_identifier := "FdSymbolB"; +design_size := 10; +font_size design_size * pt#; + +input fdbase; + +negated := 0; +input fdrelations; + +negated := 1; +input fdrelations; + +negated := 2; +input fdrelations; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf new file mode 100644 index 00000000000..99f9080a727 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Bold"; +weight_index := 3; + +input FdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf new file mode 100644 index 00000000000..f676dc42690 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Book"; +weight_index := 0; + +input FdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf new file mode 100644 index 00000000000..45a69ffef07 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Medium"; +weight_index := 2; + +input FdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf new file mode 100644 index 00000000000..ef9172ebd76 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Regular"; +weight_index := 1; + +input FdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf new file mode 100644 index 00000000000..2d5843e6a6a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf @@ -0,0 +1,20 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +font_identifier := "FdSymbolC"; +design_size := 10; +font_size design_size * pt#; + +input fdbase; + +boolean negated; +negated := false; + +input fdarrows; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf new file mode 100644 index 00000000000..e757d2a06a4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Bold"; +weight_index := 3; + +input FdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf new file mode 100644 index 00000000000..b80a22b8cea --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Book"; +weight_index := 0; + +input FdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf new file mode 100644 index 00000000000..4fa4f06fb1c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Medium"; +weight_index := 2; + +input FdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf new file mode 100644 index 00000000000..d30d81af14a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Regular"; +weight_index := 1; + +input FdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf new file mode 100644 index 00000000000..5a4fc5812c2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf @@ -0,0 +1,20 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +font_identifier := "FdSymbolD"; +design_size := 10; +font_size design_size * pt#; + +input fdbase; + +boolean negated; +negated := true; + +input fdarrows; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf new file mode 100644 index 00000000000..abf8bc20a8b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Bold"; +weight_index := 3; + +input FdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf new file mode 100644 index 00000000000..b0bf8816642 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Book"; +weight_index := 0; + +input FdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf new file mode 100644 index 00000000000..da68386282a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Medium"; +weight_index := 2; + +input FdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf new file mode 100644 index 00000000000..9166eae44b8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Regular"; +weight_index := 1; + +input FdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf new file mode 100644 index 00000000000..026cf3f04e7 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf @@ -0,0 +1,29 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +font_identifier := "FdSymbolE"; +design_size := 10; +font_size design_size * pt#; + +input fdbase; +input fdoperators; + +current_char := 113; +input fdaccents.mf; + +font_x_height x_height#; + +fontdimen 8: + rule_thickness#, % default_rule_thickness + 1.1pt#, % big_op_spacing1 + 1.6pt#, % big_op_spacing2 + 2.0pt#, % big_op_spacing3 + 6.0pt#, % big_op_spacing4 + 1.0pt#; % big_op_spacing5 + +bye; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf new file mode 100644 index 00000000000..a8a9a7fe849 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Bold"; +weight_index := 3; + +input FdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf new file mode 100644 index 00000000000..60968400a12 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Book"; +weight_index := 0; + +input FdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf new file mode 100644 index 00000000000..60c4162bf3f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Medium"; +weight_index := 2; + +input FdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf new file mode 100644 index 00000000000..dc840d5fbdd --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf @@ -0,0 +1,13 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +string font_weight; +font_weight := "Regular"; +weight_index := 1; + +input FdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf new file mode 100644 index 00000000000..d54763c65a2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf @@ -0,0 +1,16 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +font_identifier := "FdSymbolF"; +design_size := 10; +font_size design_size * pt#; + +input fdbase; +input fddelims; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf new file mode 100644 index 00000000000..4d9e81b764c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf @@ -0,0 +1,89 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +for scale = 1, 1.8, 2.6, 3.4, 4.2, 5: + beginsymbol(scale * 7u#, x_height# + 2rule_thickness# + 1/2equal_spread# + line_thickness#, 0); "wide hat"; + thick := line_thickness; + + y2 = h - 1/2thick; + x2 = w/2; + x1 = w - x3 = 0; + y1 = y3 = y2 - 1/2equal_spread; + + theta := angle(z2 - z1); + + penpos2(6/5thick, 90); + penpos1(thick, theta + 90); + penpos3(thick, 90 - theta); + + fill stroke z1e -- z2e -- z3e; + endchar; +endfor; + +charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; + +for scale = 1, 1.8, 2.6, 3.4, 4.2, 5: + beginsymbol(scale * 7u#, x_height# + 2rule_thickness# + 1/2equal_spread# + line_thickness#, 0); "wide tilde"; + draw_sim(a, (0, 1/2[x_height + 2rule_thickness, h]), (w, 1/2[x_height + 2rule_thickness, h]), 1/4equal_spread, line_thickness); + endchar; +endfor; + +charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; + +for scale = 1, 1.8, 2.6, 3.4, 4.2, 5: + beginsymbol(scale * 7u#, x_height# + 2rule_thickness# + 1/2equal_spread# + line_thickness#, 0); "wide paren"; + draw_smile(a, -1, (0, 1/2[x_height + 2rule_thickness, h]), (w, 1/2[x_height + 2rule_thickness, h]), 1/2equal_spread, line_thickness, true); + endchar; +endfor; + +charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; + +beginsymbol(6u#, x_height# + 2rule_thickness# + 5/2line_thickness#, 0); "vec"; + thick := 3/4line_thickness; + + x0 = 0; + x1 = w - 1/2thick; + y0 = y1 = h - 5/4line_thickness; + + draw_straight(z0, z1, thick, false); + draw_arrowhead(z1, 0, 5/2line_thickness, thick); +endchar; + +beginsymbol(5u#, (-1)[x_height#, asc_height#], 0); "middle bar"; + penpos0(5/6line_thickness, 85); + penpos1(5/6line_thickness, 85); + + x0 = w - x1 = 0; + y0 = y1 = h; + + fill stroke z0e -- z1e; +endchar; + +beginsymbol(5u#, (-1)[x_height#, asc_height#], 0); "middle slash"; + penpos0(line_thickness, 85); + penpos1(line_thickness, 85); + + x0 = w - x1 = 0; + 1/2[y0,y1] = h; + y1 - y0 = 2line_thickness; + + fill stroke z0e -- z1e; +endchar; + +beginsymbol(5u# + 2side_bearing#, 3/2asc_height#, 0); "stroke through"; + theta := 70; + + penpos1(line_thickness, theta - 90); + penpos2(line_thickness, theta - 90); + + z0 = (w/2,1/6asc_height); + z1 = z0 + 3/4asc_height / cosd (90 - theta) * dir theta; + z2 = z0 - 3/4asc_height / cosd (90 - theta) * dir theta; + + fill stroke z1e -- z2e; +endchar; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf new file mode 100644 index 00000000000..b7fc83c3edc --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf @@ -0,0 +1,728 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +def ifneg(expr a,b) = + if negated: a else: b fi +enddef; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "single arrow (" & decimal alpha & ")"; + draw_line(foot_ex, head, false); + draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 6/5, ifneg(19/10, 13/10) * arrow_spread#); "double arrow (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot_ex; + 1/2[z2,z3] = head; + + draw_line(z0, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z0 -- z2), false); + draw_line(z1, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z1 -- z3), false); + draw_arrowhead(head, arrow_dir, 13/10arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - arrow_spread * dir arrow_dir], alpha, 19/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 6/5, ifneg(3/2, 1) * arrow_spread#); "bidirectional arrow (" & decimal alpha & ")"; + draw_line(foot, head, false); + draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead(foot, arrow_dir+180, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 7/5, ifneg(19/10, 13/10) * arrow_spread#); "double bidirectional arrow (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot; + 1/2[z2,z3] = head; + + draw_line(arrowhead_intersection(foot, arrow_dir+180, 13/10arrow_spread, z0 -- z2), arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z0 -- z2), false); + draw_line(arrowhead_intersection(foot, arrow_dir+180, 13/10arrow_spread, z1 -- z3), arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z1 -- z3), false); + draw_arrowhead(head, arrow_dir, 13/10arrow_spread, line_thickness); + draw_arrowhead(foot, arrow_dir+180, 13/10arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 19/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 5/4, ifneg(3/2, 1) * arrow_spread#); "double-head arrow (" & decimal alpha & ")"; + draw_line(foot_ex, head, false); + draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead(head - 1/4arrow_len * dir arrow_dir, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - (1/2arrow_spread + 1/4arrow_len) * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "tailed arrow (" & decimal alpha & ")"; + z0 = foot + 1/2arrow_spread * dir arrow_dir; + + draw_line(z0, head, false); + draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead(z0, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "arrow with foot (" & decimal alpha & ")"; + draw_line(foot, head, false); + draw_line(foot - 1/2arrow_spread * dir (alpha + 90), foot + 1/2arrow_spread * dir (alpha + 90), true); + draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left embedding (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot + 1/4arrow_spread * dir(arrow_dir + 90); + 1/2[z1,z2] = z0 + 1/4arrow_spread * dir arrow_dir; + z2 = z1 + 1/2arrow_spread * dir (arrow_dir + 90); + z3 = head; + z4 = z2 + 1/2thick * dir arrow_dir; + + penpos0(thick, arrow_dir); + penpos1(thick, arrow_dir + 90); + penpos2(thick, arrow_dir - 90); + penpos3(thick, arrow_dir + 90); + penpos4(thick, arrow_dir - 90); + + draw_arrowhead(head, arrow_dir, arrow_spread, thick); + fill stroke z4.e -- z2.e{dir (arrow_dir + 180)} .. + z0.e{dir (arrow_dir - 90)} .. z1.e{dir arrow_dir} -- z3.e; + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right embedding (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot - 1/4arrow_spread * dir(arrow_dir + 90); + 1/2[z1,z2] = z0 + 1/4arrow_spread * dir arrow_dir; + z2 = z1 - 1/2arrow_spread * dir (arrow_dir + 90); + z3 = head; + z4 = z2 + 1/2thick * dir arrow_dir; + + penpos0(thick, arrow_dir + 180); + penpos1(thick, arrow_dir + 90); + penpos2(thick, arrow_dir - 90); + penpos3(thick, arrow_dir + 90); + penpos4(thick, arrow_dir - 90); + + draw_arrowhead(head, arrow_dir, arrow_spread, thick); + fill stroke z4.e -- z2.e{dir (arrow_dir + 180)} .. + z0.e{dir (arrow_dir + 90)} .. z1.e{dir arrow_dir} -- z3.e; + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left harpoon (" & decimal alpha & ")"; + draw_line(foot_ex, head, false); + draw_arrowhead_left(head, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right harpoon (" & decimal alpha & ")"; + draw_line(foot_ex, head, false); + draw_arrowhead_right(head, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left left harpoon (" & decimal alpha & ")"; + draw_line(foot, head, false); + draw_arrowhead_left(head, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead_left(foot, arrow_dir+180, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(80, 80, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right right harpoon (" & decimal alpha & ")"; + draw_line(foot, head, false); + draw_arrowhead_right(head, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead_right(foot, arrow_dir+180, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 100, 100); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread# + equal_spread#); "double left left harpoon (" & decimal alpha & ")"; + z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = equal_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot; + 1/2[z0',z1'] = foot_ex; + 1/2[z2,z3] = head; + 1/2[z2',z3'] = head_ex; + + draw_line(z2', z0, false); + draw_line(z1', z3, false); + draw_arrowhead_left(z3, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead_left(z0, arrow_dir+180, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread + equal_spread)(80, 80, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread# + equal_spread#); "double right right harpoon (" & decimal alpha & ")"; + z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = equal_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot; + 1/2[z0',z1'] = foot_ex; + 1/2[z2,z3] = head; + 1/2[z2',z3'] = head_ex; + + draw_line(z0', z2, false); + draw_line(z3', z1, false); + draw_arrowhead_right(z2, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead_right(z1, arrow_dir+180, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread + equal_spread)(70, 70, 100, 100); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "broken arrow (" & decimal alpha & ")"; + z0 = ifneg( 4/20, 6/20)[foot,head]; + z1 = ifneg(13/20,11/20)[foot,head]; + + draw_line(foot_ex, z0, false); + draw_line(z1, head, false); + draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[z0, z1], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 6/5, ifneg(3/2, 1) * arrow_spread#); "multi map (" & decimal alpha & ")"; + draw_line(foot_ex, head - (4/5arrow_spread + 1/4line_thickness) * dir arrow_dir, false); + draw_circle(head - 2/5arrow_spread * dir arrow_dir, 2/5arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 4/5arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 6/5, ifneg(3/2, 1) * arrow_spread#); "filled multi map (" & decimal alpha & ")"; + draw_line(foot_ex, head_ex - 2/5arrow_spread * dir arrow_dir, false); + filldraw_circle(head - 2/5arrow_spread * dir arrow_dir, 2/5arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 4/5arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 1, 3/4plus_size# + ifneg(1,0) * arrow_spread#); "pitchfork (" & decimal alpha & ")"; + draw_line(foot_ex, head_ex, false); + draw_subset(a, foot + 3/4plus_size * dir arrow_dir, foot_ex, 3/4plus_size, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 3/8plus_size * dir arrow_dir], alpha, 3/4plus_size + arrow_spread)(80, 80, 100, 100, 80, 80, 100, 100); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, 2arrow_spread#); "parallel arrows (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = arrow_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot_ex; + 1/2[z2,z3] = head; + + draw_line(z0, z2, false); + draw_line(z1, z3, false); + draw_arrowhead(z2, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead(z3, arrow_dir, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 1, 2arrow_spread#); "anti-parallel arrows right left (" & decimal alpha & ")"; + z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = arrow_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot; + 1/2[z0',z1'] = foot_ex; + 1/2[z2,z3] = head; + 1/2[z2',z3'] = head_ex; + + draw_line(z2', z0, false); + draw_line(z1', z3, false); + draw_arrowhead(z3, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead(z0, arrow_dir+180, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 2arrow_spread)(80, 80, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginarrow(alpha, 1, 2arrow_spread#); "anti-parallel arrows left right (" & decimal alpha & ")"; + z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = arrow_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot; + 1/2[z0',z1'] = foot_ex; + 1/2[z2,z3] = head; + 1/2[z2',z3'] = head_ex; + + draw_line(z0', z2, false); + draw_line(z3', z1, false); + draw_arrowhead(z2, arrow_dir, arrow_spread, line_thickness); + draw_arrowhead(z1, arrow_dir+180, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 2arrow_spread)(70, 70, 100, 100); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left right wave arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot - 1/10arrow_spread * dir (arrow_dir + 90); + z1 = 15/80[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90); + z2 = 30/80[foot,head]; + z3 = 45/80[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90); + z4 = 60/80[foot,head]; + z5 = head + 1/10arrow_spread * dir (arrow_dir + 90); + + penpos0(thick, arrow_dir - 45); + penpos1(thick, arrow_dir - 90); + penpos2(thick, arrow_dir - 135); + penpos3(thick, arrow_dir - 90); + penpos4(thick, arrow_dir - 45); + penpos5(thick, arrow_dir - 75); + + penlabels(0,1,2,3,4,5); + + fill stroke z0.e{dir (arrow_dir + 45)} .. z1.e .. z2.e{dir (arrow_dir - 45)} .. z3.e .. z4.e ... {dir (arrow_dir+15)}z5.e; + draw_arrowhead(z5, arrow_dir+15, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 70, 70, 70, 70, 70, 70); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right left wave arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot + 1/10arrow_spread * dir (arrow_dir + 90); + z1 = 15/80[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90); + z2 = 30/80[foot,head]; + z3 = 45/80[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90); + z4 = 60/80[foot,head]; + z5 = head - 1/10arrow_spread * dir (arrow_dir + 90); + + penpos0(thick, arrow_dir - 135); + penpos1(thick, arrow_dir - 90); + penpos2(thick, arrow_dir - 45); + penpos3(thick, arrow_dir - 90); + penpos4(thick, arrow_dir - 135); + penpos5(thick, arrow_dir - 105); + + penlabels(0,1,2,3,4,5); + + fill stroke z0.e{dir (arrow_dir - 45)} .. z1.e .. z2.e{dir (arrow_dir + 45)} .. z3.e .. z4.e ... {dir (arrow_dir-15)}z5.e; + draw_arrowhead(z5, arrow_dir-15, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(110, 110, 110, 110, 110, 110, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90: + beginarrow(alpha, 19/16, ifneg(3/2, 1) * arrow_spread#); "left right bidirectional wave arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot - 1/10arrow_spread * dir (arrow_dir + 90); + z1 = 4/20[foot,head]; + z2 = 7/20[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90); + z3 = 10/20[foot,head]; + z4 = 13/20[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90); + z5 = 16/20[foot,head]; + z6 = head + 1/10arrow_spread * dir (arrow_dir + 90); + + penpos0(thick, arrow_dir - 75); + penpos1(thick, arrow_dir - 45); + penpos2(thick, arrow_dir - 90); + penpos3(thick, arrow_dir - 135); + penpos4(thick, arrow_dir - 90); + penpos5(thick, arrow_dir - 45); + penpos6(thick, arrow_dir - 75); + + penlabels(0,1,2,3,4,5,6); + + fill stroke z0.e{dir (arrow_dir + 15)} .. z1.e .. z2.e .. z3.e{dir (arrow_dir - 45)} .. z4.e .. z5.e ... {dir (arrow_dir+15)}z6.e; + draw_arrowhead(z0, arrow_dir + 195, arrow_spread, thick); + draw_arrowhead(z6, arrow_dir + 15, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 70, 70); + fi + endchar; +endfor; + +for alpha = 0, 90: + beginarrow(alpha, 19/16, ifneg(3/2, 1) * arrow_spread#); "right left bidirectional wave arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot + 1/10arrow_spread * dir (arrow_dir + 90); + z1 = 4/20[foot,head]; + z2 = 7/20[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90); + z3 = 10/20[foot,head]; + z4 = 13/20[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90); + z5 = 16/20[foot,head]; + z6 = head - 1/10arrow_spread * dir (arrow_dir + 90); + + penpos0(thick, arrow_dir - 105); + penpos1(thick, arrow_dir - 135); + penpos2(thick, arrow_dir - 90); + penpos3(thick, arrow_dir - 45); + penpos4(thick, arrow_dir - 90); + penpos5(thick, arrow_dir - 135); + penpos6(thick, arrow_dir - 105); + + penlabels(0,1,2,3,4,5,6); + + fill stroke z0.e{dir (arrow_dir - 15)} .. z1.e .. z2.e .. z3.e{dir (arrow_dir + 45)} .. z4.e .. z5.e ... {dir (arrow_dir-15)}z6.e; + draw_arrowhead(z0, arrow_dir - 195, arrow_spread, thick); + draw_arrowhead(z6, arrow_dir - 15, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(110, 110, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2,1) * arrow_spread#); "right bend arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot - 1/4arrow_spread * dir (arrow_dir + 90); + z1 = 9/20[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90); + z2 = 19/20[foot,head] - 1/2arrow_spread * dir (arrow_dir + 90); + + penpos0(thick, arrow_dir - 35); + penpos1(thick, arrow_dir - 90); + penpos2(thick, arrow_dir - 150); + + fill stroke z0.e{dir (arrow_dir + 55)} .. z1.e .. {dir (arrow_dir - 60)}z2.e; + draw_arrowhead(z2, arrow_dir - 50, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/10[z1,z2], alpha, 3/2arrow_spread)(80, 80, 80, 80, 80, 80, 80, 80); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 1, ifneg(3/2,1) * arrow_spread#); "left bend arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot + 1/4arrow_spread * dir (arrow_dir + 90); + z1 = 9/20[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90); + z2 = 19/20[foot,head] + 1/2arrow_spread * dir (arrow_dir + 90); + + penpos0(thick, arrow_dir + 35); + penpos1(thick, arrow_dir + 90); + penpos2(thick, arrow_dir + 150); + + fill stroke z0.e{dir (arrow_dir - 55)} .. z1.e .. {dir (arrow_dir + 60)}z2.e; + draw_arrowhead(z2, arrow_dir + 50, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/10[z1,z2], alpha, 3/2arrow_spread)(110, 110, 110, 110, 110, 110, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270, 45, 135, 225, 315: + beginarrow(alpha, 6/5, ifneg(3/2,1) * arrow_spread#); "bend arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = 1/20[foot,head] - 1/2arrow_spread * dir (arrow_dir + 90); + z1 = 1/2[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90); + z2 = 19/20[foot,head] - 1/2arrow_spread * dir (arrow_dir + 90); + + penpos0(thick, arrow_dir - 30); + penpos1(thick, arrow_dir - 90); + penpos2(thick, arrow_dir - 150); + + fill stroke z0.e{dir (arrow_dir + 60)} .. z1.e .. {dir (arrow_dir - 60)}z2.e; + draw_arrowhead(z0, arrow_dir + 230, arrow_spread, thick); + draw_arrowhead(z2, arrow_dir - 50, arrow_spread, thick); + + if negated: + stroke_through_arrow(z1, alpha, 3/2arrow_spread)(80, 80, 100, 100, 80, 80, 100, 100); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginarrow(alpha, 1, ifneg(3/2,1) * arrow_spread#); "headless arrow with foot (" & decimal alpha & ")"; + draw_line(foot_ex, head_ex, false); + draw_line(foot - 1/2arrow_spread * dir (alpha + 90), foot + 1/2arrow_spread * dir (alpha + 90), true); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for sign = 1, -1: + for alpha = 0, 90, 180, 270: + beginoperator(large_op_size#, 1); + if sign > 0: "right" else: "left" fi & " circle arrow (" & decimal alpha & ")"; + + thick := line_thickness; + r := (w - 2side_bearing)/2 - arrow_spread/3; + + for i = 0 upto 7: + z[i] = centre + r * dir (alpha + i/8 * 360); + penpos[i](thick, alpha + i/8 * 360); + endfor; + + z0' = centre + r * dir (alpha + 10); + penpos0'(thick, alpha + 10); + z0'' = centre + r * dir (alpha - 10); + penpos0''(thick, alpha - 10); + + penlabels(0',0'',1,2,3,4,5,6,7); + + fill stroke z0'.e{dir (alpha + 100)} .. z1.e .. z2.e .. z3.e .. z4.e .. z5.e .. z6.e .. z7.e .. {dir (alpha + 80)}z0''.e; + + if sign > 0: + draw_arrowhead(z0'', (alpha + 65), arrow_spread, thick); + else: + draw_arrowhead(z0', (alpha - 65), arrow_spread, thick); + fi; + + if negated: + 1/2[z8,z9] = centre; + y8 - y9 = large_op_size; + z8 - z9 = whatever * dir 80; + + draw_straight(z8, z9, stroke_through_thickness, false); + fi + endchar; + endfor; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 6/5, ifneg(21/10, 14/10) * arrow_spread#); "triple arrow (" & decimal alpha & ")"; + z1 - z0 = z2 - z1 = 2/3equal_spread * dir (arrow_dir + 90); + z1 = foot_ex; + z4 - z3 = z5 - z4 = 2/3equal_spread * dir (arrow_dir + 90); + z4 = head_ex; + + draw_straight(z0, arrowhead_intersection(head, arrow_dir, 14/10arrow_spread, z0 -- z3), 4/5line_thickness, false); + draw_straight(z1, arrowhead_intersection(head, arrow_dir, 14/10arrow_spread, z1 -- z4), 4/5line_thickness, false); + draw_straight(z2, arrowhead_intersection(head, arrow_dir, 14/10arrow_spread, z2 -- z5), 4/5line_thickness, false); + draw_arrowhead(head, arrow_dir, 14/10arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - arrow_spread * dir arrow_dir], alpha, 21/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + + +if not negated: + for sign = 1, -1: + beginsymbol(4/3arrow_spread# + line_thickness# + 2side_bearing#, vcentre(2arrow_spread# + line_thickness#)); "left shift"; + y0 = y1 = h - 1/2arrow_spread - 1/2line_thickness; + y2 = -d + 1/2line_thickness; + 1/2[x0,x1] = w/2; + x1 - x0 = sign * 4/3arrow_spread; + x2 = x1; + + draw_line(z2, z1, true); + draw_line(z1, z0, false); + draw_arrowhead(z0, 90 + sign * 90, arrow_spread, line_thickness); + endchar; + endfor; + + for sign = 1, -1: + beginsymbol(4/3arrow_spread# + line_thickness# + 2side_bearing#, vcentre(2arrow_spread# + line_thickness#)); "left down shift"; + y0 = y1 = -d + 1/2arrow_spread + 1/2line_thickness; + y2 = h - 1/2line_thickness; + 1/2[x0,x1] = w/2; + x1 - x0 = sign * 4/3arrow_spread; + x2 = x1; + + draw_line(z2, z1, true); + draw_line(z1, z0, false); + draw_arrowhead(z0, 90 + sign * 90, arrow_spread, line_thickness); + endchar; + endfor; + + for sign = -1, 1: + beginoperator(arrow_len#, 1); "loop arrow"; + thick := line_thickness; + + z0 = centre + sign * (arrow_len - line_thickness)/2 * left; + z1 = centre + arrow_len/2 * down; + z2 = centre + (arrow_len - line_thickness)/4 * up; + z3 = centre + sign * (arrow_len - line_thickness)/4 * right; + z4 = centre + (arrow_len - line_thickness) * (1/4sign, 1/2); + z5 = centre + (arrow_len - line_thickness) * (1/2sign, 1/4); + + penpos0(thick, - sign * 90); + penpos1(thick, 180); + penpos2(thick, 180); + penpos3(thick, - sign * 90); + penpos4(thick, sign * 90); + penpos5(thick, 0); + + fill stroke z0e -- z3e{sign * right} .. {up}z5e .. {sign * left}z4e .. {down}z2e -- z1e; + draw_arrowhead(z0, 90 + sign * 90, arrow_spread, thick); + + penlabels(0,1,2,3,4,5); + endchar; + endfor; +fi + +current_char := 223; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 2/3, ifneg(2, 3/2) * arrow_spread#); "derives (" & decimal alpha & ")"; + draw_line(foot, head_ex, false); + draw_line(foot - 3/4arrow_spread * dir (arrow_dir + 90), foot + 3/4arrow_spread * dir (arrow_dir + 90), true); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 2/3, ifneg(9/4, 7/4) * arrow_spread#); "models (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90); + 0.5[z0,z1] = foot; + 0.5[z2,z3] = head_ex; + + draw_line(z0, z2, false); + draw_line(z1, z3, false); + draw_line(foot - 7/8arrow_spread * dir (arrow_dir + 90), foot + 7/8arrow_spread * dir (arrow_dir + 90), true); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 9/4arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 1, ifneg(9/4, 7/4) * arrow_spread#); "forces (" & decimal alpha & ")"; + z0 = foot + equal_spread * dir arrow_dir; + + draw_line(z0, head_ex, false); + draw_line(foot - 7/8arrow_spread * dir (arrow_dir + 90), foot + 7/8arrow_spread * dir (arrow_dir + 90), true); + draw_line(z0 - 7/8arrow_spread * dir (arrow_dir + 90), z0 + 7/8arrow_spread * dir (arrow_dir + 90), true); + + if negated: + stroke_through_arrow(1/2[z0, head], alpha, 9/4arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 1, ifneg(5/2, 2) * arrow_spread#); "double models (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90); + z4 = foot + equal_spread * dir arrow_dir; + 1/2[z0,z1] = z4; + 1/2[z2,z3] = head_ex; + + draw_line(z0, z2, false); + draw_line(z1, z3, false); + draw_line(foot - arrow_spread * dir (arrow_dir + 90), foot + arrow_spread * dir (arrow_dir + 90), true); + draw_line(z4 - arrow_spread * dir (arrow_dir + 90), z4 + arrow_spread * dir (arrow_dir + 90), true); + + if negated: + stroke_through_arrow(1/2[z4, head], alpha, 5/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +if not negated: + beginarrow(0, 1, 7/4arrow_spread#); "Vvdash"; + s := 7/8arrow_spread; + z0 = foot + 4/5equal_spread * dir arrow_dir; + z1 = foot + 8/5equal_spread * dir arrow_dir; + + draw_line(z1, head_ex, false); + draw_line(foot - s * dir (arrow_dir + 90), foot + s * dir (arrow_dir + 90), true); + draw_line(z0 - s * dir (arrow_dir + 90), z0 + s * dir (arrow_dir + 90), true); + draw_line(z1 - s * dir (arrow_dir + 90), z1 + s * dir (arrow_dir + 90), true); + endchar; +fi diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf new file mode 100644 index 00000000000..e80c16f192a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf @@ -0,0 +1,884 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +u# := 0.6pt#; +asc_height# := 7.54pt#; % 8.56pt#; +cap_height# := 7.07pt#; %7.37pt#; +desc_depth# := 2.2pt#; % 2.94pt#; +x_height# := 5.46pt#; +math_axis# := 2.75pt#; +if weight_index = 0: % Book + line_thickness# := 0.64pt#; + rule_thickness# := 0.56pt#; + dot_size# := 0.84pt#; +elseif weight_index = 1: % Regular + line_thickness# := 0.74pt#; + rule_thickness# := 0.58pt#; + dot_size# := 0.9pt#; +elseif weight_index = 2: % Medium + line_thickness# := 0.86pt#; + rule_thickness# := 0.6pt#; + dot_size# := 0.97pt#; +else: % Bold + line_thickness# := 1.0pt#; + rule_thickness# := 0.64pt#; + dot_size# := 1.05pt#; +fi; + +side_bearing# := 1.5u#; +small_op_size# := 8u#; % radius of small operators +med_op_size# := 12.5u#; % radius of medium operators +plus_size# := 9u#; +large_op_size# := 18u#; % radius of large operators +order_width# := 8u#; % width of equal sign +equal_spread# := .7math_axis#; % distance between the lines of the equal sign +greater_spread# := 10/4equal_spread#; % distance between the ends of the greater sign +arrow_horiz_len# := 12u#; % length of horizontal arrows +arrow_vert_len# := 3math_axis#; % length of vertical arrows +arrow_diag_len# := 0.5(arrow_horiz_len# + arrow_vert_len#); +arrow_spread# := 1.6equal_spread#; +delim_height# := 4.9pt#; % half the height of normal delimiters +bigop_height# := 10.7pt#; % height of big operators + +mode_setup; + +% mf2pt1 support + +if known ps_output: +% pencircle := mfplain_pencircle; +% pensquare := mfplain_pencircle; +% penrazor := mfplain_pencircle; + pensquare := pencircle; + penrazor := pencircle; + let filldraw := mfplain_filldraw; + let unfilldraw := mfplain_unfilldraw; +fi + +define_pixels(u, asc_height, cap_height, desc_depth, delim_height, bigop_height, x_height); +define_whole_pixels(dot_size, small_op_size, med_op_size, large_op_size, plus_size, + order_width, equal_spread, greater_spread, + arrow_horiz_len, arrow_vert_len, arrow_diag_len, arrow_spread); + +if known ps_output: + define_pixels(math_axis, line_thickness, rule_thickness, side_bearing); +else: + math_axis := good.y(math_axis# * hppp); + line_thickness := ceiling(line_thickness# * hppp); + rule_thickness := ceiling(rule_thickness# * hppp); + side_bearing := ceiling(side_bearing# * hppp); +fi + +stroke_through_thickness := 9/10line_thickness; + +% Macros + +def select(expr n)(text values) = + begingroup; + i := 0; + for v = values: + result := v; + exitif i = n; + i := i + 1; + endfor; + result + endgroup +enddef; + +def vcentre(expr size) = + size/2 + math_axis#, size/2 - math_axis# +enddef; + +def ocentre(expr size) = + size/2 + math_axis# + 1/2equal_spread#, size/2 - math_axis# - 1/2equal_spread# +enddef; + +current_char := -1; + +def beginsymbol(expr width, height, depth) = + current_char := current_char + 1; + beginchar(current_char, width, height, depth); + if not known ps_output: + proofrule((side_bearing, h),(side_bearing, -d)); + proofrule((w - side_bearing, h),(w - side_bearing, -d)); + fi +enddef; + +def beginoperator(expr size, ratio) = + beginsymbol(size + 2side_bearing#, vcentre(ratio * size)); + pair centre; + centre := (w/2, (h-d)/2); + radius := w/2 - side_bearing - 1/2line_thickness; +enddef; + +def beginbigop(expr xscale, yscale) = + beginsymbol(xscale * 3/2order_width# + 2side_bearing#, ocentre(yscale * bigop_height#)); + pair centre; + centre := (w/2, (h-d)/2); + op_width := xscale * 3/2order_width; + op_height := yscale * bigop_height; +enddef; + +def beginsquarebigop(expr xscale, yscale) = + beginsymbol(xscale * bigop_height# + 2side_bearing#, ocentre(yscale * bigop_height#)); + pair centre; + centre := (w/2, (h-d)/2); + op_width := xscale * bigop_height; + op_height := yscale * bigop_height; +enddef; + +def beginarrow(expr angle, scale, spread) = + arrow_len# := scale * + if angle mod 180 = 0: arrow_horiz_len# + elseif angle mod 180 = 90: arrow_vert_len# + else: arrow_diag_len# + fi; + arrow_len := scale * + if angle mod 180 = 0: arrow_horiz_len + elseif angle mod 180 = 90: arrow_vert_len + else: arrow_diag_len + fi; + + beginsymbol(arrow_len# * abs (cosd (angle)) + (spread + line_thickness#) * abs (sind (angle)) + 2side_bearing#, + vcentre(arrow_len# * abs (sind (angle)) + (spread + line_thickness#) * abs (cosd (angle)))); + pair centre, head, head_ex, foot, foot_ex; + + centre := (w/2, (h-d)/2); + head := centre + (arrow_len - line_thickness)/2 * dir angle; + head_ex := centre + arrow_len/2 * dir angle; + foot := centre - (arrow_len - line_thickness)/2 * dir angle; + foot_ex := centre - arrow_len/2 * dir angle; + arrow_dir := angle; +enddef; + +def beginorder(expr sign, width, spread) = + beginsymbol(width + 2side_bearing#, vcentre(spread + line_thickness#)); + pair centre, left_ex, right_ex, left_point, right_point; + centre := (w/2, (h-d)/2); + left_ex := centre - sign * (w/2 - side_bearing) * right; + left_point := centre - sign * (w/2 - side_bearing - line_thickness/2) * right; + right_ex := centre + sign * (w/2 - side_bearing) * right; + right_point := centre + sign * (w/2 - side_bearing - line_thickness/2) * right; +enddef; + +vardef stroke text t = + forsuffixes e = l, r: + path_.e := t; + endfor + path_.l -- reverse path_.r -- cycle +enddef; + +% Shapes + +def circle(expr centre, radius) = + (centre + radius * right){up} ... + (centre + radius * dir 45){dir 135} ... + (centre + radius * up){left} ... + (centre + radius * dir 135){dir 225} ... + (centre + radius * left){down} ... + (centre + radius * dir 225){dir 315} ... + (centre + radius * down){right} ... + (centre + radius * dir 315){dir 45} ... + cycle +enddef; + +def square(expr centre, radius, angle) = + (centre + sqrt(2) * radius * dir (angle + 45)) -- + (centre + sqrt(2) * radius * dir (angle + 135)) -- + (centre + sqrt(2) * radius * dir (angle + 225)) -- + (centre + sqrt(2) * radius * dir (angle + 315)) -- + cycle +enddef; + +def triangle(expr centre, radius, angle) = + (centre + radius * dir angle) -- + (centre + radius * dir (angle + 120)) -- + (centre + radius * dir (angle + 240)) -- + cycle +enddef; + +def reg_poly_points(suffix $)(expr n, centre, radius, angle) = + for i = 0 upto n-1: + z$[i] = centre + radius * dir (angle + i/n * 360); + endfor; +enddef; + +def dot(expr centre, radius) = + superellipse(centre + radius * right, centre + radius * up, + centre - radius * right, centre - radius * up, 0.57) +enddef; + +% Draw macros + +def draw_straight(expr orig, dest, thick, extend) = + pair p[].l, p[].r; + + theta := angle (dest - orig); + if extend: + 1/2[p1.l,p1.r] = orig - 1/2thick * dir theta; + 1/2[p2.l,p2.r] = dest + 1/2thick * dir theta; + else: + 1/2[p1.l,p1.r] = orig; + 1/2[p2.l,p2.r] = dest; + fi + p1.l - p1.r = p2.l - p2.r = thick * dir (theta + 90); + fill p1.l -- p2.l -- p2.r -- p1.r -- cycle; +enddef; + +def draw_line(expr orig, dest, extend) = + draw_straight(orig, dest, line_thickness, extend); +enddef; + +def draw_circle(expr centre, radius, thick) = + fill circle(centre, radius + 1/2thick); + unfill circle(centre, radius - 1/2thick); +enddef; + +def filldraw_circle(expr centre, radius, thick) = + fill circle(centre, radius + 1/2thick); +enddef; + +def draw_square(expr centre, radius, angle, thick) = + fill square(centre, radius + 1/2thick, angle); + unfill square(centre, radius - 1/2thick, angle); +enddef; + +def filldraw_square(expr centre, radius, angle, thick) = + fill square(centre, radius + 1/2thick, angle); +enddef; + +def draw_triangle(suffix $)(expr centre, radius, angle, thick) = + fill triangle(centre, radius + thick, angle); + unfill triangle(centre, radius - thick, angle); +enddef; + +def filldraw_triangle(suffix $)(expr centre, radius, angle, thick) = + fill triangle(centre, radius + thick, angle); +enddef; + +def draw_sim(suffix $)(expr lc, rc, spread, thick) = + theta := angle (length(rc - lc), 10spread); + signum := cosd (angle (rc - lc)) + sind (angle (lc - rc)); + + z0$.l = lc; + z4$.r = rc; + z2$ = 1/2[lc, rc]; + z4$.r = rc; + 1/2[z1$,z3$] = z2$; + z1$ = 1/4[lc, rc] + 1/6thick * dir (angle (rc - lc)) + + signum * spread * dir (angle (rc - lc) + 90); + + penpos0$(5/6thick, angle(rc - lc) - signum * (90 - theta)); + penpos1$(thick, angle(rc - lc) - signum * 90); + penpos2$(thick, angle(rc - lc) - signum * (theta + 90 - 5)); + penpos3$(thick, angle(rc - lc) - signum * 90); + penpos4$(5/6thick, angle(rc - lc) - signum * (90 - theta)); + + fill stroke z0$.e{dir (angle(rc - lc) + signum * theta)} .. {dir angle(rc - lc)}z1$.e .. {dir (angle(rc - lc) - signum * (theta - 5))}z2$.e .. {dir angle(rc - lc)}z3$.e .. {dir (angle(rc - lc) + signum * theta)}z4$.e; + + penlabels(0$,1$,3$,4$); +enddef; + +def draw_bump(suffix $)(expr sign, lc, rc, rad, thick) = + z0$ = lc; + z1$ = rc; + z2$ = 1/2[lc, rc] + sign * rad * dir (angle (rc - lc) + 90); + z3$ = 1/2[lc, rc] - rad * dir (angle (rc - lc)); + 1/2[z3$,z4$] = 1/2[lc, rc]; + + penpos0$(thick, angle (rc - lc) + sign * 90); + penpos1$(thick, angle (rc - lc) + sign * 90); + penpos2$(thick, angle (rc - lc) + sign * 90); + penpos3$(thick, angle (rc - lc) + sign * 90); + penpos4$(thick, angle (rc - lc) + sign * 90); + + z3$' = z3$; + z5$ = z3$.l; + z4$' = z4$; + z6$ = z4$.l; + + penpos3$'(thick, angle (rc - lc) + 180); + penpos5$(thick, angle (rc - lc) + 180); + penpos4$'(thick, angle (rc - lc)); + penpos6$(thick, angle (rc - lc)); + + fill stroke z0$.e -- z3$.e; + fill stroke z5$.e -- z3$'.e{dir (angle (rc - lc) + sign * 90)} .. + z2$.e{rc - lc} .. z4$'.e{dir (angle (rc - lc) - sign * 90)} -- z6$.e; + fill stroke z1$.e -- z4$.e; + + penlabels(0$,1$,2$,3$,4$,5$,6$); +enddef; + +def draw_less(suffix $)(expr lc, rc, spread, thick, closed) = + theta := angle((length(rc - lc) - thick/2) * right + spread/2 * up); + + z2$ = lc + 1/2thick * dir (angle (rc - lc)); + 1/2[z0$.r,z1$.r] = rc; + z0$ = z2$ + whatever * dir (angle (rc - lc) + theta); + z1$ = z2$ + whatever * dir (angle (rc - lc) - theta); + + penpos0$(thick, angle(rc - lc) - 90 + theta); + penpos1$(thick, angle(rc - lc) + 90 - theta); + penpos3$(thick, angle(rc - lc) - 90 + theta); + penpos4$(thick, angle(rc - lc) + 90 - theta); + + z3$.l = z0$.l + whatever * (z2$ - z0$); + z4$.l = z1$.l + whatever * (z2$ - z1$); + 1/2[z3$.l,z4$.l] = lc; + z5$ = z0$.r + whatever * (z2$ - z0$); + z5$ = z1$.r + whatever * (z2$ - z1$); + + fill z0$.l -- z3$.l -- z4$.l -- z1$.l -- z1$.r -- z5$ -- z0$.r -- cycle; + + if closed: + penpos6$(thick, angle(rc - lc)); + penpos7$(thick, angle(rc - lc)); + z6$.l = whatever[z0$.l,z3$.l]; + z6$.r = whatever[z0$.r,z1$.r]; + z7$.l = whatever[z1$.l,z4$.l]; + z7$.r = whatever[z0$.r,z1$.r]; + fill z0$.l -- z6$.l -- z7$.l -- z1$.l -- z7$.r -- z6$.r -- cycle; + fi; + + penlabels(0$,1$,3$,4$,5$,6$,7$); +enddef; + +def draw_prec(suffix $)(expr lc, rc, spread, thick, closed) = + theta := 43; + + z0$ - z1$ = spread * dir (angle (rc - lc) + 90); + 1/2[z0$.r,z1$.l] = rc; + z2$ = lc; + z2$' = lc + 1/2thick * dir angle(rc - lc); + + penpos0$(thick, angle(rc - lc) - theta); + penpos1$(thick, angle(rc - lc) + 180 + theta); + penpos2$(thick, angle(rc - lc) - 90); + penpos2$'(thick, angle(rc - lc) - 90); + + fill stroke z2$.e -- z2$'.e{dir angle(rc - lc)} .. {dir (angle (rc - lc) + 90 - theta)}z0$.e; + fill stroke z2$.e -- z2$'.e{dir angle(rc - lc)} .. {dir (angle (rc - lc) - 90 + theta)}z1$.e; + + if closed: + z3$ = point 1/2 of (z0${dir (angle (rc - lc) - 90 - theta + 10)} + .. {dir (angle (rc - lc) - 90 + theta - 10)}z1$); + penpos3$(thick, angle(rc - lc)); + + fill z0$.l .. z3$.l .. z1$.r -- z1$.l .. z3$.r .. z0$.r -- cycle; + fi; + + penlabels(0$,1$,2$,3$); +enddef; + +def draw_subset(suffix $)(expr lc, rc, spread, thick) = + 1/2[z0$,z1$] = rc; + 1/2[z2$,z3$] = (4spread / 9abs(rc - lc))[z4$, rc]; + z0$ - z1$ = z2$ - z3$ = spread * dir (angle (rc - lc) + 90); + z4$ = lc + 1/2thick * dir (angle (rc - lc)); + + penpos0$(thick, angle(rc - lc) - 90); + penpos1$(thick, angle(rc - lc) + 90); + penpos2$(thick, angle(rc - lc) - 90); + penpos3$(thick, angle(rc - lc) + 90); + penpos4$(thick, angle(rc - lc)); + + fill stroke z0$.e -- z2$.e{lc - rc} .. z4$.e .. {rc - lc}z3$.e -- z1$.e; + + penlabels(0$,1$,2$,3$,4$) +enddef; + +def draw_smile(suffix $)(expr sign, lc, rc, spread, thick, round) = + z0$ = lc + sign * 1/2spread * dir (angle(rc - lc) + 90) + + whatever * (rc - lc); + z0$.l = lc + whatever * dir (angle(rc - lc) + 90); + z1$ = rc + sign * 1/2spread * dir (angle(rc - lc) + 90) + + whatever * (rc - lc); + z1$.l = rc + whatever * dir (angle(rc - lc) + 90); + z2$ = 1/2[lc,rc] - sign * 1/2spread * dir (angle(rc - lc) + 90); + + if round: + theta := angle (length(lc - rc), 5spread); + else: + theta := angle (length(lc - rc), 2spread); + fi; + + penpos0$(thick, angle(rc - lc) + sign * (90 - theta)); + penpos1$(thick, angle(rc - lc) + sign * (90 + theta)); + + if round: + penpos2$(thick, angle(rc - lc) + sign * 90); + + fill stroke z0$.e{dir (angle(rc - lc) - sign * theta)} .. + {rc - lc}z2$.e{rc - lc} .. {dir (angle(rc - lc) + sign * theta)}z1$.e; + else: + penpos2$(thick / cosd theta, angle(rc - lc) + sign * 90); + + fill stroke z0$.e -- z2$.e -- z1$.e; + fi; + + penlabels(0$, 1$, 2$); +enddef; + +def stroke_through(expr pos, spread) = + begingroup; + stroke_len := 1/2spread / cosd 15; + + draw_straight(pos + stroke_len * dir 75, pos - stroke_len * dir 75, stroke_through_thickness, true); + endgroup; +enddef; + +def stroke_through_arrow(expr pos, alpha, spread)(text angles) = + begingroup; + stroke_dir := arrow_dir + select(alpha/45)(angles); + stroke_len := 1/2spread / sind (stroke_dir - arrow_dir); + + draw_straight(pos + stroke_len * dir stroke_dir, pos - stroke_len * dir stroke_dir, stroke_through_thickness, true); + endgroup; +enddef; + +def draw_product(expr centre, width, height, sign, thick) = + thin := 1/2thick; + + z1r - z0r = z3r - z2r = width * right; + z2r - z0r = sign * (height - thin) * up; + 1/2[1/2[z0l,z1l], 1/2[z2r,z3r]] = centre; + z4 = 1/3[z0,z1]; + z5 = 2/3[z0,z1]; + z6 = 1/2[z0,z4] + sign * max(1/9width, thin) * up; + z7 = 1/2[z1,z5] + sign * max(1/9width, thin) * up; + z8 = 1/2[z0,z4] + sign * min(height - thin - 1/9width, height - 2thin) * up; + z9 = 1/2[z1,z5] + sign * min(height - thin - 1/9width, height - 2thin) * up; + + penpos0(thin, sign * 100); + penpos1(thin, sign * 80); + penpos2(thin, sign * 93); + penpos3(thin, sign * 87); + penpos4(thin, sign * 80); + penpos5(thin, sign * 100); + penpos6(thick, 0); + penpos7(thick, 0); + penpos8(thick, 0); + penpos9(thick, 0); + + y10 = y11 = y2r - sign * 1/2[thin,thick]; + x10 = x6r; + x11 = x7l; + + fill z0l -- z0r{dir (sign * 20)} .. {sign * up}z6l -- z8l{sign * up} .. {dir (180 - sign * 15)}z2l -- z2r -- z3r -- z3l{dir (180 + sign * 15)} .. {sign * down}z9r -- z7r{sign * down} .. {dir (-sign * 20)}z1r -- z1l -- z5l -- z5r{dir (sign * 20)} .. {sign * up}z7l -- z11 -- z10 -- z6r{sign * down} .. {dir (-sign * 20)}z4r -- z4l -- cycle; + + penlabels(0,1,2,3,4,5,6,7,8,9,10,11); +enddef; + +def draw_sum(suffix $)(expr centre, width, height, thick) = + thin := 1/2thick; + + z1$ - z0$ = z3$ - z2$ = width * right; + z2$ - z0$ = height * up; + 1/2[1/2[z0$,z1$], 1/2[z2$,z3$]] = centre; + z4$ - z1$ = z3$ - z5$.l = 1/5height * up; + z6$ = whatever[z0$,z1$] + thick/2 * up = z4$ - whatever * dir 77; + z8$r = z2$ + whatever * right; + z8$l = z2$ + whatever * down; + + penpos 6$(thick, 90); + penpos 4$(thin, 167); + penpos 5$(thin, 180); + penpos 8$(5/6thick, 77); + + z13$ = centre; + penpos 13$(6/5thick, 10); + + z3$ - z7$ = 2/3thick * up; + z9$ = z13$r + whatever * (z8$l - z13$l) = z7$ + whatever * right; + + z10$r = z0$ + whatever * up; + z10$l = z0$ + whatever * right; + penpos 10$(3/4thick, 103); + + z11$ = z13$r + whatever * (z10$r - z13$l); + y11$ = y10$r; + + fill z10$l -- z6$l -- z4$l -- z4$r{-dir 77} .. {left}1/4[z6$r,z10$r] -- z11$ -- z13$r -- z9$ -- 1/4[z7$,z8$l]{right} .. {-dir 113}z5$r -- z5$l -- z3$ -- z8$r -- z8$l -- z13$l -- z10$r -- cycle; + + penlabels(0$,1$,2$,3$,4$,5$,6$,7$,8$,9$,10$,11$,12$,13$); +enddef; + +def draw_integral(suffix $)(expr scale, centre, thick) = + penpos0$(thick, 0); + penpos1$(thick, 0); + penpos2$(2/3thick, -90); + penpos3$(thick, 0); + penpos4$(2/3thick, -90); + + z0$ = 1/2[z1$,z3$] = 1/2[z2$,z4$]; + z1$ - z3$ = whatever * up; + z2$ - z4$ = whatever * dir 75; + + x0$ = xpart centre; + y2$l = h; + y6$r = -d; + y1$ = 2/3[y0$,y2$]; + + penpos5$(3/4thick,-105); + penpos6$(3/4thick,-82); + + y5$l = y2$l; + x5$r = 5/4[x1$, x2$]; + y6$l = y4$.l; + x6$r = 5/4[x3$, x4$]; + + ucorr := max (x2$r, x1$r + 1/4thick) - x2$r; + x2$ := x2$ + ucorr; + x2$l := x2$l + ucorr; + x2$r := x2$r + ucorr; + x5$ := x5$ + ucorr; + x5$r := x5$r + ucorr; + x5$l := x5$l + ucorr; + + lcorr := min (x4$l, x1$l - 1/4thick) - x4$l; + x4$ := x4$ + lcorr; + x4$l := x4$l + lcorr; + x4$r := x4$r + lcorr; + x6$ := x6$ + lcorr; + x6$r := x6$r + lcorr; + x6$l := x6$l + lcorr; + + fill z5$l .. z2$l{left} .. {down}z1$l -- z3$l{down} .. z4$l{left} .. z6$l -- z6$r + .. {up}z3$r -- z1$r{up} .. z2$r{right} .. z5$r -- cycle; + + penlabels(0$,1$,2$,3$,4$,5$,6$); +enddef; + +def draw_arrowhead_left(expr pos, angle, spread, thick) = + pair p[], p[].l, p[].r; + + p1 = pos; + p2 = pos + sqrt(2) * (spread + 1/2thick)/2 * dir (angle + 135); + 1/2[p1.l, p1.r] = p1; + 1/2[p2.l, p2.r] = p2; + p1.r - p1 = thick/(2 * sind 45) * dir angle; + p2.r - p2 = thick/2 * dir (angle + 45); + p3.l = whatever[p2.l,p1.l]; + p3.l = pos + 1/2thick * dir (angle - 90) + whatever * dir angle; + p3.r - p1.r = whatever * dir (angle - 105); + p3.r = pos + 1/2thick * dir (angle - 90) + whatever * dir angle; + fill p1.r -- p2.r -- p2.l -- p3.l -- p3.r -- cycle; +enddef; + +def draw_arrowhead_right(expr pos, angle, spread, thick) = + pair p[], p[].l, p[].r; + + p1 = pos; + p2 = pos + sqrt(2) * (spread + 1/2thick)/2 * dir (angle - 135); + 1/2[p1.l, p1.r] = p1; + 1/2[p2.l, p2.r] = p2; + p1.r - p1 = thick/(2 * sind 45) * dir angle; + p2.r - p2 = thick/2 * dir (angle - 45); + p3.l = whatever[p2.l,p1.l]; + p3.l = pos + 1/2thick * dir (angle + 90) + whatever * dir angle; + p3.r - p1.r = whatever * dir (angle + 105); + p3.r = pos + 1/2thick * dir (angle + 90) + whatever * dir angle; + fill p1.r -- p2.r -- p2.l -- p3.l -- p3.r -- cycle; +enddef; + +def draw_arrowhead(expr pos, angle, spread, thick) = + pair p[], p[].l, p[].r; + + p1 = pos; + p2 = pos + sqrt(2) * spread/2 * dir (angle + 135); + p3 = pos + sqrt(2) * spread/2 * dir (angle - 135); + 1/2[p1.l, p1.r] = p1; + 1/2[p2.l, p2.r] = p2; + 1/2[p3.l, p3.r] = p3; + p1.r - p1 = thick/(2 * sind 45) * dir angle; + p2.r - p2 = thick/2 * dir (angle + 45); + p3.r - p3 = thick/2 * dir (angle - 45); + + fill p1.r -- p2.r -- p2.l -- p1.l -- p3.l -- p3.r -- cycle; +enddef; + +% intersect the arrowhead curve with a path +def arrowhead_intersection(expr pos, angle, spread, p) = + (p intersectionpoint + ((pos + sqrt(2) * spread/2 * dir (angle + 135)) -- + pos -- (pos + sqrt(2) * spread/2 * dir (angle - 135))) + ) +enddef; + +def draw_bracket(expr sign, thick, draw_top, draw_mid, draw_bot, draw_double) = + penpos0(thick, 90 - sign * 90); + penpos1(thick, 90 - sign * 90); + penpos2(thick, 90); + penpos3(thick, 90); + penpos4(thick, 90); + penpos5(thick, 90); + penpos6(thick, 0); + penpos7(thick, 0); + + x3 - x2 = x5 - x4 = sign * (w - 2side_bearing); + 1/2[x2,x3] = w/2; + + if draw_top: + y1 = h; + else: + y1 = h + 1/2line_thickness; + fi; + + if draw_bot: + y0 = -d; + else: + y0 = -d - 1/2line_thickness; + fi; + + x1 = x0; + z6 = 1/2[z2l,z3l] + sign * 1/2thick * right; + z7 = 1/2[z4r,z5r] + sign * 1/2thick * right; + y2l = y3l; + y4r = y5r; + z2l = z0l; + z4r = z1l; + + if draw_mid: + fill stroke z0e -- z1e; + else: + if draw_bot: fill stroke z0e -- z0e + (w - 2side_bearing) * up; fi; + if draw_top: fill stroke z1e -- z1e + (w - 2side_bearing) * down; fi; + fi; + if draw_top: fill stroke z4e -- z5e; fi; + if draw_bot: fill stroke z2e -- z3e; fi; + if draw_double: fill stroke z6e -- z7e; fi; +enddef; + +def draw_angle(suffix $)(expr shift, sign, thick) = + x0$ = x1$ = x2$ + sign * (w - 2side_bearing -2abs shift - thick); + + top y1$ = h; + bot y0$ = -d; + 1/2[y0$,y1$] = y2$; + 1/2[x0$,x2$] = w/2 + shift; + + theta := angle(z0$ - z2$) + 90; + + penpos0$ (thick, theta); + penpos1$ (thick, -theta); + penpos2$ (thick * cosd theta, 0); + + fill stroke z0$e -- z2$e -- z1$e; + + penlabels(0$, 1$, 2$); +enddef; + +def draw_paren(expr sign, thick) = + penpos0(thick, 90 - sign * 45); + penpos1(thick, -90 + sign * 45); + penpos2(thick, 90 - sign * 90); + + x0 = x1 = x2 + sign * (w - 2side_bearing - thick); + y1.l = h; + y0.l = -d; + 1/2[y0,y1] = y2; + 1/2[x0r,x2l] = w/2; + + fill stroke z0e{3(x2e - x0e), y2e - y0e} .. z2e .. {3(x1e - x2e), y1e - y2e}z1e; + + penlabels(0,1,2); +enddef; + +def draw_brace(expr centre, size, width, alpha, thick, top_size, mid_size, bot_size) = + penpos1(5/6thick, alpha + 90); + penpos2(thick, alpha); + penpos2'(thick,alpha); + penpos3(thick, alpha); + penpos3'(thick,alpha); + penpos4(11/12thick, alpha+90); + penpos5(thick, alpha+180); + penpos5'(thick, alpha+180); + penpos6(thick, alpha+180); + penpos6'(thick, alpha+180); + penpos7(5/6thick, alpha+90); + + z1r - z7l = size * dir (alpha + 90); + + centre - 1/2[z1,z7] = z4 - centre = width/2 * dir alpha; + + z0 = centre; + + z3 = z0 + (1/3width + 1/2thick) * dir (alpha + 90); + z5 = z0 - (1/3width + 1/2thick) * dir (alpha + 90); + + z2 = z0 + (size/2 - 1/3width - thick) * dir (alpha + 90); + z6 = z0 - (size/2 - 1/3width - thick) * dir (alpha + 90); + + z3' = z0 + (mid_size/2 + 1/2line_thickness) * dir (alpha + 90); + z5' = z0 - (mid_size/2 + 1/2line_thickness) * dir (alpha + 90); + + z2' = z0 + (size/2 - top_size - 1/2line_thickness) * dir (alpha + 90); + z6' = z0 - (size/2 - bot_size - 1/2line_thickness) * dir (alpha + 90); + + beta := 0; + + if top_size > 0: + fill stroke z1e{dir alpha} .. {dir (alpha - 90)}z2e -- z2'e; + penlabels(1,2,2'); + elseif bot_size > 0: + fill stroke z7e{dir alpha} .. {dir (alpha + 90)}z6e -- z6'e; + penlabels(6',6,7); + elseif mid_size > 0: + fill stroke z3'e -- z3e{dir (alpha - 90)} .. {dir alpha}z4e; + fill stroke z5'e -- z5e{dir (alpha + 90)} .. {dir alpha}z4e; + penlabels(3',3,4,5,5'); + else: + fill stroke z1e{dir alpha} .. z2e{dir (alpha - 90)} -- z3e{dir (alpha - 90)} .. z4e{dir alpha}; + fill stroke z7e{dir alpha} .. {dir (alpha + 90)}z6e -- z5e{dir (alpha + 90)} .. {dir alpha}z4e; + penlabels(1,2,3,4,5,6,7); + fi; +enddef; + +def draw_root(expr thick) = + penpos0(rule_thickness, -90); + penpos0'(rule_thickness, -90); + penpos2(3/2thick, 0); + + y0l = h; + x0 = w; + z0' = z0 + 1/2line_thickness * right; + y1 = -d; + x1 = 4/9w; + x2 = 2/9w; + y2 = 1/2[y0, y1]; + z1' = z1 + thick * dir (angle (z1 - z2l) + 90); + y6 = h; + z6 = z0r + thick * dir (angle (z0r - z1') + 90) + whatever * (z0r - z1'); + + penpos3(1/2thick, angle (z1 - z2l)); + + z3l = z2r + 5/2thick * dir (angle (z1 - z2l) - 90); + z4 = z6 + whatever * (z0 - z1') = z2r + whatever * (z2l - z1); + z5 = whatever[z2l, z1] = z3r + whatever * dir (angle (z1 - z2l) - 90); + + fill z3r -- z5 -- z1 -- z1' -- z0r -- z0'r -- z0'l -- z6 -- z4 -- z2r -- z3l -- cycle; + + penlabels (0,0',1,1',2,3,4,5,6); +enddef; + +def draw_root_top(expr thick) = + y0 = h - 1/2rule_thickness; + x0 = w; + y1 = -d; + x1 = x2 = 4/9w + 1/2thick; + y2 = h - 1/2thick; + + draw_straight(z1, z2, thick, true); + draw_straight((x1,y0), z0, rule_thickness, true); +enddef; + +def draw_root_bot(expr thick) = + penpos0(thick, 0); + penpos0'(thick, -90); + penpos2(3/2thick, 0); + + y0 = h + 1/2thick; + x0l = x1; + y1 = -d; + x1 = 4/9w; + x2l = 1/9w; + y2 = 1/2[y0, y1]; + z1' = z1 + whatever * dir (angle (z1 - z2l) + 90); + x1' = x0r; + + penpos3(1/2thick, angle (z1 - z2l)); + + z3l = z2r + 5/2thick * dir (angle (z1 - z2l) - 90); + z4 = z0l + whatever * up = z2r + whatever * (z2l - z1); + z5 = whatever[z2l, z1] = z3r + whatever * dir (angle (z1 - z2l) - 90); + + fill z3r -- z5 -- z1 -- z1' -- z0r -- z0l -- z4 -- z2r -- z3l -- cycle; + + penlabels (0,1,1',2,3,4,5); +enddef; + +% Weierstrass macros + +def ellipse_set(suffix $,@,@@,$$) = + % given |z$,x@,z$$|, find |y@| and |z@@| + % such that the path |z${x@-x$,0}..z@{0,y@-y$}..{z$$-z@@}z@@| + % is consistent with an ellipse + % and such that the line |z@@--z$$| has a given |slope| + alpha_ := slope * (x@ - x$); + beta_ := y$$ - y$ - slope * (x$$ - x$); + gamma_ := alpha_ / beta_; + y@ - y$ = .5(beta_ - alpha_ * gamma_); + x@@ - x$ = -2gamma_ * (x@ - x$) / (1 + gamma_ * gamma_); + y@@ - y$$ = slope * (x@@ - x$$) +enddef; + +vardef super_arc.r(suffix $,$$) = + % outside of super-ellipse + + pair centre, corner; + + if y$ = y$r: + centre = (x$$r, y$r); + corner = (x$r, y$$r); + else: + centre = (x$r, y$$r); + corner = (x$$r, y$r); + fi + z$.r{corner - z$.r} ... superness[centre,corner]{z$$.r - z$.r} + ... {z$$.r - corner}z$$.r +enddef; + +vardef super_arc.l(suffix $,$$) = + % inside of super-ellipse + + pair centre, corner; + if y$ = y$r: + centre = (x$$l, y$l); + corner = (x$l, y$$l); + else: + centre = (x$l, y$$l); + corner = (x$$l, y$l); + fi + z$l{corner - z$l} ... superness[centre,corner]{z$$l - z$l} + ... {z$$l - corner}z$$l +enddef; + +vardef pulled_super_arc.r(suffix $,$$)(expr superpull) = + pair centre, corner; + + if y$ = y$r: + centre = (x$$r, y$r); + corner = (x$r, y$$r); + else: + centre = (x$r, y$$r); + corner = (x$$r, y$r); + fi + z$r{corner - z$r} ... superness[centre,corner]{z$$r - z$r} + ... {z$$r - corner}z$$r +enddef; + +vardef pulled_super_arc.l(suffix $,$$)(expr superpull) = + pair centre, corner, outer_point; + + if y$ = y$r: + centre = (x$$l, y$l); + corner = (x$l, y$$l); + outer_point = superness[(x$$r, y$r), (x$r, y$$r)]; + else: + centre = (x$l, y$$l); + corner = (x$$l, y$l); + outer_point = superness[(x$r, y$$r), (x$$r, y$r)]; + fi + z$l{corner - z$l} + ... superpull[superness[centre,corner], outer_point]{z$$l - z$l} + ... {z$$l - corner}z$$l +enddef; + +vardef pulled_arc@#(suffix $,$$) = + pulled_super_arc@#($,$$)(superpull) +enddef; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf new file mode 100644 index 00000000000..36c24dfcf75 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf @@ -0,0 +1,585 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +% thickness factor for delimiters +def dthick(expr scale) = + 1 +enddef; + +% parenthesis + +lparen_char = current_char + 1; +rparen_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "parenthesis"; + draw_paren(sign, dthick(scale) * line_thickness); + endchar; + endfor; +endfor; + +for sign = 1, -1: + beginsymbol((6 + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(3delim_height#)); "parenthesis -- top"; + thick := dthick(3) * line_thickness; + + penpos1(thick, -90 + sign * 60); + penpos2(thick, 90 - sign * 90); + penpos2'(thick, 90 - sign * 90); + + x1 = x2 + sign * (w - 2side_bearing - thick); + x2 = x2'; + y1 = h; + y2 = -d + 1/2line_thickness; + y2' = -d - 1/2line_thickness; + 1/2[x1r,x2l] = w/2; + + fill stroke z2'.e -- z2e{up} .. {3(x1e - x2e), y1e - y2e}z1e; + + penlabels(1,2,2'); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol((6 + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(3delim_height#)); "parenthesis -- bot"; + thick := dthick(3) * line_thickness; + + penpos0(thick, 90 - sign * 60); + penpos2(thick, 90 - sign * 90); + penpos2'(thick, 90 - sign * 90); + + x0 = x2 + sign * (w - 2side_bearing - thick); + x2 = x2'; + y2 = h - 1/2line_thickness; + y2' = h + 1/2line_thickness; + y0 = -d; + 1/2[x0r,x2l] = w/2; + + fill stroke z0e{3(x2e - x0e), y2e - y0e} .. {up}z2e -- z2'.e; + + penlabels(1,2,2'); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol((6 + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "parenthesis -- module"; + thick := dthick(3) * line_thickness; + + penpos1(thick, 90 - sign * 45); + penpos2(thick, 90 - sign * 90); + penpos3(thick, 90 - sign * 90); + + x2 = x3 = x1 - sign * (w - 2side_bearing - thick); + y2 = h + 1/2line_thickness; + y3 = -d - 1/2line_thickness; + 1/2[x1r,x2l] = w/2; + + fill stroke z2e -- z3e; + endchar; +endfor; + +extensible current_char - 1: current_char - 5, 0, current_char - 3, current_char - 1; %left parenthesis +extensible current_char: current_char - 4, 0, current_char - 2, current_char; %right parenthesis + +charlist lparen_char: lparen_char + 1: lparen_char + 2: lparen_char + 3: lparen_char + 4: lparen_char + 5: current_char - 1; +charlist rparen_char: rparen_char + 1: rparen_char + 2: rparen_char + 3: rparen_char + 4: rparen_char + 5: current_char; + +% brackets + +lsquare_char = current_char + 1; +rsquare_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "square bracket"; + draw_bracket(sign, dthick(scale) * line_thickness, true, true, true, false); + endchar; + endfor; +endfor; + +lfloor_char = current_char + 1; +rfloor_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "floor"; + draw_bracket(sign, dthick(scale) * line_thickness, false, true, true, false); + endchar; + endfor; +endfor; + +lceil_char = current_char + 1; +rceil_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "ceiling"; + draw_bracket(sign, dthick(scale) * line_thickness, true, true, false, false); + endchar; + endfor; +endfor; + +ulcorner_char = current_char + 1; +urcorner_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "upper corner"; + draw_bracket(sign, dthick(scale) * line_thickness, true, false, false, false); + endchar; + endfor; +endfor; + +charlist ulcorner_char: ulcorner_char + 1: ulcorner_char + 2: ulcorner_char + 3: ulcorner_char + 4: ulcorner_char + 5; +charlist urcorner_char: urcorner_char + 1: urcorner_char + 2: urcorner_char + 3: urcorner_char + 4: urcorner_char + 5; + +llcorner_char = current_char + 1; +lrcorner_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "lower corner"; + draw_bracket(sign, dthick(scale) * line_thickness, false, false, true, false); + endchar; + endfor; +endfor; + +charlist llcorner_char: llcorner_char + 1: llcorner_char + 2: llcorner_char + 3: llcorner_char + 4: llcorner_char + 5; +charlist lrcorner_char: lrcorner_char + 1: lrcorner_char + 2: lrcorner_char + 3: lrcorner_char + 4: lrcorner_char + 5; + +ullcorner_char = current_char + 1; +ulrcorner_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "upper/lower corner"; + draw_bracket(sign, dthick(scale) * line_thickness, true, false, true, false); + endchar; + endfor; +endfor; + +charlist ullcorner_char: ullcorner_char + 1: ullcorner_char + 2: ullcorner_char + 3: ullcorner_char + 4: ullcorner_char + 5; +charlist ulrcorner_char: ulrcorner_char + 1: ulrcorner_char + 2: ulrcorner_char + 3: ulrcorner_char + 4: ulrcorner_char + 5; + +for sign = 1, -1: + beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "square bracket -- top"; + draw_bracket(sign, dthick(3) * line_thickness, true, true, false, false); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "square bracket -- bot"; + draw_bracket(sign, dthick(3) * line_thickness, false, true, true, false); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "square bracket -- module"; + draw_bracket(sign, dthick(3) * line_thickness, false, true, false, false); + endchar; +endfor; + +extensible current_char - 1: current_char - 5, 0, current_char - 3, current_char - 1; %left square bracket +extensible current_char: current_char - 4, 0, current_char - 2, current_char; %right square bracket +extensible current_char - 3: 0, 0, current_char - 3, current_char - 1; %left floor +extensible current_char - 2: 0, 0, current_char - 2, current_char; %right floor +extensible current_char - 5: current_char - 5, 0, 0, current_char - 1; %left ceiling +extensible current_char - 4: current_char - 4, 0, 0, current_char; %right ceiling + +charlist lsquare_char: lsquare_char + 1: lsquare_char + 2: lsquare_char + 3: lsquare_char + 4: lsquare_char + 5: current_char - 1; +charlist rsquare_char: rsquare_char + 1: rsquare_char + 2: rsquare_char + 3: rsquare_char + 4: rsquare_char + 5: current_char; +charlist lfloor_char: lfloor_char + 1: lfloor_char + 2: lfloor_char + 3: lfloor_char + 4: lfloor_char + 5: current_char - 3; +charlist rfloor_char: rfloor_char + 1: rfloor_char + 2: rfloor_char + 3: rfloor_char + 4: rfloor_char + 5: current_char - 2; +charlist lceil_char: lceil_char + 1: lceil_char + 2: lceil_char + 3: lceil_char + 4: lceil_char + 5: current_char - 5; +charlist rceil_char: rceil_char + 1: rceil_char + 2: rceil_char + 3: rceil_char + 4: rceil_char + 5: current_char - 4; + +% semantic brackets + +lsem_char = current_char + 1; +rsem_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + 2line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "semantic bracket"; + draw_bracket(sign, dthick(scale) * line_thickness, true, true, true, true); + endchar; + endfor; +endfor; + +for sign = 1, -1: + beginsymbol(5u# + 2line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "semantic bracket -- top"; + draw_bracket(sign, dthick(3) * line_thickness, true, true, false, true); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol(5u# + 2line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "semantic bracket -- bot"; + draw_bracket(sign, dthick(3) * line_thickness, false, true, true, true); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "semantic bracket -- module"; + draw_bracket(sign, dthick(3) * line_thickness, false, true, false, true); + endchar; +endfor; + +extensible current_char - 1: current_char - 5, 0, current_char - 3, current_char - 1; %left semantic bracket +extensible current_char: current_char - 4, 0, current_char - 2, current_char; %right semantic bracket + +charlist lsem_char: lsem_char + 1: lsem_char + 2: lsem_char + 3: lsem_char + 4: lsem_char + 5: current_char - 1; +charlist rsem_char: rsem_char + 1: rsem_char + 2: rsem_char + 3: rsem_char + 4: rsem_char + 5: current_char; + +% curly braces + +lcurly_char = current_char + 1; +rcurly_char = current_char + 7; +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "curly brace"; + thick := dthick(scale) * line_thickness; + + draw_brace((w/2, (h-d)/2), h + d, w - 2side_bearing, 90 + sign * 90, thick, 0, 0, 0) + endchar; + endfor; +endfor; + +beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- top"; + thick := dthick(3) * line_thickness; + + draw_brace((w/2, h - 3delim_height), 6delim_height, w - 2side_bearing, 180, thick, 0, 0, h + d); +endchar; + +beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- top"; + thick := dthick(3) * line_thickness; + + draw_brace((w/2, h - 3delim_height), 6delim_height, w - 2side_bearing, 0, thick, h + d, 0, 0); +endchar; + +beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- bot"; + thick := dthick(3) * line_thickness; + + draw_brace((w/2, 3delim_height - d), 6delim_height, w - 2side_bearing, 180, thick, h + d, 0, 0) +endchar; + +beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- bot"; + thick := dthick(3) * line_thickness; + + draw_brace((w/2, 3delim_height - d), 6delim_height, w - 2side_bearing, 0, thick, 0, 0, h + d) +endchar; + +for sign = 1, -1: + beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- middle"; + thick := dthick(3) * line_thickness; + + draw_brace((w/2, (h-d)/2), 6delim_height, w - 2side_bearing, 90 + sign * 90, thick, 0, h + d, 0); + endchar; +endfor; + +beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "curly brace -- module"; + thick := dthick(3) * line_thickness; + + x2 = x3 = w/2; + y2 = h + 1/2line_thickness; + y3 = -d - 1/2line_thickness; + + draw_straight(z2, z3, thick, false); +endchar; + +extensible current_char - 6: current_char - 6, 0, current_char - 4, current_char; %sharp left parenthesis +extensible current_char - 5: current_char - 5, 0, current_char - 3, current_char; %sharp right parenthesis +extensible current_char - 3: current_char - 6, 0, current_char - 3, current_char; %left moustache +extensible current_char - 4: current_char - 5, 0, current_char - 4, current_char; %right moustache +extensible current_char - 2: current_char - 6, current_char - 2, current_char - 4, current_char; %left curly brace +extensible current_char - 1: current_char - 5, current_char - 1, current_char - 3, current_char; %right curly brace +extensible current_char: 0, 0, 0, current_char; %vertical line + +charlist lcurly_char: lcurly_char + 1: lcurly_char + 2: lcurly_char + 3: lcurly_char + 4: lcurly_char + 5: current_char - 2; +charlist rcurly_char: rcurly_char + 1: rcurly_char + 2: rcurly_char + 3: rcurly_char + 4: rcurly_char + 5: current_char - 1; + +% angle brackets + +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "angle bracket"; + draw_angle(a, 0, sign, dthick(scale) * line_thickness); + endchar; + endfor; + charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 8)/2 * u# + 2line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "double angle bracket"; + thick := dthick(scale) * line_thickness; + + draw_angle(a, -5/4thick, sign, thick); + draw_angle(b, 5/4thick, sign, thick); + endchar; + endfor; + charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "angle bracket with dot"; + thick := dthick(scale) * line_thickness; + + draw_angle(a, 0, sign, thick); + + if sign > 0: + x3 = w - side_bearing - 3/4dot_size; + else: + x3 = side_bearing + 3/4dot_size; + fi + y3 = 1/2(h - d); + + fill dot(z3, 3/4dot_size); + endchar; + endfor; + charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; +endfor; + +% slash + +for sign = 1, -1: + for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol(6scale * u# + line_thickness# + side_bearing#, vcentre(2scale * delim_height#)); "slash"; + x1 - x0 = sign * (w - 2side_bearing - line_thickness); + y1 = h; + y0 = -d; + 1/2[x0,x1] = w/2; + + draw_line(z0, z1, false); + endchar; + endfor; + charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; +endfor; + +% vertical bars + +for negated = false, true: + for scale = 0.5, 1, 1.2: + beginsymbol(2u# + if negated: 2u# + floor scale * u# else: 0u# fi + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "vertical bar"; + x0 = x1 = w/2; + y0 = h; + y1 = -d; + + draw_line(z0, z1, false); + + if negated: + if scale < 1: theta := 30; else: theta := 45; fi + len := 1/2(4u + floor scale * u) / cosd theta; + + draw_straight(1/2[z0,z1] + len * dir theta, 1/2[z0,z1] - len * dir theta, stroke_through_thickness, true); + fi + endchar; + endfor; +endfor; + +beginsymbol(2u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "vertical bar -- module"; + x0 = x1 = w/2; + y0 = h + 1/2line_thickness; + y1 = -d - 1/2line_thickness; + + draw_line(z0, z1, false); +endchar; + +extensible current_char: 0, 0, 0, current_char; % vertical bar +charlist current_char - 5: current_char - 4: current_char; + +for negated = false, true: + for scale = 0.5, 1, 1.2: + beginsymbol(5u# + if negated: 2u# + floor scale * u# else: 0u# fi + 2line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "double vertical bar"; + x0 = x1; + x2 = x3; + 1/2[x0,x2] = w/2; + x2 - x0 = 3u + line_thickness; + y0 = y2 = h; + y1 = y3 = -d; + + draw_line(z0, z1, false); + draw_line(z2, z3, false); + + if negated: + if scale < 1: theta := 30; else: theta := 45; fi + len := 1/2(7u + floor scale * u + line_thickness) / cosd theta; + pair centre; + centre := 1/2[1/2[z0,z1],1/2[z2,z3]]; + + draw_straight(centre + len * dir theta, centre - len * dir theta, stroke_through_thickness, true); + fi + endchar; + endfor; +endfor; + +beginsymbol(5u# + 2line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "double vertical bar -- module"; + x0 = x1; + x2 = x3; + 1/2[x0,x2] = w/2; + x2 - x0 = 3u + line_thickness; + y0 = y2 = h + 1/2line_thickness; + y1 = y3 = -d - 1/2line_thickness; + + draw_line(z0, z1, false); + draw_line(z2, z3, false); +endchar; + +extensible current_char: 0, 0, 0, current_char; % double vertical line +charlist current_char - 5: current_char -4: current_char; + +for scale = 1, 1.2: + beginsymbol(8u# + 3line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "tripe vertical bar"; + x0 = x1; + x2 = x3; + x4 = x5; + 1/2[x0,x4] = w/2; + x2 - x0 = x4 - x2 = 3u + line_thickness; + y0 = y2 = y4 = h; + y1 = y3 = y5 = -d; + + draw_line(z0, z1, false); + draw_line(z2, z3, false); + draw_line(z4, z5, false); + endchar; +endfor; + +beginsymbol(8u# + 3line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "triple vertical bar -- module"; + x0 = x1; + x2 = x3; + x4 = x5; + 1/2[x0,x4] = w/2; + x2 - x0 = x4 - x2 = 3u + line_thickness; + y0 = y2 = y4 = h + 1/2line_thickness; + y1 = y3 = y5 = -d - 1/2line_thickness; + + draw_line(z0, z1, false); + draw_line(z2, z3, false); + draw_line(z4, z5, false); +endchar; + +extensible current_char: 0, 0, 0, current_char; % triple vertical line +charlist current_char - 2: current_char -1: current_char; + +% Arrows + +for arrow_dir = 90, 270: + beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "arrow up/down"; + pair foot, head; + + if arrow_dir = 90: + head = (w/2, h - 1/2line_thickness); + foot = (w/2, -d); + else: + head = (w/2, -d + 1/2line_thickness); + foot = (w/2, h + 1/2line_thickness); + fi; + + draw_line(foot, head, false); + draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness); + endchar; +endfor; + +beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "arrow module"; + z0 = (w/2, h); + z1 = (w/2, -d); + + draw_line(z0, z1, true); +endchar; + +extensible current_char-2: current_char-2, 0, current_char, current_char; +extensible current_char-1: current_char, 0, current_char-1, current_char; +extensible current_char: current_char-2, 0, current_char-1, current_char; + +for arrow_dir = 90, 270: + beginsymbol(7u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "double arrow up/down"; + pair foot, head; + + if arrow_dir = 90: + head = (w/2, h - 1/2line_thickness); + foot = (w/2, -d - 1/2line_thickness); + else: + head = (w/2, -d + 1/2line_thickness); + foot = (w/2, h + 1/2line_thickness); + fi; + + z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90); + 1/2[z0,z1] = foot; + 1/2[z2,z3] = head; + + draw_line(z0, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z0 -- z2), false); + draw_line(z1, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z1 -- z3), false); + draw_arrowhead(head, arrow_dir, 13/10arrow_spread, line_thickness); + endchar; +endfor; + +beginsymbol(7u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "double arrow module"; + z1 - z0 = z3 - z2 = equal_spread * right; + 1/2[z0,z1] = (w/2, h); + 1/2[z2,z3] = (w/2, -d); + + draw_line(z0, z2, true); + draw_line(z1, z3, true); +endchar; + +extensible current_char-2: current_char-2, 0, current_char, current_char; +extensible current_char-1: current_char, 0, current_char-1, current_char; +extensible current_char: current_char-2, 0, current_char-1, current_char; + +% horizontal curly braces + +beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- left"; + draw_brace((3delim_height, (h-d)/2), 6delim_height, h + d, 90, line_thickness, w, 0, 0); +endchar; + +beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- left"; + draw_brace((3delim_height, (h-d)/2), 6delim_height, h + d, -90, line_thickness, 0, 0, w); +endchar; + +beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- right"; + draw_brace((w - 3delim_height, (h-d)/2), 6delim_height, h + d, 90, line_thickness, 0, 0, w); +endchar; + +beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- right"; + draw_brace((w - 3delim_height, (h-d)/2), 6delim_height, h + d, -90, line_thickness, w, 0, 0); +endchar; + +for sign = 1, -1: + beginsymbol(delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- middle"; + draw_brace((w/2, (h-d)/2), 6delim_height, h + d, sign * 90, line_thickness, 0, w, 0); + endchar; +endfor; + +beginsymbol(u#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- module"; + y2 = y3 = (h - d)/2; + x2 = -1/2line_thickness; + x3 = w + 1/2line_thickness; + + draw_line(z2, z3, false); +endchar; + +% roots + +root_char = current_char + 1; + +for scale = 1, 1.2, 1.5, 1.8, 2.4, 3: + beginsymbol((4scale + 2) * u# + 5/2line_thickness# + 2side_bearing#, rule_thickness#, 2scale * delim_height# - rule_thickness#); "root"; + draw_root(line_thickness); + endchar; +endfor; + +beginsymbol(14u# + 5/2line_thickness# + 2side_bearing#, rule_thickness#, 1.2delim_height# - rule_thickness#); "root -- top"; + draw_root_top(line_thickness); +endchar; + +beginsymbol(14u# + 5/2line_thickness# + 2side_bearing#, 0, 2.4delim_height#); "root -- bottom"; + draw_root_bot(line_thickness); +endchar; + +beginsymbol(14u# + 5/2line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "root -- module"; + x0 = x1 = 4/9w + 1/2line_thickness; + y0 = h; + y1 = -d; + + draw_line(z0, z1, true); +endchar; + +extensible current_char - 2: current_char - 2, 0, current_char - 1, current_char; +charlist root_char: root_char + 1: root_char + 2: root_char + 3: root_char + 4: root_char + 5: current_char - 2; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf new file mode 100644 index 00000000000..520b34e5ec7 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf @@ -0,0 +1,1837 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +beginsymbol(2dot_size# + 2side_bearing#, vcentre(2dot_size#)); "centre dot"; + fill dot((w/2, (h-d)/2), dot_size); +endchar; + +for alpha = 0, 90, 45, 135: + beginsymbol((4dot_size# + equal_spread#) * abs (cosd alpha) + 2dot_size# * abs (sind alpha) + 2side_bearing#, vcentre(2dot_size# * abs (cosd alpha) + (4dot_size# + equal_spread#) * abs (sind alpha))); "colon (" & decimal alpha & ")"; + pair centre; + centre := (w/2, (h-d)/2); + + z1 - z0 = (2dot_size + equal_spread) * dir alpha; + 1/2[z0,z1] = centre; + + fill dot(z0, dot_size); + fill dot(z1, dot_size); + endchar; +endfor; + +for alpha = 0, 90, 45, 135: + beginsymbol((6dot_size# + 2equal_spread#) * abs (cosd alpha) + 2dot_size# * abs (sind alpha) + 2side_bearing#, vcentre(2dot_size# * abs (cosd alpha) + (6dot_size# + 2equal_spread#) * abs (sind alpha))); "triple colon (" & decimal alpha & ")"; + pair centre; + centre := (w/2, (h-d)/2); + + z1 - z0 = (2dot_size + equal_spread) * dir alpha; + z2 - z1 = (2dot_size + equal_spread) * dir alpha; + z1 = centre; + + fill dot(z0, dot_size); + fill dot(z1, dot_size); + fill dot(z2, dot_size); + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginoperator(plus_size#, 1); "therefore (" & decimal alpha & ")"; + r := 1/2plus_size - dot_size; + r := r * 1/3[1, sqrt 2]; + + z1 = z0 + r * dir alpha; + z2 = z0 + r * dir (alpha + 120); + z3 = z0 + r * dir (alpha + 240); + + 1/2[z1,1/2[z2,z3]] = centre; + + fill dot(z1, dot_size); + fill dot(z2, dot_size); + fill dot(z3, dot_size); + endchar; +endfor; + +beginoperator(plus_size#, 1); "double colon"; + r := (1/2plus_size - dot_size) * sqrt(2); + + fill dot(centre + r * dir 45, dot_size); + fill dot(centre + r * dir 135, dot_size); + fill dot(centre + r * dir 225, dot_size); + fill dot(centre + r * dir 315, dot_size); +endchar; + +beginoperator(plus_size#, 1); "minus"; + draw_line(centre + radius * right, centre + radius * left, true); +endchar; + +beginoperator(plus_size#, 1); "medium slash"; + draw_line(centre + 4/3radius * dir 45, centre + 4/3radius * dir 225, true); +endchar; + +beginoperator(plus_size#, 1); "medium backslash"; + draw_line(centre + 4/3radius * dir 135, centre + 4/3radius * dir 315, true); +endchar; + +beginoperator(plus_size#, 1); "plus"; + draw_line(centre + radius * right, centre + radius * left, true); + draw_line(centre + radius * up, centre + radius * down, true); +endchar; + +beginoperator(plus_size#, 1); "times"; + r := 4/3radius; + + draw_line(centre + r * dir 45, centre + r * dir 225, true); + draw_line(centre + r * dir 135, centre + r * dir 315, true); +endchar; + +beginoperator(plus_size#, 1.25); "plus minus"; + centre := centre + 0.125plus_size * up; + pair bt; + bt := centre + (radius + 0.25plus_size) * down; + + draw_line(centre + radius * right, centre + radius * left, true); + draw_line(centre + radius * up, centre + radius * down, true); + draw_line(bt + radius * right, bt + radius * left, true); +endchar; + +beginoperator(plus_size#, 1.25); "minus plus"; + centre := centre + 0.125plus_size * down; + pair tp; + tp := centre + (radius + 0.25plus_size) * up; + + draw_line(centre + radius * right, centre + radius * left, true); + draw_line(centre + radius * up, centre + radius * down, true); + draw_line(tp + radius * right, tp + radius * left, true); +endchar; + +for angle = 0, 180: + beginoperator(plus_size#, 1); "dot minus (" & decimal angle & ")"; + draw_line(centre - radius * dir angle, centre + radius * dir angle, true); + fill dot(centre + equal_spread * dir (angle + 90), 3/4dot_size); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "minus with two dots"; + draw_line(centre + radius * right, centre + radius * left, true); + fill dot(centre + sign * (radius - 3/4dot_size) * left + equal_spread * up, 3/4dot_size); + fill dot(centre + sign * (radius - 3/4dot_size) * right + equal_spread * down, 3/4dot_size); + endchar; +endfor; + +beginoperator(plus_size#, 1); "minus with four dots"; + draw_line(centre + radius * right, centre + radius * left, true); + fill dot(centre + (radius - 3/4dot_size) * left + equal_spread * up, 3/4dot_size); + fill dot(centre + (radius - 3/4dot_size) * right + equal_spread * up, 3/4dot_size); + fill dot(centre + (radius - 3/4dot_size) * left + equal_spread * down, 3/4dot_size); + fill dot(centre + (radius - 3/4dot_size) * right + equal_spread * down, 3/4dot_size); +endchar; + +beginoperator(plus_size#, 1); "divide"; + draw_line(centre + radius * right, centre + radius * left, true); + fill dot(centre + equal_spread * up, 3/4dot_size); + fill dot(centre + equal_spread * down, 3/4dot_size); +endchar; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "logical not"; + draw_line(centre + radius * left, centre + radius * right, true); + draw_line(centre + sign * radius * right, centre + sign * radius * right + equal_spread * down, true); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "upside down logical not"; + draw_line(centre + radius * left, centre + radius * right, true); + draw_line(centre + sign * radius * right, centre + sign * radius * right + equal_spread * up, true); + endchar; +endfor; + +for sign = -1, 1: + beginoperator(plus_size#, 1); "three times"; + r := 4/3radius; + + z0 = centre + r * dir (sign * 45); + z1 = centre + r * dir (sign * 225); + z2 = centre + r * dir (270 + sign * 45); + z3 = centre + 1/4line_thickness * dir (270 + sign * 45); + + draw_line(z0, z1, true); + draw_line(z3, z2, true); + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginoperator(plus_size#, 1); "closed times (" & decimal alpha & ")"; + thick := line_thickness; + r := 4/3radius; + + z0 = centre + (r + 1/2line_thickness) * dir (alpha + 45); + z1 = centre + r * dir (alpha + 315); + z2 = centre + r * dir (alpha + 225); + z3 = centre + (r + 1/2line_thickness) * dir (alpha + 135); + + penpos0(thick,alpha + 315); + penpos1(thick,alpha + 45); + penpos2(thick,alpha + 315); + penpos3(thick,alpha + 45); + + z5 = z1r + whatever * dir (270 + alpha - 15); + z6 = z2l + whatever * dir (270 + alpha + 15); + z5 = whatever[z1r + thick * dir (270 + alpha), z2l + thick * dir (270 + alpha)]; + z6 = whatever[z1r + thick * dir (270 + alpha), z2l + thick * dir (270 + alpha)]; + + fill stroke z0e -- z2e; + fill stroke z1e -- z3e; + fill z1r -- z5 -- z6 -- z2l -- cycle; + + penlabels(0,1,2,3,5,6); + endchar; +endfor; + +for alpha = 0, 90: + beginoperator(plus_size#, 1); "bowtie (" & decimal alpha & ")"; + thick := line_thickness; + r := 4/3radius; + + z0 = centre + r * dir (alpha + 135); + z1 = centre + r * dir (alpha + 45); + z2 = centre + r * dir (alpha + 315); + z3 = centre + r * dir (alpha + 225); + + penpos0(thick,alpha + 45); + penpos1(thick,alpha + 135); + penpos2(thick,alpha + 45); + penpos3(thick,alpha + 135); + + z4 = z0r + whatever * dir (180 + alpha + 15); + z5 = z1r + whatever * dir (alpha - 15); + z6 = z2l + whatever * dir (alpha + 15); + z7 = z3l + whatever * dir (180 + alpha - 15); + z4 = whatever[z0r + thick * dir (180 + alpha), z3l + thick * dir (180 + alpha)]; + z5 = whatever[z1r + thick * dir alpha, z2l + thick * dir alpha]; + z6 = whatever[z1r + thick * dir alpha, z2l + thick * dir alpha]; + z7 = whatever[z0r + thick * dir (180 + alpha), z3l + thick * dir (180 + alpha)]; + + fill stroke z0e -- z2e; + fill stroke z1e -- z3e; + fill z1r -- z5 -- z6 -- z2l -- cycle; + fill z0r -- z4 -- z7 -- z3l -- cycle; + + penlabels(0,1,2,3,4,5,6,7); + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginoperator(plus_size#, 1); "Y (" & decimal alpha & ")"; + s := 1/15plus_size; + + draw_line(centre - s * dir alpha, centre + radius * dir alpha, true); + draw_line(centre - s * dir alpha, centre - s * dir alpha + (radius + s) * dir (alpha + 135), true); + draw_line(centre - s * dir alpha, centre - s * dir alpha + (radius + s) * dir (alpha + 225), true); + endchar; +endfor; + +% operators + +for sign = 1, -1: + beginoperator(plus_size#, 1); "wedge"; + draw_less(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "wedge dot"; + draw_less(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false); + fill dot(centre - sign * 1/3plus_size * up, 3/4dot_size); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol(13/9plus_size# + 2side_bearing#, vcentre(plus_size#)); "double wedge"; + 1/2[z0,z1] = (w/2, (h-d)/2); + z1 - z0 = 4/9plus_size * right; + + draw_less(a, z0 + sign * plus_size/2 * up, z0 - sign * plus_size/2 * up, 2radius, line_thickness, false); + draw_less(b, z1 + sign * plus_size/2 * up, z1 - sign * plus_size/2 * up, 2radius, line_thickness, false); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "curly wedge"; + draw_prec(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "curly wedge dot"; + draw_prec(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false); + fill dot(1/2[z1a.l,z0a.r] + sign * 3/4dot_size * up, 3/4dot_size); + endchar; +endfor; + +for sign = 1, -1: + beginsymbol(13/9plus_size# + 2side_bearing#, vcentre(plus_size#)); "double curly wedge"; + 1/2[z0,z1] = (w/2, (h-d)/2); + z1 - z0 = 4/9plus_size * right; + + draw_prec(a, z0 + sign * plus_size/2 * up, z0 - sign * plus_size/2 * up, 2radius, line_thickness, false); + draw_prec(b, z1 + sign * plus_size/2 * up, z1 - sign * plus_size/2 * up, 2radius, line_thickness, false); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "union"; + draw_subset(a,centre - sign * plus_size/2 * up, centre + sign * plus_size/2 * up, 2radius, line_thickness); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(4/3plus_size#, 1); "double union"; + draw_subset(a, centre - sign * 5/18plus_size * up, centre + sign * 2/3plus_size * up, 5/6radius, line_thickness); + draw_subset(b, centre - sign * 2/3plus_size * up, centre + sign * 2/3plus_size * up, 2radius, line_thickness); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "union dot"; + draw_subset(a, centre - sign * plus_size/2 * up, centre + sign * plus_size/2 * up, 2radius, line_thickness); + fill dot(centre + sign * 1/6plus_size * up, 3/4dot_size); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "union plus"; + draw_subset(a, centre - sign * plus_size/2 * up, centre + sign * plus_size/2 * up, 2radius, line_thickness); + + t := 22/10line_thickness; + r := radius - t; + + draw_line(centre + sign * 1/6plus_size * up + r * right, centre + sign * 1/6plus_size * up + r * left, true); + draw_line(centre + (r + sign * 1/6plus_size) * up, centre + (r - sign * 1/6plus_size) * down, true); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "square union"; + z3 - z0 = z2 - z1 = 2radius * right; + z0 - z1 = sign * 2radius * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z1, true); + draw_line(z1, z2, false); + draw_line(z2, z3, true); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(4/3plus_size#, 1); "double square union"; + z3a - z0a = z2a - z1a = 2radius * right; + z0a - z1a = sign * 2radius * up; + 1/2[1/2[z0a,z1a], 1/2[z2a,z3a]] = centre; + z3b - z0b = z2b - z1b = 5/9plus_size * right; + z0b - z1b = sign * 17/12radius * up; + y0b = y0a; + 1/2[x0b, x3b] = xpart centre; + + draw_line(z0a, z1a, true); + draw_line(z1a, z2a, false); + draw_line(z2a, z3a, true); + draw_line(z0b, z1b, true); + draw_line(z1b, z2b, false); + draw_line(z2b, z3b, true); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "square union dot"; + z3 - z0 = z2 - z1 = 2radius * right; + z0 - z1 = sign * 2radius * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z1, true); + draw_line(z1, z2, false); + draw_line(z2, z3, true); + fill dot(centre + sign * 1/6plus_size * up, 3/4dot_size); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "square union plus"; + z3 - z0 = z2 - z1 = 2radius * right; + z0 - z1 = sign * 2radius * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z1, true); + draw_line(z1, z2, false); + draw_line(z2, z3, true); + + t := 22/10line_thickness; + r := radius - t; + + draw_line(centre + sign * 1/6plus_size * up + r * right, centre + sign * 1/6plus_size * up + r * left, true); + draw_line(centre + (r + sign * 1/6plus_size) * up, centre + (r - sign * 1/6plus_size) * down, true); + endchar; +endfor; + +for alpha = 0, 180: + beginoperator(plus_size#, 1); "corner with dot"; + z3 - z0 = z2 - z1 = 2radius * dir alpha; + z0 - z1 = 2radius * dir (alpha + 90); + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z1, z2, true); + draw_line(z2, z3, true); + fill dot(centre, 3/4dot_size); + endchar; +endfor; + +% triangles + +for alpha = 0, 90, 180, 270: + beginsymbol((3/4small_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4small_op_size# + 3/2line_thickness#) * abs(sind alpha))); "small triangle (" & decimal alpha & ")"; + thick := line_thickness; + radius := small_op_size/2; + centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha; + + draw_triangle(a, centre, radius, alpha, thick); + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginsymbol((3/4small_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4small_op_size# + 3/2line_thickness#) * abs(sind alpha))); "small filled triangle (" & decimal alpha & ")"; + thick := line_thickness; + radius := small_op_size/2; + centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha; + + filldraw_triangle(a, centre, radius, alpha, thick); + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginsymbol((3/4med_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4med_op_size# + 3/2line_thickness#) * abs(sind alpha))); "medium triangle (" & decimal alpha & ")"; + thick := line_thickness; + radius := med_op_size/2; + centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha; + + draw_triangle(a, centre, radius, alpha, thick); + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginsymbol((3/4med_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4med_op_size# + 3/2line_thickness#) * abs(sind alpha))); "medium filled triangle (" & decimal alpha & ")"; + thick := line_thickness; + radius := med_op_size/2; + centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha; + + filldraw_triangle(a, centre, radius, alpha, thick); + endchar; +endfor; + +for alpha = 90, 270: + beginsymbol(sqrt(3) * (large_op_size#/2 + line_thickness#) + 2side_bearing#, vcentre(3/4large_op_size# + 3/2line_thickness#)); "large triangle (" & decimal alpha & ")"; + thick := line_thickness; + radius := large_op_size/2; + centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha; + + draw_triangle(a, centre, radius, alpha, thick); + endchar; +endfor; + +% circles + +beginoperator(4/5small_op_size#, 1); "small circle"; + draw_circle(centre, radius, line_thickness); +endchar; + +beginoperator(4/5small_op_size#, 1); "small filled circle"; + filldraw_circle(centre, radius, line_thickness); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle"; + draw_circle(centre, radius, line_thickness); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium filled circle"; + filldraw_circle(centre, radius, line_thickness); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle minus"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + radius * left, centre + radius * right, false); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle bar"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + radius * up, centre + radius * down, false); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle slash"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + radius * dir 45, centre + radius * dir 225, false); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle backslash"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + radius * dir 135, centre + radius * dir 315, false); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle plus"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + radius * left, centre + radius * right, false); + draw_line(centre + radius * up, centre + radius * down, false); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle times"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + radius * dir 45, centre + radius * dir 225, false); + draw_line(centre + radius * dir 135, centre + radius * dir 315, false); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle dot"; + draw_circle(centre, radius, line_thickness); + fill dot(centre, dot_size); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle circle"; + draw_circle(centre, radius, line_thickness); + draw_circle(centre, 2/5radius, line_thickness); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle asterisk"; + thick := line_thickness; + + draw_circle(centre, radius, thick); + + penpos a0(4/3thick, 0); + penpos a1(4/3thick, 60); + penpos a2(4/3thick, 120); + penpos a3(4/3thick, 180); + penpos a4(4/3thick, 240); + penpos a5(4/3thick, 300); + + penpos b0(2/3thick, 0); + penpos b1(2/3thick, 60); + penpos b2(2/3thick, 120); + penpos b3(2/3thick, 180); + penpos b4(2/3thick, 240); + penpos b5(2/3thick, 300); + + reg_poly_points(a)(6, centre, radius, 90); + + z.b0 = z.b1 = z.b2 = z.b3 = z.b4 = z.b5 = centre; + + fill stroke z.a0e -- z.b0e; + fill stroke z.a1e -- z.b1e; + fill stroke z.a2e -- z.b2e; + fill stroke z.a3e -- z.b3e; + fill stroke z.a4e -- z.b4e; + fill stroke z.a5e -- z.b5e; +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle dash"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + 2/3radius * left, centre + 2/3radius * right, false); +endchar; + +beginoperator(4/5med_op_size#, 1); "medium circle equal"; + draw_circle(centre, radius, line_thickness); + draw_line(centre + 2/5equal_spread * up + 2/3radius * left, centre + 2/5equal_spread * up + 2/3radius * right, false); + draw_line(centre + 2/5equal_spread * down + 2/3radius * left, centre + 2/5equal_spread * down + 2/3radius * right, false); +endchar; + +for sign = 1,-1: + beginoperator(4/5med_op_size#, 1); "negated medium circle"; + r := 4/3radius; + + draw_circle(centre, radius, line_thickness); + draw_line(centre + r * dir (sign * 45), centre + r * dir (sign * 225), true); + endchar; +endfor; + +beginoperator(4/5large_op_size#, 1); "large circle"; + draw_circle(centre, radius, line_thickness); +endchar; + +beginoperator(4/5large_op_size#, 1); "large filled circle"; + filldraw_circle(centre, radius, line_thickness); +endchar; + +% squares + +beginoperator(small_op_size#/sqrt(2), 1); "small square"; + draw_square(centre, radius, 0, line_thickness); +endchar; + +beginoperator(small_op_size#/sqrt(2), 1); "small filled square"; + filldraw_square(centre, radius, 0, line_thickness); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square"; + draw_square(centre, radius, 0, line_thickness); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium filled square"; + filldraw_square(centre, radius, 0, line_thickness); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square minus"; + draw_square(centre, radius, 0, line_thickness); + draw_line(centre + radius * right, centre + radius * left, false); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square vert"; + draw_square(centre, radius, 0, line_thickness); + draw_line(centre + radius * up, centre + radius * down, false); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square slash"; + r := radius * sqrt(2); + + draw_square(centre, radius, 0, line_thickness); + draw_line(centre + r * dir 45, centre + r * dir 225, false); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square backslash"; + r := radius * sqrt(2); + + draw_square(centre, radius, 0, line_thickness); + draw_line(centre + r * dir 135, centre + r * dir 315, false); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square plus"; + draw_square(centre, radius, 0, line_thickness); + draw_line(centre + radius * right, centre + radius * left, false); + draw_line(centre + radius * up, centre + radius * down, false); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square times"; + r := radius * sqrt(2); + + draw_square(centre, radius, 0, line_thickness); + draw_line(centre + r * dir 45, centre + r * dir 225, false); + draw_line(centre + r * dir 135, centre + r * dir 315, false); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square dot"; + draw_square(centre, radius, 0, line_thickness); + fill dot(centre, dot_size); +endchar; + +beginoperator(med_op_size#/sqrt(2), 1); "medium square square"; + draw_square(centre, radius, 0, line_thickness); + draw_square(centre, 2/5radius, 0, line_thickness); +endchar; + +beginoperator(large_op_size#/sqrt(2), 1); "large square"; + draw_square(centre, radius, 0, line_thickness); +endchar; + +beginoperator(large_op_size#/sqrt(2), 1); "large filled square"; + filldraw_square(centre, radius, 0, line_thickness); +endchar; + +beginoperator(small_op_size#, 1); "small diamond"; + draw_square(centre, radius / sqrt(2), 45, line_thickness); +endchar; + +beginoperator(small_op_size#, 1); "small filled diamond"; + filldraw_square(centre, radius / sqrt(2), 45, line_thickness); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond"; + draw_square(centre, radius / sqrt(2), 45, line_thickness); +endchar; + +beginoperator(med_op_size#, 1); "medium filled diamond"; + filldraw_square(centre, radius / sqrt(2), 45, line_thickness); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond minus"; + draw_square(centre, radius / sqrt(2), 45, line_thickness); + draw_line(centre + radius * right, centre + radius * left, false); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond vert"; + draw_square(centre, radius / sqrt(2), 45, line_thickness); + draw_line(centre + radius * up, centre + radius * down, false); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond slash"; + r := radius / sqrt(2); + + draw_square(centre, r, 45, line_thickness); + draw_line(centre + r * dir 45, centre + r * dir 225, false); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond backslash"; + r := radius / sqrt(2); + + draw_square(centre, r, 45, line_thickness); + draw_line(centre + r * dir 135, centre + r * dir 315, false); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond plus"; + draw_square(centre, radius / sqrt(2), 45, line_thickness); + draw_line(centre + radius * right, centre + radius * left, false); + draw_line(centre + radius * up, centre + radius * down, false); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond times"; + r := radius / sqrt(2); + + draw_square(centre, r, 45, line_thickness); + draw_line(centre + r * dir 45, centre + r * dir 225, false); + draw_line(centre + r * dir 135, centre + r * dir 315, false); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond dot"; + draw_square(centre, radius / sqrt(2), 45, line_thickness); + fill dot(centre, dot_size); +endchar; + +beginoperator(med_op_size#, 1); "medium diamond diamond"; + draw_square(centre, radius / sqrt(2), 45, line_thickness); + draw_square(centre, 2/5radius / sqrt(2), 45, line_thickness); +endchar; + +beginoperator(5/6small_op_size#, 8/5); "small lozenge"; + x0 = w - x2 = side_bearing; + y0 = y2 = ypart centre; + x1 = x3 = xpart centre; + y1 = h; + y3 = -d; + + theta := angle(z1 - z0); + + x0' = x0 + line_thickness / sind theta; + x2' = x2 - line_thickness / sind theta; + y0' = y2' = y0; + y1' = y1 - line_thickness / cosd theta; + y3' = y3 + line_thickness / cosd theta; + x1' = x3' = x1; + + fill z0 -- z1 -- z2 -- z3 -- cycle; + unfill z0' -- z1' -- z2' -- z3' -- cycle; +endchar; + +beginoperator(5/6small_op_size#, 8/5); "small filled lozenge"; + x0 = w - x2 = side_bearing; + y0 = y2 = ypart centre; + x1 = x3 = xpart centre; + y1 = h; + y3 = -d; + + fill z0 -- z1 -- z2 -- z3 -- cycle; +endchar; + +beginoperator(1/sqrt(2)*med_op_size#, 8/5); "medium lozenge"; + x0 = w - x2 = side_bearing; + y0 = y2 = ypart centre; + x1 = x3 = xpart centre; + y1 = h; + y3 = -d; + + theta := angle(z1 - z0); + + x0' = x0 + line_thickness / sind theta; + x2' = x2 - line_thickness / sind theta; + y0' = y2' = y0; + y1' = y1 - line_thickness / cosd theta; + y3' = y3 + line_thickness / cosd theta; + x1' = x3' = x1; + + fill z0 -- z1 -- z2 -- z3 -- cycle; + unfill z0' -- z1' -- z2' -- z3' -- cycle; +endchar; + +beginoperator(1/sqrt(2)*med_op_size#, 8/5); "medium filled lozenge"; + x0 = w - x2 = side_bearing; + y0 = y2 = ypart centre; + x1 = x3 = xpart centre; + y1 = h; + y3 = -d; + + fill z0 -- z1 -- z2 -- z3 -- cycle; +endchar; + +beginoperator(1/sqrt(2)*med_op_size#, 8/5); "medium lozenge minus"; + thick := line_thickness; + + x0 = w - x2 = side_bearing; + y0 = y2 = ypart centre; + x1 = x3 = xpart centre; + y1 = h; + y3 = -d; + + theta := angle(z1 - z0); + + x0' = x0 + thick / sind theta; + x2' = x2 - thick / sind theta; + y0' = y2' = y0; + y1' = y1 - thick / cosd theta; + y3' = y3 + thick / cosd theta; + x1' = x3' = x1; + + fill z0 -- z1 -- z2 -- z3 -- cycle; + unfill z0' -- z1' -- z2' -- z3' -- cycle; + draw_line(z0', z2', true); +endchar; + +beginoperator(5/4small_op_size#, 1); "small star"; + r := radius + line_thickness; + t := 1/11r; + + reg_poly_points(a)(5, centre - t * up, r, 90); + reg_poly_points(b)(5, centre - t * up, .4r, 126); + + s := r - 4/5line_thickness / sind (270 - angle (z.b0 - z.a0)); + + reg_poly_points(c)(5, centre - t * up, s, 90); + reg_poly_points(d)(5, centre - t * up, .4s, 126); + + fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle; + unfill z.c0 -- z.d0 -- z.c1 -- z.d1 -- z.c2 -- z.d2 -- z.c3 -- z.d3 -- z.c4 -- z.d4 -- cycle; +endchar; + +beginoperator(small_op_size#, 1); "small filled star"; + r := radius + line_thickness; + t := 1/11r; + + reg_poly_points(a)(5, centre - t * up, r, 90); + reg_poly_points(b)(5, centre - t * up, .4r, 126); + + fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle; +endchar; + +beginoperator(med_op_size#, 1); "medium star"; + r := radius + line_thickness; + t := 1/11r; + + reg_poly_points(a)(5, centre - t * up, r, 90); + reg_poly_points(b)(5, centre - t * up, .4r, 126); + + s := r - line_thickness / sind (270 - angle (z.b0 - z.a0)); + + reg_poly_points(c)(5, centre - t * up, s, 90); + reg_poly_points(d)(5, centre - t * up, .4s, 126); + + fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle; + unfill z.c0 -- z.d0 -- z.c1 -- z.d1 -- z.c2 -- z.d2 -- z.c3 -- z.d3 -- z.c4 -- z.d4 -- cycle; +endchar; + +beginoperator(med_op_size#, 1); "medium filled star"; + r := radius + line_thickness; + t := 1/11r; + + reg_poly_points(a)(5, centre - t * up, r, 90); + reg_poly_points(b)(5, centre - t * up, .4r, 126); + + fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle; +endchar; + +beginoperator(large_op_size#, 1); "large star"; + r := radius + line_thickness; + t := 1/11r; + + reg_poly_points(a)(5, centre - t * up, r, 90); + reg_poly_points(b)(5, centre - t * up, .4r, 126); + + s := r - line_thickness / sind (270 - angle (z.b0 - z.a0)); + + reg_poly_points(c)(5, centre - t * up, s, 90); + reg_poly_points(d)(5, centre - t * up, .4s, 126); + + fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle; + unfill z.c0 -- z.d0 -- z.c1 -- z.d1 -- z.c2 -- z.d2 -- z.c3 -- z.d3 -- z.c4 -- z.d4 -- cycle; +endchar; + +beginoperator(large_op_size#, 1); "large filled star"; + r := radius + line_thickness; + t := 1/11r; + + reg_poly_points(a)(5, centre - t * up, r, 90); + reg_poly_points(b)(5, centre - t * up, .4r, 126); + + fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle; +endchar; + +beginoperator(small_op_size#, 1); "asterisk"; + r := w/2 - side_bearing; + + penpos a0(4/3line_thickness, 0); + penpos a1(4/3line_thickness, 60); + penpos a2(4/3line_thickness, 120); + penpos a3(4/3line_thickness, 180); + penpos a4(4/3line_thickness, 240); + penpos a5(4/3line_thickness, 300); + + penpos b0(2/3line_thickness, 0); + penpos b1(2/3line_thickness, 60); + penpos b2(2/3line_thickness, 120); + penpos b3(2/3line_thickness, 180); + penpos b4(2/3line_thickness, 240); + penpos b5(2/3line_thickness, 300); + + reg_poly_points(a)(6, centre, r, 90); + + z.b0 = z.b1 = z.b2 = z.b3 = z.b4 = z.b5 = centre; + + fill stroke z.a0e -- z.b0e; + fill stroke z.a1e -- z.b1e; + fill stroke z.a2e -- z.b2e; + fill stroke z.a3e -- z.b3e; + fill stroke z.a4e -- z.b4e; + fill stroke z.a5e -- z.b5e; +endchar; + +beginsymbol(18/10order_width# + 2side_bearing#, vcentre(2equal_spread# + line_thickness#)); "infinity"; + pair centre; + centre := (w/2, (h-d)/2); + thick := line_thickness; + alpha := 0; + + z0 = centre - (9/10order_width - 1/2thick) * dir alpha; + z1 = centre + (9/10order_width - 1/2thick) * dir alpha; + z6 = 1/5[z0,z1]; + z7 = 4/5[z0,z1]; + z2 = z6 + equal_spread * dir (alpha + 90); + z3 = z6 - equal_spread * dir (alpha + 90); + z4 = z7 + equal_spread * dir (alpha + 90); + z5 = z7 - equal_spread * dir (alpha + 90); + z8 = z9 = centre; + + penpos0(thick, alpha); + penpos1(thick, alpha); + penpos2(thick, alpha - 90); + penpos3(thick, alpha + 90); + penpos4(thick, alpha + 90); + penpos5(thick, alpha - 90); + penpos8(thick, alpha - 135); + penpos9(thick, alpha + 135); + + fill stroke z4.e{dir (alpha + 180)} + .. {dir (alpha + 225)}z9.e + .. {dir (alpha + 180)}z3.e + .. {dir (alpha + 90)}z0.e + .. {dir alpha}z2.e + .. {dir (alpha - 45)}z8.e + .. {dir alpha}z5.e + .. {dir (alpha + 90)}z1.e + .. cycle; + + penlabels (0,1,2,3,4,5,6,7,8,9); +endchar; + +for alpha = 0, 180: + beginsymbol(16/10order_width# + 2side_bearing#, vcentre(2equal_spread# + line_thickness#)); "proportional"; + pair centre; + centre := (w/2, (h-d)/2); + thick := line_thickness; + + z0 = centre - (8/10order_width - 1/2thick) * dir alpha; + z1 = centre + (7/10order_width - 1/2thick) * dir alpha; + z4 = z1 + equal_spread * dir (alpha + 90); + z5 = z1 - equal_spread * dir (alpha + 90); + z6 - z4 = z7 - z5 = (1/10order_width + 1/2thick) * dir alpha; + z10 = 1/4[z0,z1]; + z2 = z10 + equal_spread * dir (alpha + 90); + z3 = z10 - equal_spread * dir (alpha + 90); + z8 = z9 = centre + 1/10order_width * dir alpha; + + penpos0(thick, alpha); + penpos2(thick, alpha - 90); + penpos3(thick, alpha + 90); + penpos4(thick, alpha + 90); + penpos5(thick, alpha - 90); + penpos6(thick, alpha + 90); + penpos7(thick, alpha - 90); + penpos8(thick, alpha + 225); + penpos9(thick, alpha + 135); + + fill stroke z6.e + -- z4.e{dir (alpha + 180)} + .. {dir (alpha + 225)}z9.e + .. {dir (alpha + 180)}z3.e + .. {dir (alpha + 90)}z0.e + .. {dir alpha}z2.e + .. {dir (alpha - 45)}z8.e + .. {dir alpha}z5.e + -- z7.e; + + penlabels (0,1,2,3,4,5,6,7,8,9); + endchar; +endfor; + +beginsymbol(14/10order_width# + 2side_bearing#, vcentre(2equal_spread# + line_thickness#)); "crossing"; + pair centre; + centre := (w/2, (h-d)/2); + thick := line_thickness; + alpha := 0; + + z0 = centre - (6/10order_width - 1/2thick) * dir alpha; + z1 = centre + (6/10order_width - 1/2thick) * dir alpha; + z2 = z0 + equal_spread * dir (alpha + 90); + z3 = z0 - equal_spread * dir (alpha + 90); + z4 = z1 + equal_spread * dir (alpha + 90); + z5 = z1 - equal_spread * dir (alpha + 90); + z6 - z4 = z7 - z5 = (1/10order_width + 1/2thick) * dir alpha; + z2 - z8 = z3 - z9 = (1/10order_width + 1/2thick) * dir alpha; + z10 = z11 = 1/2[z0,z1]; + + penpos2(thick, alpha + 90); + penpos3(thick, alpha + 90); + penpos4(thick, alpha + 90); + penpos5(thick, alpha + 90); + penpos6(thick, alpha + 90); + penpos7(thick, alpha + 90); + penpos8(thick, alpha + 90); + penpos9(thick, alpha + 90); + penpos10(thick, alpha + 45); + penpos11(thick, alpha + 135); + + fill stroke z6.e + -- z4.e{dir (alpha + 180)} + .. {dir (alpha + 225)}z11.e + .. {dir (alpha + 180)}z3.e + -- z9.e; + fill stroke z8.e + -- z2.e{dir alpha} + .. {dir (alpha - 45)}z10.e + .. {dir alpha}z5.e + -- z7.e; + + penlabels (0,1,2,3,4,5,6,7,8,9,10,11); +endchar; + +beginsymbol(equal_spread# + line_thickness# + 2side_bearing#, vcentre(med_op_size#)); "between"; + pair centre; + centre := (w/2, (h-d)/2); + r := med_op_size/2; + + z0 = centre; + z1 = centre; + + draw_smile(a, 1, z0 - r * up, z0 + r * up, equal_spread, line_thickness, true); + draw_smile(b, -1, z1 - r * up, z1 + r * up, equal_spread, line_thickness, true); +endchar; + +beginsymbol(11/5equal_spread# + line_thickness# + 2side_bearing#, vcentre(med_op_size#)); "reversed between"; + pair centre; + centre := (w/2, (h-d)/2); + r := med_op_size/2; + + z0 = centre + 3/4equal_spread * right; + z1 = centre - 3/4equal_spread * right; + + draw_smile(a, -1, z0 - r * up, z0 + r * up, 2/3equal_spread, line_thickness, true); + draw_smile(b, 1, z1 - r * up, z1 + r * up, 2/3equal_spread, line_thickness, true); +endchar; + +for sign = 1, -1: + beginsymbol(order_width# + 2side_bearing#, cap_height#, 0); "top"; + z1 - z0 = z3 - z2 = (order_width - line_thickness) * right; + z2 - z0 = sign * (cap_height - line_thickness) * up; + + 1/2[1/2[z0,z1], 1/2[z2,z3]] = (w/2, (h-d)/2); + + draw_line(z0, z1, true); + draw_line(1/2[z0,z1], 1/2[z2,z3], true); + endchar; +endfor; + +beginsymbol(2/3equal_spread# + line_thickness# + 2side_bearing#, vcentre(plus_size#)); "wreath"; + pair centre; + centre := (w/2, (h-d)/2); + + draw_sim(a, centre + 1/2plus_size * up, centre - 1/2plus_size * up, 1/3equal_spread, thick); +endchar; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "angle"; + z0 = centre + (plus_size - line_thickness)/2 * down; + z1 = z0 + sign * 1/2plus_size * right; + z2 = z0 + sign * 1/2plus_size * left; + x3 = xpart centre + sign * 1/2plus_size; + y3 = ypart centre + 2/3plus_size; + z4 = 4/5[z2,z3]; + z5 = z4l + whatever * (z2 - z4); + z5 = z1r + whatever * right; + z6 = z4r + whatever * (z2 - z4); + z6 = z1r + whatever * right; + z7 = z1l + whatever * right; + z7 = z6 + whatever * dir (90 + sign * 17); + + penpos1(line_thickness, 90); + penpos4(line_thickness, angle(z3 - z2) + sign * 90); + + fill z1r -- z5 -- z4l -- z4r -- z6 -- z7 -- z1l -- cycle; + + penlabels(1,2,3,4,5,6,7); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "measured angle"; + z0 = centre + (plus_size - line_thickness)/2 * down; + z1 = z0 + sign * 1/2plus_size * right; + z2 = z0 + sign * 1/2plus_size * left; + x3 = xpart centre + sign * 1/2plus_size; + y3 = ypart centre + 2/3plus_size; + z4 = 4/5[z2,z3]; + z5 = z4l + whatever * (z2 - z4); + z5 = z1r + whatever * right; + z6 = z4r + whatever * (z2 - z4); + z6 = z1r + whatever * right; + z7 = z1l + whatever * right; + z7 = z6 + whatever * dir (90 + sign * 17); + z8 = 2/3[z2,z1]; + z9 = z2 + sign * ((z8 - z2) rotated angle (z3 - z2)); + + penpos1(line_thickness, 90); + penpos4(line_thickness, angle(z3 - z2) + sign * 90); + penpos8(line_thickness, 90 - sign * 90); + penpos9(line_thickness, angle(z3 - z2)); + + fill z1r -- z5 -- z4l -- z4r -- z6 -- z7 -- z1l -- cycle; + fill stroke z8.e{up} .. {dir (angle (z3 - z2) + sign * 90)}z9.e; + + penlabels(1,2,3,4,5,6,7,8,9); + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginoperator(plus_size#, 1); "spherical angle (" & decimal alpha & ")"; + draw_less(a, centre - 1/2plus_size * dir alpha, centre + 1/2plus_size * dir alpha, 2radius, line_thickness, false); + z3 = 2/3[z2a, z0a]; + z4 = 2/3[z2a, z1a]; + + penpos3(line_thickness, alpha + 35); + penpos4(line_thickness, alpha - 35); + + fill stroke z4.e{dir (alpha + 55)} .. {dir (alpha + 125)}z3.e; + + penlabels(3,4); + endchar; +endfor; + +beginoperator(plus_size#, 1); "right angle"; + z3 - z0 = z2 - z1 = 2radius * right; + z0 - z1 = 2radius * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z1, true); + draw_line(z1, z2, true); +endchar; + +beginoperator(plus_size#, 1); "measured right angle"; + thick := line_thickness; + + z3 - z0 = z2 - z1 = 2radius * right; + z0 - z1 = 2radius * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + z4 = 3/5[z1,z0] + (1/2thick - eps) * right; + z5 = 3/5[z1,z2] + (1/2thick - eps) * up; + + penpos4(thick, 90); + penpos5(thick, 0); + + draw_line(z0, z1, true); + draw_line(z1, z2, true); + fill stroke z4.e{right} .. {down}z5.e; + + penlabels(0,1,2,3,4,5); +endchar; + +beginoperator(plus_size#, 1); "squared right angle"; + z3 - z0 = z2 - z1 = 2radius * right; + z0 - z1 = 2radius * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + z4 = 1/2[z1,z0]; + z5 = 1/2[z1,z2]; + + penpos4(line_thickness, 90); + penpos5(line_thickness, 0); + + draw_line(z0, z1, true); + draw_line(z1, z2, true); + draw_line(z4, centre, true); + draw_line(z5, centre, true); + + penlabels(0,1,2,3,4,5); +endchar; + +beginoperator(plus_size#, 1); "right angle with dot"; + thick := line_thickness; + + z3 - z0 = z2 - z1 = 2radius * right; + z0 - z1 = 2radius * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + z4 = 3/5[z1,z0] + (1/2thick - eps) * right; + z5 = 3/5[z1,z2] + (1/2thick - eps) * up; + z6 = 1/4[z1,z3]; + + penpos4(line_thickness, 90); + penpos5(line_thickness, 0); + + draw_line(z0, z1, true); + draw_line(z1, z2, true); + fill stroke z4.e{right} .. {down}z5.e; + fill dot(z6, 1/2dot_size); + + penlabels(0,1,2,3,4,5); +endchar; + +beginsymbol(4u#, 4/5asc_height#, 0); "prime"; + z0 = (w, h); + z1 = z0 + 2u * left; + z2 = (1u, 1/9h); + z3 = z2 + 4/3u * right; + + fill z0 -- z1 -- z2 -- z3 -- cycle; +endchar; + +beginsymbol(4u#, 4/5asc_height#, 0); "backprime"; + z0 = (0, h); + z1 = z0 + 2u * right; + z2 = (w - 1u, 1/9h); + z3 = z2 + 4/3u * left; + + fill z0 -- z1 -- z2 -- z3 -- cycle; +endchar; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "product"; + draw_product(centre, plus_size, plus_size, sign, 4/3line_thickness); + endchar; +endfor; + +beginsymbol(2/5asc_height# + 2side_bearing#, asc_height#, 0); "small integral"; + pair centre; + centre := (w/2, (h - d)/2); + + draw_integral(a, 1/2, centre, 4/3line_thickness); +endchar; + +beginsymbol(13u# + 2side_bearing#, asc_height#, 0); "check mark"; + x1l = side_bearing; + y1 = math_axis; + x2 = side_bearing + 3u; + y2 = -d; + x3 = w -x2; + y3 = h; + x4r = w - side_bearing; + y4l = h; + z5r = 1/10[z4r,z1r]; + + theta := angle(z3 - z2); + + penpos1(4/3thick, 30); + penpos2(thick, 0); + penpos3(thick, -90 + theta); + penpos4(1/3thick, -80); + penpos5(thick, -50); + + z6 = z1r + whatever * (z2l - z1l); + z6 = z3l + whatever * (z3r - z2r); + + fill z1l -- z2l -- z2r{z3r - z2r} .. {dir 40}z5r .. z4r -- z4l{dir 180} ... z5l{dir 220} .. {z2l - z3l}z6 -- z1r -- cycle; + + penlabels(1,2,3,4,5,6); +endchar; + +beginsymbol(7u# + 2side_bearing#, 5/4asc_height#, 1/8asc_height#); "lightning"; + thick := line_thickness; + + x3r = w - side_bearing; + x2l = side_bearing + u; + x4 = 1/3w; + y1l = h; + y3r = 14/24h; + y4 = -d + 1/2thick; + z6 - z5 = whatever * dir 15; + + penpos1(3/2thick, -20); + penpos2(3/2thick, 15); + penpos3(2thick, 15); + penpos4(thick, -20); + penpos5(thick, -75); + penpos6(thick, -75); + + z1 - z2 = whatever * (z4 - z3); + z5r = z2; + z6l = z3; + z7 = whatever[z1r,z2r]; + z7 = whatever[z5l,z6l]; + z8 = whatever[z4l,z3l]; + z8 = whatever[z6r,z5r]; + + fill z1l -- z2l -- z8 -- z4l -- z4r -- z3r -- z7 -- z1r -- cycle; + draw_arrowhead(z4, angle (z4l - z3l), 4/5arrow_spread, thick); + + penlabels(1,2,3,4,7,8); +endchar; + +for filled = false, true: + beginsymbol(13u#, cap_height#, 0); "diamond suit"; + thick := line_thickness; + bend := 5; + + x0 = x2 = x4 = x6 = w/2; + 1/2[y0,y2] = 1/2[y4,y6] = h/2; + y2 - y0 = h; + 1/2[x1,x3] = 1/2[x5,x7] = w/2; + x3 - x1 = w - 2side_bearing; + y1 = y3 = y5 = y7 = h/2; + + theta := angle(z2 - z1); + + y6 - y4 = h - 2thick / cosd theta; + x7 - x5 = w - 2side_bearing - 2thick / sind theta; + + fill z0{dir (180-theta-bend)} .. {dir (180-theta+bend)}z1{dir (theta-bend)} .. {dir (theta+bend)}z2{dir (-theta-bend)} .. {dir (-theta+bend)}z3{dir (180+theta-bend)} .. {dir (180+theta+bend)}z0 & cycle; + if not filled: + unfill z4{dir (180-theta-bend)} .. {dir (180-theta+bend)}z5{dir (theta-bend)} .. {dir (theta+bend)}z6{dir (-theta-bend)} .. {dir (-theta+bend)}z7{dir (180+theta-bend)} .. {dir (180+theta+bend)}z4 & cycle; + fi; + labels(0,1,2,3,4,5,6,7); + endchar; +endfor; + +for filled = false, true: + beginsymbol(14u#, cap_height#, 0); "heart suit"; + thick := line_thickness; + + x0 = x1l = x1'l = w/2; + y0 = 0; + 1/2[x2l,x3l] = w/2; + x3l - x2l = w - 2side_bearing; + y1r = y1'r; + y2l = y3l = 3/4h; + x4 = 1/2[x1,x2]; + x5 = 1/2[x1',x3]; + y4l = y5l = h; + h - y2 = 2(h - y1l); + + penpos1(thick, 180+45); + penpos1'(thick, -45); + penpos2(thick, 0); + penpos3(thick, 180); + penpos4(thick, -90); + penpos5(thick, -90); + + path p[]; + numeric t[]; + + z6 = z1r + whatever * dir (270+45); + z6 = z1'r + whatever * dir (270-45); + z7 = z0 + thick * dir 20; + z8 = z0 + thick * dir (180-20); + p1 = z7{dir (90+35)} .. {dir 90}z2r; + p2 = z3r{dir 270} .. {dir (270-35)}z8; + (t1,t2) = p1 intersectiontimes p2; + + fill z0{dir (90+35)} .. {dir 90}z2l .. {dir 0}z4l .. {dir (270+45)}z1l{dir (90-45)} .. {dir 0}z5l .. {dir 270}z3l .. {dir (270-35)}z0 & cycle; + if not filled: + unfill subpath (t1,1) of p1 & z2r{dir 90} .. {dir 0}z4r .. {dir (270+45)}z1r -- z6 -- z1'r{dir (90-45)} .. {dir 0}z5r .. {dir 270}z3r & subpath (0,t2) of p2 -- cycle; + fi; + + penlabels(0,1,1',2,3,4,5,6,7,8); + endchar; +endfor; + +beginsymbol(13u#, cap_height#, 0); "spade suit"; + x0 = x1 = w/2; + y0 = h; + 1/2[x2,x3] = w/2; + x3 - x2 = w - 2side_bearing; + y2 = y3; + x4 = 1/2[x1,x2]; + x5 = 1/2[x1,x3]; + y4 = y5 = 1/6h; + y2 - y4 = x4 - x2; + y1 = 3/5[y2,y4]; + x6 = x0; + y6 = 0; + + penpos1(2u, 0); + penpos6(3u, 0); + + fill z0{dir (270-30)} .. z2 .. z4 .. {dir (90-30)}z1l + -- z1r{dir (270+30)} .. z5 .. z3 .. {dir (90+30)}z0 -- cycle; + fill stroke z1e -- z6e; + + penlabels(0,1,2,3,4,5,6); +endchar; + +beginsymbol(14u#, cap_height#, 0); "club suit"; + r := 1/4(w - 2side_bearing); + + x0 = w/2; + y0 = h - 2.5r; + x1 = w - x3 = side_bearing + r; + y1 = y3 = y0; + x2 = x4 = x0; + y2 = h - r; + y4 = 0; + + penpos0(3/2u, 0); + penpos2(3/2u, 0); + penpos4(3u, 0); + + fill circle(z1, r); + fill circle(z2, r); + fill circle(z3, r); + fill stroke z2e -- z0e -- z4e; + + penlabels(0,1,2,3,4); +endchar; + +beginoperator(med_op_size#, 1); "maltese"; + r := 1/2med_op_size; + thick := line_thickness; + + 1/2[z0,z1] = centre + r * left; + 1/2[z2,z3] = centre + r * down; + 1/2[z4,z5] = centre + r * right; + 1/2[z6,z7] = centre + r * up; + z0 - z1 = z5 - z4 = r * up; + z3 - z2 = z6 - z7 = r * right; + 1/2[z8,z9] = centre + 1/2thick * up; + 1/2[z10,z11] = centre - 1/2thick * up; + z9 - z8 = z11 - z10 = 2thick * right; + 1/2[z12,z13] = centre + thick * up; + 1/2[z14,z15] = centre - thick * up; + z13 - z12 = z15 - z14 = thick * right; + + fill z0 -- z1 -- z10 -- z11 -- z4 -- z5 -- z9 -- z8 -- cycle; + fill z6 -- z7 -- z12 -- z14 -- z2 -- z3 -- z15 -- z13 -- cycle; + + labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); +endchar; + +beginoperator(med_op_size#, 2/sqrt(3)); "star of david"; + r := med_op_size/sqrt(3); + + reg_poly_points(a)(6, centre, r, 90); + + s := r - 4/5line_thickness / sind (270 - angle (z.a2 - z.a0)); + + reg_poly_points(b)(6, centre, s, 90); + + z0.r = z.a0; z0.l = z.b0; + z1.r = z.a2; z1.l = z.b2; + z2.r = z.a4; z2.l = z.b4; + z3.r = z.a1; z3.l = z.b1; + z4.r = z.a3; z4.l = z.b3; + z5.r = z.a5; z5.l = z.b5; + + fill stroke z0.e -- z1.e -- z2.e -- cycle; + fill stroke z4.e -- z5.e -- z3.e -- cycle; + + penlabels(0,1,2,3,4,5); +endchar; + +beginoperator(plus_size#, 1); "sector"; + thick := line_thickness; + alpha := 90; + + z0 = centre - 1/2plus_size * dir alpha; + z1 = z0 + 9/10plus_size * dir alpha; + + draw_less(a, z0, z1, 9/10plus_size, thick, false); + + theta := angle(z0a - z2a) - alpha; + + z0a - z4 = 1/2thick * dir (alpha + theta); + z1a - z5 = 1/2thick * dir (alpha - theta); + + penpos4(thick, alpha + theta); + penpos5(thick, alpha - theta); + + fill stroke z4.e{dir (alpha + theta - 90)} .. {dir(alpha - theta - 90)}z5.e; +endchar; + +beginsymbol(5/4order_width# + 2side_bearing#, cap_height#, 0); "forall"; + thick := 5/4line_thickness; + + x0 = side_bearing + 1/2thick; + x1 = w - side_bearing - 1/2thick; + x2 = w/2 - 1/4thick; + x3 = w/2 + 1/4thick; + y0 = y1 = h; + y2 = y3 = 0; + + penpos0(thick * cosd(angle(z2 - z0) + 90), 0); + penpos1(thick * cosd(angle(z2 - z0) + 90), 0); + + z4 = z0l + whatever * (z2 - z0) = z2 + whatever * right; + z5 = z1r + whatever * (z3 - z1) = z2 + whatever * right; + z6 = z0r + whatever * (z2 - z0) = z1l + whatever * (z3 - z1); + z7 = whatever [z0,z2]; + z8 = whatever [z1,z2]; + y7 = y8 = 0.6 * y0; + + fill z0l -- z4 -- z5 -- z1r -- z1l -- z6 -- z0r -- cycle; + draw_line(z7, z8, false); + + penlabels(0,1,2,3,4,5,6,7,8); +endchar; + +for negated = 0, 1: + beginsymbol(order_width# + 2side_bearing#, if negated = 0: cap_height# else: cap_height# + 2/3equal_spread# fi, if negated = 0: 0 else: 2/3equal_spread# fi); "exists"; + thick := 5/4line_thickness; + + x1 = x3 = w - side_bearing - thick/2; + y1 = cap_height; + y3 = 0; + x1' = x3' = w - side_bearing; + x0 = x2 = side_bearing; + y0 = y1' = cap_height - line_thickness/2; + y2 = y3' = line_thickness/2; + z4 = 1/8[1/2[z0,z2], 1/2[z1,z3]]; + + draw_straight(z1, z3, thick, false); + draw_line(z0, z1', false); + draw_line(z4, 1/2[z1,z3], false); + draw_line(z2, z3', false); + + if negated = 1: + stroke_through(1/2[1/2[z0,z2], 1/2[z1,z3]], h + d - stroke_through_thickness) + fi; + endchar; +endfor; + +beginsymbol(order_width# + 2side_bearing#, cap_height#, 0); "exists finitely many"; + thick := 5/4line_thickness; + + x1 = x3 = w - side_bearing - thick/2; + y1 = cap_height; + y3 = 0; + x3' = w - side_bearing; + x0 = x2 = side_bearing; + y0 = cap_height - line_thickness/2; + y2 = y3' = line_thickness/2; + z4 = 1/8[1/2[z0,z2], 1/2[z1,z3]]; + + draw_straight(z1, z3, thick, false); + draw_line(z4, 1/2[z1,z3], false); + draw_line(z2, z3', false); +endchar; + +beginsymbol(5/4order_width# + 2side_bearing#, cap_height#, 0); "game quantifier"; + thick := 5/4line_thickness; + + x0 = x1 = 1/2order_width + side_bearing; + y0 = cap_height - 1/2thick; + y1 = 1/2line_thickness; + x2 = w - side_bearing - 1/2thick; + y2 = (h - d)/2; + x3r = x4r = side_bearing; + y3 = 5/6cap_height; + y4 = 1/6cap_height; + + penpos0(thick, 90); + penpos1(thick, -90); + penpos2(thick, 0); + penpos3(thick, 125); + penpos4(thick, -125); + + fill stroke z3.e .. z0.e .. z2.e{down} .. z1.e{left} .. z4.e; + draw_straight(z4r + 1/2thick * right, 2/5[z4r,z3r] + 1/2thick * right, thick, false); + draw_line(2/5[z4r,z3r], 2/5[z4r,z3r] + 1/2order_width * right, false); + + penlabels(0,1,2,3,4); +endchar; + +beginsymbol(7/8order_width# + 2side_bearing#, cap_height#, 0); "complement"; + thick := 5/4line_thickness; + + z0 - z1 = (cap_height - thick) * up; + z3 - z2 = (w - 2side_bearing - thick) * right; + 1/2[z0,z1] = 1/2[z2,z3] = (w/2,(h-d)/2); + x4 = x6 = x2; + x5 = x7 = x3; + y4 = y5 = 1/4[y0,y1]; + y6 = y7 = 3/4[y0,y1]; + + penpos0(thick, 90); + penpos1(thick, -90); + penpos4(thick, -180); + penpos5(thick, 0); + penpos6(thick, -180); + penpos7(thick, 0); + + fill stroke z5.e{up} .. z0.e .. {down}z4.e -- z6.e{down} .. z1.e .. {up}z7.e; + + penlabels(0,1,2,3,4,5,6,7); +endchar; + +beginsymbol(6u# + 2side_bearing#, asc_height#, 1/2line_thickness#); "flat"; + thick := line_thickness; + + x0l = x1l = side_bearing; + x4l = x5 = side_bearing + thick; + y0 = -d; + y1 = h; + x2r = w - side_bearing; + x3 = w/2; + y3r = x_height; + y2 = 1/2[y0,y1]; + y4r = 5/6x_height; + y5 = thick * (1 + sind 35) / cosd 35 - d; + + penpos0(thick, 0); + penpos1(thick, 0); + penpos2(3/2thick, 0); + penpos3(thick, 90); + penpos4(thick, 130); + + fill z1.l -- z0.l{dir 35} ... {up}z2.r .. {left}z3.r ..{dir 230}z4.r -- z4.l{dir 50} .. {right}z3.l .. {down}z2.l .. {dir 215}z5 -- z1.r -- cycle; + + penlabels (0,1,2,3,4,5); +endchar; + +beginsymbol(6u# + 2side_bearing#, asc_height#, desc_depth#); "natural"; + thick := line_thickness; + + x0l = x1l = w - x2r = w - x3r = side_bearing; + x4 = x5 = w - x6 = w - x7 = side_bearing; + y1 = y3 = h; + y7r = x_height; + y4l = 0; + y0 = y2 = -d; + z6 = z4 + whatever * dir 15; + z5 = z7 + whatever * dir 15; + + penpos0(thick, 0); + penpos1(thick, 0); + penpos2(thick, 0); + penpos3(thick, 0); + penpos4(3/2thick, 90); + penpos5(3/2thick, 90); + penpos6(3/2thick, 90); + penpos7(3/2thick, 90); + + z8 = whatever[z0,z1] = whatever[z4,z6]; + z9 = whatever[z2,z3] = whatever[z5,z7]; + + penpos8(thick, 0); + penpos9(thick, 0); + + fill stroke z1e -- z8e; + fill stroke z9e -- z2e; + fill stroke z4e -- z6e; + fill stroke z5e -- z7e; + + penlabels(1,2,4,5,6,7); +endchar; + +beginsymbol(6u# + 2side_bearing#, asc_height#, desc_depth#); "sharp"; + thick := line_thickness; + + x0l = x1l = w - x2r = w - x3r = side_bearing + u; + x4 = x5 = w - x6 = w - x7 = side_bearing; + y3 = h; + y7r = x_height; + y4l = 0; + y0 = -d; + z2 = z0 + whatever * dir 20; + z1 = z3 + whatever * dir 20; + z6 = z4 + whatever * dir 15; + z5 = z7 + whatever * dir 15; + + penpos0(thick, 0); + penpos1(thick, 0); + penpos2(thick, 0); + penpos3(thick, 0); + penpos4(3/2thick, 90); + penpos5(3/2thick, 90); + penpos6(3/2thick, 90); + penpos7(3/2thick, 90); + + fill stroke z0e -- z1e; + fill stroke z2e -- z3e; + fill stroke z4e -- z6e; + fill stroke z5e -- z7e; + + penlabels (0,1,2,3,4,5,6,7); +endchar; + +beginsymbol(10u# + 2side_bearing#, cap_height#, 0); "aleph"; + thick := line_thickness; + + x0l = x2l = side_bearing; + x1r = x3r = w - side_bearing; + y0 = h; + y1 = h; + y2 = 0; + y3 = 0; + + penpos0(3/2thick, 20); + penpos1(4/3thick, 2); + penpos2(3/2thick, 0); + penpos3(4/3thick, 20); + + path p; + p = z0{dir -70} .. {dir -70}z3; + + z4 = point 3/10 of p; + z5 = point 5/8 of p; + + penpos4(5/4thick, -40); + penpos5(5/4thick, -45); + + fill stroke z0.e{dir -70} .. {dir -70}z3.e; + fill stroke z2.e{up} .. {dir 50}z4.e; + fill stroke z5.e{dir 45} .. {up}z1.e; + + penlabels(0,1,2,3,4,5); +endchar; + +beginsymbol(10u# + 2side_bearing#, cap_height#, 0); "beth"; + thick := line_thickness; + + x0 = u + side_bearing; + x1 = 5/8[x2,x4]; + x2 = side_bearing; + x3 = w - side_bearing; + y0r = h; + y1r = h; + y2l = 0; + y3l = 0; + z4r = 7/8[z2,z3]; + x5 = x4; + y5 = 2/3h; + + penpos0(3/2thick, 75); + penpos1(3/2thick * sind 75, 90); + penpos2(3/2thick, 75); + penpos3(3/2thick, 75); + penpos4(5/4thick, 0); + penpos5(5/4thick, 0); + + fill stroke z2.e -- z3.e; + fill stroke z0.e -- z1.e{right} ..tension3/4.. {down}z5.e -- z4.e; + + penlabels(0,1,2,3,4,5); +endchar; + +beginsymbol(7u# + 2side_bearing#, cap_height#, 0); "gimel"; + thick := line_thickness; + + x0 = x2 = side_bearing; + x2'r = 1/8[x0,x1]; + x1 = x3r = w - side_bearing; + x4 = 1/4[x0,x1]; + x5 = 1/2[x0,x1]; + x6 = 2/3[x0,x1]; + y0 = y1 = h; + y2l = y3 = 0; + y2' = y2; + y4r = h + 1/4thick; + z5 = z4 + whatever * dir -30; + y6 = 2/3h; + + penpos2(3/2thick, 80); + penpos2'(3/2thick * sind 80, 90); + penpos3(4/3thick, 0); + penpos4(3/2thick, 60); + penpos5(3/2thick, 60); + penpos6(5/4thick, 0); + + path p; + p = z6{dir -82} .. {dir -67}z3; + z7 = point 1/4 of p; + x8 = 2/5[x0,x1]; + z7 = z8 + whatever * dir 60; + + penpos7(thick, 150); + penpos8(thick, 150); + + fill stroke z4.e -- z5.e{dir -30} .. {dir -82}z6.e .. {dir -67}z3.e; + fill stroke z2.e -- z2'.e{right} ..tension 3/4 and 1.. {dir 60}z8.e -- z7.e; + + penlabels(2,3,4,5,6,7,8); +endchar; + +beginsymbol(9u# + 2side_bearing#, cap_height#, 0); "daleth"; + thick := line_thickness; + + x0 = side_bearing; + x1 = w - side_bearing; + y0r = y1r = h; + x3r = x2r = 4/5[x0,x1]; + y2 = y0; + y3 = 0; + + penpos0(3/2thick, 75); + penpos1(3/2thick, 75); + penpos2(5/4thick, 0); + penpos3(5/4thick, 0); + + fill stroke z0.e -- z1.e; + fill stroke z2.e -- z3.e; + + penlabels(0,1,2,3); +endchar; + +begingroup; +save slant; +save currenttransform; +slant := 0.212557; +transform currenttransform; +currenttransform := identity slanted slant yscaled aspect_ratio scaled granularity shifted (-u,0); + +beginsymbol(11u#, x_height#, desc_depth#); "Weierstrass p"; + numeric theta; + theta = 90 - angle(8u,h); + slope := -h/8u; % angle at middle + superness := 1/sqrt 2; + superpull := 1/6; + + penpos2(line_thickness, -60); + penpos1(4/3line_thickness, theta); + penpos7(line_thickness, -90); + + x2 + 1/2u = x1 = x7 - 1/2u = 3u; + y2l = h; + y7r = -d; + y1 = 2/5[-d, h]; + x3l = .5u; + x6r = max(rt x7 + .5, .5w - .25u); + x3r - x3l = x6r - x6l = 5/4line_thickness; + + ellipse_set(2l,3l,4l,1l); + ellipse_set(2r,3r,4r,1r); + ellipse_set(7l,6l,5l,1l); + ellipse_set(7r,6r,5r,1r); + + y3 = y3r; + y6 = y6r; + + fill stroke super_arc.e(2,3) & z3e{down} .. z4e --- z5e .. z6e{down} & super_arc.e(6,7); % flourish + + penpos8(line_thickness, 180); + penpos9(line_thickness, 90); + penpos10(3/2line_thickness, 0); + penpos11(line_thickness, -90); + penpos12(line_thickness, -100); + + x10r = w - 1.5u + 1/2line_thickness; + x8l = 2.25u; + x9 = x11 = .5w + 1.5u; + x12l = max(x6r, .5w + .5u); + y8 = y11r = 0; + top y9r = .95h; + y10 = .5[y9,y11]; + y12r = 1/4[y11r,y1l]; + + fill stroke z7e{left} ... z8e{up} ... pulled_arc.e(9,10) & pulled_arc.e(10,11) .. z12.e; % stem and bowl + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); +endchar; +endgroup; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf new file mode 100644 index 00000000000..627b8265531 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf @@ -0,0 +1,480 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +for scale = 1, 1.4: + beginsquarebigop(scale, scale); "big plus"; + draw_line(centre + op_height/2 * right, centre + op_height/2 * left, false); + draw_line(centre + op_height/2 * up, centre + op_height/2 * down, false); + endchar; +endfor; +charlist current_char - 1: current_char; + +for scale = 1, 1.4: + beginsquarebigop(scale, scale); "big times"; + z1 - z0 = z3 - z2 = (op_width - line_thickness / sqrt(2)) * right; + z2 - z0 = (op_width - line_thickness / sqrt(2)) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z3, false); + draw_line(z1, z2, false); + endchar; +endfor; +charlist current_char - 1: current_char; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big wedge"; + draw_less(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big wedge dot"; + draw_less(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false); + fill dot(centre - sign * 1/4op_height * up, dot_size); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(4/3scale, scale); "double big wedge"; + z0 = centre - 1/8op_width * right; + z1 = centre + 1/8op_width * right; + + draw_less(a, z0 + sign * op_height/2 * up, z0 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false); + draw_less(b, z1 + sign * op_height/2 * up, z1 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big curly wedge"; + draw_prec(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big curly wedge dot"; + draw_prec(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false); + fill dot(centre - sign * 3/8op_height * up, dot_size); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(4/3scale, scale); "double big curly wedge"; + z0 = centre - 1/8op_width * right; + z1 = centre + 1/8op_width * right; + + draw_prec(a, z0 + sign * op_height/2 * up, z0 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false); + draw_prec(b, z1 + sign * op_height/2 * up, z1 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big union"; + draw_subset(a, centre + sign * op_height/2 * up, + centre - sign * op_height/2 * up, + op_width - line_thickness, line_thickness); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big union dot"; + draw_subset(a, centre + sign * op_height/2 * up, + centre - sign * op_height/2 * up, + op_width - line_thickness, line_thickness); + fill dot(centre - sign * 1/8op_height * up, dot_size); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big union plus"; + draw_subset(a, centre + sign * op_height/2 * up, + centre - sign * op_height/2 * up, + op_width - line_thickness, line_thickness); + + r := 1/4op_width; + + draw_line(centre - sign * 1/8op_width * up + r * right, centre - sign * 1/8op_width * up + r * left, false); + draw_line(centre + (r - sign * 1/8op_width) * up, centre + (r + sign * 1/8op_width) * down, false); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big square union"; + z3 - z0 = z2 - z1 = (op_width - line_thickness) * right; + z1 - z0 = sign * (op_height - line_thickness) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z1, true); + draw_line(z1, z2, true); + draw_line(z2, z3, true); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big square union dot"; + z3 - z0 = z2 - z1 = (op_width - line_thickness) * right; + z1 - z0 = sign * (op_height - line_thickness) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z1, true); + draw_line(z1, z2, true); + draw_line(z2, z3, true); + fill dot(centre - sign * 1/8op_height * up, dot_size); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(scale, scale); "big square union plus"; + z3 - z0 = z2 - z1 = (op_width - line_thickness) * right; + z1 - z0 = sign * (op_height - line_thickness) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line(z0, z1, true); + draw_line(z1, z2, true); + draw_line(z2, z3, true); + + r := 1/4op_width; + + draw_line(centre - sign * 1/8op_width * up + r * right, centre - sign * 1/8op_width * up + r * left, false); + draw_line(centre + (r - sign * 1/8op_width) * up, centre + (r + sign * 1/8op_width) * down, false); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for alpha = 0, 45: + for scale = 1, 1.4: + beginsquarebigop(scale, scale); "big circle plus"; + r := (op_height - line_thickness)/2; + + draw_circle(centre, r, line_thickness); + draw_line(centre - r * dir alpha, centre + r * dir alpha, false); + draw_line(centre - r * dir (alpha + 90), centre + r * dir (alpha + 90), false); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for scale = 1, 1.4: + beginsquarebigop(scale, scale); "big circle dot"; + draw_circle(centre, (op_height - line_thickness)/2, line_thickness); + fill dot(centre, dot_size); + endchar; +endfor; +charlist current_char - 1: current_char; + +for scale = 1, 1.4: + beginsquarebigop(scale, scale); "big circle asterisk"; + thick := line_thickness; + r := (op_height - line_thickness)/2; + + draw_circle(centre, r, line_thickness); + + penpos a0(4/3thick, 0); + penpos a1(4/3thick, 60); + penpos a2(4/3thick, 120); + penpos a3(4/3thick, 180); + penpos a4(4/3thick, 240); + penpos a5(4/3thick, 300); + + penpos b0(thick, 0); + penpos b1(thick, 60); + penpos b2(thick, 120); + penpos b3(thick, 180); + penpos b4(thick, 240); + penpos b5(thick, 300); + + reg_poly_points(a)(6, centre, r, 90); + + z.b0 = z.b1 = z.b2 = z.b3 = z.b4 = z.b5 = centre; + + fill stroke z.a0e -- z.b0e; + fill stroke z.a1e -- z.b1e; + fill stroke z.a2e -- z.b2e; + fill stroke z.a3e -- z.b3e; + fill stroke z.a4e -- z.b4e; + fill stroke z.a5e -- z.b5e; + endchar; +endfor; +charlist current_char - 1: current_char; + +for sign = 1, -1: + for scale = 1, 1.4: + beginbigop(1.3scale, scale); "product"; + draw_product(centre, op_width, op_height, sign, 5/3line_thickness * sqrt sqrt scale); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for scale = 1, 1.4: + beginbigop(scale, scale); "sum"; + draw_sum(a)(centre, op_width, op_height, 5/3line_thickness * sqrt sqrt scale); + endchar; +endfor; +charlist current_char - 1: current_char; + +for scale = 1, 1.4: + beginbigop(scale, scale); "sum modulo two"; + draw_sum(a)(centre, op_width, op_height, 5/3line_thickness * sqrt sqrt scale); + draw_circle(z13a, sqrt scale * 1/4op_width, line_thickness * sqrt sqrt scale); + endchar; +endfor; +charlist current_char - 1: current_char; + +for number = 0, 1, 2, 3: + for scale = 1, 1.8: + beginsymbol(scale * (5number + 4) * u# + (sqrt scale) * 3/4line_thickness# + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral"; + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + + pair centre; + + for i = 0 upto number: + centre := (side_bearing + scale * (5i + 7/2) * u, (h - d)/2); + + draw_integral([i])(scale, centre, 3/2line_thickness * sqrt sqrt scale); + endfor; + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for scale = 1, 1.8: + beginsymbol(scale * 9u# + 4(equal_spread# + dot_size#) + (sqrt scale) * 3/4line_thickness# + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral dots"; + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + + pair centre; + centre := (side_bearing + scale * 7/2u, (h - d)/2); + + draw_integral([0])(scale, centre, 3/2line_thickness * sqrt sqrt scale); + + centre := (side_bearing + scale * 6u + 4(equal_spread + dot_size), (h - d)/2); + + draw_integral([1])(scale, centre, 3/2line_thickness * sqrt sqrt scale); + + z0 = 1/4[z0[0],z0[1]]; + z1 = 2/4[z0[0],z0[1]]; + z2 = 3/4[z0[0],z0[1]]; + + fill dot(z0, dot_size); + fill dot(z1, dot_size); + fill dot(z2, dot_size); + endchar; +endfor; +charlist current_char - 1: current_char; + +for sign = 1, -1: + for scale = 1, 1.8: + beginsymbol(scale * 6u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "oriented integral"; + if scale > 1: + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + fi + + pair centre; + centre := (side_bearing + scale * 9/2u, (h - d)/2); + + draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale); + + thick := line_thickness * sqrt sqrt scale; + r := 4u; + + penpos0(thick, 135); + penpos1(thick, 90); + penpos2(thick, 45); + + z0 = z0a + sign * scale * (-r, -1/4r); + z1 = z0a + sign * scale * (0, 1/4r); + z2 = z0a + sign * scale * (r, -1/4r); + + fill stroke z0.e .. z1.e .. z2.e; + if sign > 0: + draw_arrowhead(z2, -40, 2/3scale * arrow_spread, 5/6thick); + else: + draw_arrowhead(z0, 40, 2/3scale * arrow_spread, 5/6thick); + fi + + penlabels(0,1,2); + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for scale = 1, 1.8: + beginsymbol(scale * 4u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral with horizontal bar"; + if scale > 1: + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + fi + + pair centre; + centre := (side_bearing + scale * 7/2u, (h - d)/2); + + draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale); + + r := scale * 5/2u; + thick := line_thickness * sqrt sqrt scale; + + draw_straight(z0a + r * left, z0a + r * right, thick, true); + endchar; +endfor; +charlist current_char - 1: current_char; + +for scale = 1, 1.8: + beginsymbol(scale * 4u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral with double horizontal bar"; + if scale > 1: + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + fi + + pair centre; + centre := (side_bearing + scale * 7/2u, (h - d)/2); + + draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale); + + z1 - z0 = equal_spread * up; + 1/2[z0, z1] = z0a; + + r := scale * 5/2u; + thick := line_thickness * sqrt sqrt scale; + + draw_straight(z0 + r * left, z0 + r * right, thick, true); + draw_straight(z1 + r * left, z1 + r * right, thick, true); + endchar; +endfor; +charlist current_char - 1: current_char; + +for scale = 1, 1.8: + beginsymbol(scale * 4u# + (sqrt scale) * 3/4line_thickness# + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "stroked integral"; + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + + pair centre; + centre := (side_bearing + scale * 7/2u, (h - d)/2); + + draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale); + + r := scale * 7/2u; + thick := line_thickness * sqrt sqrt scale; + + draw_straight(z0a - r * dir 35, z0a + r * dir 35, thick, true); + endchar; +endfor; +charlist current_char - 1: current_char; + +for number = 0, 1, 2: + for scale = 1, 1.8: + beginsymbol(scale * (5number + 5) * u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "contour integral"; + if scale > 1: + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + fi + + pair centre; + + centre := (side_bearing + scale * (5number/2 + 4) * u, (h - d)/2); + thick := line_thickness * sqrt sqrt scale; + r := scale * 4u; + s := scale * (5number + 8)/2 * u; + + if number = 0: + fill circle(centre, r); + unfill circle(centre, r - thick); + else: + fill superellipse(centre + s * dir 0, centre + r * dir 90, centre - s * dir 0, centre - r * dir 90, 3/4); + unfill superellipse(centre + (s - thick) * dir 0, centre + (r - thick) * dir 90, centre - (s - thick) * dir 0, centre - (r - thick) * dir 90, 3/4); + fi + + % Integral must come after unfill when processed with MetaPost! + for i = 0 upto number: + centre := (side_bearing + scale * (5i + 4) * u, (h - d)/2); + + draw_integral([i])(scale, centre, 3/2line_thickness * sqrt sqrt scale); + endfor; + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for alpha = 0, 180: + for sign = 1, -1: + for scale = 1, 1.8: + beginsymbol(scale * 6u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "oriented contour integral"; + if scale > 1: + italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit + fi + + pair centre; + centre := (side_bearing + scale * (4u + if alpha > 90: u else: 0 fi), (h - d)/2); + + draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale); + + thick := line_thickness * sqrt sqrt scale; + r := scale * 4u; + + reg_poly_points(a)(8, z0a, r, alpha + 25); + reg_poly_points(b)(8, z0a, r - thick, alpha + 25); + z.a8 = z0a + r * dir alpha; + z.b8 = z0a + (r - thick) * dir alpha; + + if sign > 0: + fill z.a0 .. z.a1 .. z.a2 .. z.a3 .. z.a4 .. z.a5 .. z.a6 .. z.a7 .. z.a8 -- z.b8 .. z.b7 .. z.b6 .. z.b5 .. z.b4 .. z.b3 .. z.b2 .. z.b1 .. z.b0 -- cycle; + draw_arrowhead(1/2[z.a8, z.b8], alpha + 75, 2/3scale * arrow_spread, 5/6thick); + else: + fill z.a8 .. z.a0 .. z.a1 .. z.a2 .. z.a3 .. z.a4 .. z.a5 .. z.a6 .. z.a7 -- z.b7 .. z.b6 .. z.b5 .. z.b4 .. z.b3 .. z.b2 .. z.b1 .. z.b0 .. z.b8 -- cycle; + draw_arrowhead(1/2[z.a8, z.b8], alpha - 75, 2/3scale * arrow_spread, 5/6thick); + fi + endchar; + endfor; + charlist current_char - 1: current_char; + endfor; +endfor; + +for scale = 1, 1.8: + beginsymbol(scale * 13/2u# + if scale > 1: 0 else: scale * u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "sum integral"; + if scale > 1: + italcorr scale * u#; % kerning between upper limit and lower limit + fi + + pair centre; + centre := (side_bearing + scale * 4u, (h - d)/2); + + draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale); + draw_sum(b, 1/4[z0a.l,z0a.r], scale * 7u, scale * 3/4asc_height, line_thickness * sqrt sqrt scale); + + endchar; +endfor; +charlist current_char - 1: current_char; diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf new file mode 100644 index 00000000000..8dbcce80c92 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf @@ -0,0 +1,1132 @@ +% +% Copyright (c) 2011, Michael Ummels +% +% This Font Software is licensed under the SIL Open Font License, +% Version 1.1. This license is in the accompanying file OFL.txt, and +% is also available with a FAQ at: http://scripts.sil.org/OFL +% + +vardef ifneg(text values) = + select(negated)(values) +enddef; + +% equal signs + +if negated < 2: + beginorder(1, order_width#, ifneg(1,5/2) * equal_spread#); "equal"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 5/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(2,7/2) * equal_spread#); "equiv"; + s := equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex, right_ex, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 3.5equal_spread); + fi; + endchar; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1/2, 2) * equal_spread#); "sim"; + draw_sim(a, left_ex, right_ex, 1/4equal_spread, line_thickness); + + if negated = 1: + stroke_through(centre, 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(3/2, 5/2) * equal_spread#); "approx"; + s := 1/2equal_spread; + + draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness); + draw_sim(b, left_ex - s * up, right_ex - s * up, 1/4equal_spread, line_thickness); + + if negated = 1: + stroke_through(centre, 5/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(5/2, 7/2) * equal_spread#); "triple sim"; + s := equal_spread; + + draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness); + draw_sim(b, left_ex, right_ex, 1/4equal_spread, line_thickness); + draw_sim(c, left_ex - s * up, right_ex - s * up, 1/4equal_spread, line_thickness); + + if negated = 1: + stroke_through(centre, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(3/2, 5/2) * equal_spread#); "sim equal"; + s := 1/2equal_spread; + + draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 5/2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(3/2, 5/2) * equal_spread#); "equal sim"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_sim(a, left_ex - s * up, right_ex - s * up, 1/4equal_spread, line_thickness); + + if negated = 1: + stroke_through(centre, 5/2equal_spread); + fi; + endchar; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(5/2, 7/2, 6/2) * equal_spread#); "cong"; + s := equal_spread; + + draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness); + draw_line(left_ex, right_ex, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 7/2equal_spread); + elseif negated = 2: + if sign = 1: + stroke_through(centre - 5/8s * up, 7/4equal_spread); + else: + stroke_through(centre - 1/2s * up, 2equal_spread); + fi; + fi; + endchar; + endfor; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(5/2, 7/2) * equal_spread#); "approx equal"; + s := equal_spread; + + draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness); + draw_sim(b, left_ex, right_ex, 1/4equal_spread, line_thickness); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(1,2) * equal_spread# + 2/5order_width#); "bump equal"; + s := 1/2equal_spread; + + draw_bump(a, 1, left_ex + s * up, right_ex + s * up, order_width/5, line_thickness); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 2equal_spread + 2/5order_width); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(2,3) * equal_spread# + 2/5order_width#); "bump over equal"; + s := equal_spread; + + draw_bump(a, 1, left_ex + s * up, right_ex + s * up, order_width/5, line_thickness); + draw_line(left_ex, right_ex, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 3equal_spread + 2/5order_width); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(1,2) * equal_spread# + 2/5order_width#); "double bump equal"; + s := 1/2equal_spread; + + draw_bump(a, 1, left_ex + s * up, right_ex + s * up, order_width/5, line_thickness); + draw_bump(b, -1, left_ex - s * up, right_ex - s * up, order_width/5, line_thickness); + + if negated = 1: + stroke_through(centre, 2equal_spread + 2/5order_width); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "dot equal"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + fill dot(centre + 3s * up, 3/4dot_size); + + if negated = 1: + stroke_through(centre, 4equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "equal dot"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + fill dot(centre - 3s * up, 3/4dot_size); + + if negated = 1: + stroke_through(centre, 4equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "dot equal dot"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + fill dot(centre + 3s * up, 3/4dot_size); + fill dot(centre - 3s * up, 3/4dot_size); + + if negated = 1: + stroke_through(centre, 4equal_spread); + fi; + endchar; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "falling dot equal"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + fill dot(left_ex + sign * 3/4dot_size * right + 3s * up, 3/4dot_size); + fill dot(right_ex - sign * 3/4dot_size * right - 3s * up, 3/4dot_size); + + if negated = 1: + stroke_through(centre, 4equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(1, order_width#, ifneg(1/2, 2) * equal_spread#); "smile"; + draw_smile(a, sign, left_ex, right_ex, 1/2equal_spread, line_thickness, true); + + if negated = 1: + stroke_through(centre, 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(1, order_width#, ifneg(11/6, 17/6) * equal_spread#); "smile frown"; + s := 2/3equal_spread; + + draw_smile(a, sign, left_ex + s * up, right_ex + s * up, 1/2equal_spread, line_thickness, true); + draw_smile(b, -sign, left_ex - s * up, right_ex - s * up, 1/2equal_spread, line_thickness, true); + + if negated = 1: + stroke_through(centre, 17/6equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(1, order_width#, ifneg(5/2, 7/2) * equal_spread#); "smile over equal"; + s := 1equal_spread; + + draw_smile(a, sign, left_ex + s * up, right_ex + s * up, 1/2equal_spread, line_thickness, true); + draw_line(left_ex, right_ex, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + + if negated = 1: + stroke_through(centre, 7/2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(1, 5/2) * equal_spread#); "equal circ"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + draw_circle(centre, 5/6s, 3/4line_thickness); + + if negated = 1: + stroke_through(centre, 5/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(9/2, 5) * equal_spread#); "circ equal"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + draw_circle(centre + 7/2s * up, 5/6s, 3/4line_thickness); + + if negated = 1: + stroke_through(centre + s * up, 4equal_spread); + fi; + endchar; +fi; + +for sign = 1, -1: + if negated < 2: + beginorder(1, order_width#, 5equal_spread#); "wedge equal"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + + draw_less(a, centre + (7/2 + sign * 3/2) * s * up, centre + (7/2 - sign * 3/2) * s * up, 4s, line_thickness, false); + + if negated = 1: + stroke_through(centre + s * up, 4equal_spread); + fi; + endchar; + fi; +endfor; + +if negated < 2: + beginorder(1, order_width#, 5equal_spread#); "star equal"; + s := 1/2equal_spread; + r := 5/4s + 3/4line_thickness; + t := 1/11r; + + reg_poly_points(a)(5, centre + 7/2s * up, r, 90); + reg_poly_points(b)(5, centre + 7/2s * up, .4r, 126); + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + %draw_triangle(a, centre + 7/2s * up, 3/2s, 90, 3/4line_thickness); + + fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle; + + if negated = 1: + stroke_through(centre + s * up, 4equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, 5equal_spread#); "triangle equal"; + s := 1/2equal_spread; + + draw_line(left_ex + s * up, right_ex + s * up, false); + draw_line(left_ex - s * up, right_ex - s * up, false); + draw_triangle(a, centre + 7/2s * up, 3/2s, 90, 3/4line_thickness); + + if negated = 1: + stroke_through(centre + s * up, 4equal_spread); + fi; + endchar; +fi; + +% element signs + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "element"; + draw_subset(a, left_ex, right_ex, greater_spread, line_thickness); + draw_line(z4a, 1/2[z0a,z1a], false); + + if negated = 1: + stroke_through(centre, equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +% orderings + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "less than"; + draw_less(a, left_ex, right_ex, greater_spread, line_thickness, false); + + if negated = 1: + stroke_through(centre, 1/2equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2/3,5/3,5/3) * equal_spread# + 3/4greater_spread#); "less than or equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 1/3equal_spread * up; + + draw_less(a, z0, z1, s, line_thickness, false); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 5/3equal_spread + 3/4greater_spread); + elseif negated = 2: + stroke_through(1/2[z2,z3], equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "less than or slanted equal"; + s := 3/4greater_spread; + t := 1/2equal_spread; + + draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false); + + if sign = 1: + draw_line(z1a - 2t * up, z4a - 2t * up, false); + else: + draw_line(z0a - 2t * up, z3a - 2t * up, false); + fi; + + if negated = 1: + stroke_through(centre, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(5/3, 8/3, 8/3) * equal_spread# + 3/4greater_spread#); "less than or double equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 5/6equal_spread * up; + z2 - z4 = z3 - z5 = equal_spread * up; + + draw_less(a, z0, z1, s, line_thickness, false); + draw_line(z2, z3, false); + draw_line(z4, z5, false); + + if negated = 1: + stroke_through(centre, 8/3equal_spread + 3/4greater_spread); + elseif negated = 2: + stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1, 3/2, 3/2) * equal_spread# + 3/4greater_spread#); "less sim"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 1/2equal_spread * up; + + draw_less(a, z0, z1, s, line_thickness, false); + if sign > 0: + draw_sim(b, z2, z3, 1/4equal_spread, line_thickness); + else: + draw_sim(b, z3, z2, 1/4equal_spread, line_thickness); + fi + + if negated = 1: + stroke_through(centre, 3/2equal_spread + s); + elseif negated = 2: + stroke_through(1/2[z2,z3], equal_spread); + fi; + endchar; + endfor; +fi + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2, 5/2, 5/2) * equal_spread# + 3/4greater_spread#); "less approx"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = equal_spread * up; + z2 - z4 = z3 - z5 = equal_spread * up; + + draw_less(a, z0, z1, s, line_thickness, false); + + if sign > 0: + draw_sim(b, z2, z3, 1/4equal_spread, line_thickness); + draw_sim(c, z4, z5, 1/4equal_spread, line_thickness); + else: + draw_sim(b, z3, z2, 1/4equal_spread, line_thickness); + draw_sim(c, z5, z4, 1/4equal_spread, line_thickness); + fi + + if negated = 1: + stroke_through(centre, 5/2equal_spread + s); + elseif negated = 2: + stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread); + fi; + endchar; + endfor; +fi + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1, 3/2 + 1/2sign) * equal_spread# + 9/8greater_spread#); "less greater"; + s := 3/4greater_spread; + t := 1/2equal_spread + 1/4s; + + draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false); + + if negated = 1: + stroke_through(centre, (3/2 + 1/2sign) * equal_spread + 3/2s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(4/3, 11/6 + 1/2sign) * equal_spread# + 3/2greater_spread#); "less equal greater"; + s := 3/4greater_spread; + t := 2/3equal_spread + 1/2s; + + draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false); + draw_line(left_ex, right_ex, false); + + if negated = 1: + stroke_through(centre, (11/6 + 1/2sign) * equal_spread + 2s); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(7/3, 17/6 + 1/2sign, 7/3) * equal_spread# + 3/2greater_spread#); "less double equal greater"; + s := 3/4greater_spread; + t := 7/6equal_spread + 1/2s; + u := 1/2equal_spread; + + draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false); + draw_line(left_ex + u * up, right_ex + u * up, false); + draw_line(left_ex - u * up, right_ex - u * up, false); + + if negated = 1: + stroke_through(centre, (17/6 + 1/2sign) * equal_spread + 2s); + elseif negated = 2: + stroke_through(centre, 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2, 5/2 + 1/2sign) * equal_spread# + 9/8greater_spread#); "less slanted equal greater"; + s := 3/4greater_spread; + t := equal_spread + 1/4s; + + draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false); + + if sign = 1: + draw_line(z1a - equal_spread * up, z4a - equal_spread * up, false); + else: + draw_line(z0a - equal_spread * up, z3a - equal_spread * up, false); + fi; + + if negated = 1: + stroke_through(centre, (5/2 + 1/2sign) * equal_spread + 3/2s); + fi; + endchar; + endfor; +fi; + + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width# + 2equal_spread# + line_thickness#, ifneg(0,1) * equal_spread# + greater_spread#); "less less"; + s := 2equal_spread; + + draw_less(a, left_ex, right_ex - sign * s * right, greater_spread, line_thickness, false); + draw_less(b, left_ex + sign * s * right, right_ex, greater_spread, line_thickness, false); + + if negated = 1: + stroke_through(centre, equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width# + 4equal_spread# + line_thickness#, ifneg(0,1) * equal_spread# + greater_spread#); "less less less"; + s := 2equal_spread; + + draw_less(a, left_ex, right_ex - sign * 2s * right, greater_spread, line_thickness, false); + draw_less(b, left_ex + sign * s * right, right_ex - sign * s * right, greater_spread, line_thickness, false); + draw_less(c, left_ex + sign * 2s * right, right_ex, greater_spread, line_thickness, false); + + if negated = 1: + stroke_through(centre, equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "closed less than"; + draw_less(a, left_ex, right_ex, greater_spread, line_thickness, true); + + if negated = 1: + stroke_through(centre, 1/2equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2/3, 5/3) * equal_spread# + 3/4greater_spread#); "closed less than or equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 1/3equal_spread * up; + + draw_less(a, z0, z1, s, line_thickness, true); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 5/3equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width# * sqrt(5/4), ifneg(0,1/2) * equal_spread# + greater_spread#); "round less than"; + thick := line_thickness; + + z0 = left_ex; + z1 = z0 + order_width * dir angle(right_ex - left_ex); + + draw_less(a, z0, z1, greater_spread, thick, false); + + theta := angle(z0a - z2a); + + z0a - z4 = 1/2thick * dir theta; + z1a - z5 = 1/2thick * dir theta; + + penpos4(thick, theta); + penpos5(thick, -theta); + + fill stroke z4.e{dir (theta - 90)} .. {dir(-theta - 90)}z5.e; + + if negated = 1: + stroke_through(centre, 1/2equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width# * sqrt(7/6), ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "round less than or slanted equal"; + thick := line_thickness; + s := 3/4greater_spread; + t := 1/2equal_spread; + + z0 = left_ex + t * up; + z1 = z0 + order_width * dir angle(right_ex - left_ex); + + draw_less(a, z0, z1, s, thick, false); + + theta := angle(z0a - z2a); + + z0a - z4 = 1/2thick * dir theta; + z1a - z5 = 1/2thick * dir theta; + + penpos4(thick, theta); + penpos5(thick, -theta); + + fill stroke z4.e{dir (theta - 90)} .. {dir(-theta - 90)}z5.e; + + if sign = 1: + draw_line(z1a - 2t * up, z4a - 2t * up, false); + else: + draw_line(z0a - 2t * up, z3a - 2t * up, false); + fi; + + if negated = 1: + stroke_through(centre, 3/2equal_spread + 3/4greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "square subset"; + s := greater_spread; + + draw_line(left_ex + s/2 * up, right_ex + s/2 * up, false); + draw_line(left_ex - s/2 * up, right_ex - s/2 * up, false); + draw_line(left_point + s/2 * up, left_point - s/2 * up, false); + + if negated = 1: + stroke_through(centre, equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,2,2) * equal_spread# + 3/4greater_spread#); "square subset equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (equal_spread + s/2) * up; + z0 - left_ex = z0' - left_point = z1 - right_ex = 1/2equal_spread * up; + + draw_line(z0 + s/2 * up, z1 + s/2 * up, false); + draw_line(z0 - s/2 * up, z1 - s/2 * up, false); + draw_line(z0' + s/2 * up, z0' - s/2 * up, false); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 2equal_spread + s); + elseif negated = 2: + stroke_through(1/2[z2,z3] + 1/2equal_spread * up, 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2,3,3) * equal_spread# + 3/4greater_spread#); "square subset double equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (equal_spread + s/2) * up; + z0 - left_ex = z0' - left_point = z1 - right_ex = equal_spread * up; + z2 - z4 = z3 - z5 = equal_spread * up; + + draw_line(z0 + s/2 * up, z1 + s/2 * up, false); + draw_line(z0 - s/2 * up, z1 - s/2 * up, false); + draw_line(z0' + s/2 * up, z0' - s/2 * up, false); + draw_line(z2, z3, false); + draw_line(z4, z5, false); + + if negated = 1: + stroke_through(centre, 3equal_spread + s); + elseif negated = 2: + stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0, 1) * equal_spread# + greater_spread#); "double square subset"; + s := greater_spread; + t := greater_spread - 3/2equal_spread; + + z0 - left_ex = z0' - left_point = 3/4equal_spread * dir (90 - sign * 90); + + draw_line(left_ex + s/2 * up, right_ex + s/2 * up, false); + draw_line(left_ex - s/2 * up, right_ex - s/2 * up, false); + draw_line(left_point + s/2 * up, left_point - s/2 * up, false); + + draw_line(z0 + t/2 * up, right_ex + t/2 * up, false); + draw_line(z0 - t/2 * up, right_ex - t/2 * up, false); + draw_line(z0' + t/2 * up, z0' - t/2 * up, false); + + if negated = 1: + stroke_through(centre, equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "subset"; + draw_subset(a, left_ex, right_ex, greater_spread, line_thickness); + + if negated = 1: + stroke_through(centre, equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,2,2) * equal_spread# + 3/4greater_spread#); "subset or equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (equal_spread + s/2) * up; + z0 - left_ex = z0' - left_point = z1 - right_ex = 1/2equal_spread * up; + + draw_subset(a, z0, z1, s, line_thickness); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 2equal_spread + s); + elseif negated = 2: + stroke_through(1/2[z2,z3] + 1/2equal_spread * up, 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2,3,3) * equal_spread# + 3/4greater_spread#); "subset or double equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (equal_spread + s/2) * up; + z0 - left_ex = z0' - left_point = z1 - right_ex = equal_spread * up; + z2 - z4 = z3 - z5 = equal_spread * up; + + draw_subset(a, z0, z1, s, line_thickness); + draw_line(z2, z3, false); + draw_line(z4, z5, false); + + if negated = 1: + stroke_through(centre, 3equal_spread + s); + elseif negated = 2: + stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "double subset"; + s := greater_spread; + t := greater_spread - 3/2equal_spread; + + z0 - left_ex = 3/4equal_spread * dir (90 - sign * 90); + + draw_subset(a, left_ex, right_ex, s, line_thickness); + draw_subset(b, z0, right_ex, t, line_thickness); + + if negated = 1: + stroke_through(centre, equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "curly less than"; + draw_prec(a, left_ex, right_ex, greater_spread, line_thickness, false); + + if negated = 1: + stroke_through(centre, 1/2equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2/3, 5/3, 5/3) * equal_spread# + 3/4greater_spread#); "curly less than or equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 1/3equal_spread * up; + + draw_prec(a, z0, z1, s, line_thickness, false); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 5/3equal_spread + s); + elseif negated = 2: + stroke_through(1/2[z2,z3], equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "curly less than or curly equal"; + s := 3/4greater_spread; + + z0 - z2 = equal_spread * up; + z1 - z3 = (7/5equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 1/2equal_spread * up; + z2' - z2 = line_thickness * dir (90 - sign * 90); + + draw_prec(a, z0, z1, s, line_thickness, false); + + if sign > 0: + theta := angle (z1a.l - z1a); + else: + theta := angle (z0a.r - z0a); + fi; + + penpos2(line_thickness, 90); + penpos2'(line_thickness, 90); + penpos3(line_thickness, theta); + penpos5(line_thickness, theta); + + path p, q; + + p = z2.l -- z2'.l{dir (90 - sign * 90)} .. {dir (theta - sign * 90)}z3.l; + q = z2.r -- z2'.r{dir (90 - sign * 90)} .. {dir (theta - sign * 90)}z3.r; + + z5.r = point 1.8 of q; + t := xpart (p intersectiontimes (z5.l -- z5.r)); + + fill (subpath (0,t) of p) -- (reverse (subpath (0,1.8) of q)) -- cycle; + + penlabels(2,5); + + if negated = 1: + stroke_through(centre, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(5/3, 8/3, 8/3) * equal_spread# + 3/4greater_spread#); "curly less than or double equal"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 5/6equal_spread * up; + z2 - z4 = z3 - z5 = equal_spread * up; + + draw_prec(a, z0, z1, s, line_thickness, false); + draw_line(z2, z3, false); + draw_line(z4, z5, false); + + if negated = 1: + stroke_through(centre, 8/3equal_spread + 3/4greater_spread); + elseif negated = 2: + stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1, 3/2, 3/2) * equal_spread# + 3/4greater_spread#); "curly less sim"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 1/2equal_spread * up; + + draw_prec(a, z0, z1, s, line_thickness, false); + if sign > 0: + draw_sim(b, z2, z3, 1/4equal_spread, line_thickness); + else: + draw_sim(b, z3, z2, 1/4equal_spread, line_thickness); + fi + + if negated = 1: + stroke_through(centre, 3/2equal_spread + s); + elseif negated = 2: + stroke_through(1/2[z2,z3], equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2, 5/2, 5/2) * equal_spread# + 3/4greater_spread#); "curly less approx"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = equal_spread * up; + z2 - z4 = z3 - z5 = equal_spread * up; + + draw_prec(a, z0, z1, s, line_thickness, false); + + if sign > 0: + draw_sim(b, z2, z3, 1/4equal_spread, line_thickness); + draw_sim(c, z4, z5, 1/4equal_spread, line_thickness); + else: + draw_sim(b, z3, z2, 1/4equal_spread, line_thickness); + draw_sim(c, z5, z4, 1/4equal_spread, line_thickness); + fi + + if negated = 1: + stroke_through(centre, 5/2equal_spread + s); + elseif negated = 2: + stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "less than dot"; + draw_less(a, left_ex, right_ex, greater_spread, line_thickness, false); + fill dot(right_ex - sign * 3/4dot_size * right, 3/4dot_size); + + if negated = 1: + stroke_through(centre, 1/2equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2/3, 5/3) * equal_spread# + 3/4greater_spread#); "less than or equal dot"; + s := 3/4greater_spread; + + z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = 1/3equal_spread * up; + + draw_less(a, z0, z1, s, line_thickness, false); + fill dot(z1 - sign * 3/4dot_size * right, 3/4dot_size); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 5/3equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "less than or slanted equal dot"; + s := 3/4greater_spread; + t := 1/2equal_spread; + + draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false); + fill dot(right_ex + t * up - sign * 3/4dot_size * right, 3/4dot_size); + + if sign = 1: + draw_line(z1a - 2t * up, z4a - 2t * up, false); + else: + draw_line(z0a - 2t * up, z3a - 2t * up, false); + fi; + + if negated = 1: + stroke_through(centre, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "slanted equal or less than"; + s := 3/4greater_spread; + t := 1/2equal_spread; + + draw_less(a, left_ex - t * up, right_ex - t * up, s, line_thickness, false); + + if sign = 1: + draw_line(z0a + 2t * up, z3a + 2t * up, false); + else: + draw_line(z1a + 2t * up, z4a + 2t * up, false); + fi; + + if negated = 1: + stroke_through(centre, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "curly equal or curly less than"; + s := 3/4greater_spread; + + z0 - z2 = -equal_spread * up; + z1 - z3 = -(7/5equal_spread + s/2) * up; + z0 - left_ex = z1 - right_ex = -1/2equal_spread * up; + z2' - z2 = line_thickness * dir (90 - sign * 90); + + draw_prec(a, z0, z1, s, line_thickness, false); + + if sign > 0: + theta := angle (z1a.l - z1a); + else: + theta := angle (z0a.r - z0a); + fi; + + penpos2(line_thickness, -90); + penpos2'(line_thickness, -90); + penpos3(line_thickness, -theta); + penpos5(line_thickness, -theta); + + path p, q; + + p = z2.l -- z2'.l{dir (90 - sign * 90)} .. {dir (sign * 90 - theta)}z3.l; + q = z2.r -- z2'.r{dir (90 - sign * 90)} .. {dir (sign * 90 - theta)}z3.r; + + z5.r = point 1.8 of q; + t := xpart (p intersectiontimes (z5.l -- z5.r)); + + fill (subpath (0,t) of p) -- (reverse (subpath (0,1.8) of q)) -- cycle; + + penlabels(2,5); + + if negated = 1: + stroke_through(centre, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm new file mode 100644 index 00000000000..15de428dbdd Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm new file mode 100644 index 00000000000..a5c4601eeb9 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm new file mode 100644 index 00000000000..2323cf36536 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfm new file mode 100644 index 00000000000..b743f24ee6f Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm new file mode 100644 index 00000000000..b5c7f4cf6b3 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm new file mode 100644 index 00000000000..d945599be08 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm new file mode 100644 index 00000000000..73ecd6cff76 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfm new file mode 100644 index 00000000000..6806f0429c9 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm new file mode 100644 index 00000000000..349d31377c0 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm new file mode 100644 index 00000000000..944e5601875 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm new file mode 100644 index 00000000000..e1fafe081f2 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfm new file mode 100644 index 00000000000..fc4ecaff652 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm new file mode 100644 index 00000000000..4d37c67c5f1 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm new file mode 100644 index 00000000000..4a46e7e999e Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm new file mode 100644 index 00000000000..35de78bf47d Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfm new file mode 100644 index 00000000000..85f7a9f787f Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm new file mode 100644 index 00000000000..b6aa591f42a Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm new file mode 100644 index 00000000000..d45446d00a8 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm new file mode 100644 index 00000000000..7e7809a7820 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfm new file mode 100644 index 00000000000..386a1193ad9 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm new file mode 100644 index 00000000000..51cdaa863e3 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm new file mode 100644 index 00000000000..c7de2bd8c34 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm new file mode 100644 index 00000000000..3a700fe66ba Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfm new file mode 100644 index 00000000000..5858e838294 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb new file mode 100644 index 00000000000..3ced48ca560 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfb new file mode 100644 index 00000000000..612e9da249d Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfb new file mode 100644 index 00000000000..82324ef6e68 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfb new file mode 100644 index 00000000000..c00942aad35 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfb differ diff --git a/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx new file mode 100644 index 00000000000..0b32a87be63 --- /dev/null +++ b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx @@ -0,0 +1,3228 @@ +% \iffalse meta-comment +% +% Copyright (c) 2011 by Michael Ummels +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Michael Ummels. +% +% This work consists of the files fdsymbol.dtx, fdsymbol.ins +% and the derived file fdsymbol.sty. +% +% \fi +% +%\iffalse +%<*driver> +\ProvidesFile{fdsymbol.dtx}[2011/05/09 v0.5a FdSymbol support package] +% +% +% \end{macrocode} +% +% \CheckSum{0} +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins new file mode 100644 index 00000000000..a936394897c --- /dev/null +++ b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins @@ -0,0 +1,55 @@ +% +% Copyright (c) 2011 by Michael Ummels +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Michael Ummels. +% +% This work consists of the files fdsymbol.dtx, fdsymbol.ins +% and the derived file fdsymbol.sty. +% + +\input docstrip.tex + +\preamble + +This is a generated file. + +Copyright (c) 2011 by Michael Ummels + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3c +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Michael Ummels. + +This work consists of the files fdsymbol.dtx, fdsymbol.ins +and the derived file fdsymbol.sty. + +\endpreamble + +\postamble +\endpostamble + +\keepsilent +\askforoverwritetrue + +\generate{% + \file{fdsymbol.sty}{\from{fdsymbol.dtx}{style}} +} + +\endbatchfile diff --git a/Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty b/Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty new file mode 100644 index 00000000000..ec733cc3aaa --- /dev/null +++ b/Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty @@ -0,0 +1,1754 @@ +%% +%% This is file `fdsymbol.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fdsymbol.dtx (with options: `style') +%% +%% This is a generated file. +%% +%% Copyright (c) 2011 by Michael Ummels +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Michael Ummels. +%% +%% This work consists of the files fdsymbol.dtx, fdsymbol.ins +%% and the derived file fdsymbol.sty. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{fdsymbol}[2011/05/09 v0.5a FdSymbol support package] + +\RequirePackage{xkeyval} +\define@boolkey{fdsymbol.sty}[fdsy@]{largedelims}[true]{} +\newcommand{\fdsy@scale}{1.0} +\define@key{fdsymbol.sty}{scale}{\renewcommand\fdsy@scale{#1}} +\newcommand\fdsy@mweight{Book} +\newcommand\fdsy@msweight{Book} +\newcommand\fdsy@bweight{Medium} +\newcommand\fdsy@bsweight{Medium} +\define@choicekey*{fdsymbol.sty}{normalweight}[\@tempa\@tempb]{book,regular,auto}{% + \ifcase\@tempb\relax + \renewcommand\fdsy@mweight{Book} + \renewcommand\fdsy@msweight{Book} + \or + \renewcommand\fdsy@mweight{Regular} + \renewcommand\fdsy@msweight{Regular} + \or + \renewcommand\fdsy@mweight{Book} + \renewcommand\fdsy@msweight{Regular} + \fi +} +\define@choicekey*{fdsymbol.sty}{boldweight}[\@tempa\@tempb]{medium,bold,auto}{% + \ifcase\@tempb\relax + \renewcommand\fdsy@bweight{Medium} + \renewcommand\fdsy@bsweight{Medium} + \or + \renewcommand\fdsy@bweight{Bold} + \renewcommand\fdsy@bsweight{Bold} + \or + \renewcommand\fdsy@bweight{Medium} + \renewcommand\fdsy@bsweight{Bold} + \fi +} + +\ExecuteOptionsX{largedelims=false} +\ProcessOptionsX +\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}} +\@ifpackageloaded{textcomp}{}{\RequirePackage{textcomp}} +\@ifundefined{mathfrak}{\RequirePackage{eufrak}}{} +\iffdsy@largedelims + \renewcommand{\Big}{\bBigg@{1.25}} + \renewcommand{\bigg}{\bBigg@{1.66}} + \renewcommand{\Bigg}{\bBigg@{2.08}} +\fi +\DeclareRobustCommand{\dagger}{\fdsy@text{\textdagger}} +\DeclareRobustCommand{\ddagger}{\fdsy@text{\textdaggerdbl}} +\DeclareRobustCommand{\mathparagraph}{\fdsy@text{\textparagraph}} +\DeclareRobustCommand{\mathsection}{\fdsy@text{\textsection}} +\DeclareRobustCommand{\mathdollar}{\fdsy@text{\textdollar}} +\DeclareRobustCommand{\mathsterling}{\fdsy@text{\textsterling}} +\DeclareRobustCommand{\yen}{\fdsy@text{\textyen}} +\DeclareRobustCommand{\circledR}{\fdsy@text{\textcircled{% + \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}} +\DeclareRobustCommand{\circledS}{\fdsy@text{\textcircled{% + \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont S}}} +\DeclareRobustCommand{\Re}{\mathfrak{R}} +\DeclareRobustCommand{\Im}{\mathfrak{I}} +\DeclareRobustCommand{\dotplus}{\mathbin{\dot{+}}} +\DeclareRobustCommand{\dotcong}{\mathrel{\dot{\cong}}} +\DeclareRobustCommand{\thicksim}{\mathrel{\text{\boldmath$\m@th\sim$}}} +\DeclareRobustCommand{\thickapprox}{\mathrel{\text{\boldmath$\m@th\approx$}}} +\let\hbar\undefined +\let\hslash\undefined +\DeclareRobustCommand{\hbar}{\middlebar h} +\DeclareRobustCommand{\hslash}{\middleslash h} +\DeclareRobustCommand{\veebar}{\mathbin{\underline{\vee}}} +\DeclareRobustCommand{\barwedge}{\mathbin{\overline{\wedge}}} +\DeclareRobustCommand{\veedoublebar}{\mathbin{\underline{\underline{\vee}}}} +\DeclareRobustCommand{\doublebarwedge}{\mathbin{\overline{\overline{\wedge}}}} +\DeclareRobustCommand{\centerdot}{\mathbin{\rule{0.15em}{0.15em}}} +\DeclareRobustCommand{\divideontimes}{\mathbin{\ooalign{$\div$\crcr$\times$}}} +\let\mapstochar\undefined +\let\lhook\undefined +\let\rhook\undefined +\newcommand\fdsy@setslot[1]{\@tempcnta #1\relax} +\newcommand\fdsy@nextslot{\advance\@tempcnta 1\relax} +\newcommand\fdsy@prevslot{\advance\@tempcnta-1\relax} + +\newcommand\fdsy@@DeclareSymbol[4]{\DeclareMathSymbol{#2}{#3}{#4}{#1}} +\newcommand\fdsy@DeclareSymbol[3]{% + \if\relax\noexpand#1\let#1\undefined\fi + \expandafter\fdsy@@DeclareSymbol\expandafter{\the\@tempcnta}{#1}{#3}{#2}% + \fdsy@nextslot +} +\newcommand\fdsy@DeclareAlias[3]{\fdsy@prevslot\fdsy@DeclareSymbol{#1}{#2}{#3}} +\newcommand\fdsy@DeclareOperator[3]{\def#1{\DOTSB#3\slimits@}} +\newcommand\fdsy@DeclareIntegral[3]{\def#1{\DOTSI#3\ilimits@}} +\newcommand\fdsy@DeclareDelimiter[4]{% + \if\relax\noexpand#1\let#1\undefined\fi + \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}% +} +\newcommand\fdsy@DeclareOpen[3]{\fdsy@DeclareDelimiter{#1}{\mathopen}{#2}{#3}} +\newcommand\fdsy@DeclareClose[3]{\fdsy@DeclareDelimiter{#1}{\mathclose}{#2}{#3}} +\DeclareFontFamily{U}{FdSymbolA}{} +\DeclareFontFamily{U}{FdSymbolB}{} +\DeclareFontFamily{U}{FdSymbolC}{} +\DeclareFontFamily{U}{FdSymbolD}{} +\DeclareFontFamily{U}{FdSymbolE}{} +\DeclareFontFamily{U}{FdSymbolF}{} + +\DeclareFontShape{U}{FdSymbolA}{m}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolA-\fdsy@msweight + <7.1-> s * [\fdsy@scale] FdSymbolA-\fdsy@mweight +}{} +\DeclareFontShape{U}{FdSymbolA}{b}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolA-\fdsy@bsweight + <7.1-> s * [\fdsy@scale] FdSymbolA-\fdsy@bweight +}{} +\DeclareFontShape{U}{FdSymbolB}{m}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolB-\fdsy@msweight + <7.1-> s * [\fdsy@scale] FdSymbolB-\fdsy@mweight +}{} +\DeclareFontShape{U}{FdSymbolB}{b}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolB-\fdsy@bsweight + <7.1-> s * [\fdsy@scale] FdSymbolB-\fdsy@bweight +}{} +\DeclareFontShape{U}{FdSymbolC}{m}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@msweight + <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@mweight +}{} +\DeclareFontShape{U}{FdSymbolC}{b}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@bsweight + <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@bweight +}{} +\DeclareFontShape{U}{FdSymbolD}{m}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolD-\fdsy@msweight + <7.1-> s * [\fdsy@scale] FdSymbolD-\fdsy@mweight +}{} +\DeclareFontShape{U}{FdSymbolD}{b}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolD-\fdsy@bsweight + <7.1-> s * [\fdsy@scale] FdSymbolD-\fdsy@bweight +}{} +\DeclareFontShape{U}{FdSymbolE}{m}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolE-\fdsy@msweight + <7.1-> s * [\fdsy@scale] FdSymbolE-\fdsy@mweight +}{} +\DeclareFontShape{U}{FdSymbolE}{b}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolE-\fdsy@bsweight + <7.1-> s * [\fdsy@scale] FdSymbolE-\fdsy@bweight +}{} +\DeclareFontShape{U}{FdSymbolF}{m}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolF-\fdsy@msweight + <7.1-> s * [\fdsy@scale] FdSymbolF-\fdsy@mweight +}{} +\DeclareFontShape{U}{FdSymbolF}{b}{n}{ + <-7.1> s * [\fdsy@scale] FdSymbolF-\fdsy@bsweight + <7.1-> s * [\fdsy@scale] FdSymbolF-\fdsy@bweight +}{} + +\DeclareSymbolFont{symbols}{U}{FdSymbolA}{m}{n} +\DeclareSymbolFont{relations}{U}{FdSymbolB}{m}{n} +\DeclareSymbolFont{arrows}{U}{FdSymbolC}{m}{n} +\DeclareSymbolFont{narrows}{U}{FdSymbolD}{m}{n} +\DeclareSymbolFont{largesymbols}{U}{FdSymbolE}{m}{n} +\DeclareSymbolFont{delimiters}{U}{FdSymbolF}{m}{n} +\SetSymbolFont{symbols}{bold}{U}{FdSymbolA}{b}{n} +\SetSymbolFont{relations}{bold}{U}{FdSymbolB}{b}{n} +\SetSymbolFont{arrows}{bold}{U}{FdSymbolC}{b}{n} +\SetSymbolFont{narrows}{bold}{U}{FdSymbolD}{b}{n} +\SetSymbolFont{largesymbols}{bold}{U}{FdSymbolE}{b}{n} +\SetSymbolFont{delimiters}{bold}{U}{FdSymbolF}{b}{n} +\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n} +\SetMathAlphabet{\mathcal}{bold}{OMS}{cmsy}{b}{n} +\newcommand\fdsy@bold{bold} +\newcommand\fdsy@text[1]{% + \ifx\fdsy@bold\math@version + \text{\bfseries#1}% + \else + \text{\mdseries#1}% + \fi +} +\fdsy@setslot{0} +\fdsy@DeclareSymbol{\cdot}{symbols}{\mathbin} + \fdsy@DeclareAlias{\cdotp}{symbols}{\mathpunct} +\fdsy@DeclareSymbol{\hdotdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\vdotdot}{symbols}{\mathbin} + \fdsy@DeclareAlias{\colon}{symbols}{\mathpunct} + \fdsy@DeclareAlias{\mathcolon}{symbols}{\mathpunct} + \fdsy@DeclareAlias{\mathratio}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\udotdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\ddotdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\hdots}{symbols}{\mathord} + \fdsy@DeclareAlias{\@cdots}{symbols}{\mathinner} + \let\cdots\@cdots +\fdsy@DeclareSymbol{\@vdots}{symbols}{\mathord} +\DeclareRobustCommand{\vdots}{\ifmmode\@vdots\else\hbox{$\@vdots$}\fi} +\fdsy@DeclareSymbol{\udots}{symbols}{\mathord} + \fdsy@DeclareAlias{\adots}{symbols}{\mathord} +\fdsy@DeclareSymbol{\ddots}{symbols}{\mathord} +\fdsy@DeclareSymbol{\righttherefore}{symbols}{\mathord} +\fdsy@DeclareSymbol{\uptherefore}{symbols}{\mathord} + \fdsy@DeclareAlias{\therefore}{symbols}{\mathord} +\fdsy@DeclareSymbol{\lefttherefore}{symbols}{\mathord} +\fdsy@DeclareSymbol{\downtherefore}{symbols}{\mathord} + \fdsy@DeclareAlias{\because}{symbols}{\mathord} +\fdsy@DeclareSymbol{\squaredots}{symbols}{\mathord} + \fdsy@DeclareAlias{\Colon}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\minus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medslash}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smalldivslash}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medbackslash}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smallsetminus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\plus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\times}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\pm}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\mp}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\dotminus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\minusdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\minusfdots}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\minusrdots}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\dotsminusdots}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\div}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\neg}{symbols}{\mathord} + \fdsy@DeclareAlias{\lnot}{symbols}{\mathord} + \fdsy@DeclareAlias{\minushookdown}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\backneg}{symbols}{\mathord} + \fdsy@DeclareAlias{\hookdownminus}{symbols}{\mathbin} + \fdsy@DeclareAlias{\invneg}{symbols}{\mathord} + \fdsy@DeclareAlias{\invnot}{symbols}{\mathord} +\fdsy@DeclareSymbol{\intprod}{symbols}{\mathbin} + \fdsy@DeclareAlias{\minushookup}{symbols}{\mathbin} + \fdsy@DeclareAlias{\turnedneg}{symbols}{\mathord} + \fdsy@DeclareAlias{\turnednot}{symbols}{\mathord} +\fdsy@DeclareSymbol{\intprodr}{symbols}{\mathbin} + \fdsy@DeclareAlias{\hookupminus}{symbols}{\mathbin} + \fdsy@DeclareAlias{\turnedbackneg}{symbols}{\mathord} +\fdsy@DeclareSymbol{\leftthreetimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\rightthreetimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\dtimes}{symbols}{\mathbin} + \fdsy@DeclareAlias{\btimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\rtimes}{symbols}{\mathbin} + \fdsy@DeclareAlias{\rJoin}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\utimes}{symbols}{\mathbin} + \fdsy@DeclareAlias{\ttimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\ltimes}{symbols}{\mathbin} + \fdsy@DeclareAlias{\lJoin}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\bowtie}{symbols}{\mathrel} + \fdsy@DeclareAlias{\Join}{symbols}{\mathrel} + \fdsy@DeclareAlias{\lrtimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\upbowtie}{symbols}{\mathbin} + \fdsy@DeclareAlias{\hourglass}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\rightY}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\upY}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\leftY}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\downY}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\wedge}{symbols}{\mathbin} + \fdsy@DeclareAlias{\land}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\vee}{symbols}{\mathbin} + \fdsy@DeclareAlias{\lor}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\wedgedot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\veedot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublewedge}{symbols}{\mathbin} + \fdsy@DeclareAlias{\wedgeonwedge}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublevee}{symbols}{\mathbin} + \fdsy@DeclareAlias{\veeonvee}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\curlywedge}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\curlyvee}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\curlywedgedot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\curlyveedot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublecurlywedge}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublecurlyvee}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\cup}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\cap}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublecup}{symbols}{\mathbin} + \fdsy@DeclareAlias{\Cup}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublecap}{symbols}{\mathbin} + \fdsy@DeclareAlias{\Cap}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\cupdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\capdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\cupplus}{symbols}{\mathbin} + \fdsy@DeclareAlias{\uplus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\capplus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\sqcup}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\sqcap}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublesqcup}{symbols}{\mathbin} + \fdsy@DeclareAlias{\Sqcup}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\doublesqcap}{symbols}{\mathbin} + \fdsy@DeclareAlias{\Sqcap}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\sqcupdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\sqcapdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\sqcupplus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\sqcapplus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\pullback}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\pushout}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smalltriangleright}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smalltriangleup}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smalltriangleleft}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smalltriangledown}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblacktriangleright}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblacktriangleup}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblacktriangleleft}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblacktriangledown}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medtriangleright}{symbols}{\mathbin} + \fdsy@DeclareAlias{\triangleright}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medtriangleup}{symbols}{\mathbin} + \fdsy@DeclareAlias{\triangle}{symbols}{\mathbin} + \fdsy@DeclareAlias{\vartriangle}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medtriangleleft}{symbols}{\mathbin} + \fdsy@DeclareAlias{\triangleleft}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medtriangledown}{symbols}{\mathbin} + \fdsy@DeclareAlias{\triangledown}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblacktriangleright}{symbols}{\mathbin} + \fdsy@DeclareAlias{\blacktriangleright}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblacktriangleup}{symbols}{\mathbin} + \fdsy@DeclareAlias{\blacktriangle}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblacktriangleleft}{symbols}{\mathbin} + \fdsy@DeclareAlias{\blacktriangleleft}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblacktriangledown}{symbols}{\mathbin} + \fdsy@DeclareAlias{\blacktriangledown}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\largetriangleup}{symbols}{\mathord} + \fdsy@DeclareAlias{\bigtriangleup}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\largetriangledown}{symbols}{\mathord} + \fdsy@DeclareAlias{\bigtriangledown}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallcircle}{symbols}{\mathbin} + \fdsy@DeclareAlias{\circ}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smwhtcircle}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblackcircle}{symbols}{\mathbin} + \fdsy@DeclareAlias{\bullet}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smblkcircle}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medcircle}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdlgwhtcircle}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblackcircle}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdlgblkcircle}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\ominus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\overt}{symbols}{\mathbin} + \fdsy@DeclareAlias{\circledvert}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\oslash}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\obackslash}{symbols}{\mathbin} + \fdsy@DeclareAlias{\obslash}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\oplus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\otimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\odot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\ocirc}{symbols}{\mathbin} + \fdsy@DeclareAlias{\circledcirc}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\oast}{symbols}{\mathbin} + \fdsy@DeclareAlias{\circledast}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\odash}{symbols}{\mathbin} + \fdsy@DeclareAlias{\circleddash}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\oequal}{symbols}{\mathbin} + \fdsy@DeclareAlias{\circledequal}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\emptyset}{symbols}{\mathord} + \fdsy@DeclareAlias{\diameter}{symbols}{\mathord} + \fdsy@DeclareAlias{\varnothing}{symbols}{\mathord} +\fdsy@DeclareSymbol{\revemptyset}{symbols}{\mathord} +\fdsy@DeclareSymbol{\largecircle}{symbols}{\mathord} + \fdsy@DeclareAlias{\bigcirc}{symbols}{\mathord} + \fdsy@DeclareAlias{\lgwhtcircle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\largeblackcircle}{symbols}{\mathord} + \fdsy@DeclareAlias{\lgblkcircle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\smallsquare}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smwhtsquare}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblacksquare}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smblksquare}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medsquare}{symbols}{\mathbin} + \fdsy@DeclareAlias{\square}{symbols}{\mathbin} + \fdsy@DeclareAlias{\Box}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdlgwhtsquare}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdwhtsquare}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblacksquare}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdlgblksquare}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdblksquare}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxminus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxvert}{symbols}{\mathbin} + \fdsy@DeclareAlias{\boxbar}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxslash}{symbols}{\mathbin} + \fdsy@DeclareAlias{\boxdiag}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxbackslash}{symbols}{\mathbin} + \fdsy@DeclareAlias{\boxbslash}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxplus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxtimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\boxbox}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\largesquare}{symbols}{\mathord} + \fdsy@DeclareAlias{\lgwhtsquare}{symbols}{\mathord} +\fdsy@DeclareSymbol{\largeblacksquare}{symbols}{\mathord} + \fdsy@DeclareAlias{\lgblksquare}{symbols}{\mathord} +\fdsy@DeclareSymbol{\smalldiamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\diamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smwhtdiamond}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblackdiamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\blackdiamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smblkdiamond}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\meddiamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\Diamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdlgwhtdiamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdwhtdiamond}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblackdiamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdlgblkdiamond}{symbols}{\mathbin} + \fdsy@DeclareAlias{\mdblkdiamond}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamondminus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamondvert}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamondslash}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamondbackslash}{symbols}{\mathbin} + \fdsy@DeclareAlias{\diamondbslash}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamondplus}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamondtimes}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamonddot}{symbols}{\mathbin} + \fdsy@DeclareAlias{\diamondcdot}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\diamonddiamond}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smalllozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\smwhtlozenge}{symbols}{\mathord} +\fdsy@DeclareSymbol{\smallblacklozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\smblklozenge}{symbols}{\mathord} +\fdsy@DeclareSymbol{\medlozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\lozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\mdlgwhtlozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\mdwhtlozenge}{symbols}{\mathord} +\fdsy@DeclareSymbol{\medblacklozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\blacklozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\mdlgblklozenge}{symbols}{\mathord} + \fdsy@DeclareAlias{\mdblklozenge}{symbols}{\mathord} +\fdsy@DeclareSymbol{\lozengeminus}{symbols}{\mathord} +\fdsy@DeclareSymbol{\smallwhitestar}{symbols}{\mathbin} + \fdsy@DeclareAlias{\smwhitestar}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallblackstar}{symbols}{\mathbin} + \fdsy@DeclareAlias{\star}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medwhitestar}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\medblackstar}{symbols}{\mathbin} + \fdsy@DeclareAlias{\medstar}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\largewhitestar}{symbols}{\mathord} +\fdsy@DeclareSymbol{\largeblackstar}{symbols}{\mathord} + \fdsy@DeclareAlias{\bigstar}{symbols}{\mathord} +\fdsy@DeclareSymbol{\ast}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\infty}{symbols}{\mathord} +\fdsy@DeclareSymbol{\propto}{symbols}{\mathrel} + \fdsy@DeclareAlias{\varpropto}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\backpropto}{symbols}{\mathrel} + \fdsy@DeclareAlias{\propfrom}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\crossing}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\between}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\separated}{symbols}{\mathrel} +\fdsy@DeclareSymbol{\bot}{symbols}{\mathord} +\fdsy@DeclareSymbol{\top}{symbols}{\mathord} + \fdsy@DeclareAlias{\intercal}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\wreath}{symbols}{\mathbin} + \fdsy@DeclareAlias{\wr}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\angle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\revangle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\measuredangle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\revmeasuredangle}{symbols}{\mathord} + \fdsy@DeclareAlias{\measuredangleleft}{symbols}{\mathord} +\fdsy@DeclareSymbol{\sphericalangle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\sphericalangleup}{symbols}{\mathord} +\fdsy@DeclareSymbol{\sphericalangleleft}{symbols}{\mathord} + \fdsy@DeclareAlias{\revsphericalangle}{symbols}{\mathord} + \fdsy@DeclareAlias{\gtlpar}{symbols}{\mathord} +\fdsy@DeclareSymbol{\sphericalangledown}{symbols}{\mathord} +\fdsy@DeclareSymbol{\rightangle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\measuredrightangle}{symbols}{\mathord} +\fdsy@DeclareSymbol{\rightanglesquare}{symbols}{\mathord} + \fdsy@DeclareAlias{\rightanglesqr}{symbols}{\mathord} +\fdsy@DeclareSymbol{\measuredrightangledot}{symbols}{\mathord} + \fdsy@DeclareAlias{\rightanglemdot}{symbols}{\mathord} +\fdsy@DeclareSymbol{\prime}{symbols}{\mathord} +\fdsy@DeclareSymbol{\backprime}{symbols}{\mathord} +\fdsy@DeclareSymbol{\smallprod}{symbols}{\mathop} +\fdsy@DeclareSymbol{\smallcoprod}{symbols}{\mathop} + \fdsy@DeclareAlias{\amalg}{symbols}{\mathbin} +\fdsy@DeclareSymbol{\smallint}{symbols}{\mathop} +\fdsy@DeclareSymbol{\checkmark}{symbols}{\mathord} +\fdsy@DeclareSymbol{\lightning}{symbols}{\mathord} + \fdsy@DeclareAlias{\downzigzagarrow}{symbols}{\mathord} +\fdsy@DeclareSymbol{\diamondsuit}{symbols}{\mathord} +\fdsy@DeclareSymbol{\vardiamondsuit}{symbols}{\mathord} +\fdsy@DeclareSymbol{\heartsuit}{symbols}{\mathord} +\fdsy@DeclareSymbol{\varheartsuit}{symbols}{\mathord} +\fdsy@DeclareSymbol{\spadesuit}{symbols}{\mathord} +\fdsy@DeclareSymbol{\clubsuit}{symbols}{\mathord} +\fdsy@DeclareSymbol{\maltese}{symbols}{\mathord} +\fdsy@DeclareSymbol{\starofdavid}{symbols}{\mathord} +\fdsy@DeclareSymbol{\sector}{symbols}{\mathord} +\fdsy@DeclareSymbol{\forall}{symbols}{\mathord} +\fdsy@DeclareSymbol{\exists}{symbols}{\mathord} +\fdsy@DeclareSymbol{\nexists}{symbols}{\mathord} +\fdsy@DeclareSymbol{\Finv}{symbols}{\mathord} +\fdsy@DeclareSymbol{\Game}{symbols}{\mathord} +\fdsy@DeclareSymbol{\complement}{symbols}{\mathord} +\fdsy@DeclareSymbol{\flat}{symbols}{\mathord} +\fdsy@DeclareSymbol{\natural}{symbols}{\mathord} +\fdsy@DeclareSymbol{\sharp}{symbols}{\mathord} +\fdsy@DeclareSymbol{\aleph}{symbols}{\mathord} +\fdsy@DeclareSymbol{\beth}{symbols}{\mathord} +\fdsy@DeclareSymbol{\gimel}{symbols}{\mathord} +\fdsy@DeclareSymbol{\daleth}{symbols}{\mathord} +\fdsy@DeclareSymbol{\wp}{symbols}{\mathord} +\fdsy@setslot{0} +\fdsy@DeclareSymbol{\equal}{relations}{\mathrel} +\fdsy@DeclareSymbol{\equiv}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\backsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\approx}{relations}{\mathrel} +\fdsy@DeclareSymbol{\triplesim}{relations}{\mathrel} + \fdsy@DeclareAlias{\approxident}{relations}{\mathrel} +\fdsy@DeclareSymbol{\simeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\backsimeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\eqsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\cong}{relations}{\mathrel} +\fdsy@DeclareSymbol{\backcong}{relations}{\mathrel} +\fdsy@DeclareSymbol{\approxeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\bumpeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\bumpeqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\Bumpeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\doteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\eqdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\Doteq}{relations}{\mathrel} + \fdsy@DeclareAlias{\doteqdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\fallingdotseq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\risingdotseq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\smile}{relations}{\mathrel} + \fdsy@DeclareAlias{\smallsmile}{relations}{\mathrel} +\fdsy@DeclareSymbol{\frown}{relations}{\mathrel} + \fdsy@DeclareAlias{\smallfrown}{relations}{\mathrel} +\fdsy@DeclareSymbol{\smilefrown}{relations}{\mathrel} + \fdsy@DeclareAlias{\asymp}{relations}{\mathrel} +\fdsy@DeclareSymbol{\frownsmile}{relations}{\mathrel} + \fdsy@DeclareAlias{\closure}{relations}{\mathrel} +\fdsy@DeclareSymbol{\smileeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\frowneq}{relations}{\mathrel} + \fdsy@DeclareAlias{\arceq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\eqcirc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\circeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\wedgeq}{relations}{\mathrel} + \fdsy@DeclareAlias{\hateq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\veeeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\stareq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\triangleeq}{relations}{\mathrel} + \fdsy@DeclareAlias{\triangleq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\in}{relations}{\mathrel} +\fdsy@DeclareSymbol{\owns}{relations}{\mathrel} + \fdsy@DeclareAlias{\ni}{relations}{\mathrel} +\fdsy@DeclareSymbol{\less}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\leq}{relations}{\mathrel} + \fdsy@DeclareAlias{\le}{relations}{\mathrel} +\fdsy@DeclareSymbol{\geq}{relations}{\mathrel} + \fdsy@DeclareAlias{\ge}{relations}{\mathrel} +\fdsy@DeclareSymbol{\leqslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\geqslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\leqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\geqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lesssim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtrsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lessapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtrapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lessgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtrless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lesseqgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtreqless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lesseqqgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtreqqless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lesseqgtrslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtreqlessslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ll}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gg}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lll}{relations}{\mathrel} + \fdsy@DeclareAlias{\llless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ggg}{relations}{\mathrel} + \fdsy@DeclareAlias{\gggtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lessclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\lhd}{relations}{\mathbin} + \fdsy@DeclareAlias{\vartriangleleft}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtrclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\rhd}{relations}{\mathbin} + \fdsy@DeclareAlias{\vartriangleright}{relations}{\mathrel} +\fdsy@DeclareSymbol{\leqclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\unlhd}{relations}{\mathbin} + \fdsy@DeclareAlias{\trianglelefteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\geqclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\unrhd}{relations}{\mathbin} + \fdsy@DeclareAlias{\trianglerighteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lesscc}{relations}{\mathrel} + \fdsy@DeclareAlias{\ltcc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtrcc}{relations}{\mathrel} + \fdsy@DeclareAlias{\gtcc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\leqslcc}{relations}{\mathrel} + \fdsy@DeclareAlias{\lescc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\geqslcc}{relations}{\mathrel} + \fdsy@DeclareAlias{\gescc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsubset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsupset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsubseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsupseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsubseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsupseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\Sqsubset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\Sqsupset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\subset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\supset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\subseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\supseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\subseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\supseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\Subset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\Supset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\prec}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succ}{relations}{\mathrel} +\fdsy@DeclareSymbol{\preceq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\preccurlyeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succcurlyeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\preceqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succeqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\precsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\precapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lessdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtrdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\leqdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\geqdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\leqslantdot}{relations}{\mathrel} + \fdsy@DeclareAlias{\lesdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\geqslantdot}{relations}{\mathrel} + \fdsy@DeclareAlias{\gesdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\eqslantless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\eqslantgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\curlyeqprec}{relations}{\mathrel} +\fdsy@DeclareSymbol{\curlyeqsucc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nequal}{relations}{\mathrel} + \fdsy@DeclareAlias{\neq}{relations}{\mathrel} + \fdsy@DeclareAlias{\ne}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nequiv}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nbacksim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\napprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ntriplesim}{relations}{\mathrel} + \fdsy@DeclareAlias{\napproxident}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsimeq}{relations}{\mathrel} + \fdsy@DeclareAlias{\nsime}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nbacksimeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\neqsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ncong}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nbackcong}{relations}{\mathrel} +\fdsy@DeclareSymbol{\napproxeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nbumpeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nbumpeqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nBumpeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ndoteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\neqdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nDoteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nfallingdotseq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nrisingdotseq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsmile}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nfrown}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsmilefrown}{relations}{\mathrel} + \fdsy@DeclareAlias{\nasymp}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nfrownsmile}{relations}{\mathrel} + \fdsy@DeclareAlias{\nclosure}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsmileeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nfrowneq}{relations}{\mathrel} + \fdsy@DeclareAlias{\narceq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\neqcirc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ncirceq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nwedgeq}{relations}{\mathrel} + \fdsy@DeclareAlias{\nhateq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nveeeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nstareq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ntriangleeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nin}{relations}{\mathrel} + \fdsy@DeclareAlias{\notin}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nowns}{relations}{\mathrel} + \fdsy@DeclareAlias{\nni}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nleq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nleqslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngeqslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nleqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngeqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlesssim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtrsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlessapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtrapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlessgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtrless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlesseqgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtreqless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlesseqqgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtreqqless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlesseqgtrslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtreqlessslant}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nll}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngg}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlll}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nggg}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlessclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\ntriangleleft}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtrclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\ntriangleright}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nleqclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\ntrianglelefteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngeqclosed}{relations}{\mathrel} + \fdsy@DeclareAlias{\ntrianglerighteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlesscc}{relations}{\mathrel} + \fdsy@DeclareAlias{\nltcc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtrcc}{relations}{\mathrel} + \fdsy@DeclareAlias{\ngtcc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nleqslcc}{relations}{\mathrel} + \fdsy@DeclareAlias{\nlescc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngeqslcc}{relations}{\mathrel} + \fdsy@DeclareAlias{\ngescc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsqsubset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsqsupset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsqsubseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsqsupseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsqsubseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsqsupseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nSqsubset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nSqsupset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsubset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsupset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsubseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsupseteq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsubseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsupseteqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nSubset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nSupset}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nprec}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsucc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\npreceq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsucceq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\npreccurlyeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsucccurlyeq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\npreceqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsucceqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nprecsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsuccsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nprecapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nsuccapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nlessdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngtrdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nleqdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngeqdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\nleqslantdot}{relations}{\mathrel} + \fdsy@DeclareAlias{\nlesdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ngeqslantdot}{relations}{\mathrel} + \fdsy@DeclareAlias{\ngesdot}{relations}{\mathrel} +\fdsy@DeclareSymbol{\neqslantless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\neqslantgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ncurlyeqprec}{relations}{\mathrel} +\fdsy@DeclareSymbol{\ncurlyeqsucc}{relations}{\mathrel} +\fdsy@DeclareSymbol{\simneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\backsimneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lneqq}{relations}{\mathrel} + \fdsy@DeclareAlias{\lvertneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gneqq}{relations}{\mathrel} + \fdsy@DeclareAlias{\gvertneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lnsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gnsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lnapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gnapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\lessneqqgtr}{relations}{\mathrel} +\fdsy@DeclareSymbol{\gtrneqqless}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsubsetneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsupsetneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsubsetneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\sqsupsetneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\subsetneq}{relations}{\mathrel} + \fdsy@DeclareAlias{\varsubsetneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\supsetneq}{relations}{\mathrel} + \fdsy@DeclareAlias{\varsupsetneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\subsetneqq}{relations}{\mathrel} + \fdsy@DeclareAlias{\varsubsetneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\supsetneqq}{relations}{\mathrel} + \fdsy@DeclareAlias{\varsupsetneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\precneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succneq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\precneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succneqq}{relations}{\mathrel} +\fdsy@DeclareSymbol{\precnsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succnsim}{relations}{\mathrel} +\fdsy@DeclareSymbol{\precnapprox}{relations}{\mathrel} +\fdsy@DeclareSymbol{\succnapprox}{relations}{\mathrel} + +\DeclareRobustCommand{\coloneq}{\mathrel{{\vdotdot}{\equal}}} +\let\coloneqq\coloneq +\fdsy@setslot{0} +\fdsy@DeclareSymbol{\rightarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\to}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\uparrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftarrow}{arrows}{\mathrel} +\fdsy@DeclareAlias{\gets}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\searrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Rightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Uparrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Leftarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Downarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Nearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Nwarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Swarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Searrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\updownarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neswarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwsearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Leftrightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Updownarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Neswarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Nwsearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheadrightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheaduparrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheadleftarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheaddownarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheadnearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheadnwarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheadswarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\twoheadsearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightarrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\uparrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftarrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downarrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nearrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwarrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swarrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\searrowtail}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightmapsto}{arrows}{\mathrel} + \fdsy@DeclareAlias{\mapsto}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upmapsto}{arrows}{\mathrel} + \fdsy@DeclareAlias{\mapsup}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftmapsto}{arrows}{\mathrel} + \fdsy@DeclareAlias{\mapsfrom}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downmapsto}{arrows}{\mathrel} + \fdsy@DeclareAlias{\mapsdown}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nemapsto}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwmapsto}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swmapsto}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\semapsto}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhookrightarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\hookrightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhookuparrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhookleftarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhookdownarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhooknearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhooknwarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\hknwarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhookswarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\lhooksearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\hksearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhookrightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhookuparrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhookleftarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\hookleftarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhookdownarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhooknearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\hknearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhooknwarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhookswarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\hkswarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rhooksearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightharpoonup}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upharpoonleft}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftharpoondown}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downharpoonright}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neharpoonnw}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwharpoonsw}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swharpoonse}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\seharpoonne}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightharpoondown}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upharpoonright}{arrows}{\mathrel} + \fdsy@DeclareAlias{\restriction}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftharpoonup}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downharpoonleft}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neharpoonse}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwharpoonne}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swharpoonnw}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\seharpoonsw}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrightharpoonupdown}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\updownharpoonleftright}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neswharpoonnwse}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwseharpoonnesw}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrightharpoondownup}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\updownharpoonrightleft}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neswharpoonsenw}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwseharpoonswne}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightleftharpoons}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\updownharpoons}{arrows}{\mathrel} + \fdsy@DeclareAlias{\updownharpoonsleftright}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neswharpoons}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\senwharpoons}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrightharpoons}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downupharpoons}{arrows}{\mathrel} + \fdsy@DeclareAlias{\downupharpoonsleftright}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swneharpoons}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwseharpoons}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightbkarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\dasharrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\dashrightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upbkarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftbkarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\dashleftarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downbkarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nebkarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwbkarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swbkarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\sebkarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightspoon}{arrows}{\mathrel} + \fdsy@DeclareAlias{\multimap}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upspoon}{arrows}{\mathrel} + \fdsy@DeclareAlias{\cirmid}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftspoon}{arrows}{\mathrel} + \fdsy@DeclareAlias{\multimapinv}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downspoon}{arrows}{\mathrel} + \fdsy@DeclareAlias{\midcir}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightblackspoon}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upblackspoon}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftblackspoon}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downblackspoon}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightpitchfork}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\uppitchfork}{arrows}{\mathrel} + \fdsy@DeclareAlias{\pitchfork}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftpitchfork}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downpitchfork}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightrightarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upuparrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftleftarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downdownarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nenearrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwnwarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swswarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\sesearrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightleftarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\updownarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neswarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwsearrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrightarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downuparrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swnearrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\senwarrows}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightlsquigarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\leadsto}{arrows}{\mathrel} + \fdsy@DeclareAlias{\rightsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\uplsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftlsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downlsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightrsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\uprsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrsquigarrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\leftsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downrsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrightsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\updownsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightleftsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downupsquigarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightlcurvearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\curvearrowright}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\uplcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftlcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downlcurvearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\cwrightarcarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nelcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwlcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swlcurvearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\cwundercurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\selcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightrcurvearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\acwunderarcarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\uprcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrcurvearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\curvearrowleft}{arrows}{\mathrel} + \fdsy@DeclareAlias{\acwoverarcarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downrcurvearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\acwleftarcarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nercurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwrcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swrcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\sercurvearrow}{arrows}{\mathrel} + \fdsy@DeclareAlias{\ccwundercurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftrightcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\updowncurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightleftcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downupcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\neswcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\nwsecurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\swnecurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\senwcurvearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftfootline}{arrows}{\mathrel} + \fdsy@DeclareAlias{\vlongdash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightfootline}{arrows}{\mathrel} + \fdsy@DeclareAlias{\longdashv}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\acwcirclearrowup}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\acwcirclearrowleft}{arrows}{\mathrel} + \fdsy@DeclareAlias{\circlearrowleft}{arrows}{\mathrel} + \fdsy@DeclareAlias{\acwopencirclearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\acwcirclearrowdown}{arrows}{\mathrel} + \fdsy@DeclareAlias{\acwgapcirclearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\acwcirclearrowright}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\cwcirclearrowdown}{arrows}{\mathrel} + \fdsy@DeclareAlias{\cwgapcirclearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\cwcirclearrowright}{arrows}{\mathrel} + \fdsy@DeclareAlias{\circlearrowright}{arrows}{\mathrel} + \fdsy@DeclareAlias{\cwopencirclearrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\cwcirclearrowup}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\cwcirclearrowleft}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Rrightarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Uuparrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Lleftarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Ddownarrow}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Lsh}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Rsh}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Ldsh}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Rdsh}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\looparrowright}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\looparrowleft}{arrows}{\mathrel} +\fdsy@setslot{224} +\fdsy@DeclareSymbol{\rightvdash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\vdash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\assert}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upvdash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\perp}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftvdash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\dashv}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downvdash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightvDash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\vDash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\models}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upvDash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\Vbar}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftvDash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\Dashv}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downvDash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\barV}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightVdash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\Vdash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upVdash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftVdash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\dashV}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downVdash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\rightVDash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\VDash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\upVDash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\leftVDash}{arrows}{\mathrel} + \fdsy@DeclareAlias{\DashV}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\downVDash}{arrows}{\mathrel} +\fdsy@DeclareSymbol{\Vvdash}{arrows}{\mathrel} + +\DeclareRobustCommand{\relbar}{\mathrel{\smash-}} +\DeclareRobustCommand{\Relbar}{\mathrel=} +\let\joinrel\undefined +\DeclareRobustCommand\joinrel{\mathrel{\mkern-4mu}} +\DeclareRobustCommand\longrightarrow{\DOTSB\relbar\joinrel\rightarrow} +\DeclareRobustCommand\longleftarrow{\DOTSB\leftarrow\joinrel\relbar} +\DeclareRobustCommand\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow} +\DeclareRobustCommand\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow} +\DeclareRobustCommand\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar} +\DeclareRobustCommand\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow} +\DeclareRobustCommand\longmapsto{\DOTSB\leftfootline\mkern-7mu\rightarrow} +\DeclareRobustCommand\emptyblackspoon{\DOTSB\leftspoon\mkern-13mu\rightblackspoon} +\let\origof\emptyblackspoon +\DeclareRobustCommand\filledemptyspoon{\DOTSB\leftblackspoon\mkern-13mu\rightspoon} +\let\imageof\filledemptyspoon +\DeclareRobustCommand\leftrightspoon{\DOTSB\leftspoon\mkern-13mu\rightspoon} +\let\dualmap\leftrightspoon +\DeclareRobustCommand\leftrightblackspoon{\DOTSB\leftblackspoon\mkern-13mu\rightblackspoon} +\fdsy@setslot{0} +\fdsy@DeclareSymbol{\nrightarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nto}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nuparrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ngets}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nRightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nUparrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nLeftarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nDownarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nNearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nNwarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nSwarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nSearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupdownarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneswarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwsearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nLeftrightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nUpdownarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nNeswarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nNwsearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheadrightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheaduparrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheadleftarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheaddownarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheadnearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheadnwarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheadswarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ntwoheadsearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightarrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nuparrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftarrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownarrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnearrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwarrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswarrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsearrowtail}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightmapsto}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmapsto}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupmapsto}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmapsup}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftmapsto}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmapsfrom}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownmapsto}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmapsdown}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnemapsto}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwmapsto}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswmapsto}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsemapsto}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhookrightarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nhookrightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhookuparrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhookleftarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhookdownarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhooknearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhooknwarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nhknwarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhookswarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nlhooksearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nhksearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhookrightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhookuparrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhookleftarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nhookleftarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhookdownarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhooknearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nhknearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhooknwarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhookswarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nhkswarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrhooksearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightharpoonup}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupharpoonleft}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftharpoondown}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownharpoonright}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneharpoonnw}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwharpoonsw}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswharpoonse}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nseharpoonne}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightharpoondown}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupharpoonright}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nrestriction}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftharpoonup}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownharpoonleft}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneharpoonse}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwharpoonne}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswharpoonnw}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nseharpoonsw}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrightharpoonupdown}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupdownharpoonleftright}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneswharpoonnwse}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwseharpoonnesw}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrightharpoondownup}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupdownharpoonrightleft}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneswharpoonsenw}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwseharpoonswne}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightleftharpoons}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupdownharpoons}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nupdownharpoonsleftright}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneswharpoons}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsenwharpoons}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrightharpoons}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownupharpoons}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ndownupharpoonsleftright}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswneharpoons}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwseharpoons}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightbkarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ndasharrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ndashrightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupbkarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftbkarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ndashleftarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownbkarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnebkarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwbkarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswbkarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsebkarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightspoon}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmultimap}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupspoon}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncirmid}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftspoon}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmultimapinv}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownspoon}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmidcir}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightblackspoon}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupblackspoon}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftblackspoon}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownblackspoon}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightpitchfork}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nuppitchfork}{narrows}{\mathrel} + \fdsy@DeclareAlias{\npitchfork}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftpitchfork}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownpitchfork}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightrightarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupuparrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftleftarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndowndownarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnenearrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwnwarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswswarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsesearrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightleftarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupdownarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneswarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwsearrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrightarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownuparrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswnearrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsenwarrows}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightlsquigarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nleadsto}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nrightsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nuplsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftlsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownlsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightrsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nuprsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrsquigarrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nleftsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownrsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrightsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupdownsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightleftsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownupsquigarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightlcurvearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncurvearrowright}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nuplcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftlcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownlcurvearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncwrightarcarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnelcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwlcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswlcurvearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncwundercurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nselcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightrcurvearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nacwunderarcarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nuprcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrcurvearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncurvearrowleft}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nacwoverarcarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownrcurvearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nacwleftarcarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnercurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwrcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswrcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsercurvearrow}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nccwundercurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftrightcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupdowncurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightleftcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownupcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nneswcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nnwsecurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nswnecurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nsenwcurvearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftfootline}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nvlongdash}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightfootline}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nlongdashv}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nacwcirclearrowup}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nacwcirclearrowleft}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncirclearrowleft}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nacwopencirclearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nacwcirclearrowdown}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nacwgapcirclearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nacwcirclearrowright}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ncwcirclearrowdown}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncwgapcirclearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ncwcirclearrowright}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncirclearrowright}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ncwopencirclearrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ncwcirclearrowup}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ncwcirclearrowleft}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nRrightarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nUuparrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nLleftarrow}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nDdownarrow}{narrows}{\mathrel} +\fdsy@setslot{224} +\fdsy@DeclareSymbol{\nrightvdash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nvdash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nassert}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupvdash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nperp}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftvdash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ndashv}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownvdash}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightvDash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nvDash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nmodels}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupvDash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nVbar}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftvDash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nDashv}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownvDash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nbarV}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightVdash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nVdash}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupVdash}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftVdash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\ndashV}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownVdash}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nrightVDash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nVDash}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nupVDash}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\nleftVDash}{narrows}{\mathrel} + \fdsy@DeclareAlias{\nDashV}{narrows}{\mathrel} +\fdsy@DeclareSymbol{\ndownVDash}{narrows}{\mathrel} +\fdsy@setslot{0} +\fdsy@DeclareSymbol{\tbigplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigtimes}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigtimes}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigwedge}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigwedge}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigvee}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigvee}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigwedgedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigwedgedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigveedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigveedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigdoublewedge}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tconjquant}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigdoublewedge}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dconjquant}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigdoublevee}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tdisjquant}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigdoublevee}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\ddisjquant}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcurlywedge}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcurlywedge}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcurlyvee}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcurlyvee}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcurlywedgedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcurlywedgedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcurlyveedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcurlyveedot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigdoublecurlywedge}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigdoublecurlywedge}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigdoublecurlyvee}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigdoublecurlyvee}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcap}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcap}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcup}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcup}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcapdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcapdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcupdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcupdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcapplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcapplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigcupplus}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tbiguplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigcupplus}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dbiguplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigsqcap}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigsqcap}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigsqcup}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigsqcup}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigsqcapdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigsqcapdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigsqcupdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigsqcupdot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigsqcapplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigsqcapplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigsqcupplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigsqcupplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigoplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigoplus}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigotimes}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigotimes}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigodot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigodot}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tbigoast}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dbigoast}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tprod}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dprod}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tcoprod}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dcoprod}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tsum}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dsum}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tosum}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dosum}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\diint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tiiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\diiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tiiiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\diiiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tidotsint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tdotsint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\didotsint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\ddotsint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tlandupint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tintclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dlandupint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dintclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tlanddownint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tawint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tintctrclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dlanddownint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dawint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dintctrclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tintbar}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dintbar}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tintBar}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dintBar}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tfint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dfint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\toint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\doint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\toiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\doiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\toiiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\doiiint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\trcirclerightint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tointctrclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\drcirclerightint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dointctrclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tlcirclerightint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tvarointclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dlcirclerightint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dvarointclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\trcircleleftint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tvarointctrclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\drcircleleftint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dvarointctrclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tlcircleleftint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\tointclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dlcircleleftint}{largesymbols}{\mathop} + \fdsy@DeclareAlias{\dointclockwise}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\tsumint}{largesymbols}{\mathop} +\fdsy@DeclareSymbol{\dsumint}{largesymbols}{\mathop} +\let\intop\tint +\let\ointop\toint + +\fdsy@DeclareOperator{\bigplus}{\dbigplus}{\tbigplus} +\fdsy@DeclareOperator{\bigtimes}{\dbigtimes}{\tbigtimes} +\fdsy@DeclareOperator{\bigwedge}{\dbigwedge}{\tbigwedge} +\fdsy@DeclareOperator{\bigvee}{\dbigvee}{\tbigvee} +\fdsy@DeclareOperator{\bigwedgedot}{\dbigwedgedot}{\tbigwedgedot} +\fdsy@DeclareOperator{\bigveedot}{\dbigveedot}{\tbigveedot} +\fdsy@DeclareOperator{\bigdoublewedge}{\dbigdoublewedge}{\tbigdoublewedge} +\fdsy@DeclareOperator{\conjquant}{\dconjquant}{\tconjquant} +\fdsy@DeclareOperator{\bigdoublevee}{\dbigdoublevee}{\tbigdoublevee} +\fdsy@DeclareOperator{\disjquant}{\ddisjquant}{\tdisjquant} +\fdsy@DeclareOperator{\bigcurlywedge}{\dbigcurlywedge}{\tbigcurlywedge} +\fdsy@DeclareOperator{\bigcurlyvee}{\dbigcurlyvee}{\tbigcurlyvee} +\fdsy@DeclareOperator{\bigcurlywedgedot}{\dbigcurlywedgedot}{\tbigcurlywedgedot} +\fdsy@DeclareOperator{\bigcurlyveedot}{\dbigcurlyveedot}{\tbigcurlyveedot} +\fdsy@DeclareOperator{\bigdoublecurlywedge}{\dbigdoublecurlywedge}{\tbigdoublecurlywedge} +\fdsy@DeclareOperator{\bigdoublecurlyvee}{\dbigdoublecurlyvee}{\tbigdoublecurlyvee} +\fdsy@DeclareOperator{\bigcap}{\dbigcap}{\tbigcap} +\fdsy@DeclareOperator{\bigcup}{\dbigcup}{\tbigcup} +\fdsy@DeclareOperator{\bigcapdot}{\dbigcapdot}{\tbigcapdot} +\fdsy@DeclareOperator{\bigcupdot}{\dbigcupdot}{\tbigcupdot} +\fdsy@DeclareOperator{\bigcapplus}{\dbigcapplus}{\tbigcapplus} +\fdsy@DeclareOperator{\bigcupplus}{\dbigcupplus}{\tbigcupplus} +\fdsy@DeclareOperator{\biguplus}{\dbiguplus}{\tbiguplus} +\fdsy@DeclareOperator{\bigsqcap}{\dbigsqcap}{\tbigsqcap} +\fdsy@DeclareOperator{\bigsqcup}{\dbigsqcup}{\tbigsqcup} +\fdsy@DeclareOperator{\bigsqcapdot}{\dbigsqcapdot}{\tbigsqcapdot} +\fdsy@DeclareOperator{\bigsqcupdot}{\dbigsqcupdot}{\tbigsqcupdot} +\fdsy@DeclareOperator{\bigsqcapplus}{\dbigsqcapplus}{\tbigsqcapplus} +\fdsy@DeclareOperator{\bigsqcupplus}{\dbigsqcupplus}{\tbigsqcupplus} +\fdsy@DeclareOperator{\bigoplus}{\dbigoplus}{\tbigoplus} +\fdsy@DeclareOperator{\bigotimes}{\dbigotimes}{\tbigotimes} +\fdsy@DeclareOperator{\bigodot}{\dbigodot}{\tbigodot} +\fdsy@DeclareOperator{\bigoast}{\dbigoast}{\tbigoast} +\fdsy@DeclareOperator{\sum}{\dsum}{\tsum} +\fdsy@DeclareOperator{\osum}{\dosum}{\tosum} +\fdsy@DeclareOperator{\prod}{\dprod}{\tprod} +\fdsy@DeclareOperator{\coprod}{\dcoprod}{\tcoprod} +\fdsy@DeclareIntegral{\iint}{\diint}{\tiint} +\fdsy@DeclareIntegral{\iiint}{\diiint}{\tiiint} +\fdsy@DeclareIntegral{\iiiint}{\diiiint}{\tiiiint} +\fdsy@DeclareIntegral{\idotsint}{\didotsint}{\tidotsint} +\fdsy@DeclareIntegral{\dotsint}{\ddotsint}{\tdotsint} +\fdsy@DeclareIntegral{\landupint}{\dlandupint}{\tlandupint} +\fdsy@DeclareIntegral{\intclockwise}{\dintclockwise}{\tintclockwise} +\fdsy@DeclareIntegral{\landdownint}{\dlanddownint}{\tlanddownint} +\fdsy@DeclareIntegral{\awint}{\dawint}{\tawint} +\fdsy@DeclareIntegral{\intctrclockwise}{\dintctrclockwise}{\tintctrclockwise} +\fdsy@DeclareIntegral{\landdownint}{\dlanddownint}{\tlanddownint} +\fdsy@DeclareIntegral{\intbar}{\dintbar}{\tintbar} +\fdsy@DeclareIntegral{\intBar}{\dintBar}{\tintBar} +\fdsy@DeclareIntegral{\fint}{\dfint}{\tfint} +\fdsy@DeclareIntegral{\oiint}{\doiint}{\toiint} +\fdsy@DeclareIntegral{\oiiint}{\doiiint}{\toiiint} +\fdsy@DeclareIntegral{\rcirclerightint}{\drcirclerightint}{\trcirclerightint} +\fdsy@DeclareIntegral{\ointctrclockwise}{\dointctrclockwise}{\tointctrclockwise} +\fdsy@DeclareIntegral{\lcirclerightint}{\dlcirclerightint}{\tlcirclerightint} +\fdsy@DeclareIntegral{\varointclockwise}{\dvarointclockwise}{\tvarointclockwise} +\fdsy@DeclareIntegral{\rcircleleftint}{\drcircleleftint}{\trcircleleftint} +\fdsy@DeclareIntegral{\varointctrclockwise}{\dvarointctrclockwise}{\tvarointctrclockwise} +\fdsy@DeclareIntegral{\lcircleleftint}{\dlcircleleftint}{\tlcircleleftint} +\fdsy@DeclareIntegral{\ointclockwise}{\dointclockwise}{\tointclockwise} +\fdsy@DeclareIntegral{\sumint}{\dsumint}{\tsumint} + +\def\intkern@{\mkern-8.5mu\mathchoice{\mkern-1mu}{}{}{}} +\def\intdots@{\mkern-6mu% + \mathchoice{\@cdots}% + {{\cdotp}\mkern0.5mu{\cdotp}\mkern0.5mu{\cdotp}}% + {{\cdotp}{\cdotp}{\cdotp}}% + {{\cdotp}{\cdotp}{\cdotp}}% + \mkern-6mu} +\DeclareMathAccent{\widehat}{\mathord}{largesymbols}{"72} +\DeclareMathAccent{\widetilde}{\mathord}{largesymbols}{"78} +\DeclareMathAccent{\wideparen}{\mathord}{largesymbols}{"7E} +\DeclareMathAccent{\vec}{\mathord}{largesymbols}{"84} +\DeclareMathAccent{\middlebar}{\mathord}{largesymbols}{"85} +\DeclareMathAccent{\middleslash}{\mathord}{largesymbols}{"86} +\DeclareMathAccent{\strokethrough}{\mathord}{largesymbols}{"87} +\let\lfloor\undefined +\let\rfloor\undefined +\let\lceil\undefined +\let\rceil\undefined +\let\langle\undefined +\let\rangle\undefined +\iffdsy@largedelims + \fdsy@DeclareOpen{(}{delimiters}{"01} + \fdsy@DeclareClose{)}{delimiters}{"07} + \fdsy@DeclareOpen{\lparen}{delimiters}{"01} + \fdsy@DeclareClose{\rparen}{delimiters}{"07} + \fdsy@DeclareOpen{[}{delimiters}{"13} + \fdsy@DeclareClose{]}{delimiters}{"19} + \fdsy@DeclareOpen{\lbrack}{delimiters}{"13} + \fdsy@DeclareClose{\rbrack}{delimiters}{"19} + \fdsy@DeclareOpen{\lfloor}{delimiters}{"1F} + \fdsy@DeclareClose{\rfloor}{delimiters}{"25} + \fdsy@DeclareOpen{\lceil}{delimiters}{"2B} + \fdsy@DeclareClose{\rceil}{delimiters}{"31} + \fdsy@DeclareOpen{\ulcorner}{delimiters}{"37} + \fdsy@DeclareClose{\urcorner}{delimiters}{"3D} + \fdsy@DeclareOpen{\llcorner}{delimiters}{"43} + \fdsy@DeclareClose{\lrcorner}{delimiters}{"49} + \fdsy@DeclareOpen{\ullcorner}{delimiters}{"4F} + \fdsy@DeclareClose{\ulrcorner}{delimiters}{"55} + \fdsy@DeclareOpen{\lsem}{delimiters}{"61} + \fdsy@DeclareClose{\rsem}{delimiters}{"67} + \fdsy@DeclareOpen{\lBrack}{delimiters}{"61} + \fdsy@DeclareClose{\rBrack}{delimiters}{"67} + \fdsy@DeclareOpen{\lbrace}{delimiters}{"73} + \fdsy@DeclareClose{\rbrace}{delimiters}{"79} + \fdsy@DeclareOpen{<}{delimiters}{"86} + \fdsy@DeclareClose{>}{delimiters}{"8C} + \fdsy@DeclareOpen{\langle}{delimiters}{"86} + \fdsy@DeclareClose{\rangle}{delimiters}{"8C} + \fdsy@DeclareOpen{\lAngle}{delimiters}{"92} + \fdsy@DeclareClose{\rAngle}{delimiters}{"98} + \fdsy@DeclareOpen{\langledot}{delimiters}{"9E} + \fdsy@DeclareClose{\rangledot}{delimiters}{"A4} + \fdsy@DeclareDelimiter{/}{\mathord}{delimiters}{"AA} + \fdsy@DeclareDelimiter{\mathslash}{\mathord}{delimiters}{"AA} + \DeclareMathSymbol{\divslash}{\mathbin}{delimiters}{"AA} + \fdsy@DeclareDelimiter{\backslash}{\mathord}{delimiters}{"B0} + \expandafter\DeclareMathDelimiter\@backslashchar% + {\mathord}{delimiters}{"B0}{delimiters}{"B0} + \DeclareMathSymbol{\setminus}{\mathbin}{delimiters}{"B0} + \fdsy@DeclareDelimiter{|}{\mathord}{delimiters}{"B7} + \fdsy@DeclareDelimiter{\vert}{\mathord}{delimiters}{"B7} + \fdsy@DeclareOpen{\lvert}{delimiters}{"B7} + \fdsy@DeclareClose{\rvert}{delimiters}{"B7} + \DeclareMathSymbol{\mid}{\mathrel}{delimiters}{"B7} + \DeclareMathSymbol{\nmid}{\mathrel}{delimiters}{"BA} + \fdsy@DeclareDelimiter{\Vert}{\mathord}{delimiters}{"BE} + \fdsy@DeclareOpen{\lVert}{delimiters}{"BE} + \fdsy@DeclareClose{\rVert}{delimiters}{"BE} + \DeclareMathSymbol{\parallel}{\mathrel}{delimiters}{"BE} + \DeclareMathSymbol{\nparallel}{\mathrel}{delimiters}{"C1} + \fdsy@DeclareDelimiter{\Vvert}{\mathord}{delimiters}{"C4} + \fdsy@DeclareOpen{\lVvert}{delimiters}{"C4} + \fdsy@DeclareClose{\rVvert}{delimiters}{"C4} +\else + \fdsy@DeclareOpen{(}{delimiters}{"00} + \fdsy@DeclareClose{)}{delimiters}{"06} + \fdsy@DeclareOpen{\lparen}{delimiters}{"00} + \fdsy@DeclareClose{\rparen}{delimiters}{"06} + \fdsy@DeclareOpen{[}{delimiters}{"12} + \fdsy@DeclareClose{]}{delimiters}{"18} + \fdsy@DeclareOpen{\lbrack}{delimiters}{"12} + \fdsy@DeclareClose{\rbrack}{delimiters}{"18} + \fdsy@DeclareOpen{\lfloor}{delimiters}{"1E} + \fdsy@DeclareClose{\rfloor}{delimiters}{"24} + \fdsy@DeclareOpen{\lceil}{delimiters}{"2A} + \fdsy@DeclareClose{\rceil}{delimiters}{"30} + \fdsy@DeclareOpen{\ulcorner}{delimiters}{"36} + \fdsy@DeclareClose{\urcorner}{delimiters}{"3C} + \fdsy@DeclareOpen{\llcorner}{delimiters}{"42} + \fdsy@DeclareClose{\lrcorner}{delimiters}{"48} + \fdsy@DeclareOpen{\ullcorner}{delimiters}{"4E} + \fdsy@DeclareClose{\ulrcorner}{delimiters}{"54} + \fdsy@DeclareOpen{\lsem}{delimiters}{"60} + \fdsy@DeclareClose{\rsem}{delimiters}{"66} + \fdsy@DeclareOpen{\lBrack}{delimiters}{"60} + \fdsy@DeclareClose{\rBrack}{delimiters}{"66} + \fdsy@DeclareOpen{\lbrace}{delimiters}{"72} + \fdsy@DeclareClose{\rbrace}{delimiters}{"78} + \fdsy@DeclareOpen{<}{delimiters}{"85} + \fdsy@DeclareClose{>}{delimiters}{"8B} + \fdsy@DeclareOpen{\langle}{delimiters}{"85} + \fdsy@DeclareClose{\rangle}{delimiters}{"8B} + \fdsy@DeclareOpen{\lAngle}{delimiters}{"91} + \fdsy@DeclareClose{\rAngle}{delimiters}{"97} + \fdsy@DeclareOpen{\langledot}{delimiters}{"9D} + \fdsy@DeclareClose{\rangledot}{delimiters}{"A3} + \fdsy@DeclareDelimiter{/}{\mathord}{delimiters}{"A9} + \fdsy@DeclareDelimiter{\mathslash}{\mathord}{delimiters}{"A9} + \DeclareMathSymbol{\divslash}{\mathbin}{delimiters}{"A9} + \fdsy@DeclareDelimiter{\backslash}{\mathord}{delimiters}{"AF} + \expandafter\DeclareMathDelimiter\@backslashchar% + {\mathord}{delimiters}{"AF}{delimiters}{"AF} + \DeclareMathSymbol{\setminus}{\mathbin}{delimiters}{"AF} + \fdsy@DeclareDelimiter{|}{\mathord}{delimiters}{"B6} + \fdsy@DeclareDelimiter{\vert}{\mathord}{delimiters}{"B6} + \fdsy@DeclareOpen{\lvert}{delimiters}{"B6} + \fdsy@DeclareClose{\rvert}{delimiters}{"B6} + \DeclareMathSymbol{\mid}{\mathrel}{delimiters}{"B6} + \DeclareMathSymbol{\nmid}{\mathrel}{delimiters}{"B9} + \fdsy@DeclareDelimiter{\Vert}{\mathord}{delimiters}{"BD} + \fdsy@DeclareOpen{\lVert}{delimiters}{"BD} + \fdsy@DeclareClose{\rVert}{delimiters}{"BD} + \DeclareMathSymbol{\parallel}{\mathrel}{delimiters}{"BD} + \DeclareMathSymbol{\nparallel}{\mathrel}{delimiters}{"C0} + \fdsy@DeclareDelimiter{\Vvert}{\mathord}{delimiters}{"C3} + \fdsy@DeclareOpen{\lVvert}{delimiters}{"C3} + \fdsy@DeclareClose{\rVvert}{delimiters}{"C3} +\fi +\let\|\Vert +\let\divides\mid +\let\ndivides\nmid +\DeclareMathSymbol{\shortmid}{\mathrel}{delimiters}{"B5} +\DeclareMathSymbol{\nshortmid}{\mathrel}{delimiters}{"B8} +\DeclareMathSymbol{\shortparallel}{\mathrel}{delimiters}{"BC} +\DeclareMathSymbol{\nshortparallel}{\mathrel}{delimiters}{"BF} +\fdsy@DeclareDelimiter{\arrowvert}{\mathord}{delimiters}{"BB} +\fdsy@DeclareDelimiter{\Arrowvert}{\mathord}{delimiters}{"C2} +\fdsy@DeclareClose{\lgroup}{delimiters}{"7E} +\fdsy@DeclareOpen{\rgroup}{delimiters}{"7F} +\fdsy@DeclareClose{\rmoustache}{delimiters}{"80} +\fdsy@DeclareOpen{\lmoustache}{delimiters}{"81} +\fdsy@DeclareDelimiter{\bracevert}{\mathord}{delimiters}{"84} +\let\uparrow\undefined +\let\downarrow\undefined +\let\updownarrow\undefined +\let\Uparrow\undefined +\let\Downarrow\undefined +\let\Updownarrow\undefined +\DeclareMathDelimiter{\uparrow}{\mathrel}{arrows}{"01}{delimiters}{"C6} +\DeclareMathDelimiter{\downarrow}{\mathrel}{arrows}{"03}{delimiters}{"C7} +\DeclareMathDelimiter{\updownarrow}{\mathrel}{arrows}{"11}{delimiters}{"C8} +\DeclareMathDelimiter{\Uparrow}{\mathrel}{arrows}{"09}{delimiters}{"C9} +\DeclareMathDelimiter{\Downarrow}{\mathrel}{arrows}{"0B}{delimiters}{"CA} +\DeclareMathDelimiter{\Updownarrow}{\mathrel}{arrows}{"15}{delimiters}{"CB} +\DeclareMathSymbol{\braceld}{\mathord}{delimiters}{"CC} +\DeclareMathSymbol{\bracelu}{\mathord}{delimiters}{"CD} +\DeclareMathSymbol{\bracerd}{\mathord}{delimiters}{"CE} +\DeclareMathSymbol{\braceru}{\mathord}{delimiters}{"CF} +\DeclareMathSymbol{\bracemd}{\mathord}{delimiters}{"D0} +\DeclareMathSymbol{\bracemu}{\mathord}{delimiters}{"D1} +\DeclareMathSymbol{\bracemid}{\mathord}{delimiters}{"D2} + +\def\bracefill@#1#2#3#4#5{$\m@th#5#1\leaders\hbox{$#4$}\hfill#2\leaders\hbox{$#4$}\hfill#3$} +\def\downbracefill@{\bracefill@\braceld\bracemd\bracerd\bracemid} +\def\upbracefill@{\bracefill@\bracelu\bracemu\braceru\bracemid} +\def\downgroupfill@{\bracefill@\braceld{}\bracerd\bracemid} +\def\upgroupfill@{\bracefill@\bracelu{}\braceru\bracemid} +\def\linesegmentfill@{\arrowfill@\leftfootline\relbar\rightfootline} +\def\leftharpoonfill@{\arrowfill@\leftharpoondown\relbar\relbar} +\def\rightharpoonfill@{\arrowfill@\relbar\relbar\rightharpoonup} + +\DeclareRobustCommand{\overbrace}[1]{\mathop{\mathpalette{\overarrow@\downbracefill@}{#1}}\limits} +\DeclareRobustCommand{\underbrace}[1]{\mathop{\mathpalette{\underarrow@\upbracefill@}{#1}}\limits} +\DeclareRobustCommand{\overgroup}{\mathpalette{\overarrow@\downgroupfill@}} +\DeclareRobustCommand{\undergroup}{\mathpalette{\underarrow@\upgroupfill@}} +\DeclareRobustCommand{\overlinesegment}{\mathpalette{\overarrow@\linesegmentfill@}} +\DeclareRobustCommand{\overleftharpoon}{\mathpalette{\overarrow@\leftharpoonfill@}} +\DeclareRobustCommand{\overrightharpoon}{\mathpalette{\overarrow@\rightharpoonfill@}} +\DeclareRobustCommand{\underlinesegment}{\mathpalette{\underarrow@\linesegmentfill@}} +\iffdsy@largedelims + \DeclareMathRadical{\sqrtsign}{delimiters}{"D4}{delimiters}{"D4} + \DeclareMathSymbol{\surd}{\mathop}{delimiters}{"D4} +\else + \DeclareMathRadical{\sqrtsign}{delimiters}{"D3}{delimiters}{"D3} + \DeclareMathSymbol{\surd}{\mathop}{delimiters}{"D3} +\fi +\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}% + \dimen@\ht\z@ \advance\dimen@-\dp\z@ + \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-8mu\box\z@} +\DeclareMathSymbol{+}{\mathbin}{symbols}{"11} +\DeclareMathSymbol{-}{\mathbin}{symbols}{"0E} +\DeclareMathSymbol{*}{\mathbin}{symbols}{"93} +\DeclareMathSymbol{:}{\mathrel}{symbols}{"02} +\DeclareMathSymbol{=}{\mathrel}{relations}{"00} +\DeclareMathSymbol{<}{\mathrel}{relations}{"22} +\DeclareMathSymbol{>}{\mathrel}{relations}{"23} +\iffdsy@largedelims + \DeclareMathSymbol{|}{\mathord}{delimiters}{"B6} + \DeclareMathSymbol{(}{\mathopen}{delimiters}{"01} + \DeclareMathSymbol{)}{\mathclose}{delimiters}{"07} + \DeclareMathSymbol{[}{\mathopen}{delimiters}{"13} + \DeclareMathSymbol{]}{\mathclose}{delimiters}{"19} + \DeclareMathSymbol{/}{\mathord}{delimiters}{"AA} +\else + \DeclareMathSymbol{|}{\mathord}{delimiters}{"B5} + \DeclareMathSymbol{(}{\mathopen}{delimiters}{"00} + \DeclareMathSymbol{)}{\mathclose}{delimiters}{"06} + \DeclareMathSymbol{[}{\mathopen}{delimiters}{"12} + \DeclareMathSymbol{]}{\mathclose}{delimiters}{"18} + \DeclareMathSymbol{/}{\mathord}{delimiters}{"A9} +\fi +\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1/\hfil$\crcr$#1#2$}} +\def\not#1{\mathrel{\m@th\mathpalette\c@ncel{#1}}} +%% +%% +%% End of file `fdsymbol.sty'. -- cgit v1.2.3