3 * Copyright 2001 the LyX Team
4 * Read the file COPYING
6 * \author Alejandro Aguilar Sierra
7 * \author John Levon, moz@compsoc.man.ac.uk
10 #include "ControlMath.h"
12 char const * function_names[] = {
13 "arccos", "arcsin", "arctan", "arg", "bmod",
14 "cos", "cosh", "cot", "coth", "csc", "deg",
15 "det", "dim", "exp", "gcd", "hom", "inf", "ker",
16 "lg", "lim", "liminf", "limsup", "ln", "log",
17 "max", "min", "sec", "sin", "sinh", "sup",
21 int const nr_function_names = sizeof(function_names) / sizeof(char const *) - 1;
23 char const * latex_arrow[] = {
24 "downarrow", "leftarrow", "Downarrow", "Leftarrow",
25 "hookleftarrow", "rightarrow", "uparrow", "Rightarrow", "Uparrow",
26 "hookrightarrow", "updownarrow", "Leftrightarrow", "leftharpoonup",
27 "rightharpoonup", "rightleftharpoons", "leftrightarrow", "Updownarrow",
28 "leftharpoondown", "rightharpoondown", "mapsto",
29 "Longleftarrow", "Longrightarrow", "Longleftrightarrow",
30 "longleftrightarrow", "longleftarrow", "longrightarrow", "longmapsto",
31 "nwarrow", "nearrow", "swarrow", "searrow", "",
34 int const nr_latex_arrow = sizeof(latex_arrow) / sizeof(char const *);
36 char const * latex_bop[] = {
37 "pm", "cap", "diamond", "oplus",
38 "mp", "cup", "bigtriangleup", "ominus",
39 "times", "uplus", "bigtriangledown", "otimes",
40 "div", "sqcap", "triangleright", "oslash",
41 "cdot", "sqcup", "triangleleft", "odot",
42 "star", "vee", "amalg", "bigcirc",
43 "setminus", "wedge", "dagger", "circ",
44 "bullet", "wr", "ddagger", ""
47 int const nr_latex_bop = sizeof(latex_bop) / sizeof(char const *);
49 char const * latex_brel[] = {
50 "leq", "geq", "equiv", "models",
51 "prec", "succ", "sim", "perp",
52 "preceq", "succeq", "simeq", "mid",
53 "ll", "gg", "asymp", "parallel",
54 "subset", "supset", "approx", "smile",
55 "subseteq", "supseteq", "cong", "frown",
56 "sqsubseteq", "sqsupseteq", "doteq", "neq",
57 "in", "ni", "propto", "notin",
58 "vdash", "dashv", "bowtie", ""
61 int const nr_latex_brel = sizeof(latex_brel) / sizeof(char const *);
63 char const * latex_dots[] = {
64 "ldots", "cdots", "vdots", "ddots"
67 int const nr_latex_dots = sizeof(latex_dots) / sizeof(char const *);
69 char const * latex_greek[] = {
70 "Gamma", "Delta", "Theta", "Lambda", "Xi", "Pi",
71 "Sigma", "Upsilon", "Phi", "Psi", "Omega",
72 "alpha", "beta", "gamma", "delta", "epsilon", "varepsilon", "zeta",
73 "eta", "theta", "vartheta", "iota", "kappa", "lambda", "mu",
74 "nu", "xi", "pi", "varpi", "rho", "sigma", "varsigma",
75 "tau", "upsilon", "phi", "varphi", "chi", "psi", "omega", ""
78 int const nr_latex_greek = sizeof(latex_greek) / sizeof(char const *);
80 char const * latex_misc[] = {
81 "nabla", "partial", "infty", "prime", "ell",
82 "emptyset", "exists", "forall", "imath", "jmath",
83 "Re", "Im", "aleph", "wp", "hbar",
84 "angle", "top", "bot", "Vert", "neg",
85 "flat", "natural", "sharp", "surd", "triangle",
86 "diamondsuit", "heartsuit", "clubsuit", "spadesuit",
87 "textrm Å", "textrm Ø", "mathcircumflex", "_",
89 "mathbb N", "mathbb Z", "mathbb Q",
90 "mathbb R", "mathbb C", "mathbb H",
91 "mathcal F", "mathcal L",
92 "mathcal H", "mathcal O", ""
95 int const nr_latex_misc = sizeof(latex_misc) / sizeof(char const *);
97 char const * latex_varsz[] = {
99 "prod", "coprod", "bigsqcup",
100 "bigotimes", "bigodot", "bigoplus",
101 "bigcap", "bigcup", "biguplus",
102 "bigvee", "bigwedge", ""
105 int const nr_latex_varsz = sizeof(latex_varsz) / sizeof(char const *);
107 char const * latex_ams_misc[] = {
108 "digamma", "varkappa", "beth", "daleth", "gimel",
109 "ulcorner", "urcorner", "llcorner", "lrcorner",
110 "hbar", "hslash", "vartriangle",
111 "triangledown", "square", "lozenge",
112 "circledS", "angle", "measuredangle",
113 "nexists", "mho", "Finv",
114 "Game", "Bbbk", "backprime",
115 "varnothing", "blacktriangle", "blacktriangledown",
116 "blacksquare", "blacklozenge", "bigstar",
117 "sphericalangle", "complement", "eth",
118 "diagup", "diagdown", ""
121 int const nr_latex_ams_misc = sizeof(latex_ams_misc) / sizeof(char const *);
123 char const * latex_ams_arrows[] = {
124 "dashrightarrow", "dashleftarrow", "leftleftarrows",
125 "leftrightarrows", "Lleftarrow", "twoheadleftarrow",
126 "leftarrowtail", "looparrowleft", "leftrightharpoons",
127 "curvearrowleft", "circlearrowleft", "Lsh",
128 "upuparrows", "upharpoonleft", "downharpoonleft",
129 "multimap", "leftrightsquigarrow", "rightrightarrows",
130 "rightleftarrows", "rightrightarrows", "rightleftarrows",
131 "twoheadrightarrow", "rightarrowtail", "looparrowright",
132 "rightleftharpoons", "curvearrowright", "circlearrowright",
133 "Rsh", "downdownarrows", "upharpoonright",
134 "downharpoonright", "rightsquigarrow",
135 "nleftarrow", "nrightarrow", "nLeftarrow",
136 "nRightarrow", "nleftrightarrow", "nLeftrightarrow", ""
139 int const nr_latex_ams_arrows = sizeof(latex_ams_arrows) / sizeof(char const *);
141 char const * latex_ams_rel[] = {
142 "leqq", "leqslant", "eqslantless", "eqslantgtr", "gtrsim", "gtrapprox",
143 "lesssim", "lessapprox", "approxeq", "gtrdot", "ggg", "gtrless",
144 "lessdot", "lll", "lessgtr", "gtreqless", "gtreqqless", "eqcirc",
145 "lesseqgtr", "lesseqqgtr", "doteqdot", "circeq", "triangleq", "thicksim",
146 "risingdotseq", "fallingdotseq", "backsim", "thickapprox", "supseteqq", "Supset",
147 "backsimeq", "subseteqq", "Subset","sqsupset", "succcurlyeq", "curlyeqsucc",
148 "sqsubset", "preccurlyeq", "curlyeqprec", "succsim", "succapprox", "vartriangleright",
149 "precsim", "precapprox", "vartriangleleft", "trianglerighteq", "Vdash", "shortmid",
150 "trianglelefteq", "vDash", "Vvdash", "shortparallel", "between", "pitchfork",
151 "smallsmile", "smallfrown", "bumpeq", "varpropto", "blacktriangleleft", "therefore",
152 "Bumpeq", "geqq", "geqslant", "backepsilon", "blacktriangleright", "because", ""
155 int const nr_latex_ams_rel = sizeof(latex_ams_rel) / sizeof(char const *);
157 char const * latex_ams_nrel[] = {
158 "nless", "nleq", "nleqslant", "ngeqslant", "ngeqq", "gneq",
159 "nleqq", "lneq", "lneqq","gneqq", "gvertneqq", "gnsim",
160 "lvertneqq", "lnsim", "lnapprox", "gnapprox", "nsucc", "nsucceq",
161 "nprec", "npreceq", "precnsim","succnsim", "succnapprox", "ncong",
162 "precnapprox", "nsim", "nshortmid", "nshortparallel", "nparallel", "nvDash",
164 "nmid", "nvdash", "nvDash","nVDash", "ntriangleright", "ntrianglerighteq",
165 "ntriangleleft", "ntrianglelefteq", "nsubseteq", "nsupseteq", "nsupseteqq", "supsetneq",
166 "subsetneq", "varsubsetneq", "subsetneqq", "varsupsetneq", "supsetneqq", "varsupsetneqq",
167 "varsubsetneqq", "ngtr", "ngeq","", "", ""
170 int const nr_latex_ams_nrel = sizeof(latex_ams_nrel) / sizeof(char const *);
173 char const * latex_ams_ops[] = {
174 "dotplus", "smallsetminus", "Cap",
175 "Cup", "barwedge", "veebar",
176 "doublebarwedge", "boxminus", "boxtimes",
177 "boxdot", "boxplus", "divideontimes",
178 "ltimes", "rtimes", "leftthreetimes",
179 "rightthreetimes", "curlywedge", "curlyvee",
180 "circleddash", "circledast", "circledcirc",
181 "centerdot", "intercal", ""
184 int const nr_latex_ams_ops = sizeof(latex_ams_ops) / sizeof(char const *);