r97259 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r97258‎ | r97259 | r97260 >
Date:13:06, 16 September 2011
Author:reedy
Status:ok
Tags:
Comment:
Modified paths:
  • /branches/REL1_18/extensions/Math (modified) (history)
  • /branches/REL1_18/extensions/Math/Math.hooks.php (modified) (history)
  • /branches/REL1_18/extensions/Math/Math.php (modified) (history)
  • /branches/REL1_18/extensions/Math/math/lexer.mll (modified) (history)
  • /branches/REL1_18/extensions/Math/math/texutil.ml (modified) (history)
  • /branches/REL1_18/extensions/Math/mathParserTests.txt (modified) (history)

Diff [purge]

Index: branches/REL1_18/extensions/Math/Math.php
@@ -89,6 +89,7 @@
9090 $wgHooks['GetPreferences'][] = 'MathHooks::onGetPreferences';
9191 $wgHooks['LoadExtensionSchemaUpdates'][] = 'MathHooks::onLoadExtensionSchemaUpdates';
9292 $wgHooks['ParserTestTables'][] = 'MathHooks::onParserTestTables';
 93+$wgHooks['ParserTestParser'][] = 'MathHooks::onParserTestParser';
9394
9495 $dir = dirname( __FILE__ ) . '/';
9596 $wgAutoloadClasses['MathHooks'] = $dir . 'Math.hooks.php';
Index: branches/REL1_18/extensions/Math/Math.hooks.php
@@ -136,4 +136,18 @@
137137 $tables[] = 'math';
138138 return true;
139139 }
 140+
 141+ /**
 142+ * Hack to fake a default $wgMathPath value so parser test output
 143+ * that renders to images doesn't vary by who runs it.
 144+ *
 145+ * @global string $wgMathPath
 146+ * @param Parser $parser
 147+ * @return bool
 148+ */
 149+ static function onParserTestParser( &$parser ) {
 150+ global $wgMathPath;
 151+ $wgMathPath = '/images/math';
 152+ return true;
 153+ }
