package org.geogebra.common.export; import java.util.HashMap; public class UnicodeTeX { private static HashMap<Character, String> unicode2tex = null; private static void p(char unicode, String tex) { unicode2tex.put(unicode, tex); } public static HashMap<Character, String> getMap() { if (unicode2tex != null) { return unicode2tex; } unicode2tex = new HashMap<Character, String>(); // these ones are not implemented in JLaTeXMath p('\u00a3', "sterling"); p('\u00ae', "circledR"); p('\u00b4', "textasciiacute"); p('\u00bb', "gg"); p('\u00bf', "textquestiondown"); p('\u019b', "lambdabar"); p('\u02bc', "rasp"); p('\u02bd', "lasp"); p('\u030a', "ocirc"); p('\u0331', "underbar"); p('\u2002', "enspace"); p('\u2013', "endash"); p('\u2014', "emdash"); p('\u201c', "textquotedblleft"); p('\u201d', "textquotedblright"); p('\u2116', "textnumero"); p('\u219c', "leftsquigarrow"); p('\u2237', "Colon"); p('\u223b', "kernelcontraction"); p('\u2241', "nsim"); p('\u2249', "napprox"); p('\u2254', "coloneq"); p('\u2255', "eqcolon"); p('\u2259', "wedgeq"); p('\u2262', "nequiv"); p('\u2244', "nsime"); p('\u2284', "nsubset"); p('\u2285', "nsupset"); p('\u228d', "cupdot"); p('\ue207', "dbkarow"); p('\ue209', "drbkarrow"); p('\ue20a', "hkswarow"); p('\ue20b', "hksearow"); p('\ue20e', "toea"); p('\ue20f', "tosa"); p('\ue243', "leftrightarrowtria"); p('\ue259', "intprod"); p('\ue25a', "plusdot"); p('\ue25b', "minusdot"); p('\ue27f', "boxdiag"); p('\ue309', "ddotseq"); p('\ue30a', "mlcp"); p('\ue316', "bumpeqq"); p('\ue396', "intbar"); p('\ue5c5', "disjquant"); p('\ue5c6', "conjquant"); p('\ue60c', "backcong"); p('\ue616', "nBumpeq"); p('\ue801', "BbbPi"); p('\ue803', "bbone"); p('\ue804', "bbzero"); p('\ue805', "bigcupdot"); p('\ue809', "bigtimes"); p('\ue80a', "bkarow"); p('\ue812', "btimes"); p('\ue813', "dashV"); p('\ue814', "Dashv"); p('\ue819', "dualmap"); p('\ue81a', "forks"); p('\ue81b', "forksnot"); p('\ue821', "intBar"); p('\ue822', "intcap"); p('\ue823', "intcup"); p('\ue825', "intx"); p('\ue836', "nprecsim"); p('\ue837', "nsuccsim"); p('\ue840', "partialmeetcontraction"); p('\ue846', "upand"); p('\ue848', "Vvert"); p('\ue84b', "clubsuitopen"); p('\ue84c', "spadesuitopen"); p('\ue84d', "nbumpeq"); p('\ue84e', "neqsim"); // all folowing do work in JLaTeXMath p('\u00a5', "yen"); p('\u00a9', "copyright"); p('\u00ab', "ll"); p('\u00ac', "neg"); p('\u00b1', "pm"); p('\u00b5', "mu"); p('\u00b7', "cdotp"); p('\u00bc', "frac 14"); p('\u00bd', "frac 12"); p('\u00be', "frac 34"); p('\u00c6', "AE"); p('\u00d7', "times"); p('\u00df', "ss"); p('\u00e6', "ae"); p('\u00f0', "eth"); p('\u00f7', "div"); p('\u0300', "grave"); p('\u0301', "acute"); p('\u0302', "hat"); p('\u0303', "tilde"); p('\u0304', "bar"); p('\u0306', "breve"); p('\u0307', "dot"); p('\u0308', "ddot"); p('\u030c', "check"); p('\u0338', "not"); p('\u0360', "widehat"); p('\u0393', "Gamma"); p('\u0394', "Delta"); p('\u0398', "Theta"); p('\u039b', "Lambda"); p('\u039e', "Xi"); p('\u03a0', "Pi"); p('\u03a3', "Sigma"); p('\u03a6', "Phi"); p('\u03a8', "Psi"); p('\u03a9', "Omega"); p('\u03b1', "alpha"); p('\u03b2', "beta"); p('\u03b3', "gamma"); p('\u03b4', "delta"); p('\u03b5', "varepsilon"); p('\u03b6', "zeta"); p('\u03b7', "eta"); p('\u03b8', "theta"); p('\u03b9', "iota"); p('\u03ba', "kappa"); p('\u03bb', "lambda"); p('\u03bc', "mu"); p('\u03bd', "nu"); p('\u03be', "xi"); p('\u03C0', "pi"); p('\u03c1', "rho"); p('\u03c2', "varsigma"); p('\u03c3', "sigma"); p('\u03c4', "tau"); p('\u03c5', "upsilon"); p('\u03c6', "phi"); p('\u03c7', "chi"); p('\u03c8', "psi"); p('\u03c9', "omega"); p('\u03d2', "Upsilon"); p('\u03d5', "varphi"); p('\u03d6', "varpi"); p('\u03f0', "varkappa"); p('\u03f1', "varrho"); p('\u2003', "quad"); p('\u2005', "thickspace"); p('\u2009', "thinspace"); p('\u200a', "hspace"); p('\u2016', "Vert"); p('\u2018', "lq"); p('\u2019', "rq"); p('\u2020', "dagger"); p('\u2020', "dagger"); p('\u2021', "ddagger"); p('\u2021', "ddagger"); p('\u2026', "dots"); p('\u2032', "prime"); p('\u2035', "backprime"); p('\u20d6', "overleftarrow"); p('\u20d7', "vec"); p('\u20db', "dddot"); p('\u20dc', "ddddot"); p('\u20e1', "overleftrightarrow"); p('\u210f', "hslash"); p('\u2111', "Im"); p('\u2113', "ell"); p('\u2118', "wp"); p('\u211c', "Re"); p('\u2127', "mho"); p('\u212b', "AA"); p('\u2132', "Finv"); p('\u2135', "aleph"); p('\u2136', "beth"); p('\u2137', "gimel"); p('\u2138', "daleth"); p('\u2190', "leftarrow"); p('\u2191', "uparrow"); p('\u2192', "rightarrow"); p('\u2193', "downarrow"); p('\u2194', "leftrightarrow"); p('\u2195', "updownarrow"); p('\u2196', "nwarrow"); p('\u2197', "nearrow"); p('\u2198', "searrow"); p('\u2199', "swarrow"); p('\u219a', "nleftarrow"); p('\u219b', "nrightarrow"); p('\u219d', "rightsquigarrow"); p('\u219e', "twoheadleftarrow"); p('\u21a0', "twoheadrightarrow"); p('\u21a2', "leftarrowtail"); p('\u21a3', "rightarrowtail"); p('\u21a4', "mapsfrom"); p('\u21a6', "mapsto"); p('\u21a9', "hookleftarrow"); p('\u21aa', "hookrightarrow"); p('\u21ab', "looparrowleft"); p('\u21ac', "looparrowright"); p('\u21ad', "leftrightsquigarrow"); p('\u21ae', "nleftrightarrow"); p('\u21b0', "Lsh"); p('\u21b1', "Rsh"); p('\u21b6', "curvearrowleft"); p('\u21b7', "curvearrowright"); p('\u21bc', "leftharpoonup"); p('\u21bd', "leftharpoondown"); p('\u21be', "upharpoonleft"); p('\u21bf', "upharpoonright"); p('\u21c0', "rightharpoonup"); p('\u21c1', "rightharpoondown"); p('\u21c2', "downharpoonright"); p('\u21c3', "downharpoonleft"); p('\u21c4', "rightleftarrows"); p('\u21c6', "leftrightarrows"); p('\u21c7', "leftleftarrows"); p('\u21c8', "upuparrows"); p('\u21c9', "rightrightarrows"); p('\u21ca', "downdownarrows"); p('\u21cb', "leftrightharpoons"); p('\u21cc', "rightleftharpoons"); p('\u21cd', "nLeftarrow"); p('\u21ce', "nleftrightarrow"); p('\u21cf', "nRightarrow"); p('\u21d0', "Leftarrow"); p('\u21d1', "Uparrow"); p('\u21d2', "Rightarrow"); p('\u21d3', "Downarrow"); p('\u21d4', "Leftrightarrow"); p('\u21d5', "Updownarrow"); p('\u21da', "Lleftarrow"); p('\u21db', "Rrightarrow"); p('\u2200', "forall"); p('\u2201', "complement"); p('\u2202', "partial"); p('\u2203', "exists"); p('\u2204', "nexists"); p('\u2205', "varnothing"); p('\u2206', "triangle"); p('\u2207', "nabla"); p('\u2208', "in"); p('\u2209', "notin"); p('\u220a', "in"); p('\u220b', "ni"); p('\u220f', "prod"); p('\u2210', "coprod"); p('\u2211', "sum"); p('\u2212', "minus"); p('\u2213', "mp"); p('\u2214', "dotplus"); p('\u2215', "slash"); p('\u2216', "setminus"); p('\u2217', "ast"); p('\u2218', "circ"); p('\u2219', "bullet"); p('\u221a', "surd"); p('\u221d', "propto"); p('\u221e', "infty"); p('\u2220', "angle"); p('\u2221', "measuredangle"); p('\u2222', "sphericalangle"); p('\u2223', "mid"); p('\u2224', "nmid"); p('\u2225', "parallel"); p('\u2226', "nparallel"); p('\u2227', "wedge"); p('\u2228', "vee"); p('\u2229', "cap"); p('\u222a', "cup"); p('\u222b', "int"); p('\u222c', "iint"); p('\u222d', "iiint"); p('\u222e', "oint"); p('\u2234', "therefore"); p('\u2235', "because"); p('\u2238', "dotminus"); p('\u223c', "sim"); p('\u223d', "backsim"); p('\u2240', "wr"); p('\u2242', "eqsim"); p('\u2243', "simeq"); p('\u2245', "cong"); p('\u2247', "ncong"); p('\u2248', "approx"); p('\u224a', "approxeq"); p('\u224d', "asymp"); p('\u224e', "Bumpeq"); p('\u224f', "bumpeq"); p('\u2250', "doteq"); p('\u2251', "Doteq"); p('\u2252', "fallingdotseq"); p('\u2253', "risingdotseq"); p('\u2256', "eqcirc"); p('\u2257', "circeq"); p('\u225c', "triangleq"); p('\u225f', "questeq"); p('\u2260', "ne"); p('\u2261', "equiv"); p('\u2264', "le"); p('\u2265', "ge"); p('\u2266', "leqq"); p('\u2267', "geqq"); p('\u2268', "lneqq"); p('\u2269', "gneqq"); p('\u226a', "ll"); p('\u226b', "gg"); p('\u226c', "between"); p('\u226e', "nless"); p('\u226f', "ngtr"); p('\u2270', "nleqslant"); p('\u2271', "ngeqslant"); p('\u2272', "lesssim"); p('\u2273', "gtrsim"); p('\u2276', "lessgtr"); p('\u2277', "gtrless"); p('\u227a', "prec"); p('\u227b', "succ"); p('\u227c', "preccurlyeq"); p('\u227d', "succcurlyeq"); p('\u227e', "precsim"); p('\u227f', "succsim"); p('\u2280', "nprec"); p('\u2281', "nsucc"); p('\u2282', "subset"); p('\u2283', "supset"); p('\u2286', "subseteq"); p('\u2287', "supseteq"); p('\u2288', "nsubseteq"); p('\u2289', "nsupseteq"); p('\u228a', "subsetneq"); p('\u228b', "supsetneq"); p('\u228e', "uplus"); p('\u228f', "sqsubset"); p('\u2290', "sqsupset"); p('\u2291', "sqsubseteq"); p('\u2292', "sqsupseteq"); p('\u2293', "sqcap"); p('\u2294', "sqcup"); p('\u2295', "oplus"); p('\u2296', "ominus"); p('\u2297', "otimes"); p('\u2298', "oslash"); p('\u2299', "odot"); p('\u229a', "circledcirc"); p('\u229b', "circledast"); p('\u229d', "circleddash"); p('\u229e', "boxplus"); p('\u229f', "boxminus"); p('\u22a0', "boxtimes"); p('\u22a1', "boxdot"); p('\u22a2', "vdash"); p('\u22a3', "dashv"); p('\u22a4', "top"); p('\u22a5', "perp"); p('\u22a7', "models"); p('\u22a8', "vDash"); p('\u22a9', "Vdash"); p('\u22aa', "Vvdash"); p('\u22ac', "nvdash"); p('\u22ad', "nvDash"); p('\u22ae', "nVdash"); p('\u22af', "nVDash"); p('\u22b2', "vartriangleleft"); p('\u22b3', "vartriangleright"); p('\u22b4', "trianglelefteq"); p('\u22b5', "trianglerighteq"); p('\u22b8', "multimap"); p('\u22ba', "intercal"); p('\u22bb', "veebar"); p('\u22bc', "barwedge"); p('\u22c0', "bigwedge"); p('\u22c1', "bigvee"); p('\u22c2', "bigcap"); p('\u22c3', "bigcup"); p('\u22c4', "diamond"); p('\u22c5', "cdot"); p('\u22c6', "star"); p('\u22c7', "divideontimes"); p('\u22c8', "bowtie"); p('\u22c9', "ltimes"); p('\u22ca', "rtimes"); p('\u22cb', "leftthreetimes"); p('\u22cc', "rightthreetimes"); p('\u22cd', "backsimeq"); p('\u22ce', "curlyvee"); p('\u22cf', "curlywedge"); p('\u22d0', "Subset"); p('\u22d1', "Supset"); p('\u22d2', "Cap"); p('\u22d3', "Cup"); p('\u22d4', "pitchfork"); p('\u22d6', "lessdot"); p('\u22d7', "gtrdot"); p('\u22d9', "ggg"); p('\u22da', "lesseqgtr"); p('\u22db', "gtreqless"); p('\u22de', "curlyeqprec"); p('\u22df', "curlyeqsucc"); p('\u2200', "lnsim"); p('\u2200', "gnsim"); p('\u22ea', "ntriangleleft"); p('\u22eb', "ntriangleright"); p('\u22ec', "ntrianglelefteq"); p('\u22ed', "ntrianglerighteq"); p('\u22ee', "vdots"); p('\u22ef', "cdots"); p('\u22f1', "ddots"); p('\u2306', "doublebarwedge"); p('\u2308', "lceil"); p('\u2309', "rceil"); p('\u230a', "lfloor"); p('\u230b', "rfloor"); p('\u231c', "ulcorner"); p('\u231d', "urcorner"); p('\u231e', "llcorner"); p('\u231f', "lrcorner"); p('\u2322', "frown"); p('\u2323', "smile"); p('\u2329', "langle"); p('\u232a', "rangle"); p('\u24c8', "circledS"); p('\u25a0', "blacksquare"); p('\u25a0', "blacksquare"); p('\u25a1', "square"); p('\u25a1', "square"); p('\u25b3', "bigtriangleup"); p('\u25b4', "blacktriangle"); p('\u25b5', "vartriangle"); p('\u25b8', "blacktriangleright"); p('\u25b9', "triangleright"); p('\u25bd', "bigtriangledown"); p('\u25be', "blacktriangledown"); p('\u25bf', "triangledown"); p('\u25c2', "blacktriangleleft"); p('\u25c3', "triangleleft"); p('\u25ca', "lozenge"); p('\u25cb', "bigcirc"); p('\u2605', "bigstar"); p('\u2660', "spadesuit"); p('\u2661', "heartsuit"); p('\u2662', "diamondsuit"); p('\u2663', "clubsuit"); p('\u266d', "flat"); p('\u266e', "natural"); p('\u266f', "sharp"); p('\u2713', "checkmark"); p('\u2720', "maltese"); p('\ue200', "Longleftarrow"); p('\ue201', "longleftarrow"); p('\ue202', "Longleftrightarrow"); p('\ue203', "longleftrightarrow"); p('\ue204', "Longrightarrow"); p('\ue205', "longrightarrow"); p('\ue208', "longmapsto"); p('\ue241', "rightarrowtriangle"); p('\ue242', "leftarrowtriangle"); p('\ue251', "amalg"); p('\ue254', "bigodot"); p('\ue255', "bigoplus"); p('\ue256', "bigotimes"); p('\ue257', "bigsqcup"); p('\ue258', "biguplus"); p('\ue280', "boxbslash"); p('\ue293', "rmoustache"); p('\ue294', "lmoustache"); p('\ue29f', "gnapprox"); p('\ue2a0', "gneq"); p('\ue2a1', "gvertneqq"); p('\ue2a2', "lnapprox"); p('\ue2a3', "lneq"); p('\ue2a4', "lvertneqq"); p('\ue2a5', "ngeqq"); p('\ue2a6', "ngeq"); p('\ue2a7', "nleq"); p('\ue2a8', "nleqq"); p('\ue2aa', "nshortmid"); p('\ue2ab', "nshortparallel"); p('\ue2ae', "nsubseteqq"); p('\ue2b0', "nsupseteqq"); p('\ue2b2', "precnapprox"); p('\ue2b3', "precneqq"); p('\ue2b4', "succnapprox"); p('\ue2b5', "succneqq"); p('\ue2b6', "subsetneqq"); p('\ue2b7', "supsetneqq"); p('\ue2b8', "varsubsetneqq"); p('\ue2b9', "varsubsetneq"); p('\ue2ba', "varsupsetneq"); p('\ue2bb', "varsupsetneqq"); p('\ue2d4', "jmath"); p('\ue2d5', "hbar"); p('\ue2f4', "gtrapprox"); p('\ue2f5', "gtreqqless"); p('\ue2f6', "geqslant"); p('\ue2f8', "lessapprox"); p('\ue2f9', "lesseqqgtr"); p('\ue2fa', "leqslant"); p('\ue2fd', "precapprox"); p('\ue2fe', "preceq"); p('\ue2ff', "succapprox"); p('\ue300', "succeq"); p('\ue301', "shortmid"); p('\ue302', "shortparallel"); p('\ue303', "smallsmile"); p('\ue304', "subseteqq"); p('\ue305', "supseteqq"); p('\ue306', "thickapprox"); p('\ue360', "digamma"); p('\ue363', "bot"); p('\ue365', "iff"); p('\ue378', "iiiint"); p('\ue5a3', "circlearrowleft"); p('\ue5a4', "circlearrowright"); p('\ue5cf', "eqslantless"); p('\ue5dc', "npreceq"); p('\ue5df', "eqslantgtr"); p('\ue5f1', "nsucceq"); p('\ue623', "emptyset"); p('\ue629', "epsilon"); p('\ue64e', "imath"); p('\ue65b', "bigsqcap"); p('\ue662', "thicksim"); p('\ue800', "backepsilon"); p('\ue802', "Bbbk"); p('\ue80b', "blacklozenge"); p('\ue80d', "boxast"); p('\ue80e', "boxbar"); p('\ue810', "boxcircle"); p('\ue816', "diagdown"); p('\ue817', "diagup"); p('\ue81c', "Game"); p('\ue824', "interleave"); p('\ue82d', "longmapsfrom"); p('\ue82e', "Longmapsfrom"); p('\ue830', "Longmapsto"); p('\ue834', "Mapsfrom"); p('\ue838', "obar"); p('\ue839', "obslash"); p('\ue843', "smallfrown"); p('\ue844', "smallsetminus"); p('\ue847', "varpropto"); p('\ue849', "widetilde"); return unicode2tex; } }