michael@0: # This Source Code Form is subject to the terms of the Mozilla Public michael@0: # License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: # file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: # LOCALIZATION NOTE: FILE michael@0: # Do not translate anything in this file michael@0: michael@0: # The ordered list of fonts with which to attempt to stretch MathML michael@0: # characters is controlled by setting pref("font.mathfont-family", michael@0: # "CMSY10, CMEX10, ...") for example, or by setting the font-family list in michael@0: # :-moz-math-stretchy in mathml.css. michael@0: # michael@0: # Note: setting base fonts for non-stretchy characters only works michael@0: # for operators that are ultimately handled by nsMathMLChar. michael@0: # @see how |useMathMLChar| is set in nsMathMLmoFrame::Stretch() & Paint(). michael@0: michael@0: # Operator Dictionary indexed on the "form" (i.e., infix, prefix, or suffix). michael@0: # Each entry lists the attributes of the operator, using its Unicode format. michael@0: michael@0: operator.\u0021.postfix = lspace:1 rspace:0 # ! michael@0: operator.\u0021\u0021.postfix = lspace:1 rspace:0 # !! michael@0: operator.\u0021\u003D.infix = lspace:4 rspace:4 # != michael@0: operator.\u0025.infix = lspace:3 rspace:3 # percent sign michael@0: operator.\u0026.postfix = lspace:0 rspace:0 # & michael@0: operator.\u0026\u0026.infix = lspace:4 rspace:4 # && michael@0: operator.\u0027.postfix = lspace:0 rspace:0 accent # ' michael@0: operator.\u0028.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical mirrorable # ( michael@0: operator.\u0029.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical mirrorable # ) michael@0: operator.\u002A.infix = lspace:3 rspace:3 # * michael@0: operator.\u002A\u002A.infix = lspace:1 rspace:1 # ** michael@0: operator.\u002A\u003D.infix = lspace:4 rspace:4 # *= michael@0: operator.\u002B.infix = lspace:4 rspace:4 # + michael@0: operator.\u002B.prefix = lspace:0 rspace:1 # + michael@0: operator.\u002B\u002B.postfix = lspace:0 rspace:0 # ++ michael@0: operator.\u002B\u003D.infix = lspace:4 rspace:4 # += michael@0: operator.\u002C.infix = lspace:0 rspace:3 separator # , michael@0: operator.\u002D.infix = lspace:4 rspace:4 # - michael@0: operator.\u002D.prefix = lspace:0 rspace:1 # - michael@0: operator.\u002D\u002D.postfix = lspace:0 rspace:0 # -- michael@0: operator.\u002D\u003D.infix = lspace:4 rspace:4 # -= michael@0: operator.\u002D\u003E.infix = lspace:5 rspace:5 # -> michael@0: operator.\u002E.infix = lspace:3 rspace:3 # . michael@0: operator.\u002E\u002E.postfix = lspace:0 rspace:0 # .. michael@0: operator.\u002E\u002E\u002E.postfix = lspace:0 rspace:0 # ... michael@0: operator.\u002F.infix = lspace:1 rspace:1 direction:vertical # solidus michael@0: operator.\u002F\u002F.infix = lspace:1 rspace:1 # // michael@0: operator.\u002F\u003D.infix = lspace:4 rspace:4 # /= michael@0: operator.\u003A.infix = lspace:1 rspace:2 # : michael@0: operator.\u003A\u003D.infix = lspace:4 rspace:4 # := michael@0: operator.\u003B.infix = lspace:0 rspace:3 separator # ; michael@0: operator.\u003C.infix = lspace:5 rspace:5 # < michael@0: operator.\u003C\u003D.infix = lspace:5 rspace:5 # <= michael@0: operator.\u003C\u003E.infix = lspace:1 rspace:1 # <> michael@0: operator.\u003D.infix = lspace:5 rspace:5 direction:horizontal # = michael@0: operator.\u003D\u003D.infix = lspace:4 rspace:4 # == michael@0: operator.\u003E.infix = lspace:5 rspace:5 # > michael@0: operator.\u003E\u003D.infix = lspace:5 rspace:5 # >= michael@0: operator.\u003F.infix = lspace:1 rspace:1 # ? michael@0: operator.\u0040.infix = lspace:1 rspace:1 # @ michael@0: operator.\u005B.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical mirrorable # [ michael@0: operator.\u005C.infix = lspace:0 rspace:0 # reverse solidus michael@0: operator.\u005D.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical mirrorable # ] michael@0: operator.\u005E.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ^ circumflex accent michael@0: operator.\u005E.infix = lspace:1 rspace:1 direction:horizontal # ^ michael@0: operator.\u005F.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # _ low line michael@0: operator.\u005F.infix = lspace:1 rspace:1 stretchy direction:horizontal # _ low line michael@0: operator.\u0060.postfix = lspace:0 rspace:0 accent # ` michael@0: operator.\u007B.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical mirrorable # { michael@0: operator.\u007C.infix = lspace:2 rspace:2 stretchy fence symmetric direction:vertical # | | michael@0: operator.\u007C.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # | michael@0: operator.\u007C.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # | michael@0: operator.\u007C\u007C.infix = lspace:2 rspace:2 stretchy fence symmetric direction:vertical # || michael@0: operator.\u007C\u007C.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # multiple character operator: || michael@0: operator.\u007C\u007C.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # multiple character operator: || michael@0: operator.\u007C\u007C\u007C.infix = lspace:2 rspace:2 stretchy fence symmetric direction:vertical # multiple character operator: ||| michael@0: operator.\u007C\u007C\u007C.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # multiple character operator: ||| michael@0: operator.\u007C\u007C\u007C.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # multiple character operator: ||| michael@0: operator.\u007D.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical mirrorable # } michael@0: operator.\u007E.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ~ tilde michael@0: operator.\u00A8.postfix = lspace:0 rspace:0 accent # ¨ michael@0: operator.\u00AC.prefix = lspace:2 rspace:1 # not sign michael@0: operator.\u00AF.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ‾ michael@0: operator.\u00B0.postfix = lspace:0 rspace:0 # degree sign michael@0: operator.\u00B1.infix = lspace:4 rspace:4 # ± michael@0: operator.\u00B1.prefix = lspace:0 rspace:1 # ± michael@0: operator.\u00B4.postfix = lspace:0 rspace:0 accent # ´ michael@0: operator.\u00B7.infix = lspace:4 rspace:4 # · michael@0: operator.\u00B8.postfix = lspace:0 rspace:0 accent # ¸ michael@0: operator.\u00D7.infix = lspace:4 rspace:4 # multiplication sign michael@0: operator.\u00F7.infix = lspace:4 rspace:4 # division sign michael@0: operator.\u02C6.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # modifier letter circumflex accent michael@0: operator.\u02C7.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ˇ caron michael@0: operator.\u02C9.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # modifier letter macron michael@0: operator.\u02CA.postfix = lspace:0 rspace:0 accent # modifier letter acute accent michael@0: operator.\u02CB.postfix = lspace:0 rspace:0 accent # modifier letter grave accent michael@0: operator.\u02CD.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # modifier letter low macron michael@0: operator.\u02D8.postfix = lspace:0 rspace:0 accent # ˘ michael@0: operator.\u02D9.postfix = lspace:0 rspace:0 accent # ˙ michael@0: operator.\u02DA.postfix = lspace:0 rspace:0 accent # ring above michael@0: operator.\u02DC.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ˜ small tilde michael@0: operator.\u02DD.postfix = lspace:0 rspace:0 accent # ˝ michael@0: operator.\u02F7.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # modifier letter low tilde michael@0: operator.\u0302.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # combining circumflex accent michael@0: operator.\u0311.postfix = lspace:0 rspace:0 accent # ̑ michael@0: operator.\u03F6.infix = lspace:5 rspace:5 # greek reversed lunate epsilon symbol michael@0: operator.\u2016.prefix = lspace:0 rspace:0 stretchy fence direction:vertical # ‖ ‖ michael@0: operator.\u2016.postfix = lspace:0 rspace:0 stretchy fence direction:vertical # ‖ ‖ michael@0: operator.\u2018.prefix = lspace:0 rspace:0 fence mirrorable # ‘ michael@0: operator.\u2019.postfix = lspace:0 rspace:0 fence mirrorable # ’ michael@0: operator.\u201C.prefix = lspace:0 rspace:0 fence mirrorable # “ michael@0: operator.\u201D.postfix = lspace:0 rspace:0 fence mirrorable # ” michael@0: operator.\u2022.infix = lspace:4 rspace:4 # bullet michael@0: operator.\u2026.infix = lspace:0 rspace:0 # horizontal ellipsis michael@0: operator.\u2032.postfix = lspace:0 rspace:2 # prime michael@0: operator.\u203E.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # overline michael@0: operator.\u2044.infix = lspace:4 rspace:4 stretchy direction:vertical # fraction slash michael@0: operator.\u2061.infix = lspace:0 rspace:0 # ⁡ michael@0: operator.\u2062.infix = lspace:0 rspace:0 # ⁢ michael@0: operator.\u2063.infix = lspace:0 rspace:0 separator # ⁣ michael@0: operator.\u2064.infix = lspace:0 rspace:0 # invisible plus michael@0: operator.\u20DB.postfix = lspace:0 rspace:0 accent # ⃛ michael@0: operator.\u20DC.postfix = lspace:0 rspace:0 accent # combining four dots above michael@0: operator.\u2145.prefix = lspace:2 rspace:1 # ⅅ michael@0: operator.\u2146.prefix = lspace:2 rspace:0 # ⅆ michael@0: operator.\u2190.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ← michael@0: operator.\u2191.infix = lspace:5 rspace:5 stretchy direction:vertical # ↑ michael@0: operator.\u2192.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # → michael@0: operator.\u2193.infix = lspace:5 rspace:5 stretchy direction:vertical # ↓ michael@0: operator.\u2194.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ↔ michael@0: operator.\u2195.infix = lspace:5 rspace:5 stretchy direction:vertical # ↕ michael@0: operator.\u2196.infix = lspace:5 rspace:5 stretchy direction:vertical # ↖ michael@0: operator.\u2197.infix = lspace:5 rspace:5 stretchy direction:vertical # ↗ michael@0: operator.\u2198.infix = lspace:5 rspace:5 stretchy direction:horizontal # ↘ michael@0: operator.\u2199.infix = lspace:5 rspace:5 stretchy direction:horizontal # ↙ michael@0: operator.\u219A.infix = lspace:5 rspace:5 accent # leftwards arrow with stroke michael@0: operator.\u219B.infix = lspace:5 rspace:5 accent # rightwards arrow with stroke michael@0: operator.\u219C.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards wave arrow michael@0: operator.\u219D.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards wave arrow michael@0: operator.\u219E.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards two headed arrow michael@0: operator.\u219F.infix = lspace:5 rspace:5 stretchy accent direction:vertical # upwards two headed arrow michael@0: operator.\u21A0.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards two headed arrow michael@0: operator.\u21A1.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards two headed arrow michael@0: operator.\u21A2.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards arrow with tail michael@0: operator.\u21A3.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards arrow with tail michael@0: operator.\u21A4.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ↤ michael@0: operator.\u21A5.infix = lspace:5 rspace:5 stretchy direction:vertical # ↥ michael@0: operator.\u21A6.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ↦ michael@0: operator.\u21A7.infix = lspace:5 rspace:5 stretchy direction:vertical # ↧ michael@0: operator.\u21A8.infix = lspace:5 rspace:5 stretchy direction:vertical # up down arrow with base michael@0: operator.\u21A9.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ↩ ↩ michael@0: operator.\u21AA.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ↪ ↪ michael@0: operator.\u21AB.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards arrow with loop michael@0: operator.\u21AC.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards arrow with loop michael@0: operator.\u21AD.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # left right wave arrow michael@0: operator.\u21AE.infix = lspace:5 rspace:5 accent # left right arrow with stroke michael@0: operator.\u21AF.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards zigzag arrow michael@0: operator.\u21B0.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards arrow with tip leftwards michael@0: operator.\u21B1.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards arrow with tip rightwards michael@0: operator.\u21B2.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards arrow with tip leftwards michael@0: operator.\u21B3.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards arrow with tip rightwards michael@0: operator.\u21B4.infix = lspace:5 rspace:5 stretchy direction:horizontal # rightwards arrow with corner downwards michael@0: operator.\u21B5.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards arrow with corner leftwards michael@0: operator.\u21B6.infix = lspace:5 rspace:5 accent # anticlockwise top semicircle arrow michael@0: operator.\u21B7.infix = lspace:5 rspace:5 accent # clockwise top semicircle arrow michael@0: operator.\u21B8.infix = lspace:5 rspace:5 # north west arrow to long bar michael@0: operator.\u21B9.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards arrow to bar over rightwards arrow to bar michael@0: operator.\u21BA.infix = lspace:5 rspace:5 # anticlockwise open circle arrow michael@0: operator.\u21BB.infix = lspace:5 rspace:5 # clockwise open circle arrow michael@0: operator.\u21BC.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ↼ michael@0: operator.\u21BD.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ↽ michael@0: operator.\u21BE.infix = lspace:5 rspace:5 stretchy direction:vertical # ↾ michael@0: operator.\u21BF.infix = lspace:5 rspace:5 stretchy direction:vertical # ↿ michael@0: operator.\u21C0.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇀ michael@0: operator.\u21C1.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇁ michael@0: operator.\u21C2.infix = lspace:5 rspace:5 stretchy direction:vertical # ⇂ michael@0: operator.\u21C3.infix = lspace:5 rspace:5 stretchy direction:vertical # ⇃ michael@0: operator.\u21C4.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇄ michael@0: operator.\u21C5.infix = lspace:5 rspace:5 stretchy direction:vertical # ⇅ michael@0: operator.\u21C6.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇆ michael@0: operator.\u21C7.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards paired arrows michael@0: operator.\u21C8.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards paired arrows michael@0: operator.\u21C9.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards paired arrows michael@0: operator.\u21CA.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards paired arrows michael@0: operator.\u21CB.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇋ michael@0: operator.\u21CC.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇌ michael@0: operator.\u21CD.infix = lspace:5 rspace:5 accent # leftwards double arrow with stroke michael@0: operator.\u21CE.infix = lspace:5 rspace:5 accent # left right double arrow with stroke michael@0: operator.\u21CF.infix = lspace:5 rspace:5 accent # rightwards double arrow with stroke michael@0: operator.\u21D0.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇐ michael@0: operator.\u21D1.infix = lspace:5 rspace:5 stretchy direction:vertical # ⇑ michael@0: operator.\u21D2.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇒ ⇒ michael@0: operator.\u21D3.infix = lspace:5 rspace:5 stretchy direction:vertical # ⇓ michael@0: operator.\u21D4.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇔ michael@0: operator.\u21D5.infix = lspace:5 rspace:5 stretchy direction:vertical # ⇕ michael@0: operator.\u21DA.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards triple arrow michael@0: operator.\u21DB.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards triple arrow michael@0: operator.\u21DC.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards squiggle arrow michael@0: operator.\u21DD.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards squiggle arrow michael@0: operator.\u21DE.infix = lspace:5 rspace:5 # upwards arrow with double stroke michael@0: operator.\u21DF.infix = lspace:5 rspace:5 # downwards arrow with double stroke michael@0: operator.\u21E0.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards dashed arrow michael@0: operator.\u21E1.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards dashed arrow michael@0: operator.\u21E2.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards dashed arrow michael@0: operator.\u21E3.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards dashed arrow michael@0: operator.\u21E4.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇤ michael@0: operator.\u21E5.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⇥ michael@0: operator.\u21E6.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards white arrow michael@0: operator.\u21E7.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards white arrow michael@0: operator.\u21E8.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards white arrow michael@0: operator.\u21E9.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards white arrow michael@0: operator.\u21EA.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards white arrow from bar michael@0: operator.\u21EB.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards white arrow on pedestal michael@0: operator.\u21EC.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards white arrow on pedestal with horizontal bar michael@0: operator.\u21ED.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards white arrow on pedestal with vertical bar michael@0: operator.\u21EE.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards white double arrow michael@0: operator.\u21EF.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards white double arrow on pedestal michael@0: operator.\u21F0.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards white arrow from wall michael@0: operator.\u21F1.infix = lspace:5 rspace:5 # north west arrow to corner michael@0: operator.\u21F2.infix = lspace:5 rspace:5 # south east arrow to corner michael@0: operator.\u21F3.infix = lspace:5 rspace:5 stretchy direction:vertical # up down white arrow michael@0: operator.\u21F4.infix = lspace:5 rspace:5 accent # right arrow with small circle michael@0: operator.\u21F5.infix = lspace:5 rspace:5 stretchy direction:vertical # ⇵ michael@0: operator.\u21F6.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # three rightwards arrows michael@0: operator.\u21F7.infix = lspace:5 rspace:5 accent # leftwards arrow with vertical stroke michael@0: operator.\u21F8.infix = lspace:5 rspace:5 accent # rightwards arrow with vertical stroke michael@0: operator.\u21F9.infix = lspace:5 rspace:5 accent # left right arrow with vertical stroke michael@0: operator.\u21FA.infix = lspace:5 rspace:5 accent # leftwards arrow with double vertical stroke michael@0: operator.\u21FB.infix = lspace:5 rspace:5 accent # rightwards arrow with double vertical stroke michael@0: operator.\u21FC.infix = lspace:5 rspace:5 accent # left right arrow with double vertical stroke michael@0: operator.\u21FD.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards open-headed arrow michael@0: operator.\u21FE.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards open-headed arrow michael@0: operator.\u21FF.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # left right open-headed arrow michael@0: operator.\u2200.prefix = lspace:2 rspace:1 # ∀ michael@0: operator.\u2201.infix = lspace:1 rspace:2 # complement michael@0: operator.\u2202.prefix = lspace:2 rspace:1 # ∂ michael@0: operator.\u2203.prefix = lspace:2 rspace:1 # ∃ michael@0: operator.\u2204.prefix = lspace:2 rspace:1 # ∄ michael@0: operator.\u2206.infix = lspace:3 rspace:3 # increment michael@0: operator.\u2207.prefix = lspace:2 rspace:1 # ∇ michael@0: operator.\u2208.infix = lspace:5 rspace:5 # ∈ michael@0: operator.\u2209.infix = lspace:5 rspace:5 # ∉ michael@0: operator.\u220A.infix = lspace:5 rspace:5 # small element of michael@0: operator.\u220B.infix = lspace:5 rspace:5 # ∋ ∋ michael@0: operator.\u220C.infix = lspace:5 rspace:5 # ∌ michael@0: operator.\u220D.infix = lspace:5 rspace:5 # small contains as member michael@0: operator.\u220E.infix = lspace:3 rspace:3 # end of proof michael@0: operator.\u220F.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ∏ michael@0: operator.\u2210.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ∐ michael@0: operator.\u2211.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical mirrorable # ∑ michael@0: operator.\u2212.infix = lspace:4 rspace:4 # official Unicode minus sign michael@0: operator.\u2212.prefix = lspace:0 rspace:1 # official Unicode minus sign michael@0: operator.\u2213.infix = lspace:4 rspace:4 # ∓ michael@0: operator.\u2213.prefix = lspace:0 rspace:1 # ∓ michael@0: operator.\u2214.infix = lspace:4 rspace:4 # dot plus michael@0: operator.\u2215.infix = lspace:4 rspace:4 stretchy mirrorable direction:vertical # division slash michael@0: operator.\u2216.infix = lspace:4 rspace:4 direction:vertical # set minus michael@0: operator.\u2217.infix = lspace:4 rspace:4 # asterisk operator michael@0: operator.\u2218.infix = lspace:4 rspace:4 # ∘ michael@0: operator.\u2219.infix = lspace:4 rspace:4 # bullet operator michael@0: operator.\u221A.prefix = lspace:1 rspace:1 stretchy direction:vertical mirrorable # √ michael@0: operator.\u221B.prefix = lspace:1 rspace:1 # cube root michael@0: operator.\u221C.prefix = lspace:1 rspace:1 # fourth root michael@0: operator.\u221D.infix = lspace:5 rspace:5 # ∝ michael@0: operator.\u221F.infix = lspace:5 rspace:5 # right angle michael@0: operator.\u2220.prefix = lspace:0 rspace:0 # angle michael@0: operator.\u2221.prefix = lspace:0 rspace:0 # measured angle michael@0: operator.\u2222.prefix = lspace:0 rspace:0 # spherical angle michael@0: operator.\u2223.infix = lspace:5 rspace:5 direction:vertical # divides michael@0: operator.\u2224.infix = lspace:5 rspace:5 # ∤ michael@0: operator.\u2225.infix = lspace:5 rspace:5 direction:vertical # parallel to michael@0: operator.\u2226.infix = lspace:5 rspace:5 # ∦ michael@0: operator.\u2227.infix = lspace:4 rspace:4 # ∧ michael@0: operator.\u2228.infix = lspace:4 rspace:4 # ∨ michael@0: operator.\u2229.infix = lspace:4 rspace:4 # ∩ michael@0: operator.\u222A.infix = lspace:4 rspace:4 # ∪ michael@0: operator.\u222B.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral mirrorable # ∫ michael@0: operator.\u222C.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral mirrorable # double integral michael@0: operator.\u222D.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral mirrorable # triple integral michael@0: operator.\u222E.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral mirrorable # ∮ michael@0: operator.\u222F.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral mirrorable # ∯ michael@0: operator.\u2230.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral mirrorable # volume integral michael@0: operator.\u2231.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral # clockwise integral michael@0: operator.\u2232.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral # ∲ michael@0: operator.\u2233.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral # ∳ michael@0: operator.\u2234.infix = lspace:5 rspace:5 # ∴ michael@0: operator.\u2235.infix = lspace:5 rspace:5 # ∵ michael@0: operator.\u2236.infix = lspace:5 rspace:5 # ratio michael@0: operator.\u2237.infix = lspace:5 rspace:5 # ∷ ∷ michael@0: operator.\u2238.infix = lspace:4 rspace:4 # dot minus michael@0: operator.\u2239.infix = lspace:5 rspace:5 # excess michael@0: operator.\u223A.infix = lspace:4 rspace:4 # geometric proportion michael@0: operator.\u223B.infix = lspace:5 rspace:5 # homothetic michael@0: operator.\u223C.infix = lspace:5 rspace:5 # ∼ michael@0: operator.\u223D.infix = lspace:5 rspace:5 # reversed tilde michael@0: operator.\u223D\u0331.infix = lspace:3 rspace:3 # reversed tilde with underline michael@0: operator.\u223E.infix = lspace:5 rspace:5 # inverted lazy s michael@0: operator.\u223F.infix = lspace:3 rspace:3 # sine wave michael@0: operator.\u2240.infix = lspace:4 rspace:4 # ≀ michael@0: operator.\u2241.infix = lspace:5 rspace:5 # ≁ michael@0: operator.\u2242.infix = lspace:5 rspace:5 # ≂ michael@0: operator.\u2242\u0338.infix = lspace:5 rspace:5 # ≂̸ michael@0: operator.\u2243.infix = lspace:5 rspace:5 # ≃ michael@0: operator.\u2244.infix = lspace:5 rspace:5 # ≄ michael@0: operator.\u2245.infix = lspace:5 rspace:5 # ≅ michael@0: operator.\u2246.infix = lspace:5 rspace:5 # approximately but not actually equal to michael@0: operator.\u2247.infix = lspace:5 rspace:5 # ≇ michael@0: operator.\u2248.infix = lspace:5 rspace:5 # ≈ michael@0: operator.\u2249.infix = lspace:5 rspace:5 # ≉ michael@0: operator.\u224A.infix = lspace:5 rspace:5 # almost equal or equal to michael@0: operator.\u224B.infix = lspace:5 rspace:5 # triple tilde michael@0: operator.\u224C.infix = lspace:5 rspace:5 # all equal to michael@0: operator.\u224D.infix = lspace:5 rspace:5 # ≍ michael@0: operator.\u224E.infix = lspace:5 rspace:5 # ≎ michael@0: operator.\u224E\u0338.infix = lspace:5 rspace:5 # ≎̸ michael@0: operator.\u224F.infix = lspace:5 rspace:5 # ≏ michael@0: operator.\u224F\u0338.infix = lspace:5 rspace:5 # ≏̸ michael@0: operator.\u2250.infix = lspace:5 rspace:5 # ≐ michael@0: operator.\u2251.infix = lspace:5 rspace:5 # geometrically equal to michael@0: operator.\u2252.infix = lspace:5 rspace:5 # approximately equal to or the image of michael@0: operator.\u2253.infix = lspace:5 rspace:5 # image of or approximately equal to michael@0: operator.\u2254.infix = lspace:5 rspace:5 # ≔ michael@0: operator.\u2255.infix = lspace:5 rspace:5 # equals colon michael@0: operator.\u2256.infix = lspace:5 rspace:5 # ring in equal to michael@0: operator.\u2257.infix = lspace:5 rspace:5 # ring equal to michael@0: operator.\u2258.infix = lspace:5 rspace:5 # corresponds to michael@0: operator.\u2259.infix = lspace:5 rspace:5 # estimates michael@0: operator.\u225A.infix = lspace:5 rspace:5 # equiangular to michael@0: operator.\u225C.infix = lspace:5 rspace:5 # delta equal to michael@0: operator.\u225D.infix = lspace:5 rspace:5 # equal to by definition michael@0: operator.\u225E.infix = lspace:5 rspace:5 # measured by michael@0: operator.\u225F.infix = lspace:5 rspace:5 # questioned equal to michael@0: operator.\u2260.infix = lspace:5 rspace:5 # ≠ michael@0: operator.\u2261.infix = lspace:5 rspace:5 # ≡ michael@0: operator.\u2262.infix = lspace:5 rspace:5 # ≢ michael@0: operator.\u2263.infix = lspace:5 rspace:5 # strictly equivalent to michael@0: operator.\u2264.infix = lspace:5 rspace:5 # ≤ michael@0: operator.\u2265.infix = lspace:5 rspace:5 # ≥ michael@0: operator.\u2266.infix = lspace:5 rspace:5 # ≦ michael@0: operator.\u2266\u0338.infix = lspace:5 rspace:5 # ≧̸ michael@0: operator.\u2267.infix = lspace:5 rspace:5 # ≧ michael@0: operator.\u2268.infix = lspace:5 rspace:5 # less-than but not equal to michael@0: operator.\u2269.infix = lspace:5 rspace:5 # greater-than but not equal to michael@0: operator.\u226A.infix = lspace:5 rspace:5 # ≪ michael@0: operator.\u226A\u0338.infix = lspace:5 rspace:5 # ≪̸ michael@0: operator.\u226B.infix = lspace:5 rspace:5 # ≫ michael@0: operator.\u226B\u0338.infix = lspace:5 rspace:5 # ≫̸ michael@0: operator.\u226C.infix = lspace:5 rspace:5 # between michael@0: operator.\u226D.infix = lspace:5 rspace:5 # ≭ michael@0: operator.\u226E.infix = lspace:5 rspace:5 # ≮ michael@0: operator.\u226F.infix = lspace:5 rspace:5 # ≯ michael@0: operator.\u2270.infix = lspace:5 rspace:5 # ≰ michael@0: operator.\u2271.infix = lspace:5 rspace:5 # ≱ michael@0: operator.\u2272.infix = lspace:5 rspace:5 # ≲ michael@0: operator.\u2273.infix = lspace:5 rspace:5 # ≳ michael@0: operator.\u2274.infix = lspace:5 rspace:5 # ≴ michael@0: operator.\u2275.infix = lspace:5 rspace:5 # ≵ michael@0: operator.\u2276.infix = lspace:5 rspace:5 # ≶ michael@0: operator.\u2277.infix = lspace:5 rspace:5 # ≷ michael@0: operator.\u2278.infix = lspace:5 rspace:5 # ≸ michael@0: operator.\u2279.infix = lspace:5 rspace:5 # ≹ michael@0: operator.\u227A.infix = lspace:5 rspace:5 # ≺ michael@0: operator.\u227B.infix = lspace:5 rspace:5 # ≻ michael@0: operator.\u227C.infix = lspace:5 rspace:5 # ≼ michael@0: operator.\u227D.infix = lspace:5 rspace:5 # ≽ michael@0: operator.\u227E.infix = lspace:5 rspace:5 # ≾ michael@0: operator.\u227F.infix = lspace:5 rspace:5 # ≿ michael@0: operator.\u227F\u0338.infix = lspace:5 rspace:5 # ≿̸ michael@0: operator.\u2280.infix = lspace:5 rspace:5 # ⊀ michael@0: operator.\u2281.infix = lspace:5 rspace:5 # ⊁ michael@0: operator.\u2282.infix = lspace:5 rspace:5 # ⊂ michael@0: operator.\u2282\u20D2.infix = lspace:5 rspace:5 # subset of with vertical line michael@0: operator.\u2283.infix = lspace:5 rspace:5 # ⊃ michael@0: operator.\u2283\u20D2.infix = lspace:5 rspace:5 # superset of with vertical line michael@0: operator.\u2284.infix = lspace:5 rspace:5 # ⊄ michael@0: operator.\u2285.infix = lspace:5 rspace:5 # ⊅ michael@0: operator.\u2286.infix = lspace:5 rspace:5 # ⊆ michael@0: operator.\u2287.infix = lspace:5 rspace:5 # ⊇ michael@0: operator.\u2288.infix = lspace:5 rspace:5 # ⊈ michael@0: operator.\u2289.infix = lspace:5 rspace:5 # ⊉ michael@0: operator.\u228A.infix = lspace:5 rspace:5 # ⊊ ⊊ michael@0: operator.\u228B.infix = lspace:5 rspace:5 # superset of with not equal to michael@0: operator.\u228C.infix = lspace:4 rspace:4 # multiset michael@0: operator.\u228D.infix = lspace:4 rspace:4 # multiset multiplication michael@0: operator.\u228E.infix = lspace:4 rspace:4 direction:vertical # ⊎ michael@0: operator.\u228F.infix = lspace:5 rspace:5 # ⊏ michael@0: operator.\u228F\u0338.infix = lspace:5 rspace:5 # ⊏̸ michael@0: operator.\u2290.infix = lspace:5 rspace:5 # ⊐ michael@0: operator.\u2290\u0338.infix = lspace:5 rspace:5 # ⊐̸ michael@0: operator.\u2291.infix = lspace:5 rspace:5 # ⊑ michael@0: operator.\u2292.infix = lspace:5 rspace:5 # ⊒ michael@0: operator.\u2293.infix = lspace:4 rspace:4 direction:vertical # ⊓ michael@0: operator.\u2294.infix = lspace:4 rspace:4 direction:vertical # ⊔ michael@0: operator.\u2295.infix = lspace:4 rspace:4 # ⊕ michael@0: operator.\u2296.infix = lspace:4 rspace:4 # ⊖ michael@0: operator.\u2297.infix = lspace:4 rspace:4 # ⊗ michael@0: operator.\u2298.infix = lspace:4 rspace:4 # circled division slash michael@0: operator.\u2299.infix = lspace:4 rspace:4 # ⊙ michael@0: operator.\u229A.infix = lspace:4 rspace:4 # circled ring operator michael@0: operator.\u229B.infix = lspace:4 rspace:4 # circled asterisk operator michael@0: operator.\u229C.infix = lspace:4 rspace:4 # circled equals michael@0: operator.\u229D.infix = lspace:4 rspace:4 # circled dash michael@0: operator.\u229E.infix = lspace:4 rspace:4 # squared plus michael@0: operator.\u229F.infix = lspace:4 rspace:4 # squared minus michael@0: operator.\u22A0.infix = lspace:4 rspace:4 # squared times michael@0: operator.\u22A1.infix = lspace:4 rspace:4 # squared dot operator michael@0: operator.\u22A2.infix = lspace:5 rspace:5 # ⊢ michael@0: operator.\u22A3.infix = lspace:5 rspace:5 # ⊣ michael@0: operator.\u22A4.infix = lspace:5 rspace:5 # ⊤ michael@0: operator.\u22A5.infix = lspace:5 rspace:5 # ⊥ michael@0: operator.\u22A6.infix = lspace:5 rspace:5 # assertion michael@0: operator.\u22A7.infix = lspace:5 rspace:5 # models michael@0: operator.\u22A8.infix = lspace:5 rspace:5 # ⊨ michael@0: operator.\u22A9.infix = lspace:5 rspace:5 # forces michael@0: operator.\u22AA.infix = lspace:5 rspace:5 # triple vertical bar right turnstile michael@0: operator.\u22AB.infix = lspace:5 rspace:5 # double vertical bar double right turnstile michael@0: operator.\u22AC.infix = lspace:5 rspace:5 # does not prove michael@0: operator.\u22AD.infix = lspace:5 rspace:5 # not true michael@0: operator.\u22AE.infix = lspace:5 rspace:5 # does not force michael@0: operator.\u22AF.infix = lspace:5 rspace:5 # negated double vertical bar double right turnstile michael@0: operator.\u22B0.infix = lspace:5 rspace:5 # precedes under relation michael@0: operator.\u22B1.infix = lspace:5 rspace:5 # succeeds under relation michael@0: operator.\u22B2.infix = lspace:5 rspace:5 # ⊲ michael@0: operator.\u22B3.infix = lspace:5 rspace:5 # ⊳ michael@0: operator.\u22B4.infix = lspace:5 rspace:5 # ⊴ michael@0: operator.\u22B5.infix = lspace:5 rspace:5 # ⊵ michael@0: operator.\u22B6.infix = lspace:5 rspace:5 # original of michael@0: operator.\u22B7.infix = lspace:5 rspace:5 # image of michael@0: operator.\u22B8.infix = lspace:5 rspace:5 # multimap michael@0: operator.\u22B9.infix = lspace:5 rspace:5 # hermitian conjugate matrix michael@0: operator.\u22BA.infix = lspace:4 rspace:4 # intercalate michael@0: operator.\u22BB.infix = lspace:4 rspace:4 # xor michael@0: operator.\u22BC.infix = lspace:4 rspace:4 # nand michael@0: operator.\u22BD.infix = lspace:4 rspace:4 # nor michael@0: operator.\u22BE.infix = lspace:3 rspace:3 # right angle with arc michael@0: operator.\u22BF.infix = lspace:3 rspace:3 # right triangle michael@0: operator.\u22C0.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ⋀ michael@0: operator.\u22C1.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ⋁ michael@0: operator.\u22C2.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ⋂ michael@0: operator.\u22C3.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ⋃ michael@0: operator.\u22C4.infix = lspace:4 rspace:4 # ⋄ michael@0: operator.\u22C5.infix = lspace:4 rspace:4 # ċ michael@0: operator.\u22C6.infix = lspace:4 rspace:4 # ⋆ michael@0: operator.\u22C7.infix = lspace:4 rspace:4 # division times michael@0: operator.\u22C8.infix = lspace:5 rspace:5 # bowtie michael@0: operator.\u22C9.infix = lspace:4 rspace:4 # left normal factor semidirect product michael@0: operator.\u22CA.infix = lspace:4 rspace:4 # right normal factor semidirect product michael@0: operator.\u22CB.infix = lspace:4 rspace:4 # left semidirect product michael@0: operator.\u22CC.infix = lspace:4 rspace:4 # right semidirect product michael@0: operator.\u22CD.infix = lspace:5 rspace:5 # reversed tilde equals michael@0: operator.\u22CE.infix = lspace:4 rspace:4 # curly logical or michael@0: operator.\u22CF.infix = lspace:4 rspace:4 # curly logical and michael@0: operator.\u22D0.infix = lspace:5 rspace:5 # ⋐ michael@0: operator.\u22D1.infix = lspace:5 rspace:5 # double superset michael@0: operator.\u22D2.infix = lspace:4 rspace:4 # ⋒ michael@0: operator.\u22D3.infix = lspace:4 rspace:4 # ⋓ michael@0: operator.\u22D4.infix = lspace:5 rspace:5 # pitchfork michael@0: operator.\u22D5.infix = lspace:5 rspace:5 # equal and parallel to michael@0: operator.\u22D6.infix = lspace:5 rspace:5 # less-than with dot michael@0: operator.\u22D7.infix = lspace:5 rspace:5 # greater-than with dot michael@0: operator.\u22D8.infix = lspace:5 rspace:5 # very much less-than michael@0: operator.\u22D9.infix = lspace:5 rspace:5 # very much greater-than michael@0: operator.\u22DA.infix = lspace:5 rspace:5 # ⋚ michael@0: operator.\u22DB.infix = lspace:5 rspace:5 # ⋛ michael@0: operator.\u22DC.infix = lspace:5 rspace:5 # equal to or less-than michael@0: operator.\u22DD.infix = lspace:5 rspace:5 # equal to or greater-than michael@0: operator.\u22DE.infix = lspace:5 rspace:5 # equal to or precedes michael@0: operator.\u22DF.infix = lspace:5 rspace:5 # equal to or succeeds michael@0: operator.\u22E0.infix = lspace:5 rspace:5 # ⋠ michael@0: operator.\u22E1.infix = lspace:5 rspace:5 # ⋡ michael@0: operator.\u22E2.infix = lspace:5 rspace:5 # ⋢ michael@0: operator.\u22E3.infix = lspace:5 rspace:5 # ⋣ michael@0: operator.\u22E4.infix = lspace:5 rspace:5 # square image of or not equal to michael@0: operator.\u22E5.infix = lspace:5 rspace:5 # square original of or not equal to michael@0: operator.\u22E6.infix = lspace:5 rspace:5 # less-than but not equivalent to michael@0: operator.\u22E7.infix = lspace:5 rspace:5 # greater-than but not equivalent to michael@0: operator.\u22E8.infix = lspace:5 rspace:5 # precedes but not equivalent to michael@0: operator.\u22E9.infix = lspace:5 rspace:5 # succeeds but not equivalent to michael@0: operator.\u22EA.infix = lspace:5 rspace:5 # ⋪ michael@0: operator.\u22EB.infix = lspace:5 rspace:5 # ⋫ michael@0: operator.\u22EC.infix = lspace:5 rspace:5 # ⋬ michael@0: operator.\u22ED.infix = lspace:5 rspace:5 # ⋭ michael@0: operator.\u22EE.infix = lspace:5 rspace:5 # vertical ellipsis michael@0: operator.\u22EF.infix = lspace:0 rspace:0 # midline horizontal ellipsis michael@0: operator.\u22F0.infix = lspace:5 rspace:5 # up right diagonal ellipsis michael@0: operator.\u22F1.infix = lspace:5 rspace:5 # down right diagonal ellipsis michael@0: operator.\u22F2.infix = lspace:5 rspace:5 # element of with long horizontal stroke michael@0: operator.\u22F3.infix = lspace:5 rspace:5 # element of with vertical bar at end of horizontal stroke michael@0: operator.\u22F4.infix = lspace:5 rspace:5 # small element of with vertical bar at end of horizontal stroke michael@0: operator.\u22F5.infix = lspace:5 rspace:5 # element of with dot above michael@0: operator.\u22F6.infix = lspace:5 rspace:5 # element of with overbar michael@0: operator.\u22F7.infix = lspace:5 rspace:5 # small element of with overbar michael@0: operator.\u22F8.infix = lspace:5 rspace:5 # element of with underbar michael@0: operator.\u22F9.infix = lspace:5 rspace:5 # element of with two horizontal strokes michael@0: operator.\u22FA.infix = lspace:5 rspace:5 # contains with long horizontal stroke michael@0: operator.\u22FB.infix = lspace:5 rspace:5 # contains with vertical bar at end of horizontal stroke michael@0: operator.\u22FC.infix = lspace:5 rspace:5 # small contains with vertical bar at end of horizontal stroke michael@0: operator.\u22FD.infix = lspace:5 rspace:5 # contains with overbar michael@0: operator.\u22FE.infix = lspace:5 rspace:5 # small contains with overbar michael@0: operator.\u22FF.infix = lspace:5 rspace:5 # z notation bag membership michael@0: operator.\u2308.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⌈ michael@0: operator.\u2309.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⌉ michael@0: operator.\u230A.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⌊ michael@0: operator.\u230B.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⌋ michael@0: operator.\u23B4.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⎴ michael@0: operator.\u23B5.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⎵ michael@0: operator.\u23DC.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏜ (Unicode) michael@0: operator.\u23DD.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏝ (Unicode) michael@0: operator.\u23DE.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏞ (Unicode) michael@0: operator.\u23DF.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏟ (Unicode) michael@0: operator.\u23E0.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # top tortoise shell bracket michael@0: operator.\u23E1.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # bottom tortoise shell bracket michael@0: operator.\u25A0.infix = lspace:3 rspace:3 # black square michael@0: operator.\u25A1.infix = lspace:3 rspace:3 # white square michael@0: operator.\u25AA.infix = lspace:3 rspace:3 # black small square michael@0: operator.\u25AB.infix = lspace:3 rspace:3 # white small square michael@0: operator.\u25AD.infix = lspace:3 rspace:3 # white rectangle michael@0: operator.\u25AE.infix = lspace:3 rspace:3 # black vertical rectangle michael@0: operator.\u25AF.infix = lspace:3 rspace:3 # white vertical rectangle michael@0: operator.\u25B0.infix = lspace:3 rspace:3 # black parallelogram michael@0: operator.\u25B1.infix = lspace:3 rspace:3 # white parallelogram michael@0: operator.\u25B2.infix = lspace:4 rspace:4 # black up-pointing triangle michael@0: operator.\u25B3.infix = lspace:4 rspace:4 # white up-pointing triangle michael@0: operator.\u25B4.infix = lspace:4 rspace:4 # black up-pointing small triangle michael@0: operator.\u25B5.infix = lspace:4 rspace:4 # white up-pointing small triangle michael@0: operator.\u25B6.infix = lspace:4 rspace:4 # black right-pointing triangle michael@0: operator.\u25B7.infix = lspace:4 rspace:4 # white right-pointing triangle michael@0: operator.\u25B8.infix = lspace:4 rspace:4 # black right-pointing small triangle michael@0: operator.\u25B9.infix = lspace:4 rspace:4 # white right-pointing small triangle michael@0: operator.\u25BC.infix = lspace:4 rspace:4 # black down-pointing triangle michael@0: operator.\u25BD.infix = lspace:4 rspace:4 # white down-pointing triangle michael@0: operator.\u25BE.infix = lspace:4 rspace:4 # black down-pointing small triangle michael@0: operator.\u25BF.infix = lspace:4 rspace:4 # white down-pointing small triangle michael@0: operator.\u25C0.infix = lspace:4 rspace:4 # black left-pointing triangle michael@0: operator.\u25C1.infix = lspace:4 rspace:4 # white left-pointing triangle michael@0: operator.\u25C2.infix = lspace:4 rspace:4 # black left-pointing small triangle michael@0: operator.\u25C3.infix = lspace:4 rspace:4 # white left-pointing small triangle michael@0: operator.\u25C4.infix = lspace:4 rspace:4 # black left-pointing pointer michael@0: operator.\u25C5.infix = lspace:4 rspace:4 # white left-pointing pointer michael@0: operator.\u25C6.infix = lspace:4 rspace:4 # black diamond michael@0: operator.\u25C7.infix = lspace:4 rspace:4 # white diamond michael@0: operator.\u25C8.infix = lspace:4 rspace:4 # white diamond containing black small diamond michael@0: operator.\u25C9.infix = lspace:4 rspace:4 # fisheye michael@0: operator.\u25CC.infix = lspace:4 rspace:4 # dotted circle michael@0: operator.\u25CD.infix = lspace:4 rspace:4 # circle with vertical fill michael@0: operator.\u25CE.infix = lspace:4 rspace:4 # bullseye michael@0: operator.\u25CF.infix = lspace:4 rspace:4 # black circle michael@0: operator.\u25D6.infix = lspace:4 rspace:4 # left half black circle michael@0: operator.\u25D7.infix = lspace:4 rspace:4 # right half black circle michael@0: operator.\u25E6.infix = lspace:4 rspace:4 # white bullet michael@0: operator.\u266D.postfix = lspace:0 rspace:2 # music flat sign michael@0: operator.\u266E.postfix = lspace:0 rspace:2 # music natural sign michael@0: operator.\u266F.postfix = lspace:0 rspace:2 # music sharp sign michael@0: operator.\u2758.infix = lspace:5 rspace:5 direction:vertical # light vertical bar michael@0: operator.\u2772.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # light left tortoise shell bracket ornament michael@0: operator.\u2773.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # light right tortoise shell bracket ornament michael@0: operator.\u27E6.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⟦ michael@0: operator.\u27E7.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⟧ michael@0: operator.\u27E8.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⟨ michael@0: operator.\u27E9.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # ⟩ michael@0: operator.\u27EA.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # mathematical left double angle bracket michael@0: operator.\u27EB.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # mathematical right double angle bracket michael@0: operator.\u27EC.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # mathematical left white tortoise shell bracket michael@0: operator.\u27ED.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # mathematical right white tortoise shell bracket michael@0: operator.\u27EE.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # mathematical left flattened parenthesis michael@0: operator.\u27EF.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # mathematical right flattened parenthesis michael@0: operator.\u27F0.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards quadruple arrow michael@0: operator.\u27F1.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards quadruple arrow michael@0: operator.\u27F5.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⟵ michael@0: operator.\u27F6.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⟶ michael@0: operator.\u27F7.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⟷ michael@0: operator.\u27F8.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⟸ michael@0: operator.\u27F9.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⟹ michael@0: operator.\u27FA.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⟺ michael@0: operator.\u27FB.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # long leftwards arrow from bar michael@0: operator.\u27FC.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # long rightwards arrow from bar michael@0: operator.\u27FD.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # long leftwards double arrow from bar michael@0: operator.\u27FE.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # long rightwards double arrow from bar michael@0: operator.\u27FF.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # long rightwards squiggle arrow michael@0: operator.\u2900.infix = lspace:5 rspace:5 accent # rightwards two-headed arrow with vertical stroke michael@0: operator.\u2901.infix = lspace:5 rspace:5 accent # rightwards two-headed arrow with double vertical stroke michael@0: operator.\u2902.infix = lspace:5 rspace:5 accent # leftwards double arrow with vertical stroke michael@0: operator.\u2903.infix = lspace:5 rspace:5 accent # rightwards double arrow with vertical stroke michael@0: operator.\u2904.infix = lspace:5 rspace:5 accent # left right double arrow with vertical stroke michael@0: operator.\u2905.infix = lspace:5 rspace:5 accent # rightwards two-headed arrow from bar michael@0: operator.\u2906.infix = lspace:5 rspace:5 accent # leftwards double arrow from bar michael@0: operator.\u2907.infix = lspace:5 rspace:5 accent # rightwards double arrow from bar michael@0: operator.\u2908.infix = lspace:5 rspace:5 # downwards arrow with horizontal stroke michael@0: operator.\u2909.infix = lspace:5 rspace:5 # upwards arrow with horizontal stroke michael@0: operator.\u290A.infix = lspace:5 rspace:5 stretchy direction:vertical # upwards triple arrow michael@0: operator.\u290B.infix = lspace:5 rspace:5 stretchy direction:vertical # downwards triple arrow michael@0: operator.\u290C.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards double dash arrow michael@0: operator.\u290D.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards double dash arrow michael@0: operator.\u290E.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # leftwards triple dash arrow michael@0: operator.\u290F.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards triple dash arrow michael@0: operator.\u2910.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # rightwards two-headed triple dash arrow michael@0: operator.\u2911.infix = lspace:5 rspace:5 accent # rightwards arrow with dotted stem michael@0: operator.\u2912.infix = lspace:5 rspace:5 stretchy direction:vertical # ⤒ michael@0: operator.\u2913.infix = lspace:5 rspace:5 stretchy direction:vertical # ⤓ michael@0: operator.\u2914.infix = lspace:5 rspace:5 accent # rightwards arrow with tail with vertical stroke michael@0: operator.\u2915.infix = lspace:5 rspace:5 accent # rightwards arrow with tail with double vertical stroke michael@0: operator.\u2916.infix = lspace:5 rspace:5 accent # rightwards two-headed arrow with tail michael@0: operator.\u2917.infix = lspace:5 rspace:5 accent # rightwards two-headed arrow with tail with vertical stroke michael@0: operator.\u2918.infix = lspace:5 rspace:5 accent # rightwards two-headed arrow with tail with double vertical stroke michael@0: operator.\u2919.infix = lspace:5 rspace:5 accent # leftwards arrow-tail michael@0: operator.\u291A.infix = lspace:5 rspace:5 accent # rightwards arrow-tail michael@0: operator.\u291B.infix = lspace:5 rspace:5 accent # leftwards double arrow-tail michael@0: operator.\u291C.infix = lspace:5 rspace:5 accent # rightwards double arrow-tail michael@0: operator.\u291D.infix = lspace:5 rspace:5 accent # leftwards arrow to black diamond michael@0: operator.\u291E.infix = lspace:5 rspace:5 accent # rightwards arrow to black diamond michael@0: operator.\u291F.infix = lspace:5 rspace:5 accent # leftwards arrow from bar to black diamond michael@0: operator.\u2920.infix = lspace:5 rspace:5 accent # rightwards arrow from bar to black diamond michael@0: operator.\u2923.infix = lspace:5 rspace:5 # north west arrow with hook michael@0: operator.\u2924.infix = lspace:5 rspace:5 # north east arrow with hook michael@0: operator.\u2925.infix = lspace:5 rspace:5 # south east arrow with hook michael@0: operator.\u2926.infix = lspace:5 rspace:5 # south west arrow with hook michael@0: operator.\u2927.infix = lspace:5 rspace:5 # north west arrow and north east arrow michael@0: operator.\u2928.infix = lspace:5 rspace:5 # north east arrow and south east arrow michael@0: operator.\u2929.infix = lspace:5 rspace:5 # south east arrow and south west arrow michael@0: operator.\u292A.infix = lspace:5 rspace:5 # south west arrow and north west arrow michael@0: operator.\u292B.infix = lspace:5 rspace:5 # rising diagonal crossing falling diagonal michael@0: operator.\u292C.infix = lspace:5 rspace:5 # falling diagonal crossing rising diagonal michael@0: operator.\u292D.infix = lspace:5 rspace:5 # south east arrow crossing north east arrow michael@0: operator.\u292E.infix = lspace:5 rspace:5 # north east arrow crossing south east arrow michael@0: operator.\u292F.infix = lspace:5 rspace:5 # falling diagonal crossing north east arrow michael@0: operator.\u2930.infix = lspace:5 rspace:5 # rising diagonal crossing south east arrow michael@0: operator.\u2931.infix = lspace:5 rspace:5 # north east arrow crossing north west arrow michael@0: operator.\u2932.infix = lspace:5 rspace:5 # north west arrow crossing north east arrow michael@0: operator.\u2933.infix = lspace:5 rspace:5 accent # wave arrow pointing directly right michael@0: operator.\u2934.infix = lspace:5 rspace:5 # arrow pointing rightwards then curving upwards michael@0: operator.\u2935.infix = lspace:5 rspace:5 # arrow pointing rightwards then curving downwards michael@0: operator.\u2936.infix = lspace:5 rspace:5 # arrow pointing downwards then curving leftwards michael@0: operator.\u2937.infix = lspace:5 rspace:5 # arrow pointing downwards then curving rightwards michael@0: operator.\u2938.infix = lspace:5 rspace:5 # right-side arc clockwise arrow michael@0: operator.\u2939.infix = lspace:5 rspace:5 # left-side arc anticlockwise arrow michael@0: operator.\u293A.infix = lspace:5 rspace:5 accent # top arc anticlockwise arrow michael@0: operator.\u293B.infix = lspace:5 rspace:5 accent # bottom arc anticlockwise arrow michael@0: operator.\u293C.infix = lspace:5 rspace:5 accent # top arc clockwise arrow with minus michael@0: operator.\u293D.infix = lspace:5 rspace:5 accent # top arc anticlockwise arrow with plus michael@0: operator.\u293E.infix = lspace:5 rspace:5 # lower right semicircular clockwise arrow michael@0: operator.\u293F.infix = lspace:5 rspace:5 # lower left semicircular anticlockwise arrow michael@0: operator.\u2940.infix = lspace:5 rspace:5 # anticlockwise closed circle arrow michael@0: operator.\u2941.infix = lspace:5 rspace:5 # clockwise closed circle arrow michael@0: operator.\u2942.infix = lspace:5 rspace:5 accent # rightwards arrow above short leftwards arrow michael@0: operator.\u2943.infix = lspace:5 rspace:5 accent # leftwards arrow above short rightwards arrow michael@0: operator.\u2944.infix = lspace:5 rspace:5 accent # short rightwards arrow above leftwards arrow michael@0: operator.\u2945.infix = lspace:5 rspace:5 accent # rightwards arrow with plus below michael@0: operator.\u2946.infix = lspace:5 rspace:5 accent # leftwards arrow with plus below michael@0: operator.\u2947.infix = lspace:5 rspace:5 accent # rightwards arrow through x michael@0: operator.\u2948.infix = lspace:5 rspace:5 accent # left right arrow through small circle michael@0: operator.\u2949.infix = lspace:5 rspace:5 # upwards two-headed arrow from small circle michael@0: operator.\u294A.infix = lspace:5 rspace:5 accent # left barb up right barb down harpoon michael@0: operator.\u294B.infix = lspace:5 rspace:5 accent # left barb down right barb up harpoon michael@0: operator.\u294C.infix = lspace:5 rspace:5 # up barb right down barb left harpoon michael@0: operator.\u294D.infix = lspace:5 rspace:5 # up barb left down barb right harpoon michael@0: operator.\u294E.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥎ michael@0: operator.\u294F.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥏ michael@0: operator.\u2950.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥐ michael@0: operator.\u2951.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥑ michael@0: operator.\u2952.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥒ michael@0: operator.\u2953.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥓ michael@0: operator.\u2954.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥔ michael@0: operator.\u2955.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥕ michael@0: operator.\u2956.infix = lspace:5 rspace:5 stretchy direction:horizontal # ⥖ michael@0: operator.\u2957.infix = lspace:5 rspace:5 stretchy direction:horizontal # ⥗ michael@0: operator.\u2958.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥘ michael@0: operator.\u2959.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥙ michael@0: operator.\u295A.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥚ michael@0: operator.\u295B.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥛ michael@0: operator.\u295C.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥜ michael@0: operator.\u295D.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥝ michael@0: operator.\u295E.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥞ michael@0: operator.\u295F.infix = lspace:5 rspace:5 stretchy accent direction:horizontal # ⥟ michael@0: operator.\u2960.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥠ michael@0: operator.\u2961.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥡ michael@0: operator.\u2962.infix = lspace:5 rspace:5 accent # leftwards harpoon with barb up above leftwards harpoon with barb down michael@0: operator.\u2963.infix = lspace:5 rspace:5 # upwards harpoon with barb left beside upwards harpoon with barb right michael@0: operator.\u2964.infix = lspace:5 rspace:5 accent # rightwards harpoon with barb up above rightwards harpoon with barb down michael@0: operator.\u2965.infix = lspace:5 rspace:5 # downwards harpoon with barb left beside downwards harpoon with barb right michael@0: operator.\u2966.infix = lspace:5 rspace:5 accent # leftwards harpoon with barb up above rightwards harpoon with barb up michael@0: operator.\u2967.infix = lspace:5 rspace:5 accent # leftwards harpoon with barb down above rightwards harpoon with barb down michael@0: operator.\u2968.infix = lspace:5 rspace:5 accent # rightwards harpoon with barb up above leftwards harpoon with barb up michael@0: operator.\u2969.infix = lspace:5 rspace:5 accent # rightwards harpoon with barb down above leftwards harpoon with barb down michael@0: operator.\u296A.infix = lspace:5 rspace:5 accent # leftwards harpoon with barb up above long dash michael@0: operator.\u296B.infix = lspace:5 rspace:5 accent # leftwards harpoon with barb down below long dash michael@0: operator.\u296C.infix = lspace:5 rspace:5 accent # rightwards harpoon with barb up above long dash michael@0: operator.\u296D.infix = lspace:5 rspace:5 accent # rightwards harpoon with barb down below long dash michael@0: operator.\u296E.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥮ michael@0: operator.\u296F.infix = lspace:5 rspace:5 stretchy direction:vertical # ⥯ michael@0: operator.\u2970.infix = lspace:5 rspace:5 accent # ⥰ michael@0: operator.\u2971.infix = lspace:5 rspace:5 accent # equals sign above rightwards arrow michael@0: operator.\u2972.infix = lspace:5 rspace:5 accent # tilde operator above rightwards arrow michael@0: operator.\u2973.infix = lspace:5 rspace:5 accent # leftwards arrow above tilde operator michael@0: operator.\u2974.infix = lspace:5 rspace:5 accent # rightwards arrow above tilde operator michael@0: operator.\u2975.infix = lspace:5 rspace:5 accent # rightwards arrow above almost equal to michael@0: operator.\u2976.infix = lspace:5 rspace:5 accent # less-than above leftwards arrow michael@0: operator.\u2977.infix = lspace:5 rspace:5 accent # leftwards arrow through less-than michael@0: operator.\u2978.infix = lspace:5 rspace:5 accent # greater-than above rightwards arrow michael@0: operator.\u2979.infix = lspace:5 rspace:5 accent # subset above rightwards arrow michael@0: operator.\u297A.infix = lspace:5 rspace:5 accent # leftwards arrow through subset michael@0: operator.\u297B.infix = lspace:5 rspace:5 accent # superset above leftwards arrow michael@0: operator.\u297C.infix = lspace:5 rspace:5 accent # left fish tail michael@0: operator.\u297D.infix = lspace:5 rspace:5 accent # right fish tail michael@0: operator.\u297E.infix = lspace:5 rspace:5 # up fish tail michael@0: operator.\u297F.infix = lspace:5 rspace:5 # down fish tail michael@0: operator.\u2980.prefix = lspace:0 rspace:0 stretchy fence direction:vertical # triple direction:vertical bar delimiter michael@0: operator.\u2980.postfix = lspace:0 rspace:0 stretchy fence direction:vertical # triple direction:vertical bar delimiter michael@0: operator.\u2981.infix = lspace:3 rspace:3 # z notation spot michael@0: operator.\u2982.infix = lspace:3 rspace:3 # z notation type colon michael@0: operator.\u2983.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left white curly bracket michael@0: operator.\u2984.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right white curly bracket michael@0: operator.\u2985.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left white parenthesis michael@0: operator.\u2986.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right white parenthesis michael@0: operator.\u2987.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # z notation left image bracket michael@0: operator.\u2988.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # z notation right image bracket michael@0: operator.\u2989.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # z notation left binding bracket michael@0: operator.\u298A.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # z notation right binding bracket michael@0: operator.\u298B.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left square bracket with underbar michael@0: operator.\u298C.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right square bracket with underbar michael@0: operator.\u298D.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left square bracket with tick in top corner michael@0: operator.\u298E.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right square bracket with tick in bottom corner michael@0: operator.\u298F.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left square bracket with tick in bottom corner michael@0: operator.\u2990.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right square bracket with tick in top corner michael@0: operator.\u2991.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left angle bracket with dot michael@0: operator.\u2992.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right angle bracket with dot michael@0: operator.\u2993.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left arc less-than bracket michael@0: operator.\u2994.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right arc greater-than bracket michael@0: operator.\u2995.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # double left arc greater-than bracket michael@0: operator.\u2996.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # double right arc less-than bracket michael@0: operator.\u2997.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left black tortoise shell bracket michael@0: operator.\u2998.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right black tortoise shell bracket michael@0: operator.\u2999.infix = lspace:3 rspace:3 # dotted fence michael@0: operator.\u299A.infix = lspace:3 rspace:3 # vertical zigzag line michael@0: operator.\u299B.infix = lspace:3 rspace:3 # measured angle opening left michael@0: operator.\u299C.infix = lspace:3 rspace:3 # right angle variant with square michael@0: operator.\u299D.infix = lspace:3 rspace:3 # measured right angle with dot michael@0: operator.\u299E.infix = lspace:3 rspace:3 # angle with s inside michael@0: operator.\u299F.infix = lspace:3 rspace:3 # acute angle michael@0: operator.\u29A0.infix = lspace:3 rspace:3 # spherical angle opening left michael@0: operator.\u29A1.infix = lspace:3 rspace:3 # spherical angle opening up michael@0: operator.\u29A2.infix = lspace:3 rspace:3 # turned angle michael@0: operator.\u29A3.infix = lspace:3 rspace:3 # reversed angle michael@0: operator.\u29A4.infix = lspace:3 rspace:3 # angle with underbar michael@0: operator.\u29A5.infix = lspace:3 rspace:3 # reversed angle with underbar michael@0: operator.\u29A6.infix = lspace:3 rspace:3 # oblique angle opening up michael@0: operator.\u29A7.infix = lspace:3 rspace:3 # oblique angle opening down michael@0: operator.\u29A8.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing up and right michael@0: operator.\u29A9.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing up and left michael@0: operator.\u29AA.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing down and right michael@0: operator.\u29AB.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing down and left michael@0: operator.\u29AC.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing right and up michael@0: operator.\u29AD.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing left and up michael@0: operator.\u29AE.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing right and down michael@0: operator.\u29AF.infix = lspace:3 rspace:3 # measured angle with open arm ending in arrow pointing left and down michael@0: operator.\u29B0.infix = lspace:3 rspace:3 # reversed empty set michael@0: operator.\u29B1.infix = lspace:3 rspace:3 # empty set with overbar michael@0: operator.\u29B2.infix = lspace:3 rspace:3 # empty set with small circle above michael@0: operator.\u29B3.infix = lspace:3 rspace:3 # empty set with right arrow above michael@0: operator.\u29B4.infix = lspace:3 rspace:3 # empty set with left arrow above michael@0: operator.\u29B5.infix = lspace:3 rspace:3 # circle with horizontal bar michael@0: operator.\u29B6.infix = lspace:4 rspace:4 # circled vertical bar michael@0: operator.\u29B7.infix = lspace:4 rspace:4 # circled parallel michael@0: operator.\u29B8.infix = lspace:4 rspace:4 # circled reverse solidus michael@0: operator.\u29B9.infix = lspace:4 rspace:4 # circled perpendicular michael@0: operator.\u29BA.infix = lspace:4 rspace:4 # circle divided by horizontal bar and top half divided by vertical bar michael@0: operator.\u29BB.infix = lspace:4 rspace:4 # circle with superimposed x michael@0: operator.\u29BC.infix = lspace:4 rspace:4 # circled anticlockwise-rotated division sign michael@0: operator.\u29BD.infix = lspace:4 rspace:4 # up arrow through circle michael@0: operator.\u29BE.infix = lspace:4 rspace:4 # circled white bullet michael@0: operator.\u29BF.infix = lspace:4 rspace:4 # circled bullet michael@0: operator.\u29C0.infix = lspace:5 rspace:5 # circled less-than michael@0: operator.\u29C1.infix = lspace:5 rspace:5 # circled greater-than michael@0: operator.\u29C2.infix = lspace:3 rspace:3 # circle with small circle to the right michael@0: operator.\u29C3.infix = lspace:3 rspace:3 # circle with two horizontal strokes to the right michael@0: operator.\u29C4.infix = lspace:4 rspace:4 # squared rising diagonal slash michael@0: operator.\u29C5.infix = lspace:4 rspace:4 # squared falling diagonal slash michael@0: operator.\u29C6.infix = lspace:4 rspace:4 # squared asterisk michael@0: operator.\u29C7.infix = lspace:4 rspace:4 # squared small circle michael@0: operator.\u29C8.infix = lspace:4 rspace:4 # squared square michael@0: operator.\u29C9.infix = lspace:3 rspace:3 # two joined squares michael@0: operator.\u29CA.infix = lspace:3 rspace:3 # triangle with dot above michael@0: operator.\u29CB.infix = lspace:3 rspace:3 # triangle with underbar michael@0: operator.\u29CC.infix = lspace:3 rspace:3 # s in triangle michael@0: operator.\u29CD.infix = lspace:3 rspace:3 # triangle with serifs at bottom michael@0: operator.\u29CE.infix = lspace:5 rspace:5 # right triangle above left triangle michael@0: operator.\u29CF.infix = lspace:5 rspace:5 # ⧏ michael@0: operator.\u29CF\u0338.infix = lspace:5 rspace:5 # ⧏̸ michael@0: operator.\u29D0.infix = lspace:5 rspace:5 # ⧐ michael@0: operator.\u29D0\u0338.infix = lspace:5 rspace:5 # ⧐̸ michael@0: operator.\u29D1.infix = lspace:5 rspace:5 # bowtie with left half black michael@0: operator.\u29D2.infix = lspace:5 rspace:5 # bowtie with right half black michael@0: operator.\u29D3.infix = lspace:5 rspace:5 # black bowtie michael@0: operator.\u29D4.infix = lspace:5 rspace:5 # times with left half black michael@0: operator.\u29D5.infix = lspace:5 rspace:5 # times with right half black michael@0: operator.\u29D6.infix = lspace:4 rspace:4 # white hourglass michael@0: operator.\u29D7.infix = lspace:4 rspace:4 # black hourglass michael@0: operator.\u29D8.infix = lspace:3 rspace:3 # left wiggly fence michael@0: operator.\u29D9.infix = lspace:3 rspace:3 # right wiggly fence michael@0: operator.\u29DB.infix = lspace:3 rspace:3 # right double wiggly fence michael@0: operator.\u29DC.infix = lspace:3 rspace:3 # incomplete infinity michael@0: operator.\u29DD.infix = lspace:3 rspace:3 # tie over infinity michael@0: operator.\u29DE.infix = lspace:5 rspace:5 # infinity negated with vertical bar michael@0: operator.\u29DF.infix = lspace:3 rspace:3 # double-ended multimap michael@0: operator.\u29E0.infix = lspace:3 rspace:3 # square with contoured outline michael@0: operator.\u29E1.infix = lspace:5 rspace:5 # increases as michael@0: operator.\u29E2.infix = lspace:4 rspace:4 # shuffle product michael@0: operator.\u29E3.infix = lspace:5 rspace:5 # equals sign and slanted parallel michael@0: operator.\u29E4.infix = lspace:5 rspace:5 # equals sign and slanted parallel with tilde above michael@0: operator.\u29E5.infix = lspace:5 rspace:5 # identical to and slanted parallel michael@0: operator.\u29E6.infix = lspace:5 rspace:5 # gleich stark michael@0: operator.\u29E7.infix = lspace:3 rspace:3 # thermodynamic michael@0: operator.\u29E8.infix = lspace:3 rspace:3 # down-pointing triangle with left half black michael@0: operator.\u29E9.infix = lspace:3 rspace:3 # down-pointing triangle with right half black michael@0: operator.\u29EA.infix = lspace:3 rspace:3 # black diamond with down arrow michael@0: operator.\u29EB.infix = lspace:3 rspace:3 # black lozenge michael@0: operator.\u29EC.infix = lspace:3 rspace:3 # white circle with down arrow michael@0: operator.\u29ED.infix = lspace:3 rspace:3 # black circle with down arrow michael@0: operator.\u29EE.infix = lspace:3 rspace:3 # error-barred white square michael@0: operator.\u29EF.infix = lspace:3 rspace:3 # error-barred black square michael@0: operator.\u29F0.infix = lspace:3 rspace:3 # error-barred white diamond michael@0: operator.\u29F1.infix = lspace:3 rspace:3 # error-barred black diamond michael@0: operator.\u29F2.infix = lspace:3 rspace:3 # error-barred white circle michael@0: operator.\u29F3.infix = lspace:3 rspace:3 # error-barred black circle michael@0: operator.\u29F4.infix = lspace:5 rspace:5 # rule-delayed michael@0: operator.\u29F5.infix = lspace:4 rspace:4 # reverse solidus operator michael@0: operator.\u29F6.infix = lspace:4 rspace:4 # solidus with overbar michael@0: operator.\u29F7.infix = lspace:4 rspace:4 # reverse solidus with horizontal stroke michael@0: operator.\u29F8.infix = lspace:3 rspace:3 # big solidus michael@0: operator.\u29F9.infix = lspace:3 rspace:3 # big reverse solidus michael@0: operator.\u29FA.infix = lspace:3 rspace:3 # double plus michael@0: operator.\u29FB.infix = lspace:3 rspace:3 # triple plus michael@0: operator.\u29FC.prefix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # left-pointing curved angle bracket michael@0: operator.\u29FD.postfix = lspace:0 rspace:0 stretchy fence symmetric mirrorable direction:vertical # right-pointing curved angle bracket michael@0: operator.\u29FE.infix = lspace:4 rspace:4 # tiny michael@0: operator.\u29FF.infix = lspace:4 rspace:4 # miny michael@0: operator.\u2A00.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # ⨀ michael@0: operator.\u2A01.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # ⨁ michael@0: operator.\u2A02.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # ⨂ michael@0: operator.\u2A03.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # n-ary union operator with dot michael@0: operator.\u2A04.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ⨄ michael@0: operator.\u2A05.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # n-ary square intersection operator michael@0: operator.\u2A06.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ⨆ michael@0: operator.\u2A07.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # two logical and operator michael@0: operator.\u2A08.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # two logical or operator michael@0: operator.\u2A09.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # n-ary times operator michael@0: operator.\u2A0A.prefix = lspace:1 rspace:2 largeop movablelimits symmetric mirrorable # modulo two sum michael@0: operator.\u2A0B.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # summation with integral michael@0: operator.\u2A0C.prefix = lspace:0 rspace:1 largeop symmetric direction:vertical integral mirrorable # quadruple integral operator michael@0: operator.\u2A0D.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # finite part integral michael@0: operator.\u2A0E.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral with double stroke michael@0: operator.\u2A0F.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral average with slash michael@0: operator.\u2A10.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical integral mirrorable # circulation function michael@0: operator.\u2A11.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical integral # anticlockwise integration michael@0: operator.\u2A12.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical integral mirrorable # line integration with rectangular path around pole michael@0: operator.\u2A13.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical integral mirrorable # line integration with semicircular path around pole michael@0: operator.\u2A14.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical integral mirrorable # line integration not including the pole michael@0: operator.\u2A15.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral around a point operator michael@0: operator.\u2A16.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # quaternion integral operator michael@0: operator.\u2A17.prefix = lspace:1 rspace:2 largeop symmetric integral mirrorable direction:vertical # integral with leftwards arrow with hook michael@0: operator.\u2A18.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral with times sign michael@0: operator.\u2A19.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral with intersection michael@0: operator.\u2A1A.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral with union michael@0: operator.\u2A1B.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral with overbar michael@0: operator.\u2A1C.prefix = lspace:1 rspace:2 largeop symmetric direction:vertical integral mirrorable # integral with underbar michael@0: operator.\u2A1D.infix = lspace:3 rspace:3 # join michael@0: operator.\u2A1E.infix = lspace:3 rspace:3 # large left triangle operator michael@0: operator.\u2A1F.infix = lspace:3 rspace:3 # z notation schema composition michael@0: operator.\u2A20.infix = lspace:3 rspace:3 # z notation schema piping michael@0: operator.\u2A21.infix = lspace:3 rspace:3 # z notation schema projection michael@0: operator.\u2A22.infix = lspace:4 rspace:4 # plus sign with small circle above michael@0: operator.\u2A23.infix = lspace:4 rspace:4 # plus sign with circumflex accent above michael@0: operator.\u2A24.infix = lspace:4 rspace:4 # plus sign with tilde above michael@0: operator.\u2A25.infix = lspace:4 rspace:4 # plus sign with dot below michael@0: operator.\u2A26.infix = lspace:4 rspace:4 # plus sign with tilde below michael@0: operator.\u2A27.infix = lspace:4 rspace:4 # plus sign with subscript two michael@0: operator.\u2A28.infix = lspace:4 rspace:4 # plus sign with black triangle michael@0: operator.\u2A29.infix = lspace:4 rspace:4 # minus sign with comma above michael@0: operator.\u2A2A.infix = lspace:4 rspace:4 # minus sign with dot below michael@0: operator.\u2A2B.infix = lspace:4 rspace:4 # minus sign with falling dots michael@0: operator.\u2A2C.infix = lspace:4 rspace:4 # minus sign with rising dots michael@0: operator.\u2A2D.infix = lspace:4 rspace:4 # plus sign in left half circle michael@0: operator.\u2A2E.infix = lspace:4 rspace:4 # plus sign in right half circle michael@0: operator.\u2A2F.infix = lspace:4 rspace:4 # ⨯ michael@0: operator.\u2A30.infix = lspace:4 rspace:4 # multiplication sign with dot above michael@0: operator.\u2A31.infix = lspace:4 rspace:4 # multiplication sign with underbar michael@0: operator.\u2A32.infix = lspace:4 rspace:4 # semidirect product with bottom closed michael@0: operator.\u2A33.infix = lspace:4 rspace:4 # smash product michael@0: operator.\u2A34.infix = lspace:4 rspace:4 # multiplication sign in left half circle michael@0: operator.\u2A35.infix = lspace:4 rspace:4 # multiplication sign in right half circle michael@0: operator.\u2A36.infix = lspace:4 rspace:4 # circled multiplication sign with circumflex accent michael@0: operator.\u2A37.infix = lspace:4 rspace:4 # multiplication sign in double circle michael@0: operator.\u2A38.infix = lspace:4 rspace:4 # circled division sign michael@0: operator.\u2A39.infix = lspace:4 rspace:4 # plus sign in triangle michael@0: operator.\u2A3A.infix = lspace:4 rspace:4 # minus sign in triangle michael@0: operator.\u2A3B.infix = lspace:4 rspace:4 # multiplication sign in triangle michael@0: operator.\u2A3C.infix = lspace:4 rspace:4 # interior product michael@0: operator.\u2A3D.infix = lspace:4 rspace:4 # righthand interior product michael@0: operator.\u2A3E.infix = lspace:4 rspace:4 # z notation relational composition michael@0: operator.\u2A3F.infix = lspace:4 rspace:4 # amalgamation or coproduct michael@0: operator.\u2A40.infix = lspace:4 rspace:4 # intersection with dot michael@0: operator.\u2A41.infix = lspace:4 rspace:4 # union with minus sign michael@0: operator.\u2A42.infix = lspace:4 rspace:4 # union with overbar michael@0: operator.\u2A43.infix = lspace:4 rspace:4 # intersection with overbar michael@0: operator.\u2A44.infix = lspace:4 rspace:4 # intersection with logical and michael@0: operator.\u2A45.infix = lspace:4 rspace:4 # union with logical or michael@0: operator.\u2A46.infix = lspace:4 rspace:4 # union above intersection michael@0: operator.\u2A47.infix = lspace:4 rspace:4 # intersection above union michael@0: operator.\u2A48.infix = lspace:4 rspace:4 # union above bar above intersection michael@0: operator.\u2A49.infix = lspace:4 rspace:4 # intersection above bar above union michael@0: operator.\u2A4A.infix = lspace:4 rspace:4 # union beside and joined with union michael@0: operator.\u2A4B.infix = lspace:4 rspace:4 # intersection beside and joined with intersection michael@0: operator.\u2A4C.infix = lspace:4 rspace:4 # closed union with serifs michael@0: operator.\u2A4D.infix = lspace:4 rspace:4 # closed intersection with serifs michael@0: operator.\u2A4E.infix = lspace:4 rspace:4 # double square intersection michael@0: operator.\u2A4F.infix = lspace:4 rspace:4 # double square union michael@0: operator.\u2A50.infix = lspace:4 rspace:4 # closed union with serifs and smash product michael@0: operator.\u2A51.infix = lspace:4 rspace:4 # logical and with dot above michael@0: operator.\u2A52.infix = lspace:4 rspace:4 # logical or with dot above michael@0: operator.\u2A53.infix = lspace:4 rspace:4 direction:vertical # ⩓ michael@0: operator.\u2A54.infix = lspace:4 rspace:4 direction:vertical # ⩔ michael@0: operator.\u2A55.infix = lspace:4 rspace:4 # two intersecting logical and michael@0: operator.\u2A56.infix = lspace:4 rspace:4 # two intersecting logical or michael@0: operator.\u2A57.infix = lspace:4 rspace:4 # sloping large or michael@0: operator.\u2A58.infix = lspace:4 rspace:4 # sloping large and michael@0: operator.\u2A59.infix = lspace:5 rspace:5 # logical or overlapping logical and michael@0: operator.\u2A5A.infix = lspace:4 rspace:4 # logical and with middle stem michael@0: operator.\u2A5B.infix = lspace:4 rspace:4 # logical or with middle stem michael@0: operator.\u2A5C.infix = lspace:4 rspace:4 # logical and with horizontal dash michael@0: operator.\u2A5D.infix = lspace:4 rspace:4 # logical or with horizontal dash michael@0: operator.\u2A5E.infix = lspace:4 rspace:4 # logical and with double overbar michael@0: operator.\u2A5F.infix = lspace:4 rspace:4 # logical and with underbar michael@0: operator.\u2A60.infix = lspace:4 rspace:4 # logical and with double underbar michael@0: operator.\u2A61.infix = lspace:4 rspace:4 # small vee with underbar michael@0: operator.\u2A62.infix = lspace:4 rspace:4 # logical or with double overbar michael@0: operator.\u2A63.infix = lspace:4 rspace:4 # logical or with double underbar michael@0: operator.\u2A64.infix = lspace:4 rspace:4 # z notation domain antirestriction michael@0: operator.\u2A65.infix = lspace:4 rspace:4 # z notation range antirestriction michael@0: operator.\u2A66.infix = lspace:5 rspace:5 # equals sign with dot below michael@0: operator.\u2A67.infix = lspace:5 rspace:5 # identical with dot above michael@0: operator.\u2A68.infix = lspace:5 rspace:5 # triple horizontal bar with double vertical stroke michael@0: operator.\u2A69.infix = lspace:5 rspace:5 # triple horizontal bar with triple vertical stroke michael@0: operator.\u2A6A.infix = lspace:5 rspace:5 # tilde operator with dot above michael@0: operator.\u2A6B.infix = lspace:5 rspace:5 # tilde operator with rising dots michael@0: operator.\u2A6C.infix = lspace:5 rspace:5 # similar minus similar michael@0: operator.\u2A6D.infix = lspace:5 rspace:5 # congruent with dot above michael@0: operator.\u2A6E.infix = lspace:5 rspace:5 # equals with asterisk michael@0: operator.\u2A6F.infix = lspace:5 rspace:5 # almost equal to with circumflex accent michael@0: operator.\u2A70.infix = lspace:5 rspace:5 # approximately equal or equal to michael@0: operator.\u2A71.infix = lspace:4 rspace:4 # equals sign above plus sign michael@0: operator.\u2A72.infix = lspace:4 rspace:4 # plus sign above equals sign michael@0: operator.\u2A73.infix = lspace:5 rspace:5 # equals sign above tilde operator michael@0: operator.\u2A74.infix = lspace:5 rspace:5 # double colon equal michael@0: operator.\u2A75.infix = lspace:5 rspace:5 # ⩵ michael@0: operator.\u2A76.infix = lspace:5 rspace:5 # three consecutive equals signs michael@0: operator.\u2A77.infix = lspace:5 rspace:5 # equals sign with two dots above and two dots below michael@0: operator.\u2A78.infix = lspace:5 rspace:5 # equivalent with four dots above michael@0: operator.\u2A79.infix = lspace:5 rspace:5 # less-than with circle inside michael@0: operator.\u2A7A.infix = lspace:5 rspace:5 # greater-than with circle inside michael@0: operator.\u2A7B.infix = lspace:5 rspace:5 # less-than with question mark above michael@0: operator.\u2A7C.infix = lspace:5 rspace:5 # greater-than with question mark above michael@0: operator.\u2A7D.infix = lspace:5 rspace:5 # ⩽ michael@0: operator.\u2A7D\u0338.infix = lspace:5 rspace:5 # ⩽̸ michael@0: operator.\u2A7E.infix = lspace:5 rspace:5 # ⩾ michael@0: operator.\u2A7E\u0338.infix = lspace:5 rspace:5 # ⩾̸ michael@0: operator.\u2A7F.infix = lspace:5 rspace:5 # less-than or slanted equal to with dot inside michael@0: operator.\u2A80.infix = lspace:5 rspace:5 # greater-than or slanted equal to with dot inside michael@0: operator.\u2A81.infix = lspace:5 rspace:5 # less-than or slanted equal to with dot above michael@0: operator.\u2A82.infix = lspace:5 rspace:5 # greater-than or slanted equal to with dot above michael@0: operator.\u2A83.infix = lspace:5 rspace:5 # less-than or slanted equal to with dot above right michael@0: operator.\u2A84.infix = lspace:5 rspace:5 # greater-than or slanted equal to with dot above left michael@0: operator.\u2A85.infix = lspace:5 rspace:5 # ⪅ michael@0: operator.\u2A86.infix = lspace:5 rspace:5 # ⪆ michael@0: operator.\u2A87.infix = lspace:5 rspace:5 # less-than and single-line not equal to michael@0: operator.\u2A88.infix = lspace:5 rspace:5 # greater-than and single-line not equal to michael@0: operator.\u2A89.infix = lspace:5 rspace:5 # less-than and not approximate michael@0: operator.\u2A8A.infix = lspace:5 rspace:5 # greater-than and not approximate michael@0: operator.\u2A8B.infix = lspace:5 rspace:5 # ⪋ michael@0: operator.\u2A8C.infix = lspace:5 rspace:5 # ⪌ michael@0: operator.\u2A8D.infix = lspace:5 rspace:5 # less-than above similar or equal michael@0: operator.\u2A8E.infix = lspace:5 rspace:5 # greater-than above similar or equal michael@0: operator.\u2A8F.infix = lspace:5 rspace:5 # less-than above similar above greater-than michael@0: operator.\u2A90.infix = lspace:5 rspace:5 # greater-than above similar above less-than michael@0: operator.\u2A91.infix = lspace:5 rspace:5 # less-than above greater-than above double-line equal michael@0: operator.\u2A92.infix = lspace:5 rspace:5 # greater-than above less-than above double-line equal michael@0: operator.\u2A93.infix = lspace:5 rspace:5 # less-than above slanted equal above greater-than above slanted equal michael@0: operator.\u2A94.infix = lspace:5 rspace:5 # greater-than above slanted equal above less-than above slanted equal michael@0: operator.\u2A95.infix = lspace:5 rspace:5 # slanted equal to or less-than michael@0: operator.\u2A96.infix = lspace:5 rspace:5 # slanted equal to or greater-than michael@0: operator.\u2A97.infix = lspace:5 rspace:5 # slanted equal to or less-than with dot inside michael@0: operator.\u2A98.infix = lspace:5 rspace:5 # slanted equal to or greater-than with dot inside michael@0: operator.\u2A99.infix = lspace:5 rspace:5 # double-line equal to or less-than michael@0: operator.\u2A9A.infix = lspace:5 rspace:5 # double-line equal to or greater-than michael@0: operator.\u2A9B.infix = lspace:5 rspace:5 # double-line slanted equal to or less-than michael@0: operator.\u2A9C.infix = lspace:5 rspace:5 # double-line slanted equal to or greater-than michael@0: operator.\u2A9D.infix = lspace:5 rspace:5 # similar or less-than michael@0: operator.\u2A9E.infix = lspace:5 rspace:5 # similar or greater-than michael@0: operator.\u2A9F.infix = lspace:5 rspace:5 # similar above less-than above equals sign michael@0: operator.\u2AA0.infix = lspace:5 rspace:5 # similar above greater-than above equals sign michael@0: operator.\u2AA1.infix = lspace:5 rspace:5 # ⪡ michael@0: operator.\u2AA1\u0338.infix = lspace:5 rspace:5 # ⪡̸ michael@0: operator.\u2AA2.infix = lspace:5 rspace:5 # ⪢ michael@0: operator.\u2AA2\u0338.infix = lspace:5 rspace:5 # ⪢̸ michael@0: operator.\u2AA3.infix = lspace:5 rspace:5 # double nested less-than with underbar michael@0: operator.\u2AA4.infix = lspace:5 rspace:5 # greater-than overlapping less-than michael@0: operator.\u2AA5.infix = lspace:5 rspace:5 # greater-than beside less-than michael@0: operator.\u2AA6.infix = lspace:5 rspace:5 # less-than closed by curve michael@0: operator.\u2AA7.infix = lspace:5 rspace:5 # greater-than closed by curve michael@0: operator.\u2AA8.infix = lspace:5 rspace:5 # less-than closed by curve above slanted equal michael@0: operator.\u2AA9.infix = lspace:5 rspace:5 # greater-than closed by curve above slanted equal michael@0: operator.\u2AAA.infix = lspace:5 rspace:5 # smaller than michael@0: operator.\u2AAB.infix = lspace:5 rspace:5 # larger than michael@0: operator.\u2AAC.infix = lspace:5 rspace:5 # smaller than or equal to michael@0: operator.\u2AAD.infix = lspace:5 rspace:5 # larger than or equal to michael@0: operator.\u2AAE.infix = lspace:5 rspace:5 # equals sign with bumpy above michael@0: operator.\u2AAF.infix = lspace:5 rspace:5 # ⪯ michael@0: operator.\u2AAF\u0338.infix = lspace:5 rspace:5 # ⪯̸ michael@0: operator.\u2AB0.infix = lspace:5 rspace:5 # ⪰ michael@0: operator.\u2AB0\u0338.infix = lspace:5 rspace:5 # ⪰̸ michael@0: operator.\u2AB1.infix = lspace:5 rspace:5 # precedes above single-line not equal to michael@0: operator.\u2AB2.infix = lspace:5 rspace:5 # succeeds above single-line not equal to michael@0: operator.\u2AB3.infix = lspace:5 rspace:5 # ⪳ michael@0: operator.\u2AB4.infix = lspace:5 rspace:5 # ⪴ michael@0: operator.\u2AB5.infix = lspace:5 rspace:5 # precedes above not equal to michael@0: operator.\u2AB6.infix = lspace:5 rspace:5 # succeeds above not equal to michael@0: operator.\u2AB7.infix = lspace:5 rspace:5 # ⪷ michael@0: operator.\u2AB8.infix = lspace:5 rspace:5 # ⪸ michael@0: operator.\u2AB9.infix = lspace:5 rspace:5 # precedes above not almost equal to michael@0: operator.\u2ABA.infix = lspace:5 rspace:5 # succeeds above not almost equal to michael@0: operator.\u2ABB.infix = lspace:5 rspace:5 # double precedes michael@0: operator.\u2ABC.infix = lspace:5 rspace:5 # double succeeds michael@0: operator.\u2ABD.infix = lspace:5 rspace:5 # subset with dot michael@0: operator.\u2ABE.infix = lspace:5 rspace:5 # superset with dot michael@0: operator.\u2ABF.infix = lspace:5 rspace:5 # subset with plus sign below michael@0: operator.\u2AC0.infix = lspace:5 rspace:5 # superset with plus sign below michael@0: operator.\u2AC1.infix = lspace:5 rspace:5 # subset with multiplication sign below michael@0: operator.\u2AC2.infix = lspace:5 rspace:5 # superset with multiplication sign below michael@0: operator.\u2AC3.infix = lspace:5 rspace:5 # subset of or equal to with dot above michael@0: operator.\u2AC4.infix = lspace:5 rspace:5 # superset of or equal to with dot above michael@0: operator.\u2AC5.infix = lspace:5 rspace:5 # ⫅ michael@0: operator.\u2AC6.infix = lspace:5 rspace:5 # ⫆ michael@0: operator.\u2AC7.infix = lspace:5 rspace:5 # subset of above tilde operator michael@0: operator.\u2AC8.infix = lspace:5 rspace:5 # superset of above tilde operator michael@0: operator.\u2AC9.infix = lspace:5 rspace:5 # subset of above almost equal to michael@0: operator.\u2ACA.infix = lspace:5 rspace:5 # superset of above almost equal to michael@0: operator.\u2ACB.infix = lspace:5 rspace:5 # subset of above not equal to michael@0: operator.\u2ACC.infix = lspace:5 rspace:5 # superset of above not equal to michael@0: operator.\u2ACD.infix = lspace:5 rspace:5 # square left open box operator michael@0: operator.\u2ACE.infix = lspace:5 rspace:5 # square right open box operator michael@0: operator.\u2ACF.infix = lspace:5 rspace:5 # closed subset michael@0: operator.\u2AD0.infix = lspace:5 rspace:5 # closed superset michael@0: operator.\u2AD1.infix = lspace:5 rspace:5 # closed subset or equal to michael@0: operator.\u2AD2.infix = lspace:5 rspace:5 # closed superset or equal to michael@0: operator.\u2AD3.infix = lspace:5 rspace:5 # subset above superset michael@0: operator.\u2AD4.infix = lspace:5 rspace:5 # superset above subset michael@0: operator.\u2AD5.infix = lspace:5 rspace:5 # subset above subset michael@0: operator.\u2AD6.infix = lspace:5 rspace:5 # superset above superset michael@0: operator.\u2AD7.infix = lspace:5 rspace:5 # superset beside subset michael@0: operator.\u2AD8.infix = lspace:5 rspace:5 # superset beside and joined by dash with subset michael@0: operator.\u2AD9.infix = lspace:5 rspace:5 # element of opening downwards michael@0: operator.\u2ADA.infix = lspace:5 rspace:5 # pitchfork with tee top michael@0: operator.\u2ADB.infix = lspace:5 rspace:5 # transversal intersection michael@0: operator.\u2ADC.infix = lspace:5 rspace:5 # forking michael@0: operator.\u2ADD.infix = lspace:5 rspace:5 # nonforking michael@0: operator.\u2ADD\u0338.infix = lspace:5 rspace:5 # nonforking with slash michael@0: operator.\u2ADE.infix = lspace:5 rspace:5 # short left tack michael@0: operator.\u2ADF.infix = lspace:5 rspace:5 # short down tack michael@0: operator.\u2AE0.infix = lspace:5 rspace:5 # short up tack michael@0: operator.\u2AE1.infix = lspace:5 rspace:5 # perpendicular with s michael@0: operator.\u2AE2.infix = lspace:5 rspace:5 # vertical bar triple right turnstile michael@0: operator.\u2AE3.infix = lspace:5 rspace:5 # double vertical bar left turnstile michael@0: operator.\u2AE4.infix = lspace:5 rspace:5 # ⫤ michael@0: operator.\u2AE5.infix = lspace:5 rspace:5 # double vertical bar double left turnstile michael@0: operator.\u2AE6.infix = lspace:5 rspace:5 # long dash from left member of double vertical michael@0: operator.\u2AE7.infix = lspace:5 rspace:5 # short down tack with overbar michael@0: operator.\u2AE8.infix = lspace:5 rspace:5 # short up tack with underbar michael@0: operator.\u2AE9.infix = lspace:5 rspace:5 # short up tack above short down tack michael@0: operator.\u2AEA.infix = lspace:5 rspace:5 # double down tack michael@0: operator.\u2AEB.infix = lspace:5 rspace:5 # double up tack michael@0: operator.\u2AEC.infix = lspace:5 rspace:5 # double stroke not sign michael@0: operator.\u2AED.infix = lspace:5 rspace:5 # reversed double stroke not sign michael@0: operator.\u2AEE.infix = lspace:5 rspace:5 # does not divide with reversed negation slash michael@0: operator.\u2AEF.infix = lspace:5 rspace:5 # vertical line with circle above michael@0: operator.\u2AF0.infix = lspace:5 rspace:5 # vertical line with circle below michael@0: operator.\u2AF1.infix = lspace:5 rspace:5 # down tack with circle below michael@0: operator.\u2AF2.infix = lspace:5 rspace:5 # parallel with horizontal stroke michael@0: operator.\u2AF3.infix = lspace:5 rspace:5 # parallel with tilde operator michael@0: operator.\u2AF4.infix = lspace:4 rspace:4 # triple vertical bar binary relation michael@0: operator.\u2AF5.infix = lspace:4 rspace:4 # triple vertical bar with horizontal stroke michael@0: operator.\u2AF6.infix = lspace:4 rspace:4 # triple colon operator michael@0: operator.\u2AF7.infix = lspace:5 rspace:5 # triple nested less-than michael@0: operator.\u2AF8.infix = lspace:5 rspace:5 # triple nested greater-than michael@0: operator.\u2AF9.infix = lspace:5 rspace:5 # double-line slanted less-than or equal to michael@0: operator.\u2AFA.infix = lspace:5 rspace:5 # double-line slanted greater-than or equal to michael@0: operator.\u2AFB.infix = lspace:4 rspace:4 # triple solidus binary relation michael@0: operator.\u2AFC.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # large triple vertical bar operator michael@0: operator.\u2AFD.infix = lspace:4 rspace:4 # double solidus operator michael@0: operator.\u2AFE.infix = lspace:3 rspace:3 # white vertical bar michael@0: operator.\u2AFF.prefix = lspace:1 rspace:2 largeop movablelimits symmetric # n-ary white vertical bar michael@0: operator.\u2B45.infix = lspace:5 rspace:5 stretchy direction:horizontal # leftwards quadruple arrow michael@0: operator.\u2B46.infix = lspace:5 rspace:5 stretchy direction:horizontal # rightwards quadruple arrow michael@0: michael@0: # Entries below are not part of the official MathML dictionary michael@0: michael@0: operator.\u0021.prefix = lspace:0 rspace:5 # ! michael@0: operator.\u0026.infix = lspace:5 rspace:5 # & michael@0: operator.\u0026.prefix = lspace:0 rspace:5 # & michael@0: operator.\u002B\u002B.prefix = lspace:0 rspace:2 # ++ michael@0: operator.\u002D\u002D.prefix = lspace:0 rspace:2 # -- michael@0: operator.\u003B.postfix = lspace:0 rspace:0 separator # ; michael@0: operator.\u003C\u20D2.infix = lspace:5 rspace:5 # <⃒ michael@0: operator.\u003E\u20D2.infix = lspace:5 rspace:5 # >⃒ michael@0: operator.\u006C\u0069\u006D.prefix = lspace:0 rspace:3 movablelimits # lim michael@0: operator.\u006D\u0061\u0078.prefix = lspace:0 rspace:3 movablelimits # max michael@0: operator.\u006D\u0069\u006E.prefix = lspace:0 rspace:3 movablelimits # min michael@0: operator.\u007E.infix = lspace:2 rspace:2 stretchy direction:horizontal # ~ michael@0: operator.\u0332.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # _ michael@0: operator.\u2016.infix = lspace:5 rspace:5 stretchy direction:vertical # ‖ ‖ michael@0: operator.\u20D0.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⃐ michael@0: operator.\u20D1.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⃑ michael@0: operator.\u20D6.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⃖ michael@0: operator.\u20D7.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⃗ michael@0: operator.\u20E1.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⃡ michael@0: operator.\u2190\u200B.infix = lspace:5 rspace:5 # ← michael@0: operator.\u2191\u200B.infix = lspace:2 rspace:2 # ↑ michael@0: operator.\u2192\u200B.infix = lspace:5 rspace:5 # → michael@0: operator.\u2193\u200B.infix = lspace:2 rspace:2 # ↓ michael@0: operator.\u2223.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ∣ michael@0: operator.\u2223.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ∣ michael@0: operator.\u2225.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ∥ michael@0: operator.\u2225.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ∥ michael@0: operator.\u2282\u020D2.infix = lspace:5 rspace:5 # ⊂⃒ michael@0: operator.\u2283\u020D2.infix = lspace:5 rspace:5 # ⊃⃒ michael@0: operator.\u228E.prefix = lspace:1 rspace:2 largeop movablelimits symmetric direction:vertical # ⊎ michael@0: operator.\u2295.prefix = lspace:0 rspace:3 largeop movablelimits symmetric # ⊕ michael@0: operator.\u2296.prefix = lspace:0 rspace:3 largeop movablelimits symmetric # ⊖ michael@0: operator.\u2297.prefix = lspace:0 rspace:3 largeop movablelimits symmetric # ⊗ michael@0: operator.\u2299.prefix = lspace:0 rspace:3 largeop movablelimits symmetric # ⊙ michael@0: operator.\u23B0.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⎰ ⎰ michael@0: operator.\u23B1.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⎱ ⎱ michael@0: operator.\u2500.infix = lspace:0 rspace:0 stretchy direction:horizontal # ─ michael@0: operator.\u25A1.prefix = lspace:0 rspace:2 # □ michael@0: operator.\u2606.infix = lspace:3 rspace:3 # ☆ michael@0: operator.\u2AC5\u0338.infix = lspace:5 rspace:5 # ⫅̸ michael@0: operator.\u2AC6\u0338.infix = lspace:5 rspace:5 # ⫅̸ michael@0: operator.\u2AEC.prefix = lspace:0 rspace:5 # ⫬ michael@0: operator.\uFE35.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏜ (MathML 2.0) michael@0: operator.\uFE36.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏝ (MathML 2.0) michael@0: operator.\uFE37.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏞ (MathML 2.0) michael@0: operator.\uFE38.postfix = lspace:0 rspace:0 stretchy accent direction:horizontal # ⏟ (MathML 2.0) michael@0: michael@0: michael@0: ################################################################################## michael@0: # DOCUMENTATION ON HOW TO SETUP THE PROPERTY FILE ASSOCIATED TO EACH FONT michael@0: # More fonts can be supported for stretchy characters by setting up mathfont michael@0: # property files as described below. michael@0: # michael@0: # Each font should have its set of glyph data. For example, the glyph data for michael@0: # the "Symbol" font and the "MT Extra" font are in "mathfontSymbol.properties" michael@0: # and "mathfontMTExtra.properties", respectively. The font property file is a michael@0: # set of all the stretchy MathML characters that can be rendered with that font michael@0: # using larger and/or partial glyphs. Each stretchy character is associated to michael@0: # a list in the font property file which gives, in that order, the 4 partial michael@0: # glyphs: top (or left), middle, bottom (or right), glue; and the variants of michael@0: # bigger sizes (if any). A position that is not relevant to a particular character michael@0: # is indicated there with the UNICODE REPLACEMENT CHARACTER 0xFFFD.