140154 }
Index: branches/REL1_18/extensions/Math/mathParserTests.txt
@@ -39,3 +39,111 @@
4040 #</p>
4141 #!! end
4242
 43+!! test
 44+BUG 26380: Add \widetilde support to match \widehat
 45+!! input
 46+<math>\widehat{x}</math>
 47+<math>\widetilde{x}</math>
 48+!! result
 49+<p><img class="tex" alt="\widehat{x}" src="/images/math/9/9/8/998309e831dfb051f233c92b4b8a825b.png" />
 50+<img class="tex" alt="\widetilde{x}" src="/images/math/e/9/e/e9e91996778a6d6f5cdf4cc951955206.png" />
 51+</p>
 52+!! end
 53+
 54+!! test
 55+BUG 27324: Euro symbol for math
 56+!! input
 57+<math>\euro 200</math>
 58+<math>\geneuro</math>
 59+<math>\geneuronarrow</math>
 60+<math>\geneurowide</math>
 61+<math>\officialeuro</math>
 62+!! result
 63+<p><span class="texhtml" dir="ltr">&#8364;200</span>
 64+<img class="tex" alt="\geneuro" src="/images/math/9/8/b/98b63c235ee187a38267e0e170b10e9d.png" />
 65+<img class="tex" alt="\geneuronarrow" src="/images/math/a/a/4/aa4a1ed370f4ee705c6930384bf89502.png" />
 66+<img class="tex" alt="\geneurowide" src="/images/math/4/4/0/4404468e6187fb04e4f7e1f15e550825.png" />
 67+<img class="tex" alt="\officialeuro" src="/images/math/d/7/0/d708de0eed23dbd6f02b99ea9073547b.png" />
 68+</p>
 69+!! end
 70+
 71+!! test
 72+BUG 27754: Archaic Greek letters for math (may require texlive-lang-greek)
 73+!! input
 74+<math>\digamma</math><!-- Lowercase digamma was already available -->
 75+<math>\Coppa\coppa\varcoppa</math>
 76+<math>\Digamma</math>
 77+<math>\Koppa\koppa</math>
 78+<math>\Sampi\sampi</math>
 79+<math>\Stigma\stigma\varstigma</math>
 80+!! result
 81+<p><img class="tex" alt="\digamma" src="/images/math/2/f/0/2f057b6e514c8ca2d9cf9a3e549f8865.png" />
 82+<img class="tex" alt="\Coppa\coppa\varcoppa" src="/images/math/8/3/0/8308ee5003aa36112414cad8ef874f85.png" />
 83+<img class="tex" alt="\Digamma" src="/images/math/5/c/f/5cfd6e5df6c87798542dca2e22c1e7cb.png" />
 84+<img class="tex" alt="\Koppa\koppa" src="/images/math/5/2/5/52593a0cdac178d165985ac014788b97.png" />
 85+<img class="tex" alt="\Sampi\sampi" src="/images/math/e/9/d/e9dabb19e4c27bf23d3c2a3629474562.png" />
 86+<img class="tex" alt="\Stigma\stigma\varstigma" src="/images/math/7/b/9/7b9233276816994a33a5e968202cef6e.png" />
 87+</p>
 88+!! end
 89+
 90+!! test
 91+BUG 19547: Apostrophe / single quotes in math \text{...}
 92+!! input
 93+<math>\text{next years}</math>
 94+<math>\text{next year's}</math>
 95+<math>\text{`next' year}</math>
 96+!! result
 97+<p><span class="texhtml" dir="ltr">next years</span>
 98+<span class="texhtml" dir="ltr">next year's</span>
 99+<span class="texhtml" dir="ltr">`next' year</span>
 100+</p>
 101+!! end
 102+
 103+!! test
 104+BUG 6722: Spacing fix for functions in math HTML output
 105+!! input
 106+<math>\sin x</math>
 107+<math>\sin(x)</math>
 108+<math>\sin{x}</math>
 109+
 110+<math>\sin x \,</math>
 111+<math>\sin(x) \,</math>
 112+<math>\sin{x} \,</math>
 113+!!result
 114+<p><span class="texhtml" dir="ltr">sin&#160;<i>x</i></span>
 115+<span class="texhtml" dir="ltr">sin(<i>x</i>)</span>
 116+<span class="texhtml" dir="ltr">sin&#160;<i>x</i></span>
 117+</p><p><img class="tex" alt="\sin x \," src="/images/math/7/6/a/76a8e1a01bd233c1e4e16d63b2bbf939.png" />
 118+<img class="tex" alt="\sin(x) \," src="/images/math/1/6/c/16c69b0a3658d3b398f72c518d869a03.png" />
 119+<img class="tex" alt="\sin{x} \," src="/images/math/8/3/9/839639707da39f691e702c2399cbf943.png" />
 120+</p>
 121+!! end
 122+
 123+!! test
 124+BUG 18912: Add \sen function for Spanish sin to math
 125+!! input
 126+<math>\sen x</math>
 127+<math>\sen(x)</math>
 128+<math>\sen{x}</math>
 129+
 130+<math>\sen x \,</math>
 131+<math>\sen(x) \,</math>
 132+<math>\sen{x} \,</math>
 133+!! result
 134+<p><span class="texhtml" dir="ltr">sen&#160;<i>x</i></span>
 135+<span class="texhtml" dir="ltr">sen(<i>x</i>)</span>
 136+<span class="texhtml" dir="ltr">sen&#160;<i>x</i></span>
 137+</p><p><img class="tex" alt="\sen x \," src="/images/math/0/a/c/0ac592b8f31b4698766c50c532f446a7.png" />
 138+<img class="tex" alt="\sen(x) \," src="/images/math/b/b/5/bb5469d24fcdd52aa60cb9ee90ba697d.png" />
 139+<img class="tex" alt="\sen{x} \," src="/images/math/d/4/8/d4882a4bcf5db1da3e30d905da8b394e.png" />
 140+</p>
 141+!! end
 142+
 143+!! test
 144+BUG 18912: \operatorname{sen} x gets wrong spacing in math
 145+!! input
 146+<math>\operatorname{sen}</math>
 147+!! result
 148+<p><img class="tex" alt="\operatorname{sen}" src="/images/math/3/e/7/3e71e75d9aac1bf5107271ad89ca7c3b.png" />
 149+</p>
 150+!! end
Index: branches/REL1_18/extensions/Math/math/lexer.mll
@@ -11,8 +11,10 @@
1212 let delimiter_uf_lt = ['(' ')' '.']
1313 let literal_uf_op = ['+' '-' '*' '=']
1414 let delimiter_uf_op = ['/' '|']
15 -let boxchars = ['0'-'9' 'a'-'z' 'A'-'Z' '+' '-' '*' ',' '=' '(' ')' ':' '/' ';' '?' '.' '!' ' ' '\128'-'\255']
16 -let aboxchars = ['0'-'9' 'a'-'z' 'A'-'Z' '+' '-' '*' ',' '=' '(' ')' ':' '/' ';' '?' '.' '!' ' ']
 15+let boxchars = ['0'-'9' 'a'-'z' 'A'-'Z' '+' '-' '*' ',' '=' '(' ')' ':' '/' ';' '?' '.' '!' '\'' '`' ' ' '\128'-'\255']
 16+let aboxchars = ['0'-'9' 'a'-'z' 'A'-'Z' '+' '-' '*' ',' '=' '(' ')' ':' '/' ';' '?' '.' '!' '\'' '`' ' ']
 17+let latex_function_names = "arccos" | "arcsin" | "arctan" | "arg" | "cos" | "cosh" | "cot" | "coth" | "csc"| "deg" | "det" | "dim" | "exp" | "gcd" | "hom" | "inf" | "ker" | "lg" | "lim" | "liminf" | "limsup" | "ln" | "log" | "max" | "min" | "Pr" | "sec" | "sin" | "sinh" | "sup" | "tan" | "tanh"
 18+let mediawiki_function_names = "arccot" | "arcsec" | "arccsc" | "sgn" | "sen"
1719
1820 rule token = parse
1921 space + { token lexbuf }
@@ -54,10 +56,18 @@
5557 | "-" { let str = Lexing.lexeme lexbuf in LITERAL (MHTMLABLEC (FONT_UFH,"-"," &minus; ",MO,str))}
5658 | literal_uf_op { let str = Lexing.lexeme lexbuf in LITERAL (MHTMLABLEC (FONT_UFH, str," "^str^" ",MO,str)) }
5759 | delimiter_uf_op { let str = Lexing.lexeme lexbuf in DELIMITER (MHTMLABLEC (FONT_UFH, str," "^str^" ",MO,str)) }
58 - | "\\" alpha + { Texutil.find (Lexing.lexeme lexbuf) }
5960 | "\\sqrt" space * "[" { FUN_AR1opt "\\sqrt" }
6061 | "\\xleftarrow" space * "[" { Texutil.tex_use_ams(); FUN_AR1opt "\\xleftarrow" }
6162 | "\\xrightarrow" space * "[" { Texutil.tex_use_ams(); FUN_AR1opt "\\xrightarrow" }
 63+ | "\\" (latex_function_names as name) space * "(" { LITERAL (HTMLABLEC(FONT_UFH,"\\" ^ name ^ "(", name ^ "(")) }
 64+ | "\\" (latex_function_names as name) space * "[" { LITERAL (HTMLABLEC(FONT_UFH,"\\" ^ name ^ "[", name ^ "[")) }
 65+ | "\\" (latex_function_names as name) space * "\\{" { LITERAL (HTMLABLEC(FONT_UFH,"\\" ^ name ^ "\\{", name ^ "{")) }
 66+ | "\\" (latex_function_names as name) space * { LITERAL (HTMLABLEC(FONT_UFH,"\\" ^ name ^ " ", name ^ "&nbsp;")) }
 67+ | "\\" (mediawiki_function_names as name) space * "(" { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "}(", name^ "("))) }
 68+ | "\\" (mediawiki_function_names as name) space * "[" { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "}[", name^ "["))) }
 69+ | "\\" (mediawiki_function_names as name) space * "\\{" { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "}\\{", name^ "{"))) }
 70+ | "\\" (mediawiki_function_names as name) space * { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "} ", name ^ "&nbsp;"))) }
 71+ | "\\" alpha + { Texutil.find (Lexing.lexeme lexbuf) }
