int const nr_function_names = sizeof(function_names) / sizeof(char const *) - 1;
-char const * latex_dots[] = {
- "ldots", "cdots", "vdots", "ddots", ""
-};
-
-int const nr_latex_dots = sizeof(latex_dots) / sizeof(char const *) - 1;
-
-char const * latex_deco[] = {
- "widehat", "widetilde", "overbrace", "overleftarrow", "overrightarrow",
- "overline", "underbrace", "underline", "underleftarrow", "underrightarrow",
- "underleftrightarrow", "overleftrightarrow",
- "hat", "acute", "bar", "dot",
- "check", "grave", "vec", "ddot",
- "breve", "tilde", "overset", "underset", ""
-};
-
-int const nr_latex_deco = sizeof(latex_deco) / sizeof(char const *) - 1;
-
-char const * latex_arrow[] = {
- "leftarrow", "rightarrow",
- "downarrow", "uparrow", "updownarrow", "leftrightarrow",
- "Leftarrow", "Rightarrow",
- "Downarrow", "Uparrow", "Updownarrow", "Leftrightarrow",
- "Longleftrightarrow", "Longleftarrow", "Longrightarrow",
- "longleftrightarrow", "longleftarrow", "longrightarrow",
- "leftharpoondown", "rightharpoondown",
- "mapsto", "longmapsto",
- "nwarrow", "nearrow",
- "leftharpoonup", "rightharpoonup",
- "hookleftarrow", "hookrightarrow",
- "swarrow", "searrow",
- "rightleftharpoons",
- "",
-};
-
-int const nr_latex_arrow = sizeof(latex_arrow) / sizeof(char const *);
-
-char const * latex_bop[] = {
- "pm", "cap", "diamond", "oplus",
- "mp", "cup", "bigtriangleup", "ominus",
- "times", "uplus", "bigtriangledown", "otimes",
- "div", "sqcap", "triangleright", "oslash",
- "cdot", "sqcup", "triangleleft", "odot",
- "star", "vee", "amalg", "bigcirc",
- "setminus", "wedge", "dagger", "circ",
- "bullet", "wr", "ddagger", ""
-};
-
-int const nr_latex_bop = sizeof(latex_bop) / sizeof(char const *);
-
-char const * latex_brel[] = {
- "leq", "geq", "equiv", "models",
- "prec", "succ", "sim", "perp",
- "preceq", "succeq", "simeq", "mid",
- "ll", "gg", "asymp", "parallel",
- "subset", "supset", "approx", "smile",
- "subseteq", "supseteq", "cong", "frown",
- "sqsubseteq", "sqsupseteq", "doteq", "neq",
- "in", "ni", "propto", "notin",
- "vdash", "dashv", "bowtie", ""
-};
-
-int const nr_latex_brel = sizeof(latex_brel) / sizeof(char const *);
-
-char const * latex_greek[] = {
- "Gamma", "Delta", "Theta", "Lambda", "Xi", "Pi",
- "Sigma", "Upsilon", "Phi", "Psi", "Omega",
- "alpha", "beta", "gamma", "delta", "epsilon", "varepsilon", "zeta",
- "eta", "theta", "vartheta", "iota", "kappa", "lambda", "mu",
- "nu", "xi", "pi", "varpi", "rho", "sigma", "varsigma",
- "tau", "upsilon", "phi", "varphi", "chi", "psi", "omega", ""
-};
-
-int const nr_latex_greek = sizeof(latex_greek) / sizeof(char const *);
-
-char const * latex_misc[] = {
- "nabla", "partial", "infty", "prime", "ell",
- "emptyset", "exists", "forall", "imath", "jmath",
- "Re", "Im", "aleph", "wp", "hbar",
- "angle", "top", "bot", "Vert", "neg",
- "flat", "natural", "sharp", "surd", "triangle",
- "diamondsuit", "heartsuit", "clubsuit", "spadesuit",
- "textrm \\AA", "textrm \\O", "mathcircumflex", "_",
- "mathrm T",
- "mathbb N", "mathbb Z", "mathbb Q",
- "mathbb R", "mathbb C", "mathbb H",
- "mathcal F", "mathcal L",
- "mathcal H", "mathcal O",
- "phantom", "vphantom", "hphantom", ""
-};
-
-int const nr_latex_misc = sizeof(latex_misc) / sizeof(char const *);
-
-char const * latex_varsz[] = {
- "sum", "int", "intop", "iint", "iintop", "iiint", "iiintop",
- "iiiint", "iiiintop", "dotsint", "dotsintop",
- "oint", "ointop", "oiint", "oiintop", "ointctrclockwise",
- "ointctrclockwiseop", "ointclockwise", "ointclockwiseop",
- "sqint", "sqintop", "sqiint", "sqiintop",
- "prod", "coprod", "bigsqcup",
- "bigotimes", "bigodot", "bigoplus",
- "bigcap", "bigcup", "biguplus",
- "bigvee", "bigwedge", ""
-};
-
-int const nr_latex_varsz = sizeof(latex_varsz) / sizeof(char const *);
-
-char const * latex_ams_misc[] = {
- "digamma", "varkappa", "beth", "daleth", "gimel",
- "ulcorner", "urcorner", "llcorner", "lrcorner",
- "hbar", "hslash", "vartriangle",
- "triangledown", "square", "lozenge",
- "circledS", "angle", "measuredangle",
- "nexists", "mho", "Finv",
- "Game", "Bbbk", "backprime",
- "varnothing", "blacktriangle", "blacktriangledown",
- "blacksquare", "blacklozenge", "bigstar",
- "sphericalangle", "complement", "eth",
- "diagup", "diagdown", ""
-};
-
-int const nr_latex_ams_misc = sizeof(latex_ams_misc) / sizeof(char const *);
-
-char const * latex_ams_arrows[] = {
- "dashleftarrow", "dashrightarrow",
- "leftleftarrows", "leftrightarrows",
- "rightrightarrows", "rightleftarrows",
- "Lleftarrow", "Rrightarrow",
- "twoheadleftarrow", "twoheadrightarrow",
- "leftarrowtail", "rightarrowtail",
- "looparrowleft", "looparrowright",
- "curvearrowleft", "curvearrowright",
- "circlearrowleft", "circlearrowright",
- "Lsh", "Rsh",
- "upuparrows", "downdownarrows",
- "upharpoonleft", "upharpoonright",
- "downharpoonleft", "downharpoonright",
- "leftrightharpoons", "rightleftharpoons",
- "rightsquigarrow", "leftrightsquigarrow",
- "nleftarrow", "nrightarrow", "nleftrightarrow",
- "nLeftarrow", "nRightarrow", "nLeftrightarrow",
- "multimap",
- ""
-};
-
-int const nr_latex_ams_arrows = sizeof(latex_ams_arrows) / sizeof(char const *);
-
-char const * latex_ams_rel[] = {
- "leqq", "geqq",
- "leqslant", "geqslant",
- "eqslantless", "eqslantgtr",
- "lesssim", "gtrsim",
- "lessapprox", "gtrapprox",
- "approxeq", "triangleq",
- "lessdot", "gtrdot",
- "lll", "ggg",
- "lessgtr", "gtrless",
- "lesseqgtr", "gtreqless",
- "lesseqqgtr", "gtreqqless",
- "eqcirc", "circeq",
- "thicksim", "thickapprox",
- "backsim", "backsimeq",
- "subseteqq", "supseteqq",
- "Subset", "Supset",
- "sqsubset", "sqsupset",
- "preccurlyeq", "succcurlyeq",
- "curlyeqprec", "curlyeqsucc",
- "precsim", "succsim",
- "precapprox", "succapprox",
- "vartriangleleft", "vartriangleright",
- "trianglelefteq", "trianglerighteq",
- "bumpeq", "Bumpeq",
- "doteqdot", "risingdotseq", "fallingdotseq",
- "vDash", "Vvdash", "Vdash",
- "shortmid", "shortparallel",
- "smallsmile", "smallfrown",
- "blacktriangleleft", "blacktriangleright",
- "because", "therefore",
- "backepsilon",
- "varpropto",
- "between",
- "pitchfork",
- ""
-};
-
-int const nr_latex_ams_rel = sizeof(latex_ams_rel) / sizeof(char const *);
-
-char const * latex_ams_nrel[] = {
- "nless", "ngtr",
- "nleq", "ngeq",
- "nleqslant", "ngeqslant",
- "nleqq", "ngeqq",
- "lneq", "gneq",
- "lneqq", "gneqq",
- "lvertneqq", "gvertneqq",
- "lnsim", "gnsim",
- "lnapprox", "gnapprox",
- "nprec", "nsucc",
- "npreceq", "nsucceq",
- "precnsim", "succnsim",
- "precnapprox", "succnapprox",
- "subsetneq", "supsetneq",
- "subsetneqq", "supsetneqq",
- "nsubseteq", "nsupseteq", "nsupseteqq",
- "nvdash", "nvDash", "nVDash",
- "varsubsetneq", "varsupsetneq",
- "varsubsetneqq", "varsupsetneqq",
- "ntriangleleft", "ntriangleright",
- "ntrianglelefteq", "ntrianglerighteq",
- "ncong", "nsim",
- "nmid", "nshortmid",
- "nparallel", "nshortparallel",
- "", "", ""
-};
-
-int const nr_latex_ams_nrel = sizeof(latex_ams_nrel) / sizeof(char const *);
-
-
-char const * latex_ams_ops[] = {
- "dotplus", "smallsetminus", "Cap",
- "Cup", "barwedge", "veebar",
- "doublebarwedge", "boxminus", "boxtimes",
- "boxdot", "boxplus", "divideontimes",
- "ltimes", "rtimes", "leftthreetimes",
- "rightthreetimes", "curlywedge", "curlyvee",
- "circleddash", "circledast", "circledcirc",
- "centerdot", "intercal", ""
-};
-
-int const nr_latex_ams_ops = sizeof(latex_ams_ops) / sizeof(char const *);
-
-
char const * latex_delimiters[] = {
"(", ")", "{", "}", "[", "]",
"lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",