From d487196d52642a2836e18354e8af3041c22087d2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 8 Jan 2012 23:44:27 +0000 Subject: new font package mdsymbol (8jan12) git-svn-id: svn://tug.org/texlive/trunk@25049 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/fonts/mdsymbol/FONTLOG.txt | 41 + Master/texmf-dist/doc/fonts/mdsymbol/OFL.txt | 95 + Master/texmf-dist/doc/latex/mdsymbol/mdsymbol.pdf | Bin 0 -> 390957 bytes .../fonts/enc/dvips/mdsymbol/mdsymbol-a.enc | 54 + .../fonts/enc/dvips/mdsymbol/mdsymbol-b.enc | 53 + .../fonts/enc/dvips/mdsymbol/mdsymbol-c.enc | 58 + .../fonts/enc/dvips/mdsymbol/mdsymbol-d.enc | 58 + .../fonts/enc/dvips/mdsymbol/mdsymbol-e.enc | 53 + .../fonts/enc/dvips/mdsymbol/mdsymbol-f.enc | 54 + .../fonts/map/dvips/mdsymbol/mdsymbol.map | 24 + .../opentype/public/mdsymbol/MdSymbol-Bold.otf | Bin 0 -> 123408 bytes .../opentype/public/mdsymbol/MdSymbol-Light.otf | Bin 0 -> 121116 bytes .../opentype/public/mdsymbol/MdSymbol-Regular.otf | Bin 0 -> 120016 bytes .../opentype/public/mdsymbol/MdSymbol-Semibold.otf | Bin 0 -> 120096 bytes .../fonts/source/public/mdsymbol/MdSymbolA-Bold.mf | 15 + .../source/public/mdsymbol/MdSymbolA-Light.mf | 15 + .../source/public/mdsymbol/MdSymbolA-Regular.mf | 15 + .../source/public/mdsymbol/MdSymbolA-Semibold.mf | 15 + .../fonts/source/public/mdsymbol/MdSymbolA.mf | 36 + .../fonts/source/public/mdsymbol/MdSymbolB-Bold.mf | 15 + .../source/public/mdsymbol/MdSymbolB-Light.mf | 15 + .../source/public/mdsymbol/MdSymbolB-Regular.mf | 15 + .../source/public/mdsymbol/MdSymbolB-Semibold.mf | 15 + .../fonts/source/public/mdsymbol/MdSymbolB.mf | 20 + .../fonts/source/public/mdsymbol/MdSymbolC-Bold.mf | 15 + .../source/public/mdsymbol/MdSymbolC-Light.mf | 15 + .../source/public/mdsymbol/MdSymbolC-Regular.mf | 15 + .../source/public/mdsymbol/MdSymbolC-Semibold.mf | 15 + .../fonts/source/public/mdsymbol/MdSymbolC.mf | 20 + .../fonts/source/public/mdsymbol/MdSymbolD-Bold.mf | 15 + .../source/public/mdsymbol/MdSymbolD-Light.mf | 15 + .../source/public/mdsymbol/MdSymbolD-Regular.mf | 15 + .../source/public/mdsymbol/MdSymbolD-Semibold.mf | 15 + .../fonts/source/public/mdsymbol/MdSymbolD.mf | 20 + .../fonts/source/public/mdsymbol/MdSymbolE-Bold.mf | 15 + .../source/public/mdsymbol/MdSymbolE-Light.mf | 15 + .../source/public/mdsymbol/MdSymbolE-Regular.mf | 15 + .../source/public/mdsymbol/MdSymbolE-Semibold.mf | 15 + .../fonts/source/public/mdsymbol/MdSymbolE.mf | 25 + .../fonts/source/public/mdsymbol/MdSymbolF-Bold.mf | 15 + .../source/public/mdsymbol/MdSymbolF-Light.mf | 15 + .../source/public/mdsymbol/MdSymbolF-Regular.mf | 15 + .../source/public/mdsymbol/MdSymbolF-Semibold.mf | 15 + .../fonts/source/public/mdsymbol/MdSymbolF.mf | 12 + .../fonts/source/public/mdsymbol/mdaccents.mf | 88 + .../fonts/source/public/mdsymbol/mdarrows.mf | 805 +++++ .../fonts/source/public/mdsymbol/mdbase.mf | 977 ++++++ .../fonts/source/public/mdsymbol/mddelims.mf | 600 ++++ .../fonts/source/public/mdsymbol/mdgeometric.mf | 1912 ++++++++++ .../fonts/source/public/mdsymbol/mdoperators.mf | 464 +++ .../fonts/source/public/mdsymbol/mdrelations.mf | 1184 +++++++ .../fonts/source/public/mdsymbol/mdturnstile.mf | 102 + .../fonts/tfm/public/mdsymbol/MdSymbolA-Bold.tfm | Bin 0 -> 1236 bytes .../fonts/tfm/public/mdsymbol/MdSymbolA-Light.tfm | Bin 0 -> 1236 bytes .../tfm/public/mdsymbol/MdSymbolA-Regular.tfm | Bin 0 -> 1236 bytes .../tfm/public/mdsymbol/MdSymbolA-Semibold.tfm | Bin 0 -> 1236 bytes .../fonts/tfm/public/mdsymbol/MdSymbolB-Bold.tfm | Bin 0 -> 1140 bytes .../fonts/tfm/public/mdsymbol/MdSymbolB-Light.tfm | Bin 0 -> 1140 bytes .../tfm/public/mdsymbol/MdSymbolB-Regular.tfm | Bin 0 -> 1140 bytes .../tfm/public/mdsymbol/MdSymbolB-Semibold.tfm | Bin 0 -> 1140 bytes .../fonts/tfm/public/mdsymbol/MdSymbolC-Bold.tfm | Bin 0 -> 1296 bytes .../fonts/tfm/public/mdsymbol/MdSymbolC-Light.tfm | Bin 0 -> 1296 bytes .../tfm/public/mdsymbol/MdSymbolC-Regular.tfm | Bin 0 -> 1296 bytes .../tfm/public/mdsymbol/MdSymbolC-Semibold.tfm | Bin 0 -> 1296 bytes .../fonts/tfm/public/mdsymbol/MdSymbolD-Bold.tfm | Bin 0 -> 1292 bytes .../fonts/tfm/public/mdsymbol/MdSymbolD-Light.tfm | Bin 0 -> 1292 bytes .../tfm/public/mdsymbol/MdSymbolD-Regular.tfm | Bin 0 -> 1292 bytes .../tfm/public/mdsymbol/MdSymbolD-Semibold.tfm | Bin 0 -> 1292 bytes .../fonts/tfm/public/mdsymbol/MdSymbolE-Bold.tfm | Bin 0 -> 856 bytes .../fonts/tfm/public/mdsymbol/MdSymbolE-Light.tfm | Bin 0 -> 856 bytes .../tfm/public/mdsymbol/MdSymbolE-Regular.tfm | Bin 0 -> 856 bytes .../tfm/public/mdsymbol/MdSymbolE-Semibold.tfm | Bin 0 -> 856 bytes .../fonts/tfm/public/mdsymbol/MdSymbolF-Bold.tfm | Bin 0 -> 1340 bytes .../fonts/tfm/public/mdsymbol/MdSymbolF-Light.tfm | Bin 0 -> 1340 bytes .../tfm/public/mdsymbol/MdSymbolF-Regular.tfm | Bin 0 -> 1324 bytes .../tfm/public/mdsymbol/MdSymbolF-Semibold.tfm | Bin 0 -> 1332 bytes .../fonts/type1/public/mdsymbol/MdSymbolA-Bold.pfb | Bin 0 -> 30728 bytes .../type1/public/mdsymbol/MdSymbolA-Light.pfb | Bin 0 -> 25685 bytes .../type1/public/mdsymbol/MdSymbolA-Regular.pfb | Bin 0 -> 25110 bytes .../type1/public/mdsymbol/MdSymbolA-Semibold.pfb | Bin 0 -> 29735 bytes .../fonts/type1/public/mdsymbol/MdSymbolB-Bold.pfb | Bin 0 -> 47249 bytes .../type1/public/mdsymbol/MdSymbolB-Light.pfb | Bin 0 -> 38138 bytes .../type1/public/mdsymbol/MdSymbolB-Regular.pfb | Bin 0 -> 39021 bytes .../type1/public/mdsymbol/MdSymbolB-Semibold.pfb | Bin 0 -> 42749 bytes .../fonts/type1/public/mdsymbol/MdSymbolC-Bold.pfb | Bin 0 -> 37804 bytes .../type1/public/mdsymbol/MdSymbolC-Light.pfb | Bin 0 -> 31635 bytes .../type1/public/mdsymbol/MdSymbolC-Regular.pfb | Bin 0 -> 36172 bytes .../type1/public/mdsymbol/MdSymbolC-Semibold.pfb | Bin 0 -> 32555 bytes .../fonts/type1/public/mdsymbol/MdSymbolD-Bold.pfb | Bin 0 -> 42492 bytes .../type1/public/mdsymbol/MdSymbolD-Light.pfb | Bin 0 -> 42351 bytes .../type1/public/mdsymbol/MdSymbolD-Regular.pfb | Bin 0 -> 46445 bytes .../type1/public/mdsymbol/MdSymbolD-Semibold.pfb | Bin 0 -> 42530 bytes .../fonts/type1/public/mdsymbol/MdSymbolE-Bold.pfb | Bin 0 -> 23001 bytes .../type1/public/mdsymbol/MdSymbolE-Light.pfb | Bin 0 -> 24981 bytes .../type1/public/mdsymbol/MdSymbolE-Regular.pfb | Bin 0 -> 24915 bytes .../type1/public/mdsymbol/MdSymbolE-Semibold.pfb | Bin 0 -> 27235 bytes .../fonts/type1/public/mdsymbol/MdSymbolF-Bold.pfb | Bin 0 -> 26592 bytes .../type1/public/mdsymbol/MdSymbolF-Light.pfb | Bin 0 -> 24933 bytes .../type1/public/mdsymbol/MdSymbolF-Regular.pfb | Bin 0 -> 24738 bytes .../type1/public/mdsymbol/MdSymbolF-Semibold.pfb | Bin 0 -> 25283 bytes .../texmf-dist/source/latex/mdsymbol/mdsymbol.dtx | 3666 ++++++++++++++++++++ .../texmf-dist/source/latex/mdsymbol/mdsymbol.ins | 53 + Master/texmf-dist/tex/latex/mdsymbol/mdsymbol.sty | 2155 ++++++++++++ 103 files changed, 12989 insertions(+) create mode 100644 Master/texmf-dist/doc/fonts/mdsymbol/FONTLOG.txt create mode 100644 Master/texmf-dist/doc/fonts/mdsymbol/OFL.txt create mode 100644 Master/texmf-dist/doc/latex/mdsymbol/mdsymbol.pdf create mode 100644 Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-a.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-b.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-c.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-d.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-e.enc create mode 100644 Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-f.enc create mode 100644 Master/texmf-dist/fonts/map/dvips/mdsymbol/mdsymbol.map create mode 100644 Master/texmf-dist/fonts/opentype/public/mdsymbol/MdSymbol-Bold.otf create mode 100644 Master/texmf-dist/fonts/opentype/public/mdsymbol/MdSymbol-Light.otf create mode 100644 Master/texmf-dist/fonts/opentype/public/mdsymbol/MdSymbol-Regular.otf create mode 100644 Master/texmf-dist/fonts/opentype/public/mdsymbol/MdSymbol-Semibold.otf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Light.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Semibold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Light.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Semibold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Light.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Semibold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Light.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Semibold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Light.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Semibold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Bold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Light.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Regular.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Semibold.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mdaccents.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mdarrows.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mdbase.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mddelims.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mdgeometric.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mdoperators.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mdrelations.mf create mode 100644 Master/texmf-dist/fonts/source/public/mdsymbol/mdturnstile.mf create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Light.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Semibold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Light.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Semibold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Light.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Semibold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Light.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Semibold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Light.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Semibold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Bold.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Light.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Regular.tfm create mode 100644 Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Semibold.tfm create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Bold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Light.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Regular.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Semibold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Bold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Light.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Regular.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Semibold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Bold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Light.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Regular.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Semibold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Bold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Light.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Regular.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Semibold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Bold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Light.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Regular.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Semibold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Bold.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Light.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Regular.pfb create mode 100644 Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Semibold.pfb create mode 100644 Master/texmf-dist/source/latex/mdsymbol/mdsymbol.dtx create mode 100644 Master/texmf-dist/source/latex/mdsymbol/mdsymbol.ins create mode 100644 Master/texmf-dist/tex/latex/mdsymbol/mdsymbol.sty (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/fonts/mdsymbol/FONTLOG.txt b/Master/texmf-dist/doc/fonts/mdsymbol/FONTLOG.txt new file mode 100644 index 00000000000..1ef7556a3ed --- /dev/null +++ b/Master/texmf-dist/doc/fonts/mdsymbol/FONTLOG.txt @@ -0,0 +1,41 @@ +FONTLOG for MdSymbol +-------------------- + +This file provides detailed information on the MdSymbol font family. +This information should be distributed along with the MdSymbol fonts +and any derivative works. + + +Basic Font Information +---------------------- + +MdSymbol is a font of mathematical symbols designed as a companion to +Adobe Myriad Pro, but it might also fit well to other contemporary +typefaces. + +MdSymbol is derived from FdSymbol, designed and released under the SIL +Open Font License, Version 1.1 by Michael Ummels. + +MdSymbol development is currently hosted on: +http://github.com/sebschub/MdSymbol + + +ChangeLog +--------- + +19 Dec 2011 (Sebastian Schubert) MdSymbol version 1.000 +- First public release + +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: Sebastian Schubert +E: schubert.seb@googlemail.com +W: http://github.com/sebschub/ +D: Original Modifications of FdSymbol + +N: Michael Ummels +E: michael.ummels@rwth-aachen.de +W: http://www.ummels.de +D: Original Designer of FdSymbol diff --git a/Master/texmf-dist/doc/fonts/mdsymbol/OFL.txt b/Master/texmf-dist/doc/fonts/mdsymbol/OFL.txt new file mode 100644 index 00000000000..8212afa0fb5 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/mdsymbol/OFL.txt @@ -0,0 +1,95 @@ +Copyright (c) 2011, Sebastian Schubert +All Rights Reserved. + +"MdSymbol" 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/mdsymbol/mdsymbol.pdf b/Master/texmf-dist/doc/latex/mdsymbol/mdsymbol.pdf new file mode 100644 index 00000000000..3caac89ca9f Binary files /dev/null and b/Master/texmf-dist/doc/latex/mdsymbol/mdsymbol.pdf differ diff --git a/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-a.enc b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-a.enc new file mode 100644 index 00000000000..f58f5ccdbca --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-a.enc @@ -0,0 +1,54 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/MdSymbolA [ +%00 + /dotmath /sym000 /uni2236 /sym001 /sym002 /uni22EF /uni22EE /uni22F0 + /uni22F1 /sym003 /therefore /sym004 /uni2235 /uni2237 /minus /uni2215 +%10 + /uni2216 /plus /multiply /uni2238 /uni2A2A /divide /uni2A2B /uni2A2C + /uni223A /plusminus /uni2213 /uni2214 /uni2A25 /uni2A30 /uni2A31 /uni22C7 +%20 + /logicalnot /revlogicalnot /uni2A3C /uni2A3D %/uni2319 + /uni22CB /uni22CC /uni2A32 /uni22CA + /sym005 /uni22C9 /uni22C8 /uni29D6 /sym006 /sym007 /sym008 /sym009 +%30 + /logicaland /logicalor /uni27D1 /uni27C7 /uni2A55 /uni2A56 /uni22CF /uni22CE + /uni22BC /uni22BB /uni2A5E /uni2A63 /union /intersection /uni22D3 /uni22D2 +%40 + /uni228D /uni2A40 /uni228E /sym00A /uni2294 /uni2293 /uni2A4F /uni2A4E + /sym00B /sym00C /sym00D /sym00E /uni27D3 /uni27D4 /uni25B9 /uni25B5 +%50 + /uni25C3 /uni25BF /uni25B8 /uni25B4 /uni25C2 /uni25BE /uni25B7 /uni25B3 + /uni25C1 /uni25BD /uni25B6 /uni25B2 /uni25C0 /uni25BC /sym00F /sym010 +%60 + /openbullet /bullet /circle /uni25CF /uni2296 /uni29B6 /uni2298 /uni29B8 + /circleplus /circlemultiply /uni2299 /uni229A /uni229B /uni229D /uni229C /emptyset +%70 + /uni29B0 /uni25EF /uni2B24 /uni25AB /uni25AA /uni25A1 /uni25A0 /uni229F + /uni25EB /uni29C4 /uni29C5 /uni229E /uni22A0 /uni22A1 /uni29C8 /uni2B1C +%80 + /uni2B1B /uni22C4 /uni2B29 /uni25C7 /uni25C6 /sym011 /sym012 /sym013 + /sym014 /sym015 /sym016 /uni27D0 /sym017 /uni2B2B /uni2B2A /lozenge +%90 + /uni29EB /uni27E0 /uni2B52 /uni22C6 /uni2B50 /uni2B51 /uni2606 /uni2605 + /asteriskmath /infinity /proportional /sym018 /sym019 /uni226C /uni22BA /uni2240 +%A0 + /angle /uni29A3 /uni2221 /uni299B /uni2222 /uni29A1 /uni29A0 /sym01A + /uni221F /uni22BE /uni299C /uni299D /minute /uni2035 /product.small /uni2A3F +%B0 + /integral.small /uni2713 /uni21AF /uni2662 /diamond /uni2661 /heart /spade + /club /uni2720 /uni2721 /uni2314 /universal /existential /uni2204 /uni2132 +%C0 + /uni2141 /uni2201 /uni266D /uni266E /uni266F /aleph /uni2136 /uni2137 + /uni2138 /weierstrass /uni2207 /.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/mdsymbol/mdsymbol-b.enc b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-b.enc new file mode 100644 index 00000000000..1b6a1823402 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-b.enc @@ -0,0 +1,53 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/MdSymbolB [ +%00 + /equal /uni2261 /similar /uni223D /approxequal /uni224B /uni2243 /uni22CD + /uni2242 /congruent /uni224C /uni224A /uni224F /uni2AAE /uni224E /uni2250 +%10 + /uni2A66 /uni2251 /uni2252 /uni2253 /uni2254 /uni2255 /uni2323 /uni2322 + /uni224D /uni2050 /sym020 /uni2258 /uni2256 /uni2257 /uni2259 /uni225A +%20 + /uni225B /uni225C /element /uni220B /less /greater /lessequal /greaterequal + /uni2A7D /uni2A7E /uni2266 /uni2267 /uni2272 /uni2273 /uni2A85 /uni2A86 +%30 + /uni2276 /uni2277 /uni22DA /uni22DB /uni2A8B /uni2A8C /uni22DA.alt /uni22DB.alt + /uni226A /uni226B /uni22D8 /uni22D9 /uni22B2 /uni22B3 /uni22B4 /uni22B5 +%40 + /uni2AA6 /uni2AA7 /uni2AA8 /uni2AA9 /uni228F /uni2290 /uni2291 /uni2292 + /sym021 /sym022 /sym023 /sym024 /propersubset /propersuperset /reflexsubset /reflexsuperset +%50 + /uni2AC5 /uni2AC6 /uni22D0 /uni22D1 /uni227A /uni227B /uni2AAF /uni2AB0 + /uni227C /uni227D /uni2AB3 /uni2AB4 /uni227E /uni227F /uni2AB7 /uni2AB8 +%60 + /uni22D6 /uni22D7 /sym025 /sym026 /uni2A7F /uni2A80 /uni2A95 /uni2A96 + /uni22DE /uni22DF /notequal /uni2262 /uni2241 /uni223D0338 /uni2249 /uni224B0338 +%70 + /uni2244 /uni22CD0338 /uni22420338 /uni2247 /uni224C0338 /uni224A0338 /uni224F0338 /uni2AAE0338 + /uni224E0338 /uni22500338 /uni2A660338 /uni22510338 /uni22520338 /uni22530338 /uni23230338 /uni23220338 +%80 + /uni226D /uni20500338 /sym020_uni0338 /uni22580338 /uni22560338 /uni22570338 /uni22590338 /uni225A0338 + /uni225B0338 /uni225C0338 /notelement /uni220C /uni226E /uni226F /uni2270 /uni2271 +%90 + /uni2A7D0338 /uni2A7E0338 /uni22660338 /uni22670338 /uni2274 /uni2275 /uni2A850338 /uni2A860338 + /uni2278 /uni2279 /uni22DA0338 /uni22DB0338 /uni2A8B0338 /uni2A8C0338 /uni22DA0338.alt /uni22DB0338.alt +%A0 + /uni226A0338 /uni226B0338 /uni22D80338 /uni22D90338 /uni22EA /uni22EB /uni22EC /uni22ED + /uni2AA60338 /uni2AA70338 /uni2AA80338 /uni2AA90338 /uni228F0338 /uni22900338 /uni22E2 /uni22E3 +%B0 + /sym021_uni0338 /sym022_uni0338 /sym023_uni0338 /sym024_uni0338 /notsubset /uni2285 /uni2288 /uni2289 + /uni2AC50338 /uni2AC60338 /uni22D00338 /uni22D10338 /uni2280 /uni2281 /uni2AAF0338 /uni2AB00338 +%C0 + /uni22E0 /uni22E1 /uni2AB30338 /uni2AB40338 /uni227E0338 /uni227F0338 /uni2AB70338 /uni2AB80338 + /uni22D60338 /uni22D70338 /sym025_uni0338 /sym026_uni0338 /uni2A7F0338 /uni2A800338 /uni2A950338 /uni2A960338 +%D0 + /uni22DE0338 /uni22DF0338 /uni2246 /sym027 /uni2A87 /uni2A88 /uni2268 /uni2269 + /uni22E6 /uni22E7 /uni2A89 /uni2A8A /uni22E4 /uni22E5 /sym028 /sym029 +%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/mdsymbol/mdsymbol-c.enc b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-c.enc new file mode 100644 index 00000000000..48c67e3f020 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-c.enc @@ -0,0 +1,58 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/MdSymbolC [ +%00 + /arrowright /arrowup /arrowleft /arrowdown /uni2197 /uni2196 /uni2199 /uni2198 + /arrowdblright /arrowdblup /arrowdblleft /arrowdbldown /uni21D7 /uni21D6 /uni21D9 /uni21D8 +%10 + /arrowboth /arrowupdn /uni2921 /uni2922 /arrowdblboth /uni21D5 /sym030 /sym031 + /uni21A0 /uni219F /uni219E /uni21A1 /sym033 /sym032 /sym035 /sym034 +%20 + /uni21A3 /sym036 /uni21A2 /sym037 /sym039 /sym038 /sym03B /sym03A + /uni21A6 /uni21A5 /uni21A4 /uni21A7 /uni2907 /sym03C /uni2906 /sym03D +%30 + /uni21AA /sym03E /uni21A9.alt /sym03F.alt /uni2924.alt /uni2923 /uni2926.alt /uni2925 + /uni21AA.alt /sym03E.alt /uni21A9 /sym03F /uni2924 /uni2923.alt /uni2926 /uni2925.alt +%40 + /uni21C0 /uni21BF /uni21BD /uni21C2 /sym041 /sym040 /sym043 /sym042 + /uni21C1 /uni21BE /uni21BC /uni21C3 /sym045 /sym044 /sym047 /sym046 +%50 + /uni294B /uni294D /sym049 /sym048 /uni294A /uni294C /sym04B /sym04A + /uni21CC /uni296E /sym04D /sym04C /uni21CB /uni296F /sym04F /sym04E +%60 + /uni21E2 /uni21E1 /uni21E0 /uni21E3 /sym051 /sym050 /sym053 /sym052 + /uni22B8 /uni2AEF /uni27DC /uni2AF0 /sym054 /sym056 /sym055 /sym057 +%70 + /uni29DF /sym058 /uni22B7 /uni22B6 /sym05A /uni22D4 /sym05B /sym059 + /uni21C9 /uni21C8 /uni21C7 /uni21CA /sym05D /sym05C /sym05F /sym05E +%80 + /uni21C4 /uni21C5 /sym061 /sym060 /uni21C6 /uni21F5 /sym063 /sym062 + /uni219D %/uni21DD /uni2933 + /sym064.alt /uni219C.alt %/uni21DC.alt /uni2B3F.alt + /sym065 /uni219D.alt %/uni21DD.alt /uni2933.alt + /sym064 /uni219C %/uni21DC /uni2B3F + /sym065.alt +%90 + /uni21AD /sym066.alt /uni21AD.alt /sym066 /sym069 /sym068 /sym067 /uni2938 + /sym06C /sym06B /uni2936 /uni2935 /uni293B /sym06A /uni293A /uni2939 +%A0 + /uni2934 /sym06D /sym06E /uni2937 /sym06F /sym070 /sym071 /sym072 + /sym074 /sym073 /sym076 /sym075 /sym077 /sym078 /sym079 /uni21BA +%B0 + /uni27F2 /sym07C /uni27F3 /uni21BB /sym07A /sym07B /uni21DB /uni290A + /uni21DA /uni290B /uni27F6 /uni27F5 /uni27F9 /uni27F8 /uni27F7 /uni27FA +%C0 + /uni27FC /uni27FB /uni27FE /uni27FD /uni27FF /uni2B33 /uni27DD /uni27DE + /uni21B0 /uni21B1 /uni21B2 /uni21B3 /uni21AC /uni21AB /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /uni22A2 /uni22A5 %/uni27C2 + /uni22A3 /uni22A4 /uni22A6 /uni2AE0 /uni2ADE /uni2ADF + /uni22A8 /uni2AEB /uni2AE4 /uni2AEA /uni22A7 /sym07E /sym07D /sym07F +%F0 + /uni22A9 /uni234A /uni2AE3 /uni2351 /uni22A9.alt /uni2AE8 /uni2AE3.alt /uni2AE7 %/uni3012 + /uni22AB /sym080 /uni2AE5 /sym081 /uni22AA /sym082 /uni2AE2 /sym083 +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-d.enc b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-d.enc new file mode 100644 index 00000000000..d4a1ab82771 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-d.enc @@ -0,0 +1,58 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/MdSymbolD [ +%00 + /uni219B /uni21910338 /uni219A /uni21930338 /uni21970338 /uni21960338 /uni21990338 /uni21980338 + /uni21CF /uni21D10338 /uni21CD /uni21D30338 /uni21D70338 /uni21D60338 /uni21D90338 /uni21D80338 +%10 + /uni21AE /uni21950338 /uni29210338 /uni29220338 /uni21CE /uni21D50338 /sym030_uni0338 /sym031_uni0338 + /uni21A00338 /uni219F0338 /uni219E0338 /uni21A10338 /sym033_uni0338 /sym032_uni0338 /sym035_uni0338 /sym034_uni0338 +%20 + /uni21A30338 /sym036_uni0338 /uni21A20338 /sym037_uni0338 /sym039_uni0338 /sym038_uni0338 /sym03B_uni0338 /sym03A_uni0338 + /uni21A60338 /uni21A50338 /uni21A40338 /uni21A70338 /uni29070338 /sym03C_uni0338 /uni29060338 /sym03D_uni0338 +%30 + /uni21AA0338 /sym03E_uni0338 /uni21A90338.alt /sym03F_uni0338.alt /uni29240338.alt /uni29230338 /uni29260338.alt /uni29250338 + /uni21AA0338.alt /sym03E_uni0338.alt /uni21A90338 /sym03F_uni0338 /uni29240338 /uni29230338.alt /uni29260338 /uni29250338.alt +%40 + /uni21C00338 /uni21BF0338 /uni21BD0338 /uni21C20338 /sym041_uni0338 /sym040_uni0338 /sym043_uni0338 /sym042_uni0338 + /uni21C10338 /uni21BE0338 /uni21BC0338 /uni21C30338 /sym045_uni0338 /sym044_uni0338 /sym047_uni0338 /sym046_uni0338 +%50 + /uni294B0338 /uni294D0338 /sym049_uni0338 /sym048_uni0338 /uni294A0338 /uni294C0338 /sym04B_uni0338 /sym04A_uni0338 + /uni21CC0338 /uni296E0338 /sym04D_uni0338 /sym04C_uni0338 /uni21CB0338 /uni296F0338 /sym04F_uni0338 /sym04E_uni0338 +%60 + /uni21E20338 /uni21E10338 /uni21E00338 /uni21E30338 /sym051_uni0338 /sym050_uni0338 /sym053_uni0338 /sym052_uni0338 + /uni22B80338 /uni2AEF0338 /uni27DC0338 /uni2AF00338 /sym054_uni0338 /sym056_uni0338 /sym055_uni0338 /sym057_uni0338 +%70 + /uni29DF0338 /sym058_uni0338 /uni22B70338 /uni22B60338 /sym05A_uni0338 /uni22D40338 /sym05B_uni0338 /sym059_uni0338 + /uni21C90338 /uni21C80338 /uni21C70338 /uni21CA0338 /sym05D_uni0338 /sym05C_uni0338 /sym05F_uni0338 /sym05E_uni0338 +%80 + /uni21C40338 /uni21C50338 /sym061_uni0338 /sym060_uni0338 /uni21C60338 /uni21F50338 /sym063_uni0338 /sym062_uni0338 + /uni219D0338 %/uni21DD0338 /uni29330338 + /sym064_uni0338.alt /uni219C0338.alt %/uni21DC0338.alt /uni2B3F0338.alt + /sym065_uni0338 /uni219D0338.alt %/uni21DD0338.alt /uni29330338.alt + /sym064_uni0338 /uni219C0338 %/uni21DC0338 /uni2B3F0338 + /sym065_uni0338.alt +%90 + /uni21AD0338 /sym066_uni0338.alt /uni21AD0338.alt /sym066_uni0338 /sym069_uni0338 /sym068_uni0338 /sym067_uni0338 /uni29380338 + /sym06C_uni0338 /sym06B_uni0338 /uni29360338 /uni29350338 /uni293B0338 /sym06A_uni0338 /uni293A0338 /uni29390338 +%A0 + /uni29340338 /sym06D_uni0338 /sym06E_uni0338 /uni29370338 /sym06F_uni0338 /sym070_uni0338 /sym071_uni0338 /sym072_uni0338 + /sym074_uni0338 /sym073_uni0338 /sym076_uni0338 /sym075_uni0338 /sym077_uni0338 /sym078_uni0338 /sym079_uni0338 /uni21BA0338 +%B0 + /uni27F20338 /sym07C_uni0338 /uni27F30338 /uni21BB0338 /sym07A_uni0338 /sym07B_uni0338 /uni21DB0338 /uni290A0338 + /uni21DA0338 /uni290B0338 /uni27F60338 /uni27F50338 /uni27F90338 /uni27F80338 /uni27F70338 /uni27FA0338 +%C0 + /uni27FC0338 /uni27FB0338 /uni27FE0338 /uni27FD0338 /uni27FF0338 /uni2B330338 /uni27DD0338 /uni27DE0338 + /.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 /uni22A50338 %/uni27C20338 + /uni22A30338 /uni22A40338 /uni22A60338 /uni2AE00338 /uni2ADE0338 /uni2ADF0338 + /uni22AD /uni2AEB0338 /uni2AE40338 /uni2AEA0338 /uni22A70338 /sym07E_uni0338 /sym07D_uni0338 /sym07F_uni0338 +%F0 + /uni22AE /uni234A0338 /uni2AE30338 /uni23510338 /uni22AE.alt /uni2AE80338 /uni2AE30338.alt /uni2AE70338 %/uni30120338 + /uni22AF /sym080_uni0338 /uni2AE50338 /sym081_uni0338 /uni22AA0338 /sym082_uni0338 /uni2AE20338 /sym083_uni0338 +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-e.enc b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-e.enc new file mode 100644 index 00000000000..ad197782c4b --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-e.enc @@ -0,0 +1,53 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/MdSymbolE [ +%00 + /sym090 /sym090.disp /uni2A09 /uni2A09.disp /uni22C0 /uni22C0.disp /uni22C1 /uni22C1.disp + /sym091 /sym091.disp /sym092 /sym092.disp /uni2A07 /uni2A07.disp /uni2A08 /uni2A08.disp +%10 + /sym093 /sym093.disp /sym094 /sym094.disp /uni22C2 /uni22C2.disp /uni22C3 /uni22C3.disp + /sym095 /sym095.disp /uni2A03 /uni2A03.disp /sym096 /sym096.disp /uni2A04 /uni2A04.disp +%20 + /uni2A05 /uni2A05.disp /uni2A06 /uni2A06.disp /sym097 /sym097.disp /sym098 /sym098.disp + /sym099 /sym099.disp /sym09A /sym09A.disp /uni2A01 /uni2A01.disp /uni2A02 /uni2A02.disp +%30 + /uni2A00 /uni2A00.disp /sym09B /sym09B.disp /product /product.disp /uni2210 /uni2210.disp + /summation /summation.disp /uni2A0A /uni2A0A.disp /integral /integral.disp /uni222C /uni222C.disp +%40 + /uni222D /uni222D.disp /uni2A0C /uni2A0C.disp /uni222B22EF222B /uni222B22EF222B.disp /uni2231 /uni2231.disp + /uni2A11 /uni2A11.disp /uni2A0D /uni2A0D.disp /uni2A0E /uni2A0E.disp /uni2A0F /uni2A0F.disp +%50 + /uni222E /uni222E.disp /uni222F /uni222F.disp /uni2230 /uni2230.disp /uni2233 /uni2233.disp + /uni2232.alt /uni2232.alt.disp /uni2233.alt /uni2233.alt.disp /uni2232 /uni2232.disp /uni2A0B /uni2A0B.disp +%60 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%70 + /.notdef /.notdef /uni0302 /uni0302.big1 /uni0302.big2 /uni0302.big3 /uni0302.big4 /uni0302.big5 + /uni0303 /uni0303.big1 /uni0303.big2 /uni0303.big3 /uni0303.big4 /uni0303.big5 /uni0311 /uni0311.big1 +%80 + /uni0311.big2 /uni0311.big3 /uni0311.big4 /uni0311.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/mdsymbol/mdsymbol-f.enc b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-f.enc new file mode 100644 index 00000000000..19cc737cac0 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/mdsymbol/mdsymbol-f.enc @@ -0,0 +1,54 @@ +% TeX extra characters encoding. +% CODINGSCHEME FONTSPECIFIC +% +/MdSymbolF [ +%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 /uni230B.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 /sym0A0 /sym0A0.big1 +%50 + /sym0A0.big2 /sym0A0.big3 /sym0A0.big4 /sym0A0.big5 /sym0A1 /sym0A1.big1 /sym0A1.big2 /sym0A1.big3 + /sym0A1.big4 /sym0A1.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 /sym0A2 /sym0A5 /sym0A4 /sym0A7 +%70 + /sym0A3 /sym0A6 /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 /uni2223.short /uni2223 /uni2223.big1 %/uni007C + /uni2224.short /uni2224 /uni2224.big1 /sym0A8 /uni2225.short /uni2225 /uni2225.big1 %/uni2016 + /uni2226.short +%C0 + /uni2226 /uni2226.big1 /sym0A9 /uni2980 /uni2980.big1 /sym0AA /arrowup.short /arrowdown.short + /sym0AB /arrowdblup.short /arrowdbldown.short /sym0AC /sym0AD /sym0AF /sym0AE /sym0B0 +%D0 + /sym0B2 /sym0B3 /sym0B1 /radical /radical.big1 /radical.big2 /radical.big3 /radical.big4 + /radical.big5 /sym0B4 /uni23B7 /sym0B5 /.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/mdsymbol/mdsymbol.map b/Master/texmf-dist/fonts/map/dvips/mdsymbol/mdsymbol.map new file mode 100644 index 00000000000..ae1a71156bb --- /dev/null +++ b/Master/texmf-dist/fonts/map/dvips/mdsymbol/mdsymbol.map @@ -0,0 +1,24 @@ +MdSymbolA-Light MdSymbolA-Light +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolA"; + font_weight := "Bold"; +fi +weight_index := 3; + +input MdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Light.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Light.mf new file mode 100644 index 00000000000..ab0d9444747 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Light.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolA"; + font_weight := "Light"; +fi +weight_index := 0; + +input MdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Regular.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Regular.mf new file mode 100644 index 00000000000..b6b742eb3e8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Regular.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolA"; + font_weight := "Regular"; +fi +weight_index := 1; + +input MdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Semibold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Semibold.mf new file mode 100644 index 00000000000..32e2d557bca --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA-Semibold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolA"; + font_weight := "Semibold"; +fi +weight_index := 2; + +input MdSymbolA; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA.mf new file mode 100644 index 00000000000..98a7d08f2d0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolA.mf @@ -0,0 +1,36 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +input mdbase; +input mdgeometric; + +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/mdsymbol/MdSymbolB-Bold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Bold.mf new file mode 100644 index 00000000000..ee31a6ccc91 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Bold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolB"; + font_weight := "Bold"; +fi +weight_index := 3; + +input MdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Light.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Light.mf new file mode 100644 index 00000000000..de8e7315ab9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Light.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolB"; + font_weight := "Light"; +fi +weight_index := 0; + +input MdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Regular.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Regular.mf new file mode 100644 index 00000000000..29a1d906bf9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Regular.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolB"; + font_weight := "Regular"; +fi +weight_index := 1; + +input MdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Semibold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Semibold.mf new file mode 100644 index 00000000000..41017dd65c6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB-Semibold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolB"; + font_weight := "Semibold"; +fi +weight_index := 2; + +input MdSymbolB; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB.mf new file mode 100644 index 00000000000..1701a007fc5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolB.mf @@ -0,0 +1,20 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +input mdbase; + +negated := 0; +input mdrelations; + +negated := 1; +input mdrelations; + +negated := 2; +input mdrelations; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Bold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Bold.mf new file mode 100644 index 00000000000..3003188b3e3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Bold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolC"; + font_weight := "Bold"; +fi +weight_index := 3; + +input MdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Light.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Light.mf new file mode 100644 index 00000000000..99170937af5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Light.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolC"; + font_weight := "Light"; +fi +weight_index := 0; + +input MdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Regular.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Regular.mf new file mode 100644 index 00000000000..b7027f8fc0f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Regular.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolC"; + font_weight := "Regular"; +fi +weight_index := 1; + +input MdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Semibold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Semibold.mf new file mode 100644 index 00000000000..097eebfdf9a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC-Semibold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolC"; + font_weight := "Semibold"; +fi +weight_index := 2; + +input MdSymbolC; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC.mf new file mode 100644 index 00000000000..60aea2f13a8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolC.mf @@ -0,0 +1,20 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +input mdbase; + +boolean negated; +negated := false; + +input mdarrows; + +current_char := 223; + +input mdturnstile; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Bold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Bold.mf new file mode 100644 index 00000000000..442d030acef --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Bold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolD"; + font_weight := "Bold"; +fi +weight_index := 3; + +input MdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Light.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Light.mf new file mode 100644 index 00000000000..4267e6e31d0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Light.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolD"; + font_weight := "Light"; +fi +weight_index := 0; + +input MdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Regular.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Regular.mf new file mode 100644 index 00000000000..52acb82ae9c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Regular.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolD"; + font_weight := "Regular"; +fi +weight_index := 1; + +input MdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Semibold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Semibold.mf new file mode 100644 index 00000000000..b13d581a560 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD-Semibold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolD"; + font_weight := "Semibold"; +fi +weight_index := 2; + +input MdSymbolD; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD.mf new file mode 100644 index 00000000000..cad75ea28b5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolD.mf @@ -0,0 +1,20 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +input mdbase; + +boolean negated; +negated := true; + +input mdarrows; + +current_char := 223; + +input mdturnstile; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Bold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Bold.mf new file mode 100644 index 00000000000..320f00eac8b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Bold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolE"; + font_weight := "Bold"; +fi +weight_index := 3; + +input MdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Light.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Light.mf new file mode 100644 index 00000000000..5f0875803df --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Light.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolE"; + font_weight := "Light"; +fi +weight_index := 0; + +input MdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Regular.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Regular.mf new file mode 100644 index 00000000000..573772616a8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Regular.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolE"; + font_weight := "Regular"; +fi +weight_index := 1; + +input MdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Semibold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Semibold.mf new file mode 100644 index 00000000000..f0414ac01bf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE-Semibold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolE"; + font_weight := "Semibold"; +fi +weight_index := 2; + +input MdSymbolE; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE.mf new file mode 100644 index 00000000000..840c22d9e3d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolE.mf @@ -0,0 +1,25 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +input mdbase; +input mdoperators; + +current_char := 113; +input mdaccents.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/mdsymbol/MdSymbolF-Bold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Bold.mf new file mode 100644 index 00000000000..543a4730296 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Bold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolF"; + font_weight := "Bold"; +fi +weight_index := 3; + +input MdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Light.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Light.mf new file mode 100644 index 00000000000..7f215567478 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Light.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolF"; + font_weight := "Light"; +fi +weight_index := 0; + +input MdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Regular.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Regular.mf new file mode 100644 index 00000000000..348c2238ece --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Regular.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolF"; + font_weight := "Regular"; +fi +weight_index := 1; + +input MdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Semibold.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Semibold.mf new file mode 100644 index 00000000000..64f01b161af --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF-Semibold.mf @@ -0,0 +1,15 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +if known ps_output: + font_family := "MdSymbolF"; + font_weight := "Semibold"; +fi +weight_index := 2; + +input MdSymbolF; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF.mf new file mode 100644 index 00000000000..8d76b8cbb73 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/MdSymbolF.mf @@ -0,0 +1,12 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +input mdbase; +input mddelims; + +bye; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/mdaccents.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mdaccents.mf new file mode 100644 index 00000000000..872bb12609a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mdaccents.mf @@ -0,0 +1,88 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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: + beginaccent(scale * 7u#, 1/2equal_spread# + accent_thickness#); "wide hat"; + + y2r = h; + x2r = w/2; + x1r = w - x3r = 0; + y1r = y3r = y2r - 1/2equal_spread; + + theta := angle(z2r - z1r); + + penpos2(1.1thick/cosd(theta), 90); + penpos1(thick, theta + 90); + penpos3(thick, 90 - theta); + + fill stroke z1e -- z2e -- z3e; + penlabels(1,2,3); + 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: + beginaccent(scale * 7u#, 1/2equal_spread# + accent_thickness#); "wide tilde"; + draw_sim(a, (0, 1/2[accent_height, h]), (w, 1/2[accent_height, h]), 1/4equal_spread, thick); + 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: + beginaccent(scale * 7u#, 1/2equal_spread# + accent_thickness#); "wide paren"; + draw_smile(a, -1, (0, 1/2[accent_height, h]), (w, 1/2[accent_height, h]), 1/2equal_spread, thick, true); + endchar; +endfor; + +charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char; + +beginaccent(6u# + side_bearing#, 3u# + 1/2accent_thickness#); "vec"; + + x0 = side_bearing; + x1 = w - 1/2thick; + y0 = y1 = h - 1/2(1/2(x1-x0) + thick); + + draw_straight(z0, z1, thick, false); + draw_arrowhead(z1, 0, 1/2(x1-x0), thick); + labels(0,1); +endchar; + +beginsymbol(5u#, (-1)[x_height#, asc_height#], 0); "middle bar"; + penpos0(accent_thickness, 90); + penpos1(accent_thickness, 90); + + x0 = w - x1 = 0; + y0 = y1 = h; + + fill stroke z0e -- z1e; + penlabels(0,1) +endchar; + +beginsymbol(5u#, (-1)[x_height#, asc_height#], 0); "middle slash"; + x0 = w - x1 = 0; + 1/2[y0,y1] = h; + y1 - y0 = 2line_thickness; + + penpos0(accent_thickness/cosd(angle(z1-z0)), 90); + penpos1(accent_thickness/cosd(angle(z1-z0)), 90); + + fill stroke z0e -- z1e; + penlabels(0,1) +endchar; + +beginsymbol(5u# + 2side_bearing#, 3/2asc_height#, 0); "stroke through"; + theta := 70; + + 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; + + draw_line_cut_linethick(1,2)(4/5line_thickness); +endchar; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/mdarrows.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mdarrows.mf new file mode 100644 index 00000000000..ad6a7d52d30 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mdarrows.mf @@ -0,0 +1,805 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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 (alpha + 90); + 1/2[z0,z1] = foot_ex; + 1/2[z2,z3] = head; + + draw_line(z0, arrowhead_intersection(head, alpha, 13/10arrow_spread, z0 -- z2), false); + draw_line(z1, arrowhead_intersection(head, alpha, 13/10arrow_spread, z1 -- z3), false); + draw_arrowhead(head, alpha, 13/10arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - arrow_spread * dir alpha], 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, alpha, arrow_spread, line_thickness); + draw_arrowhead(foot, alpha+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 (alpha + 90); + 1/2[z0,z1] = foot; + 1/2[z2,z3] = head; + + draw_line(arrowhead_intersection(foot, alpha+180, 13/10arrow_spread, z0 -- z2), arrowhead_intersection(head, alpha, 13/10arrow_spread, z0 -- z2), false); + draw_line(arrowhead_intersection(foot, alpha+180, 13/10arrow_spread, z1 -- z3), arrowhead_intersection(head, alpha, 13/10arrow_spread, z1 -- z3), false); + draw_arrowhead(head, alpha, 13/10arrow_spread, line_thickness); + draw_arrowhead(foot, alpha+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, alpha, arrow_spread, line_thickness); + draw_arrowhead(head - 1/4arrow_len * dir alpha, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - (1/2arrow_spread + 1/4arrow_len) * dir alpha], 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 alpha; + + draw_line(z0, head, false); + draw_arrowhead(head, alpha, arrow_spread, line_thickness); + draw_arrowhead(z0, alpha, 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: + 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, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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(19/10, 13/10) * arrow_spread#); "double arrow with foot (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (alpha + 90); + 1/2[z0,z1] = foot_ex; + 1/2[z2,z3] = head; + + draw_line(z0, arrowhead_intersection(head, alpha, 13/10arrow_spread, z0 -- z2), false); + draw_line(z1, arrowhead_intersection(head, alpha, 13/10arrow_spread, z1 -- z3), false); + draw_line(foot - 13/20arrow_spread * dir (alpha + 90), foot + 13/20arrow_spread * dir (alpha + 90), true); + draw_arrowhead(head, alpha, 13/10arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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, 1, ifneg(3/2, 1) * arrow_spread#); "left embedding (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot + 1/4arrow_spread * dir(alpha + 90); + 1/2[z1,z2] = z0 + 1/4arrow_spread * dir alpha; + z2 = z1 + 1/2arrow_spread * dir (alpha + 90); + z3 = head; + z4 = z2 + 1/2thick * dir alpha; + + penpos0(thick, alpha); + penpos1(thick, alpha + 90); + penpos2(thick, alpha - 90); + penpos3(thick, alpha + 90); + penpos4(thick, alpha - 90); + + draw_arrowhead(head, alpha, arrow_spread, thick); + fill stroke z4.e -- z2.e{dir (alpha + 180)} .. + z0.e{dir (alpha - 90)} .. z1.e{dir alpha} -- z3.e; + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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(alpha + 90); + 1/2[z1,z2] = z0 + 1/4arrow_spread * dir alpha; + z2 = z1 - 1/2arrow_spread * dir (alpha + 90); + z3 = head; + z4 = z2 + 1/2thick * dir alpha; + + penpos0(thick, alpha + 180); + penpos1(thick, alpha + 90); + penpos2(thick, alpha - 90); + penpos3(thick, alpha + 90); + penpos4(thick, alpha - 90); + + draw_arrowhead(head, alpha, arrow_spread, thick); + fill stroke z4.e -- z2.e{dir (alpha + 180)} .. + z0.e{dir (alpha + 90)} .. z1.e{dir alpha} -- z3.e; + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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, alpha, arrow_spread, line_thickness); + draw_arrowhead_left(foot, alpha+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, alpha, arrow_spread, line_thickness); + draw_arrowhead_right(foot, alpha+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 (alpha + 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, alpha, arrow_spread, line_thickness); + draw_arrowhead_left(z0, alpha+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 (alpha + 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, alpha, arrow_spread, line_thickness); + draw_arrowhead_right(z1, alpha+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, alpha, 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, 1, ifneg(3/2, 1) * arrow_spread#); "multi map (" & decimal alpha & ")"; + draw_line(foot_ex, head - (4/5arrow_spread + 1/4line_thickness) * dir alpha, false); + draw_circle(head - 2/5arrow_spread * dir alpha, 2/5arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 4/5arrow_spread * dir alpha], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "filled multi map (" & decimal alpha & ")"; + draw_line(foot_ex, head_ex - 2/5arrow_spread * dir alpha, false); + filldraw_circle(head - 2/5arrow_spread * dir alpha, 2/5arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 4/5arrow_spread * dir alpha], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +beginarrow(0, 7/5, ifneg(3/2, 1) * arrow_spread#); "double multi map"; + draw_line(foot + (4/5arrow_spread + 1/4line_thickness) * right, head - (4/5arrow_spread + 1/4line_thickness) * right, false); + draw_circle(head - 2/5arrow_spread * right, 2/5arrow_spread, line_thickness); + draw_circle(foot + 2/5arrow_spread * right, 2/5arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], 0, 3/2arrow_spread)(70); + fi +endchar; + +beginarrow(0, 7/5, ifneg(3/2, 1) * arrow_spread#); "filled double multi map"; + draw_line(foot_ex + 2/5arrow_spread * right, head - 2/5arrow_spread * right, false); + filldraw_circle(head - 2/5arrow_spread * right, 2/5arrow_spread, line_thickness); + filldraw_circle(foot + 2/5arrow_spread * right, 2/5arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head], 0, 3/2arrow_spread)(70); + fi +endchar; + +for alpha = 0, 180: + beginarrow(alpha, 7/5, ifneg(3/2, 1) * arrow_spread#); "image of (" & decimal alpha & ")"; + draw_line(foot_ex + 2/5arrow_spread * dir alpha, head - (4/5arrow_spread + 1/4line_thickness) * dir alpha, false); + filldraw_circle(foot + 2/5arrow_spread * dir alpha, 2/5arrow_spread, line_thickness); + draw_circle(head - 2/5arrow_spread * dir alpha, 2/5arrow_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: + 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 + 1/2arrow_len * dir alpha, foot_ex, 3/4plus_size, line_thickness); + + if negated: + stroke_through_arrow(1/4[foot, head], 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#+line_thickness#); "parallel arrows (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = (arrow_spread+line_thickness) * dir (alpha + 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, alpha, arrow_spread, line_thickness); + draw_arrowhead(z3, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], 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 (alpha + 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, alpha, arrow_spread, line_thickness); + draw_arrowhead(z0, alpha+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 (alpha + 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, alpha, arrow_spread, line_thickness); + draw_arrowhead(z1, alpha+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 sign = 1, -1: +for alpha = 0, 90, 180, 270: + beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); + if sign > 0: "left right" else: "right left" fi & " wave arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot - sign * 1/8arrow_spread * dir (alpha + 90); + z1 = 4/18[foot,head] + sign * 1/4arrow_spread * dir (alpha + 90); + z2 = 7/18[foot,head]; + z3 = 10/18[foot,head] - sign * 1/4arrow_spread * dir (alpha + 90); + z4 = 12/18[foot,head] - sign * 1/8arrow_spread * dir (alpha + 90); + z5 = 14/18[foot,head]; + z6 = head; + + penpos0(thick, alpha - 90 + sign * 55); + penpos1(thick, alpha - 90); + penpos2(thick, alpha - 90 - sign * 55); + penpos3(thick, alpha - 90); + penpos4(thick, alpha - 90 + sign * 35); + penpos5(thick, alpha - 90); + penpos6(thick, alpha - 90); + + penlabels(0,1,2,3,4,5,6); + + fill stroke z0.e{dir (alpha + sign * 55)} .. z1.e{dir alpha} .. z2.e{dir (alpha - sign * 55)} .. z3.e{dir alpha} .. z4.e{dir (alpha + sign * 35)} ... {dir alpha}z5.e -- z6.e; + draw_arrowhead(z6, alpha, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], alpha, 3/2arrow_spread)(70, 70, 70, 70, 70, 70, 70, 70); + fi + endchar; +endfor; +endfor; + +for sign = 1, -1: + for alpha = 0, 90: + beginarrow(alpha, 6/5, ifneg(3/2, 1) * arrow_spread#); + if sign > 0: "left right" else: "right left" fi & " bidirectional wave arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = foot; + z1 = 4/22[foot,head]; + z2 = 6/22[foot,head] + sign * 1/8arrow_spread * dir (alpha + 90); + z3 = 8/22[foot,head] + sign * 1/4arrow_spread * dir (alpha + 90); + z4 = 11/22[foot,head]; + z5 = 14/22[foot,head] - sign * 1/4arrow_spread * dir (alpha + 90); + z6 = 16/22[foot,head] - sign * 1/8arrow_spread * dir (alpha + 90); + z7 = 18/22[foot,head]; + z8 = head; + + penpos0(thick, alpha - 90); + penpos1(thick, alpha - 90); + penpos2(thick, alpha - 90 + sign * 35); + penpos3(thick, alpha - 90); + penpos4(thick, alpha - 90 - sign * 55); + penpos5(thick, alpha - 90); + penpos6(thick, alpha - 90 + sign * 35); + penpos7(thick, alpha - 90); + penpos8(thick, alpha - 90); + + penlabels(0,1,2,3,4,5,6,7,8); + + fill stroke z0e. -- z1.e{dir alpha} .. z2.e{dir (alpha + sign * 35)} .. z3.e{dir alpha} .. z4.e{dir (alpha - sign * 55)} .. z5.e{dir alpha} ... z6.e{dir (alpha + sign * 35)} .. {dir alpha}z7.e -- z8.e; + draw_arrowhead(z0, alpha + 180, arrow_spread, thick); + draw_arrowhead(z8, alpha, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 70, 70); + fi + endchar; + endfor; +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 (alpha + 90); + z1 = 9/20[foot,head] + 1/4arrow_spread * dir (alpha + 90); + z2 = 19/20[foot,head] - 1/2arrow_spread * dir (alpha + 90); + + penpos0(thick, alpha - 35); + penpos1(thick, alpha - 90); + penpos2(thick, alpha - 150); + + fill stroke z0.e{dir (alpha + 55)} .. z1.e .. {dir (alpha - 60)}z2.e; + draw_arrowhead(z2, alpha - 50, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/10[z1,z2] + 1/8arrow_spread * dir (alpha - 90), 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 (alpha + 90); + z1 = 9/20[foot,head] - 1/4arrow_spread * dir (alpha + 90); + z2 = 19/20[foot,head] + 1/2arrow_spread * dir (alpha + 90); + + penpos0(thick, alpha + 35); + penpos1(thick, alpha + 90); + penpos2(thick, alpha + 150); + + fill stroke z0.e{dir (alpha - 55)} .. z1.e .. {dir (alpha + 60)}z2.e; + draw_arrowhead(z2, alpha + 50, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/10[z1,z2] + 1/8arrow_spread * dir (alpha + 90), 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#); "bidirectional bend arrow (" & decimal alpha & ")"; + thick := line_thickness; + + z0 = 1/20[foot,head] - 1/2arrow_spread * dir (alpha + 90); + z1 = 1/2[foot,head] + 1/4arrow_spread * dir (alpha + 90); + z2 = 19/20[foot,head] - 1/2arrow_spread * dir (alpha + 90); + + penpos0(thick, alpha - 30); + penpos1(thick, alpha - 90); + penpos2(thick, alpha - 150); + + fill stroke z0.e{dir (alpha + 60)} .. z1.e .. {dir (alpha - 60)}z2.e; + draw_arrowhead(z0, alpha + 230, arrow_spread, thick); + draw_arrowhead(z2, alpha - 50, arrow_spread, thick); + + if negated: + stroke_through_arrow(z1 + 1/8arrow_spread * dir (alpha - 90), 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; + if (alpha = 90) or (alpha = 270): + y8 - y9 = large_op_size * sind 45; + z8 - z9 = whatever * dir 40; + else: + y8 - y9 = large_op_size; + z8 - z9 = whatever * dir 80; + fi + + 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#+line_thickness#/2); "triple arrow (" & decimal alpha & ")"; + z1 - z0 = z2 - z1 = 2/3equal_spread * dir (alpha + 90); + z1 = foot_ex; + z4 - z3 = z5 - z4 = 2/3equal_spread * dir (alpha + 90); + z4 = head_ex; + + draw_straight(z0, arrowhead_intersection(head, alpha, 3/2arrow_spread, z0 -- z3), 4/5line_thickness, false); + draw_straight(z1, arrowhead_intersection(head, alpha, 3/2arrow_spread, z1 -- z4), 4/5line_thickness, false); + draw_straight(z2, arrowhead_intersection(head, alpha, 3/2arrow_spread, z2 -- z5), 4/5line_thickness, false); + draw_arrowhead(head, alpha, 3/2arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - arrow_spread * dir alpha], alpha, 21/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginarrow(alpha, 2, ifneg(3/2, 1) * arrow_spread#); "long single arrow (" & decimal alpha & ")"; + draw_line(foot_ex, head, false); + draw_arrowhead(head, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginarrow(alpha, 2, ifneg(19/10, 13/10) * arrow_spread#); "long double arrow (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (alpha + 90); + 1/2[z0,z1] = foot_ex; + 1/2[z2,z3] = head; + + draw_line(z0, arrowhead_intersection(head, alpha, 13/10arrow_spread, z0 -- z2), false); + draw_line(z1, arrowhead_intersection(head, alpha, 13/10arrow_spread, z1 -- z3), false); + draw_arrowhead(head, alpha, 13/10arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - arrow_spread * dir alpha], alpha, 19/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0: + beginarrow(alpha, 2, ifneg(3/2, 1) * arrow_spread#); "long bidirectional arrow (" & decimal alpha & ")"; + draw_line(foot, head, false); + draw_arrowhead(head, alpha, arrow_spread, line_thickness); + draw_arrowhead(foot, alpha+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: + beginarrow(alpha, 2, ifneg(19/10, 13/10) * arrow_spread#); "long double bidirectional arrow (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (alpha + 90); + 1/2[z0,z1] = foot; + 1/2[z2,z3] = head; + + draw_line(arrowhead_intersection(foot, alpha+180, 13/10arrow_spread, z0 -- z2), arrowhead_intersection(head, alpha, 13/10arrow_spread, z0 -- z2), false); + draw_line(arrowhead_intersection(foot, alpha+180, 13/10arrow_spread, z1 -- z3), arrowhead_intersection(head, alpha, 13/10arrow_spread, z1 -- z3), false); + draw_arrowhead(head, alpha, 13/10arrow_spread, line_thickness); + draw_arrowhead(foot, alpha+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, 180: + beginarrow(alpha, 2, ifneg(3/2, 1) * arrow_spread#); "long 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, alpha, arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginarrow(alpha, 2, ifneg(19/10, 13/10) * arrow_spread#); "long double arrow with foot (" & decimal alpha & ")"; + z1 - z0 = z3 - z2 = equal_spread * dir (alpha + 90); + 1/2[z0,z1] = foot_ex; + 1/2[z2,z3] = head; + + draw_line(z0, arrowhead_intersection(head, alpha, 13/10arrow_spread, z0 -- z2), false); + draw_line(z1, arrowhead_intersection(head, alpha, 13/10arrow_spread, z1 -- z3), false); + draw_line(foot - 13/20arrow_spread * dir (alpha + 90), foot + 13/20arrow_spread * dir (alpha + 90), true); + draw_arrowhead(head, alpha, 13/10arrow_spread, line_thickness); + + if negated: + stroke_through_arrow(1/2[foot, head - arrow_spread * dir alpha], alpha, 19/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginarrow(alpha, 2, ifneg(3/2, 1) * arrow_spread#); "long wave arrow (" & decimal alpha & ")"; + thick := line_thickness; + sign := if alpha > 0: 1 else: -1 fi; + + z0 = foot - 1/8arrow_spread * up; + z1 = 4/43[foot,head] + 1/4arrow_spread * up; + z2 = 7/43[foot,head]; + z3 = 10/43[foot,head] - 1/4arrow_spread * up; + z4 = 13/43[foot,head]; + z5 = 16/43[foot,head] + 1/4arrow_spread * up; + z6 = 19/43[foot,head]; + z7 = 22/43[foot,head] - 1/4arrow_spread * up; + z8 = 25/43[foot,head]; + z9 = 28/43[foot,head] + 1/4arrow_spread * up; + z10 = 31/43[foot,head]; + z11 = 34/43[foot,head] - 1/4arrow_spread * up; + z12 = 36/43[foot,head] - 1/8arrow_spread * up; + z13 = 38/43[foot,head]; + z14 = head; + + penpos0(thick, sign * 35); + penpos1(thick, sign * 90); + penpos2(thick, sign * 145); + penpos3(thick, sign * 90); + penpos4(thick, sign * 35); + penpos5(thick, sign * 90); + penpos6(thick, sign * 145); + penpos7(thick, sign * 90); + penpos8(thick, sign * 35); + penpos9(thick, sign * 90); + penpos10(thick, sign * 145); + penpos11(thick, sign * 90); + penpos12(thick, sign * 45); + penpos13(thick, sign * 90); + penpos14(thick, sign * 90); + + penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); + + fill stroke z0e{dir (sign * 35 + 90)} .. z1.e{dir (sign * 90 + 90)} .. z2.e{dir (sign * 145 + 90)} .. z3.e{dir (sign * 90 + 90)} .. z4.e{dir (sign * 35 + 90)} .. z5.e{dir (sign * 90 + 90)} .. z6.e{dir (sign * 145 + 90)} .. z7.e{dir (sign * 90 + 90)} .. z8.e{dir (sign * 35 + 90)} .. z9.e{dir (sign * 90 + 90)} .. z10.e{dir (sign * 145 + 90)} .. z11.e{dir (sign * 90 + 90)} .. z12.e{dir (sign * 45 + 90)} .. {dir (sign * 90 + 90)}z13.e -- z14.e; + draw_arrowhead(z14, alpha, arrow_spread, thick); + + if negated: + stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir alpha], alpha, 3/2arrow_spread)(70, 70, 70, 70, 70, 70, 70, 70); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginarrow(alpha, 2, ifneg(3/2,1) * arrow_spread#); "long 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; + +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: + beginsymbol(arrow_diag_len# + 2side_bearing#, vcentre(arrow_diag_len#)); "loop arrow"; + thick := line_thickness; + arrow_len := arrow_diag_len; + pair centre; + centre := (w/2, (h-d)/2); + + 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 diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/mdbase.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mdbase.mf new file mode 100644 index 00000000000..5f64d7b8ded --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mdbase.mf @@ -0,0 +1,977 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 +% + +design_size := 10; +font_size design_size * pt#; + +if known ps_output: + font_version := "1.000"; + font_comment := "Copyright (c) 2011, Sebastian Schubert. This Font Software is licensed under the SIL Open Font License, Version 1.1."; +fi + +u# := 0.6pt#; +cap_height# := 6.74pt#; %7.37pt#; +asc_height# := cap_height#; % 8.56pt#; +desc_depth# := 1.98pt#; % 2.94pt#; +x_height# := 4.84pt#; +math_axis# := 2.75pt#; +if weight_index = 0: % Light + line_thickness# := 0.41pt#; + rule_thickness# := line_thickness#; + dot_size# := line_thickness#; +elseif weight_index = 1: % Regular + line_thickness# := 0.72pt#; + rule_thickness# := line_thickness#; + dot_size# := line_thickness#; +elseif weight_index = 2: % Semibold + line_thickness# := 0.98pt#; + rule_thickness# := line_thickness#; + dot_size# := 0.85pt#; +else: % Bold + line_thickness# := 1.17pt#; + rule_thickness# := line_thickness#; + dot_size# := 1.0pt#; +fi; + +side_bearing# := 1.u#; +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 +turnstile_width# := 11u#; % width of turnstile symbols +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# := 12.5u#; % length of horizontal arrows +arrow_vert_len# := 12.5u#; % length of vertical arrows +arrow_diag_len# := 1/2(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 +accent_height# := x_height# + 1.u#; % height of accents +accent_thickness# := 3/4line_thickness#; + +mode_setup; + +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, turnstile_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, accent_height, accent_thickness); +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); + accent_height := ceiling(accent_height# * hppp); + accent_thickness := ceiling(accent_thickness# * hppp); +fi + +stroke_through_thickness := 4/5line_thickness; +bop_thickness_fac := 1.; % make big operators that much thicker + % (including sum and integral) + +% Macros + +def ppos_cut(suffix $)(expr a, b) = + ppos_cut_linethick($)(line_thickness, a, b); +enddef; + +def ppos_cut_linethick(suffix $)(expr lt, a, b) = + if sind(a-b) = 0 : + penpos$(lt,0); + else: + penpos$(lt/abs(sind(a-b)),b); + fi +enddef; + + +% Redefine clockwise and counterclockwise (turningnumber seems more stable) +if known ps_output: + vardef counterclockwise primary p = + (if turningnumber p>0: p else: (reverse p) fi) + enddef; + + vardef clockwise primary p = + (if turningnumber p<0: p else: (reverse p) fi) + enddef; +fi + +% Selects the n-th element of a list +def select(expr n)(text values) = + begingroup; + i := 0; + for v = values: + result := v; + exitif i = n; + i := i + 1; + endfor; + result + endgroup +enddef; + +% Splits a length at the math axis +def vcentre(expr size) = + size/2 + math_axis#, size/2 - math_axis# +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, math_axis),(w - side_bearing, math_axis)); + 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#, vcentre(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#, vcentre(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; +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; + +def beginturnstile(expr angle, scale) = + beginsymbol(abs(sind(angle) + scale * cosd(angle)) * turnstile_width# + 2side_bearing#, abs(min(scale, 1 + (scale - 1)/2) * sind(angle) + cosd(angle)) * cap_height#, abs(max(0, (scale - 1)/2) * sind(angle)) * cap_height#); + pair foot; + + if angle mod 180 = 0: + len := scale * turnstile_width; + spread := cap_height - line_thickness; + else: + len := scale * cap_height; + spread := turnstile_width - line_thickness;; + fi + foot = (w/2, (h - d)/2) - (len - line_thickness)/2 * dir angle; +enddef; + +def beginaccent(expr width, addheight) = + thick := accent_thickness; + beginsymbol(width, accent_height# + addheight, 0); +enddef; + +% Strokes a pen path +vardef stroke text t = + forsuffixes e = l, r: + path_.e := t; + endfor + path_.r -- reverse path_.l -- 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) = + circle(centre, radius) +enddef; + +% Draw macros + +def draw_straight(expr orig, dest, thick, extend) = + begingroup; + 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 stroke p1.e -- p2.e; + endgroup; +enddef; + +def draw_line(expr orig, dest, extend) = + draw_straight(orig, dest, line_thickness, extend); +enddef; + +def draw_line_linethick(expr orig, dest, lt, extend) = + draw_straight(orig, dest, lt, extend); +enddef; + +def draw_line_cut_linethick(suffix $, $$)(expr lt)= + if (abs(angle(z$-z$$))<45) or (abs(angle(z$-z$$))>135) : + ppos_cut_linethick($)(lt,angle(z$-z$$),90); + ppos_cut_linethick($$)(lt,angle(z$-z$$),90); + else: + ppos_cut_linethick($)(lt,angle(z$-z$$),0); + ppos_cut_linethick($$)(lt,angle(z$-z$$),0); + fi + penstroke z$e .. z$$e; + penlabels($,$$); +enddef; + +def draw_line_cut(suffix $, $$)= + draw_line_cut_linethick($,$$)(line_thickness); +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$(thick, 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$(thick, 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)); + penpos4$(thick, angle (rc - lc)); + + z5$ = z3$.r; + z6$ = z4$.l; + + penpos5$(thick, angle (rc - lc) + sign * 90); + penpos6$(thick, angle (rc - lc) + sign * 90); + + path p$, q$; + numeric s$, t$; + + p$ = z3$.l{dir (angle(rc - lc) + sign * 90)} .. {rc - lc}z2$.r; + q$ = z2$.r{rc - lc} .. {dir (angle(rc - lc) - sign * 90)}z4$.r; + s$ = xpart (p$ intersectiontimes (z0$.r -- z1$.r)); + t$ = xpart (q$ intersectiontimes (z0$.r -- z1$.r)); + + fill z0$.r -- point s$ of p$ & subpath (s$,1) of p$ & subpath (0,t$) of q$ & point t$ of q$ -- z1$.r -- z1$.l -- z6$l. -- z6${dir (angle (rc - lc) + sign * 90)} .. z2$.l{lc - rc} .. {dir (angle (rc - lc) - sign * 90)}z5$ -- z5$.l -- z0$.l -- cycle; + + penlabels(0$,1$,2$,3$,4$,5$,6$); +enddef; + +def draw_less(suffix $)(expr lc, rc, spread, thick, closed, straight) = + put_less($)(lc, rc, spread, thick, closed, straight); + fill z0$.l -- z3$.l -- z4$.l -- z1$.l -- z1$.r -- z5$ -- z0$.r -- cycle; + + if closed: + fill z0$.l -- z6$.l -- z7$.l -- z1$.l -- z7$.r -- z6$.r -- cycle; + fi; +enddef; + +def put_less(suffix $)(expr lc, rc, spread, thick, closed, straight) = + 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); + + if straight: + penpos0$(thick/cosd(theta), angle(rc - lc) - 90); + penpos1$(thick/cosd(theta), angle(rc - lc) + 90); + else: + penpos0$(thick, angle(rc - lc) - 90 + theta); + penpos1$(thick, angle(rc - lc) + 90 - theta); + fi; + 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$); + + 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]; + 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_angle(expr pos, spread, angle) = + begingroup; + stroke_len := 1/2spread / cosd (90 - angle); + z100 = pos + stroke_len * dir angle; + z101 = pos - stroke_len * dir angle; + draw_line_cut_linethick(100,101)(stroke_through_thickness); + endgroup; +enddef; + +def stroke_through(expr pos, spread) = + stroke_through_angle(pos, spread, 75); +enddef; + +def stroke_through_arrow(expr pos, alpha, spread)(text angles) = + begingroup; + stroke_dir := alpha + select(alpha / 45)(angles); + stroke_len := 1/2spread / sind (stroke_dir - alpha); + + z102 = pos + stroke_len * dir stroke_dir; + z103 = pos - stroke_len * dir stroke_dir; + draw_line_cut_linethick(102,103)(stroke_through_thickness); + endgroup; +enddef; + +def draw_product(expr centre, width, height, sign, thick) = + thin := thick; + + z1r - z0r = z3r - z2r = width * right; + z2r - z0r = sign * (height - thin) * up; + 1/2[1/2[z0l,z1l], 1/2[z2r,z3r]] = centre; + z4 = z0 + min(5thin, 2/5width) * right; + z5 = z1 + min(5thin, 2/5width) * left; + z6 = 1/2[z0l,z4l]; + z7 = 1/2[z1l,z5l]; + x8 = 1/2[x0,x4]; + x9 = 1/2[x1,x5]; + y8 = y9 = y2l; + + penpos0(thin, sign * 100); + penpos1(thin, sign * 80); + penpos2(thin, sign * 90); + penpos3(thin, sign * 90); + 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 z6r -- z8r -- z9l -- z7l -- z7r -- z9r -- z3l -- z3r -- z2r -- z2l -- z8l -- z6l --cycle; + +% fill z0l -- z4l -- z4r{dir (sign * 160)} .. {sign * up}z6r -- z10 -- z11 -- z7l{sign * down} .. {dir (-sign * 160)}z5r -- z5l -- z1l -- z1r{dir (sign * 160)} .. {sign * up}z7r -- z9r{sign * up} .. {dir (sign * 15)}z3l -- z3r -- z2r -- z2l{dir (-sign * 15)} .. {sign * down}z8l -- z6l{sign * down} .. {dir (-sign * 160)}z0r -- 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 := 4/5thick; + + z1$l - z0$l = z3$l - z2$l = width * right; + z2$l - z0$l = height * up; + 1/2[1/2[z0$l,z1$l], 1/2[z2$l,z3$l]] = centre = z4$; + + penpos0$(thin, 90); + penpos1$(thick, 90); + penpos2$(thin, -90); + penpos3$(thick, -90); + + penpos4$(thick/sind(angle(z4$-z0$)), 0); + + y5$r = y0$l + thick; y6$r = y2$l - thick; + z5$r = whatever[z0$r,z4$l]; z6$r = whatever[z2$r,z4$l]; + + penpos5$(thick/sind(angle(z4$-z0$)), 180); + penpos6$(thick/sind(angle(z4$-z0$)), 180); + + fill z1$r -- z1$l -- z0$l -- z0$r -- z4$l -- z2$r -- z2$l -- z3$l -- z3$r -- z6$l -- z4$r -- z5$l -- cycle; + + penlabels(0$,1$,2$,3$,4$,5$,6$); +enddef; + +def draw_integral(suffix $)(expr scale, centre, thick) = + penpos0$(thick, 0); + penpos1$(thick, 0); + penpos2$(6/7thick, -90); + penpos3$(thick, 0); + penpos4$(6/7thick, -90); + + z0$ = 1/2[z1$,z3$] = 1/2[z2$,z4$]; + z1$ - z3$ = whatever * dir 79; + z2$ - z4$ = whatever * dir 70; + + x0$ = xpart centre; + y2$l = h; + y4$r = -d; + y1$ = 1/2[y0$,y2$]; + + penpos5$(1.05*6/7thick/sind 70,-105); + penpos6$(1.05*6/7thick/sind 70,-105); + + y5$l = y2$l - 0.2thick; + x5$r = 5/4[x1$, x2$] + 0.2thick; + y6$r = y4$r + 0.2thick; + x6$r = 6/4[x3$, x4$] - 0.2thick; + + 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 .. {left}z2$l{left} .. {dir angle(z0$-z1$)}z1$l -- z3$l{dir angle(z0$-z1$)} ... z4$l{left} .. z6$l -- z6$r + .. {right}z4$r{right} .. {dir angle(z1$-z0$)}z3$r -- z1$r{dir angle(z1$-z0$)} ... z2$r{right} .. z5$r -- cycle; + + penlabels(0$,1$,2$,3$,4$,5$,6$); +enddef; + +def draw_arrowhead_left(expr pos, angle, spread, thick) = + begingroup; + pair p[], p[].l, p[].r; + + p1 = pos; + p2 = pos + sqrt(2) * (spread + thick)/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 * sind 45) * dir angle; + 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 - 90); + p3.r = pos + 1/2thick * dir (angle - 90) + whatever * dir angle; + fill p1.r -- p2.r -- p2.l -- p3.l -- p3.r -- cycle; + endgroup; +enddef; + +def draw_arrowhead_right(expr pos, angle, spread, thick) = + begingroup; + pair p[], p[].l, p[].r; + + p1 = pos; + p2 = pos + sqrt(2) * (spread + thick)/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 * sind 45) * dir angle; + 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 + 90); + p3.r = pos + 1/2thick * dir (angle + 90) + whatever * dir angle; + fill p1.r -- p3.r -- p3.l -- p2.l -- p2.r -- cycle; + endgroup; +enddef; + +def draw_arrowhead(expr pos, angle, spread, thick) = + begingroup; + pair p[], p[].l, p[].r; + + p1 = pos; + p2 = pos + sqrt(2) * (spread+thick)/2 * dir (angle + 135); + p3 = pos + sqrt(2) * (spread+thick)/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 * sind 45) * dir (angle); + p3.r - p3 = thick/(2 * sind 45) * dir (angle); + + fill p1.r -- p2.r -- p2.l -- p1.l -- p3.l -- p3.r -- cycle; + endgroup; +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$); + + penpos0$ (thick, 0); + penpos1$ (thick, 0); + penpos2$ (thick / abs(sind 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 * 90); + penpos1(thick, -90 + sign * 90); + penpos2(1.1thick, 90 - sign * 90); + + if sign = 1: + x2l = side_bearing; + x1r = x0r = w - side_bearing; + else: + x1r = x0r = side_bearing; + x2l = w - side_bearing; + fi + y1.l = h; + y0.l = -d; + 1/2[y0,y1] = y2; + + fill stroke z0e .. z2e .. 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); + + y0l = h; + x0 = w; + z0' = z0 + 1/2line_thickness * right; + y1 = -d; + x1 = 4/9w; + x2r = 2/9w + 1/2thick; + y2r = 1/2[y0, y1]; + z1' = z1 + thick * right; + y6 = h; + z6 = z0r + thick/sind(angle(z0r - z1')) * left + whatever * (z0r - z1'); + + penpos2(thick/abs(sind(angle(z1'-z2r))), 0); + penpos3(1/2thick, angle (z1 - z2l)); + + z1'' = z1' - thick/abs(sind(angle(z1' - z2r))) * right; + + z3l = z2r + 3/2thick * dir (angle (z1 - z2l) - 90); + z4 = z6 + whatever * (z0r - z1') = z2r + whatever * (z2r - 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',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); + + y0 = h + 1/2thick; + x0l = x1; + y1 = -d; + x1 = 4/9w; + x2r = 2/9w + 1/2thick; + y2r = 1/2[y0, y1]; + z1' = z1 + whatever * right; + x1' = x0r; + + penpos2(thick/abs(sind(angle(z1'-z2r))), 0); + penpos3(1/2thick, angle (z1 - z2l)); + + z1'' = z1' - thick/abs(sind(angle(z1' - z2r))) * right; + + z3l = z2r + 3/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',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/mdsymbol/mddelims.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mddelims.mf new file mode 100644 index 00000000000..1038ca0b110 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mddelims.mf @@ -0,0 +1,600 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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) = +%option 1: make symbols thicker with scale +% sqrt sqrt scale +%option 2: keep same thickness + 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 + 2.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 * 90); + penpos2(1.1thick, 90 - sign * 90); + penpos2'(1.1thick, 90 - sign * 90); + + if sign = 1: + x2l = side_bearing; + x1r = w - side_bearing; + else: + x1r = side_bearing; + x2l = w - side_bearing; + fi + x2 = x2'; + y1 = h; + y2 = -d + 1/2line_thickness; + y2' = -d - 1/2line_thickness; + + fill stroke z2'.e -- z2e{up} ... 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 * 90); + penpos2(1.1thick, 90 - sign * 90); + penpos2'(1.1thick, 90 - sign * 90); + + if sign = 1: + x2l = side_bearing; + x0r = w - side_bearing; + else: + x0r = side_bearing; + x2l = w - side_bearing; + fi + x2 = x2'; + y2 = h - 1/2line_thickness; + y2' = h + 1/2line_thickness; + y0 = -d; + + fill stroke z0e ... {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; + + penpos2(1.1thick, 90 - sign * 90); + penpos3(1.1thick, 90 - sign * 90); + + if sign = 1: + x2l = x3l = side_bearing; + else: + x2l = x3l = w - side_bearing; + fi + y2 = h + 1/2line_thickness; + y3 = -d - 1/2line_thickness; + + 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_cut(0, 1); + 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# + 3/2line_thickness# + 2side_bearing#, rule_thickness#, 2scale * delim_height# - rule_thickness#); "root"; + draw_root(line_thickness); + endchar; +endfor; + +beginsymbol(14u# + 3/2line_thickness# + 2side_bearing#, rule_thickness#, 1.2delim_height# - rule_thickness#); "root -- top"; + draw_root_top(line_thickness); +endchar; + +beginsymbol(14u# + 3/2line_thickness# + 2side_bearing#, 0, 2.4delim_height#); "root -- bottom"; + draw_root_bot(line_thickness); +endchar; + +beginsymbol(14u# + 3/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/mdsymbol/mdgeometric.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mdgeometric.mf new file mode 100644 index 00000000000..32c6a604fbf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mdgeometric.mf @@ -0,0 +1,1912 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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; + +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; + +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); "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; + +for angle = 0, 180: + beginoperator(plus_size#, 1.25); "plus minus (" & decimal angle & ")"; + centre := centre + 0.125plus_size * dir (angle + 90); + pair bt; + bt := centre + (radius + 0.25plus_size) * dir (angle - 90); + + 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; +endfor; + +for angle = 0, 180: + beginoperator(plus_size#, 1.25); "dot plus (" & decimal angle & ")"; + centre := centre + 0.125plus_size * dir (angle - 90); + pair tp; + tp := centre + (radius + 0.25plus_size) * dir (angle + 90); + + draw_line(centre + radius * right, centre + radius * left, true); + draw_line(centre + radius * up, centre + radius * down, true); + fill dot(tp, 3/4dot_size); + endchar; +endfor; + +beginoperator(plus_size#, 1.25); "dot times"; + centre := centre + 0.125plus_size * down; + pair tp; + tp := centre + (radius + 0.2plus_size) * up; + 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); + fill dot(tp, 3/4dot_size); +endchar; + +beginoperator(plus_size#, 1.25); "times bar"; + centre := centre + 0.125plus_size * up; + pair bt; + bt := centre + (radius + 0.25plus_size) * down; + 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); + draw_line(bt + radius * right, bt + radius * left, true); +endchar; + +beginoperator(plus_size#, 1); "divide on times"; + r := 4/3radius; + + draw_line(centre + radius * right, centre + radius * left, true); + draw_line(centre + r * dir 45, centre + r * dir 225, true); + draw_line(centre + r * dir 135, centre + r * dir 315, 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, true); + 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, true); + 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, true); + draw_less(b, z1 + sign * plus_size/2 * up, z1 - sign * plus_size/2 * up, 2radius, line_thickness, false, true); + 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.25); "bar wedge"; + centre := centre - sign * 0.125plus_size * up; + pair tp; + tp := centre + sign * (radius + 0.25plus_size) * up; + + draw_less(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false, true); + draw_line(tp + radius * left, tp + radius * right, true); + endchar; +endfor; + +for sign = 1, -1: + beginoperator(plus_size#, 1.5); "double bar wedge"; + centre := centre - sign * 0.25plus_size * up; + pair tpa, tpb; + tpa := centre + sign * (radius + 0.25plus_size) * up; + tpb := centre + sign * (radius + 0.5plus_size) * up; + + draw_less(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false, true); + draw_line(tpa + radius * left, tpa + radius * right, true); + draw_line(tpb + radius * left, tpb + radius * right, true); + 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); + + r := 1/6plus_size; + + 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); + + r := 1/6plus_size; + + 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, 4/5line_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, 4/5line_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(2equal_spread# + 2side_bearing#, x_height#, desc_depth#); "intercalate"; + z1 - z0 = z3 - z2 = (2equal_spread - line_thickness) * right; + z2 - z0 = (h + d - line_thickness) * up; + + 1/2[1/2[z0,z1], 1/2[z2,z3]] = (w/2, (h-d)/2); + + draw_line(z2, z3, true); + draw_line(1/2[z0,z1], 1/2[z2,z3], true); +endchar; + +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, 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(3u# + line_thickness#, 3/5asc_height#, 0); "prime"; + z0 = (w, h); + z1 = z0 + (3/4u + line_thickness) * left; + z2 = (1u, 1/9h); + z3 = z2 + 5/4line_thickness * right; + + fill z0 -- z1 -- z2 -- z3 -- cycle; + labels(0,1,2,3); +endchar; + +beginsymbol(3u# + line_thickness#, 3/5asc_height#, 0); "backprime"; + z0 = (0, h); + z1 = z0 + (3/4u + line_thickness) * right; + z2 = (w - 1u, 1/9h); + z3 = z2 + 5/4line_thickness * left; + + fill z0 -- z1 -- z2 -- z3 -- cycle; + labels(0,1,2,3); +endchar; + +for sign = 1, -1: + beginoperator(plus_size#, 1); "product"; + draw_product(centre, plus_size, plus_size, sign, line_thickness); + endchar; +endfor; + +beginsymbol(2/5asc_height# + 2side_bearing# + line_thickness#, asc_height#, 0); "small integral"; + pair centre; + centre := (w/2, (h - d)/2); + + draw_integral(a, 1/2, centre, line_thickness); +endchar; + +beginsymbol(11u# + line_thickness# + 2side_bearing#, asc_height#, 0); "check mark"; + thick := line_thickness; + + 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(6u# + line_thickness# + 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"; + path p; + numeric r,s; + + thick := line_thickness; + alpha := 90; + + z0 = centre - 1/2plus_size * dir alpha; + z1 = z0 + 9/10plus_size * dir alpha; + + put_less(a, z0, z1, 9/10plus_size, thick, false, false); + + z9 = whatever[z3a.l, z0a.l] = whatever[z4a.l,z1a.l]; + + penpos1'(thick, 90); + + z1'r = z9 + length(z0a.l - z9)*up; + z4r = z0a.l - line_thickness*(dir(angle(z0a.l-z9))); + z5r = z1a.l - line_thickness*(dir(angle(z1a.l-z9))); + + theta := angle(z0a.l - z9); + + p = (z4r{dir(theta -90)} .. z1'l .. {dir(-theta +90)}z5r); + r = ypart ((z5a -- z0a.r) intersectiontimes p); + s = ypart ((z5a -- z1a.r) intersectiontimes p); + show(-theta-90); + fill z0a.l{dir(theta -90)} .. z1'.r .. {dir(-theta +90)}z1a.l -- z4a.l -- z3a.l -- cycle; + unfill subpath (r,s) of p -- z5a -- cycle; + + penlabels(1',4,5,9); +endchar; + +beginsymbol(5/4order_width# + 2side_bearing#, cap_height#, 0); "forall"; + thick := line_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 / sind(abs(angle(z2 - z0))), 0); + penpos1(thick / sind(abs(angle(z2 - z0))), 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 := line_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 := line_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 := line_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 := line_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(4u# + line_thickness# + 2side_bearing#, asc_height#, 0); "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 / cosd 35 - d; + + penpos0(thick, 0); + penpos1(thick, 0); + penpos2(thick, 0); + penpos3(7/8thick, 90); + penpos4(2/3thick, 130); + + fill z1.l -- z0.l -- z0.r{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(4u# + line_thickness# + 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(thick/cosd(15), 90); + penpos5(thick/cosd(15), 90); + penpos6(thick/cosd(15), 90); + penpos7(thick/cosd(15), 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(4u# + line_thickness# + 2side_bearing#, asc_height#, desc_depth#); "sharp"; + thick := line_thickness; + + x0l - x4 = x1l - x5 = x6 - x2r = x7 - x3r; + x2l - x0r = x3l - x1r = 2(x0l - x4); + 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(thick/cosd(15), 90); + penpos5(thick/cosd(15), 90); + penpos6(thick/cosd(15), 90); + penpos7(thick/cosd(15), 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(8u# + line_thickness# + 2side_bearing#, cap_height#, 0); "aleph"; + thick := line_thickness; + + x0l = x2l = side_bearing; + x1r = x3r = w - side_bearing; + y0l = h; + y1 = h; + y2 = 0; + y3r = 0; + + penpos0(thick/sind(abs(angle(z3r-z0l))), 0); + penpos1(thick, 0); + penpos2(thick, 0); + penpos3(thick/sind(abs(angle(z3r-z0l))), 0); + + path p; + p = z0{dir -70} .. {dir -70}z3; + + z4 = point 3/10 of p; + z5 = point 5/8 of p; + z6 = point 1/2 of p; + + penpos4(8/9thick, -40); + penpos5(8/9thick, -45); + + penpos6(thick/sind(abs(angle(z3r-z0l))),0); + + fill stroke z0.e{dir -70} .. z6.e .. {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,6); +endchar; + +beginsymbol(8u# + line_thickness# + 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(thick, 90); + penpos1(thick, 90); + penpos2(thick, 90); + penpos3(thick, 90); + penpos4(thick, 0); + penpos5(thick, 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(6u# + line_thickness# + 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(thick, 90); + penpos2'(thick * sind 80, 90); + penpos3(thick, 0); + penpos4(thick, 60); + penpos5(thick, 60); + penpos6(thick, 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(5/6thick, 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,2',3,4,5,6,7,8); +endchar; + +beginsymbol(7u# + line_thickness# + 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(thick, 90); + penpos1(thick, 90); + penpos2(thick, 0); + penpos3(thick, 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(9u# + 2line_thickness#, 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(line_thickness, theta); + penpos7(line_thickness, -90); + + x2 + 1/2u = x1 = x7 - 1/2u = 3u; + y2l = h; + y7r = -d; + y1 = 2/5[-d, h]; + x3l = 1/2u; + x6r = max(x7 + line_thickness, 1/2w - 1/4u); + x3r - x3l = x6r - x6l =line_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(line_thickness, 0); + penpos11(line_thickness, -90); + penpos12(line_thickness, -100); + + x10r = w - 3/2u + 1/2line_thickness; + x8r = u; + x9 = x11 = 1/2w + 3/2u; + x12l = max(x6r, .5w + .5u); + y8 = y11r = 0; + y9r = 19/20h; + y10 = 1/2[y9,y11]; + y12r = 1/4[y11r,y1l]; + + fill stroke z7e{left} ... z8e{up} ... z9e .. z10e .. z11e .. z12.e; % stem and bowl + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); +endchar; +endgroup; + +beginsymbol(8u# + line_thickness# + 2side_bearing#, cap_height#, 0); "nabla"; + thick:=line_thickness; + thin := 4/5thick; + thicker := 8/7thick; + + y0r = y1r = h; + y2 = 0; + + x0r = side_bearing; + x1r = w - side_bearing; + x2 = w/2; + + penpos0(thin, 90); + penpos1(thin,90); + penpos2(thicker,0); + + y3 = y4 = h-thick; + z3 = z2r + whatever*(z0l-z2l); + z4 = z2l + whatever*(z1l-z2r); + + z5 = whatever[z3,z2r] = whatever[z4,z2l]; + + fill z0r -- z0l -- z2l -- z2r -- z1l -- z1r -- cycle; + unfill z3 -- z4 -- z5 -- cycle; + + penlabels(0,1,2,3,4,5); +endchar; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/mdoperators.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mdoperators.mf new file mode 100644 index 00000000000..2672a84f155 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mdoperators.mf @@ -0,0 +1,464 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 sthick(expr scale) = +%option 1: make symbols thicker with scale + sqrt scale +%option 2: keep same thickness +% 1 +enddef; + +def bop_line_thickness(expr scale) = + bop_thickness_fac * line_thickness * sqrt sthick(scale) +enddef; +def bop_dot_size(expr scale) = + bop_thickness_fac * 3/4dot_size * sqrt sthick(scale) +enddef; + +for scale = 1, 1.4: + beginsquarebigop(scale, scale); "big plus"; + draw_line_linethick(centre + op_height/2 * right, centre + op_height/2 * left, bop_line_thickness(scale), false); + draw_line_linethick(centre + op_height/2 * up, centre + op_height/2 * down, bop_line_thickness(scale), 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 - bop_line_thickness(scale) / sqrt(2)) * right; + z2 - z0 = (op_width - bop_line_thickness(scale) / sqrt(2)) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line_linethick(z0, z3, bop_line_thickness(scale), false); + draw_line_linethick(z1, z2, bop_line_thickness(scale), 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 - bop_line_thickness(scale), bop_line_thickness(scale), false, true); + 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 - bop_line_thickness(scale), bop_line_thickness(scale), false, true); + fill dot(centre - sign * 1/4op_height * up, bop_dot_size(scale)); + 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 - bop_line_thickness(scale), bop_line_thickness(scale), false, true); + draw_less(b, z1 + sign * op_height/2 * up, z1 - sign * op_height/2 * up, 3/4op_width - bop_line_thickness(scale), bop_line_thickness(scale), false, true); + 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 - bop_line_thickness(scale), bop_line_thickness(scale), 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 - bop_line_thickness(scale), bop_line_thickness(scale)); + 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 - bop_line_thickness(scale), bop_line_thickness(scale)); + fill dot(centre - sign * 1/8op_height * up, bop_dot_size(scale)); + 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 - bop_line_thickness(scale), bop_line_thickness(scale)); + + r := 1/4op_width; + + draw_line_linethick(centre - sign * 1/8op_width * up + r * right, centre - sign * 1/8op_width * up + r * left, bop_line_thickness(scale), false); + draw_line_linethick(centre + (r - sign * 1/8op_width) * up, centre + (r + sign * 1/8op_width) * down, bop_line_thickness(scale), 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 - bop_line_thickness(scale)) * right; + z1 - z0 = sign * (op_height - bop_line_thickness(scale)) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line_linethick(z0, z1, bop_line_thickness(scale), true); + draw_line_linethick(z1, z2, bop_line_thickness(scale), true); + draw_line_linethick(z2, z3, bop_line_thickness(scale), 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 - bop_line_thickness(scale)) * right; + z1 - z0 = sign * (op_height - bop_line_thickness(scale)) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line_linethick(z0, z1, bop_line_thickness(scale), true); + draw_line_linethick(z1, z2, bop_line_thickness(scale), true); + draw_line_linethick(z2, z3, bop_line_thickness(scale), true); + fill dot(centre - sign * 1/8op_height * up, bop_dot_size(scale)); + 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 - bop_line_thickness(scale)) * right; + z1 - z0 = sign * (op_height - bop_line_thickness(scale)) * up; + 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre; + + draw_line_linethick(z0, z1, bop_line_thickness(scale), true); + draw_line_linethick(z1, z2, bop_line_thickness(scale), true); + draw_line_linethick(z2, z3, bop_line_thickness(scale), true); + + r := 1/4op_width; + + draw_line_linethick(centre - sign * 1/8op_width * up + r * right, centre - sign * 1/8op_width * up + r * left, bop_line_thickness(scale), false); + draw_line_linethick(centre + (r - sign * 1/8op_width) * up, centre + (r + sign * 1/8op_width) * down, bop_line_thickness(scale), 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 - bop_line_thickness(scale))/2; + + draw_circle(centre, r, bop_line_thickness(scale)); + draw_line_linethick(centre - r * dir alpha, centre + r * dir alpha, bop_line_thickness(scale), false); + draw_line_linethick(centre - r * dir (alpha + 90), centre + r * dir (alpha + 90), bop_line_thickness(scale), 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 - bop_line_thickness(scale))/2, bop_line_thickness(scale)); + fill dot(centre, bop_dot_size(scale)); + endchar; +endfor; +charlist current_char - 1: current_char; + +for scale = 1, 1.4: + beginsquarebigop(scale, scale); "big circle asterisk"; + thick := bop_line_thickness(scale); + r := (op_height - bop_line_thickness(scale))/2; + + draw_circle(centre, r, bop_line_thickness(scale)); + + 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, bop_line_thickness(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, bop_line_thickness(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, bop_line_thickness(scale)); + draw_circle(z4a, sqrt scale * 1/4op_width, bop_line_thickness(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# + (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "integral"; + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_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, bop_line_thickness(scale)); + endfor; + endchar; + endfor; + charlist current_char - 1: current_char; +endfor; + +for scale = 1, 1.8: + beginsymbol(scale * 9u# + 4(equal_spread# + sqrt sthick(scale) * bop_thickness_fac*dot_size#) + (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "integral dots"; + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_thickness#; % kerning between upper limit and lower limit + + pair centre; + centre := (side_bearing + scale * 7/2u, (h - d)/2); + + draw_integral([0])(scale, centre, bop_line_thickness(scale)); + + centre := (side_bearing + scale * 6u + 4(equal_spread + bop_dot_size(scale)), (h - d)/2); + + draw_integral([1])(scale, centre, bop_line_thickness(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, bop_dot_size(scale)); + fill dot(z1, bop_dot_size(scale)); + fill dot(z2, bop_dot_size(scale)); + endchar; +endfor; +charlist current_char - 1: current_char; + +for sign = 1, -1: + for scale = 1, 1.8: + beginsymbol(scale * 6u# + if scale > 1: (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# else: scale * 3u# fi + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "oriented integral"; + if scale > 1: + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_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, bop_line_thickness(scale)); + + thick := bop_line_thickness(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); + + if sign > 0: + fill stroke z0.e{dir 45} .. {dir 0}z1.e .. {dir -45}z2.e; + draw_arrowhead(z2, -40, 2/3scale * arrow_spread, 5/6thick); + else: + fill stroke z0.e{dir -135} .. {dir 180}z1.e .. {dir 135}z2.e; + 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: (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# else: scale * 3u# fi + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "integral with horizontal bar"; + if scale > 1: + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_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, bop_line_thickness(scale)); + + r := scale * 5/2u; + thick := bop_line_thickness(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: (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# else: scale * 3u# fi + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "integral with double horizontal bar"; + if scale > 1: + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_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, bop_line_thickness(scale)); + + z1 - z0 = equal_spread * up; + 1/2[z0, z1] = z0a; + + r := scale * 5/2u; + thick := bop_line_thickness(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# + (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "stroked integral"; + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_thickness#; % kerning between upper limit and lower limit + + pair centre; + centre := (side_bearing + scale * 7/2u, (h - d)/2); + + draw_integral(a)(scale, centre, bop_line_thickness(scale)); + + r := scale * 7/2u; + thick := bop_line_thickness(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: (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# else: scale * 3u# fi + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "contour integral"; + if scale > 1: + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_thickness#; % kerning between upper limit and lower limit + fi + + pair centre; + + centre := (side_bearing + scale * (5number/2 + 4) * u, (h - d)/2); + thick := bop_line_thickness(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, bop_line_thickness(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: (sthick(scale)) * 3/4bop_thickness_fac*line_thickness# else: scale * 3u# fi + 2side_bearing#, vcentre(scale * 1.6asc_height#)); "oriented contour integral"; + if scale > 1: + italcorr scale * 3u# - (sthick(scale)) * 3/4bop_thickness_fac*line_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, bop_line_thickness(scale)); + + thick := bop_line_thickness(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#, vcentre(scale * 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, bop_line_thickness(scale)); + draw_sum(b, 1/4[z0a.l,z0a.r], scale * 7u, scale * 3/4asc_height, bop_line_thickness(scale)); + + endchar; +endfor; +charlist current_char - 1: current_char; diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/mdrelations.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mdrelations.mf new file mode 100644 index 00000000000..3514591e083 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mdrelations.mf @@ -0,0 +1,1184 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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,3) * 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, 3equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(4/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, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1/2,5/2) * equal_spread#); "sim"; + draw_sim(a, left_ex, right_ex, 1/4equal_spread, line_thickness); + + if negated = 1: + stroke_through(centre, 5/2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(3/2,6/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, 3equal_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,6/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, 3equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(3/2,6/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, 3equal_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,3) * equal_spread# + ifneg(1,0) * 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, 3equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(4/2,7/2) * equal_spread# + ifneg(1,0) * 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, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(2/2,7/2) * equal_spread# + ifneg(1,0) * 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, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(6/2,7/2) * equal_spread# + ifneg(1,0) * 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, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(6/2,7/2) * equal_spread# + ifneg(1,0) * 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, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(6/2,7/2) * equal_spread# + ifneg(1,0) * 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, 7/2equal_spread); + fi; + endchar; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(6/2,7/2) * equal_spread# + ifneg(1,0) * 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, 7/2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 1: + for sign = 1, -1: + beginorder(sign, 4/3order_width# + 3/4dot_size#, equal_spread# + dot_size#); "colon equal"; + s := 1/2equal_spread; + pair left_sep; + left_sep := left_ex + sign * (3/4dot_size + 1/3order_width) * right; + + fill dot(left_ex + s * up + sign * 3/4dot_size * right, 3/4dot_size); + fill dot(left_ex - s * up + sign * 3/4dot_size * right, 3/4dot_size); + draw_line(left_sep + s * up, right_ex + s * up, false); + draw_line(left_sep - s * up, right_ex - s * up, false); + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(1, order_width#, ifneg(1/2,5/2) * equal_spread#); "smile"; + draw_smile(a, sign, left_ex, right_ex, 1/2equal_spread, line_thickness, true); + + if negated = 1: + stroke_through(centre, 5/2equal_spread); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(1, order_width#, ifneg(11/6,7/2) * 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, 7/2equal_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,3) * 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, 3equal_spread); + fi; + endchar; +fi; + +if negated < 2: + beginorder(1, order_width#, ifneg(9/2,10/2) * 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, true); + + 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,3/2) * 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, 3/2equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +% orderings + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "less than"; + draw_less(a, left_ex, right_ex, greater_spread, line_thickness, false, true); + + 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(2/3,6/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, true); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 6/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,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, true); + + if sign = 1: + z6 = z4a.l + 1/2line_thickness*up - 2t * up; + z7 = z1a - 2t * up; + draw_line_cut(6,7); + else: + z6 = z3a.l + 1/2line_thickness*up - 2t * up; + z7 = z0a - 2t * up; + draw_line_cut(6,7); + fi; + + if negated = 1: + stroke_through(centre, 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, true); + 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(2/2,4/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, true); + 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, 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(4/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, true); + + 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,if sign > 0: 2 else: 3/2 fi) * 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, true); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false, true); + + if negated = 1: + stroke_through(centre, if sign > 0: 2 else: 3/2 fi * 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, true); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false, true); + 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 < 2: + 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, true); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false, true); + 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); + 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, true); + draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false, true); + + if sign = 1: + z6 = z4a.l + 1/2line_thickness*up - equal_spread * up; + z7 = z1a - equal_spread * up; + draw_line_cut(6,7); + else: + z6 = z3a.l + 1/2line_thickness*up - equal_spread * up; + z7 = z0a - equal_spread * up; + draw_line_cut(6,7); + 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, true); + draw_less(b, left_ex + sign * s * right, right_ex, greater_spread, line_thickness, false, true); + + 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, true); + draw_less(b, left_ex + sign * s * right, right_ex - sign * s * right, greater_spread, line_thickness, false, true); + draw_less(c, left_ex + sign * 2s * right, right_ex, greater_spread, line_thickness, false, true); + + if negated = 1: + stroke_through_angle(centre, equal_spread + greater_spread, 50); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "closed less than"; + draw_less(a, left_ex, right_ex, greater_spread, line_thickness, true, true); + + 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(2/3,6/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, true); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 6/3equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width# * sqrt(5/4), ifneg(0,1) * equal_spread# + greater_spread#); "round less than"; + path p; + numeric r,s; + thick := line_thickness; + + z0 = left_ex; + z1 = z0 + order_width * dir angle(right_ex - left_ex); + + put_less(a, z0, z1, greater_spread, thick, false, false); + + z9 = whatever[z3a.l, z0a.l] = whatever[z4a.l,z1a.l]; + + penpos1'(thick, 90 - sign*90); + + z1'r = z9 + sign*length(z0a.l - z9)*right; + z4r = z0a.l - line_thickness*(dir(angle(z0a.l-z9))); + z5r = z1a.l - line_thickness*(dir(angle(z1a.l-z9))); + + theta := angle(z0a.l - z9); + + p = (z4r{dir(theta -90)} .. z1'l .. {dir(-theta -90)}z5r); + r = ypart ((z5a -- z0a.r) intersectiontimes p); + s = ypart ((z5a -- z1a.r) intersectiontimes p); + + fill z0a.l{dir(theta -90)} .. z1'.r .. {dir(-theta -90)}z1a.l -- z4a.l -- z3a.l -- cycle; + unfill subpath (r,s) of p -- z5a -- cycle; + + if negated = 1: + stroke_through(centre, equal_spread + greater_spread); + fi; + + penlabels(1',4,5,9); + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width# * sqrt(7/6), ifneg(1,2) * equal_spread# + 3/4greater_spread#); "round less than or slanted equal"; + path p; + numeric u,v; + + 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); + + put_less(a, z0, z1, s, thick, false, false); + + penpos1'(thick, 90 - sign*90); + + z9 = whatever[z3a.l, z0a.l] = whatever[z4a.l,z1a.l]; + + z1'r = z9 + sign*length(z0a.l - z9)*right; + z4r = z0a.l - line_thickness*(dir(angle(z0a.l-z9))); + z5r = z1a.l - line_thickness*(dir(angle(z1a.l-z9))); + + theta := angle(z0a.l - z9); + + p = (z4r{dir(theta -90)} .. z1'l .. {dir(-theta -90)}z5r); + u = ypart ((z5a -- z0a.r) intersectiontimes p); + v = ypart ((z5a -- z1a.r) intersectiontimes p); + + fill z0a.l{dir(theta -90)} .. z1'.r .. {dir(-theta -90)}z1a.l -- z4a.l -- z3a.l -- cycle; + unfill subpath (u,v) of p -- z5a -- cycle; + + 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, 2equal_spread + 3/4greater_spread); + fi; + + penlabels(1',4,5,9); + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,3/2) * 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, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,5/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, 5/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,3/2) * 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, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,3/2) * equal_spread# + greater_spread#); "subset"; + draw_subset(a, left_ex, right_ex, greater_spread, line_thickness); + + if negated = 1: + stroke_through(centre, 3/2equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,5/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, 5/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,3/2) * 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, 3/2equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(0,1) * 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, equal_spread + greater_spread); + fi; + endchar; + endfor; +fi; + +if negated < 3: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(2/3,6/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, 6/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,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, 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,4/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, 4/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) * equal_spread# + greater_spread#); "less than dot"; + draw_less(a, left_ex, right_ex, greater_spread, line_thickness, false, true); + fill dot(right_ex - sign * 3/4dot_size * right, 3/4dot_size); + + 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(2/3,6/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, true); + fill dot(z1 - sign * 3/4dot_size * right, 3/4dot_size); + draw_line(z2, z3, false); + + if negated = 1: + stroke_through(centre, 6/3equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,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, true); + fill dot(right_ex + t * up - sign * 3/4dot_size * right, 3/4dot_size); + + if sign = 1: + z6 = z4a.l + 1/2line_thickness*up - 2t * up; + z7 = z1a - 2t * up; + draw_line_cut(6,7); + else: + z6 = z3a.l + 1/2line_thickness*up - 2t * up; + z7 = z0a - 2t * up; + draw_line_cut(6,7); + fi; + + if negated = 1: + stroke_through(centre, 2equal_spread + s); + fi; + endchar; + endfor; +fi; + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,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, true); + + if sign = 1: + z6 = z3a.l - 1/2line_thickness*up + 2t * up; + z7 = z0a + 2t * up; + draw_line_cut(6,7); + else: + z6 = z4a.l - 1/2line_thickness*up + 2t * up; + z7 = z1a + 2t * up; + draw_line_cut(6,7); + fi; + + if negated = 1: + stroke_through(centre, 2equal_spread + s); + fi; + endchar; + endfor; +fi + +if negated < 2: + for sign = 1, -1: + beginorder(sign, order_width#, ifneg(1,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, 2equal_spread + s); + fi; + endchar; + endfor; +fi diff --git a/Master/texmf-dist/fonts/source/public/mdsymbol/mdturnstile.mf b/Master/texmf-dist/fonts/source/public/mdsymbol/mdturnstile.mf new file mode 100644 index 00000000000..cb423832ad9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/mdsymbol/mdturnstile.mf @@ -0,0 +1,102 @@ +% +% Copyright (c) 2011, Sebastian Schubert +% +% 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 factor = 1, 7/10: + for alpha = 0, 90, 180, 270: + beginturnstile(alpha, factor); "turnstile (" & decimal alpha & ")"; + draw_line(foot, foot + (len - line_thickness/2) * dir alpha, false); + draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true); + + if negated: + stroke_through_arrow(foot + 1/2len * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110); + fi + endchar; + endfor; +endfor; + +for factor = 1, 7/10: + for alpha = 0, 90, 180, 270: + beginturnstile(alpha, factor); "double turnstile (" & decimal alpha & ")"; + z1 - z0 = equal_spread * dir (alpha + 90); + 1/2[z0,z1] = foot; + + draw_line(z0, z0 + (len - line_thickness/2) * dir alpha, false); + draw_line(z1, z1 + (len - line_thickness/2) * dir alpha, false); + draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true); + + if negated: + stroke_through_arrow(foot + 1/2len * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110); + fi + endchar; + endfor; +endfor; + +for factor = 13/10, 1: + for alpha = 0, 90, 180, 270: + beginturnstile(alpha, factor); "bar with turnstile (" & decimal alpha & ")"; + z0 = foot + 3/10turnstile_width * dir alpha; + + draw_line(z0, foot + (len - line_thickness/2) * dir alpha, false); + draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true); + draw_line(z0 - spread/2 * dir (alpha + 90), z0 + spread/2 * dir (alpha + 90), true); + + if negated: + stroke_through_arrow(z0 + 1/2(len - 3/10turnstile_width) * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110); + fi + endchar; + endfor; +endfor; + +for alpha = 0, 90, 180, 270: + beginturnstile(alpha, 13/10); "bar with double turnstile (" & decimal alpha & ")"; + z0 = foot + 3/10turnstile_width * dir alpha; + z2 - z1 = z4 - z3 = equal_spread * dir (alpha + 90); + 1/2[z1,z2] = foot; + 1/2[z3,z4] = z0; + + draw_line(z3, z1 + (len - line_thickness/2) * dir alpha, false); + draw_line(z4, z2 + (len - line_thickness/2) * dir alpha, false); + draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true); + draw_line(z0 - spread/2 * dir (alpha + 90), z0 + spread/2 * dir (alpha + 90), true); + + if negated: + stroke_through_arrow(z0 + 1/2(len - 3/10turnstile_width) * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginturnstile(alpha, 13/10); "double bar with turnstile (" & decimal alpha & ")"; + z0 = foot + 3/10turnstile_width * dir alpha; + z1 = z0 + 3/10turnstile_width * dir alpha; + + draw_line(z1, foot + (len - line_thickness/2) * dir alpha, false); + draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true); + draw_line(z0 - spread/2 * dir (alpha + 90), z0 + spread/2 * dir (alpha + 90), true); + draw_line(z1 - spread/2 * dir (alpha + 90), z1 + spread/2 * dir (alpha + 90), true); + + if negated: + stroke_through_arrow(z1 + 1/2(len - 3/5turnstile_width) * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110); + fi + endchar; +endfor; + +for alpha = 0, 180: + beginturnstile(alpha, 1); "triple turnstile (" & decimal alpha & ")"; + z0 - foot = foot - z1 = equal_spread * dir (alpha + 90); + + draw_line(z0, z0 + (len - line_thickness/2) * dir alpha, false); + draw_line(foot, foot + (len - line_thickness/2) * dir alpha, false); + draw_line(z1, z1 + (len - line_thickness/2) * dir alpha, false); + draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true); + + if negated: + stroke_through_arrow(foot + 1/2len * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110); + fi + endchar; +endfor; diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Bold.tfm new file mode 100644 index 00000000000..08313962fe0 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Light.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Light.tfm new file mode 100644 index 00000000000..645a3b8a2bd Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Light.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Regular.tfm new file mode 100644 index 00000000000..89623b75137 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Semibold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Semibold.tfm new file mode 100644 index 00000000000..3d8dc045bbe Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolA-Semibold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Bold.tfm new file mode 100644 index 00000000000..5dd9d22013e Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Light.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Light.tfm new file mode 100644 index 00000000000..bb529bff186 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Light.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Regular.tfm new file mode 100644 index 00000000000..40065774f3f Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Semibold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Semibold.tfm new file mode 100644 index 00000000000..dc8bbedd9fb Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolB-Semibold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Bold.tfm new file mode 100644 index 00000000000..e73257e4297 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Light.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Light.tfm new file mode 100644 index 00000000000..750d10bcd36 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Light.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Regular.tfm new file mode 100644 index 00000000000..9fea58f40c8 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Semibold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Semibold.tfm new file mode 100644 index 00000000000..15e463c6ecf Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolC-Semibold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Bold.tfm new file mode 100644 index 00000000000..ef8e7a5f3f3 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Light.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Light.tfm new file mode 100644 index 00000000000..e789c639cc1 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Light.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Regular.tfm new file mode 100644 index 00000000000..2490f6402e3 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Semibold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Semibold.tfm new file mode 100644 index 00000000000..d4bc711bde3 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolD-Semibold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Bold.tfm new file mode 100644 index 00000000000..2875fafce08 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Light.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Light.tfm new file mode 100644 index 00000000000..d6287ac890e Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Light.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Regular.tfm new file mode 100644 index 00000000000..c5c0b9ba692 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Semibold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Semibold.tfm new file mode 100644 index 00000000000..9714264e672 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolE-Semibold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Bold.tfm new file mode 100644 index 00000000000..34b00995699 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Bold.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Light.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Light.tfm new file mode 100644 index 00000000000..4dc3bf4f6ca Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Light.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Regular.tfm new file mode 100644 index 00000000000..3b37e1a590c Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Regular.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Semibold.tfm b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Semibold.tfm new file mode 100644 index 00000000000..b7fcc203115 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/mdsymbol/MdSymbolF-Semibold.tfm differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Bold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Bold.pfb new file mode 100644 index 00000000000..3ba6d59b4e9 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Bold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Light.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Light.pfb new file mode 100644 index 00000000000..05cc6d60aef Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Light.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Regular.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Regular.pfb new file mode 100644 index 00000000000..c2e75e8d1b3 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Regular.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Semibold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Semibold.pfb new file mode 100644 index 00000000000..85f9aa62d8d Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolA-Semibold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Bold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Bold.pfb new file mode 100644 index 00000000000..c5fb0affea4 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Bold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Light.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Light.pfb new file mode 100644 index 00000000000..215e3cd472d Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Light.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Regular.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Regular.pfb new file mode 100644 index 00000000000..5c40a3afa35 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Regular.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Semibold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Semibold.pfb new file mode 100644 index 00000000000..2b98a375177 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolB-Semibold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Bold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Bold.pfb new file mode 100644 index 00000000000..1ca74c32f63 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Bold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Light.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Light.pfb new file mode 100644 index 00000000000..facec5326fb Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Light.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Regular.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Regular.pfb new file mode 100644 index 00000000000..a5e998c6364 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Regular.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Semibold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Semibold.pfb new file mode 100644 index 00000000000..2836b1df988 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolC-Semibold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Bold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Bold.pfb new file mode 100644 index 00000000000..9bac327c00c Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Bold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Light.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Light.pfb new file mode 100644 index 00000000000..ca7244bfbb5 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Light.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Regular.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Regular.pfb new file mode 100644 index 00000000000..143853a6fec Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Regular.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Semibold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Semibold.pfb new file mode 100644 index 00000000000..ba4cc3ff0a2 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolD-Semibold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Bold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Bold.pfb new file mode 100644 index 00000000000..479e5cf5d05 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Bold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Light.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Light.pfb new file mode 100644 index 00000000000..b8f8b40d343 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Light.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Regular.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Regular.pfb new file mode 100644 index 00000000000..47063b33757 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Regular.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Semibold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Semibold.pfb new file mode 100644 index 00000000000..b2240054c48 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolE-Semibold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Bold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Bold.pfb new file mode 100644 index 00000000000..e971e2a70b0 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Bold.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Light.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Light.pfb new file mode 100644 index 00000000000..97fc16fd15f Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Light.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Regular.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Regular.pfb new file mode 100644 index 00000000000..5e8f92e37b8 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Regular.pfb differ diff --git a/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Semibold.pfb b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Semibold.pfb new file mode 100644 index 00000000000..c82775c6f32 Binary files /dev/null and b/Master/texmf-dist/fonts/type1/public/mdsymbol/MdSymbolF-Semibold.pfb differ diff --git a/Master/texmf-dist/source/latex/mdsymbol/mdsymbol.dtx b/Master/texmf-dist/source/latex/mdsymbol/mdsymbol.dtx new file mode 100644 index 00000000000..7fdafd14e40 --- /dev/null +++ b/Master/texmf-dist/source/latex/mdsymbol/mdsymbol.dtx @@ -0,0 +1,3666 @@ +% \iffalse meta-comment +% +% Copyright (c) 2011 by Sebastian Schubert +% +% 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 Sebastian Schubert. +% +% This work consists of the files mdsymbol.dtx, mdsymbol.ins +% and the derived files mdsymbol.pdf and mdsymbol.sty. +% +% \fi +% +%\iffalse +%<*driver> +\ProvidesFile{mdsymbol.dtx}[2012/01/07 v0.3 MdSymbol support package] +% +% +% \end{macrocode} +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/mdsymbol/mdsymbol.ins b/Master/texmf-dist/source/latex/mdsymbol/mdsymbol.ins new file mode 100644 index 00000000000..294efd61f8c --- /dev/null +++ b/Master/texmf-dist/source/latex/mdsymbol/mdsymbol.ins @@ -0,0 +1,53 @@ +% +% Copyright (c) 2011 by Sebastian Schubert +% +% 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 Sebastian Schubert. +% +% This work consists of the files mdsymbol.dtx, mdsymbol.ins +% and the derived files mdsymbol.pdf and mdsymbol.sty. +% + +\input docstrip.tex + +\preamble + +Copyright (c) 2011 by Sebastian Schubert + +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 Sebastian Schubert. + +This work consists of the files mdsymbol.dtx, mdsymbol.ins +and the derived files mdsymbol.pdf and mdsymbol.sty. + +\endpreamble + +\postamble +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{% + \file{mdsymbol.sty}{\from{mdsymbol.dtx}{style}} +} + +\endbatchfile diff --git a/Master/texmf-dist/tex/latex/mdsymbol/mdsymbol.sty b/Master/texmf-dist/tex/latex/mdsymbol/mdsymbol.sty new file mode 100644 index 00000000000..dd07a817920 --- /dev/null +++ b/Master/texmf-dist/tex/latex/mdsymbol/mdsymbol.sty @@ -0,0 +1,2155 @@ +%% +%% This is file `mdsymbol.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mdsymbol.dtx (with options: `style') +%% +%% Copyright (c) 2011 by Sebastian Schubert +%% +%% 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 Sebastian Schubert. +%% +%% This work consists of the files mdsymbol.dtx, mdsymbol.ins +%% and the derived files mdsymbol.pdf and mdsymbol.sty. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{mdsymbol}[2012/01/07 v0.3 MdSymbol support package] +\RequirePackage{xkeyval} +\newcommand*\mdsy@choicekey[3]{% + \define@choicekey*{mdsymbol.sty}{#1}[\@tempa\@tempb]{#2}{#3}% +} +\define@boolkey{mdsymbol.sty}[mdsy@]{largedelims}[true]{} +\define@boolkey{mdsymbol.sty}[mdsy@]{retainmissing}[true]{} +\newcommand{\mdsy@scale}{1.0} +\define@key{mdsymbol.sty}{scale}{\renewcommand\mdsy@scale{#1}} +\define@boolkey{mdsymbol.sty}[mdsy@]{onlysansmath}[true]{} +\newcommand\mdsy@mweight@normal{Regular} +\newcommand\mdsy@mweight@small{Regular} +\newcommand\mdsy@bweight@normal{Semibold} +\newcommand\mdsy@bweight@small{Semibold} +\mdsy@choicekey{normalweight}{light,regular,autolight,autoregular}{% + \ifcase\@tempb\relax + \renewcommand\mdsy@mweight@normal{Light}% + \renewcommand\mdsy@mweight@small{Light}% + \or + \renewcommand\mdsy@mweight@normal{Regular}% + \renewcommand\mdsy@mweight@small{Regular}% + \or + \renewcommand\mdsy@mweight@normal{Light}% + \renewcommand\mdsy@mweight@small{Regular}% + \or + \renewcommand\mdsy@mweight@normal{Regular}% + \renewcommand\mdsy@mweight@small{Semibold}% + \fi +} +\mdsy@choicekey{boldweight}{semibold,bold,autosemibold}{% + \ifcase\@tempb\relax + \renewcommand\mdsy@bweight@normal{Semibold}% + \renewcommand\mdsy@bweight@small{Semibold}% + \or + \renewcommand\mdsy@bweight@normal{Bold}% + \renewcommand\mdsy@bweight@small{Bold}% + \or + \renewcommand\mdsy@bweight@normal{Semibold}% + \renewcommand\mdsy@bweight@small{Bold}% + \fi +} +\ExecuteOptionsX{largedelims=false,onlysansmath=false,retainmissing=false} +\ProcessOptionsX +\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}} +\@ifpackageloaded{textcomp}{}{\RequirePackage{textcomp}} +\newcommand*\mdsy@if@tabular@math[1]{% + \@ifundefined{mv@tabular}{}{#1}% +} +\ifmdsy@onlysansmath + \DeclareMathVersion{sans} + \DeclareMathVersion{sansbold} + \DeclareMathVersion{sanstabular} + \DeclareMathVersion{sansboldtabular} + + \newif\if@mdsy@sans@ + + \let\mathversion@old\mathversion + \def\sans@version{sans} + \def\sans@version@bold{sansbold} + \def\sans@version@tab{sanstabular} + \def\sans@version@bold@tab{sansboldtabular} + \renewcommand{\mathversion}[1]{% + \mathversion@old{#1}% + \@mdsy@sans@false% + \ifx\math@version\sans@version% + \@mdsy@sans@true% + \fi% + \ifx\math@version\sans@version@bold% + \@mdsy@sans@true% + \fi% + \ifx\math@version\sans@version@tab% + \@mdsy@sans@true% + \fi% + \ifx\math@version\sans@version@bold@tab% + \@mdsy@sans@true% + \fi% + } +\fi +\def\ifmathversionsans{% + \if@mdsy@sans@ + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\RequirePackage{etoolbox} + +\newcommand\mdsy@setslot[1]{\@tempcnta #1\relax} +\newcommand\mdsy@nextslot{\advance\@tempcnta 1\relax} +\newcommand\mdsy@prevslot{\advance\@tempcnta-1\relax} + +\newcommand\mdsy@@DeclareSymbol[4]{\expandafter\DeclareMathSymbol\expandafter{\csname#2\endcsname}{#3}{#4}{#1}} + +\ifmdsy@onlysansmath + \newcommand\mdsy@OrigSymbol@not@def{% + \PackageError{mdsymbol}{Symbol is only available in sans-like mathversions}{% + Define symbol before loading mdsymbol with the onlysansmath option} + } + \newcommand\mdsy@DeclareSymbol[3]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}} + \expandafter\mdsy@@DeclareSymbol\expandafter{\the\@tempcnta}{#1@sans}{#3}{#2}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}}% + \mdsy@nextslot + } + \newcommand\mdsy@DeclareDelimiter[4]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\DeclareMathDelimiter\expandafter{\csname #1@sans\endcsname}{#2}{#3}{#4}{#3}{#4}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}} + } + \newcommand\mdsy@DeclareOperator[3]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \csdef{#1@sans}{\DOTSB#3\slimits@} + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}} + } + \newcommand\mdsy@DeclareIntegral[3]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \csdef{#1@sans}{\DOTSI#3\ilimits@}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}} + } + \newcommand\mdsy@DeclareMathSymbol[4]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\DeclareMathSymbol\expandafter{\csname #1@sans\endcsname}{#2}{#3}{#4}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}} + } + \newcommand\mdsy@DeclareMathDelimiter[6]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\DeclareMathDelimiter\expandafter{\csname #1@sans\endcsname}{#2}{#3}{#4}{#5}{#6}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}} + } + \newcommand\mdsy@DeclareMathAccent[4]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\DeclareMathAccent\expandafter{\csname #1@sans\endcsname}{#2}{#3}{#4}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}} + } + \newcommand\mdsy@DeclareMathRadical[5]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\DeclareMathRadical\expandafter{\csname #1@sans\endcsname}{#2}{#3}{#4}{#5}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}} + } + \newcommand{\mdsy@DeclareActiveMathSymbol}[4]{% + \ifnum\mathcode`#1="8000 % + \errmessage{`#1' is already active}% + \fi + \expandafter\mathchardef\csname#1@old\endcsname=\mathcode`#1 % + \expandafter\DeclareMathSymbol\csname#1@new\endcsname{#2}{#3}{#4} + \begingroup + \lccode`\~=`#1 % + \lowercase{\endgroup + \def~% + }{\ifmathversionsans{\csname#1@new\endcsname}{\csname#1@old\endcsname}}% + \mathcode`#1="8000 % + } + \newcommand{\mdsy@DeclareActiveMathDelimiter}[4]{% + % don't know how to implement an active math delimiter; so declare + % it as an active math symbol instead + \mdsy@DeclareActiveMathSymbol{#1}{#2}{#3}{#4} + } + \newcommand{\mdsy@renewcommand}[2]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\newcommand\csname #1@sans\endcsname{#2}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}}% + } + \newcommand{\mdsy@DeclareRobustCommandArg}[3]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\DeclareRobustCommand\csname #1@sans\endcsname[#2]{#3}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}}% + } + \newcommand{\mdsy@DeclareRobustCommand}[2]{% + \ifcsdef{#1}{% + \csletcs{#1@old}{#1}% + }{\cslet{#1@old}{\mdsy@OrigSymbol@not@def}}% + \expandafter\DeclareRobustCommand\csname #1@sans\endcsname{#2}% + \csundef{#1}% + \csdef{#1}{\ifmathversionsans{\csname #1@sans\endcsname}{\csname#1@old\endcsname}}% + } +\else + \let\ifmathversionsans\undefined + \newcommand\mdsy@DeclareSymbol[3]{% + \csundef{#1}% + \expandafter\mdsy@@DeclareSymbol\expandafter{\the\@tempcnta}{#1}{#3}{#2}% + \mdsy@nextslot + } + \newcommand\mdsy@DeclareDelimiter[4]{% + \csundef{#1}% + \expandafter\DeclareMathDelimiter\expandafter{\csname#1\endcsname}{#2}{#3}{#4}{#3}{#4}% + } + \newcommand\mdsy@DeclareOperator[3]{% + \csdef{#1}{\DOTSB#3\slimits@}% + } + \newcommand\mdsy@DeclareIntegral[3]{% + \csdef{#1}{\DOTSI#3\ilimits@}% + } + \newcommand\mdsy@DeclareMathSymbol[4]{% + \expandafter\DeclareMathSymbol\expandafter{\csname#1\endcsname}{#2}{#3}{#4}% + } + \newcommand\mdsy@DeclareMathDelimiter[6]{% + \expandafter\DeclareMathDelimiter\expandafter{\csname#1\endcsname}{#2}{#3}{#4}{#5}{#6}% + } + \newcommand\mdsy@DeclareMathAccent[4]{% + \expandafter\DeclareMathAccent\expandafter{\csname#1\endcsname}{#2}{#3}{#4}% + } + \newcommand\mdsy@DeclareMathRadical[5]{% + \expandafter\DeclareMathRadical\expandafter{\csname#1\endcsname}{#2}{#3}{#4}{#5}% + } + \newcommand\mdsy@DeclareActiveMathSymbol[4]{% + \DeclareMathSymbol{#1}{#2}{#3}{#4}% + } + \newcommand\mdsy@DeclareActiveMathDelimiter[4]{% + \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}% + } + \newcommand{\mdsy@renewcommand}[2]{% + \expandafter\providecommand\csname #1\endcsname{#2}% + } + \newcommand{\mdsy@DeclareRobustCommand}[2]{% + \expandafter\DeclareRobustCommand\csname#1\endcsname{#2}% + } + \newcommand{\mdsy@DeclareRobustCommandArg}[3]{% + \expandafter\DeclareRobustCommand\csname#1\endcsname[#2]{#3}% + } +\fi + +\newcommand\mdsy@DeclareAlias[3]{\mdsy@prevslot\mdsy@DeclareSymbol{#1}{#2}{#3}} + +\newcommand\mdsy@DeclareOpen[3]{\mdsy@DeclareDelimiter{#1}{\mathopen}{#2}{#3}} +\newcommand\mdsy@DeclareClose[3]{\mdsy@DeclareDelimiter{#1}{\mathclose}{#2}{#3}} +\ifmdsy@largedelims + \mdsy@renewcommand{Big}{\bBigg@{1.25}} + \mdsy@renewcommand{bigg}{\bBigg@{1.66}} + \mdsy@renewcommand{Bigg}{\bBigg@{2.08}} +\fi +\ifmdsy@retainmissing +\else + \mdsy@DeclareRobustCommand{dagger}{\mdsy@text{\textdagger}} + \mdsy@DeclareRobustCommand{ddagger}{\mdsy@text{\textdaggerdbl}} + \mdsy@DeclareRobustCommand{mathparagraph}{\mdsy@text{\textparagraph}} + \mdsy@DeclareRobustCommand{mathsection}{\mdsy@text{\textsection}} + \mdsy@DeclareRobustCommand{mathdollar}{\mdsy@text{\textdollar}} + \mdsy@DeclareRobustCommand{mathsterling}{\mdsy@text{\textsterling}} + \mdsy@DeclareRobustCommand{yen}{\mdsy@text{\textyen}} + \mdsy@DeclareRobustCommand{circledR}{\mdsy@text{\textcircled{% + \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}} + \mdsy@DeclareRobustCommand{circledS}{\mdsy@text{\textcircled{% + \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont S}}} + \mdsy@DeclareRobustCommand{Re}{\mathfrak{R}} + \mdsy@DeclareRobustCommand{Im}{\mathfrak{I}} + \mdsy@DeclareRobustCommand{dotcong}{\mathrel{\dot{\cong}}} + \mdsy@DeclareRobustCommand{thicksim}{\mathrel{\text{\boldmath$\m@th\sim$}}} + \mdsy@DeclareRobustCommand{thickapprox}{\mathrel{\text{\boldmath$\m@th\approx$}}} + \mdsy@DeclareRobustCommand{hslash}{\middleslash h} + \mdsy@DeclareRobustCommand{centerdot}{\mathbin{\rule{0.15em}{0.15em}}} + \mdsy@DeclareRobustCommand{lambdabar}{\middlebar\lambda} + \mdsy@DeclareRobustCommand{lambdaslash}{\middleslash\lambda} + \@ifpackageloaded{MyriadPro}{}{% + \mdsy@DeclareRobustCommand{hbar}{\middlebar h}% + } +\fi +\ifmdsy@onlysansmath +\else + \let\mapstochar\undefined + \let\lhook\undefined + \let\rhook\undefined +\fi +\DeclareFontFamily{U}{MdSymbolA}{} +\DeclareFontFamily{U}{MdSymbolB}{} +\DeclareFontFamily{U}{MdSymbolC}{} +\DeclareFontFamily{U}{MdSymbolD}{} +\DeclareFontFamily{U}{MdSymbolE}{} +\DeclareFontFamily{U}{MdSymbolF}{} + +\RequirePackage{fltpoint} +\fpDecimalSign{.} +\newcommand*{\mdsy@calc@bsize}[2]{\fpDiv{#1}{#2}{\mdsy@scale}} + +\mdsy@calc@bsize{\mdsy@s@medium}{6} +\mdsy@calc@bsize{\mdsy@s@bold}{6} + +\DeclareFontShape{U}{MdSymbolA}{m}{n}{ + < -\mdsy@s@medium> s * [\mdsy@scale] MdSymbolA-\mdsy@mweight@small + <\mdsy@s@medium- > s * [\mdsy@scale] MdSymbolA-\mdsy@mweight@normal +}{} +\DeclareFontShape{U}{MdSymbolA}{b}{n}{ + < - \mdsy@s@bold> s * [\mdsy@scale] MdSymbolA-\mdsy@bweight@small + <\mdsy@s@bold - > s * [\mdsy@scale] MdSymbolA-\mdsy@bweight@normal +}{} +\DeclareFontShape{U}{MdSymbolB}{m}{n}{ + < -\mdsy@s@medium> s * [\mdsy@scale] MdSymbolB-\mdsy@mweight@small + <\mdsy@s@medium- > s * [\mdsy@scale] MdSymbolB-\mdsy@mweight@normal +}{} +\DeclareFontShape{U}{MdSymbolB}{b}{n}{ + < - \mdsy@s@bold> s * [\mdsy@scale] MdSymbolB-\mdsy@bweight@small + <\mdsy@s@bold - > s * [\mdsy@scale] MdSymbolB-\mdsy@bweight@normal +}{} +\DeclareFontShape{U}{MdSymbolC}{m}{n}{ + < -\mdsy@s@medium> s * [\mdsy@scale] MdSymbolC-\mdsy@mweight@small + <\mdsy@s@medium- > s * [\mdsy@scale] MdSymbolC-\mdsy@mweight@normal +}{} +\DeclareFontShape{U}{MdSymbolC}{b}{n}{ + < - \mdsy@s@bold> s * [\mdsy@scale] MdSymbolC-\mdsy@bweight@small + <\mdsy@s@bold - > s * [\mdsy@scale] MdSymbolC-\mdsy@bweight@normal +}{} +\DeclareFontShape{U}{MdSymbolD}{m}{n}{ + < -\mdsy@s@medium> s * [\mdsy@scale] MdSymbolD-\mdsy@mweight@small + <\mdsy@s@medium- > s * [\mdsy@scale] MdSymbolD-\mdsy@mweight@normal +}{} +\DeclareFontShape{U}{MdSymbolD}{b}{n}{ + < - \mdsy@s@bold> s * [\mdsy@scale] MdSymbolD-\mdsy@bweight@small + <\mdsy@s@bold - > s * [\mdsy@scale] MdSymbolD-\mdsy@bweight@normal +}{} +\DeclareFontShape{U}{MdSymbolE}{m}{n}{ + < -\mdsy@s@medium> s * [\mdsy@scale] MdSymbolE-\mdsy@mweight@small + <\mdsy@s@medium- > s * [\mdsy@scale] MdSymbolE-\mdsy@mweight@normal +}{} +\DeclareFontShape{U}{MdSymbolE}{b}{n}{ + < - \mdsy@s@bold> s * [\mdsy@scale] MdSymbolE-\mdsy@bweight@small + <\mdsy@s@bold - > s * [\mdsy@scale] MdSymbolE-\mdsy@bweight@normal +}{} +\DeclareFontShape{U}{MdSymbolF}{m}{n}{ + < -\mdsy@s@medium> s * [\mdsy@scale] MdSymbolF-\mdsy@mweight@small + <\mdsy@s@medium- > s * [\mdsy@scale] MdSymbolF-\mdsy@mweight@normal +}{} +\DeclareFontShape{U}{MdSymbolF}{b}{n}{ + < - \mdsy@s@bold> s * [\mdsy@scale] MdSymbolF-\mdsy@bweight@small + <\mdsy@s@bold - > s * [\mdsy@scale] MdSymbolF-\mdsy@bweight@normal +}{} + +\newcommand\IfUndefSymbolFont[3]{\@ifundefined{sym#1}{#2}{#3}} +\newcommand{\mdsy@DeclareSymbolFont}[3]{% + \IfUndefSymbolFont{#1}{% + \DeclareSymbolFont{#1}{#2}{#3}{m}{n} + }{% + \ifmdsy@onlysansmath% + \SetSymbolFont{#1}{sans}{#2}{#3}{m}{n}% + \SetSymbolFont{#1}{sanstabular}{#2}{#3}{m}{n}% + \else% + \SetSymbolFont{#1}{normal}{#2}{#3}{m}{n}% + \mdsy@if@tabular@math{\SetSymbolFont{#1}{tabular}{#2}{#3}{m}{n}}% + \fi% + } + \ifmdsy@onlysansmath% + \SetSymbolFont{#1}{sansbold}{#2}{#3}{b}{n}% + \SetSymbolFont{#1}{sansboldtabular}{#2}{#3}{b}{n}% + \else% + \SetSymbolFont{#1}{bold}{#2}{#3}{b}{n}% + \mdsy@if@tabular@math{\SetSymbolFont{#1}{boldtabular}{#2}{#3}{b}{n}}% + \fi% +} + +\mdsy@DeclareSymbolFont{symbols}{U}{MdSymbolA} +\mdsy@DeclareSymbolFont{relations}{U}{MdSymbolB} +\mdsy@DeclareSymbolFont{arrows}{U}{MdSymbolC} +\mdsy@DeclareSymbolFont{narrows}{U}{MdSymbolD} +\mdsy@DeclareSymbolFont{largesymbols}{U}{MdSymbolE} +\mdsy@DeclareSymbolFont{delimiters}{U}{MdSymbolF} + +\def\mdsy@bold{bold} +\newcommand*\mdsy@text[1]{% + \ifx\mdsy@bold\math@version + \text{\sffamily\bfseries#1}% + \else + \text{\sffamily\mdseries#1}% + \fi +} +\mdsy@setslot{0} +\mdsy@DeclareSymbol{cdot}{symbols}{\mathbin} + \mdsy@DeclareAlias{cdotp}{symbols}{\mathpunct} +\mdsy@DeclareSymbol{hdotdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{vdotdot}{symbols}{\mathbin} + \mdsy@DeclareAlias{colon}{symbols}{\mathpunct} + \mdsy@DeclareAlias{mathcolon}{symbols}{\mathpunct} + \mdsy@DeclareAlias{mathratio}{symbols}{\mathrel} +\mdsy@DeclareSymbol{udotdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{ddotdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{hdots}{symbols}{\mathord} + \mdsy@DeclareAlias{@cdots}{symbols}{\mathinner} + \mdsy@DeclareAlias{cdots}{symbols}{\mathinner} +\mdsy@DeclareSymbol{@vdots}{symbols}{\mathord} +\mdsy@DeclareRobustCommand{vdots}{\ifmmode\@vdots\else\hbox{$\@vdots$}\fi} +\mdsy@DeclareSymbol{udots}{symbols}{\mathord} + \mdsy@DeclareAlias{adots}{symbols}{\mathord} +\mdsy@DeclareSymbol{ddots}{symbols}{\mathord} +\mdsy@DeclareSymbol{righttherefore}{symbols}{\mathord} +\mdsy@DeclareSymbol{uptherefore}{symbols}{\mathord} + \mdsy@DeclareAlias{therefore}{symbols}{\mathord} +\mdsy@DeclareSymbol{lefttherefore}{symbols}{\mathord} +\mdsy@DeclareSymbol{downtherefore}{symbols}{\mathord} + \mdsy@DeclareAlias{because}{symbols}{\mathord} +\mdsy@DeclareSymbol{squaredots}{symbols}{\mathord} + \mdsy@DeclareAlias{Colon}{symbols}{\mathrel} +\mdsy@DeclareSymbol{minus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medslash}{symbols}{\mathbin} + \mdsy@DeclareAlias{smalldivslash}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medbackslash}{symbols}{\mathbin} + \mdsy@DeclareAlias{smallsetminus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{plus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{times}{symbols}{\mathbin} +\mdsy@DeclareSymbol{dotminus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{minusdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{div}{symbols}{\mathbin} +\mdsy@DeclareSymbol{minusfdots}{symbols}{\mathbin} +\mdsy@DeclareSymbol{minusrdots}{symbols}{\mathbin} +\mdsy@DeclareSymbol{dotsminusdots}{symbols}{\mathrel} +\mdsy@DeclareSymbol{pm}{symbols}{\mathbin} +\mdsy@DeclareSymbol{mp}{symbols}{\mathbin} +\mdsy@DeclareSymbol{dotplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{plusdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{dottimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{timesbar}{symbols}{\mathbin} +\mdsy@DeclareSymbol{divideontimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{neg}{symbols}{\mathord} + \mdsy@DeclareAlias{lnot}{symbols}{\mathord} + \mdsy@DeclareAlias{minushookdown}{symbols}{\mathbin} +\mdsy@DeclareSymbol{backneg}{symbols}{\mathord} + \mdsy@DeclareAlias{hookdownminus}{symbols}{\mathbin} + \mdsy@DeclareAlias{invneg}{symbols}{\mathord} + \mdsy@DeclareAlias{invnot}{symbols}{\mathord} +\mdsy@DeclareSymbol{intprod}{symbols}{\mathbin} + \mdsy@DeclareAlias{minushookup}{symbols}{\mathbin} + \mdsy@DeclareAlias{turnedneg}{symbols}{\mathord} + \mdsy@DeclareAlias{turnednot}{symbols}{\mathord} +\mdsy@DeclareSymbol{intprodr}{symbols}{\mathbin} + \mdsy@DeclareAlias{hookupminus}{symbols}{\mathbin} + \mdsy@DeclareAlias{turnedbackneg}{symbols}{\mathord} +\mdsy@DeclareSymbol{leftthreetimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{rightthreetimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{dtimes}{symbols}{\mathbin} + \mdsy@DeclareAlias{btimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{rtimes}{symbols}{\mathbin} + \mdsy@DeclareAlias{rJoin}{symbols}{\mathrel} +\mdsy@DeclareSymbol{utimes}{symbols}{\mathbin} + \mdsy@DeclareAlias{ttimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{ltimes}{symbols}{\mathbin} + \mdsy@DeclareAlias{lJoin}{symbols}{\mathrel} +\mdsy@DeclareSymbol{bowtie}{symbols}{\mathrel} + \mdsy@DeclareAlias{Join}{symbols}{\mathrel} + \mdsy@DeclareAlias{lrtimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{upbowtie}{symbols}{\mathbin} + \mdsy@DeclareAlias{hourglass}{symbols}{\mathbin} +\mdsy@DeclareSymbol{rightY}{symbols}{\mathbin} +\mdsy@DeclareSymbol{upY}{symbols}{\mathbin} +\mdsy@DeclareSymbol{leftY}{symbols}{\mathbin} +\mdsy@DeclareSymbol{downY}{symbols}{\mathbin} +\mdsy@DeclareSymbol{wedge}{symbols}{\mathbin} + \mdsy@DeclareAlias{land}{symbols}{\mathbin} +\mdsy@DeclareSymbol{vee}{symbols}{\mathbin} + \mdsy@DeclareAlias{lor}{symbols}{\mathbin} +\mdsy@DeclareSymbol{wedgedot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{veedot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{doublewedge}{symbols}{\mathbin} + \mdsy@DeclareAlias{wedgeonwedge}{symbols}{\mathbin} +\mdsy@DeclareSymbol{doublevee}{symbols}{\mathbin} + \mdsy@DeclareAlias{veeonvee}{symbols}{\mathbin} +\mdsy@DeclareSymbol{curlywedge}{symbols}{\mathbin} +\mdsy@DeclareSymbol{curlyvee}{symbols}{\mathbin} +\mdsy@DeclareSymbol{barwedge}{symbols}{\mathbin} +\mdsy@DeclareSymbol{veebar}{symbols}{\mathbin} +\mdsy@DeclareSymbol{doublebarwedge}{symbols}{\mathbin} +\mdsy@DeclareSymbol{veedoublebar}{symbols}{\mathbin} +\mdsy@DeclareSymbol{cup}{symbols}{\mathbin} +\mdsy@DeclareSymbol{cap}{symbols}{\mathbin} +\mdsy@DeclareSymbol{doublecup}{symbols}{\mathbin} + \mdsy@DeclareAlias{Cup}{symbols}{\mathbin} +\mdsy@DeclareSymbol{doublecap}{symbols}{\mathbin} + \mdsy@DeclareAlias{Cap}{symbols}{\mathbin} +\mdsy@DeclareSymbol{cupdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{capdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{cupplus}{symbols}{\mathbin} + \mdsy@DeclareAlias{uplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{capplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{sqcup}{symbols}{\mathbin} +\mdsy@DeclareSymbol{sqcap}{symbols}{\mathbin} +\mdsy@DeclareSymbol{doublesqcup}{symbols}{\mathbin} + \mdsy@DeclareAlias{Sqcup}{symbols}{\mathbin} +\mdsy@DeclareSymbol{doublesqcap}{symbols}{\mathbin} + \mdsy@DeclareAlias{Sqcap}{symbols}{\mathbin} +\mdsy@DeclareSymbol{sqcupdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{sqcapdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{sqcupplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{sqcapplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{pullback}{symbols}{\mathbin} +\mdsy@DeclareSymbol{pushout}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smalltriangleright}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smalltriangleup}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smalltriangleleft}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smalltriangledown}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblacktriangleright}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblacktriangleup}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblacktriangleleft}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblacktriangledown}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medtriangleright}{symbols}{\mathbin} + \mdsy@DeclareAlias{triangleright}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medtriangleup}{symbols}{\mathbin} + \mdsy@DeclareAlias{triangle}{symbols}{\mathbin} + \mdsy@DeclareAlias{vartriangle}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medtriangleleft}{symbols}{\mathbin} + \mdsy@DeclareAlias{triangleleft}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medtriangledown}{symbols}{\mathbin} + \mdsy@DeclareAlias{triangledown}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblacktriangleright}{symbols}{\mathbin} + \mdsy@DeclareAlias{blacktriangleright}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblacktriangleup}{symbols}{\mathbin} + \mdsy@DeclareAlias{blacktriangle}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblacktriangleleft}{symbols}{\mathbin} + \mdsy@DeclareAlias{blacktriangleleft}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblacktriangledown}{symbols}{\mathbin} + \mdsy@DeclareAlias{blacktriangledown}{symbols}{\mathbin} +\mdsy@DeclareSymbol{largetriangleup}{symbols}{\mathord} + \mdsy@DeclareAlias{bigtriangleup}{symbols}{\mathbin} +\mdsy@DeclareSymbol{largetriangledown}{symbols}{\mathord} + \mdsy@DeclareAlias{bigtriangledown}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallcircle}{symbols}{\mathbin} + \mdsy@DeclareAlias{circ}{symbols}{\mathbin} + \mdsy@DeclareAlias{smwhtcircle}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblackcircle}{symbols}{\mathbin} + \mdsy@DeclareAlias{bullet}{symbols}{\mathbin} + \mdsy@DeclareAlias{smblkcircle}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medcircle}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdlgwhtcircle}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblackcircle}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdlgblkcircle}{symbols}{\mathbin} +\mdsy@DeclareSymbol{ominus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{overt}{symbols}{\mathbin} + \mdsy@DeclareAlias{circledvert}{symbols}{\mathbin} +\mdsy@DeclareSymbol{oslash}{symbols}{\mathbin} +\mdsy@DeclareSymbol{obackslash}{symbols}{\mathbin} + \mdsy@DeclareAlias{obslash}{symbols}{\mathbin} +\mdsy@DeclareSymbol{oplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{otimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{odot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{ocirc}{symbols}{\mathbin} + \mdsy@DeclareAlias{circledcirc}{symbols}{\mathbin} +\mdsy@DeclareSymbol{oast}{symbols}{\mathbin} + \mdsy@DeclareAlias{circledast}{symbols}{\mathbin} +\mdsy@DeclareSymbol{odash}{symbols}{\mathbin} + \mdsy@DeclareAlias{circleddash}{symbols}{\mathbin} +\mdsy@DeclareSymbol{oequal}{symbols}{\mathbin} + \mdsy@DeclareAlias{circledequal}{symbols}{\mathbin} +\mdsy@DeclareSymbol{emptyset}{symbols}{\mathord} + \mdsy@DeclareAlias{diameter}{symbols}{\mathord} + \mdsy@DeclareAlias{varnothing}{symbols}{\mathord} +\mdsy@DeclareSymbol{revemptyset}{symbols}{\mathord} +\mdsy@DeclareSymbol{largecircle}{symbols}{\mathord} + \mdsy@DeclareAlias{bigcirc}{symbols}{\mathord} + \mdsy@DeclareAlias{lgwhtcircle}{symbols}{\mathord} +\mdsy@DeclareSymbol{largeblackcircle}{symbols}{\mathord} + \mdsy@DeclareAlias{lgblkcircle}{symbols}{\mathord} +\mdsy@DeclareSymbol{smallsquare}{symbols}{\mathbin} + \mdsy@DeclareAlias{smwhtsquare}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblacksquare}{symbols}{\mathbin} + \mdsy@DeclareAlias{smblksquare}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medsquare}{symbols}{\mathbin} + \mdsy@DeclareAlias{square}{symbols}{\mathbin} + \mdsy@DeclareAlias{Box}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdlgwhtsquare}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdwhtsquare}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblacksquare}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdlgblksquare}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdblksquare}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxminus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxvert}{symbols}{\mathbin} + \mdsy@DeclareAlias{boxbar}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxslash}{symbols}{\mathbin} + \mdsy@DeclareAlias{boxdiag}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxbackslash}{symbols}{\mathbin} + \mdsy@DeclareAlias{boxbslash}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxtimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{boxbox}{symbols}{\mathbin} +\mdsy@DeclareSymbol{largesquare}{symbols}{\mathord} + \mdsy@DeclareAlias{lgwhtsquare}{symbols}{\mathord} +\mdsy@DeclareSymbol{largeblacksquare}{symbols}{\mathord} + \mdsy@DeclareAlias{lgblksquare}{symbols}{\mathord} +\mdsy@DeclareSymbol{smalldiamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{diamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{smwhtdiamond}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblackdiamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{blackdiamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{smblkdiamond}{symbols}{\mathbin} +\mdsy@DeclareSymbol{meddiamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{Diamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdlgwhtdiamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdwhtdiamond}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblackdiamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdlgblkdiamond}{symbols}{\mathbin} + \mdsy@DeclareAlias{mdblkdiamond}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamondminus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamondvert}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamondslash}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamondbackslash}{symbols}{\mathbin} + \mdsy@DeclareAlias{diamondbslash}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamondplus}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamondtimes}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamonddot}{symbols}{\mathbin} + \mdsy@DeclareAlias{diamondcdot}{symbols}{\mathbin} +\mdsy@DeclareSymbol{diamonddiamond}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smalllozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{smwhtlozenge}{symbols}{\mathord} +\mdsy@DeclareSymbol{smallblacklozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{smblklozenge}{symbols}{\mathord} +\mdsy@DeclareSymbol{medlozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{lozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{mdlgwhtlozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{mdwhtlozenge}{symbols}{\mathord} +\mdsy@DeclareSymbol{medblacklozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{blacklozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{mdlgblklozenge}{symbols}{\mathord} + \mdsy@DeclareAlias{mdblklozenge}{symbols}{\mathord} +\mdsy@DeclareSymbol{lozengeminus}{symbols}{\mathord} +\mdsy@DeclareSymbol{smallwhitestar}{symbols}{\mathbin} + \mdsy@DeclareAlias{smwhitestar}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallblackstar}{symbols}{\mathbin} + \mdsy@DeclareAlias{star}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medwhitestar}{symbols}{\mathbin} +\mdsy@DeclareSymbol{medblackstar}{symbols}{\mathbin} + \mdsy@DeclareAlias{medstar}{symbols}{\mathbin} +\mdsy@DeclareSymbol{largewhitestar}{symbols}{\mathord} +\mdsy@DeclareSymbol{largeblackstar}{symbols}{\mathord} + \mdsy@DeclareAlias{bigstar}{symbols}{\mathord} +\mdsy@DeclareSymbol{ast}{symbols}{\mathbin} +\mdsy@DeclareSymbol{infty}{symbols}{\mathord} +\mdsy@DeclareSymbol{propto}{symbols}{\mathrel} + \mdsy@DeclareAlias{varpropto}{symbols}{\mathrel} +\mdsy@DeclareSymbol{backpropto}{symbols}{\mathrel} + \mdsy@DeclareAlias{propfrom}{symbols}{\mathrel} +\mdsy@DeclareSymbol{crossing}{symbols}{\mathrel} +\mdsy@DeclareSymbol{between}{symbols}{\mathrel} +\mdsy@DeclareSymbol{intercal}{symbols}{\mathbin} +\mdsy@DeclareSymbol{wreath}{symbols}{\mathbin} + \mdsy@DeclareAlias{wr}{symbols}{\mathbin} +\mdsy@DeclareSymbol{angle}{symbols}{\mathord} +\mdsy@DeclareSymbol{revangle}{symbols}{\mathord} +\mdsy@DeclareSymbol{measuredangle}{symbols}{\mathord} +\mdsy@DeclareSymbol{revmeasuredangle}{symbols}{\mathord} + \mdsy@DeclareAlias{measuredangleleft}{symbols}{\mathord} +\mdsy@DeclareSymbol{sphericalangle}{symbols}{\mathord} +\mdsy@DeclareSymbol{sphericalangleup}{symbols}{\mathord} +\mdsy@DeclareSymbol{sphericalangleleft}{symbols}{\mathord} + \mdsy@DeclareAlias{revsphericalangle}{symbols}{\mathord} + \mdsy@DeclareAlias{gtlpar}{symbols}{\mathord} +\mdsy@DeclareSymbol{sphericalangledown}{symbols}{\mathord} +\mdsy@DeclareSymbol{rightangle}{symbols}{\mathord} +\mdsy@DeclareSymbol{measuredrightangle}{symbols}{\mathord} +\mdsy@DeclareSymbol{rightanglesquare}{symbols}{\mathord} + \mdsy@DeclareAlias{rightanglesqr}{symbols}{\mathord} +\mdsy@DeclareSymbol{measuredrightangledot}{symbols}{\mathord} + \mdsy@DeclareAlias{rightanglemdot}{symbols}{\mathord} +\mdsy@DeclareSymbol{prime}{symbols}{\mathord} +\mdsy@DeclareSymbol{backprime}{symbols}{\mathord} +\mdsy@DeclareSymbol{smallprod}{symbols}{\mathop} +\mdsy@DeclareSymbol{smallcoprod}{symbols}{\mathop} + \mdsy@DeclareAlias{amalg}{symbols}{\mathbin} +\mdsy@DeclareSymbol{smallint}{symbols}{\mathop} +\mdsy@DeclareSymbol{checkmark}{symbols}{\mathord} +\mdsy@DeclareSymbol{lightning}{symbols}{\mathord} + \mdsy@DeclareAlias{downzigzagarrow}{symbols}{\mathord} +\mdsy@DeclareSymbol{diamondsuit}{symbols}{\mathord} +\mdsy@DeclareSymbol{vardiamondsuit}{symbols}{\mathord} +\mdsy@DeclareSymbol{heartsuit}{symbols}{\mathord} +\mdsy@DeclareSymbol{varheartsuit}{symbols}{\mathord} +\mdsy@DeclareSymbol{spadesuit}{symbols}{\mathord} +\mdsy@DeclareSymbol{clubsuit}{symbols}{\mathord} +\mdsy@DeclareSymbol{maltese}{symbols}{\mathord} +\mdsy@DeclareSymbol{starofdavid}{symbols}{\mathord} +\mdsy@DeclareSymbol{sector}{symbols}{\mathord} +\mdsy@DeclareSymbol{forall}{symbols}{\mathord} +\mdsy@DeclareSymbol{exists}{symbols}{\mathord} +\mdsy@DeclareSymbol{nexists}{symbols}{\mathord} +\mdsy@DeclareSymbol{Finv}{symbols}{\mathord} +\mdsy@DeclareSymbol{Game}{symbols}{\mathord} +\mdsy@DeclareSymbol{complement}{symbols}{\mathord} +\mdsy@DeclareSymbol{flat}{symbols}{\mathord} +\mdsy@DeclareSymbol{natural}{symbols}{\mathord} +\mdsy@DeclareSymbol{sharp}{symbols}{\mathord} +\mdsy@DeclareSymbol{aleph}{symbols}{\mathord} +\mdsy@DeclareSymbol{beth}{symbols}{\mathord} +\mdsy@DeclareSymbol{gimel}{symbols}{\mathord} +\mdsy@DeclareSymbol{daleth}{symbols}{\mathord} +\mdsy@DeclareSymbol{wp}{symbols}{\mathord} +\mdsy@DeclareSymbol{nabla}{symbols}{\mathord} +\mdsy@setslot{0} +\mdsy@DeclareSymbol{equal}{relations}{\mathrel} +\mdsy@DeclareSymbol{equiv}{relations}{\mathrel} +\mdsy@DeclareSymbol{sim}{relations}{\mathrel} +\mdsy@DeclareSymbol{backsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{approx}{relations}{\mathrel} +\mdsy@DeclareSymbol{triplesim}{relations}{\mathrel} + \mdsy@DeclareAlias{approxident}{relations}{\mathrel} +\mdsy@DeclareSymbol{simeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{backsimeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{eqsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{cong}{relations}{\mathrel} +\mdsy@DeclareSymbol{backcong}{relations}{\mathrel} +\mdsy@DeclareSymbol{approxeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{bumpeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{bumpeqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{Bumpeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{doteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{eqdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{Doteq}{relations}{\mathrel} + \mdsy@DeclareAlias{doteqdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{fallingdotseq}{relations}{\mathrel} +\mdsy@DeclareSymbol{risingdotseq}{relations}{\mathrel} +\mdsy@DeclareSymbol{coloneq}{relations}{\mathrel} + \mdsy@DeclareAlias{coloneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{eqcolon}{relations}{\mathrel} + \mdsy@DeclareAlias{eqqcolon}{relations}{\mathrel} +\mdsy@DeclareSymbol{smile}{relations}{\mathrel} + \mdsy@DeclareAlias{smallsmile}{relations}{\mathrel} +\mdsy@DeclareSymbol{frown}{relations}{\mathrel} + \mdsy@DeclareAlias{smallfrown}{relations}{\mathrel} +\mdsy@DeclareSymbol{smilefrown}{relations}{\mathrel} + \mdsy@DeclareAlias{asymp}{relations}{\mathrel} +\mdsy@DeclareSymbol{frownsmile}{relations}{\mathrel} + \mdsy@DeclareAlias{closure}{relations}{\mathrel} +\mdsy@DeclareSymbol{smileeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{frowneq}{relations}{\mathrel} + \mdsy@DeclareAlias{arceq}{relations}{\mathrel} +\mdsy@DeclareSymbol{eqcirc}{relations}{\mathrel} +\mdsy@DeclareSymbol{circeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{wedgeq}{relations}{\mathrel} + \mdsy@DeclareAlias{hateq}{relations}{\mathrel} +\mdsy@DeclareSymbol{veeeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{stareq}{relations}{\mathrel} +\mdsy@DeclareSymbol{triangleeq}{relations}{\mathrel} + \mdsy@DeclareAlias{triangleq}{relations}{\mathrel} +\mdsy@DeclareSymbol{in}{relations}{\mathrel} +\mdsy@DeclareSymbol{owns}{relations}{\mathrel} + \mdsy@DeclareAlias{ni}{relations}{\mathrel} +\mdsy@DeclareSymbol{less}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{leq}{relations}{\mathrel} + \mdsy@DeclareAlias{le}{relations}{\mathrel} +\mdsy@DeclareSymbol{geq}{relations}{\mathrel} + \mdsy@DeclareAlias{ge}{relations}{\mathrel} +\mdsy@DeclareSymbol{leqslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{geqslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{leqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{geqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{lesssim}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtrsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{lessapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtrapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{lessgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtrless}{relations}{\mathrel} +\mdsy@DeclareSymbol{lesseqgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtreqless}{relations}{\mathrel} +\mdsy@DeclareSymbol{lesseqqgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtreqqless}{relations}{\mathrel} +\mdsy@DeclareSymbol{lesseqslantgtr}{relations}{\mathrel} + \mdsy@DeclareAlias{lesg}{relations}{\mathrel} + \mdsy@DeclareAlias{lesseqgtrslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtreqslantless}{relations}{\mathrel} + \mdsy@DeclareAlias{gesl}{relations}{\mathrel} + \mdsy@DeclareAlias{gtreqlessslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{ll}{relations}{\mathrel} +\mdsy@DeclareSymbol{gg}{relations}{\mathrel} +\mdsy@DeclareSymbol{lll}{relations}{\mathrel} + \mdsy@DeclareAlias{llless}{relations}{\mathrel} +\mdsy@DeclareSymbol{ggg}{relations}{\mathrel} + \mdsy@DeclareAlias{gggtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{lessclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{lhd}{relations}{\mathbin} + \mdsy@DeclareAlias{vartriangleleft}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtrclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{rhd}{relations}{\mathbin} + \mdsy@DeclareAlias{vartriangleright}{relations}{\mathrel} +\mdsy@DeclareSymbol{leqclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{unlhd}{relations}{\mathbin} + \mdsy@DeclareAlias{trianglelefteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{geqclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{unrhd}{relations}{\mathbin} + \mdsy@DeclareAlias{trianglerighteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{lesscc}{relations}{\mathrel} + \mdsy@DeclareAlias{ltcc}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtrcc}{relations}{\mathrel} + \mdsy@DeclareAlias{gtcc}{relations}{\mathrel} +\mdsy@DeclareSymbol{leqslcc}{relations}{\mathrel} + \mdsy@DeclareAlias{lescc}{relations}{\mathrel} +\mdsy@DeclareSymbol{geqslcc}{relations}{\mathrel} + \mdsy@DeclareAlias{gescc}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsubset}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsupset}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsubseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsupseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsubseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsupseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{Sqsubset}{relations}{\mathrel} +\mdsy@DeclareSymbol{Sqsupset}{relations}{\mathrel} +\mdsy@DeclareSymbol{subset}{relations}{\mathrel} +\mdsy@DeclareSymbol{supset}{relations}{\mathrel} +\mdsy@DeclareSymbol{subseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{supseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{subseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{supseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{Subset}{relations}{\mathrel} +\mdsy@DeclareSymbol{Supset}{relations}{\mathrel} +\mdsy@DeclareSymbol{prec}{relations}{\mathrel} +\mdsy@DeclareSymbol{succ}{relations}{\mathrel} +\mdsy@DeclareSymbol{preceq}{relations}{\mathrel} +\mdsy@DeclareSymbol{succeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{preccurlyeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{succcurlyeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{preceqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{succeqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{precsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{succsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{precapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{succapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{lessdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{gtrdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{leqdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{geqdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{leqslantdot}{relations}{\mathrel} + \mdsy@DeclareAlias{lesdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{geqslantdot}{relations}{\mathrel} + \mdsy@DeclareAlias{gesdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{eqslantless}{relations}{\mathrel} +\mdsy@DeclareSymbol{eqslantgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{curlyeqprec}{relations}{\mathrel} +\mdsy@DeclareSymbol{curlyeqsucc}{relations}{\mathrel} +\mdsy@DeclareSymbol{nequal}{relations}{\mathrel} + \mdsy@DeclareAlias{neq}{relations}{\mathrel} + \mdsy@DeclareAlias{ne}{relations}{\mathrel} +\mdsy@DeclareSymbol{nequiv}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{nbacksim}{relations}{\mathrel} +\mdsy@DeclareSymbol{napprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{ntriplesim}{relations}{\mathrel} + \mdsy@DeclareAlias{napproxident}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsimeq}{relations}{\mathrel} + \mdsy@DeclareAlias{nsime}{relations}{\mathrel} +\mdsy@DeclareSymbol{nbacksimeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{neqsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{ncong}{relations}{\mathrel} +\mdsy@DeclareSymbol{nbackcong}{relations}{\mathrel} +\mdsy@DeclareSymbol{napproxeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nbumpeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nbumpeqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nBumpeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{ndoteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{neqdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{nDoteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nfallingdotseq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nrisingdotseq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsmile}{relations}{\mathrel} +\mdsy@DeclareSymbol{nfrown}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsmilefrown}{relations}{\mathrel} + \mdsy@DeclareAlias{nasymp}{relations}{\mathrel} +\mdsy@DeclareSymbol{nfrownsmile}{relations}{\mathrel} + \mdsy@DeclareAlias{nclosure}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsmileeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nfrowneq}{relations}{\mathrel} + \mdsy@DeclareAlias{narceq}{relations}{\mathrel} +\mdsy@DeclareSymbol{neqcirc}{relations}{\mathrel} +\mdsy@DeclareSymbol{ncirceq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nwedgeq}{relations}{\mathrel} + \mdsy@DeclareAlias{nhateq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nveeeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nstareq}{relations}{\mathrel} +\mdsy@DeclareSymbol{ntriangleeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nin}{relations}{\mathrel} + \mdsy@DeclareAlias{notin}{relations}{\mathrel} +\mdsy@DeclareSymbol{nowns}{relations}{\mathrel} + \mdsy@DeclareAlias{nni}{relations}{\mathrel} +\mdsy@DeclareSymbol{nless}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{nleq}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nleqslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngeqslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{nleqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngeqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlesssim}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtrsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlessapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtrapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlessgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtrless}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlesseqgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtreqless}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlesseqqgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtreqqless}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlesseqslantgtr}{relations}{\mathrel} + \mdsy@DeclareAlias{nlesg}{relations}{\mathrel} + \mdsy@DeclareAlias{nlesseqgtrslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtreqslantless}{relations}{\mathrel} + \mdsy@DeclareAlias{ngesl}{relations}{\mathrel} + \mdsy@DeclareAlias{ngtreqlessslant}{relations}{\mathrel} +\mdsy@DeclareSymbol{nll}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngg}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlll}{relations}{\mathrel} +\mdsy@DeclareSymbol{nggg}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlessclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{ntriangleleft}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtrclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{ntriangleright}{relations}{\mathrel} +\mdsy@DeclareSymbol{nleqclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{ntrianglelefteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngeqclosed}{relations}{\mathrel} + \mdsy@DeclareAlias{ntrianglerighteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlesscc}{relations}{\mathrel} + \mdsy@DeclareAlias{nltcc}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtrcc}{relations}{\mathrel} + \mdsy@DeclareAlias{ngtcc}{relations}{\mathrel} +\mdsy@DeclareSymbol{nleqslcc}{relations}{\mathrel} + \mdsy@DeclareAlias{nlescc}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngeqslcc}{relations}{\mathrel} + \mdsy@DeclareAlias{ngescc}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsqsubset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsqsupset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsqsubseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsqsupseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsqsubseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsqsupseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nSqsubset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nSqsupset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsubset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsupset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsubseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsupseteq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsubseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsupseteqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nSubset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nSupset}{relations}{\mathrel} +\mdsy@DeclareSymbol{nprec}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsucc}{relations}{\mathrel} +\mdsy@DeclareSymbol{npreceq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsucceq}{relations}{\mathrel} +\mdsy@DeclareSymbol{npreccurlyeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsucccurlyeq}{relations}{\mathrel} +\mdsy@DeclareSymbol{npreceqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsucceqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{nprecsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsuccsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{nprecapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{nsuccapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{nlessdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngtrdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{nleqdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngeqdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{nleqslantdot}{relations}{\mathrel} + \mdsy@DeclareAlias{nlesdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{ngeqslantdot}{relations}{\mathrel} + \mdsy@DeclareAlias{ngesdot}{relations}{\mathrel} +\mdsy@DeclareSymbol{neqslantless}{relations}{\mathrel} +\mdsy@DeclareSymbol{neqslantgtr}{relations}{\mathrel} +\mdsy@DeclareSymbol{ncurlyeqprec}{relations}{\mathrel} +\mdsy@DeclareSymbol{ncurlyeqsucc}{relations}{\mathrel} +\mdsy@DeclareSymbol{simneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{backsimneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{lneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{gneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{lneqq}{relations}{\mathrel} + \mdsy@DeclareAlias{lvertneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{gneqq}{relations}{\mathrel} + \mdsy@DeclareAlias{gvertneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{lnsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{gnsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{lnapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{gnapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsubsetneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsupsetneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsubsetneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{sqsupsetneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{subsetneq}{relations}{\mathrel} + \mdsy@DeclareAlias{varsubsetneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{supsetneq}{relations}{\mathrel} + \mdsy@DeclareAlias{varsupsetneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{subsetneqq}{relations}{\mathrel} + \mdsy@DeclareAlias{varsubsetneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{supsetneqq}{relations}{\mathrel} + \mdsy@DeclareAlias{varsupsetneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{precneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{succneq}{relations}{\mathrel} +\mdsy@DeclareSymbol{precneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{succneqq}{relations}{\mathrel} +\mdsy@DeclareSymbol{precnsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{succnsim}{relations}{\mathrel} +\mdsy@DeclareSymbol{precnapprox}{relations}{\mathrel} +\mdsy@DeclareSymbol{succnapprox}{relations}{\mathrel} +\mdsy@setslot{0} +\mdsy@DeclareSymbol{rightarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{to}{arrows}{\mathrel} +\mdsy@nextslot %uparrow defined below +\mdsy@DeclareSymbol{leftarrow}{arrows}{\mathrel} +\mdsy@DeclareAlias{gets}{arrows}{\mathrel} +\mdsy@nextslot %downarrow defined below +\mdsy@DeclareSymbol{nearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{searrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Rightarrow}{arrows}{\mathrel} +\mdsy@nextslot %Uparrow defined below +\mdsy@DeclareSymbol{Leftarrow}{arrows}{\mathrel} +\mdsy@nextslot %Downarrow defined below +\mdsy@DeclareSymbol{Nearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Nwarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Swarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Searrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightarrow}{arrows}{\mathrel} +\mdsy@nextslot %updownarrow defined below +\mdsy@DeclareSymbol{neswarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwsearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Leftrightarrow}{arrows}{\mathrel} +\mdsy@nextslot %Updownarrow defined below +\mdsy@DeclareSymbol{Neswarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Nwsearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheadrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheaduparrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheadleftarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheaddownarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheadnearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheadnwarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheadswarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{twoheadsearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightarrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{uparrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftarrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downarrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nearrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwarrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swarrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{searrowtail}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{mapsto}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{mapsup}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{mapsfrom}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{mapsdown}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Rightmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{Mapsto}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Upmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{Mapsup}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Leftmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{Mapsfrom}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Downmapsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{Mapsdown}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hookrightarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhookrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hookuparrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhookuparrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhookleftarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhookleftarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhookdownarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhookdownarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhooknearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhooknearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hooknwarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{hknwarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhooknwarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhookswarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhookswarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hooksearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{hksearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{lhooksearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhookrightarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhookrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhookuparrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhookuparrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hookleftarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhookleftarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hookdownarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhookdownarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hooknearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{hknearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhooknearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhooknwarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhooknwarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{hookswarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{hkswarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhookswarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varhooksearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rhooksearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightharpoonup}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upharpoonleft}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftharpoondown}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downharpoonright}{arrows}{\mathrel} +\mdsy@DeclareSymbol{neharpoonnw}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwharpoonsw}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swharpoonse}{arrows}{\mathrel} +\mdsy@DeclareSymbol{seharpoonne}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightharpoondown}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upharpoonright}{arrows}{\mathrel} + \mdsy@DeclareAlias{restriction}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftharpoonup}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downharpoonleft}{arrows}{\mathrel} +\mdsy@DeclareSymbol{neharpoonse}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwharpoonne}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swharpoonnw}{arrows}{\mathrel} +\mdsy@DeclareSymbol{seharpoonsw}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightharpoonupdown}{arrows}{\mathrel} +\mdsy@DeclareSymbol{updownharpoonleftright}{arrows}{\mathrel} +\mdsy@DeclareSymbol{neswharpoonnwse}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwseharpoonnesw}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightharpoondownup}{arrows}{\mathrel} +\mdsy@DeclareSymbol{updownharpoonrightleft}{arrows}{\mathrel} +\mdsy@DeclareSymbol{neswharpoonsenw}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwseharpoonswne}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightleftharpoons}{arrows}{\mathrel} +\mdsy@DeclareSymbol{updownharpoons}{arrows}{\mathrel} + \mdsy@DeclareAlias{updownharpoonsleftright}{arrows}{\mathrel} +\mdsy@DeclareSymbol{neswharpoons}{arrows}{\mathrel} +\mdsy@DeclareSymbol{senwharpoons}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightharpoons}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downupharpoons}{arrows}{\mathrel} + \mdsy@DeclareAlias{downupharpoonsleftright}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swneharpoons}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwseharpoons}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightbkarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{dasharrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{dashrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upbkarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftbkarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{dashleftarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downbkarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nebkarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwbkarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swbkarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{sebkarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightspoon}{arrows}{\mathrel} + \mdsy@DeclareAlias{multimap}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upspoon}{arrows}{\mathrel} + \mdsy@DeclareAlias{cirmid}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftspoon}{arrows}{\mathrel} + \mdsy@DeclareAlias{multimapinv}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downspoon}{arrows}{\mathrel} + \mdsy@DeclareAlias{midcir}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightblackspoon}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upblackspoon}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftblackspoon}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downblackspoon}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightspoon}{arrows}{\mathrel} + \mdsy@DeclareAlias{dualmap}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightblackspoon}{arrows}{\mathrel} +\mdsy@DeclareSymbol{blackwhitespoon}{arrows}{\mathrel} + \mdsy@DeclareAlias{imageof}{arrows}{\mathrel} +\mdsy@DeclareSymbol{whiteblackspoon}{arrows}{\mathrel} + \mdsy@DeclareAlias{origof}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightpitchfork}{arrows}{\mathrel} +\mdsy@DeclareSymbol{uppitchfork}{arrows}{\mathrel} + \mdsy@DeclareAlias{pitchfork}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftpitchfork}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downpitchfork}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightrightarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upuparrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftleftarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downdownarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nenearrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwnwarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swswarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{sesearrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightleftarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{updownarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{neswarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{nwsearrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downuparrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{swnearrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{senwarrows}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leadsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightsquigarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightlsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varupwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{uplsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varleftwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftlsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downlsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varrightwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightrsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{uprsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftsquigarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftrsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{vardownwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downrsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftrightwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftrightsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{updownwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{updownsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varleftrightwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightleftsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{varupdownwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downupsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwoverarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{curvearrowright}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightlcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwleftarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{uplcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwunderarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftlcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwrightarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downlcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwnwarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightupcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{nelcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwswarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{upleftcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{nwlcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwsearcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftdowncurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{swlcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwnearcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downrightcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{selcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwunderarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightrcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwrightarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{uprcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwoverarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{curvearrowleft}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftrcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwleftarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downrcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwsearcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{uprightcurvearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{nercurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwnearcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftupcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{nwrcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwnwarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downleftcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{swrcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwswarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightdowncurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{sercurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdoverarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{leftrightcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdleftarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{updowncurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdunderarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{rightleftcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdrightarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{downupcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdnwarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{neswcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdswarcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{nwsecurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdsearcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{swnecurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{bdnearcarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{senwcurvearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftfootline}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightfootline}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwcirclearrowup}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwcirclearrowleft}{arrows}{\mathrel} + \mdsy@DeclareAlias{circlearrowleft}{arrows}{\mathrel} + \mdsy@DeclareAlias{acwopencirclearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwcirclearrowdown}{arrows}{\mathrel} + \mdsy@DeclareAlias{acwgapcirclearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{acwcirclearrowright}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwcirclearrowdown}{arrows}{\mathrel} + \mdsy@DeclareAlias{cwgapcirclearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwcirclearrowright}{arrows}{\mathrel} + \mdsy@DeclareAlias{circlearrowright}{arrows}{\mathrel} + \mdsy@DeclareAlias{cwopencirclearrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwcirclearrowup}{arrows}{\mathrel} +\mdsy@DeclareSymbol{cwcirclearrowleft}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Rrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Uuparrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Lleftarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Ddownarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longleftarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Longrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Longleftarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longleftrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Longleftrightarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longmapsto}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longmapsfrom}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Longmapsto}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Longmapsfrom}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longrightwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{longleadsto}{arrows}{\mathrel} + \mdsy@DeclareAlias{longrightsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longleftwavearrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{longleftsquigarrow}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longleftfootline}{arrows}{\mathrel} + \mdsy@DeclareAlias{vlongdash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{longrightfootline}{arrows}{\mathrel} + \mdsy@DeclareAlias{longdashv}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Lsh}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Rsh}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Ldsh}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Rdsh}{arrows}{\mathrel} +\mdsy@DeclareSymbol{looparrowright}{arrows}{\mathrel} +\mdsy@DeclareSymbol{looparrowleft}{arrows}{\mathrel} +\mdsy@setslot{224} +\mdsy@DeclareSymbol{rightvdash}{arrows}{\mathrel} + \mdsy@DeclareAlias{vdash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upvdash}{arrows}{\mathrel} + \mdsy@DeclareAlias{perp}{arrows}{\mathrel} + \mdsy@DeclareAlias{bot}{arrows}{\mathord} +\mdsy@DeclareSymbol{leftvdash}{arrows}{\mathrel} + \mdsy@DeclareAlias{dashv}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downvdash}{arrows}{\mathrel} + \mdsy@DeclareAlias{top}{arrows}{\mathord} +\mdsy@DeclareSymbol{rightassert}{arrows}{\mathrel} + \mdsy@DeclareAlias{assert}{arrows}{\mathrel} + \mdsy@DeclareAlias{shortrighttack}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upassert}{arrows}{\mathrel} + \mdsy@DeclareAlias{shortuptack}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftassert}{arrows}{\mathrel} + \mdsy@DeclareAlias{shortlefttack}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downassert}{arrows}{\mathrel} + \mdsy@DeclareAlias{shortdowntack}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightvDash}{arrows}{\mathrel} + \mdsy@DeclareAlias{vDash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upvDash}{arrows}{\mathrel} + \mdsy@DeclareAlias{Vbar}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftvDash}{arrows}{\mathrel} + \mdsy@DeclareAlias{Dashv}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downvDash}{arrows}{\mathrel} + \mdsy@DeclareAlias{barV}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightmodels}{arrows}{\mathrel} + \mdsy@DeclareAlias{models}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upmodels}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftmodels}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downmodels}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightVdash}{arrows}{\mathrel} + \mdsy@DeclareAlias{Vdash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upVdash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftVdash}{arrows}{\mathrel} + \mdsy@DeclareAlias{dashV}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downVdash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightAssert}{arrows}{\mathrel} + \mdsy@DeclareAlias{Assert}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upAssert}{arrows}{\mathrel} + \mdsy@DeclareAlias{vBar}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftAssert}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downAssert}{arrows}{\mathrel} + \mdsy@DeclareAlias{Barv}{arrows}{\mathrel} +\mdsy@DeclareSymbol{rightVDash}{arrows}{\mathrel} + \mdsy@DeclareAlias{VDash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{upVDash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{leftVDash}{arrows}{\mathrel} + \mdsy@DeclareAlias{DashV}{arrows}{\mathrel} +\mdsy@DeclareSymbol{downVDash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Vvdash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{dashVv}{arrows}{\mathrel} +\mdsy@DeclareSymbol{vDdash}{arrows}{\mathrel} +\mdsy@DeclareSymbol{Ddashv}{arrows}{\mathrel} + +\mdsy@DeclareRobustCommand{relbar}{\mathrel{\smash-}} +\mdsy@DeclareRobustCommand{Relbar}{\mathrel=} +\mdsy@DeclareRobustCommand{joinrel}{\mathrel{\mkern-4mu}} +\mdsy@setslot{0} +\mdsy@DeclareSymbol{nrightarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nto}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nuparrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ngets}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nsearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nRightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nUparrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLeftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nDownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nNearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nNwarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nSwarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nSearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupdownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nneswarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwsearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLeftrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nUpdownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nNeswarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nNwsearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheadrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheaduparrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheadleftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheaddownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheadnearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheadnwarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheadswarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ntwoheadsearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightarrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nuparrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftarrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownarrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnearrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwarrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswarrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nsearrowtail}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmapsto}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmapsup}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmapsfrom}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmapsdown}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nRightmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nMapsto}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nUpmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nMapsup}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLeftmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nMapsfrom}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nDownmapsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nMapsdown}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhookrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhookuparrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhookleftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhookdownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhooknearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhooknwarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nhknwarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhookswarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhooksearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nhksearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhookrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhookuparrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhookleftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhookdownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhooknearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nhknearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhooknwarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nhookswarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nhkswarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarhooksearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightharpoonup}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupharpoonleft}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftharpoondown}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownharpoonright}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nneharpoonnw}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwharpoonsw}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswharpoonse}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nseharpoonne}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightharpoondown}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupharpoonright}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrestriction}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftharpoonup}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownharpoonleft}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nneharpoonse}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwharpoonne}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswharpoonnw}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nseharpoonsw}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightharpoonupdown}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupdownharpoonleftright}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nneswharpoonnwse}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwseharpoonnesw}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightharpoondownup}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupdownharpoonrightleft}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nneswharpoonsenw}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwseharpoonswne}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightleftharpoons}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupdownharpoons}{narrows}{\mathrel} + \mdsy@DeclareAlias{nupdownharpoonsleftright}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nneswharpoons}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nsenwharpoons}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightharpoons}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownupharpoons}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownupharpoonsleftright}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswneharpoons}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwseharpoons}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightbkarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndasharrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndashrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupbkarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftbkarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndashleftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownbkarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnebkarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwbkarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswbkarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nsebkarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightspoon}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmultimap}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupspoon}{narrows}{\mathrel} + \mdsy@DeclareAlias{ncirmid}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftspoon}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmultimapinv}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownspoon}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmidcir}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightblackspoon}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupblackspoon}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftblackspoon}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownblackspoon}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightspoon}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndualmap}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightblackspoon}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nblackwhitespoon}{narrows}{\mathrel} + \mdsy@DeclareAlias{nimageof}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nwhiteblackspoon}{narrows}{\mathrel} + \mdsy@DeclareAlias{norigof}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightpitchfork}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nuppitchfork}{narrows}{\mathrel} + \mdsy@DeclareAlias{npitchfork}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftpitchfork}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownpitchfork}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightrightarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupuparrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftleftarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndowndownarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnenearrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwnwarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswswarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nsesearrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightleftarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupdownarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nneswarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nnwsearrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownuparrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nswnearrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nsenwarrows}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleadsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightsquigarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{nrightlsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarupwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nuplsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarleftwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftlsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownlsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarrightwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightrsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nuprsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftsquigarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftcurvedarrow}{arrows}{\mathrel} + \mdsy@DeclareAlias{nleftrsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvardownwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownrsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftrightwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftrightsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupdownwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nupdownsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarleftrightwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightleftsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvarupdownwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownupsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwoverarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ncurvearrowright}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightlcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwleftarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nuplcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwunderarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftlcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwrightarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownlcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwnwarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightupcurvedarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nnelcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwswarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nupleftcurvedarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nnwlcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwsearcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftdowncurvedarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nswlcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwnearcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownrightcurvedarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nselcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwunderarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightrcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwrightarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nuprcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwoverarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ncurvearrowleft}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftrcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwleftarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownrcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwsearcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nuprightcurvearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nnercurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwnearcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftupcurvedarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nnwrcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwnwarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownleftcurvedarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nswrcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwswarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightdowncurvedarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nsercurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdoverarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nleftrightcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdleftarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nupdowncurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdunderarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nrightleftcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdrightarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndownupcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdnwarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nneswcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdswarcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nnwsecurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdsearcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nswnecurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nbdnearcarrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nsenwcurvearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftfootline}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightfootline}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwcirclearrowup}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwcirclearrowleft}{narrows}{\mathrel} + \mdsy@DeclareAlias{ncirclearrowleft}{narrows}{\mathrel} + \mdsy@DeclareAlias{nacwopencirclearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwcirclearrowdown}{narrows}{\mathrel} + \mdsy@DeclareAlias{nacwgapcirclearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nacwcirclearrowright}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwcirclearrowdown}{narrows}{\mathrel} + \mdsy@DeclareAlias{ncwgapcirclearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwcirclearrowright}{narrows}{\mathrel} + \mdsy@DeclareAlias{ncirclearrowright}{narrows}{\mathrel} + \mdsy@DeclareAlias{ncwopencirclearrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwcirclearrowup}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ncwcirclearrowleft}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nRrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nUuparrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLleftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nDdownarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongleftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLongrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLongleftarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongleftrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLongleftrightarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongmapsto}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongmapsfrom}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLongmapsto}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nLongmapsfrom}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongrightwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nlongleadsto}{narrows}{\mathrel} + \mdsy@DeclareAlias{nlongrightsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongleftwavearrow}{narrows}{\mathrel} + \mdsy@DeclareAlias{nlongleftsquigarrow}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongleftfootline}{narrows}{\mathrel} + \mdsy@DeclareAlias{nvlongdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nlongrightfootline}{narrows}{\mathrel} + \mdsy@DeclareAlias{nlongdashv}{narrows}{\mathrel} +\mdsy@setslot{224} +\mdsy@DeclareSymbol{nrightvdash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nvdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupvdash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nperp}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftvdash}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndashv}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownvdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightassert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nassert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nshortrighttack}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupassert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nshortuptack}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftassert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nshortlefttack}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownassert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nshortdowntack}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightvDash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nvDash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupvDash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nVbar}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftvDash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nDashv}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownvDash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nbarV}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightmodels}{narrows}{\mathrel} + \mdsy@DeclareAlias{nmodels}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupmodels}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftmodels}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownmodels}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightVdash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nVdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupVdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftVdash}{narrows}{\mathrel} + \mdsy@DeclareAlias{ndashV}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownVdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightAssert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nAssert}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupAssert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nvBar}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftAssert}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownAssert}{narrows}{\mathrel} + \mdsy@DeclareAlias{nBarv}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nrightVDash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nVDash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nupVDash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nleftVDash}{narrows}{\mathrel} + \mdsy@DeclareAlias{nDashV}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndownVDash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nVvdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{ndashVv}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nvDdash}{narrows}{\mathrel} +\mdsy@DeclareSymbol{nDdashv}{narrows}{\mathrel} +\mdsy@setslot{0} +\mdsy@DeclareSymbol{tbigplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigtimes}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigtimes}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigwedge}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigwedge}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigvee}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigvee}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigwedgedot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigwedgedot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigveedot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigveedot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigdoublewedge}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tconjquant}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigdoublewedge}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dconjquant}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigdoublevee}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tdisjquant}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigdoublevee}{largesymbols}{\mathop} + \mdsy@DeclareAlias{ddisjquant}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcurlywedge}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcurlywedge}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcurlyvee}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcurlyvee}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcap}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcap}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcup}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcup}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcapdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcapdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcupdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcupdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcapplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcapplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigcupplus}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tbiguplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigcupplus}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dbiguplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigsqcap}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigsqcap}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigsqcup}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigsqcup}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigsqcapdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigsqcapdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigsqcupdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigsqcupdot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigsqcapplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigsqcapplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigsqcupplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigsqcupplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigoplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigoplus}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigotimes}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigotimes}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigodot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigodot}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tbigoast}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dbigoast}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tprod}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dprod}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tcoprod}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dcoprod}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tsum}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dsum}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tosum}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tmodtwosum}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dosum}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dmodtwosum}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{diint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tiiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{diiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tiiiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{diiiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tidotsint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tdotsint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{didotsint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{ddotsint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tlandupint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tintclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dlandupint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dintclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tlanddownint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tawint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tintctrclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dlanddownint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dawint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dintctrclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tintbar}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dintbar}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tintBar}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dintBar}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tfint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dfint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{toint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{doint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{toiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{doiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{toiiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{doiiint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{trcirclerightint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tointctrclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{drcirclerightint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dointctrclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tlcirclerightint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tvarointclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dlcirclerightint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dvarointclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{trcircleleftint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tvarointctrclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{drcircleleftint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dvarointctrclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tlcircleleftint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{tointclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dlcircleleftint}{largesymbols}{\mathop} + \mdsy@DeclareAlias{dointclockwise}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{tsumint}{largesymbols}{\mathop} +\mdsy@DeclareSymbol{dsumint}{largesymbols}{\mathop} + +\mdsy@DeclareOperator{bigplus}{\dbigplus}{\tbigplus} +\mdsy@DeclareOperator{bigtimes}{\dbigtimes}{\tbigtimes} +\mdsy@DeclareOperator{bigwedge}{\dbigwedge}{\tbigwedge} +\mdsy@DeclareOperator{bigvee}{\dbigvee}{\tbigvee} +\mdsy@DeclareOperator{bigwedgedot}{\dbigwedgedot}{\tbigwedgedot} +\mdsy@DeclareOperator{bigveedot}{\dbigveedot}{\tbigveedot} +\mdsy@DeclareOperator{bigdoublewedge}{\dbigdoublewedge}{\tbigdoublewedge} +\mdsy@DeclareOperator{conjquant}{\dconjquant}{\tconjquant} +\mdsy@DeclareOperator{bigdoublevee}{\dbigdoublevee}{\tbigdoublevee} +\mdsy@DeclareOperator{disjquant}{\ddisjquant}{\tdisjquant} +\mdsy@DeclareOperator{bigcurlywedge}{\dbigcurlywedge}{\tbigcurlywedge} +\mdsy@DeclareOperator{bigcurlyvee}{\dbigcurlyvee}{\tbigcurlyvee} +\mdsy@DeclareOperator{bigcurlywedgedot}{\dbigcurlywedgedot}{\tbigcurlywedgedot} +\mdsy@DeclareOperator{bigcurlyveedot}{\dbigcurlyveedot}{\tbigcurlyveedot} +\mdsy@DeclareOperator{bigdoublecurlywedge}{\dbigdoublecurlywedge}{\tbigdoublecurlywedge} +\mdsy@DeclareOperator{bigdoublecurlyvee}{\dbigdoublecurlyvee}{\tbigdoublecurlyvee} +\mdsy@DeclareOperator{bigcap}{\dbigcap}{\tbigcap} +\mdsy@DeclareOperator{bigcup}{\dbigcup}{\tbigcup} +\mdsy@DeclareOperator{bigcapdot}{\dbigcapdot}{\tbigcapdot} +\mdsy@DeclareOperator{bigcupdot}{\dbigcupdot}{\tbigcupdot} +\mdsy@DeclareOperator{bigcapplus}{\dbigcapplus}{\tbigcapplus} +\mdsy@DeclareOperator{bigcupplus}{\dbigcupplus}{\tbigcupplus} +\mdsy@DeclareOperator{biguplus}{\dbiguplus}{\tbiguplus} +\mdsy@DeclareOperator{bigsqcap}{\dbigsqcap}{\tbigsqcap} +\mdsy@DeclareOperator{bigsqcup}{\dbigsqcup}{\tbigsqcup} +\mdsy@DeclareOperator{bigsqcapdot}{\dbigsqcapdot}{\tbigsqcapdot} +\mdsy@DeclareOperator{bigsqcupdot}{\dbigsqcupdot}{\tbigsqcupdot} +\mdsy@DeclareOperator{bigsqcapplus}{\dbigsqcapplus}{\tbigsqcapplus} +\mdsy@DeclareOperator{bigsqcupplus}{\dbigsqcupplus}{\tbigsqcupplus} +\mdsy@DeclareOperator{bigoplus}{\dbigoplus}{\tbigoplus} +\mdsy@DeclareOperator{bigotimes}{\dbigotimes}{\tbigotimes} +\mdsy@DeclareOperator{bigodot}{\dbigodot}{\tbigodot} +\mdsy@DeclareOperator{bigoast}{\dbigoast}{\tbigoast} +\mdsy@DeclareOperator{sum}{\dsum}{\tsum} +\mdsy@DeclareOperator{osum}{\dosum}{\tosum} +\mdsy@DeclareOperator{modtwosum}{\dmodtwosum}{\tmodtwosum} +\mdsy@DeclareOperator{prod}{\dprod}{\tprod} +\mdsy@DeclareOperator{coprod}{\dcoprod}{\tcoprod} +\mdsy@DeclareIntegral{int}{\dint}{\tint} +\mdsy@DeclareIntegral{iint}{\diint}{\tiint} +\mdsy@DeclareIntegral{iiint}{\diiint}{\tiiint} +\mdsy@DeclareIntegral{iiiint}{\diiiint}{\tiiiint} +\mdsy@DeclareIntegral{idotsint}{\didotsint}{\tidotsint} +\mdsy@DeclareIntegral{dotsint}{\ddotsint}{\tdotsint} +\mdsy@DeclareIntegral{landupint}{\dlandupint}{\tlandupint} +\mdsy@DeclareIntegral{intclockwise}{\dintclockwise}{\tintclockwise} +\mdsy@DeclareIntegral{landdownint}{\dlanddownint}{\tlanddownint} +\mdsy@DeclareIntegral{awint}{\dawint}{\tawint} +\mdsy@DeclareIntegral{intctrclockwise}{\dintctrclockwise}{\tintctrclockwise} +\mdsy@DeclareIntegral{landdownint}{\dlanddownint}{\tlanddownint} +\mdsy@DeclareIntegral{intbar}{\dintbar}{\tintbar} +\mdsy@DeclareIntegral{intBar}{\dintBar}{\tintBar} +\mdsy@DeclareIntegral{fint}{\dfint}{\tfint} +\mdsy@DeclareIntegral{oint}{\doint}{\toint} +\mdsy@DeclareIntegral{oiint}{\doiint}{\toiint} +\mdsy@DeclareIntegral{oiiint}{\doiiint}{\toiiint} +\mdsy@DeclareIntegral{rcirclerightint}{\drcirclerightint}{\trcirclerightint} +\mdsy@DeclareIntegral{ointctrclockwise}{\dointctrclockwise}{\tointctrclockwise} +\mdsy@DeclareIntegral{lcirclerightint}{\dlcirclerightint}{\tlcirclerightint} +\mdsy@DeclareIntegral{varointclockwise}{\dvarointclockwise}{\tvarointclockwise} +\mdsy@DeclareIntegral{rcircleleftint}{\drcircleleftint}{\trcircleleftint} +\mdsy@DeclareIntegral{varointctrclockwise}{\dvarointctrclockwise}{\tvarointctrclockwise} +\mdsy@DeclareIntegral{lcircleleftint}{\dlcircleleftint}{\tlcircleleftint} +\mdsy@DeclareIntegral{ointclockwise}{\dointclockwise}{\tointclockwise} +\mdsy@DeclareIntegral{sumint}{\dsumint}{\tsumint} + +\mdsy@renewcommand{intkern@}{\mkern-8.5mu\mathchoice{\mkern-1mu}{}{}{}} +\mdsy@renewcommand{intdots@}{\mkern-6mu% + \mathchoice{\@cdots}% + {{\cdotp}\mkern0.5mu{\cdotp}\mkern0.5mu{\cdotp}}% + {{\cdotp}{\cdotp}{\cdotp}}% + {{\cdotp}{\cdotp}{\cdotp}}% + \mkern-6mu} +\mdsy@DeclareMathAccent{widehat}{\mathord}{largesymbols}{"72} +\mdsy@DeclareMathAccent{widetilde}{\mathord}{largesymbols}{"78} +\mdsy@DeclareMathAccent{wideparen}{\mathord}{largesymbols}{"7E} +\mdsy@DeclareMathAccent{vec}{\mathord}{largesymbols}{"84} +\mdsy@DeclareMathAccent{middlebar}{\mathord}{largesymbols}{"85} +\mdsy@DeclareMathAccent{middleslash}{\mathord}{largesymbols}{"86} +\mdsy@DeclareMathAccent{strokethrough}{\mathord}{largesymbols}{"87} +\ifmdsy@largedelims + \mdsy@DeclareOpen{lparen}{delimiters}{"01} + \mdsy@DeclareClose{rparen}{delimiters}{"07} + \mdsy@DeclareOpen{lbrack}{delimiters}{"13} + \mdsy@DeclareClose{rbrack}{delimiters}{"19} + \mdsy@DeclareOpen{lfloor}{delimiters}{"1F} + \mdsy@DeclareClose{rfloor}{delimiters}{"25} + \mdsy@DeclareOpen{lceil}{delimiters}{"2B} + \mdsy@DeclareClose{rceil}{delimiters}{"31} + \mdsy@DeclareOpen{ulcorner}{delimiters}{"37} + \mdsy@DeclareClose{urcorner}{delimiters}{"3D} + \mdsy@DeclareOpen{llcorner}{delimiters}{"43} + \mdsy@DeclareClose{lrcorner}{delimiters}{"49} + \mdsy@DeclareOpen{ullcorner}{delimiters}{"4F} + \mdsy@DeclareClose{ulrcorner}{delimiters}{"55} + \mdsy@DeclareOpen{lsem}{delimiters}{"61} + \mdsy@DeclareClose{rsem}{delimiters}{"67} + \mdsy@DeclareOpen{lBrack}{delimiters}{"61} + \mdsy@DeclareClose{rBrack}{delimiters}{"67} + \mdsy@DeclareOpen{lbrace}{delimiters}{"73} + \mdsy@DeclareClose{rbrace}{delimiters}{"79} + \mdsy@DeclareOpen{langle}{delimiters}{"86} + \mdsy@DeclareClose{rangle}{delimiters}{"8C} + \mdsy@DeclareOpen{lAngle}{delimiters}{"92} + \mdsy@DeclareClose{rAngle}{delimiters}{"98} + \mdsy@DeclareOpen{langledot}{delimiters}{"9E} + \mdsy@DeclareClose{rangledot}{delimiters}{"A4} + \mdsy@DeclareDelimiter{mathslash}{\mathord}{delimiters}{"AA} + \mdsy@DeclareMathSymbol{divslash}{\mathbin}{delimiters}{"AA} + \mdsy@DeclareDelimiter{backslash}{\mathord}{delimiters}{"B0} + \mdsy@DeclareMathSymbol{setminus}{\mathbin}{delimiters}{"B0} + \mdsy@DeclareDelimiter{vert}{\mathord}{delimiters}{"B7} + \mdsy@DeclareOpen{lvert}{delimiters}{"B7} + \mdsy@DeclareClose{rvert}{delimiters}{"B7} + \mdsy@DeclareMathSymbol{mid}{\mathrel}{delimiters}{"B7} + \mdsy@DeclareMathSymbol{nmid}{\mathrel}{delimiters}{"BA} + \mdsy@DeclareDelimiter{Vert}{\mathord}{delimiters}{"BE} + \mdsy@DeclareOpen{lVert}{delimiters}{"BE} + \mdsy@DeclareClose{rVert}{delimiters}{"BE} + \mdsy@DeclareMathSymbol{parallel}{\mathrel}{delimiters}{"BE} + \mdsy@DeclareMathSymbol{nparallel}{\mathrel}{delimiters}{"C1} + \mdsy@DeclareDelimiter{Vvert}{\mathord}{delimiters}{"C4} + \mdsy@DeclareOpen{lVvert}{delimiters}{"C4} + \mdsy@DeclareClose{rVvert}{delimiters}{"C4} +\else + \mdsy@DeclareOpen{lparen}{delimiters}{"00} + \mdsy@DeclareClose{rparen}{delimiters}{"06} + \mdsy@DeclareOpen{lbrack}{delimiters}{"12} + \mdsy@DeclareClose{rbrack}{delimiters}{"18} + \mdsy@DeclareOpen{lfloor}{delimiters}{"1E} + \mdsy@DeclareClose{rfloor}{delimiters}{"24} + \mdsy@DeclareOpen{lceil}{delimiters}{"2A} + \mdsy@DeclareClose{rceil}{delimiters}{"30} + \mdsy@DeclareOpen{ulcorner}{delimiters}{"36} + \mdsy@DeclareClose{urcorner}{delimiters}{"3C} + \mdsy@DeclareOpen{llcorner}{delimiters}{"42} + \mdsy@DeclareClose{lrcorner}{delimiters}{"48} + \mdsy@DeclareOpen{ullcorner}{delimiters}{"4E} + \mdsy@DeclareClose{ulrcorner}{delimiters}{"54} + \mdsy@DeclareOpen{lsem}{delimiters}{"60} + \mdsy@DeclareClose{rsem}{delimiters}{"66} + \mdsy@DeclareOpen{lBrack}{delimiters}{"60} + \mdsy@DeclareClose{rBrack}{delimiters}{"66} + \mdsy@DeclareOpen{lbrace}{delimiters}{"72} + \mdsy@DeclareClose{rbrace}{delimiters}{"78} + \mdsy@DeclareOpen{langle}{delimiters}{"85} + \mdsy@DeclareClose{rangle}{delimiters}{"8B} + \mdsy@DeclareOpen{lAngle}{delimiters}{"91} + \mdsy@DeclareClose{rAngle}{delimiters}{"97} + \mdsy@DeclareOpen{langledot}{delimiters}{"9D} + \mdsy@DeclareClose{rangledot}{delimiters}{"A3} + \mdsy@DeclareDelimiter{mathslash}{\mathord}{delimiters}{"A9} + \mdsy@DeclareMathSymbol{divslash}{\mathbin}{delimiters}{"A9} + \mdsy@DeclareDelimiter{backslash}{\mathord}{delimiters}{"AF} + \mdsy@DeclareMathSymbol{setminus}{\mathbin}{delimiters}{"AF} + \mdsy@DeclareDelimiter{vert}{\mathord}{delimiters}{"B6} + \mdsy@DeclareOpen{lvert}{delimiters}{"B6} + \mdsy@DeclareClose{rvert}{delimiters}{"B6} + \mdsy@DeclareMathSymbol{mid}{\mathrel}{delimiters}{"B6} + \mdsy@DeclareMathSymbol{nmid}{\mathrel}{delimiters}{"B9} + \mdsy@DeclareDelimiter{Vert}{\mathord}{delimiters}{"BD} + \mdsy@DeclareOpen{lVert}{delimiters}{"BD} + \mdsy@DeclareClose{rVert}{delimiters}{"BD} + \mdsy@DeclareMathSymbol{parallel}{\mathrel}{delimiters}{"BD} + \mdsy@DeclareMathSymbol{nparallel}{\mathrel}{delimiters}{"C0} + \mdsy@DeclareDelimiter{Vvert}{\mathord}{delimiters}{"C3} + \mdsy@DeclareOpen{lVvert}{delimiters}{"C3} + \mdsy@DeclareClose{rVvert}{delimiters}{"C3} +\fi +\let\|\Vert +\mdsy@renewcommand{divides}{\mid} +\mdsy@renewcommand{ndivides}{\nmid} +\mdsy@DeclareMathSymbol{shortmid}{\mathrel}{delimiters}{"B5} +\mdsy@DeclareMathSymbol{nshortmid}{\mathrel}{delimiters}{"B8} +\mdsy@DeclareMathSymbol{shortparallel}{\mathrel}{delimiters}{"BC} +\mdsy@DeclareMathSymbol{nshortparallel}{\mathrel}{delimiters}{"BF} +\mdsy@DeclareDelimiter{arrowvert}{\mathord}{delimiters}{"BB} +\mdsy@DeclareDelimiter{Arrowvert}{\mathord}{delimiters}{"C2} +\mdsy@DeclareClose{lgroup}{delimiters}{"7E} +\mdsy@DeclareOpen{rgroup}{delimiters}{"7F} +\mdsy@DeclareClose{rmoustache}{delimiters}{"80} +\mdsy@DeclareOpen{lmoustache}{delimiters}{"81} +\mdsy@DeclareDelimiter{bracevert}{\mathord}{delimiters}{"84} + +\mdsy@DeclareMathDelimiter{uparrow}{\mathrel}{arrows}{"01}{delimiters}{"C6} +\mdsy@DeclareMathDelimiter{downarrow}{\mathrel}{arrows}{"03}{delimiters}{"C7} +\mdsy@DeclareMathDelimiter{updownarrow}{\mathrel}{arrows}{"11}{delimiters}{"C8} +\mdsy@DeclareMathDelimiter{Uparrow}{\mathrel}{arrows}{"09}{delimiters}{"C9} +\mdsy@DeclareMathDelimiter{Downarrow}{\mathrel}{arrows}{"0B}{delimiters}{"CA} +\mdsy@DeclareMathDelimiter{Updownarrow}{\mathrel}{arrows}{"15}{delimiters}{"CB} +\mdsy@DeclareMathSymbol{braceld}{\mathord}{delimiters}{"CC} +\mdsy@DeclareMathSymbol{bracelu}{\mathord}{delimiters}{"CD} +\mdsy@DeclareMathSymbol{bracerd}{\mathord}{delimiters}{"CE} +\mdsy@DeclareMathSymbol{braceru}{\mathord}{delimiters}{"CF} +\mdsy@DeclareMathSymbol{bracemd}{\mathord}{delimiters}{"D0} +\mdsy@DeclareMathSymbol{bracemu}{\mathord}{delimiters}{"D1} +\mdsy@DeclareMathSymbol{bracemid}{\mathord}{delimiters}{"D2} + +\mdsy@DeclareRobustCommandArg{bracefill@}{5}{% + $\m@th#5#1\leaders\hbox{$#4$}\hfill#2\leaders\hbox{$#4$}\hfill#3$% +} +\mdsy@renewcommand{downbracefill@}{\bracefill@\braceld\bracemd\bracerd\bracemid} +\mdsy@renewcommand{upbracefill@}{\bracefill@\bracelu\bracemu\braceru\bracemid} +\mdsy@renewcommand{downgroupfill@}{\bracefill@\braceld{}\bracerd\bracemid} +\mdsy@renewcommand{upgroupfill@}{\bracefill@\bracelu{}\braceru\bracemid} +\mdsy@renewcommand{linesegmentfill@}{\arrowfill@\leftfootline\relbar\rightfootline} +\mdsy@renewcommand{leftharpoonfill@}{\arrowfill@\leftharpoondown\relbar\relbar} +\mdsy@renewcommand{rightharpoonfill@}{\arrowfill@\relbar\relbar\rightharpoonup} + +\mdsy@DeclareRobustCommandArg{overbrace}{1}{% + \mathop{\mathpalette{\overarrow@\downbracefill@}{#1}}\limits% +} +\mdsy@DeclareRobustCommandArg{underbrace}{1}{% + \mathop{\mathpalette{\underarrow@\upbracefill@}{#1}}\limits% +} +\mdsy@DeclareRobustCommand{overgroup}{\mathpalette{\overarrow@\downgroupfill@}} +\mdsy@DeclareRobustCommand{undergroup}{\mathpalette{\underarrow@\upgroupfill@}} +\mdsy@DeclareRobustCommand{overlinesegment}{\mathpalette{\overarrow@\linesegmentfill@}} +\mdsy@DeclareRobustCommand{overleftharpoon}{\mathpalette{\overarrow@\leftharpoonfill@}} +\mdsy@DeclareRobustCommand{overrightharpoon}{\mathpalette{\overarrow@\rightharpoonfill@}} +\mdsy@DeclareRobustCommand{underlinesegment}{\mathpalette{\underarrow@\linesegmentfill@}} +\ifmdsy@largedelims + \mdsy@DeclareMathRadical{sqrtsign}{delimiters}{"D4}{delimiters}{"D4} + \mdsy@DeclareMathSymbol{surd}{\mathop}{delimiters}{"D4} +\else + \mdsy@DeclareMathRadical{sqrtsign}{delimiters}{"D3}{delimiters}{"D3} + \mdsy@DeclareMathSymbol{surd}{\mathop}{delimiters}{"D3} +\fi +\mdsy@DeclareRobustCommandArg{r@@t}{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@} +\AtBeginDocument{% + \mdsy@DeclareActiveMathSymbol{+}{\mathbin}{symbols}{"11} + \mdsy@DeclareActiveMathSymbol{-}{\mathbin}{symbols}{"0E} + \mdsy@DeclareActiveMathSymbol{*}{\mathbin}{symbols}{"98} + \mdsy@DeclareActiveMathSymbol{:}{\mathrel}{symbols}{"02} + \mdsy@DeclareActiveMathSymbol{=}{\mathrel}{relations}{"00} + \mdsy@DeclareActiveMathSymbol{<}{\mathrel}{relations}{"24} + \mdsy@DeclareActiveMathSymbol{>}{\mathrel}{relations}{"25} + \ifmdsy@largedelims + \mdsy@DeclareActiveMathDelimiter{|}{\mathord}{delimiters}{"B7} + \mdsy@DeclareActiveMathDelimiter{(}{\mathopen}{delimiters}{"01} + \mdsy@DeclareActiveMathDelimiter{)}{\mathclose}{delimiters}{"07} + \mdsy@DeclareActiveMathDelimiter{[}{\mathopen}{delimiters}{"13} + \mdsy@DeclareActiveMathDelimiter{]}{\mathclose}{delimiters}{"19} + \mdsy@DeclareActiveMathDelimiter{/}{\mathord}{delimiters}{"AA} + \else + \mdsy@DeclareActiveMathDelimiter{|}{\mathord}{delimiters}{"B6} + \mdsy@DeclareActiveMathDelimiter{(}{\mathopen}{delimiters}{"00} + \mdsy@DeclareActiveMathDelimiter{)}{\mathclose}{delimiters}{"06} + \mdsy@DeclareActiveMathDelimiter{[}{\mathopen}{delimiters}{"12} + \mdsy@DeclareActiveMathDelimiter{]}{\mathclose}{delimiters}{"18} + \mdsy@DeclareActiveMathDelimiter{/}{\mathord}{delimiters}{"A9} + \fi + \ifmdsy@onlysansmath + \def\resetMathstrut@{% + \setbox\z@\hbox{% + \ifmathversionsans{% + \mathchardef\@tempa\csname(@new\endcsname% + }{% + \mathchardef\@tempa\csname(@old\endcsname% + } + \def\@tempb##1"##2##3{\the\textfont"##3\char"}% + \expandafter\@tempb\meaning\@tempa \relax + }% + \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@ + } + \renewcommand{\std@minus}{-} + \renewcommand{\std@equal}{=} + \gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A% + \ifnum\mathcode`\-=45 \else + \renewcommand{\std@minus}{-}\relax + \fi + \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax} + \fi +} +\mdsy@DeclareRobustCommandArg{c@ncel}{2}{\m@th\ooalign{$\hfil#1/\hfil$\crcr$#1#2$}} +\mdsy@DeclareRobustCommandArg{not}{1}{\mathrel{\m@th\mathpalette\c@ncel{#1}}} +%% +%% +%% End of file `mdsymbol.sty'. -- cgit v1.2.3