6272 | "\\," { LITERAL (HTMLABLE (FONT_UF, "\\,","&nbsp;")) }
6373 | "\\ " { LITERAL (HTMLABLE (FONT_UF, "\\ ","&nbsp;")) }
6474 | "\\;" { LITERAL (HTMLABLE (FONT_UF, "\\;","&nbsp;")) }
Index: branches/REL1_18/extensions/Math/math/texutil.ml
@@ -20,7 +20,7 @@
2121 | TEX_DQN (a) -> "_{" ^ (render_tex a) ^ "}"
2222 | TEX_UQN (a) -> "^{" ^ (render_tex a) ^ "}"
2323 | TEX_LITERAL s -> tex_part s
24 - | TEX_FUN1 (f,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
 24+ | TEX_FUN1 (f,a) -> f ^ " " ^ (render_tex a)
2525 | TEX_FUN1hl (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
2626 | TEX_FUN1hf (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
2727 | TEX_DECLh (f,_,a) -> "{" ^ f ^ "{" ^ (mapjoin render_tex a) ^ "}}"
@@ -45,16 +45,22 @@
4646 let modules_nonascii = ref false
4747 let modules_encoding = ref UTF8
4848 let modules_color = ref false
 49+let modules_teubner = ref false
 50+let modules_euro = ref false
4951
5052 (* wrappers to easily set / reset module properties *)
5153 let tex_use_ams () = modules_ams := true
5254 let tex_use_nonascii () = modules_nonascii := true
5355 let tex_use_color () = modules_color := true
 56+let tex_use_teubner () = modules_teubner := true
 57+let tex_use_euro () = modules_euro := true
5458 let tex_mod_reset () = (
5559 modules_ams := false;
5660 modules_nonascii := false;
5761 modules_encoding := UTF8;
58 - modules_color := false
 62+ modules_color := false;
 63+ modules_teubner := false;
 64+ modules_euro := false;
5965 )
6066
6167 (* Return TeX fragment for one of the encodings in (UTF8,LATIN1,LATIN2) *)
@@ -68,6 +74,8 @@
6975 (if !modules_nonascii then get_encoding !modules_encoding else "") ^
7076 (if !modules_ams then "\\usepackage{amsmath}\n\\usepackage{amsfonts}\n\\usepackage{amssymb}\n" else "") ^
7177 (if !modules_color then "\\usepackage[dvips,usenames]{color}\n" else "") ^
 78+ (if !modules_teubner then "\\usepackage[greek]{babel}\n\\usepackage{teubner}\n" else "") ^
 79+ (if !modules_euro then "\\usepackage{eurosym}\n" else "") ^
7280 "\\usepackage{cancel}\n\\pagestyle{empty}\n\\begin{document}\n$$\n"
7381
7482 (* TeX fragment appended after the content *)
@@ -97,7 +105,7 @@
98106 | "\\epsilon" -> LITERAL (TEX_ONLY "\\epsilon ")
99107 | "\\Epsilon" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
100108 "\\mathrm{E}", "&Epsilon;")))
101 - | "\\varepsilon" -> LITERAL (TEX_ONLY "\\varepsilon ")
 109+ | "\\varepsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\varepsilon ", "&epsilon;"))
