X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=math%2Ftexutil.ml;h=516a96e85c93ad188a06aa71121674dcab7f7077;hb=42208a64eea3ff0c5ae63902e6cb688b074ee95a;hp=99c7f31bd46aff1e6fe154649e8ecc5699af6a96;hpb=2dd79046299c2e917a53971800d5acd9132cf12c;p=lhc%2Fweb%2Fwiklou.git diff --git a/math/texutil.ml b/math/texutil.ml index 99c7f31bd4..516a96e85c 100644 --- a/math/texutil.ml +++ b/math/texutil.ml @@ -14,12 +14,16 @@ let rec render_tex = function TEX_FQ (a,b,c) -> (render_tex a) ^ "_{" ^ (render_tex b) ^ "}^{" ^ (render_tex c) ^ "}" | TEX_DQ (a,b) -> (render_tex a) ^ "_{" ^ (render_tex b) ^ "}" | TEX_UQ (a,b) -> (render_tex a) ^ "^{" ^ (render_tex b) ^ "}" + | TEX_FQN (a,b) -> "_{" ^ (render_tex a) ^ "}^{" ^ (render_tex b) ^ "}" + | TEX_DQN (a) -> "_{" ^ (render_tex a) ^ "}" + | TEX_UQN (a) -> "^{" ^ (render_tex a) ^ "}" | TEX_LITERAL s -> tex_part s | TEX_FUN1 (f,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}" | TEX_FUN1hl (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}" | TEX_FUN1hf (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}" | TEX_DECLh (f,_,a) -> "{" ^ f ^ "{" ^ (mapjoin render_tex a) ^ "}}" | TEX_FUN2 (f,a,b) -> "{" ^ f ^ " " ^ (render_tex a) ^ (render_tex b) ^ "}" + | TEX_FUN2nb (f,a,b) -> f ^ (render_tex a) ^ (render_tex b) | TEX_FUN2h (f,_,a,b) -> "{" ^ f ^ " " ^ (render_tex a) ^ (render_tex b) ^ "}" | TEX_FUN2sq (f,a,b) -> "{" ^ f ^ "[ " ^ (render_tex a) ^ "]" ^ (render_tex b) ^ "}" | TEX_CURLY (tl) -> "{" ^ (mapjoin render_tex tl) ^ "}" @@ -30,16 +34,19 @@ let rec render_tex = function | TEX_MATRIX (t,rows) -> "{\\begin{"^t^"}"^(mapjoine "\\\\" (mapjoine "&" (mapjoin render_tex)) rows)^"\\end{"^t^"}}" | TEX_LR (l,r,tl) -> "\\left "^(tex_part l)^(mapjoin render_tex tl)^"\\right "^(tex_part r) + (* Dynamic loading*) type encoding_t = LATIN1 | LATIN2 | UTF8 let modules_ams = ref false let modules_nonascii = ref false let modules_encoding = ref UTF8 +let modules_color = ref false let tex_use_ams () = modules_ams := true let tex_use_nonascii () = modules_nonascii := true -let tex_mod_reset () = (modules_ams := false; modules_nonascii := false; modules_encoding := UTF8) +let tex_use_color () = modules_color := true +let tex_mod_reset () = (modules_ams := false; modules_nonascii := false; modules_encoding := UTF8; modules_color := false) let get_encoding = function UTF8 -> "\\usepackage{ucs}\n\\usepackage[utf8]{inputenc}\n" @@ -49,7 +56,8 @@ let get_encoding = function let get_preface () = "\\nonstopmode\n\\documentclass[12pt]{article}\n" ^ (if !modules_nonascii then get_encoding !modules_encoding else "") ^ (if !modules_ams then "\\usepackage{amsmath}\n\\usepackage{amsfonts}\n\\usepackage{amssymb}\n" else "") ^ - "\\pagestyle{empty}\n\\begin{document}\n$$\n" + (if !modules_color then "\\usepackage[dvips,usenames]{color}\n" else "") ^ + "\\usepackage{cancel}\n\\pagestyle{empty}\n\\begin{document}\n$$\n" let get_footer () = "\n$$\n\\end{document}\n" let set_encoding = function @@ -63,58 +71,75 @@ exception Illegal_tex_function of string let find = function "\\alpha" -> LITERAL (HTMLABLEC (FONT_UF, "\\alpha ", "α")) - | "\\Alpha" -> LITERAL (HTMLABLEC (FONT_RTI, "A", "Α")) + | "\\Alpha" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{A}", "Α"))) | "\\beta" -> LITERAL (HTMLABLEC (FONT_UF, "\\beta ", "β")) - | "\\Beta" -> LITERAL (HTMLABLEC (FONT_RTI, "B", "Β")) + | "\\Beta" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{B}", "Β"))) | "\\gamma" -> LITERAL (HTMLABLEC (FONT_UF, "\\gamma ", "γ")) - | "\\Gamma" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Gamma ", "Γ")) + | "\\Gamma" -> LITERAL (HTMLABLEC (FONT_UF, "\\Gamma ", "Γ")) | "\\delta" -> LITERAL (HTMLABLEC (FONT_UF, "\\delta ", "δ")) - | "\\Delta" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Delta ", "Δ")) + | "\\Delta" -> LITERAL (HTMLABLEC (FONT_UF, "\\Delta ", "Δ")) | "\\epsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\epsilon ", "ε")) - | "\\Epsilon" -> LITERAL (HTMLABLEC (FONT_RTI, "E", "Ε")) + | "\\Epsilon" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{E}", "Ε"))) | "\\varepsilon" -> LITERAL (TEX_ONLY "\\varepsilon ") | "\\zeta" -> LITERAL (HTMLABLEC (FONT_UF, "\\zeta ", "ζ")) - | "\\Zeta" -> LITERAL (HTMLABLEC (FONT_RTI, "Z", "Ζ")) + | "\\Zeta" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{Z}", "Ζ"))) | "\\eta" -> LITERAL (HTMLABLEC (FONT_UF, "\\eta ", "η")) - | "\\Eta" -> LITERAL (HTMLABLEC (FONT_RTI, "H", "Η")) + | "\\Eta" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{H}", "Η"))) | "\\theta" -> LITERAL (HTMLABLEC (FONT_UF, "\\theta ", "θ")) - | "\\Theta" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Theta ", "Θ")) + | "\\Theta" -> LITERAL (HTMLABLEC (FONT_UF, "\\Theta ", "Θ")) | "\\vartheta" -> LITERAL (HTMLABLE (FONT_UF, "\\vartheta ", "ϑ")) | "\\thetasym" -> LITERAL (HTMLABLE (FONT_UF, "\\vartheta ", "ϑ")) | "\\iota" -> LITERAL (HTMLABLEC (FONT_UF, "\\iota ", "ι")) - | "\\Iota" -> LITERAL (HTMLABLEC (FONT_RTI, "I", "Ι")) + | "\\Iota" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{I}", "Ι"))) | "\\kappa" -> LITERAL (HTMLABLEC (FONT_UF, "\\kappa ", "κ")) - | "\\Kappa" -> LITERAL (HTMLABLEC (FONT_RTI, "K", "Κ")) + | "\\Kappa" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{K}", "Κ"))) | "\\lambda" -> LITERAL (HTMLABLEC (FONT_UF, "\\lambda ", "λ")) - | "\\Lambda" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Lambda ", "Λ")) + | "\\Lambda" -> LITERAL (HTMLABLEC (FONT_UF, "\\Lambda ", "Λ")) | "\\mu" -> LITERAL (HTMLABLEC (FONT_UF, "\\mu ", "μ")) - | "\\Mu" -> LITERAL (HTMLABLEC (FONT_RTI, "M", "Μ")) + | "\\Mu" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{M}", "Μ"))) | "\\nu" -> LITERAL (HTMLABLEC (FONT_UF, "\\nu ", "ν")) - | "\\Nu" -> LITERAL (HTMLABLEC (FONT_RTI, "N", "Ν")) + | "\\Nu" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{N}", "Ν"))) + | "\\omicron" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{o}", "ο"))) + | "\\Omicron" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{O}", "Ο"))) | "\\pi" -> LITERAL (HTMLABLEC (FONT_UF, "\\pi ", "π")) - | "\\Pi" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Pi ", "Π")) + | "\\Pi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Pi ", "Π")) | "\\varpi" -> LITERAL (TEX_ONLY "\\varpi ") | "\\rho" -> LITERAL (HTMLABLEC (FONT_UF, "\\rho ", "ρ")) - | "\\Rho" -> LITERAL (HTMLABLEC (FONT_RTI, "P", "Ρ")) + | "\\Rho" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{P}", "Ρ"))) | "\\varrho" -> LITERAL (TEX_ONLY "\\varrho ") + | "\\sim" -> LITERAL (HTMLABLEC (FONT_UF, "\\sim ", "∼")) | "\\sigma" -> LITERAL (HTMLABLEC (FONT_UF, "\\sigma ", "σ")) - | "\\Sigma" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Sigma ", "Σ")) + | "\\Sigma" -> LITERAL (HTMLABLEC (FONT_UF, "\\Sigma ", "Σ")) | "\\varsigma" -> LITERAL (TEX_ONLY "\\varsigma ") | "\\tau" -> LITERAL (HTMLABLEC (FONT_UF, "\\tau ", "τ")) - | "\\Tau" -> LITERAL (HTMLABLEC (FONT_RTI, "T", "Τ")) + | "\\Tau" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{T}", "Τ"))) | "\\upsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\upsilon ", "υ")) - | "\\Upsilon" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Upsilon ", "Υ")) + | "\\Upsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\Upsilon ", "Υ")) | "\\phi" -> LITERAL (HTMLABLEC (FONT_UF, "\\phi ", "φ")) - | "\\Phi" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Phi ", "Φ")) + | "\\Phi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Phi ", "Φ")) | "\\varphi" -> LITERAL (TEX_ONLY "\\varphi ") | "\\chi" -> LITERAL (HTMLABLEC (FONT_UF, "\\chi ", "χ")) - | "\\Chi" -> LITERAL (HTMLABLEC (FONT_RTI, "X", "Χ")) + | "\\Chi" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF, + "\\mathrm{X}", "Χ"))) | "\\psi" -> LITERAL (HTMLABLEC (FONT_UF, "\\psi ", "ψ")) - | "\\Psi" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Psi ", "Ψ")) + | "\\Psi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Psi ", "Ψ")) | "\\omega" -> LITERAL (HTMLABLEC (FONT_UF, "\\omega ", "ω")) - | "\\Omega" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Omega ", "Ω")) + | "\\Omega" -> LITERAL (HTMLABLEC (FONT_UF, "\\Omega ", "Ω")) | "\\xi" -> LITERAL (HTMLABLEC (FONT_UF, "\\xi ", "ξ")) - | "\\Xi" -> LITERAL (HTMLABLEC (FONT_RTI, "\\Xi ", "Ξ")) + | "\\Xi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Xi ", "Ξ")) | "\\aleph" -> LITERAL (HTMLABLE (FONT_UF, "\\aleph ", "ℵ")) | "\\alef" -> LITERAL (HTMLABLE (FONT_UF, "\\aleph ", "ℵ")) | "\\alefsym" -> LITERAL (HTMLABLE (FONT_UF, "\\aleph ", "ℵ")) @@ -148,6 +173,15 @@ let find = function | "\\Downarrow" -> DELIMITER (HTMLABLE (FONT_UF, "\\Downarrow ", "⇓")) | "\\updownarrow" -> DELIMITER (TEX_ONLY "\\updownarrow ") | "\\Updownarrow" -> DELIMITER (TEX_ONLY "\\Updownarrow ") + | "\\ulcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\ulcorner ")) + | "\\urcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\urcorner ")) + | "\\llcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\llcorner ")) + | "\\lrcorner" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\lrcorner ")) + | "\\twoheadleftarrow" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\twoheadleftarrow ")) + | "\\twoheadrightarrow" -> (tex_use_ams (); DELIMITER (TEX_ONLY "\\twoheadrightarrow ")) + | "\\xleftarrow" -> (tex_use_ams (); FUN_AR1 "\\xleftarrow ") + | "\\xrightarrow" -> (tex_use_ams (); FUN_AR1 "\\xrightarrow ") + | "\\rightleftharpoons" -> DELIMITER (TEX_ONLY "\\rightleftharpoons ") | "\\leftrightarrow" -> LITERAL (HTMLABLE (FONT_UF, "\\leftrightarrow ", "↔")) | "\\lrarr" -> LITERAL (HTMLABLE (FONT_UF, "\\leftrightarrow ", "↔")) | "\\harr" -> LITERAL (HTMLABLE (FONT_UF, "\\leftrightarrow ", "↔")) @@ -156,14 +190,18 @@ let find = function | "\\Harr" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔")) | "\\lrArr" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔")) | "\\hAar" -> LITERAL (HTMLABLE (FONT_UF, "\\Leftrightarrow ", "⇔")) + | "\\longleftrightarrow"->LITERAL (HTMLABLE (FONT_UF, "\\longleftrightarrow ", "↔")) | "\\Longleftrightarrow"->LITERAL (HTMLABLE (FONT_UF, "\\Longleftrightarrow ", "↔")) | "\\iff" -> LITERAL (HTMLABLE (FONT_UF, "\\iff ", "↔")) + | "\\ll" -> LITERAL (TEX_ONLY "\\ll ") + | "\\gg" -> LITERAL (TEX_ONLY "\\gg ") + | "\\div" -> LITERAL (TEX_ONLY "\\div ") | "\\searrow" -> LITERAL (TEX_ONLY "\\searrow ") | "\\nearrow" -> LITERAL (TEX_ONLY "\\nearrow ") | "\\swarrow" -> LITERAL (TEX_ONLY "\\swarrow ") | "\\nwarrow" -> LITERAL (TEX_ONLY "\\nwarrow ") - | "\\sim" -> LITERAL (TEX_ONLY "\\sim ") | "\\simeq" -> LITERAL (TEX_ONLY "\\simeq ") + | "\\ast" -> LITERAL (TEX_ONLY "\\ast ") | "\\star" -> LITERAL (TEX_ONLY "\\star ") | "\\ell" -> LITERAL (TEX_ONLY "\\ell ") | "\\P" -> LITERAL (TEX_ONLY "\\P ") @@ -183,28 +221,30 @@ let find = function | "\\models" -> LITERAL (TEX_ONLY "\\models ") | "\\vdash" -> LITERAL (TEX_ONLY "\\vdash ") | "\\triangle" -> LITERAL (TEX_ONLY "\\triangle ") + | "\\bowtie" -> LITERAL (TEX_ONLY "\\bowtie ") | "\\wr" -> LITERAL (TEX_ONLY "\\wr ") | "\\triangleleft" -> LITERAL (TEX_ONLY "\\triangleleft ") | "\\triangleright" -> LITERAL (TEX_ONLY "\\triangleright ") | "\\textvisiblespace" -> LITERAL (TEX_ONLY "\\textvisiblespace ") - | "\\ker" -> LITERAL (TEX_ONLY "\\ker ") + | "\\ker" -> LITERAL (HTMLABLEC(FONT_UFH,"\\ker ","ker")) | "\\lim" -> LITERAL (TEX_ONLY "\\lim ") | "\\limsup" -> LITERAL (TEX_ONLY "\\limsup ") | "\\liminf" -> LITERAL (TEX_ONLY "\\liminf ") | "\\sup" -> LITERAL (TEX_ONLY "\\sup ") | "\\Pr" -> LITERAL (TEX_ONLY "\\Pr ") - | "\\hom" -> LITERAL (TEX_ONLY "\\hom ") - | "\\arg" -> LITERAL (TEX_ONLY "\\arg ") - | "\\dim" -> LITERAL (TEX_ONLY "\\dim ") + | "\\hom" -> LITERAL (HTMLABLEC(FONT_UFH,"\\hom ","hom")) + | "\\arg" -> LITERAL (HTMLABLEC(FONT_UFH,"\\arg ","arg")) + | "\\dim" -> LITERAL (HTMLABLEC(FONT_UFH,"\\dim ","dim")) | "\\inf" -> LITERAL (TEX_ONLY "\\inf ") | "\\circ" -> LITERAL (TEX_ONLY "\\circ ") | "\\hbar" -> LITERAL (TEX_ONLY "\\hbar ") | "\\imath" -> LITERAL (TEX_ONLY "\\imath ") + | "\\jmath" -> LITERAL (TEX_ONLY "\\jmath ") | "\\lnot" -> LITERAL (TEX_ONLY "\\lnot ") | "\\hookrightarrow" -> LITERAL (TEX_ONLY "\\hookrightarrow ") | "\\hookleftarrow" -> LITERAL (TEX_ONLY "\\hookleftarrow ") | "\\mp" -> LITERAL (TEX_ONLY "\\mp ") - | "\\approx" -> LITERAL (TEX_ONLY "\\approx ") + | "\\approx" -> LITERAL (HTMLABLE (FONT_UF, "\\approx ", "≈")) | "\\propto" -> LITERAL (TEX_ONLY "\\propto ") | "\\flat" -> LITERAL (TEX_ONLY "\\flat ") | "\\sharp" -> LITERAL (TEX_ONLY "\\sharp ") @@ -213,6 +253,8 @@ let find = function | "\\sum" -> LITERAL (HTMLABLE_BIG ("\\sum ", "∑")) | "\\prod" -> LITERAL (HTMLABLE_BIG ("\\prod ", "∏")) | "\\vdots" -> LITERAL (TEX_ONLY "\\vdots ") + | "\\limits" -> LITERAL (TEX_ONLY "\\limits ") + | "\\nolimits" -> LITERAL (TEX_ONLY "\\nolimits ") | "\\top" -> LITERAL (TEX_ONLY "\\top ") | "\\sin" -> LITERAL (HTMLABLEC(FONT_UFH,"\\sin ","sin")) | "\\cos" -> LITERAL (HTMLABLEC(FONT_UFH,"\\cos ","cos")) @@ -301,12 +343,14 @@ let find = function | "\\pm" -> LITERAL (HTMLABLEM(FONT_UFH,"\\pm ", "±")) | "\\plusmn" -> LITERAL (HTMLABLEM(FONT_UFH,"\\pm ", "±")) | "\\cdot" -> LITERAL (HTMLABLE (FONT_UFH,"\\cdot ", "⋅")) + | "\\AA" -> LITERAL (HTMLABLE (FONT_UFH,"\\AA ", "Å")) | "\\cdots" -> LITERAL (HTMLABLE (FONT_UFH,"\\cdots ", "⋅⋅⋅")) | "\\sdot" -> LITERAL (HTMLABLE (FONT_UFH,"\\cdot ", "⋅")) | "\\oplus" -> LITERAL (HTMLABLE (FONT_UF, "\\oplus ", "⊕")) | "\\otimes" -> LITERAL (HTMLABLE (FONT_UF, "\\otimes ", "⊗")) | "\\cap" -> LITERAL (HTMLABLEM(FONT_UF, "\\cap ", "∩")) | "\\cup" -> LITERAL (HTMLABLE (FONT_UF, "\\cup ", "∪")) + | "\\uplus" -> LITERAL (TEX_ONLY "\\uplus ") | "\\sqcap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqcap ")) | "\\sqcup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sqcup ")) | "\\empty" -> LITERAL (HTMLABLE (FONT_UF, "\\emptyset ", "∅")) @@ -335,6 +379,7 @@ let find = function | "\\rang" -> DELIMITER (HTMLABLE (FONT_UFH,"\\rangle ","⟩")) | "\\lbrack" -> DELIMITER (HTMLABLEC(FONT_UFH,"[","[")) | "\\rbrack" -> DELIMITER (HTMLABLEC(FONT_UFH,"]","]")) + | "\\surd" -> LITERAL (TEX_ONLY "\\surd ") | "\\ddots" -> LITERAL (TEX_ONLY "\\ddots ") | "\\clubs" -> LITERAL (TEX_ONLY "\\clubsuit ") | "\\clubsuit" -> LITERAL (TEX_ONLY "\\clubsuit ") @@ -343,7 +388,23 @@ let find = function | "\\hearts" -> LITERAL (TEX_ONLY "\\heartsuit ") | "\\heartsuit" -> LITERAL (TEX_ONLY "\\heartsuit ") | "\\diamonds" -> LITERAL (TEX_ONLY "\\diamondsuit ") + | "\\diamond" -> LITERAL (TEX_ONLY "\\diamond ") + | "\\bigtriangleup" -> LITERAL (TEX_ONLY "\\bigtriangleup ") + | "\\bigtriangledown" -> LITERAL (TEX_ONLY "\\bigtriangledown ") | "\\diamondsuit" -> LITERAL (TEX_ONLY "\\diamondsuit ") + | "\\ominus" -> LITERAL (TEX_ONLY "\\ominus ") + | "\\oslash" -> LITERAL (TEX_ONLY "\\oslash ") + | "\\odot" -> LITERAL (TEX_ONLY "\\odot ") + | "\\bigcirc" -> LITERAL (TEX_ONLY "\\bigcirc ") + | "\\amalg" -> LITERAL (TEX_ONLY "\\amalg ") + | "\\prec" -> LITERAL (TEX_ONLY "\\prec ") + | "\\succ" -> LITERAL (TEX_ONLY "\\succ ") + | "\\preceq" -> LITERAL (TEX_ONLY "\\preceq ") + | "\\succeq" -> LITERAL (TEX_ONLY "\\succeq ") + | "\\dashv" -> LITERAL (TEX_ONLY "\\dashv ") + | "\\asymp" -> LITERAL (TEX_ONLY "\\asymp ") + | "\\doteq" -> LITERAL (TEX_ONLY "\\doteq ") + | "\\parallel" -> LITERAL (TEX_ONLY "\\parallel ") | "\\implies" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\implies ", "⇒"))) | "\\mod" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mod ", "mod"))) | "\\Diamond" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\Diamond ", "◊"))) @@ -351,11 +412,13 @@ let find = function | "\\reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "R"))) | "\\Reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "R"))) | "\\R" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "R"))) + | "\\C" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "C"))) | "\\cnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "C"))) | "\\Complex" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "C"))) | "\\Z" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Z}", "Z"))) | "\\natnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "N"))) | "\\N" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "N"))) + | "\\Q" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Q}", "Q"))) | "\\lVert" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\lVert ", "||"))) | "\\rVert" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\rVert ", "||"))) | "\\nmid" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nmid ")) @@ -368,11 +431,13 @@ let find = function | "\\trianglelefteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\trianglelefteq ")) | "\\trianglerighteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\trianglerighteq ")) | "\\square" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\square ")) + | "\\checkmark" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\checkmark ")) | "\\supsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\supsetneq ")) | "\\subsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\subsetneq ")) | "\\Box" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Box ")) | "\\nleq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleq ")) | "\\upharpoonright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upharpoonright ")) + | "\\restriction" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upharpoonright ")) | "\\upharpoonleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upharpoonleft ")) | "\\downharpoonright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\downharpoonright ")) | "\\downharpoonleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\downharpoonleft ")) @@ -407,14 +472,16 @@ let find = function | "\\left" -> LEFT | "\\right" -> RIGHT | "\\hat" -> FUN_AR1 "\\hat " - | "\\widehat" -> FUN_AR1 "\\widehat " - | "\\overline" -> FUN_AR1 "\\overline " - | "\\overbrace" -> FUN_AR1 "\\overbrace " - | "\\underline" -> FUN_AR1 "\\underline " - | "\\underbrace" -> FUN_AR1 "\\underbrace " - | "\\overleftarrow" -> FUN_AR1 "\\overleftarrow " - | "\\overrightarrow" -> FUN_AR1 "\\overrightarrow " - | "\\overleftrightarrow"->FUN_AR1 "\\overleftrightarrow " + | "\\hline" -> LITERAL (TEX_ONLY "\\hline ") + | "\\vline" -> LITERAL (TEX_ONLY "\\vline ") + | "\\widehat" -> LITERAL (TEX_ONLY "\\widehat ") + | "\\overline" -> LITERAL (TEX_ONLY "\\overline ") + | "\\overbrace" -> LITERAL (TEX_ONLY "\\overbrace ") + | "\\underline" -> LITERAL (TEX_ONLY "\\underline ") + | "\\underbrace" -> LITERAL (TEX_ONLY "\\underbrace ") + | "\\overleftarrow" -> LITERAL (TEX_ONLY "\\overleftarrow ") + | "\\overrightarrow" -> LITERAL (TEX_ONLY "\\overrightarrow ") + | "\\overleftrightarrow"-> (tex_use_ams(); LITERAL (TEX_ONLY "\\overleftrightarrow ")) | "\\check" -> FUN_AR1 "\\check " | "\\acute" -> FUN_AR1 "\\acute " | "\\grave" -> FUN_AR1 "\\grave " @@ -424,14 +491,24 @@ let find = function | "\\ddot" -> FUN_AR1 "\\ddot " | "\\breve" -> FUN_AR1 "\\breve " | "\\tilde" -> FUN_AR1 "\\tilde " - | "\\not" -> FUN_AR1 "\\not " + | "\\not" -> LITERAL (TEX_ONLY "\\not ") | "\\choose" -> FUN_INFIX "\\choose " | "\\atop" -> FUN_INFIX "\\atop " - | "\\binom" -> FUN_AR2 "\\binom " + | "\\binom" -> (tex_use_ams (); FUN_AR2 "\\binom ") + | "\\dbinom" -> (tex_use_ams (); FUN_AR2 "\\dbinom ") + | "\\tbinom" -> (tex_use_ams (); FUN_AR2 "\\tbinom ") + | "\\stackrel" -> FUN_AR2 "\\stackrel " + | "\\sideset" -> (tex_use_ams (); FUN_AR2nb "\\sideset ") + | "\\underset" -> (tex_use_ams (); FUN_AR2 "\\underset ") + | "\\overset" -> (tex_use_ams (); FUN_AR2 "\\overset ") | "\\frac" -> FUN_AR2h ("\\frac ", fun num den -> Html.html_render [num], "
", Html.html_render [den]) + | "\\dfrac" -> (tex_use_ams () ; FUN_AR2 "\\dfrac ") + | "\\tfrac" -> (tex_use_ams () ; FUN_AR2h ("\\tfrac ", fun num den -> Html.html_render [num], "
", Html.html_render [den])) | "\\cfrac" -> (tex_use_ams (); FUN_AR2h ("\\cfrac ", fun num den -> Html.html_render [num], "
", Html.html_render [den])) | "\\over" -> FUN_INFIXh ("\\over ", fun num den -> Html.html_render num, "
", Html.html_render den) | "\\sqrt" -> FUN_AR1 "\\sqrt " + | "\\cancel" -> FUN_AR1 "\\cancel " + | "\\cancelto" -> FUN_AR2 "\\cancelto " | "\\pmod" -> FUN_AR1hl ("\\pmod ", ("(mod ", ")")) | "\\bmod" -> FUN_AR1hl ("\\bmod ", ("mod ", "")) | "\\emph" -> FUN_AR1 "\\emph " @@ -442,14 +519,206 @@ let find = function | "\\rm" -> DECLh ("\\rm ", FONTFORCE_RM) | "\\it" -> DECLh ("\\it ", FONTFORCE_IT) | "\\cal" -> DECL "\\cal " + | "\\displaystyle" -> LITERAL (TEX_ONLY "\\displaystyle ") + | "\\scriptstyle" -> LITERAL (TEX_ONLY "\\scriptstyle ") + | "\\textstyle" -> LITERAL (TEX_ONLY "\\textstyle ") + | "\\scriptscriptstyle"-> LITERAL (TEX_ONLY "\\scriptscriptstyle ") | "\\bf" -> DECL "\\bf " | "\\big" -> BIG "\\big " | "\\Big" -> BIG "\\Big " | "\\bigg" -> BIG "\\bigg " | "\\Bigg" -> BIG "\\Bigg " + | "\\bigl" -> (tex_use_ams ();BIG "\\bigl ") + | "\\bigr" -> (tex_use_ams ();BIG "\\bigr ") + | "\\Bigl" -> (tex_use_ams ();BIG "\\Bigl ") + | "\\Bigr" -> (tex_use_ams ();BIG "\\Bigr ") + | "\\biggl" -> (tex_use_ams ();BIG "\\biggl ") + | "\\biggr" -> (tex_use_ams ();BIG "\\biggr ") + | "\\Biggl" -> (tex_use_ams ();BIG "\\Biggl ") + | "\\Biggr" -> (tex_use_ams ();BIG "\\Biggr ") + | "\\vartriangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\vartriangle ")) + | "\\triangledown" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\triangledown ")) + | "\\lozenge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lozenge ")) + | "\\circledS" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circledS ")) + | "\\measuredangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\measuredangle ")) + | "\\nexists" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nexists ")) + | "\\Bbbk" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Bbbk ")) + | "\\backprime" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backprime ")) + | "\\blacktriangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangle ")) + | "\\blacktriangledown"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangledown ")) + | "\\blacksquare" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacksquare ")) + | "\\blacklozenge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacklozenge ")) + | "\\bigstar" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\bigstar ")) + | "\\sphericalangle" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\sphericalangle ")) + | "\\diagup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\diagup ")) + | "\\diagdown" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\diagdown ")) + | "\\dotplus" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\dotplus ")) + | "\\Cap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cap ")) + | "\\doublecap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cap ")) + | "\\Cup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cup ")) + | "\\doublecup" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Cup ")) + | "\\barwedge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\barwedge ")) + | "\\veebar" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\veebar ")) + | "\\doublebarwedge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\doublebarwedge ")) + | "\\boxminus" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxminus ")) + | "\\boxtimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxtimes ")) + | "\\boxdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxdot ")) + | "\\boxplus" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\boxplus ")) + | "\\divideontimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\divideontimes ")) + | "\\ltimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ltimes ")) + | "\\rtimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rtimes ")) + | "\\leftthreetimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftthreetimes ")) + | "\\rightthreetimes" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightthreetimes ")) + | "\\curlywedge" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlywedge ")) + | "\\curlyvee" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlyvee ")) + | "\\circleddash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circleddash ")) + | "\\circledast" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circledast ")) + | "\\circledcirc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circledcirc ")) + | "\\centerdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\centerdot ")) + | "\\intercal" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\intercal ")) + | "\\leqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leqq ")) + | "\\leqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leqslant ")) + | "\\eqslantless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqslantless ")) + | "\\lessapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lessapprox ")) + | "\\approxeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\approxeq ")) + | "\\lessdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lessdot ")) + | "\\lll" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lll ")) + | "\\lessgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lessgtr ")) + | "\\lesseqgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lesseqgtr ")) + | "\\lesseqqgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lesseqqgtr ")) + | "\\doteqdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\doteqdot ")) + | "\\Doteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\doteqdot ")) + | "\\risingdotseq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\risingdotseq ")) + | "\\fallingdotseq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\fallingdotseq ")) + | "\\backsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backsim ")) + | "\\backsimeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backsimeq ")) + | "\\subseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\subseteqq ")) + | "\\Subset" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Subset ")) + | "\\preccurlyeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\preccurlyeq ")) + | "\\curlyeqprec" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlyeqprec ")) + | "\\precsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precsim ")) + | "\\precapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precapprox ")) + | "\\vartriangleleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\vartriangleleft ")) + | "\\Vvdash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Vvdash ")) + | "\\bumpeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\bumpeq ")) + | "\\Bumpeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Bumpeq ")) + | "\\geqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\geqq ")) + | "\\geqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\geqslant ")) + | "\\eqslantgtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqslantgtr ")) + | "\\gtrsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrsim ")) + | "\\gtrapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrapprox ")) + | "\\eqsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqsim ")) + | "\\gtrdot" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrdot ")) + | "\\ggg" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ggg ")) + | "\\gggtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ggg ")) + | "\\gtrless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtrless ")) + | "\\gtreqless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtreqless ")) + | "\\gtreqqless" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gtreqqless ")) + | "\\eqcirc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\eqcirc ")) + | "\\circeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circeq ")) + | "\\triangleq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\triangleq ")) + | "\\thicksim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\thicksim ")) + | "\\thickapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\thickapprox ")) + | "\\supseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\supseteqq ")) + | "\\Supset" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Supset ")) + | "\\succcurlyeq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succcurlyeq ")) + | "\\curlyeqsucc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curlyeqsucc ")) + | "\\succsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succsim ")) + | "\\succapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succapprox ")) + | "\\vartriangleright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\vartriangleright ")) + | "\\shortmid" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\shortmid ")) + | "\\shortparallel" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\shortparallel ")) + | "\\between" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\between ")) + | "\\pitchfork" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\pitchfork ")) + | "\\varpropto" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varpropto ")) + | "\\blacktriangleleft"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangleleft ")) + | "\\therefore" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\therefore ")) + | "\\backepsilon" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\backepsilon ")) + | "\\blacktriangleright"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\blacktriangleright ")) + | "\\because" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\because ")) + | "\\nleqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleqslant ")) + | "\\nleqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleqq ")) + | "\\lneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lneq ")) + | "\\lneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lneqq ")) + | "\\lvertneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lvertneqq ")) + | "\\lnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lnsim ")) + | "\\lnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\lnapprox ")) + | "\\nprec" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nprec ")) + | "\\npreceq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\npreceq ")) + | "\\precneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precneqq ")) + | "\\precnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precnsim ")) + | "\\precnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\precnapprox ")) + | "\\nsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsim ")) + | "\\nshortmid" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nshortmid ")) + | "\\nvdash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nvdash ")) + | "\\nVdash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nVdash ")) + | "\\ntriangleleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntriangleleft ")) + | "\\ntrianglelefteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntrianglelefteq ")) + | "\\nsubseteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsubseteq ")) + | "\\nsubseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsubseteqq ")) + | "\\varsubsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsubsetneq ")) + | "\\subsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\subsetneqq ")) + | "\\varsubsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsubsetneqq ")) + | "\\ngtr" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ngtr ")) + | "\\ngeqslant" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ngeqslant ")) + | "\\ngeqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ngeqq ")) + | "\\gneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gneq ")) + | "\\gneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gneqq ")) + | "\\gvertneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gvertneqq ")) + | "\\gnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gnsim ")) + | "\\gnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\gnapprox ")) + | "\\nsucc" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsucc ")) + | "\\nsucceq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsucceq ")) + | "\\succneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succneqq ")) + | "\\succnsim" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succnsim ")) + | "\\succnapprox" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\succnapprox ")) + | "\\ncong" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ncong ")) + | "\\nshortparallel" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nshortparallel ")) + | "\\nparallel" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nparallel ")) + | "\\nvDash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nvDash ")) + | "\\nVDash" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nVDash ")) + | "\\ntriangleright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntriangleright ")) + | "\\ntrianglerighteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\ntrianglerighteq ")) + | "\\nsupseteq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsupseteq ")) + | "\\nsupseteqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nsupseteqq ")) + | "\\varsupsetneq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsupsetneq ")) + | "\\supsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\supsetneqq ")) + | "\\varsupsetneqq" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\varsupsetneqq ")) + | "\\leftleftarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftleftarrows ")) + | "\\leftrightarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftrightarrows ")) + | "\\Lleftarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Lleftarrow ")) + | "\\leftarrowtail" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftarrowtail ")) + | "\\looparrowleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\looparrowleft ")) + | "\\leftrightharpoons"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftrightharpoons ")) + | "\\curvearrowleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curvearrowleft ")) + | "\\circlearrowleft" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circlearrowleft ")) + | "\\Lsh" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Lsh ")) + | "\\upuparrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\upuparrows ")) + | "\\rightrightarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightrightarrows ")) + | "\\rightleftarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightleftarrows ")) + | "\\Rrightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Rrightarrow ")) + | "\\rightarrowtail" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightarrowtail ")) + | "\\looparrowright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\looparrowright ")) + | "\\curvearrowright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\curvearrowright ")) + | "\\circlearrowright" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\circlearrowright ")) + | "\\Rsh" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\Rsh ")) + | "\\downdownarrows" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\downdownarrows ")) + | "\\multimap" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\multimap ")) + | "\\leftrightsquigarrow"-> (tex_use_ams (); LITERAL (TEX_ONLY "\\leftrightsquigarrow ")) + | "\\rightsquigarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\rightsquigarrow ")) + | "\\nLeftarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nLeftarrow ")) + | "\\nleftrightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nleftrightarrow ")) + | "\\nRightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nRightarrow ")) + | "\\nLeftrightarrow" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nLeftrightarrow ")) | "\\mathit" -> (tex_use_ams (); FUN_AR1hf ("\\mathit ", FONTFORCE_IT)) | "\\mathrm" -> (tex_use_ams (); FUN_AR1hf ("\\mathrm ", FONTFORCE_RM)) + | "\\mathord" -> (tex_use_ams (); FUN_AR1 "\\mathord ") | "\\mathop" -> (tex_use_ams (); FUN_AR1 "\\mathop ") + | "\\mathbin" -> (tex_use_ams (); FUN_AR1 "\\mathbin ") + | "\\mathrel" -> (tex_use_ams (); FUN_AR1 "\\mathrel ") + | "\\mathopen" -> (tex_use_ams (); FUN_AR1 "\\mathopen ") + | "\\mathclose" -> (tex_use_ams (); FUN_AR1 "\\mathclose ") + | "\\mathpunct" -> (tex_use_ams (); FUN_AR1 "\\mathpunct ") | "\\boldsymbol" -> (tex_use_ams (); FUN_AR1 "\\boldsymbol ") | "\\bold" -> (tex_use_ams (); FUN_AR1 "\\mathbf ") | "\\Bbb" -> (tex_use_ams (); FUN_AR1 "\\mathbb ") @@ -459,7 +728,11 @@ let find = function | "\\mathbb" -> (tex_use_ams (); FUN_AR1 "\\mathbb ") | "\\mathfrak" -> (tex_use_ams (); FUN_AR1 "\\mathfrak ") | "\\operatorname" -> (tex_use_ams (); FUN_AR1 "\\operatorname ") + | "\\text" -> raise (Failure "malformatted \\text") | "\\mbox" -> raise (Failure "malformatted \\mbox") | "\\vbox" -> raise (Failure "malformatted \\vbox") | "\\hbox" -> raise (Failure "malformatted \\hbox") + | "\\color" -> (tex_use_color (); LITERAL (TEX_ONLY "\\color")) + | "\\pagecolor" -> (tex_use_color (); LITERAL (TEX_ONLY "\\pagecolor")) + | "\\definecolor" -> (tex_use_color (); LITERAL (TEX_ONLY "\\definecolor")) | s -> raise (Illegal_tex_function s)