* Update NoLocalSettings.php for the new installer. Stop advising users to move Local...
[lhc/web/wiklou.git] / math / texutil.ml
1 (* vim: set sw=8 ts=8 et: *)
2 open Parser
3 open Render_info
4 open Tex
5 open Util
6
7 let tex_part = function
8 HTMLABLE (_,t,_) -> t
9 | HTMLABLEM (_,t,_) -> t
10 | HTMLABLEC (_,t,_) -> t
11 | MHTMLABLEC (_,t,_,_,_) -> t
12 | HTMLABLE_BIG (t,_) -> t
13 | TEX_ONLY t -> t
14
15 let rec render_tex = function
16 TEX_FQ (a,b,c) -> (render_tex a) ^ "_{" ^ (render_tex b) ^ "}^{" ^ (render_tex c) ^ "}"
17 | TEX_DQ (a,b) -> (render_tex a) ^ "_{" ^ (render_tex b) ^ "}"
18 | TEX_UQ (a,b) -> (render_tex a) ^ "^{" ^ (render_tex b) ^ "}"
19 | TEX_FQN (a,b) -> "_{" ^ (render_tex a) ^ "}^{" ^ (render_tex b) ^ "}"
20 | TEX_DQN (a) -> "_{" ^ (render_tex a) ^ "}"
21 | TEX_UQN (a) -> "^{" ^ (render_tex a) ^ "}"
22 | TEX_LITERAL s -> tex_part s
23 | TEX_FUN1 (f,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
24 | TEX_FUN1hl (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
25 | TEX_FUN1hf (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
26 | TEX_DECLh (f,_,a) -> "{" ^ f ^ "{" ^ (mapjoin render_tex a) ^ "}}"
27 | TEX_FUN2 (f,a,b) -> "{" ^ f ^ " " ^ (render_tex a) ^ (render_tex b) ^ "}"
28 | TEX_FUN2nb (f,a,b) -> f ^ (render_tex a) ^ (render_tex b)
29 | TEX_FUN2h (f,_,a,b) -> "{" ^ f ^ " " ^ (render_tex a) ^ (render_tex b) ^ "}"
30 | TEX_FUN2sq (f,a,b) -> "{" ^ f ^ "[ " ^ (render_tex a) ^ "]" ^ (render_tex b) ^ "}"
31 | TEX_CURLY (tl) -> "{" ^ (mapjoin render_tex tl) ^ "}"
32 | TEX_INFIX (s,ll,rl) -> "{" ^ (mapjoin render_tex ll) ^ " " ^ s ^ "" ^ (mapjoin render_tex rl) ^ "}"
33 | TEX_INFIXh (s,_,ll,rl) -> "{" ^ (mapjoin render_tex ll) ^ " " ^ s ^ "" ^ (mapjoin render_tex rl) ^ "}"
34 | TEX_BOX (bt,s) -> "{"^bt^"{" ^ s ^ "}}"
35 | TEX_BIG (bt,d) -> "{"^bt^(tex_part d)^"}"
36 | TEX_MATRIX (t,rows) -> "{\\begin{"^t^"}"^(mapjoine "\\\\" (mapjoine "&" (mapjoin render_tex)) rows)^"\\end{"^t^"}}"
37 | TEX_LR (l,r,tl) -> "\\left "^(tex_part l)^(mapjoin render_tex tl)^"\\right "^(tex_part r)
38
39
40 (* Dynamic loading*)
41 type encoding_t = LATIN1 | LATIN2 | UTF8
42
43 (* module properties *)
44 let modules_ams = ref false
45 let modules_nonascii = ref false
46 let modules_encoding = ref UTF8
47 let modules_color = ref false
48
49 (* wrappers to easily set / reset module properties *)
50 let tex_use_ams () = modules_ams := true
51 let tex_use_nonascii () = modules_nonascii := true
52 let tex_use_color () = modules_color := true
53 let tex_mod_reset () = (
54 modules_ams := false;
55 modules_nonascii := false;
56 modules_encoding := UTF8;
57 modules_color := false
58 )
59
60 (* Return TeX fragment for one of the encodings in (UTF8,LATIN1,LATIN2) *)
61 let get_encoding = function
62 UTF8 -> "\\usepackage{ucs}\n\\usepackage[utf8]{inputenc}\n"
63 | LATIN1 -> "\\usepackage[latin1]{inputenc}\n"
64 | LATIN2 -> "\\usepackage[latin2]{inputenc}\n"
65
66 (* TeX fragment inserted before the output *)
67 let get_preface () = "\\nonstopmode\n\\documentclass[12pt]{article}\n" ^
68 (if !modules_nonascii then get_encoding !modules_encoding else "") ^
69 (if !modules_ams then "\\usepackage{amsmath}\n\\usepackage{amsfonts}\n\\usepackage{amssymb}\n" else "") ^
70 (if !modules_color then "\\usepackage[dvips,usenames]{color}\n" else "") ^
71 "\\usepackage{cancel}\n\\pagestyle{empty}\n\\begin{document}\n$$\n"
72
73 (* TeX fragment appended after the content *)
74 let get_footer () = "\n$$\n\\end{document}\n"
75
76 (* Default to UTF8 *)
77 let set_encoding = function
78 "ISO-8859-1" -> modules_encoding := LATIN1
79 | "iso-8859-1" -> modules_encoding := LATIN1
80 | "ISO-8859-2" -> modules_encoding := LATIN2
81 | _ -> modules_encoding := UTF8
82
83 (* Turn that into hash table lookup *)
84 exception Illegal_tex_function of string
85
86 let find = function
87 "\\alpha" -> LITERAL (HTMLABLEC (FONT_UF, "\\alpha ", "α"))
88 | "\\Alpha" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
89 "\\mathrm{A}", "Α")))
90 | "\\beta" -> LITERAL (HTMLABLEC (FONT_UF, "\\beta ", "β"))
91 | "\\Beta" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
92 "\\mathrm{B}", "Β")))
93 | "\\gamma" -> LITERAL (HTMLABLEC (FONT_UF, "\\gamma ", "γ"))
94 | "\\Gamma" -> LITERAL (HTMLABLEC (FONT_UF, "\\Gamma ", "Γ"))
95 | "\\delta" -> LITERAL (HTMLABLEC (FONT_UF, "\\delta ", "δ"))
96 | "\\Delta" -> LITERAL (HTMLABLEC (FONT_UF, "\\Delta ", "Δ"))
97 | "\\epsilon" -> LITERAL (TEX_ONLY "\\epsilon ")
98 | "\\Epsilon" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
99 "\\mathrm{E}", "Ε")))
100 | "\\varepsilon" -> LITERAL (TEX_ONLY "\\varepsilon ")
101 | "\\zeta" -> LITERAL (HTMLABLEC (FONT_UF, "\\zeta ", "ζ"))
102 | "\\Zeta" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
103 "\\mathrm{Z}", "Ζ")))
104 | "\\eta" -> LITERAL (HTMLABLEC (FONT_UF, "\\eta ", "η"))
105 | "\\Eta" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
106 "\\mathrm{H}", "Η")))
107 | "\\theta" -> LITERAL (HTMLABLEC (FONT_UF, "\\theta ", "θ"))
108 | "\\Theta" -> LITERAL (HTMLABLEC (FONT_UF, "\\Theta ", "Θ"))
109 | "\\vartheta" -> LITERAL (HTMLABLE (FONT_UF, "\\vartheta ", "ϑ"))
110 | "\\thetasym" -> LITERAL (HTMLABLE (FONT_UF, "\\vartheta ", "ϑ"))
111 | "\\iota" -> LITERAL (HTMLABLEC (FONT_UF, "\\iota ", "ι"))
112 | "\\Iota" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
113 "\\mathrm{I}", "Ι")))
114 | "\\kappa" -> LITERAL (HTMLABLEC (FONT_UF, "\\kappa ", "κ"))
115 | "\\Kappa" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
116 "\\mathrm{K}", "Κ")))
117 | "\\lambda" -> LITERAL (HTMLABLEC (FONT_UF, "\\lambda ", "λ"))
118 | "\\Lambda" -> LITERAL (HTMLABLEC (FONT_UF, "\\Lambda ", "Λ"))
119 | "\\mu" -> LITERAL (HTMLABLEC (FONT_UF, "\\mu ", "μ"))
120 | "\\Mu" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
121 "\\mathrm{M}", "Μ")))
122 | "\\nu" -> LITERAL (HTMLABLEC (FONT_UF, "\\nu ", "ν"))
123 | "\\Nu" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
124 "\\mathrm{N}", "Ν")))
125 | "\\omicron" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
126 "\\mathrm{o}", "ο")))
127 | "\\Omicron" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
128 "\\mathrm{O}", "Ο")))
129 | "\\pi" -> LITERAL (HTMLABLEC (FONT_UF, "\\pi ", "π"))
130 | "\\Pi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Pi ", "Π"))
131 | "\\varpi" -> LITERAL (TEX_ONLY "\\varpi ")
132 | "\\rho" -> LITERAL (HTMLABLEC (FONT_UF, "\\rho ", "ρ"))
133 | "\\Rho" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
134 "\\mathrm{P}", "Ρ")))
135 | "\\varrho" -> LITERAL (TEX_ONLY "\\varrho ")
136 | "\\sim" -> LITERAL (HTMLABLEC (FONT_UF, "\\sim ", "∼"))
137 | "\\sigma" -> LITERAL (HTMLABLEC (FONT_UF, "\\sigma ", "σ"))
138 | "\\Sigma" -> LITERAL (HTMLABLEC (FONT_UF, "\\Sigma ", "Σ"))
139 | "\\varsigma" -> LITERAL (TEX_ONLY "\\varsigma ")
140 | "\\tau" -> LITERAL (HTMLABLEC (FONT_UF, "\\tau ", "τ"))
141 | "\\Tau" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
142 "\\mathrm{T}", "Τ")))
143 | "\\upsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\upsilon ", "υ"))
144 | "\\Upsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\Upsilon ", "Υ"))
145 | "\\phi" -> LITERAL (TEX_ONLY "\\phi ")
146 | "\\Phi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Phi ", "Φ"))
147 | "\\varphi" -> LITERAL (TEX_ONLY "\\varphi ")
148 | "\\chi" -> LITERAL (HTMLABLEC (FONT_UF, "\\chi ", "χ"))
149 | "\\Chi" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
150 "\\mathrm{X}", "Χ")))
151 | "\\psi" -> LITERAL (HTMLABLEC (FONT_UF, "\\psi ", "ψ"))
152 | "\\Psi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Psi ", "Ψ"))
153 | "\\omega" -> LITERAL (HTMLABLEC (FONT_UF, "\\omega ", "ω"))
154 | "\\Omega" -> LITERAL (HTMLABLEC (FONT_UF, "\\Omega ", "Ω"))
155 | "\\xi" -> LITERAL (HTMLABLEC (FONT_UF, "\\xi ", "ξ"))
156 | "\\Xi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Xi ", "Ξ"))
157 | "\\aleph" -> LITERAL (HTMLABLE (FONT_UF, "\\aleph ", "ℵ"))
158 | "\\alef" -> LITERAL (HTMLABLE (FONT_UF, "\\aleph ", "ℵ"))
159 | "\\alefsym" -> LITERAL (HTMLABLE (FONT_UF, "\\aleph ", "ℵ"))
160 | "\\larr" -> LITERAL (HTMLABLEM (FONT_UF, "\\leftarrow ", "←"))
161 | "\\leftarrow" -> LITERAL (HTMLABLEM (FONT_UF, "\\leftarrow ", "←"))
162 | "\\rarr" -> LITERAL (HTMLABLEM (FONT_UF, "\\rightarrow ", "→"))
163 | "\\to" -> LITERAL (HTMLABLEM (FONT_UF, "\\to ", "→"))
164 | "\\gets" -> LITERAL (HTMLABLEM (FONT_UF, "\\gets ", "←"))
165 | "\\rightarrow" -> LITERAL (HTMLABLEM (FONT_UF, "\\rightarrow ", "→"))
166 | "\\longleftarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\longleftarrow ", "←"))
167 | "\\longrightarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\longrightarrow ", "→"))
168 | "\\Larr" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftarrow ", "⇐"))
169 | "\\lArr" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftarrow ", "⇐"))
170 | "\\Leftarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftarrow ", "⇐"))
171 | "\\Rarr" -> LITERAL (HTMLABLE (FONT_UF, "\\Rightarrow ", "⇒"))
172 | "\\rArr" -> LITERAL (HTMLABLE (FONT_UF, "\\Rightarrow ", "⇒"))
173 | "\\Rightarrow" -> LITERAL (HTMLABLEM (FONT_UF, "\\Rightarrow ", "⇒"))
174 | "\\mapsto" -> LITERAL (HTMLABLE (FONT_UF, "\\mapsto ", "→"))
175 | "\\longmapsto" -> LITERAL (HTMLABLE (FONT_UF, "\\longmapsto ", "→"))
176 | "\\Longleftarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\Longleftarrow ", "⇐"))
177 | "\\Longrightarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\Longrightarrow ", "⇒"))
178 | "\\uarr" -> DELIMITER (HTMLABLEM (FONT_UF, "\\uparrow ", "↑"))
179 | "\\uparrow" -> DELIMITER (HTMLABLEM (FONT_UF, "\\uparrow ", "↑"))
180 | "\\uArr" -> DELIMITER (HTMLABLE (FONT_UF, "\\Uparrow ", "⇑"))
181 | "\\Uarr" -> DELIMITER (HTMLABLE (FONT_UF, "\\Uparrow ", "⇑"))
182 | "\\Uparrow" -> DELIMITER (HTMLABLE (FONT_UF, "\\Uparrow ", "⇑"))
183 | "\\darr" -> DELIMITER (HTMLABLEM (FONT_UF, "\\downarrow ", "↓"))
184 | "\\downarrow" -> DELIMITER (HTMLABLEM (FONT_UF, "\\downarrow ", "↓"))
185 | "\\dArr" -> DELIMITER (HTMLABLE (FONT_UF, "\\Downarrow ", "⇓"))
186 | "\\Darr" -> DELIMITER (HTMLABLE (FONT_UF, "\\Downarrow ", "⇓"))
187 | "\\Downarrow" -> DELIMITER (HTMLABLE (FONT_UF, "\\Downarrow ", "⇓"))
188 | "\\updownarrow" -> DELIMITER (TEX_ONLY "\\updownarrow ")
189 | "\\Updownarrow" -> DELIMITER (TEX_ONLY "\\Updownarrow ")
190 | "\\ulcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\ulcorner "))
191 | "\\urcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\urcorner "))
192 | "\\llcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\llcorner "))
193 | "\\lrcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\lrcorner "))
194 | "\\twoheadleftarrow" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\twoheadleftarrow "))
195 | "\\twoheadrightarrow" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\twoheadrightarrow "))
196 | "\\xleftarrow" -> (tex_use_ams (); FUN_AR1 "\\xleftarrow ")
197 | "\\xrightarrow" -> (tex_use_ams (); FUN_AR1 "\\xrightarrow ")
198 | "\\rightleftharpoons" -> DELIMITER (TEX_ONLY "\\rightleftharpoons ")
199 | "\\leftrightarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\leftrightarrow ", "↔"))
200 | "\\lrarr" -> LITERAL (HTMLABLE (FONT_UF, "\\leftrightarrow ", "↔"))
201 | "\\harr" -> LITERAL (HTMLABLE (FONT_UF, "\\leftrightarrow ", "↔"))
202 | "\\Leftrightarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔"))
203 | "\\Lrarr" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔"))
204 | "\\Harr" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔"))
205 | "\\lrArr" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔"))
206 | "\\hAar" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔"))
207 | "\\longleftrightarrow"->LITERAL (HTMLABLE (FONT_UF, "\\longleftrightarrow ", "↔"))
208 | "\\Longleftrightarrow"->LITERAL (HTMLABLE (FONT_UF, "\\Longleftrightarrow ", "↔"))
209 | "\\iff" -> LITERAL (HTMLABLE (FONT_UF, "\\iff ", "↔"))
210 | "\\ll" -> LITERAL (TEX_ONLY "\\ll ")
211 | "\\gg" -> LITERAL (TEX_ONLY "\\gg ")
212 | "\\div" -> LITERAL (TEX_ONLY "\\div ")
213 | "\\searrow" -> LITERAL (TEX_ONLY "\\searrow ")
214 | "\\nearrow" -> LITERAL (TEX_ONLY "\\nearrow ")
215 | "\\swarrow" -> LITERAL (TEX_ONLY "\\swarrow ")
216 | "\\nwarrow" -> LITERAL (TEX_ONLY "\\nwarrow ")
217 | "\\simeq" -> LITERAL (TEX_ONLY "\\simeq ")
218 | "\\ast" -> LITERAL (TEX_ONLY "\\ast ")
219 | "\\star" -> LITERAL (TEX_ONLY "\\star ")
220 | "\\ell" -> LITERAL (TEX_ONLY "\\ell ")
221 | "\\P" -> LITERAL (TEX_ONLY "\\P ")
222 | "\\smile" -> LITERAL (TEX_ONLY "\\smile ")
223 | "\\frown" -> LITERAL (TEX_ONLY "\\frown ")
224 | "\\bigcap" -> LITERAL (TEX_ONLY "\\bigcap ")
225 | "\\bigodot" -> LITERAL (TEX_ONLY "\\bigodot ")
226 | "\\bigcup" -> LITERAL (TEX_ONLY "\\bigcup ")
227 | "\\bigotimes" -> LITERAL (TEX_ONLY "\\bigotimes ")
228 | "\\coprod" -> LITERAL (TEX_ONLY "\\coprod ")
229 | "\\bigsqcup" -> LITERAL (TEX_ONLY "\\bigsqcup ")
230 | "\\bigoplus" -> LITERAL (TEX_ONLY "\\bigoplus ")
231 | "\\bigvee" -> LITERAL (TEX_ONLY "\\bigvee ")
232 | "\\biguplus" -> LITERAL (TEX_ONLY "\\biguplus ")
233 | "\\oint" -> LITERAL (TEX_ONLY "\\oint ")
234 | "\\bigwedge" -> LITERAL (TEX_ONLY "\\bigwedge ")
235 | "\\models" -> LITERAL (TEX_ONLY "\\models ")
236 | "\\vdash" -> LITERAL (TEX_ONLY "\\vdash ")
237 | "\\triangle" -> LITERAL (TEX_ONLY "\\triangle ")
238 | "\\bowtie" -> LITERAL (TEX_ONLY "\\bowtie ")
239 | "\\wr" -> LITERAL (TEX_ONLY "\\wr ")
240 | "\\triangleleft" -> LITERAL (TEX_ONLY "\\triangleleft ")
241 | "\\triangleright" -> LITERAL (TEX_ONLY "\\triangleright ")
242 | "\\textvisiblespace" -> LITERAL (TEX_ONLY "\\textvisiblespace ")
243 | "\\ker" -> LITERAL (HTMLABLEC(FONT_UFH,"\\ker ","ker"))
244 | "\\lim" -> LITERAL (TEX_ONLY "\\lim ")
245 | "\\limsup" -> LITERAL (TEX_ONLY "\\limsup ")
246 | "\\liminf" -> LITERAL (TEX_ONLY "\\liminf ")
247 | "\\sup" -> LITERAL (TEX_ONLY "\\sup ")
248 | "\\Pr" -> LITERAL (TEX_ONLY "\\Pr ")
249 | "\\hom" -> LITERAL (HTMLABLEC(FONT_UFH,"\\hom ","hom"))
250 | "\\arg" -> LITERAL (HTMLABLEC(FONT_UFH,"\\arg ","arg"))
251 | "\\dim" -> LITERAL (HTMLABLEC(FONT_UFH,"\\dim ","dim"))
252 | "\\inf" -> LITERAL (TEX_ONLY "\\inf ")
253 | "\\circ" -> LITERAL (TEX_ONLY "\\circ ")
254 | "\\hbar" -> LITERAL (TEX_ONLY "\\hbar ")
255 | "\\imath" -> LITERAL (TEX_ONLY "\\imath ")
256 | "\\jmath" -> LITERAL (TEX_ONLY "\\jmath ")
257 | "\\lnot" -> LITERAL (TEX_ONLY "\\lnot ")
258 | "\\hookrightarrow" -> LITERAL (TEX_ONLY "\\hookrightarrow ")
259 | "\\hookleftarrow" -> LITERAL (TEX_ONLY "\\hookleftarrow ")
260 | "\\mp" -> LITERAL (TEX_ONLY "\\mp ")
261 | "\\approx" -> LITERAL (HTMLABLE (FONT_UF, "\\approx ", "≈"))
262 | "\\propto" -> LITERAL (TEX_ONLY "\\propto ")
263 | "\\flat" -> LITERAL (TEX_ONLY "\\flat ")
264 | "\\sharp" -> LITERAL (TEX_ONLY "\\sharp ")
265 | "\\natural" -> LITERAL (TEX_ONLY "\\natural ")
266 | "\\int" -> LITERAL (HTMLABLE_BIG ("\\int ", "∫"))
267 | "\\sum" -> LITERAL (HTMLABLE_BIG ("\\sum ", "∑"))
268 | "\\prod" -> LITERAL (HTMLABLE_BIG ("\\prod ", "∏"))
269 | "\\vdots" -> LITERAL (TEX_ONLY "\\vdots ")
270 | "\\limits" -> LITERAL (TEX_ONLY "\\limits ")
271 | "\\nolimits" -> LITERAL (TEX_ONLY "\\nolimits ")
272 | "\\top" -> LITERAL (TEX_ONLY "\\top ")
273 | "\\sin" -> LITERAL (HTMLABLEC(FONT_UFH,"\\sin ","sin"))
274 | "\\cos" -> LITERAL (HTMLABLEC(FONT_UFH,"\\cos ","cos"))
275 | "\\sinh" -> LITERAL (HTMLABLEC(FONT_UFH,"\\sinh ","sinh"))
276 | "\\cosh" -> LITERAL (HTMLABLEC(FONT_UFH,"\\cosh ","cosh"))
277 | "\\tan" -> LITERAL (HTMLABLEC(FONT_UFH,"\\tan ","tan"))
278 | "\\tanh" -> LITERAL (HTMLABLEC(FONT_UFH,"\\tanh ","tanh"))
279 | "\\sec" -> LITERAL (HTMLABLEC(FONT_UFH,"\\sec ","sec"))
280 | "\\csc" -> LITERAL (HTMLABLEC(FONT_UFH,"\\csc ","csc"))
281 | "\\arcsin" -> LITERAL (HTMLABLEC(FONT_UFH,"\\arcsin ","arcsin"))
282 | "\\arctan" -> LITERAL (HTMLABLEC(FONT_UFH,"\\arctan ","arctan"))
283 | "\\arccos" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arccos}}","arccos")))
284 | "\\arccot" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arccot}}","arccot")))
285 | "\\arcsec" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arcsec}}","arcsec")))
286 | "\\arccsc" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arccsc}}","arccsc")))
287 | "\\sgn" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{sgn}}","sgn")))
288 | "\\cot" -> LITERAL (HTMLABLEC(FONT_UFH,"\\cot ","cot"))
289 | "\\coth" -> LITERAL (HTMLABLEC(FONT_UFH,"\\coth ","coth"))
290 | "\\log" -> LITERAL (HTMLABLEC(FONT_UFH,"\\log ", "log"))
291 | "\\lg" -> LITERAL (HTMLABLEC(FONT_UFH,"\\lg ", "lg"))
292 | "\\ln" -> LITERAL (HTMLABLEC(FONT_UFH,"\\ln ", "ln"))
293 | "\\exp" -> LITERAL (HTMLABLEC(FONT_UFH,"\\exp ", "exp"))
294 | "\\min" -> LITERAL (HTMLABLEC(FONT_UFH,"\\min ", "min"))
295 | "\\max" -> LITERAL (HTMLABLEC(FONT_UFH,"\\max ", "max"))
296 | "\\gcd" -> LITERAL (HTMLABLEC(FONT_UFH,"\\gcd ", "gcd"))
297 | "\\deg" -> LITERAL (HTMLABLEC(FONT_UFH,"\\deg ", "deg"))
298 | "\\det" -> LITERAL (HTMLABLEC(FONT_UFH,"\\det ", "det"))
299 | "\\bullet" -> LITERAL (HTMLABLE (FONT_UFH, "\\bullet ", "•"))
300 | "\\bull" -> LITERAL (HTMLABLE (FONT_UFH, "\\bullet ", "•"))
301 | "\\angle" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\angle ", "∠")))
302 | "\\dagger" -> LITERAL (HTMLABLEM(FONT_UFH, "\\dagger ", "†"))
303 | "\\ddagger" -> LITERAL (HTMLABLEM(FONT_UFH, "\\ddagger ", "‡"))
304 | "\\Dagger" -> LITERAL (HTMLABLEM(FONT_UFH, "\\ddagger ", "‡"))
305 | "\\colon" -> LITERAL (HTMLABLEC(FONT_UFH, "\\colon ", ":"))
306 | "\\Vert" -> DELIMITER (HTMLABLEM(FONT_UFH, "\\Vert ", "||"))
307 | "\\vert" -> DELIMITER (HTMLABLEM(FONT_UFH, "\\vert ", "|"))
308 | "\\wp" -> LITERAL (HTMLABLE (FONT_UF, "\\wp ", "℘"))
309 | "\\weierp" -> LITERAL (HTMLABLE (FONT_UF, "\\wp ", "℘"))
310 | "\\wedge" -> LITERAL (HTMLABLE (FONT_UF, "\\wedge ", "∧"))
311 | "\\and" -> LITERAL (HTMLABLE (FONT_UF, "\\land ", "∧"))
312 | "\\land" -> LITERAL (HTMLABLE (FONT_UF, "\\land ", "∧"))
313 | "\\vee" -> LITERAL (HTMLABLE (FONT_UF, "\\vee ", "∨"))
314 | "\\or" -> LITERAL (HTMLABLE (FONT_UF, "\\lor ", "∨"))
315 | "\\lor" -> LITERAL (HTMLABLE (FONT_UF, "\\lor ", "∨"))
316 | "\\sub" -> LITERAL (HTMLABLE (FONT_UF, "\\subset ", "⊂"))
317 | "\\supe" -> LITERAL (HTMLABLE (FONT_UF, "\\supseteq ", "⊇"))
318 | "\\sube" -> LITERAL (HTMLABLE (FONT_UF, "\\subseteq ", "⊆"))
319 | "\\supset" -> LITERAL (HTMLABLE (FONT_UF, "\\supset ", "⊃"))
320 | "\\subset" -> LITERAL (HTMLABLE (FONT_UF, "\\subset ", "⊂"))
321 | "\\supseteq" -> LITERAL (HTMLABLE (FONT_UF, "\\supseteq ", "⊇"))
322 | "\\subseteq" -> LITERAL (HTMLABLE (FONT_UF, "\\subseteq ", "⊆"))
323 | "\\sqsupset" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqsupset "))
324 | "\\sqsubset" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqsubset "))
325 | "\\sqsupseteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqsupseteq "))
326 | "\\sqsubseteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqsubseteq "))
327 | "\\perp" -> LITERAL (HTMLABLE (FONT_UF, "\\perp ", "⊥"))
328 | "\\bot" -> LITERAL (HTMLABLE (FONT_UF, "\\bot ", "⊥"))
329 | "\\lfloor" -> DELIMITER (HTMLABLE (FONT_UF, "\\lfloor ", "⌊"))
330 | "\\rfloor" -> DELIMITER (HTMLABLE (FONT_UF, "\\rfloor ", "⌋"))
331 | "\\lceil" -> DELIMITER (HTMLABLE (FONT_UF, "\\lceil ", "⌈"))
332 | "\\rceil" -> DELIMITER (HTMLABLE (FONT_UF, "\\rceil ", "⌉"))
333 | "\\lbrace" -> DELIMITER (HTMLABLEC(FONT_UFH, "\\lbrace ", "{"))
334 | "\\rbrace" -> DELIMITER (HTMLABLEC(FONT_UFH, "\\rbrace ", "}"))
335 | "\\infty" -> LITERAL (HTMLABLEM(FONT_UF, "\\infty ", "∞"))
336 | "\\infin" -> LITERAL (HTMLABLEM(FONT_UF, "\\infty ", "∞"))
337 | "\\isin" -> LITERAL (HTMLABLE (FONT_UF, "\\in ", "∈"))
338 | "\\in" -> LITERAL (HTMLABLE (FONT_UF, "\\in ", "∈"))
339 | "\\ni" -> LITERAL (HTMLABLE (FONT_UF, "\\ni ", "∋"))
340 | "\\notin" -> LITERAL (HTMLABLE (FONT_UF, "\\notin ", "∉"))
341 | "\\smallsetminus" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\smallsetminus "))
342 | "\\And" -> (tex_use_ams (); LITERAL (HTMLABLEM(FONT_UFH, "\\And ", " & ")))
343 | "\\forall" -> LITERAL (HTMLABLE (FONT_UFH, "\\forall ", "∀"))
344 | "\\exists" -> LITERAL (HTMLABLE (FONT_UFH, "\\exists ", "∃"))
345 | "\\exist" -> LITERAL (HTMLABLE (FONT_UFH, "\\exists ", "∃"))
346 | "\\equiv" -> LITERAL (HTMLABLEM(FONT_UFH, "\\equiv ", "≡"))
347 | "\\ne" -> LITERAL (HTMLABLEM(FONT_UFH, "\\neq ", "≠"))
348 | "\\neq" -> LITERAL (HTMLABLEM(FONT_UFH, "\\neq ", "≠"))
349 | "\\Re" -> LITERAL (HTMLABLE (FONT_UF, "\\Re ", "ℜ"))
350 | "\\real" -> LITERAL (HTMLABLE (FONT_UF, "\\Re ", "ℜ"))
351 | "\\Im" -> LITERAL (HTMLABLE (FONT_UF, "\\Im ", "ℑ"))
352 | "\\image" -> LITERAL (HTMLABLE (FONT_UF, "\\Im ", "ℑ"))
353 | "\\prime" -> LITERAL (HTMLABLE (FONT_UFH,"\\prime ", "′"))
354 | "\\backslash" -> DELIMITER (HTMLABLEM(FONT_UFH,"\\backslash ", "\\"))
355 | "\\setminus" -> LITERAL (HTMLABLEM(FONT_UFH,"\\setminus ", "\\"))
356 | "\\times" -> LITERAL (HTMLABLEM(FONT_UFH,"\\times ", "×"))
357 | "\\pm" -> LITERAL (HTMLABLEM(FONT_UFH,"\\pm ", "±"))
358 | "\\plusmn" -> LITERAL (HTMLABLEM(FONT_UFH,"\\pm ", "±"))
359 | "\\cdot" -> LITERAL (HTMLABLE (FONT_UFH,"\\cdot ", "⋅"))
360 | "\\AA" -> LITERAL (HTMLABLE (FONT_UFH,"\\AA ", "Å"))
361 | "\\cdots" -> LITERAL (HTMLABLE (FONT_UFH,"\\cdots ", "⋅⋅⋅"))
362 | "\\sdot" -> LITERAL (HTMLABLE (FONT_UFH,"\\cdot ", "⋅"))
363 | "\\oplus" -> LITERAL (HTMLABLE (FONT_UF, "\\oplus ", "⊕"))
364 | "\\otimes" -> LITERAL (HTMLABLE (FONT_UF, "\\otimes ", "⊗"))
365 | "\\cap" -> LITERAL (HTMLABLEM(FONT_UF, "\\cap ", "∩"))
366 | "\\cup" -> LITERAL (HTMLABLE (FONT_UF, "\\cup ", "∪"))
367 | "\\uplus" -> LITERAL (TEX_ONLY "\\uplus ")
368 | "\\sqcap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqcap "))
369 | "\\sqcup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqcup "))
370 | "\\empty" -> LITERAL (HTMLABLE (FONT_UF, "\\emptyset ", "∅"))
371 | "\\emptyset" -> LITERAL (HTMLABLE (FONT_UF, "\\emptyset ", "∅"))
372 | "\\O" -> LITERAL (HTMLABLE (FONT_UF, "\\emptyset ", "∅"))
373 | "\\S" -> LITERAL (HTMLABLEM(FONT_UFH,"\\S ", "§"))
374 | "\\sect" -> LITERAL (HTMLABLEM(FONT_UFH,"\\S ", "§"))
375 | "\\nabla" -> LITERAL (HTMLABLE (FONT_UF, "\\nabla ", "∇"))
376 | "\\geq" -> LITERAL (HTMLABLE (FONT_UFH,"\\geq ", "≥"))
377 | "\\ge" -> LITERAL (HTMLABLE (FONT_UFH,"\\geq ", "≥"))
378 | "\\leq" -> LITERAL (HTMLABLE (FONT_UFH,"\\leq ", "≤"))
379 | "\\le" -> LITERAL (HTMLABLE (FONT_UFH,"\\leq ", "≤"))
380 | "\\cong" -> LITERAL (HTMLABLE (FONT_UF, "\\cong ", "≅"))
381 | "\\ang" -> LITERAL (HTMLABLE (FONT_UF, "\\angle ", "∠"))
382 | "\\part" -> LITERAL (HTMLABLEM(FONT_UF, "\\partial ", "∂"))
383 | "\\partial" -> LITERAL (HTMLABLEM(FONT_UF, "\\partial ", "∂"))
384 | "\\ldots" -> LITERAL (HTMLABLEM(FONT_UFH,"\\ldots ", "..."))
385 | "\\dots" -> LITERAL (HTMLABLEM(FONT_UFH,"\\dots ", "..."))
386 | "\\quad" -> LITERAL (HTMLABLE (FONT_UF, "\\quad ","  "))
387 | "\\qquad" -> LITERAL (HTMLABLE (FONT_UF, "\\qquad ","    "))
388 | "\\mid" -> LITERAL (HTMLABLEM(FONT_UFH,"\\mid ", " | "))
389 | "\\neg" -> LITERAL (HTMLABLEM(FONT_UFH,"\\neg ", "¬"))
390 | "\\langle" -> DELIMITER (HTMLABLE (FONT_UFH,"\\langle ","⟨"))
391 | "\\rangle" -> DELIMITER (HTMLABLE (FONT_UFH,"\\rangle ","⟩"))
392 | "\\lang" -> DELIMITER (HTMLABLE (FONT_UFH,"\\langle ","⟨"))
393 | "\\rang" -> DELIMITER (HTMLABLE (FONT_UFH,"\\rangle ","⟩"))
394 | "\\lbrack" -> DELIMITER (HTMLABLEC(FONT_UFH,"[","["))
395 | "\\rbrack" -> DELIMITER (HTMLABLEC(FONT_UFH,"]","]"))
396 | "\\surd" -> LITERAL (TEX_ONLY "\\surd ")
397 | "\\ddots" -> LITERAL (TEX_ONLY "\\ddots ")
398 | "\\clubs" -> LITERAL (TEX_ONLY "\\clubsuit ")
399 | "\\clubsuit" -> LITERAL (TEX_ONLY "\\clubsuit ")
400 | "\\spades" -> LITERAL (TEX_ONLY "\\spadesuit ")
401 | "\\spadesuit" -> LITERAL (TEX_ONLY "\\spadesuit ")
402 | "\\hearts" -> LITERAL (TEX_ONLY "\\heartsuit ")
403 | "\\heartsuit" -> LITERAL (TEX_ONLY "\\heartsuit ")
404 | "\\diamonds" -> LITERAL (TEX_ONLY "\\diamondsuit ")
405 | "\\diamond" -> LITERAL (TEX_ONLY "\\diamond ")
406 | "\\bigtriangleup" -> LITERAL (TEX_ONLY "\\bigtriangleup ")
407 | "\\bigtriangledown" -> LITERAL (TEX_ONLY "\\bigtriangledown ")
408 | "\\diamondsuit" -> LITERAL (TEX_ONLY "\\diamondsuit ")
409 | "\\ominus" -> LITERAL (TEX_ONLY "\\ominus ")
410 | "\\oslash" -> LITERAL (TEX_ONLY "\\oslash ")
411 | "\\odot" -> LITERAL (TEX_ONLY "\\odot ")
412 | "\\bigcirc" -> LITERAL (TEX_ONLY "\\bigcirc ")
413 | "\\amalg" -> LITERAL (TEX_ONLY "\\amalg ")
414 | "\\prec" -> LITERAL (TEX_ONLY "\\prec ")
415 | "\\succ" -> LITERAL (TEX_ONLY "\\succ ")
416 | "\\preceq" -> LITERAL (TEX_ONLY "\\preceq ")
417 | "\\succeq" -> LITERAL (TEX_ONLY "\\succeq ")
418 | "\\dashv" -> LITERAL (TEX_ONLY "\\dashv ")
419 | "\\asymp" -> LITERAL (TEX_ONLY "\\asymp ")
420 | "\\doteq" -> LITERAL (TEX_ONLY "\\doteq ")
421 | "\\parallel" -> LITERAL (TEX_ONLY "\\parallel ")
422 | "\\implies" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\implies ", "⇒")))
423 | "\\mod" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mod ", "mod")))
424 | "\\Diamond" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\Diamond ", "◊")))
425 | "\\dotsb" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotsb ", "⋅⋅⋅")))
426 | "\\dotsc" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotsc ", "...")))
427 | "\\dotsi" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotsi ", "⋅⋅⋅")))
428 | "\\dotsm" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotsm ", "⋅⋅⋅")))
429 | "\\dotso" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotso ", "...")))
430 | "\\reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "<b>R</b>")))
431 | "\\Reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "<b>R</b>")))
432 | "\\R" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "<b>R</b>")))
433 | "\\C" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "<b>C</b>")))
434 | "\\cnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "<b>C</b>")))
435 | "\\Complex" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "<b>C</b>")))
436 | "\\Z" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Z}", "<b>Z</b>")))
437 | "\\natnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "<b>N</b>")))
438 | "\\N" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "<b>N</b>")))
439 | "\\Q" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Q}", "<b>Q</b>")))
440 | "\\lVert" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\lVert ", "||")))
441 | "\\rVert" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\rVert ", "||")))
442 | "\\nmid" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nmid "))
443 | "\\lesssim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lesssim "))
444 | "\\ngeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ngeq "))
445 | "\\smallsmile" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\smallsmile "))
446 | "\\smallfrown" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\smallfrown "))
447 | "\\nleftarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleftarrow "))
448 | "\\nrightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nrightarrow "))
449 | "\\trianglelefteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\trianglelefteq "))
450 | "\\trianglerighteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\trianglerighteq "))
451 | "\\square" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\square "))
452 | "\\checkmark" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\checkmark "))
453 | "\\supsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\supsetneq "))
454 | "\\subsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\subsetneq "))
455 | "\\Box" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Box "))
456 | "\\nleq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleq "))
457 | "\\upharpoonright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upharpoonright "))
458 | "\\restriction" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upharpoonright "))
459 | "\\upharpoonleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upharpoonleft "))
460 | "\\downharpoonright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\downharpoonright "))
461 | "\\downharpoonleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\downharpoonleft "))
462 | "\\rightharpoonup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightharpoonup "))
463 | "\\rightharpoondown" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightharpoondown "))
464 | "\\leftharpoonup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftharpoonup "))
465 | "\\leftharpoondown" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftharpoondown "))
466 | "\\nless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nless "))
467 | "\\Vdash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Vdash "))
468 | "\\vDash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\vDash "))
469 | "\\varkappa" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varkappa "))
470 | "\\digamma" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\digamma "))
471 | "\\beth" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\beth "))
472 | "\\daleth" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\daleth "))
473 | "\\gimel" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gimel "))
474 | "\\complement" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\complement "))
475 | "\\eth" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eth "))
476 | "\\hslash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\hslash "))
477 | "\\mho" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\mho "))
478 | "\\Finv" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Finv "))
479 | "\\Game" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Game "))
480 | "\\varlimsup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varlimsup "))
481 | "\\varliminf" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varliminf "))
482 | "\\varinjlim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varinjlim "))
483 | "\\varprojlim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varprojlim "))
484 | "\\injlim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\injlim "))
485 | "\\projlim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\projlim "))
486 | "\\iint" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\iint "))
487 | "\\iiint" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\iiint "))
488 | "\\iiiint" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\iiiint "))
489 | "\\varnothing" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varnothing "))
490 | "\\left" -> LEFT
491 | "\\right" -> RIGHT
492 | "\\hat" -> FUN_AR1 "\\hat "
493 | "\\hline" -> LITERAL (TEX_ONLY "\\hline ")
494 | "\\vline" -> LITERAL (TEX_ONLY "\\vline ")
495 | "\\widehat" -> LITERAL (TEX_ONLY "\\widehat ")
496 | "\\overline" -> LITERAL (TEX_ONLY "\\overline ")
497 | "\\overbrace" -> LITERAL (TEX_ONLY "\\overbrace ")
498 | "\\underline" -> LITERAL (TEX_ONLY "\\underline ")
499 | "\\underbrace" -> LITERAL (TEX_ONLY "\\underbrace ")
500 | "\\overleftarrow" -> LITERAL (TEX_ONLY "\\overleftarrow ")
501 | "\\overrightarrow" -> LITERAL (TEX_ONLY "\\overrightarrow ")
502 | "\\overleftrightarrow"-> (tex_use_ams(); LITERAL (TEX_ONLY "\\overleftrightarrow "))
503 | "\\check" -> FUN_AR1 "\\check "
504 | "\\acute" -> FUN_AR1 "\\acute "
505 | "\\grave" -> FUN_AR1 "\\grave "
506 | "\\bar" -> FUN_AR1 "\\bar "
507 | "\\vec" -> FUN_AR1 "\\vec "
508 | "\\dot" -> FUN_AR1 "\\dot "
509 | "\\ddot" -> FUN_AR1 "\\ddot "
510 | "\\breve" -> FUN_AR1 "\\breve "
511 | "\\tilde" -> FUN_AR1 "\\tilde "
512 | "\\not" -> LITERAL (TEX_ONLY "\\not ")
513 | "\\choose" -> FUN_INFIX "\\choose "
514 | "\\atop" -> FUN_INFIX "\\atop "
515 | "\\binom" -> (tex_use_ams (); FUN_AR2 "\\binom ")
516 | "\\dbinom" -> (tex_use_ams (); FUN_AR2 "\\dbinom ")
517 | "\\tbinom" -> (tex_use_ams (); FUN_AR2 "\\tbinom ")
518 | "\\stackrel" -> FUN_AR2 "\\stackrel "
519 | "\\sideset" -> (tex_use_ams (); FUN_AR2nb "\\sideset ")
520 | "\\underset" -> (tex_use_ams (); FUN_AR2 "\\underset ")
521 | "\\overset" -> (tex_use_ams (); FUN_AR2 "\\overset ")
522 | "\\frac" -> FUN_AR2h ("\\frac ", fun num den -> Html.html_render [num], "<hr style=\"{background: black}\"/>", Html.html_render [den])
523 | "\\dfrac" -> (tex_use_ams () ; FUN_AR2 "\\dfrac ")
524 | "\\tfrac" -> (tex_use_ams () ; FUN_AR2h ("\\tfrac ", fun num den -> Html.html_render [num], "<hr style=\"background: black\">", Html.html_render [den]))
525 | "\\cfrac" -> (tex_use_ams (); FUN_AR2h ("\\cfrac ", fun num den -> Html.html_render [num], "<hr style=\"{background: black}\">", Html.html_render [den]))
526 | "\\over" -> FUN_INFIXh ("\\over ", fun num den -> Html.html_render num, "<hr style=\"{background: black}\"/>", Html.html_render den)
527 | "\\sqrt" -> FUN_AR1 "\\sqrt "
528 | "\\cancel" -> FUN_AR1 "\\cancel "
529 | "\\bcancel" -> FUN_AR1 "\\bcancel "
530 | "\\xcancel" -> FUN_AR1 "\\xcancel "
531 | "\\cancelto" -> FUN_AR2 "\\cancelto "
532 | "\\pmod" -> FUN_AR1hl ("\\pmod ", ("(mod ", ")"))
533 | "\\bmod" -> FUN_AR1hl ("\\bmod ", ("mod ", ""))
534 | "\\emph" -> FUN_AR1 "\\emph "
535 | "\\texttt" -> FUN_AR1 "\\texttt "
536 | "\\textbf" -> FUN_AR1 "\\textbf "
537 | "\\textsf" -> FUN_AR1 "\\textsf "
538 | "\\textit" -> FUN_AR1hf ("\\textit ", FONTFORCE_IT)
539 | "\\textrm" -> FUN_AR1hf ("\\textrm ", FONTFORCE_RM)
540 | "\\rm" -> DECLh ("\\rm ", FONTFORCE_RM)
541 | "\\it" -> DECLh ("\\it ", FONTFORCE_IT)
542 | "\\cal" -> DECL "\\cal "
543 | "\\displaystyle" -> LITERAL (TEX_ONLY "\\displaystyle ")
544 | "\\scriptstyle" -> LITERAL (TEX_ONLY "\\scriptstyle ")
545 | "\\textstyle" -> LITERAL (TEX_ONLY "\\textstyle ")
546 | "\\scriptscriptstyle"-> LITERAL (TEX_ONLY "\\scriptscriptstyle ")
547 | "\\bf" -> DECL "\\bf "
548 | "\\big" -> BIG "\\big "
549 | "\\Big" -> BIG "\\Big "
550 | "\\bigg" -> BIG "\\bigg "
551 | "\\Bigg" -> BIG "\\Bigg "
552 | "\\bigl" -> (tex_use_ams ();BIG "\\bigl ")
553 | "\\bigr" -> (tex_use_ams ();BIG "\\bigr ")
554 | "\\Bigl" -> (tex_use_ams ();BIG "\\Bigl ")
555 | "\\Bigr" -> (tex_use_ams ();BIG "\\Bigr ")
556 | "\\biggl" -> (tex_use_ams ();BIG "\\biggl ")
557 | "\\biggr" -> (tex_use_ams ();BIG "\\biggr ")
558 | "\\Biggl" -> (tex_use_ams ();BIG "\\Biggl ")
559 | "\\Biggr" -> (tex_use_ams ();BIG "\\Biggr ")
560 | "\\vartriangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\vartriangle "))
561 | "\\triangledown" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\triangledown "))
562 | "\\lozenge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lozenge "))
563 | "\\circledS" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circledS "))
564 | "\\measuredangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\measuredangle "))
565 | "\\nexists" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nexists "))
566 | "\\Bbbk" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Bbbk "))
567 | "\\backprime" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backprime "))
568 | "\\blacktriangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangle "))
569 | "\\blacktriangledown"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangledown "))
570 | "\\blacksquare" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacksquare "))
571 | "\\blacklozenge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacklozenge "))
572 | "\\bigstar" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\bigstar "))
573 | "\\sphericalangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sphericalangle "))
574 | "\\diagup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\diagup "))
575 | "\\diagdown" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\diagdown "))
576 | "\\dotplus" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\dotplus "))
577 | "\\Cap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cap "))
578 | "\\doublecap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cap "))
579 | "\\Cup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cup "))
580 | "\\doublecup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cup "))
581 | "\\barwedge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\barwedge "))
582 | "\\veebar" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\veebar "))
583 | "\\doublebarwedge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\doublebarwedge "))
584 | "\\boxminus" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxminus "))
585 | "\\boxtimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxtimes "))
586 | "\\boxdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxdot "))
587 | "\\boxplus" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxplus "))
588 | "\\divideontimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\divideontimes "))
589 | "\\ltimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ltimes "))
590 | "\\rtimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rtimes "))
591 | "\\leftthreetimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftthreetimes "))
592 | "\\rightthreetimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightthreetimes "))
593 | "\\curlywedge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlywedge "))
594 | "\\curlyvee" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlyvee "))
595 | "\\circleddash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circleddash "))
596 | "\\circledast" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circledast "))
597 | "\\circledcirc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circledcirc "))
598 | "\\centerdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\centerdot "))
599 | "\\intercal" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\intercal "))
600 | "\\leqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leqq "))
601 | "\\leqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leqslant "))
602 | "\\eqslantless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqslantless "))
603 | "\\lessapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lessapprox "))
604 | "\\approxeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\approxeq "))
605 | "\\lessdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lessdot "))
606 | "\\lll" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lll "))
607 | "\\lessgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lessgtr "))
608 | "\\lesseqgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lesseqgtr "))
609 | "\\lesseqqgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lesseqqgtr "))
610 | "\\doteqdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\doteqdot "))
611 | "\\Doteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\doteqdot "))
612 | "\\risingdotseq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\risingdotseq "))
613 | "\\fallingdotseq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\fallingdotseq "))
614 | "\\backsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backsim "))
615 | "\\backsimeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backsimeq "))
616 | "\\subseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\subseteqq "))
617 | "\\Subset" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Subset "))
618 | "\\preccurlyeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\preccurlyeq "))
619 | "\\curlyeqprec" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlyeqprec "))
620 | "\\precsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precsim "))
621 | "\\precapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precapprox "))
622 | "\\vartriangleleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\vartriangleleft "))
623 | "\\Vvdash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Vvdash "))
624 | "\\bumpeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\bumpeq "))
625 | "\\Bumpeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Bumpeq "))
626 | "\\geqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\geqq "))
627 | "\\geqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\geqslant "))
628 | "\\eqslantgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqslantgtr "))
629 | "\\gtrsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrsim "))
630 | "\\gtrapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrapprox "))
631 | "\\eqsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqsim "))
632 | "\\gtrdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrdot "))
633 | "\\ggg" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ggg "))
634 | "\\gggtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ggg "))
635 | "\\gtrless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrless "))
636 | "\\gtreqless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtreqless "))
637 | "\\gtreqqless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtreqqless "))
638 | "\\eqcirc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqcirc "))
639 | "\\circeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circeq "))
640 | "\\triangleq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\triangleq "))
641 | "\\thicksim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\thicksim "))
642 | "\\thickapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\thickapprox "))
643 | "\\supseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\supseteqq "))
644 | "\\Supset" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Supset "))
645 | "\\succcurlyeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succcurlyeq "))
646 | "\\curlyeqsucc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlyeqsucc "))
647 | "\\succsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succsim "))
648 | "\\succapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succapprox "))
649 | "\\vartriangleright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\vartriangleright "))
650 | "\\shortmid" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\shortmid "))
651 | "\\shortparallel" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\shortparallel "))
652 | "\\between" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\between "))
653 | "\\pitchfork" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\pitchfork "))
654 | "\\varpropto" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varpropto "))
655 | "\\blacktriangleleft"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangleleft "))
656 | "\\therefore" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\therefore "))
657 | "\\backepsilon" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backepsilon "))
658 | "\\blacktriangleright"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangleright "))
659 | "\\because" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\because "))
660 | "\\nleqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleqslant "))
661 | "\\nleqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleqq "))
662 | "\\lneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lneq "))
663 | "\\lneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lneqq "))
664 | "\\lvertneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lvertneqq "))
665 | "\\lnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lnsim "))
666 | "\\lnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lnapprox "))
667 | "\\nprec" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nprec "))
668 | "\\npreceq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\npreceq "))
669 | "\\precneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precneqq "))
670 | "\\precnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precnsim "))
671 | "\\precnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precnapprox "))
672 | "\\nsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsim "))
673 | "\\nshortmid" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nshortmid "))
674 | "\\nvdash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nvdash "))
675 | "\\nVdash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nVdash "))
676 | "\\ntriangleleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntriangleleft "))
677 | "\\ntrianglelefteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntrianglelefteq "))
678 | "\\nsubseteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsubseteq "))
679 | "\\nsubseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsubseteqq "))
680 | "\\varsubsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsubsetneq "))
681 | "\\subsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\subsetneqq "))
682 | "\\varsubsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsubsetneqq "))
683 | "\\ngtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ngtr "))
684 | "\\ngeqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ngeqslant "))
685 | "\\ngeqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ngeqq "))
686 | "\\gneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gneq "))
687 | "\\gneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gneqq "))
688 | "\\gvertneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gvertneqq "))
689 | "\\gnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gnsim "))
690 | "\\gnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gnapprox "))
691 | "\\nsucc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsucc "))
692 | "\\nsucceq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsucceq "))
693 | "\\succneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succneqq "))
694 | "\\succnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succnsim "))
695 | "\\succnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succnapprox "))
696 | "\\ncong" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ncong "))
697 | "\\nshortparallel" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nshortparallel "))
698 | "\\nparallel" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nparallel "))
699 | "\\nvDash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nvDash "))
700 | "\\nVDash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nVDash "))
701 | "\\ntriangleright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntriangleright "))
702 | "\\ntrianglerighteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntrianglerighteq "))
703 | "\\nsupseteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsupseteq "))
704 | "\\nsupseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsupseteqq "))
705 | "\\varsupsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsupsetneq "))
706 | "\\supsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\supsetneqq "))
707 | "\\varsupsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsupsetneqq "))
708 | "\\leftleftarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftleftarrows "))
709 | "\\leftrightarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftrightarrows "))
710 | "\\Lleftarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Lleftarrow "))
711 | "\\leftarrowtail" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftarrowtail "))
712 | "\\looparrowleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\looparrowleft "))
713 | "\\leftrightharpoons"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftrightharpoons "))
714 | "\\curvearrowleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curvearrowleft "))
715 | "\\circlearrowleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circlearrowleft "))
716 | "\\Lsh" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Lsh "))
717 | "\\upuparrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upuparrows "))
718 | "\\rightrightarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightrightarrows "))
719 | "\\rightleftarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightleftarrows "))
720 | "\\Rrightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Rrightarrow "))
721 | "\\rightarrowtail" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightarrowtail "))
722 | "\\looparrowright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\looparrowright "))
723 | "\\curvearrowright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curvearrowright "))
724 | "\\circlearrowright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circlearrowright "))
725 | "\\Rsh" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Rsh "))
726 | "\\downdownarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\downdownarrows "))
727 | "\\multimap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\multimap "))
728 | "\\leftrightsquigarrow"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftrightsquigarrow "))
729 | "\\rightsquigarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightsquigarrow "))
730 | "\\nLeftarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nLeftarrow "))
731 | "\\nleftrightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleftrightarrow "))
732 | "\\nRightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nRightarrow "))
733 | "\\nLeftrightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nLeftrightarrow "))
734 | "\\mathit" -> (tex_use_ams (); FUN_AR1hf ("\\mathit ", FONTFORCE_IT))
735 | "\\mathrm" -> (tex_use_ams (); FUN_AR1hf ("\\mathrm ", FONTFORCE_RM))
736 | "\\mathord" -> (tex_use_ams (); FUN_AR1 "\\mathord ")
737 | "\\mathop" -> (tex_use_ams (); FUN_AR1 "\\mathop ")
738 | "\\mathbin" -> (tex_use_ams (); FUN_AR1 "\\mathbin ")
739 | "\\mathrel" -> (tex_use_ams (); FUN_AR1 "\\mathrel ")
740 | "\\mathopen" -> (tex_use_ams (); FUN_AR1 "\\mathopen ")
741 | "\\mathclose" -> (tex_use_ams (); FUN_AR1 "\\mathclose ")
742 | "\\mathpunct" -> (tex_use_ams (); FUN_AR1 "\\mathpunct ")
743 | "\\boldsymbol" -> (tex_use_ams (); FUN_AR1 "\\boldsymbol ")
744 | "\\bold" -> (tex_use_ams (); FUN_AR1 "\\mathbf ")
745 | "\\Bbb" -> (tex_use_ams (); FUN_AR1 "\\mathbb ")
746 | "\\mathbf" -> (tex_use_ams (); FUN_AR1 "\\mathbf ")
747 | "\\mathsf" -> (tex_use_ams (); FUN_AR1 "\\mathsf ")
748 | "\\mathcal" -> (tex_use_ams (); FUN_AR1 "\\mathcal ")
749 | "\\mathbb" -> (tex_use_ams (); FUN_AR1 "\\mathbb ")
750 | "\\mathtt" -> (tex_use_ams (); FUN_AR1 "\\mathtt ")
751 | "\\mathfrak" -> (tex_use_ams (); FUN_AR1 "\\mathfrak ")
752 | "\\operatorname" -> (tex_use_ams (); FUN_AR1 "\\operatorname ")
753 | "\\text" -> raise (Failure "malformatted \\text")
754 | "\\mbox" -> raise (Failure "malformatted \\mbox")
755 | "\\vbox" -> raise (Failure "malformatted \\vbox")
756 | "\\hbox" -> raise (Failure "malformatted \\hbox")
757 | "\\color" -> (tex_use_color (); LITERAL (TEX_ONLY "\\color"))
758 | "\\pagecolor" -> (tex_use_color (); LITERAL (TEX_ONLY "\\pagecolor"))
759 | "\\definecolor" -> (tex_use_color (); LITERAL (TEX_ONLY "\\definecolor"))
760 | s -> raise (Illegal_tex_function s)