102110 | "\\zeta" -> LITERAL (HTMLABLEC (FONT_UF, "\\zeta ", "&zeta;"))
103111 | "\\Zeta" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
104112 "\\mathrm{Z}", "&Zeta;")))
@@ -142,9 +150,9 @@
143151 "\\mathrm{T}", "&Tau;")))
144152 | "\\upsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\upsilon ", "&upsilon;"))
145153 | "\\Upsilon" -> LITERAL (HTMLABLEC (FONT_UF, "\\Upsilon ", "&Upsilon;"))
146 - | "\\phi" -> LITERAL (TEX_ONLY "\\phi ")
 154+ | "\\phi" -> LITERAL (HTMLABLEC (FONT_UF, "\\phi ", "&#981;"))
147155 | "\\Phi" -> LITERAL (HTMLABLEC (FONT_UF, "\\Phi ", "&Phi;"))
148 - | "\\varphi" -> LITERAL (TEX_ONLY "\\varphi ")
 156+ | "\\varphi" -> LITERAL (HTMLABLEC (FONT_UF, "\\varphi ", "&phi;"))
149157 | "\\chi" -> LITERAL (HTMLABLEC (FONT_UF, "\\chi ", "&chi;"))
150158 | "\\Chi" -> (tex_use_ams (); LITERAL (HTMLABLEC (FONT_UF,
151159 "\\mathrm{X}", "&Chi;")))
@@ -240,16 +248,6 @@
241249 | "\\triangleleft" -> LITERAL (TEX_ONLY "\\triangleleft ")
242250 | "\\triangleright" -> LITERAL (TEX_ONLY "\\triangleright ")
243251 | "\\textvisiblespace" -> LITERAL (TEX_ONLY "\\textvisiblespace ")
244 - | "\\ker" -> LITERAL (HTMLABLEC(FONT_UFH,"\\ker ","ker"))
245 - | "\\lim" -> LITERAL (TEX_ONLY "\\lim ")
246 - | "\\limsup" -> LITERAL (TEX_ONLY "\\limsup ")
247 - | "\\liminf" -> LITERAL (TEX_ONLY "\\liminf ")
248 - | "\\sup" -> LITERAL (TEX_ONLY "\\sup ")
249 - | "\\Pr" -> LITERAL (TEX_ONLY "\\Pr ")
250 - | "\\hom" -> LITERAL (HTMLABLEC(FONT_UFH,"\\hom ","hom"))
251 - | "\\arg" -> LITERAL (HTMLABLEC(FONT_UFH,"\\arg ","arg"))
252 - | "\\dim" -> LITERAL (HTMLABLEC(FONT_UFH,"\\dim ","dim"))
253 - | "\\inf" -> LITERAL (TEX_ONLY "\\inf ")
254252 | "\\circ" -> LITERAL (TEX_ONLY "\\circ ")
255253 | "\\hbar" -> LITERAL (TEX_ONLY "\\hbar ")
256254 | "\\imath" -> LITERAL (TEX_ONLY "\\imath ")
@@ -270,32 +268,6 @@
271269 | "\\limits" -> LITERAL (TEX_ONLY "\\limits ")
272270 | "\\nolimits" -> LITERAL (TEX_ONLY "\\nolimits ")
273271 | "\\top" -> LITERAL (TEX_ONLY "\\top ")
274 - | "\\sin" -> LITERAL (HTMLABLEC(FONT_UFH,"\\sin ","sin"))
275 - | "\\cos" -> LITERAL (HTMLABLEC(FONT_UFH,"\\cos ","cos"))
276 - | "\\sinh" -> LITERAL (HTMLABLEC(FONT_UFH,"\\sinh ","sinh"))
277 - | "\\cosh" -> LITERAL (HTMLABLEC(FONT_UFH,"\\cosh ","cosh"))
278 - | "\\tan" -> LITERAL (HTMLABLEC(FONT_UFH,"\\tan ","tan"))
279 - | "\\tanh" -> LITERAL (HTMLABLEC(FONT_UFH,"\\tanh ","tanh"))
280 - | "\\sec" -> LITERAL (HTMLABLEC(FONT_UFH,"\\sec ","sec"))
281 - | "\\csc" -> LITERAL (HTMLABLEC(FONT_UFH,"\\csc ","csc"))
282 - | "\\arcsin" -> LITERAL (HTMLABLEC(FONT_UFH,"\\arcsin ","arcsin"))
283 - | "\\arctan" -> LITERAL (HTMLABLEC(FONT_UFH,"\\arctan ","arctan"))
284 - | "\\arccos" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arccos}}","arccos")))
285 - | "\\arccot" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arccot}}","arccot")))
286 - | "\\arcsec" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arcsec}}","arcsec")))
287 - | "\\arccsc" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{arccsc}}","arccsc")))
288 - | "\\sgn" -> (tex_use_ams (); LITERAL (HTMLABLEC(FONT_UFH,"\\mathop{\\mathrm{sgn}}","sgn")))
289 - | "\\cot" -> LITERAL (HTMLABLEC(FONT_UFH,"\\cot ","cot"))
290 - | "\\coth" -> LITERAL (HTMLABLEC(FONT_UFH,"\\coth ","coth"))
291 - | "\\log" -> LITERAL (HTMLABLEC(FONT_UFH,"\\log ", "log"))
292 - | "\\lg" -> LITERAL (HTMLABLEC(FONT_UFH,"\\lg ", "lg"))
293 - | "\\ln" -> LITERAL (HTMLABLEC(FONT_UFH,"\\ln ", "ln"))
294 - | "\\exp" -> LITERAL (HTMLABLEC(FONT_UFH,"\\exp ", "exp"))
295 - | "\\min" -> LITERAL (HTMLABLEC(FONT_UFH,"\\min ", "min"))
296 - | "\\max" -> LITERAL (HTMLABLEC(FONT_UFH,"\\max ", "max"))
297 - | "\\gcd" -> LITERAL (HTMLABLEC(FONT_UFH,"\\gcd ", "gcd"))
298 - | "\\deg" -> LITERAL (HTMLABLEC(FONT_UFH,"\\deg ", "deg"))
299 - | "\\det" -> LITERAL (HTMLABLEC(FONT_UFH,"\\det ", "det"))
300272 | "\\bullet" -> LITERAL (HTMLABLE (FONT_UFH, "\\bullet ", "&bull;"))
301273 | "\\bull" -> LITERAL (HTMLABLE (FONT_UFH, "\\bullet ", "&bull;"))
302274 | "\\angle" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\angle ", "&ang;")))
@@ -419,6 +391,22 @@
420392 | "\\asymp" -> LITERAL (TEX_ONLY "\\asymp ")
421393 | "\\doteq" -> LITERAL (TEX_ONLY "\\doteq ")
422394 | "\\parallel" -> LITERAL (TEX_ONLY "\\parallel ")
 395+ | "\\euro" -> (tex_use_euro (); LITERAL (HTMLABLEC (FONT_UF, "\\mbox{\\euro}", "&euro;")))
 396+ | "\\geneuro" -> (tex_use_euro (); LITERAL (TEX_ONLY "\\mbox{\\geneuro}"))
 397+ | "\\geneuronarrow" -> (tex_use_euro (); LITERAL (TEX_ONLY "\\mbox{\\geneuronarrow}"))
 398+ | "\\geneurowide" -> (tex_use_euro (); LITERAL (TEX_ONLY "\\mbox{\\geneurowide}"))
 399+ | "\\officialeuro" -> (tex_use_euro (); LITERAL (TEX_ONLY "\\mbox{\\officialeuro}"))
 400+ | "\\Coppa" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\Coppa}", "&#984;")))
 401+ | "\\coppa" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\coppa}", "&#985;")))
 402+ | "\\varcoppa" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\coppa}", "&#985;")))
 403+ | "\\Digamma" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\Digamma}", "&#988;")))
 404+ | "\\Koppa" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\Koppa}", "&#984;")))
 405+ | "\\koppa" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\koppa}", "&#991;")))
 406+ | "\\Sampi" -> (tex_use_teubner (); LITERAL (TEX_ONLY "\\mbox{\\Sampi}"))
 407+ | "\\sampi" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\sampi}", "&#993;")))
 408+ | "\\Stigma" -> (tex_use_teubner (); LITERAL (TEX_ONLY "\\mbox{\\Stigma}"))
 409+ | "\\stigma" -> (tex_use_teubner (); LITERAL (HTMLABLE (FONT_UF, "\\mbox{\\stigma}", "&#987;")))
 410+ | "\\varstigma" -> (tex_use_teubner (); LITERAL (TEX_ONLY "\\mbox{\\varstigma}"))
