great-ai/great_ai/utilities/external/pylatexenc/latex2text/_defaultspecs.py
Andras Schmelczer 8faee98ec6
Some checks failed
Publish documentation / publish (push) Successful in 58s
Check / Lint, format & type checks (push) Failing after 1m2s
Check / Test on Python 3.10 (push) Successful in 1m9s
Check / Test on Python 3.9 (push) Successful in 50s
Modernise
2026-06-06 21:39:06 +01:00

1784 lines
95 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
#
# The MIT License (MIT)
#
# Copyright (c) 2019 Philippe Faist
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
from __future__ import print_function, unicode_literals # , absolute_import
import datetime
import sys
import unicodedata
# Internal module. May change without notice.
if sys.version_info.major >= 3:
def unicode(string):
return string
basestring = str
else:
pass
from ..latex2text import fmt_equation_environment # fmt_placeholder_node,
from ..latex2text import (
EnvironmentTextSpec,
MacroTextSpec,
SpecialsTextSpec,
fmt_input_macro,
fmt_math_text_style,
fmt_matrix_environment_node,
placeholder_node_formatter,
)
def _format_uebung(n, l2tobj):
s = "\n" + l2tobj.nodelist_to_text([n.nodeargs[0]]) + "\n"
optarg = n.nodeargs[1]
if optarg is not None:
s += "[{}]\n".format(l2tobj.nodelist_to_text([optarg]))
return s
def _format_maketitle(title, author, date):
s = title + "\n"
s += " " + author + "\n"
s += " " + date + "\n"
s += "=" * max(len(title), 4 + len(author), 4 + len(date)) + "\n\n"
return s
def _latex_today():
return "{dt:%B} {dt.day}, {dt.year}".format(dt=datetime.datetime.now())
def _mathxx_formatter(style):
def formatter(node, l2tobj, style=style):
arg_text = l2tobj.node_arg_to_text(node, 0)
return fmt_math_text_style(arg_text, style)
return formatter
# construct the specs structure, more than the just the following definition
# ==============================================================================
_latex_specs_placeholders = {
"environments": [
# --- as of pylatexenc 2.8, these are now approximated ---
# EnvironmentTextSpec('array', simplify_repl=fmt_placeholder_node),
# EnvironmentTextSpec('pmatrix', simplify_repl=fmt_placeholder_node),
# EnvironmentTextSpec('bmatrix', simplify_repl=fmt_placeholder_node),
# EnvironmentTextSpec('smallmatrix', simplify_repl=fmt_placeholder_node),
# EnvironmentTextSpec('psmallmatrix', simplify_repl=fmt_placeholder_node),
# EnvironmentTextSpec('bsmallmatrix', simplify_repl=fmt_placeholder_node),
],
"specials": [],
"macros": []
+ [
MacroTextSpec(x, simplify_repl=y)
for x, y in (
("includegraphics", placeholder_node_formatter("graphics")),
("ref", "<ref>"),
("autoref", "<ref>"),
("cref", "<ref>"),
("Cref", "<Ref>"),
("eqref", "(<ref>)"),
("cite", "<cit.>"),
("citet", "<cit.>"),
("citep", "<cit.>"),
)
],
}
_latex_specs_approximations = {
"environments": [
EnvironmentTextSpec("center", simplify_repl="\n%s\n"),
EnvironmentTextSpec("flushleft", simplify_repl="\n%s\n"),
EnvironmentTextSpec("flushright", simplify_repl="\n%s\n"),
EnvironmentTextSpec("exenumerate", discard=False),
EnvironmentTextSpec("enumerate", discard=False),
EnvironmentTextSpec("list", discard=False),
EnvironmentTextSpec("itemize", discard=False),
EnvironmentTextSpec("subequations", discard=False),
EnvironmentTextSpec("figure", discard=False),
EnvironmentTextSpec("table", discard=False),
EnvironmentTextSpec("array", simplify_repl=fmt_matrix_environment_node),
EnvironmentTextSpec("pmatrix", simplify_repl=fmt_matrix_environment_node),
EnvironmentTextSpec("bmatrix", simplify_repl=fmt_matrix_environment_node),
EnvironmentTextSpec("smallmatrix", simplify_repl=fmt_matrix_environment_node),
EnvironmentTextSpec("psmallmatrix", simplify_repl=fmt_matrix_environment_node),
EnvironmentTextSpec("bsmallmatrix", simplify_repl=fmt_matrix_environment_node),
#
# math environments used to be categorized as 'placeholders' in
# pylatexenc <= 2.9, but I think it's more accurate to have them in
# 'approximations'.
#
EnvironmentTextSpec("equation", simplify_repl=fmt_equation_environment),
# note {equation*} is actually defined by amsmath
EnvironmentTextSpec("equation*", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("eqnarray", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("eqnarray*", simplify_repl=fmt_equation_environment),
#
EnvironmentTextSpec("align", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("multline", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("gather", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("align*", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("multline*", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("gather*", simplify_repl=fmt_equation_environment),
#
# breqn math
EnvironmentTextSpec("dmath", simplify_repl=fmt_equation_environment),
EnvironmentTextSpec("dmath*", simplify_repl=fmt_equation_environment),
],
"specials": [
SpecialsTextSpec(
"&", " "
), # ignore tabular alignments, just add a little space
],
"macros": [
# NOTE: macro will only be assigned arguments if they are explicitly
# defined as accepting arguments in the `LatexWalker` (see
# `macrospec` module).
MacroTextSpec("emph", discard=False),
MacroTextSpec("textrm", discard=False),
MacroTextSpec("textit", discard=False),
MacroTextSpec("textbf", discard=False),
MacroTextSpec("textsc", discard=False),
MacroTextSpec("textsl", discard=False),
MacroTextSpec("text", discard=False),
]
+ [
MacroTextSpec(x, simplify_repl=y)
for x, y in (
(
"title",
lambda n, l2tobj: setattr(
l2tobj,
"_doc_title",
l2tobj.nodelist_to_text(n.nodeargd.argnlist[0:1]),
),
),
(
"author",
lambda n, l2tobj: setattr(
l2tobj,
"_doc_author",
l2tobj.nodelist_to_text(n.nodeargd.argnlist[0:1]),
),
),
(
"date",
lambda n, l2tobj: setattr(
l2tobj,
"_doc_date",
l2tobj.nodelist_to_text(n.nodeargd.argnlist[0:1]),
),
),
(
"maketitle",
lambda n, l2tobj: _format_maketitle(
getattr(l2tobj, "_doc_title", r"[NO \title GIVEN]"),
getattr(l2tobj, "_doc_author", r"[NO \author GIVEN]"),
getattr(l2tobj, "_doc_date", _latex_today()),
),
),
("url", "<%s>"),
(
"item",
lambda r, l2tobj: "\n "
+ (l2tobj.nodelist_to_text([r.nodeoptarg]) if r.nodeoptarg else "* "),
),
("footnote", "[%(2)s]"), # \footnote[optional mark]{footnote text}
(
"href",
lambda n, l2tobj: "{} <{}>".format(
l2tobj.nodelist_to_text(n.nodeargd.argnlist[1:1]),
l2tobj.nodelist_to_text(n.nodeargd.argnlist[0:0]),
),
),
(
"part",
lambda n, l2tobj: "\n\nPART: {}\n".format(
l2tobj.node_arg_to_text(n, 2).upper()
),
),
(
"chapter",
lambda n, l2tobj: "\n\nCHAPTER: {}\n".format(
l2tobj.node_arg_to_text(n, 2).upper()
),
),
(
"section",
lambda n, l2tobj: "\n\n\N{SECTION SIGN} {}\n".format(
l2tobj.node_arg_to_text(n, 2).upper()
),
),
(
"subsection",
lambda n, l2tobj: "\n\n \N{SECTION SIGN}.\N{SECTION SIGN} {}\n".format(
l2tobj.node_arg_to_text(n, 2)
),
),
(
"subsubsection",
lambda n, l2tobj: "\n\n \N{SECTION SIGN}.\N{SECTION SIGN}.\N{SECTION SIGN} {}\n".format(
l2tobj.node_arg_to_text(n, 2)
),
),
(
"paragraph",
lambda n, l2tobj: "\n\n {}\n".format(l2tobj.node_arg_to_text(n, 2)),
),
(
"subparagraph",
lambda n, l2tobj: "\n\n {}\n".format(l2tobj.node_arg_to_text(n, 2)),
),
("textcolor", "%(3)s"),
("colorbox", "%(3)s"),
("fcolorbox", "%(5)s"),
("hspace", ""),
("vspace", "\n"),
# \\ is treated as an "approximation" because a good text renderer would
# have to actually note that this is a end-of-line marker which is not
# to be confused with other newlines in the paragraph (which can be
# reflowed)
("\\", "\n"),
("frac", "%s/%s"),
("nicefrac", "%s/%s"),
("textfrac", "%s/%s"),
("overline", "%s"),
("underline", "%s"),
("widehat", "%s"),
("widetilde", "%s"),
("wideparen", "%s"),
("overleftarrow", "%s"),
("overrightarrow", "%s"),
("overleftrightarrow", "%s"),
("underleftarrow", "%s"),
("underrightarrow", "%s"),
("underleftrightarrow", "%s"),
("overbrace", "%s"),
("underbrace", "%s"),
("overgroup", "%s"),
("undergroup", "%s"),
("overbracket", "%s"),
("underbracket", "%s"),
("overlinesegment", "%s"),
("underlinesegment", "%s"),
("overleftharpoon", "%s"),
("overrightharpoon", "%s"),
)
],
}
_latex_specs_base = {
"environments": [],
"specials": [],
"macros": [
MacroTextSpec("mathrm", discard=False),
MacroTextSpec("mathbf", simplify_repl=_mathxx_formatter("bold")),
MacroTextSpec("mathit", simplify_repl=_mathxx_formatter("italic")),
MacroTextSpec("mathsf", simplify_repl=_mathxx_formatter("sans")),
MacroTextSpec("mathbb", simplify_repl=_mathxx_formatter("doublestruck")),
MacroTextSpec("mathtt", simplify_repl=_mathxx_formatter("monospace")),
MacroTextSpec("mathcal", simplify_repl=_mathxx_formatter("script")),
MacroTextSpec("mathscr", simplify_repl=_mathxx_formatter("script")),
MacroTextSpec("mathfrak", simplify_repl=_mathxx_formatter("fraktur")),
MacroTextSpec("input", simplify_repl=fmt_input_macro),
MacroTextSpec("include", simplify_repl=fmt_input_macro),
]
+ [
MacroTextSpec(x, simplify_repl=y)
for x, y in (
("today", _latex_today()),
# use second argument:
(
"texorpdfstring",
lambda node, l2tobj: l2tobj.nodelist_to_text(node.nodeargs[1:2]),
),
("oe", "\u0153"),
("OE", "\u0152"),
("ae", "\u00e6"),
("AE", "\u00c6"),
("aa", "\u00e5"), # a norvegien/nordique
("AA", "\u00c5"), # A norvegien/nordique
("o", "\u00f8"), # o norvegien/nordique
("O", "\u00d8"), # O norvegien/nordique
("ss", "\u00df"), # s-z allemand
("L", "\N{LATIN CAPITAL LETTER L WITH STROKE}"),
("l", "\N{LATIN SMALL LETTER L WITH STROKE}"),
("i", "\N{LATIN SMALL LETTER DOTLESS I}"),
("j", "\N{LATIN SMALL LETTER DOTLESS J}"),
("~", "~"),
("&", "&"),
("$", "$"),
("{", "{"),
("}", "}"),
("%", lambda arg: "%"), # careful: % is formatting substitution symbol...
("#", "#"),
("_", "_"),
("textquoteleft", "\N{LEFT SINGLE QUOTATION MARK}"),
("textquoteright", "\N{RIGHT SINGLE QUOTATION MARK}"),
("textquotedblright", "\N{RIGHT DOUBLE QUOTATION MARK}"),
("textquotedblleft", "\N{LEFT DOUBLE QUOTATION MARK}"),
("textendash", "\N{EN DASH}"),
("textemdash", "\N{EM DASH}"),
("textpm", "\N{PLUS-MINUS SIGN}"),
("textmp", "\N{MINUS-OR-PLUS SIGN}"),
("texteuro", "\N{EURO SIGN}"),
("backslash", "\\"),
("textbackslash", "\\"),
# math stuff
("hbar", "\N{LATIN SMALL LETTER H WITH STROKE}"),
("ell", "\N{SCRIPT SMALL L}"),
("forall", "\N{FOR ALL}"),
("complement", "\N{COMPLEMENT}"),
("partial", "\N{PARTIAL DIFFERENTIAL}"),
("exists", "\N{THERE EXISTS}"),
("nexists", "\N{THERE DOES NOT EXIST}"),
("varnothing", "\N{EMPTY SET}"),
("emptyset", "\N{EMPTY SET}"),
("aleph", "\N{ALEF SYMBOL}"),
# increment?
("nabla", "\N{NABLA}"),
#
("in", "\N{ELEMENT OF}"),
("notin", "\N{NOT AN ELEMENT OF}"),
("ni", "\N{CONTAINS AS MEMBER}"),
("prod", "\N{N-ARY PRODUCT}"),
("coprod", "\N{N-ARY COPRODUCT}"),
("sum", "\N{N-ARY SUMMATION}"),
("setminus", "\N{SET MINUS}"),
("smallsetminus", "\N{SET MINUS}"),
("ast", "\N{ASTERISK OPERATOR}"),
("circ", "\N{RING OPERATOR}"),
("bullet", "\N{BULLET OPERATOR}"),
("sqrt", "\N{SQUARE ROOT}(%(2)s)"),
("propto", "\N{PROPORTIONAL TO}"),
("infty", "\N{INFINITY}"),
("parallel", "\N{PARALLEL TO}"),
("nparallel", "\N{NOT PARALLEL TO}"),
("wedge", "\N{LOGICAL AND}"),
("vee", "\N{LOGICAL OR}"),
("cap", "\N{INTERSECTION}"),
("cup", "\N{UNION}"),
("int", "\N{INTEGRAL}"),
("iint", "\N{DOUBLE INTEGRAL}"),
("iiint", "\N{TRIPLE INTEGRAL}"),
("oint", "\N{CONTOUR INTEGRAL}"),
("sim", "\N{TILDE OPERATOR}"),
("backsim", "\N{REVERSED TILDE}"),
("simeq", "\N{ASYMPTOTICALLY EQUAL TO}"),
("approx", "\N{ALMOST EQUAL TO}"),
("neq", "\N{NOT EQUAL TO}"),
("equiv", "\N{IDENTICAL TO}"),
("le", "\N{LESS-THAN OR EQUAL TO}"),
("ge", "\N{GREATER-THAN OR EQUAL TO}"),
("leq", "\N{LESS-THAN OR EQUAL TO}"),
("geq", "\N{GREATER-THAN OR EQUAL TO}"),
("leqslant", "\N{LESS-THAN OR SLANTED EQUAL TO}"),
("geqslant", "\N{GREATER-THAN OR SLANTED EQUAL TO}"),
("leqq", "\N{LESS-THAN OVER EQUAL TO}"),
("geqq", "\N{GREATER-THAN OVER EQUAL TO}"),
("lneqq", "\N{LESS-THAN BUT NOT EQUAL TO}"),
("gneqq", "\N{GREATER-THAN BUT NOT EQUAL TO}"),
("ll", "\N{MUCH LESS-THAN}"),
("gg", "\N{MUCH GREATER-THAN}"),
("nless", "\N{NOT LESS-THAN}"),
("ngtr", "\N{NOT GREATER-THAN}"),
("nleq", "\N{NEITHER LESS-THAN NOR EQUAL TO}"),
("ngeq", "\N{NEITHER GREATER-THAN NOR EQUAL TO}"),
("lesssim", "\N{LESS-THAN OR EQUIVALENT TO}"),
("gtrsim", "\N{GREATER-THAN OR EQUIVALENT TO}"),
("lessgtr", "\N{LESS-THAN OR GREATER-THAN}"),
("gtrless", "\N{GREATER-THAN OR LESS-THAN}"),
("prec", "\N{PRECEDES}"),
("succ", "\N{SUCCEEDS}"),
("preceq", "\N{PRECEDES OR EQUAL TO}"),
("succeq", "\N{SUCCEEDS OR EQUAL TO}"),
("precsim", "\N{PRECEDES OR EQUIVALENT TO}"),
("succsim", "\N{SUCCEEDS OR EQUIVALENT TO}"),
("nprec", "\N{DOES NOT PRECEDE}"),
("nsucc", "\N{DOES NOT SUCCEED}"),
("subset", "\N{SUBSET OF}"),
("supset", "\N{SUPERSET OF}"),
("subseteq", "\N{SUBSET OF OR EQUAL TO}"),
("supseteq", "\N{SUPERSET OF OR EQUAL TO}"),
("nsubseteq", "\N{NEITHER A SUBSET OF NOR EQUAL TO}"),
("nsupseteq", "\N{NEITHER A SUPERSET OF NOR EQUAL TO}"),
("subsetneq", "\N{SUBSET OF WITH NOT EQUAL TO}"),
("supsetneq", "\N{SUPERSET OF WITH NOT EQUAL TO}"),
("cdot", "\N{MIDDLE DOT}"),
("times", "\N{MULTIPLICATION SIGN}"),
("otimes", "\N{CIRCLED TIMES}"),
("oplus", "\N{CIRCLED PLUS}"),
("bigotimes", "\N{CIRCLED TIMES}"),
("bigoplus", "\N{CIRCLED PLUS}"),
("cos", "cos"),
("sin", "sin"),
("tan", "tan"),
("arccos", "arccos"),
("arcsin", "arcsin"),
("arctan", "arctan"),
("cosh", "cosh"),
("sinh", "sinh"),
("tanh", "tanh"),
("arccosh", "arccosh"),
("arcsinh", "arcsinh"),
("arctanh", "arctanh"),
("ln", "ln"),
("log", "log"),
("exp", "exp"),
("max", "max"),
("min", "min"),
("sup", "sup"),
("inf", "inf"),
("lim", "lim"),
("limsup", "lim sup"),
("liminf", "lim inf"),
("prime", "'"),
("dag", "\N{DAGGER}"),
("dagger", "\N{DAGGER}"),
("pm", "\N{PLUS-MINUS SIGN}"),
("mp", "\N{MINUS-OR-PLUS SIGN}"),
(",", " "),
(";", " "),
(":", " "),
(" ", " "),
("!", ""), # sorry, no negative space in ascii
("quad", " "),
("qquad", " "),
("ldots", "\N{HORIZONTAL ELLIPSIS}"),
("cdots", "\N{MIDLINE HORIZONTAL ELLIPSIS}"),
("ddots", "\N{DOWN RIGHT DIAGONAL ELLIPSIS}"),
("iddots", "\N{UP RIGHT DIAGONAL ELLIPSIS}"),
("vdots", "\N{VERTICAL ELLIPSIS}"),
("dots", "\N{HORIZONTAL ELLIPSIS}"),
("dotsc", "\N{HORIZONTAL ELLIPSIS}"),
("dotsb", "\N{HORIZONTAL ELLIPSIS}"),
("dotsm", "\N{HORIZONTAL ELLIPSIS}"),
("dotsi", "\N{HORIZONTAL ELLIPSIS}"),
("dotso", "\N{HORIZONTAL ELLIPSIS}"),
("langle", "\N{MATHEMATICAL LEFT ANGLE BRACKET}"),
("rangle", "\N{MATHEMATICAL RIGHT ANGLE BRACKET}"),
("lvert", "|"),
("rvert", "|"),
("vert", "|"),
("lVert", "\N{DOUBLE VERTICAL LINE}"),
("rVert", "\N{DOUBLE VERTICAL LINE}"),
("Vert", "\N{DOUBLE VERTICAL LINE}"),
("mid", "|"),
("nmid", "\N{DOES NOT DIVIDE}"),
("ket", "|%s\N{MATHEMATICAL RIGHT ANGLE BRACKET}"),
("bra", "\N{MATHEMATICAL LEFT ANGLE BRACKET}%s|"),
(
"braket",
"\N{MATHEMATICAL LEFT ANGLE BRACKET}%s|%s\N{MATHEMATICAL RIGHT ANGLE BRACKET}",
),
(
"ketbra",
"|%s\N{MATHEMATICAL RIGHT ANGLE BRACKET}\N{MATHEMATICAL LEFT ANGLE BRACKET}%s|",
),
("uparrow", "\N{UPWARDS ARROW}"),
("downarrow", "\N{DOWNWARDS ARROW}"),
("rightarrow", "\N{RIGHTWARDS ARROW}"),
("to", "\N{RIGHTWARDS ARROW}"),
("leftarrow", "\N{LEFTWARDS ARROW}"),
("longrightarrow", "\N{LONG RIGHTWARDS ARROW}"),
("longleftarrow", "\N{LONG LEFTWARDS ARROW}"),
)
],
}
# ==============================================================================
advanced_symbols_macros = [
# Rules from latexencode defaults 'defaults'
MacroTextSpec("textasciicircum", "\N{CIRCUMFLEX ACCENT}"), # ^
MacroTextSpec("textasciitilde", "\N{TILDE}"), # ~
MacroTextSpec("textexclamdown", "\N{INVERTED EXCLAMATION MARK}"), # ‘¡’
MacroTextSpec("textcent", "\N{CENT SIGN}"), # ‘¢’
MacroTextSpec("textsterling", "\N{POUND SIGN}"), # ‘£’
MacroTextSpec("textcurrency", "\N{CURRENCY SIGN}"), # ‘¤’
MacroTextSpec("textyen", "\N{YEN SIGN}"), # ‘¥’
MacroTextSpec("textbrokenbar", "\N{BROKEN BAR}"), # ‘¦’
MacroTextSpec("textsection", "\N{SECTION SIGN}"), # ‘§’
MacroTextSpec("textasciidieresis", "\N{DIAERESIS}"), # ‘¨’
MacroTextSpec("textcopyright", "\N{COPYRIGHT SIGN}"), # ‘©’
MacroTextSpec("textordfeminine", "\N{FEMININE ORDINAL INDICATOR}"), # ‘ª’
MacroTextSpec(
"guillemotleft", "\N{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}"
), # ‘«’
MacroTextSpec("textlnot", "\N{NOT SIGN}"), # ‘¬’
MacroTextSpec("-", "\N{SOFT HYPHEN}"), # ­
MacroTextSpec("textregistered", "\N{REGISTERED SIGN}"), # ‘®’
MacroTextSpec("textasciimacron", "\N{MACRON}"), # ‘¯’
MacroTextSpec("textdegree", "\N{DEGREE SIGN}"), # ‘°’
MacroTextSpec("texttwosuperior", "\N{SUPERSCRIPT TWO}"), # ‘²’
MacroTextSpec("textthreesuperior", "\N{SUPERSCRIPT THREE}"), # ‘³’
MacroTextSpec("textasciiacute", "\N{ACUTE ACCENT}"), # ´
MacroTextSpec("textmu", "\N{MICRO SIGN}"), # ‘µ’
MacroTextSpec("textparagraph", "\N{PILCROW SIGN}"), # ‘¶’
MacroTextSpec("textperiodcentered", "\N{MIDDLE DOT}"), # ‘·’
MacroTextSpec("textonesuperior", "\N{SUPERSCRIPT ONE}"), # ‘¹’
MacroTextSpec("textordmasculine", "\N{MASCULINE ORDINAL INDICATOR}"), # ‘º’
MacroTextSpec(
"guillemotright", "\N{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}"
), # ‘»’
MacroTextSpec("textonequarter", "\N{VULGAR FRACTION ONE QUARTER}"), # ‘¼’
MacroTextSpec("textonehalf", "\N{VULGAR FRACTION ONE HALF}"), # ‘½’
MacroTextSpec("textthreequarters", "\N{VULGAR FRACTION THREE QUARTERS}"), # ‘¾’
MacroTextSpec("textquestiondown", "\N{INVERTED QUESTION MARK}"), # ‘¿’
MacroTextSpec("DH", "\N{LATIN CAPITAL LETTER ETH}"), # ‘Ð’
MacroTextSpec("texttimes", "\N{MULTIPLICATION SIGN}"), # ×
MacroTextSpec("TH", "\N{LATIN CAPITAL LETTER THORN}"), # ‘Þ’
MacroTextSpec("dh", "\N{LATIN SMALL LETTER ETH}"), # ‘ð’
MacroTextSpec("textdiv", "\N{DIVISION SIGN}"), # ‘÷’
MacroTextSpec("th", "\N{LATIN SMALL LETTER THORN}"), # ‘þ’
MacroTextSpec("DJ", "\N{LATIN CAPITAL LETTER D WITH STROKE}"), # ‘Đ’
MacroTextSpec("dj", "\N{LATIN SMALL LETTER D WITH STROKE}"), # ‘đ’
MacroTextSpec("IJ", "\N{LATIN CAPITAL LIGATURE IJ}"), # ‘IJ’
MacroTextSpec("ij", "\N{LATIN SMALL LIGATURE IJ}"), # ‘ij’
MacroTextSpec("NG", "\N{LATIN CAPITAL LETTER ENG}"), # ‘Ŋ’
MacroTextSpec("ng", "\N{LATIN SMALL LETTER ENG}"), # ‘ŋ’
MacroTextSpec("textflorin", "\N{LATIN SMALL LETTER F WITH HOOK}"), # ‘ƒ’
MacroTextSpec("texthvlig", "\N{LATIN SMALL LETTER HV}"), # ‘ƕ’
MacroTextSpec("textnrleg", "\N{LATIN SMALL LETTER N WITH LONG RIGHT LEG}"), # ‘ƞ’
MacroTextSpec("textschwa", "\N{LATIN SMALL LETTER SCHWA}"), # ‘ə’
MacroTextSpec("textphi", "\N{LATIN SMALL LETTER PHI}"), # ‘ɸ’
MacroTextSpec("textglotstop", "\N{LATIN LETTER GLOTTAL STOP}"), # ʔ
MacroTextSpec("textturnk", "\N{LATIN SMALL LETTER TURNED K}"), # ‘ʞ’
MacroTextSpec("textasciicircum", "\N{MODIFIER LETTER CIRCUMFLEX ACCENT}"), # ˆ
MacroTextSpec("textasciicaron", "\N{CARON}"), # ‘ˇ’
MacroTextSpec("textasciibreve", "\N{BREVE}"), # ‘˘’
MacroTextSpec("textperiodcentered", "\N{DOT ABOVE}"), # ‘˙’
MacroTextSpec("textasciitilde", "\N{SMALL TILDE}"), # ˜
MacroTextSpec("textacutedbl", "\N{DOUBLE ACUTE ACCENT}"), # ‘˝’
MacroTextSpec("varkappa", "\N{GREEK KAPPA SYMBOL}"), # ‘ϰ’
MacroTextSpec("backepsilon", "\N{GREEK REVERSED LUNATE EPSILON SYMBOL}"), # ‘϶’
MacroTextSpec("CYRYO", "\N{CYRILLIC CAPITAL LETTER IO}"), # ‘Ё’
MacroTextSpec("CYRDJE", "\N{CYRILLIC CAPITAL LETTER DJE}"), # ‘Ђ’
MacroTextSpec("CYRIE", "\N{CYRILLIC CAPITAL LETTER UKRAINIAN IE}"), # ‘Є’
MacroTextSpec("CYRDZE", "\N{CYRILLIC CAPITAL LETTER DZE}"), # Ѕ
MacroTextSpec(
"CYRII", "\N{CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I}"
), # І
MacroTextSpec("CYRYI", "\N{CYRILLIC CAPITAL LETTER YI}"), # ‘Ї’
MacroTextSpec("CYRJE", "\N{CYRILLIC CAPITAL LETTER JE}"), # Ј
MacroTextSpec("CYRLJE", "\N{CYRILLIC CAPITAL LETTER LJE}"), # ‘Љ’
MacroTextSpec("CYRNJE", "\N{CYRILLIC CAPITAL LETTER NJE}"), # ‘Њ’
MacroTextSpec("CYRTSHE", "\N{CYRILLIC CAPITAL LETTER TSHE}"), # ‘Ћ’
MacroTextSpec("CYRUSHRT", "\N{CYRILLIC CAPITAL LETTER SHORT U}"), # ‘Ў’
MacroTextSpec("CYRDZHE", "\N{CYRILLIC CAPITAL LETTER DZHE}"), # ‘Џ’
MacroTextSpec("CYRA", "\N{CYRILLIC CAPITAL LETTER A}"), # А
MacroTextSpec("CYRB", "\N{CYRILLIC CAPITAL LETTER BE}"), # ‘Б’
MacroTextSpec("CYRV", "\N{CYRILLIC CAPITAL LETTER VE}"), # В
MacroTextSpec("CYRG", "\N{CYRILLIC CAPITAL LETTER GHE}"), # ‘Г’
MacroTextSpec("CYRD", "\N{CYRILLIC CAPITAL LETTER DE}"), # ‘Д’
MacroTextSpec("CYRE", "\N{CYRILLIC CAPITAL LETTER IE}"), # Е
MacroTextSpec("CYRZH", "\N{CYRILLIC CAPITAL LETTER ZHE}"), # ‘Ж’
MacroTextSpec("CYRZ", "\N{CYRILLIC CAPITAL LETTER ZE}"), # З
MacroTextSpec("CYRI", "\N{CYRILLIC CAPITAL LETTER I}"), # ‘И’
MacroTextSpec("CYRISHRT", "\N{CYRILLIC CAPITAL LETTER SHORT I}"), # ‘Й’
MacroTextSpec("CYRK", "\N{CYRILLIC CAPITAL LETTER KA}"), # К
MacroTextSpec("CYRL", "\N{CYRILLIC CAPITAL LETTER EL}"), # ‘Л’
MacroTextSpec("CYRM", "\N{CYRILLIC CAPITAL LETTER EM}"), # М
MacroTextSpec("CYRN", "\N{CYRILLIC CAPITAL LETTER EN}"), # Н
MacroTextSpec("CYRO", "\N{CYRILLIC CAPITAL LETTER O}"), # О
MacroTextSpec("CYRP", "\N{CYRILLIC CAPITAL LETTER PE}"), # ‘П’
MacroTextSpec("CYRR", "\N{CYRILLIC CAPITAL LETTER ER}"), # Р
MacroTextSpec("CYRS", "\N{CYRILLIC CAPITAL LETTER ES}"), # С
MacroTextSpec("CYRT", "\N{CYRILLIC CAPITAL LETTER TE}"), # Т
MacroTextSpec("CYRU", "\N{CYRILLIC CAPITAL LETTER U}"), # У
MacroTextSpec("CYRF", "\N{CYRILLIC CAPITAL LETTER EF}"), # ‘Ф’
MacroTextSpec("CYRH", "\N{CYRILLIC CAPITAL LETTER HA}"), # Х
MacroTextSpec("CYRC", "\N{CYRILLIC CAPITAL LETTER TSE}"), # ‘Ц’
MacroTextSpec("CYRCH", "\N{CYRILLIC CAPITAL LETTER CHE}"), # ‘Ч’
MacroTextSpec("CYRSH", "\N{CYRILLIC CAPITAL LETTER SHA}"), # ‘Ш’
MacroTextSpec("CYRSHCH", "\N{CYRILLIC CAPITAL LETTER SHCHA}"), # ‘Щ’
MacroTextSpec("CYRHRDSN", "\N{CYRILLIC CAPITAL LETTER HARD SIGN}"), # ‘Ъ’
MacroTextSpec("CYRERY", "\N{CYRILLIC CAPITAL LETTER YERU}"), # ‘Ы’
MacroTextSpec("CYRSFTSN", "\N{CYRILLIC CAPITAL LETTER SOFT SIGN}"), # Ь
MacroTextSpec("CYREREV", "\N{CYRILLIC CAPITAL LETTER E}"), # ‘Э’
MacroTextSpec("CYRYU", "\N{CYRILLIC CAPITAL LETTER YU}"), # ‘Ю’
MacroTextSpec("CYRYA", "\N{CYRILLIC CAPITAL LETTER YA}"), # ‘Я’
MacroTextSpec("cyra", "\N{CYRILLIC SMALL LETTER A}"), # а
MacroTextSpec("cyrb", "\N{CYRILLIC SMALL LETTER BE}"), # б
MacroTextSpec("cyrv", "\N{CYRILLIC SMALL LETTER VE}"), # ‘в’
MacroTextSpec("cyrg", "\N{CYRILLIC SMALL LETTER GHE}"), # г
MacroTextSpec("cyrd", "\N{CYRILLIC SMALL LETTER DE}"), # ‘д’
MacroTextSpec("cyre", "\N{CYRILLIC SMALL LETTER IE}"), # е
MacroTextSpec("cyrzh", "\N{CYRILLIC SMALL LETTER ZHE}"), # ‘ж’
MacroTextSpec("cyrz", "\N{CYRILLIC SMALL LETTER ZE}"), # ‘з’
MacroTextSpec("cyri", "\N{CYRILLIC SMALL LETTER I}"), # ‘и’
MacroTextSpec("cyrishrt", "\N{CYRILLIC SMALL LETTER SHORT I}"), # ‘й’
MacroTextSpec("cyrk", "\N{CYRILLIC SMALL LETTER KA}"), # ‘к’
MacroTextSpec("cyrl", "\N{CYRILLIC SMALL LETTER EL}"), # ‘л’
MacroTextSpec("cyrm", "\N{CYRILLIC SMALL LETTER EM}"), # ‘м’
MacroTextSpec("cyrn", "\N{CYRILLIC SMALL LETTER EN}"), # ‘н’
MacroTextSpec("cyro", "\N{CYRILLIC SMALL LETTER O}"), # о
MacroTextSpec("cyrp", "\N{CYRILLIC SMALL LETTER PE}"), # ‘п’
MacroTextSpec("cyrr", "\N{CYRILLIC SMALL LETTER ER}"), # р
MacroTextSpec("cyrs", "\N{CYRILLIC SMALL LETTER ES}"), # с
MacroTextSpec("cyrt", "\N{CYRILLIC SMALL LETTER TE}"), # ‘т’
MacroTextSpec("cyru", "\N{CYRILLIC SMALL LETTER U}"), # у
MacroTextSpec("cyrf", "\N{CYRILLIC SMALL LETTER EF}"), # ‘ф’
MacroTextSpec("cyrh", "\N{CYRILLIC SMALL LETTER HA}"), # х
MacroTextSpec("cyrc", "\N{CYRILLIC SMALL LETTER TSE}"), # ‘ц’
MacroTextSpec("cyrch", "\N{CYRILLIC SMALL LETTER CHE}"), # ‘ч’
MacroTextSpec("cyrsh", "\N{CYRILLIC SMALL LETTER SHA}"), # ‘ш’
MacroTextSpec("cyrshch", "\N{CYRILLIC SMALL LETTER SHCHA}"), # ‘щ’
MacroTextSpec("cyrhrdsn", "\N{CYRILLIC SMALL LETTER HARD SIGN}"), # ‘ъ’
MacroTextSpec("cyrery", "\N{CYRILLIC SMALL LETTER YERU}"), # ‘ы’
MacroTextSpec("cyrsftsn", "\N{CYRILLIC SMALL LETTER SOFT SIGN}"), # ‘ь’
MacroTextSpec("cyrerev", "\N{CYRILLIC SMALL LETTER E}"), # ‘э’
MacroTextSpec("cyryu", "\N{CYRILLIC SMALL LETTER YU}"), # ‘ю’
MacroTextSpec("cyrya", "\N{CYRILLIC SMALL LETTER YA}"), # ‘я’
MacroTextSpec("cyryo", "\N{CYRILLIC SMALL LETTER IO}"), # ‘ё’
MacroTextSpec("cyrdje", "\N{CYRILLIC SMALL LETTER DJE}"), # ‘ђ’
MacroTextSpec("cyrie", "\N{CYRILLIC SMALL LETTER UKRAINIAN IE}"), # ‘є’
MacroTextSpec("cyrdze", "\N{CYRILLIC SMALL LETTER DZE}"), # ѕ
MacroTextSpec("cyrii", "\N{CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I}"), # і
MacroTextSpec("cyryi", "\N{CYRILLIC SMALL LETTER YI}"), # ‘ї’
MacroTextSpec("cyrje", "\N{CYRILLIC SMALL LETTER JE}"), # ј
MacroTextSpec("cyrlje", "\N{CYRILLIC SMALL LETTER LJE}"), # ‘љ’
MacroTextSpec("cyrnje", "\N{CYRILLIC SMALL LETTER NJE}"), # ‘њ’
MacroTextSpec("cyrtshe", "\N{CYRILLIC SMALL LETTER TSHE}"), # ‘ћ’
MacroTextSpec("cyrushrt", "\N{CYRILLIC SMALL LETTER SHORT U}"), # ‘ў’
MacroTextSpec("cyrdzhe", "\N{CYRILLIC SMALL LETTER DZHE}"), # ‘џ’
MacroTextSpec("CYRYAT", "\N{CYRILLIC CAPITAL LETTER YAT}"), # ‘Ѣ’
MacroTextSpec("cyryat", "\N{CYRILLIC SMALL LETTER YAT}"), # ‘ѣ’
MacroTextSpec("CYRBYUS", "\N{CYRILLIC CAPITAL LETTER BIG YUS}"), # ‘Ѫ’
MacroTextSpec("cyrbyus", "\N{CYRILLIC SMALL LETTER BIG YUS}"), # ‘ѫ’
MacroTextSpec("CYRFITA", "\N{CYRILLIC CAPITAL LETTER FITA}"), # ‘Ѳ’
MacroTextSpec("cyrfita", "\N{CYRILLIC SMALL LETTER FITA}"), # ‘ѳ’
MacroTextSpec("CYRIZH", "\N{CYRILLIC CAPITAL LETTER IZHITSA}"), # Ѵ
MacroTextSpec("cyrizh", "\N{CYRILLIC SMALL LETTER IZHITSA}"), # ѵ
MacroTextSpec("CYRSEMISFTSN", "\N{CYRILLIC CAPITAL LETTER SEMISOFT SIGN}"), # ‘Ҍ’
MacroTextSpec("cyrsemisftsn", "\N{CYRILLIC SMALL LETTER SEMISOFT SIGN}"), # ‘ҍ’
MacroTextSpec("CYRRTICK", "\N{CYRILLIC CAPITAL LETTER ER WITH TICK}"), # ‘Ҏ’
MacroTextSpec("cyrrtick", "\N{CYRILLIC SMALL LETTER ER WITH TICK}"), # ‘ҏ’
MacroTextSpec("CYRGUP", "\N{CYRILLIC CAPITAL LETTER GHE WITH UPTURN}"), # ‘Ґ’
MacroTextSpec("cyrgup", "\N{CYRILLIC SMALL LETTER GHE WITH UPTURN}"), # ‘ґ’
MacroTextSpec("CYRGHCRS", "\N{CYRILLIC CAPITAL LETTER GHE WITH STROKE}"), # ‘Ғ’
MacroTextSpec("cyrghcrs", "\N{CYRILLIC SMALL LETTER GHE WITH STROKE}"), # ‘ғ’
MacroTextSpec("CYRGHK", "\N{CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK}"), # ‘Ҕ’
MacroTextSpec("cyrghk", "\N{CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK}"), # ‘ҕ’
MacroTextSpec("CYRZHDSC", "\N{CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER}"), # ‘Җ’
MacroTextSpec("cyrzhdsc", "\N{CYRILLIC SMALL LETTER ZHE WITH DESCENDER}"), # ‘җ’
MacroTextSpec("CYRZDSC", "\N{CYRILLIC CAPITAL LETTER ZE WITH DESCENDER}"), # ‘Ҙ’
MacroTextSpec("cyrzdsc", "\N{CYRILLIC SMALL LETTER ZE WITH DESCENDER}"), # ‘ҙ’
MacroTextSpec("CYRKDSC", "\N{CYRILLIC CAPITAL LETTER KA WITH DESCENDER}"), # ‘Қ’
MacroTextSpec("cyrkdsc", "\N{CYRILLIC SMALL LETTER KA WITH DESCENDER}"), # ‘қ’
MacroTextSpec(
"CYRKVCRS", "\N{CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE}"
), # ‘Ҝ’
MacroTextSpec(
"cyrkvcrs", "\N{CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE}"
), # ‘ҝ’
MacroTextSpec("CYRKHCRS", "\N{CYRILLIC CAPITAL LETTER KA WITH STROKE}"), # ‘Ҟ’
MacroTextSpec("cyrkhcrs", "\N{CYRILLIC SMALL LETTER KA WITH STROKE}"), # ‘ҟ’
MacroTextSpec("CYRKBEAK", "\N{CYRILLIC CAPITAL LETTER BASHKIR KA}"), # ‘Ҡ’
MacroTextSpec("cyrkbeak", "\N{CYRILLIC SMALL LETTER BASHKIR KA}"), # ‘ҡ’
MacroTextSpec("CYRNDSC", "\N{CYRILLIC CAPITAL LETTER EN WITH DESCENDER}"), # ‘Ң’
MacroTextSpec("cyrndsc", "\N{CYRILLIC SMALL LETTER EN WITH DESCENDER}"), # ‘ң’
MacroTextSpec("CYRNG", "\N{CYRILLIC CAPITAL LIGATURE EN GHE}"), # ‘Ҥ’
MacroTextSpec("cyrng", "\N{CYRILLIC SMALL LIGATURE EN GHE}"), # ‘ҥ’
MacroTextSpec("CYRPHK", "\N{CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK}"), # ‘Ҧ’
MacroTextSpec("cyrphk", "\N{CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK}"), # ‘ҧ’
MacroTextSpec("CYRABHHA", "\N{CYRILLIC CAPITAL LETTER ABKHASIAN HA}"), # ‘Ҩ’
MacroTextSpec("cyrabhha", "\N{CYRILLIC SMALL LETTER ABKHASIAN HA}"), # ‘ҩ’
MacroTextSpec("CYRSDSC", "\N{CYRILLIC CAPITAL LETTER ES WITH DESCENDER}"), # ‘Ҫ’
MacroTextSpec("cyrsdsc", "\N{CYRILLIC SMALL LETTER ES WITH DESCENDER}"), # ‘ҫ’
MacroTextSpec("CYRTDSC", "\N{CYRILLIC CAPITAL LETTER TE WITH DESCENDER}"), # ‘Ҭ’
MacroTextSpec("cyrtdsc", "\N{CYRILLIC SMALL LETTER TE WITH DESCENDER}"), # ‘ҭ’
MacroTextSpec("CYRY", "\N{CYRILLIC CAPITAL LETTER STRAIGHT U}"), # Ү
MacroTextSpec("cyry", "\N{CYRILLIC SMALL LETTER STRAIGHT U}"), # ү
MacroTextSpec(
"CYRYHCRS", "\N{CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE}"
), # ‘Ұ’
MacroTextSpec(
"cyryhcrs", "\N{CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE}"
), # ‘ұ’
MacroTextSpec("CYRHDSC", "\N{CYRILLIC CAPITAL LETTER HA WITH DESCENDER}"), # ‘Ҳ’
MacroTextSpec("cyrhdsc", "\N{CYRILLIC SMALL LETTER HA WITH DESCENDER}"), # ‘ҳ’
MacroTextSpec("CYRTETSE", "\N{CYRILLIC CAPITAL LIGATURE TE TSE}"), # ‘Ҵ’
MacroTextSpec("cyrtetse", "\N{CYRILLIC SMALL LIGATURE TE TSE}"), # ‘ҵ’
MacroTextSpec("CYRCHRDSC", "\N{CYRILLIC CAPITAL LETTER CHE WITH DESCENDER}"), # ‘Ҷ’
MacroTextSpec("cyrchrdsc", "\N{CYRILLIC SMALL LETTER CHE WITH DESCENDER}"), # ‘ҷ’
MacroTextSpec(
"CYRCHVCRS", "\N{CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE}"
), # ‘Ҹ’
MacroTextSpec(
"cyrchvcrs", "\N{CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE}"
), # ‘ҹ’
MacroTextSpec("CYRSHHA", "\N{CYRILLIC CAPITAL LETTER SHHA}"), # ‘Һ’
MacroTextSpec("cyrshha", "\N{CYRILLIC SMALL LETTER SHHA}"), # һ
MacroTextSpec("CYRABHCH", "\N{CYRILLIC CAPITAL LETTER ABKHASIAN CHE}"), # ‘Ҽ’
MacroTextSpec("cyrabhch", "\N{CYRILLIC SMALL LETTER ABKHASIAN CHE}"), # ҽ
MacroTextSpec(
"CYRABHCHDSC", "\N{CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER}"
), # ‘Ҿ’
MacroTextSpec(
"cyrabhchdsc", "\N{CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER}"
), # ‘ҿ’
MacroTextSpec("CYRpalochka", "\N{CYRILLIC LETTER PALOCHKA}"), # Ӏ
MacroTextSpec("CYRKHK", "\N{CYRILLIC CAPITAL LETTER KA WITH HOOK}"), # ‘Ӄ’
MacroTextSpec("cyrkhk", "\N{CYRILLIC SMALL LETTER KA WITH HOOK}"), # ‘ӄ’
MacroTextSpec("CYRLDSC", "\N{CYRILLIC CAPITAL LETTER EL WITH TAIL}"), # ‘Ӆ’
MacroTextSpec("cyrldsc", "\N{CYRILLIC SMALL LETTER EL WITH TAIL}"), # ‘ӆ’
MacroTextSpec("CYRNHK", "\N{CYRILLIC CAPITAL LETTER EN WITH HOOK}"), # ‘Ӈ’
MacroTextSpec("cyrnhk", "\N{CYRILLIC SMALL LETTER EN WITH HOOK}"), # ‘ӈ’
MacroTextSpec("CYRCHLDSC", "\N{CYRILLIC CAPITAL LETTER KHAKASSIAN CHE}"), # ‘Ӌ’
MacroTextSpec("cyrchldsc", "\N{CYRILLIC SMALL LETTER KHAKASSIAN CHE}"), # ‘ӌ’
MacroTextSpec("CYRMDSC", "\N{CYRILLIC CAPITAL LETTER EM WITH TAIL}"), # ‘Ӎ’
MacroTextSpec("cyrmdsc", "\N{CYRILLIC SMALL LETTER EM WITH TAIL}"), # ‘ӎ’
MacroTextSpec("CYRAE", "\N{CYRILLIC CAPITAL LIGATURE A IE}"), # ‘Ӕ’
MacroTextSpec("cyrae", "\N{CYRILLIC SMALL LIGATURE A IE}"), # ‘ӕ’
MacroTextSpec("CYRSCHWA", "\N{CYRILLIC CAPITAL LETTER SCHWA}"), # ‘Ә’
MacroTextSpec("cyrschwa", "\N{CYRILLIC SMALL LETTER SCHWA}"), # ‘ә’
MacroTextSpec("CYRABHDZE", "\N{CYRILLIC CAPITAL LETTER ABKHASIAN DZE}"), # Ӡ
MacroTextSpec("cyrabhdze", "\N{CYRILLIC SMALL LETTER ABKHASIAN DZE}"), # ‘ӡ’
MacroTextSpec("CYROTLD", "\N{CYRILLIC CAPITAL LETTER BARRED O}"), # ‘Ө’
MacroTextSpec("cyrotld", "\N{CYRILLIC SMALL LETTER BARRED O}"), # ‘ө’
MacroTextSpec("CYRGDSC", "\N{CYRILLIC CAPITAL LETTER GHE WITH DESCENDER}"), # ‘Ӷ’
MacroTextSpec("cyrgdsc", "\N{CYRILLIC SMALL LETTER GHE WITH DESCENDER}"), # ‘ӷ’
MacroTextSpec(
"CYRGDSCHCRS", "\N{CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK}"
), # ‘Ӻ’
MacroTextSpec(
"cyrgdschcrs", "\N{CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK}"
), # ‘ӻ’
MacroTextSpec("CYRHHK", "\N{CYRILLIC CAPITAL LETTER HA WITH HOOK}"), # ‘Ӽ’
MacroTextSpec("cyrhhk", "\N{CYRILLIC SMALL LETTER HA WITH HOOK}"), # ‘ӽ’
MacroTextSpec("CYRHHCRS", "\N{CYRILLIC CAPITAL LETTER HA WITH STROKE}"), # ‘Ӿ’
MacroTextSpec("cyrhhcrs", "\N{CYRILLIC SMALL LETTER HA WITH STROKE}"), # ‘ӿ’
MacroTextSpec("textbaht", "\N{THAI CURRENCY SYMBOL BAHT}"), # ‘฿’
MacroTextSpec("enskip", "\N{EN QUAD}"), #  
MacroTextSpec("enskip", "\N{EN SPACE}"), #
MacroTextSpec("textcompwordmark", "\N{ZERO WIDTH NON-JOINER}"), #
MacroTextSpec("quotesinglbase", "\N{SINGLE LOW-9 QUOTATION MARK}"), #
MacroTextSpec("quotedblbase", "\N{DOUBLE LOW-9 QUOTATION MARK}"), # ‘„’
MacroTextSpec("textdagger", "\N{DAGGER}"), # ‘†’
MacroTextSpec("textdaggerdbl", "\N{DOUBLE DAGGER}"), # ‘‡’
MacroTextSpec("textbullet", "\N{BULLET}"), # ‘•’
MacroTextSpec("textellipsis", "\N{HORIZONTAL ELLIPSIS}"), # ‘…’
MacroTextSpec("textperthousand", "\N{PER MILLE SIGN}"), # ‘‰’
MacroTextSpec("textpertenthousand", "\N{PER TEN THOUSAND SIGN}"), # ‘‱’
MacroTextSpec("backprime", "\N{REVERSED PRIME}"), #
MacroTextSpec(
"guilsinglleft", "\N{SINGLE LEFT-POINTING ANGLE QUOTATION MARK}"
), #
MacroTextSpec(
"guilsinglright", "\N{SINGLE RIGHT-POINTING ANGLE QUOTATION MARK}"
), #
MacroTextSpec("textreferencemark", "\N{REFERENCE MARK}"), # ‘※’
MacroTextSpec("textinterrobang", "\N{INTERROBANG}"), # ‘‽’
MacroTextSpec("textfractionsolidus", "\N{FRACTION SLASH}"), #
MacroTextSpec("textasteriskcentered", "\N{LOW ASTERISK}"), #
MacroTextSpec("textdiscount", "\N{COMMERCIAL MINUS SIGN}"), # ‘⁒’
MacroTextSpec("nolinebreak", "\N{WORD JOINER}"), #
MacroTextSpec("textcolonmonetary", "\N{COLON SIGN}"), # ‘₡’
MacroTextSpec("textlira", "\N{LIRA SIGN}"), # ‘₤’
MacroTextSpec("textnaira", "\N{NAIRA SIGN}"), # ‘₦’
MacroTextSpec("textwon", "\N{WON SIGN}"), # ‘₩’
MacroTextSpec("textdong", "\N{DONG SIGN}"), # ‘₫’
MacroTextSpec("textpeso", "\N{PESO SIGN}"), # ‘₱’
MacroTextSpec("textcelsius", "\N{DEGREE CELSIUS}"), # ‘℃’
MacroTextSpec("textnumero", "\N{NUMERO SIGN}"), # ‘№’
MacroTextSpec("textcircledP", "\N{SOUND RECORDING COPYRIGHT}"), # ‘℗’
MacroTextSpec("wp", "\N{SCRIPT CAPITAL P}"), # ‘℘’
MacroTextSpec("textrecipe", "\N{PRESCRIPTION TAKE}"), # ‘℞’
MacroTextSpec("textservicemark", "\N{SERVICE MARK}"), # ‘℠’
MacroTextSpec("texttrademark", "\N{TRADE MARK SIGN}"), # ‘™’
MacroTextSpec("textohm", "\N{OHM SIGN}"), # ‘Ω’
MacroTextSpec("textmho", "\N{INVERTED OHM SIGN}"), # ‘℧’
MacroTextSpec("textestimated", "\N{ESTIMATED SYMBOL}"), #
MacroTextSpec("beth", "\N{BET SYMBOL}"), # ‘ℶ’
MacroTextSpec("gimel", "\N{GIMEL SYMBOL}"), # ‘ℷ’
MacroTextSpec("daleth", "\N{DALET SYMBOL}"), # ‘ℸ’
MacroTextSpec("textleftarrow", "\N{LEFTWARDS ARROW}"), # ‘←’
MacroTextSpec("textuparrow", "\N{UPWARDS ARROW}"), # ‘↑’
MacroTextSpec("textrightarrow", "\N{RIGHTWARDS ARROW}"), # ‘→’
MacroTextSpec("textdownarrow", "\N{DOWNWARDS ARROW}"), # ‘↓’
MacroTextSpec("leftrightarrow", "\N{LEFT RIGHT ARROW}"), # ‘↔’
MacroTextSpec("updownarrow", "\N{UP DOWN ARROW}"), # ‘↕’
MacroTextSpec("nwarrow", "\N{NORTH WEST ARROW}"), # ‘↖’
MacroTextSpec("nearrow", "\N{NORTH EAST ARROW}"), # ‘↗’
MacroTextSpec("searrow", "\N{SOUTH EAST ARROW}"), # ‘↘’
MacroTextSpec("swarrow", "\N{SOUTH WEST ARROW}"), # ‘↙’
MacroTextSpec("nleftarrow", "\N{LEFTWARDS ARROW WITH STROKE}"), # ‘↚’
MacroTextSpec("nrightarrow", "\N{RIGHTWARDS ARROW WITH STROKE}"), # ‘↛’
MacroTextSpec("arrowwaveleft", "\N{LEFTWARDS WAVE ARROW}"), # ‘↜’
MacroTextSpec("arrowwaveright", "\N{RIGHTWARDS WAVE ARROW}"), # ‘↝’
MacroTextSpec("twoheadleftarrow", "\N{LEFTWARDS TWO HEADED ARROW}"), # ‘↞’
MacroTextSpec("twoheadrightarrow", "\N{RIGHTWARDS TWO HEADED ARROW}"), # ‘↠’
MacroTextSpec("leftarrowtail", "\N{LEFTWARDS ARROW WITH TAIL}"), # ‘↢’
MacroTextSpec("rightarrowtail", "\N{RIGHTWARDS ARROW WITH TAIL}"), # ‘↣’
MacroTextSpec("mapsto", "\N{RIGHTWARDS ARROW FROM BAR}"), # ‘↦’
MacroTextSpec("hookleftarrow", "\N{LEFTWARDS ARROW WITH HOOK}"), # ‘↩’
MacroTextSpec("hookrightarrow", "\N{RIGHTWARDS ARROW WITH HOOK}"), # ‘↪’
MacroTextSpec("looparrowleft", "\N{LEFTWARDS ARROW WITH LOOP}"), # ‘↫’
MacroTextSpec("looparrowright", "\N{RIGHTWARDS ARROW WITH LOOP}"), # ‘↬’
MacroTextSpec("leftrightsquigarrow", "\N{LEFT RIGHT WAVE ARROW}"), # ‘↭’
MacroTextSpec("nleftrightarrow", "\N{LEFT RIGHT ARROW WITH STROKE}"), # ‘↮’
MacroTextSpec("Lsh", "\N{UPWARDS ARROW WITH TIP LEFTWARDS}"), # ‘↰’
MacroTextSpec("Rsh", "\N{UPWARDS ARROW WITH TIP RIGHTWARDS}"), # ‘↱’
MacroTextSpec("curvearrowleft", "\N{ANTICLOCKWISE TOP SEMICIRCLE ARROW}"), # ‘↶’
MacroTextSpec("curvearrowright", "\N{CLOCKWISE TOP SEMICIRCLE ARROW}"), # ‘↷’
MacroTextSpec("circlearrowleft", "\N{ANTICLOCKWISE OPEN CIRCLE ARROW}"), # ‘↺’
MacroTextSpec("circlearrowright", "\N{CLOCKWISE OPEN CIRCLE ARROW}"), # ‘↻’
MacroTextSpec("leftharpoonup", "\N{LEFTWARDS HARPOON WITH BARB UPWARDS}"), # ‘↼’
MacroTextSpec(
"leftharpoondown", "\N{LEFTWARDS HARPOON WITH BARB DOWNWARDS}"
), # ‘↽’
MacroTextSpec("upharpoonright", "\N{UPWARDS HARPOON WITH BARB RIGHTWARDS}"), # ‘↾’
MacroTextSpec("upharpoonleft", "\N{UPWARDS HARPOON WITH BARB LEFTWARDS}"), # ‘↿’
MacroTextSpec("rightharpoonup", "\N{RIGHTWARDS HARPOON WITH BARB UPWARDS}"), # ‘⇀’
MacroTextSpec(
"rightharpoondown", "\N{RIGHTWARDS HARPOON WITH BARB DOWNWARDS}"
), # ‘⇁’
MacroTextSpec(
"downharpoonright", "\N{DOWNWARDS HARPOON WITH BARB RIGHTWARDS}"
), # ‘⇂’
MacroTextSpec(
"downharpoonleft", "\N{DOWNWARDS HARPOON WITH BARB LEFTWARDS}"
), # ‘⇃’
MacroTextSpec(
"rightleftarrows", "\N{RIGHTWARDS ARROW OVER LEFTWARDS ARROW}"
), # ‘⇄’
MacroTextSpec(
"dblarrowupdown", "\N{UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW}"
), # ‘⇅’
MacroTextSpec(
"leftrightarrows", "\N{LEFTWARDS ARROW OVER RIGHTWARDS ARROW}"
), # ‘⇆’
MacroTextSpec("leftleftarrows", "\N{LEFTWARDS PAIRED ARROWS}"), # ‘⇇’
MacroTextSpec("upuparrows", "\N{UPWARDS PAIRED ARROWS}"), # ‘⇈’
MacroTextSpec("rightrightarrows", "\N{RIGHTWARDS PAIRED ARROWS}"), # ‘⇉’
MacroTextSpec("downdownarrows", "\N{DOWNWARDS PAIRED ARROWS}"), # ‘⇊’
MacroTextSpec(
"leftrightharpoons", "\N{LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON}"
), # ‘⇋’
MacroTextSpec(
"rightleftharpoons", "\N{RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON}"
), # ‘⇌’
MacroTextSpec("nLeftarrow", "\N{LEFTWARDS DOUBLE ARROW WITH STROKE}"), # ‘⇍’
MacroTextSpec("nLeftrightarrow", "\N{LEFT RIGHT DOUBLE ARROW WITH STROKE}"), # ‘⇎’
MacroTextSpec("nRightarrow", "\N{RIGHTWARDS DOUBLE ARROW WITH STROKE}"), # ‘⇏’
MacroTextSpec("Leftarrow", "\N{LEFTWARDS DOUBLE ARROW}"), # ‘⇐’
MacroTextSpec("Uparrow", "\N{UPWARDS DOUBLE ARROW}"), # ‘⇑’
MacroTextSpec("Rightarrow", "\N{RIGHTWARDS DOUBLE ARROW}"), # ‘⇒’
MacroTextSpec("Downarrow", "\N{DOWNWARDS DOUBLE ARROW}"), # ‘⇓’
MacroTextSpec("Leftrightarrow", "\N{LEFT RIGHT DOUBLE ARROW}"), # ‘⇔’
MacroTextSpec("Updownarrow", "\N{UP DOWN DOUBLE ARROW}"), # ‘⇕’
MacroTextSpec("Lleftarrow", "\N{LEFTWARDS TRIPLE ARROW}"), # ‘⇚’
MacroTextSpec("Rrightarrow", "\N{RIGHTWARDS TRIPLE ARROW}"), # ‘⇛’
MacroTextSpec("rightsquigarrow", "\N{RIGHTWARDS SQUIGGLE ARROW}"), # ‘⇝’
MacroTextSpec(
"DownArrowUpArrow", "\N{DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW}"
), # ‘⇵’
MacroTextSpec("blacksquare", "\N{END OF PROOF}"), # ‘∎’
MacroTextSpec("dotplus", "\N{DOT PLUS}"), # ‘∔’
MacroTextSpec("rightangle", "\N{RIGHT ANGLE}"), # ‘∟’
MacroTextSpec("angle", "\N{ANGLE}"), # ‘∠’
MacroTextSpec("measuredangle", "\N{MEASURED ANGLE}"), # ‘∡’
MacroTextSpec("sphericalangle", "\N{SPHERICAL ANGLE}"), # ‘∢’
MacroTextSpec("surfintegral", "\N{SURFACE INTEGRAL}"), # ‘∯’
MacroTextSpec("volintegral", "\N{VOLUME INTEGRAL}"), # ‘∰’
MacroTextSpec("clwintegral", "\N{CLOCKWISE INTEGRAL}"), # ‘∱’
MacroTextSpec("therefore", "\N{THEREFORE}"), # ‘∴’
MacroTextSpec("because", "\N{BECAUSE}"), # ‘∵’
MacroTextSpec("homothetic", "\N{HOMOTHETIC}"), # ‘∻’
MacroTextSpec("lazysinv", "\N{INVERTED LAZY S}"), # ‘∾’
MacroTextSpec("wr", "\N{WREATH PRODUCT}"), # ‘≀’
MacroTextSpec("cong", "\N{APPROXIMATELY EQUAL TO}"), # ‘≅’
MacroTextSpec(
"approxnotequal", "\N{APPROXIMATELY BUT NOT ACTUALLY EQUAL TO}"
), # ‘≆’
MacroTextSpec("approxeq", "\N{ALMOST EQUAL OR EQUAL TO}"), # ‘≊’
MacroTextSpec("tildetrpl", "\N{TRIPLE TILDE}"), # ‘≋’
MacroTextSpec("allequal", "\N{ALL EQUAL TO}"), # ‘≌’
MacroTextSpec("asymp", "\N{EQUIVALENT TO}"), # ‘≍’
MacroTextSpec("Bumpeq", "\N{GEOMETRICALLY EQUIVALENT TO}"), # ‘≎’
MacroTextSpec("bumpeq", "\N{DIFFERENCE BETWEEN}"), # ‘≏’
MacroTextSpec("doteq", "\N{APPROACHES THE LIMIT}"), # ‘≐’
MacroTextSpec("doteqdot", "\N{GEOMETRICALLY EQUAL TO}"), # ‘≑’
MacroTextSpec("fallingdotseq", "\N{APPROXIMATELY EQUAL TO OR THE IMAGE OF}"), # ‘≒’
MacroTextSpec("risingdotseq", "\N{IMAGE OF OR APPROXIMATELY EQUAL TO}"), # ‘≓’
MacroTextSpec("eqcirc", "\N{RING IN EQUAL TO}"), # ‘≖’
MacroTextSpec("circeq", "\N{RING EQUAL TO}"), # ‘≗’
MacroTextSpec("estimates", "\N{ESTIMATES}"), # ‘≙’
MacroTextSpec("starequal", "\N{STAR EQUALS}"), # ‘≛’
MacroTextSpec("triangleq", "\N{DELTA EQUAL TO}"), # ‘≜’
MacroTextSpec("between", "\N{BETWEEN}"), # ‘≬’
MacroTextSpec("notlessgreater", "\N{NEITHER LESS-THAN NOR GREATER-THAN}"), # ‘≸’
MacroTextSpec("notgreaterless", "\N{NEITHER GREATER-THAN NOR LESS-THAN}"), # ‘≹’
MacroTextSpec("uplus", "\N{MULTISET UNION}"), # ‘⊎’
MacroTextSpec("sqsubset", "\N{SQUARE IMAGE OF}"), # ‘⊏’
MacroTextSpec("sqsupset", "\N{SQUARE ORIGINAL OF}"), # ‘⊐’
MacroTextSpec("sqsubseteq", "\N{SQUARE IMAGE OF OR EQUAL TO}"), # ‘⊑’
MacroTextSpec("sqsupseteq", "\N{SQUARE ORIGINAL OF OR EQUAL TO}"), # ‘⊒’
MacroTextSpec("sqcap", "\N{SQUARE CAP}"), # ‘⊓’
MacroTextSpec("sqcup", "\N{SQUARE CUP}"), # ‘⊔’
MacroTextSpec("ominus", "\N{CIRCLED MINUS}"), # ‘⊖’
MacroTextSpec("oslash", "\N{CIRCLED DIVISION SLASH}"), # ‘⊘’
MacroTextSpec("odot", "\N{CIRCLED DOT OPERATOR}"), # ‘⊙’
MacroTextSpec("circledcirc", "\N{CIRCLED RING OPERATOR}"), # ‘⊚’
MacroTextSpec("circledast", "\N{CIRCLED ASTERISK OPERATOR}"), # ‘⊛’
MacroTextSpec("circleddash", "\N{CIRCLED DASH}"), # ‘⊝’
MacroTextSpec("boxplus", "\N{SQUARED PLUS}"), # ‘⊞’
MacroTextSpec("boxminus", "\N{SQUARED MINUS}"), # ‘⊟’
MacroTextSpec("boxtimes", "\N{SQUARED TIMES}"), # ‘⊠’
MacroTextSpec("boxdot", "\N{SQUARED DOT OPERATOR}"), # ‘⊡’
MacroTextSpec("vdash", "\N{RIGHT TACK}"), # ‘⊢’
MacroTextSpec("dashv", "\N{LEFT TACK}"), # ‘⊣’
MacroTextSpec("top", "\N{DOWN TACK}"), #
MacroTextSpec("perp", "\N{UP TACK}"), # ‘⊥’
MacroTextSpec("truestate", "\N{MODELS}"), # ‘⊧’
MacroTextSpec("forcesextra", "\N{TRUE}"), # ‘⊨’
MacroTextSpec("Vdash", "\N{FORCES}"), # ‘⊩’
MacroTextSpec("Vvdash", "\N{TRIPLE VERTICAL BAR RIGHT TURNSTILE}"), # ‘⊪’
MacroTextSpec("VDash", "\N{DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE}"), # ‘⊫’
MacroTextSpec("nvdash", "\N{DOES NOT PROVE}"), # ‘⊬’
MacroTextSpec("nvDash", "\N{NOT TRUE}"), # ‘⊭’
MacroTextSpec("nVdash", "\N{DOES NOT FORCE}"), # ‘⊮’
MacroTextSpec(
"nVDash", "\N{NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE}"
), # ‘⊯’
MacroTextSpec("vartriangleleft", "\N{NORMAL SUBGROUP OF}"), # ‘⊲’
MacroTextSpec("vartriangleright", "\N{CONTAINS AS NORMAL SUBGROUP}"), # ‘⊳’
MacroTextSpec("trianglelefteq", "\N{NORMAL SUBGROUP OF OR EQUAL TO}"), # ‘⊴’
MacroTextSpec(
"trianglerighteq", "\N{CONTAINS AS NORMAL SUBGROUP OR EQUAL TO}"
), # ‘⊵’
MacroTextSpec("original", "\N{ORIGINAL OF}"), # ‘⊶’
MacroTextSpec("image", "\N{IMAGE OF}"), # ‘⊷’
MacroTextSpec("multimap", "\N{MULTIMAP}"), # ‘⊸’
MacroTextSpec("hermitconjmatrix", "\N{HERMITIAN CONJUGATE MATRIX}"), # ‘⊹’
MacroTextSpec("intercal", "\N{INTERCALATE}"), # ‘⊺’
MacroTextSpec("veebar", "\N{XOR}"), # ‘⊻’
MacroTextSpec("rightanglearc", "\N{RIGHT ANGLE WITH ARC}"), # ‘⊾’
MacroTextSpec("bigwedge", "\N{N-ARY LOGICAL AND}"), # ‘⋀’
MacroTextSpec("bigvee", "\N{N-ARY LOGICAL OR}"), #
MacroTextSpec("bigcap", "\N{N-ARY INTERSECTION}"), # ‘⋂’
MacroTextSpec("bigcup", "\N{N-ARY UNION}"), #
MacroTextSpec("diamond", "\N{DIAMOND OPERATOR}"), # ‘⋄’
MacroTextSpec("star", "\N{STAR OPERATOR}"), # ‘⋆’
MacroTextSpec("divideontimes", "\N{DIVISION TIMES}"), # ‘⋇’
MacroTextSpec("bowtie", "\N{BOWTIE}"), # ‘⋈’
MacroTextSpec("ltimes", "\N{LEFT NORMAL FACTOR SEMIDIRECT PRODUCT}"), # ‘⋉’
MacroTextSpec("rtimes", "\N{RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT}"), # ‘⋊’
MacroTextSpec("leftthreetimes", "\N{LEFT SEMIDIRECT PRODUCT}"), # ‘⋋’
MacroTextSpec("rightthreetimes", "\N{RIGHT SEMIDIRECT PRODUCT}"), # ‘⋌’
MacroTextSpec("backsimeq", "\N{REVERSED TILDE EQUALS}"), # ‘⋍’
MacroTextSpec("curlyvee", "\N{CURLY LOGICAL OR}"), # ‘⋎’
MacroTextSpec("curlywedge", "\N{CURLY LOGICAL AND}"), # ‘⋏’
MacroTextSpec("Subset", "\N{DOUBLE SUBSET}"), # ‘⋐’
MacroTextSpec("Supset", "\N{DOUBLE SUPERSET}"), # ‘⋑’
MacroTextSpec("Cap", "\N{DOUBLE INTERSECTION}"), # ‘⋒’
MacroTextSpec("Cup", "\N{DOUBLE UNION}"), # ‘⋓’
MacroTextSpec("pitchfork", "\N{PITCHFORK}"), # ‘⋔’
MacroTextSpec("lessdot", "\N{LESS-THAN WITH DOT}"), # ‘⋖’
MacroTextSpec("gtrdot", "\N{GREATER-THAN WITH DOT}"), # ‘⋗’
MacroTextSpec("verymuchless", "\N{VERY MUCH LESS-THAN}"), # ‘⋘’
MacroTextSpec("verymuchgreater", "\N{VERY MUCH GREATER-THAN}"), # ‘⋙’
MacroTextSpec("lesseqgtr", "\N{LESS-THAN EQUAL TO OR GREATER-THAN}"), # ‘⋚’
MacroTextSpec("gtreqless", "\N{GREATER-THAN EQUAL TO OR LESS-THAN}"), # ‘⋛’
MacroTextSpec("curlyeqprec", "\N{EQUAL TO OR PRECEDES}"), # ‘⋞’
MacroTextSpec("curlyeqsucc", "\N{EQUAL TO OR SUCCEEDS}"), # ‘⋟’
MacroTextSpec("lnsim", "\N{LESS-THAN BUT NOT EQUIVALENT TO}"), # ‘⋦’
MacroTextSpec("gnsim", "\N{GREATER-THAN BUT NOT EQUIVALENT TO}"), # ‘⋧’
MacroTextSpec("precedesnotsimilar", "\N{PRECEDES BUT NOT EQUIVALENT TO}"), # ‘⋨’
MacroTextSpec("succnsim", "\N{SUCCEEDS BUT NOT EQUIVALENT TO}"), # ‘⋩’
MacroTextSpec("ntriangleleft", "\N{NOT NORMAL SUBGROUP OF}"), # ‘⋪’
MacroTextSpec("ntriangleright", "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP}"), # ‘⋫’
MacroTextSpec("ntrianglelefteq", "\N{NOT NORMAL SUBGROUP OF OR EQUAL TO}"), # ‘⋬’
MacroTextSpec(
"ntrianglerighteq", "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL}"
), # ‘⋭’
MacroTextSpec("vdots", "\N{VERTICAL ELLIPSIS}"), # ‘⋮’
MacroTextSpec("udots", "\N{UP RIGHT DIAGONAL ELLIPSIS}"), # ‘⋰’
MacroTextSpec("barwedge", "\N{PROJECTIVE}"), # ‘⌅’
MacroTextSpec("varperspcorrespond", "\N{PERSPECTIVE}"), # ‘⌆’
MacroTextSpec("lceil", "\N{LEFT CEILING}"), # ‘⌈’
MacroTextSpec("rceil", "\N{RIGHT CEILING}"), # ‘⌉’
MacroTextSpec("lfloor", "\N{LEFT FLOOR}"), # ‘⌊’
MacroTextSpec("rfloor", "\N{RIGHT FLOOR}"), # ‘⌋’
MacroTextSpec("recorder", "\N{TELEPHONE RECORDER}"), # ‘⌕’
MacroTextSpec("ulcorner", "\N{TOP LEFT CORNER}"), # ‘⌜’
MacroTextSpec("urcorner", "\N{TOP RIGHT CORNER}"), # ‘⌝’
MacroTextSpec("llcorner", "\N{BOTTOM LEFT CORNER}"), # ‘⌞’
MacroTextSpec("lrcorner", "\N{BOTTOM RIGHT CORNER}"), # ‘⌟’
MacroTextSpec("frown", "\N{FROWN}"), # ‘⌢’
MacroTextSpec("smile", "\N{SMILE}"), # ‘⌣’
MacroTextSpec(
"lmoustache", "\N{UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION}"
), # ‘⎰’
MacroTextSpec(
"rmoustache", "\N{UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION}"
), # ‘⎱’
MacroTextSpec("textlangle", "\N{LEFT-POINTING ANGLE BRACKET}"), # ‘〈’
MacroTextSpec("textrangle", "\N{RIGHT-POINTING ANGLE BRACKET}"), # ‘〉’
MacroTextSpec("textblank", "\N{BLANK SYMBOL}"), # ‘␢’
MacroTextSpec("textvisiblespace", "\N{OPEN BOX}"), # ‘␣’
MacroTextSpec("blacksquare", "\N{BLACK SQUARE}"), # ‘■’
MacroTextSpec("square", "\N{WHITE SQUARE}"), # ‘□’
MacroTextSpec("bigtriangleup", "\N{WHITE UP-POINTING TRIANGLE}"), # ‘△’
MacroTextSpec("blacktriangle", "\N{BLACK UP-POINTING SMALL TRIANGLE}"), # ‘▴’
MacroTextSpec("vartriangle", "\N{WHITE UP-POINTING SMALL TRIANGLE}"), # ‘▵’
MacroTextSpec(
"blacktriangleright", "\N{BLACK RIGHT-POINTING SMALL TRIANGLE}"
), # ‘▸’
MacroTextSpec("triangleright", "\N{WHITE RIGHT-POINTING SMALL TRIANGLE}"), # ‘▹’
MacroTextSpec("bigtriangledown", "\N{WHITE DOWN-POINTING TRIANGLE}"), # ‘▽’
MacroTextSpec("blacktriangledown", "\N{BLACK DOWN-POINTING SMALL TRIANGLE}"), # ‘▾’
MacroTextSpec("triangledown", "\N{WHITE DOWN-POINTING SMALL TRIANGLE}"), # ‘▿’
MacroTextSpec("blacktriangleleft", "\N{BLACK LEFT-POINTING SMALL TRIANGLE}"), # ‘◂’
MacroTextSpec("triangleleft", "\N{WHITE LEFT-POINTING SMALL TRIANGLE}"), # ‘◃’
MacroTextSpec("lozenge", "\N{LOZENGE}"), # ‘◊’
MacroTextSpec("bigcirc", "\N{WHITE CIRCLE}"), # ‘○’
MacroTextSpec("textopenbullet", "\N{WHITE BULLET}"), # ‘◦’
MacroTextSpec("textbigcircle", "\N{LARGE CIRCLE}"), # ‘◯’
MacroTextSpec("diamond", "\N{WHITE DIAMOND SUIT}"), # ‘♢’
MacroTextSpec("textmusicalnote", "\N{EIGHTH NOTE}"), # ‘♪’
MacroTextSpec("quarternote", "\N{QUARTER NOTE}"), # ‘♩’
MacroTextSpec("flat", "\N{MUSIC FLAT SIGN}"), # ‘♭’
MacroTextSpec("natural", "\N{MUSIC NATURAL SIGN}"), # ‘♮’
MacroTextSpec("sharp", "\N{MUSIC SHARP SIGN}"), # ‘♯’
MacroTextSpec("longleftrightarrow", "\N{LONG LEFT RIGHT ARROW}"), # ‘⟷’
MacroTextSpec("Longleftarrow", "\N{LONG LEFTWARDS DOUBLE ARROW}"), # ‘⟸’
MacroTextSpec("Longrightarrow", "\N{LONG RIGHTWARDS DOUBLE ARROW}"), # ‘⟹’
MacroTextSpec("Longleftrightarrow", "\N{LONG LEFT RIGHT DOUBLE ARROW}"), # ‘⟺’
MacroTextSpec("longmapsto", "\N{LONG RIGHTWARDS ARROW FROM BAR}"), # ‘⟼’
MacroTextSpec("blacklozenge", "\N{BLACK LOZENGE}"), # ‘⧫’
MacroTextSpec("clockoint", "\N{INTEGRAL AVERAGE WITH SLASH}"), # ‘⨏’
MacroTextSpec("sqrint", "\N{QUATERNION INTEGRAL OPERATOR}"), # ‘⨖’
MacroTextSpec("amalg", "\N{AMALGAMATION OR COPRODUCT}"), # ‘⨿’
MacroTextSpec("lessapprox", "\N{LESS-THAN OR APPROXIMATE}"), # ‘⪅’
MacroTextSpec("gtrapprox", "\N{GREATER-THAN OR APPROXIMATE}"), # ‘⪆’
MacroTextSpec("lneq", "\N{LESS-THAN AND SINGLE-LINE NOT EQUAL TO}"), # ‘⪇’
MacroTextSpec("gneq", "\N{GREATER-THAN AND SINGLE-LINE NOT EQUAL TO}"), # ‘⪈’
MacroTextSpec("lnapprox", "\N{LESS-THAN AND NOT APPROXIMATE}"), # ‘⪉’
MacroTextSpec("gnapprox", "\N{GREATER-THAN AND NOT APPROXIMATE}"), # ‘⪊’
MacroTextSpec(
"lesseqqgtr", "\N{LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN}"
), # ‘⪋’
MacroTextSpec(
"gtreqqless", "\N{GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN}"
), # ‘⪌’
MacroTextSpec("eqslantless", "\N{SLANTED EQUAL TO OR LESS-THAN}"), # ‘⪕’
MacroTextSpec("eqslantgtr", "\N{SLANTED EQUAL TO OR GREATER-THAN}"), # ‘⪖’
MacroTextSpec("precneqq", "\N{PRECEDES ABOVE NOT EQUAL TO}"), # ‘⪵’
MacroTextSpec("succneqq", "\N{SUCCEEDS ABOVE NOT EQUAL TO}"), # ‘⪶’
MacroTextSpec("precapprox", "\N{PRECEDES ABOVE ALMOST EQUAL TO}"), # ‘⪷’
MacroTextSpec("succapprox", "\N{SUCCEEDS ABOVE ALMOST EQUAL TO}"), # ‘⪸’
MacroTextSpec("precnapprox", "\N{PRECEDES ABOVE NOT ALMOST EQUAL TO}"), # ‘⪹’
MacroTextSpec("succnapprox", "\N{SUCCEEDS ABOVE NOT ALMOST EQUAL TO}"), # ‘⪺’
MacroTextSpec("subseteqq", "\N{SUBSET OF ABOVE EQUALS SIGN}"), # ‘⫅’
MacroTextSpec("supseteqq", "\N{SUPERSET OF ABOVE EQUALS SIGN}"), # ‘⫆’
MacroTextSpec("subsetneqq", "\N{SUBSET OF ABOVE NOT EQUAL TO}"), # ‘⫋’
MacroTextSpec("supsetneqq", "\N{SUPERSET OF ABOVE NOT EQUAL TO}"), # ‘⫌’
# Rules from latexencode defaults 'unicode-xml'
MacroTextSpec("textdollar", "\N{DOLLAR SIGN}"), # $
MacroTextSpec("textquotesingle", "\N{APOSTROPHE}"), # '
MacroTextSpec("textasciigrave", "\N{GRAVE ACCENT}"), # `
MacroTextSpec("lbrace", "\N{LEFT CURLY BRACKET}"), # {
MacroTextSpec("rbrace", "\N{RIGHT CURLY BRACKET}"), # }
MacroTextSpec("textasciitilde", "\N{TILDE}"), # ~
MacroTextSpec("textexclamdown", "\N{INVERTED EXCLAMATION MARK}"), # ‘¡’
MacroTextSpec("textcent", "\N{CENT SIGN}"), # ‘¢’
MacroTextSpec("textsterling", "\N{POUND SIGN}"), # ‘£’
MacroTextSpec("textcurrency", "\N{CURRENCY SIGN}"), # ‘¤’
MacroTextSpec("textyen", "\N{YEN SIGN}"), # ‘¥’
MacroTextSpec("textbrokenbar", "\N{BROKEN BAR}"), # ‘¦’
MacroTextSpec("textsection", "\N{SECTION SIGN}"), # ‘§’
MacroTextSpec("textasciidieresis", "\N{DIAERESIS}"), # ‘¨’
MacroTextSpec("textcopyright", "\N{COPYRIGHT SIGN}"), # ‘©’
MacroTextSpec("textordfeminine", "\N{FEMININE ORDINAL INDICATOR}"), # ‘ª’
MacroTextSpec(
"guillemotleft", "\N{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}"
), # ‘«’
MacroTextSpec("lnot", "\N{NOT SIGN}"), # ‘¬’
MacroTextSpec("-", "\N{SOFT HYPHEN}"), # ­
MacroTextSpec("textregistered", "\N{REGISTERED SIGN}"), # ‘®’
MacroTextSpec("textasciimacron", "\N{MACRON}"), # ‘¯’
MacroTextSpec("textdegree", "\N{DEGREE SIGN}"), # ‘°’
MacroTextSpec("textasciiacute", "\N{ACUTE ACCENT}"), # ´
MacroTextSpec("textparagraph", "\N{PILCROW SIGN}"), # ‘¶’
MacroTextSpec("textordmasculine", "\N{MASCULINE ORDINAL INDICATOR}"), # ‘º’
MacroTextSpec(
"guillemotright", "\N{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}"
), # ‘»’
MacroTextSpec("textonequarter", "\N{VULGAR FRACTION ONE QUARTER}"), # ‘¼’
MacroTextSpec("textonehalf", "\N{VULGAR FRACTION ONE HALF}"), # ‘½’
MacroTextSpec("textthreequarters", "\N{VULGAR FRACTION THREE QUARTERS}"), # ‘¾’
MacroTextSpec("textquestiondown", "\N{INVERTED QUESTION MARK}"), # ‘¿’
MacroTextSpec("DH", "\N{LATIN CAPITAL LETTER ETH}"), # ‘Ð’
MacroTextSpec("texttimes", "\N{MULTIPLICATION SIGN}"), # ×
MacroTextSpec("TH", "\N{LATIN CAPITAL LETTER THORN}"), # ‘Þ’
MacroTextSpec("dh", "\N{LATIN SMALL LETTER ETH}"), # ‘ð’
MacroTextSpec("div", "\N{DIVISION SIGN}"), # ‘÷’
MacroTextSpec("th", "\N{LATIN SMALL LETTER THORN}"), # ‘þ’
MacroTextSpec("DJ", "\N{LATIN CAPITAL LETTER D WITH STROKE}"), # ‘Đ’
MacroTextSpec("dj", "\N{LATIN SMALL LETTER D WITH STROKE}"), # ‘đ’
MacroTextSpec("NG", "\N{LATIN CAPITAL LETTER ENG}"), # ‘Ŋ’
MacroTextSpec("ng", "\N{LATIN SMALL LETTER ENG}"), # ‘ŋ’
MacroTextSpec("texthvlig", "\N{LATIN SMALL LETTER HV}"), # ‘ƕ’
MacroTextSpec("textnrleg", "\N{LATIN SMALL LETTER N WITH LONG RIGHT LEG}"), # ‘ƞ’
MacroTextSpec("eth", "\N{LATIN LETTER REVERSED ESH LOOP}"), # ‘ƪ’
MacroTextSpec("textdoublepipe", "\N{LATIN LETTER ALVEOLAR CLICK}"), # ‘ǂ’
MacroTextSpec("textphi", "\N{LATIN SMALL LETTER PHI}"), # ‘ɸ’
MacroTextSpec("textturnk", "\N{LATIN SMALL LETTER TURNED K}"), # ‘ʞ’
MacroTextSpec("textasciicaron", "\N{CARON}"), # ‘ˇ’
MacroTextSpec("textasciibreve", "\N{BREVE}"), # ‘˘’
MacroTextSpec("textperiodcentered", "\N{DOT ABOVE}"), # ‘˙’
MacroTextSpec("texttildelow", "\N{SMALL TILDE}"), # ˜
MacroTextSpec("texttheta", "\N{GREEK SMALL LETTER THETA}"), # ‘θ’
MacroTextSpec("textvartheta", "\N{GREEK THETA SYMBOL}"), # ‘ϑ’
MacroTextSpec("Stigma", "\N{GREEK LETTER STIGMA}"), # ‘Ϛ’
MacroTextSpec("Digamma", "\N{GREEK LETTER DIGAMMA}"), # Ϝ
MacroTextSpec("digamma", "\N{GREEK SMALL LETTER DIGAMMA}"), # ‘ϝ’
MacroTextSpec("Koppa", "\N{GREEK LETTER KOPPA}"), # ‘Ϟ’
MacroTextSpec("Sampi", "\N{GREEK LETTER SAMPI}"), # ‘Ϡ’
MacroTextSpec("varkappa", "\N{GREEK KAPPA SYMBOL}"), # ‘ϰ’
MacroTextSpec("textTheta", "\N{GREEK CAPITAL THETA SYMBOL}"), # ‘ϴ’
MacroTextSpec("backepsilon", "\N{GREEK REVERSED LUNATE EPSILON SYMBOL}"), # ‘϶’
MacroTextSpec("textdagger", "\N{DAGGER}"), # ‘†’
MacroTextSpec("textdaggerdbl", "\N{DOUBLE DAGGER}"), # ‘‡’
MacroTextSpec("textbullet", "\N{BULLET}"), # ‘•’
MacroTextSpec("textperthousand", "\N{PER MILLE SIGN}"), # ‘‰’
MacroTextSpec("textpertenthousand", "\N{PER TEN THOUSAND SIGN}"), # ‘‱’
MacroTextSpec("backprime", "\N{REVERSED PRIME}"), #
MacroTextSpec(
"guilsinglleft", "\N{SINGLE LEFT-POINTING ANGLE QUOTATION MARK}"
), #
MacroTextSpec(
"guilsinglright", "\N{SINGLE RIGHT-POINTING ANGLE QUOTATION MARK}"
), #
MacroTextSpec("nolinebreak", "\N{WORD JOINER}"), #
MacroTextSpec("dddot", "\N{COMBINING THREE DOTS ABOVE}"), # ‘⃛’
MacroTextSpec("ddddot", "\N{COMBINING FOUR DOTS ABOVE}"), # ‘⃜’
MacroTextSpec("hslash", "\N{PLANCK CONSTANT OVER TWO PI}"), # ‘ℏ’
MacroTextSpec("wp", "\N{SCRIPT CAPITAL P}"), # ‘℘’
MacroTextSpec("texttrademark", "\N{TRADE MARK SIGN}"), # ‘™’
MacroTextSpec("mho", "\N{INVERTED OHM SIGN}"), # ‘℧’
MacroTextSpec("beth", "\N{BET SYMBOL}"), # ‘ℶ’
MacroTextSpec("gimel", "\N{GIMEL SYMBOL}"), # ‘ℷ’
MacroTextSpec("daleth", "\N{DALET SYMBOL}"), # ‘ℸ’
MacroTextSpec("leftrightarrow", "\N{LEFT RIGHT ARROW}"), # ‘↔’
MacroTextSpec("updownarrow", "\N{UP DOWN ARROW}"), # ‘↕’
MacroTextSpec("nwarrow", "\N{NORTH WEST ARROW}"), # ‘↖’
MacroTextSpec("nearrow", "\N{NORTH EAST ARROW}"), # ‘↗’
MacroTextSpec("searrow", "\N{SOUTH EAST ARROW}"), # ‘↘’
MacroTextSpec("swarrow", "\N{SOUTH WEST ARROW}"), # ‘↙’
MacroTextSpec("nleftarrow", "\N{LEFTWARDS ARROW WITH STROKE}"), # ‘↚’
MacroTextSpec("nrightarrow", "\N{RIGHTWARDS ARROW WITH STROKE}"), # ‘↛’
MacroTextSpec("arrowwaveleft", "\N{LEFTWARDS WAVE ARROW}"), # ‘↜’
MacroTextSpec("arrowwaveright", "\N{RIGHTWARDS WAVE ARROW}"), # ‘↝’
MacroTextSpec("twoheadleftarrow", "\N{LEFTWARDS TWO HEADED ARROW}"), # ‘↞’
MacroTextSpec("twoheadrightarrow", "\N{RIGHTWARDS TWO HEADED ARROW}"), # ‘↠’
MacroTextSpec("leftarrowtail", "\N{LEFTWARDS ARROW WITH TAIL}"), # ‘↢’
MacroTextSpec("rightarrowtail", "\N{RIGHTWARDS ARROW WITH TAIL}"), # ‘↣’
MacroTextSpec("mapsto", "\N{RIGHTWARDS ARROW FROM BAR}"), # ‘↦’
MacroTextSpec("hookleftarrow", "\N{LEFTWARDS ARROW WITH HOOK}"), # ‘↩’
MacroTextSpec("hookrightarrow", "\N{RIGHTWARDS ARROW WITH HOOK}"), # ‘↪’
MacroTextSpec("looparrowleft", "\N{LEFTWARDS ARROW WITH LOOP}"), # ‘↫’
MacroTextSpec("looparrowright", "\N{RIGHTWARDS ARROW WITH LOOP}"), # ‘↬’
MacroTextSpec("leftrightsquigarrow", "\N{LEFT RIGHT WAVE ARROW}"), # ‘↭’
MacroTextSpec("nleftrightarrow", "\N{LEFT RIGHT ARROW WITH STROKE}"), # ‘↮’
MacroTextSpec("Lsh", "\N{UPWARDS ARROW WITH TIP LEFTWARDS}"), # ‘↰’
MacroTextSpec("Rsh", "\N{UPWARDS ARROW WITH TIP RIGHTWARDS}"), # ‘↱’
MacroTextSpec("curvearrowleft", "\N{ANTICLOCKWISE TOP SEMICIRCLE ARROW}"), # ‘↶’
MacroTextSpec("curvearrowright", "\N{CLOCKWISE TOP SEMICIRCLE ARROW}"), # ‘↷’
MacroTextSpec("circlearrowleft", "\N{ANTICLOCKWISE OPEN CIRCLE ARROW}"), # ‘↺’
MacroTextSpec("circlearrowright", "\N{CLOCKWISE OPEN CIRCLE ARROW}"), # ‘↻’
MacroTextSpec("leftharpoonup", "\N{LEFTWARDS HARPOON WITH BARB UPWARDS}"), # ‘↼’
MacroTextSpec(
"leftharpoondown", "\N{LEFTWARDS HARPOON WITH BARB DOWNWARDS}"
), # ‘↽’
MacroTextSpec("upharpoonright", "\N{UPWARDS HARPOON WITH BARB RIGHTWARDS}"), # ‘↾’
MacroTextSpec("upharpoonleft", "\N{UPWARDS HARPOON WITH BARB LEFTWARDS}"), # ‘↿’
MacroTextSpec("rightharpoonup", "\N{RIGHTWARDS HARPOON WITH BARB UPWARDS}"), # ‘⇀’
MacroTextSpec(
"rightharpoondown", "\N{RIGHTWARDS HARPOON WITH BARB DOWNWARDS}"
), # ‘⇁’
MacroTextSpec(
"downharpoonright", "\N{DOWNWARDS HARPOON WITH BARB RIGHTWARDS}"
), # ‘⇂’
MacroTextSpec(
"downharpoonleft", "\N{DOWNWARDS HARPOON WITH BARB LEFTWARDS}"
), # ‘⇃’
MacroTextSpec(
"rightleftarrows", "\N{RIGHTWARDS ARROW OVER LEFTWARDS ARROW}"
), # ‘⇄’
MacroTextSpec(
"dblarrowupdown", "\N{UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW}"
), # ‘⇅’
MacroTextSpec(
"leftrightarrows", "\N{LEFTWARDS ARROW OVER RIGHTWARDS ARROW}"
), # ‘⇆’
MacroTextSpec("leftleftarrows", "\N{LEFTWARDS PAIRED ARROWS}"), # ‘⇇’
MacroTextSpec("upuparrows", "\N{UPWARDS PAIRED ARROWS}"), # ‘⇈’
MacroTextSpec("rightrightarrows", "\N{RIGHTWARDS PAIRED ARROWS}"), # ‘⇉’
MacroTextSpec("downdownarrows", "\N{DOWNWARDS PAIRED ARROWS}"), # ‘⇊’
MacroTextSpec(
"leftrightharpoons", "\N{LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON}"
), # ‘⇋’
MacroTextSpec(
"rightleftharpoons", "\N{RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON}"
), # ‘⇌’
MacroTextSpec("nLeftarrow", "\N{LEFTWARDS DOUBLE ARROW WITH STROKE}"), # ‘⇍’
MacroTextSpec("nLeftrightarrow", "\N{LEFT RIGHT DOUBLE ARROW WITH STROKE}"), # ‘⇎’
MacroTextSpec("nRightarrow", "\N{RIGHTWARDS DOUBLE ARROW WITH STROKE}"), # ‘⇏’
MacroTextSpec("Leftarrow", "\N{LEFTWARDS DOUBLE ARROW}"), # ‘⇐’
MacroTextSpec("Uparrow", "\N{UPWARDS DOUBLE ARROW}"), # ‘⇑’
MacroTextSpec("Rightarrow", "\N{RIGHTWARDS DOUBLE ARROW}"), # ‘⇒’
MacroTextSpec("Downarrow", "\N{DOWNWARDS DOUBLE ARROW}"), # ‘⇓’
MacroTextSpec("Leftrightarrow", "\N{LEFT RIGHT DOUBLE ARROW}"), # ‘⇔’
MacroTextSpec("Updownarrow", "\N{UP DOWN DOUBLE ARROW}"), # ‘⇕’
MacroTextSpec("Lleftarrow", "\N{LEFTWARDS TRIPLE ARROW}"), # ‘⇚’
MacroTextSpec("Rrightarrow", "\N{RIGHTWARDS TRIPLE ARROW}"), # ‘⇛’
MacroTextSpec("rightsquigarrow", "\N{RIGHTWARDS SQUIGGLE ARROW}"), # ‘⇝’
MacroTextSpec(
"DownArrowUpArrow", "\N{DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW}"
), # ‘⇵’
MacroTextSpec("dotplus", "\N{DOT PLUS}"), # ‘∔’
MacroTextSpec("surd", "\N{SQUARE ROOT}"), # ‘√’
MacroTextSpec("rightangle", "\N{RIGHT ANGLE}"), # ‘∟’
MacroTextSpec("angle", "\N{ANGLE}"), # ‘∠’
MacroTextSpec("measuredangle", "\N{MEASURED ANGLE}"), # ‘∡’
MacroTextSpec("sphericalangle", "\N{SPHERICAL ANGLE}"), # ‘∢’
MacroTextSpec("surfintegral", "\N{SURFACE INTEGRAL}"), # ‘∯’
MacroTextSpec("volintegral", "\N{VOLUME INTEGRAL}"), # ‘∰’
MacroTextSpec("clwintegral", "\N{CLOCKWISE INTEGRAL}"), # ‘∱’
MacroTextSpec("therefore", "\N{THEREFORE}"), # ‘∴’
MacroTextSpec("because", "\N{BECAUSE}"), # ‘∵’
MacroTextSpec("Colon", "\N{PROPORTION}"), # ‘∷’
MacroTextSpec("homothetic", "\N{HOMOTHETIC}"), # ‘∻’
MacroTextSpec("lazysinv", "\N{INVERTED LAZY S}"), # ‘∾’
MacroTextSpec("wr", "\N{WREATH PRODUCT}"), # ‘≀’
MacroTextSpec("cong", "\N{APPROXIMATELY EQUAL TO}"), # ‘≅’
MacroTextSpec(
"approxnotequal", "\N{APPROXIMATELY BUT NOT ACTUALLY EQUAL TO}"
), # ‘≆’
MacroTextSpec("approxeq", "\N{ALMOST EQUAL OR EQUAL TO}"), # ‘≊’
MacroTextSpec("tildetrpl", "\N{TRIPLE TILDE}"), # ‘≋’
MacroTextSpec("allequal", "\N{ALL EQUAL TO}"), # ‘≌’
MacroTextSpec("asymp", "\N{EQUIVALENT TO}"), # ‘≍’
MacroTextSpec("Bumpeq", "\N{GEOMETRICALLY EQUIVALENT TO}"), # ‘≎’
MacroTextSpec("bumpeq", "\N{DIFFERENCE BETWEEN}"), # ‘≏’
MacroTextSpec("doteq", "\N{APPROACHES THE LIMIT}"), # ‘≐’
MacroTextSpec("doteqdot", "\N{GEOMETRICALLY EQUAL TO}"), # ‘≑’
MacroTextSpec("fallingdotseq", "\N{APPROXIMATELY EQUAL TO OR THE IMAGE OF}"), # ‘≒’
MacroTextSpec("risingdotseq", "\N{IMAGE OF OR APPROXIMATELY EQUAL TO}"), # ‘≓’
MacroTextSpec("eqcirc", "\N{RING IN EQUAL TO}"), # ‘≖’
MacroTextSpec("circeq", "\N{RING EQUAL TO}"), # ‘≗’
MacroTextSpec("estimates", "\N{ESTIMATES}"), # ‘≙’
MacroTextSpec("starequal", "\N{STAR EQUALS}"), # ‘≛’
MacroTextSpec("triangleq", "\N{DELTA EQUAL TO}"), # ‘≜’
MacroTextSpec("between", "\N{BETWEEN}"), # ‘≬’
MacroTextSpec("lessequivlnt", "\N{LESS-THAN OR EQUIVALENT TO}"), # ‘≲’
MacroTextSpec("greaterequivlnt", "\N{GREATER-THAN OR EQUIVALENT TO}"), # ‘≳’
MacroTextSpec("notlessgreater", "\N{NEITHER LESS-THAN NOR GREATER-THAN}"), # ‘≸’
MacroTextSpec("notgreaterless", "\N{NEITHER GREATER-THAN NOR LESS-THAN}"), # ‘≹’
MacroTextSpec("preccurlyeq", "\N{PRECEDES OR EQUAL TO}"), # ‘≼’
MacroTextSpec("succcurlyeq", "\N{SUCCEEDS OR EQUAL TO}"), # ‘≽’
MacroTextSpec("precapprox", "\N{PRECEDES OR EQUIVALENT TO}"), # ‘≾’
MacroTextSpec("succapprox", "\N{SUCCEEDS OR EQUIVALENT TO}"), # ‘≿’
MacroTextSpec("uplus", "\N{MULTISET UNION}"), # ‘⊎’
MacroTextSpec("sqsubset", "\N{SQUARE IMAGE OF}"), # ‘⊏’
MacroTextSpec("sqsupset", "\N{SQUARE ORIGINAL OF}"), # ‘⊐’
MacroTextSpec("sqsubseteq", "\N{SQUARE IMAGE OF OR EQUAL TO}"), # ‘⊑’
MacroTextSpec("sqsupseteq", "\N{SQUARE ORIGINAL OF OR EQUAL TO}"), # ‘⊒’
MacroTextSpec("sqcap", "\N{SQUARE CAP}"), # ‘⊓’
MacroTextSpec("sqcup", "\N{SQUARE CUP}"), # ‘⊔’
MacroTextSpec("ominus", "\N{CIRCLED MINUS}"), # ‘⊖’
MacroTextSpec("oslash", "\N{CIRCLED DIVISION SLASH}"), # ‘⊘’
MacroTextSpec("odot", "\N{CIRCLED DOT OPERATOR}"), # ‘⊙’
MacroTextSpec("circledcirc", "\N{CIRCLED RING OPERATOR}"), # ‘⊚’
MacroTextSpec("circledast", "\N{CIRCLED ASTERISK OPERATOR}"), # ‘⊛’
MacroTextSpec("circleddash", "\N{CIRCLED DASH}"), # ‘⊝’
MacroTextSpec("boxplus", "\N{SQUARED PLUS}"), # ‘⊞’
MacroTextSpec("boxminus", "\N{SQUARED MINUS}"), # ‘⊟’
MacroTextSpec("boxtimes", "\N{SQUARED TIMES}"), # ‘⊠’
MacroTextSpec("boxdot", "\N{SQUARED DOT OPERATOR}"), # ‘⊡’
MacroTextSpec("vdash", "\N{RIGHT TACK}"), # ‘⊢’
MacroTextSpec("dashv", "\N{LEFT TACK}"), # ‘⊣’
MacroTextSpec("top", "\N{DOWN TACK}"), #
MacroTextSpec("perp", "\N{UP TACK}"), # ‘⊥’
MacroTextSpec("truestate", "\N{MODELS}"), # ‘⊧’
MacroTextSpec("forcesextra", "\N{TRUE}"), # ‘⊨’
MacroTextSpec("Vdash", "\N{FORCES}"), # ‘⊩’
MacroTextSpec("Vvdash", "\N{TRIPLE VERTICAL BAR RIGHT TURNSTILE}"), # ‘⊪’
MacroTextSpec("VDash", "\N{DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE}"), # ‘⊫’
MacroTextSpec("nvdash", "\N{DOES NOT PROVE}"), # ‘⊬’
MacroTextSpec("nvDash", "\N{NOT TRUE}"), # ‘⊭’
MacroTextSpec("nVdash", "\N{DOES NOT FORCE}"), # ‘⊮’
MacroTextSpec(
"nVDash", "\N{NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE}"
), # ‘⊯’
MacroTextSpec("vartriangleleft", "\N{NORMAL SUBGROUP OF}"), # ‘⊲’
MacroTextSpec("vartriangleright", "\N{CONTAINS AS NORMAL SUBGROUP}"), # ‘⊳’
MacroTextSpec("trianglelefteq", "\N{NORMAL SUBGROUP OF OR EQUAL TO}"), # ‘⊴’
MacroTextSpec(
"trianglerighteq", "\N{CONTAINS AS NORMAL SUBGROUP OR EQUAL TO}"
), # ‘⊵’
MacroTextSpec("original", "\N{ORIGINAL OF}"), # ‘⊶’
MacroTextSpec("image", "\N{IMAGE OF}"), # ‘⊷’
MacroTextSpec("multimap", "\N{MULTIMAP}"), # ‘⊸’
MacroTextSpec("hermitconjmatrix", "\N{HERMITIAN CONJUGATE MATRIX}"), # ‘⊹’
MacroTextSpec("intercal", "\N{INTERCALATE}"), # ‘⊺’
MacroTextSpec("veebar", "\N{XOR}"), # ‘⊻’
MacroTextSpec("rightanglearc", "\N{RIGHT ANGLE WITH ARC}"), # ‘⊾’
MacroTextSpec("bigcap", "\N{N-ARY INTERSECTION}"), # ‘⋂’
MacroTextSpec("bigcup", "\N{N-ARY UNION}"), #
MacroTextSpec("diamond", "\N{DIAMOND OPERATOR}"), # ‘⋄’
MacroTextSpec("star", "\N{STAR OPERATOR}"), # ‘⋆’
MacroTextSpec("divideontimes", "\N{DIVISION TIMES}"), # ‘⋇’
MacroTextSpec("bowtie", "\N{BOWTIE}"), # ‘⋈’
MacroTextSpec("ltimes", "\N{LEFT NORMAL FACTOR SEMIDIRECT PRODUCT}"), # ‘⋉’
MacroTextSpec("rtimes", "\N{RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT}"), # ‘⋊’
MacroTextSpec("leftthreetimes", "\N{LEFT SEMIDIRECT PRODUCT}"), # ‘⋋’
MacroTextSpec("rightthreetimes", "\N{RIGHT SEMIDIRECT PRODUCT}"), # ‘⋌’
MacroTextSpec("backsimeq", "\N{REVERSED TILDE EQUALS}"), # ‘⋍’
MacroTextSpec("curlyvee", "\N{CURLY LOGICAL OR}"), # ‘⋎’
MacroTextSpec("curlywedge", "\N{CURLY LOGICAL AND}"), # ‘⋏’
MacroTextSpec("Subset", "\N{DOUBLE SUBSET}"), # ‘⋐’
MacroTextSpec("Supset", "\N{DOUBLE SUPERSET}"), # ‘⋑’
MacroTextSpec("Cap", "\N{DOUBLE INTERSECTION}"), # ‘⋒’
MacroTextSpec("Cup", "\N{DOUBLE UNION}"), # ‘⋓’
MacroTextSpec("pitchfork", "\N{PITCHFORK}"), # ‘⋔’
MacroTextSpec("lessdot", "\N{LESS-THAN WITH DOT}"), # ‘⋖’
MacroTextSpec("gtrdot", "\N{GREATER-THAN WITH DOT}"), # ‘⋗’
MacroTextSpec("verymuchless", "\N{VERY MUCH LESS-THAN}"), # ‘⋘’
MacroTextSpec("verymuchgreater", "\N{VERY MUCH GREATER-THAN}"), # ‘⋙’
MacroTextSpec("lesseqgtr", "\N{LESS-THAN EQUAL TO OR GREATER-THAN}"), # ‘⋚’
MacroTextSpec("gtreqless", "\N{GREATER-THAN EQUAL TO OR LESS-THAN}"), # ‘⋛’
MacroTextSpec("curlyeqprec", "\N{EQUAL TO OR PRECEDES}"), # ‘⋞’
MacroTextSpec("curlyeqsucc", "\N{EQUAL TO OR SUCCEEDS}"), # ‘⋟’
MacroTextSpec("lnsim", "\N{LESS-THAN BUT NOT EQUIVALENT TO}"), # ‘⋦’
MacroTextSpec("gnsim", "\N{GREATER-THAN BUT NOT EQUIVALENT TO}"), # ‘⋧’
MacroTextSpec("precedesnotsimilar", "\N{PRECEDES BUT NOT EQUIVALENT TO}"), # ‘⋨’
MacroTextSpec("succnsim", "\N{SUCCEEDS BUT NOT EQUIVALENT TO}"), # ‘⋩’
MacroTextSpec("ntriangleleft", "\N{NOT NORMAL SUBGROUP OF}"), # ‘⋪’
MacroTextSpec("ntriangleright", "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP}"), # ‘⋫’
MacroTextSpec("ntrianglelefteq", "\N{NOT NORMAL SUBGROUP OF OR EQUAL TO}"), # ‘⋬’
MacroTextSpec(
"ntrianglerighteq", "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL}"
), # ‘⋭’
MacroTextSpec("vdots", "\N{VERTICAL ELLIPSIS}"), # ‘⋮’
MacroTextSpec("upslopeellipsis", "\N{UP RIGHT DIAGONAL ELLIPSIS}"), # ‘⋰’
MacroTextSpec("downslopeellipsis", "\N{DOWN RIGHT DIAGONAL ELLIPSIS}"), # ‘⋱’
MacroTextSpec("barwedge", "\N{PROJECTIVE}"), # ‘⌅’
MacroTextSpec("varperspcorrespond", "\N{PERSPECTIVE}"), # ‘⌆’
MacroTextSpec("lceil", "\N{LEFT CEILING}"), # ‘⌈’
MacroTextSpec("rceil", "\N{RIGHT CEILING}"), # ‘⌉’
MacroTextSpec("lfloor", "\N{LEFT FLOOR}"), # ‘⌊’
MacroTextSpec("rfloor", "\N{RIGHT FLOOR}"), # ‘⌋’
MacroTextSpec("recorder", "\N{TELEPHONE RECORDER}"), # ‘⌕’
MacroTextSpec("ulcorner", "\N{TOP LEFT CORNER}"), # ‘⌜’
MacroTextSpec("urcorner", "\N{TOP RIGHT CORNER}"), # ‘⌝’
MacroTextSpec("llcorner", "\N{BOTTOM LEFT CORNER}"), # ‘⌞’
MacroTextSpec("lrcorner", "\N{BOTTOM RIGHT CORNER}"), # ‘⌟’
MacroTextSpec("frown", "\N{FROWN}"), # ‘⌢’
MacroTextSpec("smile", "\N{SMILE}"), # ‘⌣’
MacroTextSpec(
"lmoustache", "\N{UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION}"
), # ‘⎰’
MacroTextSpec(
"rmoustache", "\N{UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION}"
), # ‘⎱’
MacroTextSpec("textvisiblespace", "\N{OPEN BOX}"), # ‘␣’
MacroTextSpec("circledS", "\N{CIRCLED LATIN CAPITAL LETTER S}"), # ‘Ⓢ’
MacroTextSpec(
"diagup", "\N{BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT}"
), #
MacroTextSpec("square", "\N{WHITE SQUARE}"), # ‘□’
MacroTextSpec("blacksquare", "\N{BLACK SMALL SQUARE}"), # ‘▪’
MacroTextSpec("bigtriangleup", "\N{WHITE UP-POINTING TRIANGLE}"), # ‘△’
MacroTextSpec("blacktriangle", "\N{BLACK UP-POINTING SMALL TRIANGLE}"), # ‘▴’
MacroTextSpec("vartriangle", "\N{WHITE UP-POINTING SMALL TRIANGLE}"), # ‘▵’
MacroTextSpec(
"blacktriangleright", "\N{BLACK RIGHT-POINTING SMALL TRIANGLE}"
), # ‘▸’
MacroTextSpec("triangleright", "\N{WHITE RIGHT-POINTING SMALL TRIANGLE}"), # ‘▹’
MacroTextSpec("bigtriangledown", "\N{WHITE DOWN-POINTING TRIANGLE}"), # ‘▽’
MacroTextSpec("blacktriangledown", "\N{BLACK DOWN-POINTING SMALL TRIANGLE}"), # ‘▾’
MacroTextSpec("triangledown", "\N{WHITE DOWN-POINTING SMALL TRIANGLE}"), # ‘▿’
MacroTextSpec("blacktriangleleft", "\N{BLACK LEFT-POINTING SMALL TRIANGLE}"), # ‘◂’
MacroTextSpec("triangleleft", "\N{WHITE LEFT-POINTING SMALL TRIANGLE}"), # ‘◃’
MacroTextSpec("lozenge", "\N{LOZENGE}"), # ‘◊’
MacroTextSpec("bigcirc", "\N{WHITE CIRCLE}"), # ‘○’
MacroTextSpec("bigcirc", "\N{LARGE CIRCLE}"), # ‘◯’
MacroTextSpec("rightmoon", "\N{LAST QUARTER MOON}"), # ‘☾’
MacroTextSpec("mercury", "\N{MERCURY}"), # ‘☿’
MacroTextSpec("venus", "\N{FEMALE SIGN}"), # ‘♀’
MacroTextSpec("male", "\N{MALE SIGN}"), # ‘♂’
MacroTextSpec("jupiter", "\N{JUPITER}"), # ‘♃’
MacroTextSpec("saturn", "\N{SATURN}"), # ‘♄’
MacroTextSpec("uranus", "\N{URANUS}"), # ‘♅’
MacroTextSpec("neptune", "\N{NEPTUNE}"), # ‘♆’
MacroTextSpec("pluto", "\N{PLUTO}"), # ‘♇’
MacroTextSpec("aries", "\N{ARIES}"), # ‘♈’
MacroTextSpec("taurus", "\N{TAURUS}"), # ‘♉’
MacroTextSpec("gemini", "\N{GEMINI}"), # ‘♊’
MacroTextSpec("cancer", "\N{CANCER}"), # ‘♋’
MacroTextSpec("leo", "\N{LEO}"), # ‘♌’
MacroTextSpec("virgo", "\N{VIRGO}"), # ‘♍’
MacroTextSpec("libra", "\N{LIBRA}"), # ‘♎’
MacroTextSpec("scorpio", "\N{SCORPIUS}"), # ‘♏’
MacroTextSpec("sagittarius", "\N{SAGITTARIUS}"), # ‘♐’
MacroTextSpec("capricornus", "\N{CAPRICORN}"), # ‘♑’
MacroTextSpec("aquarius", "\N{AQUARIUS}"), # ‘♒’
MacroTextSpec("pisces", "\N{PISCES}"), # ‘♓’
MacroTextSpec("diamond", "\N{WHITE DIAMOND SUIT}"), # ‘♢’
MacroTextSpec("quarternote", "\N{QUARTER NOTE}"), # ‘♩’
MacroTextSpec("eighthnote", "\N{EIGHTH NOTE}"), # ‘♪’
MacroTextSpec("flat", "\N{MUSIC FLAT SIGN}"), # ‘♭’
MacroTextSpec("natural", "\N{MUSIC NATURAL SIGN}"), # ‘♮’
MacroTextSpec("sharp", "\N{MUSIC SHARP SIGN}"), # ‘♯’
MacroTextSpec("longleftrightarrow", "\N{LONG LEFT RIGHT ARROW}"), # ‘⟷’
MacroTextSpec("Longleftarrow", "\N{LONG LEFTWARDS DOUBLE ARROW}"), # ‘⟸’
MacroTextSpec("Longrightarrow", "\N{LONG RIGHTWARDS DOUBLE ARROW}"), # ‘⟹’
MacroTextSpec("Longleftrightarrow", "\N{LONG LEFT RIGHT DOUBLE ARROW}"), # ‘⟺’
MacroTextSpec("longmapsto", "\N{LONG RIGHTWARDS ARROW FROM BAR}"), # ‘⟼’
MacroTextSpec("UpArrowBar", "\N{UPWARDS ARROW TO BAR}"), # ‘⤒’
MacroTextSpec("DownArrowBar", "\N{DOWNWARDS ARROW TO BAR}"), # ‘⤓’
MacroTextSpec("LeftRightVector", "\N{LEFT BARB UP RIGHT BARB UP HARPOON}"), # ‘⥎’
MacroTextSpec(
"RightUpDownVector", "\N{UP BARB RIGHT DOWN BARB RIGHT HARPOON}"
), # ‘⥏’
MacroTextSpec(
"DownLeftRightVector", "\N{LEFT BARB DOWN RIGHT BARB DOWN HARPOON}"
), # ‘⥐’
MacroTextSpec("LeftUpDownVector", "\N{UP BARB LEFT DOWN BARB LEFT HARPOON}"), # ‘⥑’
MacroTextSpec("LeftVectorBar", "\N{LEFTWARDS HARPOON WITH BARB UP TO BAR}"), # ‘⥒’
MacroTextSpec(
"RightVectorBar", "\N{RIGHTWARDS HARPOON WITH BARB UP TO BAR}"
), # ‘⥓’
MacroTextSpec(
"RightUpVectorBar", "\N{UPWARDS HARPOON WITH BARB RIGHT TO BAR}"
), # ‘⥔’
MacroTextSpec(
"RightDownVectorBar", "\N{DOWNWARDS HARPOON WITH BARB RIGHT TO BAR}"
), # ‘⥕’
MacroTextSpec(
"DownLeftVectorBar", "\N{LEFTWARDS HARPOON WITH BARB DOWN TO BAR}"
), # ‘⥖’
MacroTextSpec(
"DownRightVectorBar", "\N{RIGHTWARDS HARPOON WITH BARB DOWN TO BAR}"
), # ‘⥗’
MacroTextSpec(
"LeftUpVectorBar", "\N{UPWARDS HARPOON WITH BARB LEFT TO BAR}"
), # ‘⥘’
MacroTextSpec(
"LeftDownVectorBar", "\N{DOWNWARDS HARPOON WITH BARB LEFT TO BAR}"
), # ‘⥙’
MacroTextSpec(
"LeftTeeVector", "\N{LEFTWARDS HARPOON WITH BARB UP FROM BAR}"
), # ‘⥚’
MacroTextSpec(
"RightTeeVector", "\N{RIGHTWARDS HARPOON WITH BARB UP FROM BAR}"
), # ‘⥛’
MacroTextSpec(
"RightUpTeeVector", "\N{UPWARDS HARPOON WITH BARB RIGHT FROM BAR}"
), # ‘⥜’
MacroTextSpec(
"RightDownTeeVector", "\N{DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR}"
), # ‘⥝’
MacroTextSpec(
"DownLeftTeeVector", "\N{LEFTWARDS HARPOON WITH BARB DOWN FROM BAR}"
), # ‘⥞’
MacroTextSpec(
"DownRightTeeVector", "\N{RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR}"
), # ‘⥟’
MacroTextSpec(
"LeftUpTeeVector", "\N{UPWARDS HARPOON WITH BARB LEFT FROM BAR}"
), # ‘⥠’
MacroTextSpec(
"LeftDownTeeVector", "\N{DOWNWARDS HARPOON WITH BARB LEFT FROM BAR}"
), # ‘⥡’
MacroTextSpec(
"UpEquilibrium",
"\N{UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT}",
), # ‘⥮’
MacroTextSpec(
"ReverseUpEquilibrium",
"\N{DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT}",
), # ‘⥯’
MacroTextSpec("RoundImplies", "\N{RIGHT DOUBLE ARROW WITH ROUNDED HEAD}"), # ‘⥰’
MacroTextSpec("Angle", "\N{RIGHT ANGLE VARIANT WITH SQUARE}"), # ‘⦜’
MacroTextSpec("LeftTriangleBar", "\N{LEFT TRIANGLE BESIDE VERTICAL BAR}"), # ‘⧏’
MacroTextSpec("RightTriangleBar", "\N{VERTICAL BAR BESIDE RIGHT TRIANGLE}"), # ‘⧐’
MacroTextSpec("blacklozenge", "\N{BLACK LOZENGE}"), # ‘⧫’
MacroTextSpec("RuleDelayed", "\N{RULE-DELAYED}"), # ‘⧴’
MacroTextSpec("clockoint", "\N{INTEGRAL AVERAGE WITH SLASH}"), # ‘⨏’
MacroTextSpec("sqrint", "\N{QUATERNION INTEGRAL OPERATOR}"), # ‘⨖’
MacroTextSpec("amalg", "\N{AMALGAMATION OR COPRODUCT}"), # ‘⨿’
MacroTextSpec("perspcorrespond", "\N{LOGICAL AND WITH DOUBLE OVERBAR}"), # ‘⩞’
MacroTextSpec("Equal", "\N{TWO CONSECUTIVE EQUALS SIGNS}"), # ‘⩵’
MacroTextSpec("lessapprox", "\N{LESS-THAN OR APPROXIMATE}"), # ‘⪅’
MacroTextSpec("gtrapprox", "\N{GREATER-THAN OR APPROXIMATE}"), # ‘⪆’
MacroTextSpec("lneq", "\N{LESS-THAN AND SINGLE-LINE NOT EQUAL TO}"), # ‘⪇’
MacroTextSpec("gneq", "\N{GREATER-THAN AND SINGLE-LINE NOT EQUAL TO}"), # ‘⪈’
MacroTextSpec("lnapprox", "\N{LESS-THAN AND NOT APPROXIMATE}"), # ‘⪉’
MacroTextSpec("gnapprox", "\N{GREATER-THAN AND NOT APPROXIMATE}"), # ‘⪊’
MacroTextSpec(
"lesseqqgtr", "\N{LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN}"
), # ‘⪋’
MacroTextSpec(
"gtreqqless", "\N{GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN}"
), # ‘⪌’
MacroTextSpec("eqslantless", "\N{SLANTED EQUAL TO OR LESS-THAN}"), # ‘⪕’
MacroTextSpec("eqslantgtr", "\N{SLANTED EQUAL TO OR GREATER-THAN}"), # ‘⪖’
MacroTextSpec("NestedLessLess", "\N{DOUBLE NESTED LESS-THAN}"), # ‘⪡’
MacroTextSpec("NestedGreaterGreater", "\N{DOUBLE NESTED GREATER-THAN}"), # ‘⪢’
MacroTextSpec("precneqq", "\N{PRECEDES ABOVE NOT EQUAL TO}"), # ‘⪵’
MacroTextSpec("succneqq", "\N{SUCCEEDS ABOVE NOT EQUAL TO}"), # ‘⪶’
MacroTextSpec("precapprox", "\N{PRECEDES ABOVE ALMOST EQUAL TO}"), # ‘⪷’
MacroTextSpec("succapprox", "\N{SUCCEEDS ABOVE ALMOST EQUAL TO}"), # ‘⪸’
MacroTextSpec("precnapprox", "\N{PRECEDES ABOVE NOT ALMOST EQUAL TO}"), # ‘⪹’
MacroTextSpec("succnapprox", "\N{SUCCEEDS ABOVE NOT ALMOST EQUAL TO}"), # ‘⪺’
MacroTextSpec("subseteqq", "\N{SUBSET OF ABOVE EQUALS SIGN}"), # ‘⫅’
MacroTextSpec("supseteqq", "\N{SUPERSET OF ABOVE EQUALS SIGN}"), # ‘⫆’
MacroTextSpec("subsetneqq", "\N{SUBSET OF ABOVE NOT EQUAL TO}"), # ‘⫋’
MacroTextSpec("supsetneqq", "\N{SUPERSET OF ABOVE NOT EQUAL TO}"), # ‘⫌’
MacroTextSpec("openbracketleft", "\N{LEFT WHITE SQUARE BRACKET}"), # ‘〚’
MacroTextSpec("openbracketright", "\N{RIGHT WHITE SQUARE BRACKET}"), # ‘〛’
]
# ==============================================================================
specs = [
#
# CATEGORY: latex-base
#
("latex-base", _latex_specs_base),
#
# CATEGORY: latex-approximations
#
("latex-approximations", _latex_specs_approximations),
#
# CATEGORY: latex-placeholders
#
("latex-placeholders", _latex_specs_placeholders),
#
# CATEGORY: nonascii-specials
#
(
"nonascii-specials",
{
"macros": [],
"environments": [],
"specials": [
SpecialsTextSpec("~", "\N{NO-BREAK SPACE}"),
SpecialsTextSpec("``", "\N{LEFT DOUBLE QUOTATION MARK}"),
SpecialsTextSpec("''", "\N{RIGHT DOUBLE QUOTATION MARK}"),
SpecialsTextSpec("--", "\N{EN DASH}"),
SpecialsTextSpec("---", "\N{EM DASH}"),
SpecialsTextSpec("!`", "\N{INVERTED EXCLAMATION MARK}"),
SpecialsTextSpec("?`", "\N{INVERTED QUESTION MARK}"),
],
},
),
#
# CATEGORY: advanced-symbols
#
(
"advanced-symbols",
{
"macros": advanced_symbols_macros,
"environments": [],
"specials": [],
},
),
#
# CATEGORY: latex-ethuebung
#
# expect these to be removed in a future version. These definitions should
# be manually included in the applications where they are relevant.
(
"latex-ethuebung",
{
"macros": [
MacroTextSpec("exercise", simplify_repl=_format_uebung),
MacroTextSpec("uebung", simplify_repl=_format_uebung),
MacroTextSpec("hint", "Hint: %s"),
MacroTextSpec("hints", "Hints: %s"),
MacroTextSpec("hinweis", "Hinweis: %s"),
MacroTextSpec("hinweise", "Hinweise: %s"),
],
"environments": [],
"specials": [],
},
),
#
# CATEGORY: nonstandard-qit
#
# expect these to be removed in a future version. These definitions should
# be manually included in the applications where they are relevant.
(
"nonstandard-qit",
{
"environments": [],
"specials": [],
"macros": [
# we use these conventions as Identity operator (\mathbbm{1})
MacroTextSpec("id", "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL I}"),
MacroTextSpec("Ident", "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL I}"),
],
},
),
]
def _greekletters(letterlist):
for l in letterlist:
ucharname = l.upper()
if ucharname == "LAMBDA":
ucharname = "LAMDA"
smallname = "GREEK SMALL LETTER " + ucharname
if ucharname == "EPSILON":
smallname = "GREEK LUNATE EPSILON SYMBOL"
if ucharname == "PHI":
smallname = "GREEK PHI SYMBOL"
_latex_specs_base["macros"].append(
MacroTextSpec(l, unicodedata.lookup(smallname))
)
_latex_specs_base["macros"].append(
MacroTextSpec(
l[0].upper() + l[1:],
unicodedata.lookup("GREEK CAPITAL LETTER " + ucharname),
)
)
_greekletters(
(
"alpha",
"beta",
"gamma",
"delta",
"epsilon",
"zeta",
"eta",
"theta",
"iota",
"kappa",
"lambda",
"mu",
"nu",
"xi",
"omicron",
"pi",
"rho",
"sigma",
"tau",
"upsilon",
"phi",
"chi",
"psi",
"omega",
)
)
_latex_specs_base["macros"] += [
MacroTextSpec("varepsilon", "\N{GREEK SMALL LETTER EPSILON}"),
MacroTextSpec("vartheta", "\N{GREEK THETA SYMBOL}"),
MacroTextSpec("varpi", "\N{GREEK PI SYMBOL}"),
MacroTextSpec("varrho", "\N{GREEK RHO SYMBOL}"),
MacroTextSpec("varsigma", "\N{GREEK SMALL LETTER FINAL SIGMA}"),
MacroTextSpec("varphi", "\N{GREEK SMALL LETTER PHI}"),
]
unicode_accents_list = (
# see http://en.wikibooks.org/wiki/LaTeX/Special_Characters for a list
("'", "\N{COMBINING ACUTE ACCENT}"),
("`", "\N{COMBINING GRAVE ACCENT}"),
('"', "\N{COMBINING DIAERESIS}"),
("c", "\N{COMBINING CEDILLA}"),
("^", "\N{COMBINING CIRCUMFLEX ACCENT}"),
("~", "\N{COMBINING TILDE}"),
("H", "\N{COMBINING DOUBLE ACUTE ACCENT}"),
("k", "\N{COMBINING OGONEK}"),
("=", "\N{COMBINING MACRON}"),
("b", "\N{COMBINING MACRON BELOW}"),
(".", "\N{COMBINING DOT ABOVE}"),
("d", "\N{COMBINING DOT BELOW}"),
("r", "\N{COMBINING RING ABOVE}"),
("u", "\N{COMBINING BREVE}"),
("v", "\N{COMBINING CARON}"),
("vec", "\N{COMBINING RIGHT ARROW ABOVE}"),
("dot", "\N{COMBINING DOT ABOVE}"),
("hat", "\N{COMBINING CIRCUMFLEX ACCENT}"),
("check", "\N{COMBINING CARON}"),
("breve", "\N{COMBINING BREVE}"),
("acute", "\N{COMBINING ACUTE ACCENT}"),
("grave", "\N{COMBINING GRAVE ACCENT}"),
("tilde", "\N{COMBINING TILDE}"),
("bar", "\N{COMBINING OVERLINE}"),
("ddot", "\N{COMBINING DIAERESIS}"),
("not", "\N{COMBINING LONG SOLIDUS OVERLAY}"),
)
def make_accented_char(node, combining, l2tobj):
if node.nodeargs and len(node.nodeargs):
nodearg = node.nodeargs[0]
c = l2tobj.nodelist_to_text([nodearg]).strip()
else:
c = " "
def getaccented(ch, combining):
ch = unicode(ch)
combining = unicode(combining)
if ch == "\N{LATIN SMALL LETTER DOTLESS I}":
ch = "i"
if ch == "\N{LATIN SMALL LETTER DOTLESS J}":
ch = "j"
# print u"Accenting %s with %s"%(ch, combining) # this causes UnicdeDecodeError!!!
return unicodedata.normalize("NFC", unicode(ch) + combining)
return "".join([getaccented(ch, combining) for ch in c])
for u in unicode_accents_list:
mname, mcombining = u
_latex_specs_base["macros"].append(
MacroTextSpec(
mname, lambda x, l2tobj, c=mcombining: make_accented_char(x, c, l2tobj)
)
)
# specs structure now complete