| 1 | #!/usr/bin/env python3 |
| 2 | """ |
| 3 | PPT Master - Microsoft 365 LaTeX Formula Profile |
| 4 | |
| 5 | Keep the documented Microsoft 365 LaTeX command vocabulary and normalization |
| 6 | tables separate from the native formula parser. |
| 7 | |
| 8 | See references/native-formula.md for the owning input-profile contract. |
| 9 | |
| 10 | Usage: |
| 11 | Imported by the SVG-to-PPTX native formula compiler. |
| 12 | |
| 13 | Examples: |
| 14 | from svg_to_pptx.native_objects.formula_profile import SYMBOL_COMMANDS |
| 15 | |
| 16 | Dependencies: |
| 17 | None (only uses standard library) |
| 18 | """ |
| 19 | |
| 20 | from __future__ import annotations |
| 21 | |
| 22 | |
| 23 | OFFICE_LATEX_PROFILE = "Microsoft 365 Windows 2606 / Mac 16.110" |
| 24 | OFFICE_LATEX_SOURCE_COMMIT = "24753a186bd9e2e4614fb57680a253c33cf0df23" |
| 25 | OFFICE_MHCHEM_SOURCE_COMMIT = "9459d37ab954aabec13966ecbf4968d92f086a29" |
| 26 | |
| 27 | GREEK_SYMBOLS = { |
| 28 | "alpha": "α", |
| 29 | "beta": "β", |
| 30 | "gamma": "γ", |
| 31 | "delta": "δ", |
| 32 | "epsilon": "ϵ", |
| 33 | "varepsilon": "ε", |
| 34 | "zeta": "ζ", |
| 35 | "eta": "η", |
| 36 | "theta": "θ", |
| 37 | "vartheta": "ϑ", |
| 38 | "iota": "ι", |
| 39 | "kappa": "κ", |
| 40 | "varkappa": "ϰ", |
| 41 | "lambda": "λ", |
| 42 | "mu": "μ", |
| 43 | "nu": "ν", |
| 44 | "xi": "ξ", |
| 45 | "omicron": "ο", |
| 46 | "pi": "π", |
| 47 | "varpi": "ϖ", |
| 48 | "rho": "ρ", |
| 49 | "varrho": "ϱ", |
| 50 | "sigma": "σ", |
| 51 | "varsigma": "ς", |
| 52 | "tau": "τ", |
| 53 | "upsilon": "υ", |
| 54 | "phi": "ϕ", |
| 55 | "varphi": "φ", |
| 56 | "chi": "χ", |
| 57 | "psi": "ψ", |
| 58 | "omega": "ω", |
| 59 | "Gamma": "Γ", |
| 60 | "varGamma": "Γ", |
| 61 | "Delta": "Δ", |
| 62 | "varDelta": "Δ", |
| 63 | "Theta": "Θ", |
| 64 | "varTheta": "Θ", |
| 65 | "Lambda": "Λ", |
| 66 | "varLambda": "Λ", |
| 67 | "Xi": "Ξ", |
| 68 | "varXi": "Ξ", |
| 69 | "Pi": "Π", |
| 70 | "varPi": "Π", |
| 71 | "Sigma": "Σ", |
| 72 | "varSigma": "Σ", |
| 73 | "Upsilon": "Υ", |
| 74 | "varUpsilon": "Υ", |
| 75 | "Phi": "Φ", |
| 76 | "varPhi": "Φ", |
| 77 | "Psi": "Ψ", |
| 78 | "varPsi": "Ψ", |
| 79 | "Omega": "Ω", |
| 80 | "varOmega": "Ω", |
| 81 | } |
| 82 | |
| 83 | VARIANT_UPPERCASE_GREEK = frozenset({ |
| 84 | "varGamma", |
| 85 | "varDelta", |
| 86 | "varTheta", |
| 87 | "varLambda", |
| 88 | "varXi", |
| 89 | "varPi", |
| 90 | "varSigma", |
| 91 | "varUpsilon", |
| 92 | "varPhi", |
| 93 | "varPsi", |
| 94 | "varOmega", |
| 95 | }) |
| 96 | |
| 97 | BINARY_SYMBOLS = { |
| 98 | "pm": "±", |
| 99 | "mp": "∓", |
| 100 | "times": "×", |
| 101 | "div": "÷", |
| 102 | "cdot": "⋅", |
| 103 | "ast": "∗", |
| 104 | "star": "⋆", |
| 105 | "circ": "∘", |
| 106 | "bullet": "∙", |
| 107 | "diamond": "⋄", |
| 108 | "oplus": "⊕", |
| 109 | "ominus": "⊖", |
| 110 | "otimes": "⊗", |
| 111 | "oslash": "⊘", |
| 112 | "odot": "⊙", |
| 113 | "cap": "∩", |
| 114 | "cup": "∪", |
| 115 | "uplus": "⊎", |
| 116 | "sqcap": "⊓", |
| 117 | "sqcup": "⊔", |
| 118 | "vee": "∨", |
| 119 | "wedge": "∧", |
| 120 | "setminus": "∖", |
| 121 | "wr": "≀", |
| 122 | "dagger": "†", |
| 123 | "ddagger": "‡", |
| 124 | "amalg": "⨿", |
| 125 | "barwedge": "⊼", |
| 126 | "veebar": "⊻", |
| 127 | "dotplus": "∔", |
| 128 | "ltimes": "⋉", |
| 129 | "rtimes": "⋊", |
| 130 | "leftthreetimes": "⋋", |
| 131 | "rightthreetimes": "⋌", |
| 132 | "curlyvee": "⋎", |
| 133 | "curlywedge": "⋏", |
| 134 | "circledast": "⊛", |
| 135 | "circledcirc": "⊚", |
| 136 | "circleddash": "⊝", |
| 137 | "boxplus": "⊞", |
| 138 | "boxminus": "⊟", |
| 139 | "boxtimes": "⊠", |
| 140 | "boxdot": "⊡", |
| 141 | "intercal": "⊺", |
| 142 | "divideontimes": "⋇", |
| 143 | "doublebarwedge": "⩞", |
| 144 | "triangleleft": "◁", |
| 145 | "triangleright": "▷", |
| 146 | } |
| 147 | |
| 148 | RELATION_SYMBOLS = { |
| 149 | "leq": "≤", |
| 150 | "le": "≤", |
| 151 | "geq": "≥", |
| 152 | "ge": "≥", |
| 153 | "neq": "≠", |
| 154 | "ne": "≠", |
| 155 | "equiv": "≡", |
| 156 | "sim": "∼", |
| 157 | "simeq": "≃", |
| 158 | "approx": "≈", |
| 159 | "cong": "≅", |
| 160 | "ll": "≪", |
| 161 | "gg": "≫", |
| 162 | "subset": "⊂", |
| 163 | "supset": "⊃", |
| 164 | "subseteq": "⊆", |
| 165 | "supseteq": "⊇", |
| 166 | "in": "∈", |
| 167 | "ni": "∋", |
| 168 | "notin": "∉", |
| 169 | "mid": "∣", |
| 170 | "parallel": "∥", |
| 171 | "perp": "⊥", |
| 172 | "vdash": "⊢", |
| 173 | "dashv": "⊣", |
| 174 | "prec": "≺", |
| 175 | "succ": "≻", |
| 176 | "preceq": "⪯", |
| 177 | "succeq": "⪰", |
| 178 | "propto": "∝", |
| 179 | "therefore": "∴", |
| 180 | "because": "∵", |
| 181 | "bowtie": "⋈", |
| 182 | "smile": "⌣", |
| 183 | "frown": "⌢", |
| 184 | "models": "⊨", |
| 185 | "doteq": "≐", |
| 186 | "leqq": "≦", |
| 187 | "leqslant": "⩽", |
| 188 | "eqslantless": "⪕", |
| 189 | "lesssim": "≲", |
| 190 | "lessapprox": "⪅", |
| 191 | "lll": "⋘", |
| 192 | "lessdot": "⋖", |
| 193 | "lessgtr": "≶", |
| 194 | "lesseqgtr": "⋚", |
| 195 | "geqq": "≧", |
| 196 | "geqslant": "⩾", |
| 197 | "eqslantgtr": "⪖", |
| 198 | "gtrsim": "≳", |
| 199 | "ggg": "⋙", |
| 200 | "gtrdot": "⋗", |
| 201 | "gtrless": "≷", |
| 202 | "gtreqless": "⋛", |
| 203 | "sqsubset": "⊏", |
| 204 | "sqsupset": "⊐", |
| 205 | "sqsubseteq": "⊑", |
| 206 | "sqsupseteq": "⊒", |
| 207 | "subsetneq": "⊊", |
| 208 | "supsetneq": "⊋", |
| 209 | "subsetneqq": "⫋", |
| 210 | "supsetneqq": "⫌", |
| 211 | "Subset": "⋐", |
| 212 | "Supset": "⋑", |
| 213 | "Vdash": "⊩", |
| 214 | "Vvdash": "⊪", |
| 215 | "precapprox": "⪷", |
| 216 | "succapprox": "⪸", |
| 217 | "precnapprox": "⪹", |
| 218 | "succnapprox": "⪺", |
| 219 | "precneqq": "⪵", |
| 220 | "succneqq": "⪶", |
| 221 | "precnsim": "⋨", |
| 222 | "succnsim": "⋩", |
| 223 | "precsim": "≾", |
| 224 | "succsim": "≿", |
| 225 | "trianglelefteq": "⊴", |
| 226 | "trianglerighteq": "⊵", |
| 227 | "vartriangleleft": "⊲", |
| 228 | "vartriangleright": "⊳", |
| 229 | "circeq": "≗", |
| 230 | "eqcirc": "≖", |
| 231 | "triangleq": "≜", |
| 232 | "bumpeq": "≏", |
| 233 | "Bumpeq": "≎", |
| 234 | "doteqdot": "≑", |
| 235 | "risingdotseq": "≓", |
| 236 | "fallingdotseq": "≒", |
| 237 | "backsim": "∽", |
| 238 | "backsimeq": "⋍", |
| 239 | "between": "≬", |
| 240 | "pitchfork": "⋔", |
| 241 | "ncong": "≇", |
| 242 | "nsim": "≁", |
| 243 | "nleq": "≰", |
| 244 | "ngeq": "≱", |
| 245 | "nprec": "⊀", |
| 246 | "nsucc": "⊁", |
| 247 | "nvdash": "⊬", |
| 248 | "nvDash": "⊭", |
| 249 | "nVdash": "⊮", |
| 250 | "nVDash": "⊯", |
| 251 | "ntriangleleft": "⋪", |
| 252 | "ntriangleright": "⋫", |
| 253 | "ntrianglelefteq": "⋬", |
| 254 | "ntrianglerighteq": "⋭", |
| 255 | } |
| 256 | |
| 257 | ARROW_SYMBOLS = { |
| 258 | "leftarrow": "←", |
| 259 | "rightarrow": "→", |
| 260 | "to": "→", |
| 261 | "Leftarrow": "⇐", |
| 262 | "Rightarrow": "⇒", |
| 263 | "leftrightarrow": "↔", |
| 264 | "Leftrightarrow": "⇔", |
| 265 | "uparrow": "↑", |
| 266 | "downarrow": "↓", |
| 267 | "Uparrow": "⇑", |
| 268 | "Downarrow": "⇓", |
| 269 | "updownarrow": "↕", |
| 270 | "Updownarrow": "⇕", |
| 271 | "mapsto": "↦", |
| 272 | "longmapsto": "⟼", |
| 273 | "longleftarrow": "⟵", |
| 274 | "longrightarrow": "⟶", |
| 275 | "longleftrightarrow": "⟷", |
| 276 | "Longleftarrow": "⟸", |
| 277 | "implies": "⟹", |
| 278 | "iff": "⟺", |
| 279 | "hookrightarrow": "↪", |
| 280 | "hookleftarrow": "↩", |
| 281 | "nearrow": "↗", |
| 282 | "searrow": "↘", |
| 283 | "nwarrow": "↖", |
| 284 | "swarrow": "↙", |
| 285 | "rightharpoonup": "⇀", |
| 286 | "rightharpoondown": "⇁", |
| 287 | "leftharpoonup": "↼", |
| 288 | "leftharpoondown": "↽", |
| 289 | "rightleftharpoons": "⇌", |
| 290 | "leftrightharpoons": "⇋", |
| 291 | "rightrightarrows": "⇉", |
| 292 | "leftleftarrows": "⇇", |
| 293 | "rightleftarrows": "⇄", |
| 294 | "leftrightarrows": "⇆", |
| 295 | "Lsh": "↰", |
| 296 | "Rsh": "↱", |
| 297 | "twoheadleftarrow": "↞", |
| 298 | "twoheadrightarrow": "↠", |
| 299 | "rightsquigarrow": "⇝", |
| 300 | "leftrightsquigarrow": "↭", |
| 301 | "circlearrowleft": "↺", |
| 302 | "circlearrowright": "↻", |
| 303 | "curvearrowleft": "↶", |
| 304 | "curvearrowright": "↷", |
| 305 | "dashleftarrow": "⇠", |
| 306 | "dashrightarrow": "⇢", |
| 307 | "upuparrows": "⇈", |
| 308 | "downdownarrows": "⇊", |
| 309 | "upharpoonleft": "↿", |
| 310 | "upharpoonright": "↾", |
| 311 | "downharpoonleft": "⇃", |
| 312 | "downharpoonright": "⇂", |
| 313 | "nleftarrow": "↚", |
| 314 | "nrightarrow": "↛", |
| 315 | "nleftrightarrow": "↮", |
| 316 | "nLeftarrow": "⇍", |
| 317 | "nRightarrow": "⇏", |
| 318 | "nLeftrightarrow": "⇎", |
| 319 | } |
| 320 | |
| 321 | DOT_SYMBOLS = { |
| 322 | "ldots": "…", |
| 323 | "dots": "…", |
| 324 | "cdots": "⋯", |
| 325 | "vdots": "⋮", |
| 326 | "ddots": "⋱", |
| 327 | "iddots": "⋰", |
| 328 | "dotsb": "⋯", |
| 329 | "dotsc": "…", |
| 330 | "dotsi": "⋯", |
| 331 | "dotsm": "⋯", |
| 332 | "dotso": "…", |
| 333 | } |
| 334 | |
| 335 | MISC_SYMBOLS = { |
| 336 | "infty": "∞", |
| 337 | "partial": "∂", |
| 338 | "nabla": "∇", |
| 339 | "forall": "∀", |
| 340 | "exists": "∃", |
| 341 | "nexists": "∄", |
| 342 | "emptyset": "∅", |
| 343 | "aleph": "ℵ", |
| 344 | "beth": "ℶ", |
| 345 | "gimel": "ℷ", |
| 346 | "daleth": "ℸ", |
| 347 | "ell": "ℓ", |
| 348 | "wp": "℘", |
| 349 | "Re": "ℜ", |
| 350 | "Im": "ℑ", |
| 351 | "hbar": "ℏ", |
| 352 | "imath": "ı", |
| 353 | "jmath": "ȷ", |
| 354 | "prime": "′", |
| 355 | "angle": "∠", |
| 356 | "measuredangle": "∡", |
| 357 | "sphericalangle": "∢", |
| 358 | "top": "⊤", |
| 359 | "bot": "⊥", |
| 360 | "neg": "¬", |
| 361 | "complement": "∁", |
| 362 | "square": "□", |
| 363 | "blacksquare": "■", |
| 364 | "triangle": "△", |
| 365 | "triangledown": "▽", |
| 366 | "blacktriangle": "▴", |
| 367 | "blacktriangledown": "▾", |
| 368 | "lozenge": "◊", |
| 369 | "blacklozenge": "⧫", |
| 370 | "bigstar": "★", |
| 371 | "Diamond": "◇", |
| 372 | "clubsuit": "♣", |
| 373 | "diamondsuit": "♢", |
| 374 | "heartsuit": "♡", |
| 375 | "spadesuit": "♠", |
| 376 | "flat": "♭", |
| 377 | "natural": "♮", |
| 378 | "sharp": "♯", |
| 379 | "checkmark": "✓", |
| 380 | "maltese": "✠", |
| 381 | "mho": "℧", |
| 382 | "Finv": "Ⅎ", |
| 383 | "Game": "⅁", |
| 384 | "backslash": "\\", |
| 385 | "Vert": "‖", |
| 386 | "bigcirc": "◯", |
| 387 | "degree": "°", |
| 388 | "land": "∧", |
| 389 | "lor": "∨", |
| 390 | } |
| 391 | |
| 392 | SYMBOL_COMMANDS = { |
| 393 | **GREEK_SYMBOLS, |
| 394 | **BINARY_SYMBOLS, |
| 395 | **RELATION_SYMBOLS, |
| 396 | **ARROW_SYMBOLS, |
| 397 | **DOT_SYMBOLS, |
| 398 | **MISC_SYMBOLS, |
| 399 | } |
| 400 | |
| 401 | OPERATOR_BOUNDARY_COMMANDS = frozenset({ |
| 402 | *BINARY_SYMBOLS, |
| 403 | *RELATION_SYMBOLS, |
| 404 | *ARROW_SYMBOLS, |
| 405 | "bmod", |
| 406 | "land", |
| 407 | "lor", |
| 408 | "mathrel", |
| 409 | "mod", |
| 410 | "not", |
| 411 | "pmod", |
| 412 | }) |
| 413 | |
| 414 | NARY_COMMANDS = { |
| 415 | "sum": ("∑", "operator"), |
| 416 | "prod": ("∏", "operator"), |
| 417 | "coprod": ("∐", "operator"), |
| 418 | "int": ("∫", "integral"), |
| 419 | "iint": ("∬", "integral"), |
| 420 | "iiint": ("∭", "integral"), |
| 421 | "iiiint": ("⨌", "integral"), |
| 422 | "oint": ("∮", "integral"), |
| 423 | "oiint": ("∯", "integral"), |
| 424 | "oiiint": ("∰", "integral"), |
| 425 | "pvint": ("⨍", "integral"), |
| 426 | "bigcap": ("⋂", "operator"), |
| 427 | "bigcup": ("⋃", "operator"), |
| 428 | "bigvee": ("⋁", "operator"), |
| 429 | "bigwedge": ("⋀", "operator"), |
| 430 | "bigoplus": ("⨁", "operator"), |
| 431 | "bigotimes": ("⨂", "operator"), |
| 432 | "bigodot": ("⨀", "operator"), |
| 433 | "biguplus": ("⨄", "operator"), |
| 434 | "bigsqcup": ("⨆", "operator"), |
| 435 | "bigsqcap": ("⨅", "operator"), |
| 436 | } |
| 437 | |
| 438 | ACCENT_COMMANDS = { |
| 439 | "hat": "ˆ", |
| 440 | "widehat": "̂", |
| 441 | "check": "̌", |
| 442 | "tilde": "˜", |
| 443 | "widetilde": "̃", |
| 444 | "acute": "́", |
| 445 | "grave": "̀", |
| 446 | "dot": "̇", |
| 447 | "ddot": "̈", |
| 448 | "dddot": "⃛", |
| 449 | "ddddot": "⃜", |
| 450 | "breve": "̆", |
| 451 | "bar": "̅", |
| 452 | "vec": "⃗", |
| 453 | "mathring": "̊", |
| 454 | } |
| 455 | |
| 456 | DELIMITER_COMMANDS = { |
| 457 | "lbrace": "{", |
| 458 | "rbrace": "}", |
| 459 | "langle": "⟨", |
| 460 | "rangle": "⟩", |
| 461 | "lfloor": "⌊", |
| 462 | "rfloor": "⌋", |
| 463 | "lceil": "⌈", |
| 464 | "rceil": "⌉", |
| 465 | "lvert": "|", |
| 466 | "rvert": "|", |
| 467 | "vert": "|", |
| 468 | "lVert": "‖", |
| 469 | "rVert": "‖", |
| 470 | "Vert": "‖", |
| 471 | "lbrack": "[", |
| 472 | "rbrack": "]", |
| 473 | } |
| 474 | |
| 475 | BARE_DELIMITER_COMMAND_PAIRS = { |
| 476 | "langle": ("rangle", "⟨", "⟩"), |
| 477 | "lceil": ("rceil", "⌈", "⌉"), |
| 478 | "lfloor": ("rfloor", "⌊", "⌋"), |
| 479 | "lvert": ("rvert", "|", "|"), |
| 480 | "lVert": ("rVert", "‖", "‖"), |
| 481 | "lbrace": ("rbrace", "{", "}"), |
| 482 | "lbrack": ("rbrack", "[", "]"), |
| 483 | } |
| 484 | |
| 485 | STANDARD_FUNCTIONS = frozenset({ |
| 486 | "arccos", |
| 487 | "arcsin", |
| 488 | "arctan", |
| 489 | "arg", |
| 490 | "cos", |
| 491 | "cosh", |
| 492 | "cot", |
| 493 | "coth", |
| 494 | "csc", |
| 495 | "deg", |
| 496 | "det", |
| 497 | "dim", |
| 498 | "exp", |
| 499 | "gcd", |
| 500 | "hom", |
| 501 | "ker", |
| 502 | "lg", |
| 503 | "ln", |
| 504 | "log", |
| 505 | "Pr", |
| 506 | "sec", |
| 507 | "sin", |
| 508 | "sinh", |
| 509 | "tan", |
| 510 | "tanh", |
| 511 | }) |
| 512 | |
| 513 | LIMIT_FUNCTIONS = frozenset({ |
| 514 | "lim", |
| 515 | "liminf", |
| 516 | "limsup", |
| 517 | "sup", |
| 518 | "inf", |
| 519 | "min", |
| 520 | "max", |
| 521 | "injlim", |
| 522 | "projlim", |
| 523 | "varinjlim", |
| 524 | "varprojlim", |
| 525 | "varliminf", |
| 526 | "varlimsup", |
| 527 | }) |
| 528 | |
| 529 | COLOR_NAMES = { |
| 530 | "black": "000000", |
| 531 | "blue": "0000FF", |
| 532 | "brown": "A52A2A", |
| 533 | "cyan": "00FFFF", |
| 534 | "darkgray": "A9A9A9", |
| 535 | "gray": "808080", |
| 536 | "green": "008000", |
| 537 | "grey": "808080", |
| 538 | "lightgray": "D3D3D3", |
| 539 | "lime": "00FF00", |
| 540 | "magenta": "FF00FF", |
| 541 | "maroon": "800000", |
| 542 | "navy": "000080", |
| 543 | "olive": "808000", |
| 544 | "orange": "FFA500", |
| 545 | "pink": "FFC0CB", |
| 546 | "purple": "800080", |
| 547 | "red": "FF0000", |
| 548 | "teal": "008080", |
| 549 | "violet": "EE82EE", |
| 550 | "white": "FFFFFF", |
| 551 | "yellow": "FFFF00", |
| 552 | } |
| 553 | |
| 554 | MATRIX_ENVIRONMENTS = { |
| 555 | "matrix": None, |
| 556 | "pmatrix": ("(", ")"), |
| 557 | "bmatrix": ("[", "]"), |
| 558 | "Bmatrix": ("{", "}"), |
| 559 | "vmatrix": ("|", "|"), |
| 560 | "Vmatrix": ("‖", "‖"), |
| 561 | "smallmatrix": None, |
| 562 | "array": None, |
| 563 | "CD": None, |
| 564 | } |
| 565 | |
| 566 | EQUATION_ARRAY_ENVIRONMENTS = frozenset({ |
| 567 | "cases", |
| 568 | "rcases", |
| 569 | "align", |
| 570 | "align*", |
| 571 | "aligned", |
| 572 | "gathered", |
| 573 | "eqnarray", |
| 574 | "eqnarray*", |
| 575 | "equation", |
| 576 | "equation*", |
| 577 | "gather", |
| 578 | "gather*", |
| 579 | "multline", |
| 580 | "multline*", |
| 581 | "split", |
| 582 | "alignat", |
| 583 | "alignat*", |
| 584 | "alignedat", |
| 585 | "subarray", |
| 586 | }) |
| 587 | |
| 588 | NO_OUTPUT_COMMANDS = frozenset({ |
| 589 | "displaystyle", |
| 590 | "textstyle", |
| 591 | "scriptstyle", |
| 592 | "scriptscriptstyle", |
| 593 | "footnotesize", |
| 594 | "tiny", |
| 595 | "scriptsize", |
| 596 | "small", |
| 597 | "normalsize", |
| 598 | "large", |
| 599 | "Large", |
| 600 | "LARGE", |
| 601 | "huge", |
| 602 | "Huge", |
| 603 | "notag", |
| 604 | "nonumber", |
| 605 | }) |
| 606 | |
| 607 | DISCARDED_ARGUMENT_COMMANDS = frozenset({"tag", "label", "ref", "eqref"}) |
| 608 | |
| 609 | NEGATED_SYMBOLS = { |
| 610 | "<": "≮", |
| 611 | "=": "≠", |
| 612 | ">": "≯", |
| 613 | "≤": "≰", |
| 614 | "≥": "≱", |
| 615 | "∼": "≁", |
| 616 | "≃": "≄", |
| 617 | "≅": "≇", |
| 618 | "≈": "≉", |
| 619 | "≡": "≢", |
| 620 | "≺": "⊀", |
| 621 | "≻": "⊁", |
| 622 | "⊂": "⊄", |
| 623 | "⊃": "⊅", |
| 624 | "⊆": "⊈", |
| 625 | "⊇": "⊉", |
| 626 | "⊑": "⋢", |
| 627 | "⊒": "⋣", |
| 628 | "⊢": "⊬", |
| 629 | "⊨": "⊭", |
| 630 | "∣": "∤", |
| 631 | "∥": "∦", |
| 632 | "∈": "∉", |
| 633 | "∋": "∌", |
| 634 | "∃": "∄", |
| 635 | "⊴": "⋬", |
| 636 | "⊵": "⋭", |
| 637 | "←": "↚", |
| 638 | "→": "↛", |
| 639 | "↔": "↮", |
| 640 | "⇐": "⇍", |
| 641 | "⇒": "⇏", |
| 642 | "⇔": "⇎", |
| 643 | } |
| 644 | |
| 645 | SPACING_COMMANDS = { |
| 646 | "!": "\u200b", |
| 647 | ",": "\u2009", |
| 648 | ":": "\u205f", |
| 649 | ";": "\u2004", |
| 650 | " ": " ", |
| 651 | "medspace": "\u205f", |
| 652 | "thickspace": "\u2004", |
| 653 | "enspace": "\u2002", |
| 654 | "quad": "\u2003", |
| 655 | "qquad": "\u2003\u2003", |
| 656 | "space": " ", |
| 657 | } |
| 658 | |
| 659 | UNSUPPORTED_COMMANDS = frozenset({ |
| 660 | "smash", |
| 661 | "ensuremath", |
| 662 | "mathnormal", |
| 663 | "mathord", |
| 664 | "mathbin", |
| 665 | "mathopen", |
| 666 | "mathclose", |
| 667 | "mathpunct", |
| 668 | "mathinner", |
| 669 | "strut", |
| 670 | "mathstrut", |
| 671 | "rule", |
| 672 | "raisebox", |
| 673 | "above", |
| 674 | "overwithdelims", |
| 675 | "atopwithdelims", |
| 676 | "abovewithdelims", |
| 677 | "let", |
| 678 | "providecommand", |
| 679 | "edef", |
| 680 | "DeclareMathOperator", |
| 681 | "sideset", |
| 682 | "intertext", |
| 683 | "shortintertext", |
| 684 | "shoveleft", |
| 685 | "shoveright", |
| 686 | "hdotsfor", |
| 687 | "xleftrightarrow", |
| 688 | "xhookleftarrow", |
| 689 | "xhookrightarrow", |
| 690 | "xmapsto", |
| 691 | "nobreakdash", |
| 692 | "allowdisplaybreaks", |
| 693 | "displaybreak", |
| 694 | "numberwithin", |
| 695 | "raisetag", |
| 696 | "sout", |
| 697 | "uline", |
| 698 | "uuline", |
| 699 | "underbracket", |
| 700 | "overbracket", |
| 701 | "prescript", |
| 702 | "coloneqq", |
| 703 | "eqqcolon", |
| 704 | "dv", |
| 705 | "pdv", |
| 706 | "braket", |
| 707 | "SI", |
| 708 | "tensor", |
| 709 | "bond", |
| 710 | "pu", |
| 711 | }) |
| 712 | |
| 713 | |
| 714 | __all__ = [ |
| 715 | "ACCENT_COMMANDS", |
| 716 | "ARROW_SYMBOLS", |
| 717 | "BARE_DELIMITER_COMMAND_PAIRS", |
| 718 | "BINARY_SYMBOLS", |
| 719 | "COLOR_NAMES", |
| 720 | "DELIMITER_COMMANDS", |
| 721 | "DISCARDED_ARGUMENT_COMMANDS", |
| 722 | "EQUATION_ARRAY_ENVIRONMENTS", |
| 723 | "GREEK_SYMBOLS", |
| 724 | "LIMIT_FUNCTIONS", |
| 725 | "MATRIX_ENVIRONMENTS", |
| 726 | "NARY_COMMANDS", |
| 727 | "NEGATED_SYMBOLS", |
| 728 | "NO_OUTPUT_COMMANDS", |
| 729 | "OFFICE_LATEX_PROFILE", |
| 730 | "OFFICE_LATEX_SOURCE_COMMIT", |
| 731 | "OFFICE_MHCHEM_SOURCE_COMMIT", |
| 732 | "OPERATOR_BOUNDARY_COMMANDS", |
| 733 | "RELATION_SYMBOLS", |
| 734 | "SPACING_COMMANDS", |
| 735 | "STANDARD_FUNCTIONS", |
| 736 | "SYMBOL_COMMANDS", |
| 737 | "UNSUPPORTED_COMMANDS", |
| 738 | "VARIANT_UPPERCASE_GREEK", |
| 739 | ] |
| 740 |