423411 | "\\implies" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\implies ", "&rArr;")))
424412 | "\\mod" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mod ", "mod")))
425413 | "\\Diamond" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\Diamond ", "&loz;")))
@@ -427,16 +415,17 @@
428416 | "\\dotsi" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotsi ", "&sdot;&sdot;&sdot;")))
429417 | "\\dotsm" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotsm ", "&sdot;&sdot;&sdot;")))
430418 | "\\dotso" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UF, "\\dotso ", "...")))
431 - | "\\reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "<b>R</b>")))
432 - | "\\Reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "<b>R</b>")))
433 - | "\\R" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "<b>R</b>")))
434 - | "\\C" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "<b>C</b>")))
435 - | "\\cnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "<b>C</b>")))
436 - | "\\Complex" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "<b>C</b>")))
437 - | "\\Z" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Z}", "<b>Z</b>")))
438 - | "\\natnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "<b>N</b>")))
439 - | "\\N" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "<b>N</b>")))
440 - | "\\Q" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Q}", "<b>Q</b>")))
 419+ | "\\reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "&#8477;")))
 420+ | "\\Reals" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "&#8477;")))
 421+ | "\\R" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{R}", "&#8477;")))
 422+ | "\\C" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "&#8450;")))
 423+ | "\\cnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "&#8450;")))
 424+ | "\\Complex" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{C}", "&#8450;")))
 425+ | "\\Z" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Z}", "&#8484;")))
 426+ | "\\natnums" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "&#8469;")))
 427+ | "\\N" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{N}", "&#8469;")))
 428+ | "\\Q" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{Q}", "&#8474;")))
 429+ | "\\H" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\mathbb{H}", "&#8461;")))
441430 | "\\lVert" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\lVert ", "||")))
442431 | "\\rVert" -> (tex_use_ams (); LITERAL (HTMLABLE (FONT_UFH,"\\rVert ", "||")))
443432 | "\\nmid" -> (tex_use_ams (); LITERAL (TEX_ONLY "\\nmid "))
@@ -492,6 +481,7 @@
493482 | "\\hat" -> FUN_AR1 "\\hat "
494483 | "\\hline" -> LITERAL (TEX_ONLY "\\hline ")
495484 | "\\vline" -> LITERAL (TEX_ONLY "\\vline ")
 485+ | "\\widetilde" -> LITERAL (TEX_ONLY "\\widetilde ")
496486 | "\\widehat" -> LITERAL (TEX_ONLY "\\widehat ")
497487 | "\\overline" -> LITERAL (TEX_ONLY "\\overline ")
498488 | "\\overbrace" -> LITERAL (TEX_ONLY "\\overbrace ")
Property changes on: branches/REL1_18/extensions/Math
___________________________________________________________________
Added: svn:mergeinfo
499489 Merged /trunk/extensions/Math:r97001-97002,97007,97014,97018,97034

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r97001* (bug 26380) Add support for \widetilde to <math>...brion21:02, 13 September 2011
r97002Followup r97001: fix for Math parser tests image URLs...brion21:03, 13 September 2011
r97007* (bug 27324) \euro support for <math>...brion21:48, 13 September 2011
r97014* (bug 27754) Archaic Greek letters for math...brion22:14, 13 September 2011
r97018* (bug 19547): Apostrophe / single quotes in math \text{...}...brion22:24, 13 September 2011
r97034* (bug 6722) Spacing fixes for math functions with/without parens...brion00:49, 14 September 2011

Status & tagging log