From: Jim Pryor Date: Wed, 1 Jun 2011 07:49:07 +0000 (-0400) Subject: Merge branch 'pryor' X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=commitdiff_plain;h=0cdf5aa302dbf55ee8aef2bc07774e325609abd2;hp=7d31b0876ebe8b8ea185f53b2486c70929df7ef4 Merge branch 'pryor' --- diff --git a/LaTeXMathML.js b/LaTeXMathML.js new file mode 100644 index 00000000..7282569a --- /dev/null +++ b/LaTeXMathML.js @@ -0,0 +1,2368 @@ +/* +LaTeXMathML.js +============== + +This file, in this form, is due to Douglas Woodall, June 2006. +It contains JavaScript functions to convert (most simple) LaTeX +math notation to Presentation MathML. It was obtained by +downloading the file ASCIIMathML.js from + http://www1.chapman.edu/~jipsen/mathml/asciimathdownload/ +and modifying it so that it carries out ONLY those conversions +that would be carried out in LaTeX. A description of the original +file, with examples, can be found at + www1.chapman.edu/~jipsen/mathml/asciimath.html + ASCIIMathML: Math on the web for everyone + +Here is the header notice from the original file: + +ASCIIMathML.js +============== +This file contains JavaScript functions to convert ASCII math notation +to Presentation MathML. The conversion is done while the (X)HTML page +loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet +Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/). +Just add the next line to your (X)HTML page with this file in the same folder: + +This is a convenient and inexpensive solution for authoring MathML. + +Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen +Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js +For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt +If you use it on a webpage, please send the URL to jipsen@chapman.edu + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License (at http://www.gnu.org/copyleft/gpl.html) +for more details. + +LaTeXMathML.js (ctd) +============== + +The instructions for use are the same as for the original +ASCIIMathML.js, except that of course the line you add to your +file should be + +Or use absolute path names if the file is not in the same folder +as your (X)HTML page. +*/ + +var checkForMathML = true; // check if browser can display MathML +var notifyIfNoMathML = true; // display note if no MathML capability +var alertIfNoMathML = false; // show alert box if no MathML capability +// was "red": +var mathcolor = ""; // change it to "" (to inherit) or any other color +// was "serif": +var mathfontfamily = ""; // change to "" to inherit (works in IE) + // or another family (e.g. "arial") +var showasciiformulaonhover = true; // helps students learn ASCIIMath +/* +// Commented out by DRW -- not now used -- see DELIMITERS (twice) near the end +var displaystyle = false; // puts limits above and below large operators +var decimalsign = "."; // change to "," if you like, beware of `(1,2)`! +var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters +var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$"; +var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1` + // for IE this works only in +//var separatetokens;// has been removed (email me if this is a problem) +*/ +var isIE = document.createElementNS==null; + +if (document.getElementById==null) + alert("This webpage requires a recent browser such as \nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer") + +// all further global variables start with "AM" + +function AMcreateElementXHTML(t) { + if (isIE) return document.createElement(t); + else return document.createElementNS("http://www.w3.org/1999/xhtml",t); +} + +function AMnoMathMLNote() { + var nd = AMcreateElementXHTML("h3"); + nd.setAttribute("align","center") + nd.appendChild(AMcreateElementXHTML("p")); + nd.appendChild(document.createTextNode("To view the ")); + var an = AMcreateElementXHTML("a"); + an.appendChild(document.createTextNode("LaTeXMathML")); + an.setAttribute("href","http://www.maths.nott.ac.uk/personal/drw/lm.html"); + nd.appendChild(an); + nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+")); + an = AMcreateElementXHTML("a"); + an.appendChild(document.createTextNode("MathPlayer")); + an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm"); + nd.appendChild(an); + nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox")); + nd.appendChild(AMcreateElementXHTML("p")); + return nd; +} + +function AMisMathMLavailable() { + if (navigator.appName.slice(0,8)=="Netscape") + if (navigator.appVersion.slice(0,1)>="5") return null; + else return AMnoMathMLNote(); + else if (navigator.appName.slice(0,9)=="Microsoft") + try { + var ActiveX = new ActiveXObject("MathPlayer.Factory.1"); + return null; + } catch (e) { + return AMnoMathMLNote(); + } + else return AMnoMathMLNote(); +} + +// character lists for Mozilla/Netscape fonts +var AMcal = ["\uD835\uDC9C", "\uD835\uDC9D", "\uD835\uDC9E", "\uD835\uDC9F", "\uD835\uDCA0", "\uD835\uDCA1", "\uD835\uDCA2", "\uD835\uDCA3", "\uD835\uDCA4", "\uD835\uDCA5", "\uD835\uDCA6", "\uD835\uDCA7", "\uD835\uDCA8", "\uD835\uDCA9", "\uD835\uDCAA", "\uD835\uDCAB", "\uD835\uDCAC", "\uD835\uDCAD", "\uD835\uDCAE", "\uD835\uDCAF", "\uD835\uDCB0", "\uD835\uDCB1", "\uD835\uDCB2", "\uD835\uDCB3", "\uD835\uDCB4", "\uD835\uDCB5"]; +var AMfrk = ["\uD835\uDD04", "\uD835\uDD05", "\uD835\uDD06", "\uD835\uDD07", "\uD835\uDD08", "\uD835\uDD09", "\uD835\uDD0A", "\uD835\uDD0B", "\uD835\uDD0C", "\uD835\uDD0D", "\uD835\uDD0E", "\uD835\uDD0F", "\uD835\uDD10", "\uD835\uDD11", "\uD835\uDD12", "\uD835\uDD13", "\uD835\uDD14", "\uD835\uDD15", "\uD835\uDD16", "\uD835\uDD17", "\uD835\uDD18", "\uD835\uDD19", "\uD835\uDD1A", "\uD835\uDD1B", "\uD835\uDD1C", "\uD835\uDD1D"]; +var AMbbb = ["\uD835\uDD38", "\uD835\uDD39", "\uD835\uDD3A", "\uD835\uDD3B", "\uD835\uDD3C", "\uD835\uDD3D", "\uD835\uDD3E", "\uD835\uDD3F", "\uD835\uDD40", "\uD835\uDD41", "\uD835\uDD42", "\uD835\uDD43", "\uD835\uDD44", "\uD835\uDD45", "\uD835\uDD46", "\uD835\uDD47", "\uD835\uDD48", "\uD835\uDD49", "\uD835\uDD4A", "\uD835\uDD4B", "\uD835\uDD4C", "\uD835\uDD4D", "\uD835\uDD4E", "\uD835\uDD4F", "\uD835\uDD50", "\uD835\uDD51"]; + +var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4, + RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8, + TEXT = 9, BIG = 10, LONG = 11, STRETCHY = 12, MATRIX = 13; // token types + +var AMsqrt = {input:"\\sqrt", tag:"msqrt", output:"sqrt", ttype:UNARY}, + AMnot = {input:"\\not", tag:"mnot", output:"not", ttype:UNARY}, + AMroot = {input:"\\root", tag:"mroot", output:"root", ttype:BINARY}, + AMfrac = {input:"\\frac", tag:"mfrac", output:"/", ttype:BINARY}, + AMover = {input:"\\stackrel", tag:"mover", output:"stackrel", ttype:BINARY}, + AMatop = {input:"\\atop", tag:"mfrac", output:"", ttype:INFIX}, + AMchoose = {input:"\\choose", tag:"mfrac", output:"", ttype:INFIX}, + AMsub = {input:"_", tag:"msub", output:"_", ttype:INFIX}, + AMsup = {input:"^", tag:"msup", output:"^", ttype:INFIX}, + AMtext = {input:"\\mathrm", tag:"mtext", output:"text", ttype:TEXT}, + AMmbox = {input:"\\mbox", tag:"mtext", output:"mbox", ttype:TEXT}; + +// Commented out by DRW to prevent 1/2 turning into a 2-line fraction +// AMdiv = {input:"/", tag:"mfrac", output:"/", ttype:INFIX}, +// Commented out by DRW so that " prints literally in equations +// AMquote = {input:"\"", tag:"mtext", output:"mbox", ttype:TEXT}; + +// List of negations obtained from http://frodo.elon.edu/tutorial/tutorial.pdf +var AMRelationNegations = { + "\u003C":"\u226E", "\u003E":"\u226F", "\u2264":"\u2270", "\u2265":"\u2271", + "\u003D":"\u2260", "\u2261":"\u2262", "\u227A":"\u2280", "\u227B":"\u2281", + "\u227C":"\u22E0", "\u227D":"\u22E1", "\u223C":"\u2241", "\u2243":"\u2244", + "\u2282":"\u2284", "\u2283":"\u2285", "\u2286":"\u2288", "\u2287":"\u2289", + "\u2248":"\u2249", "\u2245":"\u2247", "\u2291":"\u22E2", "\u2292":"\u22E3", + "\u224D":"\u226D" +} + +var AMsymbols = [ +//Greek letters +{input:"\\alpha", tag:"mi", output:"\u03B1", ttype:CONST}, +{input:"\\beta", tag:"mi", output:"\u03B2", ttype:CONST}, +{input:"\\gamma", tag:"mi", output:"\u03B3", ttype:CONST}, +{input:"\\delta", tag:"mi", output:"\u03B4", ttype:CONST}, +{input:"\\epsilon", tag:"mi", output:"\u03B5", ttype:CONST}, +{input:"\\varepsilon", tag:"mi", output:"\u025B", ttype:CONST}, +{input:"\\zeta", tag:"mi", output:"\u03B6", ttype:CONST}, +{input:"\\eta", tag:"mi", output:"\u03B7", ttype:CONST}, +{input:"\\theta", tag:"mi", output:"\u03B8", ttype:CONST}, +{input:"\\vartheta", tag:"mi", output:"\u03D1", ttype:CONST}, +{input:"\\iota", tag:"mi", output:"\u03B9", ttype:CONST}, +{input:"\\kappa", tag:"mi", output:"\u03BA", ttype:CONST}, +{input:"\\lambda", tag:"mi", output:"\u03BB", ttype:CONST}, +{input:"\\mu", tag:"mi", output:"\u03BC", ttype:CONST}, +{input:"\\nu", tag:"mi", output:"\u03BD", ttype:CONST}, +{input:"\\xi", tag:"mi", output:"\u03BE", ttype:CONST}, +{input:"\\pi", tag:"mi", output:"\u03C0", ttype:CONST}, +{input:"\\varpi", tag:"mi", output:"\u03D6", ttype:CONST}, +{input:"\\rho", tag:"mi", output:"\u03C1", ttype:CONST}, +{input:"\\varrho", tag:"mi", output:"\u03F1", ttype:CONST}, +{input:"\\varsigma", tag:"mi", output:"\u03C2", ttype:CONST}, +{input:"\\sigma", tag:"mi", output:"\u03C3", ttype:CONST}, +{input:"\\tau", tag:"mi", output:"\u03C4", ttype:CONST}, +{input:"\\upsilon", tag:"mi", output:"\u03C5", ttype:CONST}, +{input:"\\phi", tag:"mi", output:"\u03C6", ttype:CONST}, +{input:"\\varphi", tag:"mi", output:"\u03D5", ttype:CONST}, +{input:"\\chi", tag:"mi", output:"\u03C7", ttype:CONST}, +{input:"\\psi", tag:"mi", output:"\u03C8", ttype:CONST}, +{input:"\\omega", tag:"mi", output:"\u03C9", ttype:CONST}, +{input:"\\Gamma", tag:"mo", output:"\u0393", ttype:CONST}, +{input:"\\Delta", tag:"mo", output:"\u0394", ttype:CONST}, +{input:"\\Theta", tag:"mo", output:"\u0398", ttype:CONST}, +{input:"\\Lambda", tag:"mo", output:"\u039B", ttype:CONST}, +{input:"\\Xi", tag:"mo", output:"\u039E", ttype:CONST}, +{input:"\\Pi", tag:"mo", output:"\u03A0", ttype:CONST}, +{input:"\\Sigma", tag:"mo", output:"\u03A3", ttype:CONST}, +{input:"\\Upsilon", tag:"mo", output:"\u03A5", ttype:CONST}, +{input:"\\Phi", tag:"mo", output:"\u03A6", ttype:CONST}, +{input:"\\Psi", tag:"mo", output:"\u03A8", ttype:CONST}, +{input:"\\Omega", tag:"mo", output:"\u03A9", ttype:CONST}, + +//fractions +{input:"\\frac12", tag:"mo", output:"\u00BD", ttype:CONST}, +{input:"\\frac14", tag:"mo", output:"\u00BC", ttype:CONST}, +{input:"\\frac34", tag:"mo", output:"\u00BE", ttype:CONST}, +{input:"\\frac13", tag:"mo", output:"\u2153", ttype:CONST}, +{input:"\\frac23", tag:"mo", output:"\u2154", ttype:CONST}, +{input:"\\frac15", tag:"mo", output:"\u2155", ttype:CONST}, +{input:"\\frac25", tag:"mo", output:"\u2156", ttype:CONST}, +{input:"\\frac35", tag:"mo", output:"\u2157", ttype:CONST}, +{input:"\\frac45", tag:"mo", output:"\u2158", ttype:CONST}, +{input:"\\frac16", tag:"mo", output:"\u2159", ttype:CONST}, +{input:"\\frac56", tag:"mo", output:"\u215A", ttype:CONST}, +{input:"\\frac18", tag:"mo", output:"\u215B", ttype:CONST}, +{input:"\\frac38", tag:"mo", output:"\u215C", ttype:CONST}, +{input:"\\frac58", tag:"mo", output:"\u215D", ttype:CONST}, +{input:"\\frac78", tag:"mo", output:"\u215E", ttype:CONST}, + +//binary operation symbols +{input:"\\pm", tag:"mo", output:"\u00B1", ttype:CONST}, +{input:"\\mp", tag:"mo", output:"\u2213", ttype:CONST}, +{input:"\\triangleleft",tag:"mo", output:"\u22B2", ttype:CONST}, +{input:"\\triangleright",tag:"mo",output:"\u22B3", ttype:CONST}, +{input:"\\cdot", tag:"mo", output:"\u22C5", ttype:CONST}, +{input:"\\star", tag:"mo", output:"\u22C6", ttype:CONST}, +{input:"\\ast", tag:"mo", output:"\u002A", ttype:CONST}, +{input:"\\times", tag:"mo", output:"\u00D7", ttype:CONST}, +{input:"\\div", tag:"mo", output:"\u00F7", ttype:CONST}, +{input:"\\circ", tag:"mo", output:"\u2218", ttype:CONST}, +//{input:"\\bullet", tag:"mo", output:"\u2219", ttype:CONST}, +{input:"\\bullet", tag:"mo", output:"\u2022", ttype:CONST}, +{input:"\\oplus", tag:"mo", output:"\u2295", ttype:CONST}, +{input:"\\ominus", tag:"mo", output:"\u2296", ttype:CONST}, +{input:"\\otimes", tag:"mo", output:"\u2297", ttype:CONST}, +{input:"\\bigcirc", tag:"mo", output:"\u25CB", ttype:CONST}, +{input:"\\oslash", tag:"mo", output:"\u2298", ttype:CONST}, +{input:"\\odot", tag:"mo", output:"\u2299", ttype:CONST}, +{input:"\\land", tag:"mo", output:"\u2227", ttype:CONST}, +{input:"\\wedge", tag:"mo", output:"\u2227", ttype:CONST}, +{input:"\\lor", tag:"mo", output:"\u2228", ttype:CONST}, +{input:"\\vee", tag:"mo", output:"\u2228", ttype:CONST}, +{input:"\\cap", tag:"mo", output:"\u2229", ttype:CONST}, +{input:"\\cup", tag:"mo", output:"\u222A", ttype:CONST}, +{input:"\\sqcap", tag:"mo", output:"\u2293", ttype:CONST}, +{input:"\\sqcup", tag:"mo", output:"\u2294", ttype:CONST}, +{input:"\\uplus", tag:"mo", output:"\u228E", ttype:CONST}, +{input:"\\amalg", tag:"mo", output:"\u2210", ttype:CONST}, +{input:"\\bigtriangleup",tag:"mo",output:"\u25B3", ttype:CONST}, +{input:"\\bigtriangledown",tag:"mo",output:"\u25BD", ttype:CONST}, +{input:"\\dag", tag:"mo", output:"\u2020", ttype:CONST}, +{input:"\\dagger", tag:"mo", output:"\u2020", ttype:CONST}, +{input:"\\ddag", tag:"mo", output:"\u2021", ttype:CONST}, +{input:"\\ddagger", tag:"mo", output:"\u2021", ttype:CONST}, +{input:"\\lhd", tag:"mo", output:"\u22B2", ttype:CONST}, +{input:"\\rhd", tag:"mo", output:"\u22B3", ttype:CONST}, +{input:"\\unlhd", tag:"mo", output:"\u22B4", ttype:CONST}, +{input:"\\unrhd", tag:"mo", output:"\u22B5", ttype:CONST}, + + +//BIG Operators +{input:"\\sum", tag:"mo", output:"\u2211", ttype:UNDEROVER}, +{input:"\\prod", tag:"mo", output:"\u220F", ttype:UNDEROVER}, +{input:"\\bigcap", tag:"mo", output:"\u22C2", ttype:UNDEROVER}, +{input:"\\bigcup", tag:"mo", output:"\u22C3", ttype:UNDEROVER}, +{input:"\\bigwedge", tag:"mo", output:"\u22C0", ttype:UNDEROVER}, +{input:"\\bigvee", tag:"mo", output:"\u22C1", ttype:UNDEROVER}, +{input:"\\bigsqcap", tag:"mo", output:"\u2A05", ttype:UNDEROVER}, +{input:"\\bigsqcup", tag:"mo", output:"\u2A06", ttype:UNDEROVER}, +{input:"\\coprod", tag:"mo", output:"\u2210", ttype:UNDEROVER}, +{input:"\\bigoplus", tag:"mo", output:"\u2A01", ttype:UNDEROVER}, +{input:"\\bigotimes", tag:"mo", output:"\u2A02", ttype:UNDEROVER}, +{input:"\\bigodot", tag:"mo", output:"\u2A00", ttype:UNDEROVER}, +{input:"\\biguplus", tag:"mo", output:"\u2A04", ttype:UNDEROVER}, +{input:"\\int", tag:"mo", output:"\u222B", ttype:CONST}, +{input:"\\oint", tag:"mo", output:"\u222E", ttype:CONST}, + +//binary relation symbols +{input:":=", tag:"mo", output:":=", ttype:CONST}, +{input:"\\lt", tag:"mo", output:"<", ttype:CONST}, +{input:"\\gt", tag:"mo", output:">", ttype:CONST}, +{input:"\\ne", tag:"mo", output:"\u2260", ttype:CONST}, +{input:"\\neq", tag:"mo", output:"\u2260", ttype:CONST}, +{input:"\\le", tag:"mo", output:"\u2264", ttype:CONST}, +{input:"\\leq", tag:"mo", output:"\u2264", ttype:CONST}, +{input:"\\leqslant", tag:"mo", output:"\u2264", ttype:CONST}, +{input:"\\ge", tag:"mo", output:"\u2265", ttype:CONST}, +{input:"\\geq", tag:"mo", output:"\u2265", ttype:CONST}, +{input:"\\geqslant", tag:"mo", output:"\u2265", ttype:CONST}, +{input:"\\equiv", tag:"mo", output:"\u2261", ttype:CONST}, +{input:"\\ll", tag:"mo", output:"\u226A", ttype:CONST}, +{input:"\\gg", tag:"mo", output:"\u226B", ttype:CONST}, +{input:"\\doteq", tag:"mo", output:"\u2250", ttype:CONST}, +{input:"\\prec", tag:"mo", output:"\u227A", ttype:CONST}, +{input:"\\succ", tag:"mo", output:"\u227B", ttype:CONST}, +{input:"\\preceq", tag:"mo", output:"\u227C", ttype:CONST}, +{input:"\\succeq", tag:"mo", output:"\u227D", ttype:CONST}, +{input:"\\subset", tag:"mo", output:"\u2282", ttype:CONST}, +{input:"\\supset", tag:"mo", output:"\u2283", ttype:CONST}, +{input:"\\subseteq", tag:"mo", output:"\u2286", ttype:CONST}, +{input:"\\supseteq", tag:"mo", output:"\u2287", ttype:CONST}, +{input:"\\subsetneq", tag:"mo", output:"\u228A", ttype:CONST}, +{input:"\\supsetneq", tag:"mo", output:"\u228B", ttype:CONST}, +{input:"\\sqsubset", tag:"mo", output:"\u228F", ttype:CONST}, +{input:"\\sqsupset", tag:"mo", output:"\u2290", ttype:CONST}, +{input:"\\sqsubseteq", tag:"mo", output:"\u2291", ttype:CONST}, +{input:"\\sqsupseteq", tag:"mo", output:"\u2292", ttype:CONST}, +{input:"\\sim", tag:"mo", output:"\u223C", ttype:CONST}, +{input:"\\simeq", tag:"mo", output:"\u2243", ttype:CONST}, +{input:"\\approx", tag:"mo", output:"\u2248", ttype:CONST}, +{input:"\\cong", tag:"mo", output:"\u2245", ttype:CONST}, +{input:"\\Join", tag:"mo", output:"\u22C8", ttype:CONST}, +{input:"\\bowtie", tag:"mo", output:"\u22C8", ttype:CONST}, +{input:"\\in", tag:"mo", output:"\u2208", ttype:CONST}, +{input:"\\ni", tag:"mo", output:"\u220B", ttype:CONST}, +{input:"\\owns", tag:"mo", output:"\u220B", ttype:CONST}, +{input:"\\propto", tag:"mo", output:"\u221D", ttype:CONST}, +{input:"\\vdash", tag:"mo", output:"\u22A2", ttype:CONST}, +{input:"\\dashv", tag:"mo", output:"\u22A3", ttype:CONST}, +{input:"\\models", tag:"mo", output:"\u22A8", ttype:CONST}, +{input:"\\perp", tag:"mo", output:"\u22A5", ttype:CONST}, +{input:"\\smile", tag:"mo", output:"\u2323", ttype:CONST}, +{input:"\\frown", tag:"mo", output:"\u2322", ttype:CONST}, +{input:"\\asymp", tag:"mo", output:"\u224D", ttype:CONST}, +{input:"\\notin", tag:"mo", output:"\u2209", ttype:CONST}, + +//matrices +{input:"\\begin{eqnarray}", output:"X", ttype:MATRIX, invisible:true}, +{input:"\\begin{array}", output:"X", ttype:MATRIX, invisible:true}, +{input:"\\\\", output:"}&{", ttype:DEFINITION}, +{input:"\\end{eqnarray}", output:"}}", ttype:DEFINITION}, +{input:"\\end{array}", output:"}}", ttype:DEFINITION}, + +//grouping and literal brackets -- ieval is for IE +{input:"\\big", tag:"mo", output:"X", atval:"1.2", ieval:"2.2", ttype:BIG}, +{input:"\\Big", tag:"mo", output:"X", atval:"1.6", ieval:"2.6", ttype:BIG}, +{input:"\\bigg", tag:"mo", output:"X", atval:"2.2", ieval:"3.2", ttype:BIG}, +{input:"\\Bigg", tag:"mo", output:"X", atval:"2.9", ieval:"3.9", ttype:BIG}, +{input:"\\left", tag:"mo", output:"X", ttype:LEFTBRACKET}, +{input:"\\right", tag:"mo", output:"X", ttype:RIGHTBRACKET}, +{input:"{", output:"{", ttype:LEFTBRACKET, invisible:true}, +{input:"}", output:"}", ttype:RIGHTBRACKET, invisible:true}, + +{input:"(", tag:"mo", output:"(", atval:"1", ttype:STRETCHY}, +{input:"[", tag:"mo", output:"[", atval:"1", ttype:STRETCHY}, +{input:"\\lbrack", tag:"mo", output:"[", atval:"1", ttype:STRETCHY}, +{input:"\\{", tag:"mo", output:"{", atval:"1", ttype:STRETCHY}, +{input:"\\lbrace", tag:"mo", output:"{", atval:"1", ttype:STRETCHY}, +{input:"\\langle", tag:"mo", output:"\u2329", atval:"1", ttype:STRETCHY}, +{input:"\\lfloor", tag:"mo", output:"\u230A", atval:"1", ttype:STRETCHY}, +{input:"\\lceil", tag:"mo", output:"\u2308", atval:"1", ttype:STRETCHY}, + +// rtag:"mi" causes space to be inserted before a following sin, cos, etc. +// (see function AMparseExpr() ) +{input:")", tag:"mo",output:")", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"]", tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rbrack",tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\}", tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rbrace",tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rangle",tag:"mo",output:"\u232A", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rfloor",tag:"mo",output:"\u230B", rtag:"mi",atval:"1",ttype:STRETCHY}, +{input:"\\rceil", tag:"mo",output:"\u2309", rtag:"mi",atval:"1",ttype:STRETCHY}, + +// "|", "\\|", "\\vert" and "\\Vert" modified later: lspace = rspace = 0em +{input:"|", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY}, +{input:"\\|", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY}, +{input:"\\vert", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY}, +{input:"\\Vert", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY}, +{input:"\\mid", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY}, +{input:"\\parallel", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY}, +{input:"/", tag:"mo", output:"/", atval:"1.01", ttype:STRETCHY}, +{input:"\\backslash", tag:"mo", output:"\u2216", atval:"1", ttype:STRETCHY}, +{input:"\\setminus", tag:"mo", output:"\\", ttype:CONST}, + +//miscellaneous symbols +{input:"\\!", tag:"mspace", atname:"width", atval:"-0.167em", ttype:SPACE}, +{input:"\\,", tag:"mspace", atname:"width", atval:"0.167em", ttype:SPACE}, +{input:"\\>", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE}, +{input:"\\:", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE}, +{input:"\\;", tag:"mspace", atname:"width", atval:"0.278em", ttype:SPACE}, +{input:"~", tag:"mspace", atname:"width", atval:"0.333em", ttype:SPACE}, +{input:"\\quad", tag:"mspace", atname:"width", atval:"1em", ttype:SPACE}, +{input:"\\qquad", tag:"mspace", atname:"width", atval:"2em", ttype:SPACE}, +//{input:"{}", tag:"mo", output:"\u200B", ttype:CONST}, // zero-width +{input:"\\prime", tag:"mo", output:"\u2032", ttype:CONST}, +{input:"'", tag:"mo", output:"\u02B9", ttype:CONST}, +{input:"''", tag:"mo", output:"\u02BA", ttype:CONST}, +{input:"'''", tag:"mo", output:"\u2034", ttype:CONST}, +{input:"''''", tag:"mo", output:"\u2057", ttype:CONST}, +{input:"\\ldots", tag:"mo", output:"\u2026", ttype:CONST}, +{input:"\\cdots", tag:"mo", output:"\u22EF", ttype:CONST}, +{input:"\\vdots", tag:"mo", output:"\u22EE", ttype:CONST}, +{input:"\\ddots", tag:"mo", output:"\u22F1", ttype:CONST}, +{input:"\\forall", tag:"mo", output:"\u2200", ttype:CONST}, +{input:"\\exists", tag:"mo", output:"\u2203", ttype:CONST}, +{input:"\\Re", tag:"mo", output:"\u211C", ttype:CONST}, +{input:"\\Im", tag:"mo", output:"\u2111", ttype:CONST}, +{input:"\\aleph", tag:"mo", output:"\u2135", ttype:CONST}, +{input:"\\hbar", tag:"mo", output:"\u210F", ttype:CONST}, +{input:"\\ell", tag:"mo", output:"\u2113", ttype:CONST}, +{input:"\\wp", tag:"mo", output:"\u2118", ttype:CONST}, +{input:"\\emptyset", tag:"mo", output:"\u2205", ttype:CONST}, +{input:"\\infty", tag:"mo", output:"\u221E", ttype:CONST}, +{input:"\\surd", tag:"mo", output:"\\sqrt{}", ttype:DEFINITION}, +{input:"\\partial", tag:"mo", output:"\u2202", ttype:CONST}, +{input:"\\nabla", tag:"mo", output:"\u2207", ttype:CONST}, +{input:"\\triangle", tag:"mo", output:"\u25B3", ttype:CONST}, +{input:"\\therefore", tag:"mo", output:"\u2234", ttype:CONST}, +{input:"\\angle", tag:"mo", output:"\u2220", ttype:CONST}, +//{input:"\\\\ ", tag:"mo", output:"\u00A0", ttype:CONST}, +{input:"\\diamond", tag:"mo", output:"\u22C4", ttype:CONST}, +//{input:"\\Diamond", tag:"mo", output:"\u25CA", ttype:CONST}, +{input:"\\Diamond", tag:"mo", output:"\u25C7", ttype:CONST}, +{input:"\\neg", tag:"mo", output:"\u00AC", ttype:CONST}, +{input:"\\lnot", tag:"mo", output:"\u00AC", ttype:CONST}, +{input:"\\bot", tag:"mo", output:"\u22A5", ttype:CONST}, +{input:"\\top", tag:"mo", output:"\u22A4", ttype:CONST}, +{input:"\\square", tag:"mo", output:"\u25AB", ttype:CONST}, +{input:"\\Box", tag:"mo", output:"\u25A1", ttype:CONST}, +{input:"\\wr", tag:"mo", output:"\u2240", ttype:CONST}, + +//standard functions +//Note UNDEROVER *must* have tag:"mo" to work properly +{input:"\\arccos", tag:"mi", output:"arccos", ttype:UNARY, func:true}, +{input:"\\arcsin", tag:"mi", output:"arcsin", ttype:UNARY, func:true}, +{input:"\\arctan", tag:"mi", output:"arctan", ttype:UNARY, func:true}, +{input:"\\arg", tag:"mi", output:"arg", ttype:UNARY, func:true}, +{input:"\\cos", tag:"mi", output:"cos", ttype:UNARY, func:true}, +{input:"\\cosh", tag:"mi", output:"cosh", ttype:UNARY, func:true}, +{input:"\\cot", tag:"mi", output:"cot", ttype:UNARY, func:true}, +{input:"\\coth", tag:"mi", output:"coth", ttype:UNARY, func:true}, +{input:"\\csc", tag:"mi", output:"csc", ttype:UNARY, func:true}, +{input:"\\deg", tag:"mi", output:"deg", ttype:UNARY, func:true}, +{input:"\\det", tag:"mi", output:"det", ttype:UNARY, func:true}, +{input:"\\dim", tag:"mi", output:"dim", ttype:UNARY, func:true}, //CONST? +{input:"\\exp", tag:"mi", output:"exp", ttype:UNARY, func:true}, +{input:"\\gcd", tag:"mi", output:"gcd", ttype:UNARY, func:true}, //CONST? +{input:"\\hom", tag:"mi", output:"hom", ttype:UNARY, func:true}, +{input:"\\inf", tag:"mo", output:"inf", ttype:UNDEROVER}, +{input:"\\ker", tag:"mi", output:"ker", ttype:UNARY, func:true}, +{input:"\\lg", tag:"mi", output:"lg", ttype:UNARY, func:true}, +{input:"\\lim", tag:"mo", output:"lim", ttype:UNDEROVER}, +{input:"\\liminf", tag:"mo", output:"liminf", ttype:UNDEROVER}, +{input:"\\limsup", tag:"mo", output:"limsup", ttype:UNDEROVER}, +{input:"\\ln", tag:"mi", output:"ln", ttype:UNARY, func:true}, +{input:"\\log", tag:"mi", output:"log", ttype:UNARY, func:true}, +{input:"\\max", tag:"mo", output:"max", ttype:UNDEROVER}, +{input:"\\min", tag:"mo", output:"min", ttype:UNDEROVER}, +{input:"\\Pr", tag:"mi", output:"Pr", ttype:UNARY, func:true}, +{input:"\\sec", tag:"mi", output:"sec", ttype:UNARY, func:true}, +{input:"\\sin", tag:"mi", output:"sin", ttype:UNARY, func:true}, +{input:"\\sinh", tag:"mi", output:"sinh", ttype:UNARY, func:true}, +{input:"\\sup", tag:"mo", output:"sup", ttype:UNDEROVER}, +{input:"\\tan", tag:"mi", output:"tan", ttype:UNARY, func:true}, +{input:"\\tanh", tag:"mi", output:"tanh", ttype:UNARY, func:true}, + +//arrows +{input:"\\gets", tag:"mo", output:"\u2190", ttype:CONST}, +{input:"\\leftarrow", tag:"mo", output:"\u2190", ttype:CONST}, +{input:"\\to", tag:"mo", output:"\u2192", ttype:CONST}, +{input:"\\rightarrow", tag:"mo", output:"\u2192", ttype:CONST}, +{input:"\\leftrightarrow", tag:"mo", output:"\u2194", ttype:CONST}, +{input:"\\uparrow", tag:"mo", output:"\u2191", ttype:CONST}, +{input:"\\downarrow", tag:"mo", output:"\u2193", ttype:CONST}, +{input:"\\updownarrow", tag:"mo", output:"\u2195", ttype:CONST}, +{input:"\\Leftarrow", tag:"mo", output:"\u21D0", ttype:CONST}, +{input:"\\Rightarrow", tag:"mo", output:"\u21D2", ttype:CONST}, +{input:"\\Leftrightarrow", tag:"mo", output:"\u21D4", ttype:CONST}, +{input:"\\iff", tag:"mo", output:"~\\Longleftrightarrow~", ttype:DEFINITION}, +{input:"\\Uparrow", tag:"mo", output:"\u21D1", ttype:CONST}, +{input:"\\Downarrow", tag:"mo", output:"\u21D3", ttype:CONST}, +{input:"\\Updownarrow", tag:"mo", output:"\u21D5", ttype:CONST}, +{input:"\\mapsto", tag:"mo", output:"\u21A6", ttype:CONST}, +{input:"\\longleftarrow", tag:"mo", output:"\u2190", ttype:LONG}, +{input:"\\longrightarrow", tag:"mo", output:"\u2192", ttype:LONG}, +{input:"\\longleftrightarrow", tag:"mo", output:"\u2194", ttype:LONG}, +{input:"\\Longleftarrow", tag:"mo", output:"\u21D0", ttype:LONG}, +{input:"\\Longrightarrow", tag:"mo", output:"\u21D2", ttype:LONG}, +{input:"\\Longleftrightarrow", tag:"mo", output:"\u21D4", ttype:LONG}, +{input:"\\longmapsto", tag:"mo", output:"\u21A6", ttype:CONST}, + // disaster if LONG + +//commands with argument +AMsqrt, AMnot, AMroot, AMfrac, AMover, AMsub, AMsup, AMtext, AMmbox, AMatop, AMchoose, + +//AMdiv, AMquote, + +//diacritical marks +{input:"\\acute", tag:"mover", output:"\u00B4", ttype:UNARY, acc:true}, +//{input:"\\acute", tag:"mover", output:"\u0317", ttype:UNARY, acc:true}, +//{input:"\\acute", tag:"mover", output:"\u0301", ttype:UNARY, acc:true}, +//{input:"\\grave", tag:"mover", output:"\u0300", ttype:UNARY, acc:true}, +//{input:"\\grave", tag:"mover", output:"\u0316", ttype:UNARY, acc:true}, +{input:"\\grave", tag:"mover", output:"\u0060", ttype:UNARY, acc:true}, +{input:"\\breve", tag:"mover", output:"\u02D8", ttype:UNARY, acc:true}, +{input:"\\check", tag:"mover", output:"\u02C7", ttype:UNARY, acc:true}, +{input:"\\dot", tag:"mover", output:".", ttype:UNARY, acc:true}, +{input:"\\ddot", tag:"mover", output:"..", ttype:UNARY, acc:true}, +//{input:"\\ddot", tag:"mover", output:"\u00A8", ttype:UNARY, acc:true}, +{input:"\\mathring", tag:"mover", output:"\u00B0", ttype:UNARY, acc:true}, +{input:"\\vec", tag:"mover", output:"\u20D7", ttype:UNARY, acc:true}, +{input:"\\overrightarrow",tag:"mover",output:"\u20D7", ttype:UNARY, acc:true}, +{input:"\\overleftarrow",tag:"mover", output:"\u20D6", ttype:UNARY, acc:true}, +{input:"\\hat", tag:"mover", output:"\u005E", ttype:UNARY, acc:true}, +{input:"\\widehat", tag:"mover", output:"\u0302", ttype:UNARY, acc:true}, +{input:"\\tilde", tag:"mover", output:"~", ttype:UNARY, acc:true}, +//{input:"\\tilde", tag:"mover", output:"\u0303", ttype:UNARY, acc:true}, +{input:"\\widetilde", tag:"mover", output:"\u02DC", ttype:UNARY, acc:true}, +{input:"\\bar", tag:"mover", output:"\u203E", ttype:UNARY, acc:true}, +{input:"\\overbrace", tag:"mover", output:"\uFE37", ttype:UNARY, acc:true}, //Changed unicode overbrace +{input:"\\overbracket", tag:"mover", output:"\u23B4", ttype:UNARY, acc:true}, //old overbrace = overbracket +{input:"\\overline", tag:"mover", output:"\u00AF", ttype:UNARY, acc:true}, +{input:"\\underbrace", tag:"munder", output:"\uFE38", ttype:UNARY, acc:true}, //Changed unicode underbrace +{input:"\\underbracket",tag:"munder", output:"\u23B5", ttype:UNARY, acc:true}, //old underbrace = underbracket +{input:"\\underline", tag:"munder", output:"\u00AF", ttype:UNARY, acc:true}, +//{input:"underline", tag:"munder", output:"\u0332", ttype:UNARY, acc:true}, + +//typestyles and fonts +{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true", ttype:UNARY}, +{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false", ttype:UNARY}, +{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1", ttype:UNARY}, +{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2", ttype:UNARY}, +{input:"\\textrm", tag:"mstyle", output:"\\mathrm", ttype: DEFINITION}, +{input:"\\mathbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY}, +{input:"\\textbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY}, +{input:"\\mathit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY}, +{input:"\\textit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY}, +{input:"\\mathtt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY}, +{input:"\\texttt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY}, +{input:"\\mathsf", tag:"mstyle", atname:"mathvariant", atval:"sans-serif", ttype:UNARY}, +{input:"\\mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", ttype:UNARY, codes:AMbbb}, +{input:"\\mathcal",tag:"mstyle", atname:"mathvariant", atval:"script", ttype:UNARY, codes:AMcal}, +{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant", atval:"fraktur",ttype:UNARY, codes:AMfrk}, +{input:"\\textcolor",tag:"mstyle",atname:"mathvariant", atval:"mathcolor", ttype:BINARY}, +{input:"\\colorbox",tag:"mstyle",atname:"mathvariant", atval:"background", ttype:BINARY} +]; + +function compareNames(s1,s2) { + if (s1.input > s2.input) return 1 + else return -1; +} + +var AMnames = []; //list of input symbols + +function AMinitSymbols() { + AMsymbols.sort(compareNames); + for (i=0; i=n where str appears or would be inserted +// assumes arr is sorted + if (n==0) { + var h,m; + n = -1; + h = arr.length; + while (n+1> 1; + if (arr[m]=str +} + +function AMgetSymbol(str) { +//return maximal initial substring of str that appears in names +//return null if there is none + var k = 0; //new pos + var j = 0; //old pos + var mk; //match pos + var st; + var tagst; + var match = ""; + var more = true; + for (var i=1; i<=str.length && more; i++) { + st = str.slice(0,i); //initial substring of length i + j = k; + k = AMposition(AMnames, st, j); + if (k=AMnames[k]; + } + AMpreviousSymbol=AMcurrentSymbol; + if (match!=""){ + AMcurrentSymbol=AMsymbols[mk].ttype; + return AMsymbols[mk]; + } + AMcurrentSymbol=CONST; + k = 1; + st = str.slice(0,1); //take 1 character + if ("0"<=st && st<="9") tagst = "mn"; + else tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi"); +/* +// Commented out by DRW (not fully understood, but probably to do with +// use of "/" as an INFIX version of "\\frac", which we don't want): +//} +//if (st=="-" && AMpreviousSymbol==INFIX) { +// AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse +// return {input:st, tag:tagst, output:st, ttype:UNARY, func:true}; +//} +*/ + return {input:st, tag:tagst, output:st, ttype:CONST}; +} + + +/*Parsing ASCII math expressions with the following grammar +v ::= [A-Za-z] | greek letters | numbers | other constant symbols +u ::= sqrt | text | bb | other unary symbols for font commands +b ::= frac | root | stackrel binary symbols +l ::= { | \left left brackets +r ::= } | \right right brackets +S ::= v | lEr | uS | bSS Simple expression +I ::= S_S | S^S | S_S^S | S Intermediate expression +E ::= IE | I/I Expression +Each terminal symbol is translated into a corresponding mathml node.*/ + +var AMpreviousSymbol,AMcurrentSymbol; + +function AMparseSexpr(str) { //parses str and returns [node,tailstr,(node)tag] + var symbol, node, result, result2, i, st,// rightvert = false, + newFrag = document.createDocumentFragment(); + str = AMremoveCharsAndBlanks(str,0); + symbol = AMgetSymbol(str); //either a token or a bracket or empty + if (symbol == null || symbol.ttype == RIGHTBRACKET) + return [null,str,null]; + if (symbol.ttype == DEFINITION) { + str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length); + symbol = AMgetSymbol(str); + if (symbol == null || symbol.ttype == RIGHTBRACKET) + return [null,str,null]; + } + str = AMremoveCharsAndBlanks(str,symbol.input.length); + switch (symbol.ttype) { + case SPACE: + node = AMcreateElementMathML(symbol.tag); + node.setAttribute(symbol.atname,symbol.atval); + return [node,str,symbol.tag]; + case UNDEROVER: + if (isIE) { + if (symbol.input.substr(0,4) == "\\big") { // botch for missing symbols + str = "\\"+symbol.input.substr(4)+str; // make \bigcup = \cup etc. + symbol = AMgetSymbol(str); + symbol.ttype = UNDEROVER; + str = AMremoveCharsAndBlanks(str,symbol.input.length); + } + } + return [AMcreateMmlNode(symbol.tag, + document.createTextNode(symbol.output)),str,symbol.tag]; + case CONST: + var output = symbol.output; + if (isIE) { + if (symbol.input == "'") + output = "\u2032"; + else if (symbol.input == "''") + output = "\u2033"; + else if (symbol.input == "'''") + output = "\u2033\u2032"; + else if (symbol.input == "''''") + output = "\u2033\u2033"; + else if (symbol.input == "\\square") + output = "\u25A1"; // same as \Box + else if (symbol.input.substr(0,5) == "\\frac") { + // botch for missing fractions + var denom = symbol.input.substr(6,1); + if (denom == "5" || denom == "6") { + str = symbol.input.replace(/\\frac/,"\\frac ")+str; + return [node,str,symbol.tag]; + } + } + } + node = AMcreateMmlNode(symbol.tag,document.createTextNode(output)); + return [node,str,symbol.tag]; + case LONG: // added by DRW + node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)); + node.setAttribute("minsize","1.5"); + node.setAttribute("maxsize","1.5"); + node = AMcreateMmlNode("mover",node); + node.appendChild(AMcreateElementMathML("mspace")); + return [node,str,symbol.tag]; + case STRETCHY: // added by DRW + if (isIE && symbol.input == "\\backslash") + symbol.output = "\\"; // doesn't expand, but then nor does "\u2216" + node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)); + if (symbol.input == "|" || symbol.input == "\\vert" || + symbol.input == "\\|" || symbol.input == "\\Vert") { + node.setAttribute("lspace","0em"); + node.setAttribute("rspace","0em"); + } + node.setAttribute("maxsize",symbol.atval); // don't allow to stretch here + if (symbol.rtag != null) + return [node,str,symbol.rtag]; + else + return [node,str,symbol.tag]; + case BIG: // added by DRW + var atval = symbol.atval; + if (isIE) + atval = symbol.ieval; + symbol = AMgetSymbol(str); + if (symbol == null) + return [null,str,null]; + str = AMremoveCharsAndBlanks(str,symbol.input.length); + node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)); + if (isIE) { // to get brackets to expand + var space = AMcreateElementMathML("mspace"); + space.setAttribute("height",atval+"ex"); + node = AMcreateMmlNode("mrow",node); + node.appendChild(space); + } else { // ignored in IE + node.setAttribute("minsize",atval); + node.setAttribute("maxsize",atval); + } + return [node,str,symbol.tag]; + case LEFTBRACKET: //read (expr+) + if (symbol.input == "\\left") { // left what? + symbol = AMgetSymbol(str); + if (symbol != null) { + if (symbol.input == ".") + symbol.invisible = true; + str = AMremoveCharsAndBlanks(str,symbol.input.length); + } + } + result = AMparseExpr(str,true,false); + if (symbol==null || + (typeof symbol.invisible == "boolean" && symbol.invisible)) + node = AMcreateMmlNode("mrow",result[0]); + else { + node = AMcreateMmlNode("mo",document.createTextNode(symbol.output)); + node = AMcreateMmlNode("mrow",node); + node.appendChild(result[0]); + } + return [node,result[1],result[2]]; + case MATRIX: //read (expr+) + if (symbol.input == "\\begin{array}") { + var mask = ""; + symbol = AMgetSymbol(str); + str = AMremoveCharsAndBlanks(str,0); + if (symbol == null) + mask = "l"; + else { + str = AMremoveCharsAndBlanks(str,symbol.input.length); + if (symbol.input != "{") + mask = "l"; + else do { + symbol = AMgetSymbol(str); + if (symbol != null) { + str = AMremoveCharsAndBlanks(str,symbol.input.length); + if (symbol.input != "}") + mask = mask+symbol.input; + } + } while (symbol != null && symbol.input != "" && symbol.input != "}"); + } + result = AMparseExpr("{"+str,true,true); +// if (result[0]==null) return [AMcreateMmlNode("mo", +// document.createTextNode(symbol.input)),str]; + node = AMcreateMmlNode("mtable",result[0]); + mask = mask.replace(/l/g,"left "); + mask = mask.replace(/r/g,"right "); + mask = mask.replace(/c/g,"center "); + node.setAttribute("columnalign",mask); + node.setAttribute("displaystyle","false"); + if (isIE) + return [node,result[1],null]; +// trying to get a *little* bit of space around the array +// (IE already includes it) + var lspace = AMcreateElementMathML("mspace"); + lspace.setAttribute("width","0.167em"); + var rspace = AMcreateElementMathML("mspace"); + rspace.setAttribute("width","0.167em"); + var node1 = AMcreateMmlNode("mrow",lspace); + node1.appendChild(node); + node1.appendChild(rspace); + return [node1,result[1],null]; + } else { // eqnarray + result = AMparseExpr("{"+str,true,true); + node = AMcreateMmlNode("mtable",result[0]); + if (isIE) + node.setAttribute("columnspacing","0.25em"); // best in practice? + else + node.setAttribute("columnspacing","0.167em"); // correct (but ignored?) + node.setAttribute("columnalign","right center left"); + node.setAttribute("displaystyle","true"); + node = AMcreateMmlNode("mrow",node); + return [node,result[1],null]; + } + case TEXT: + if (str.charAt(0)=="{") i=str.indexOf("}"); + else i = 0; + if (i==-1) + i = str.length; + st = str.slice(1,i); + if (st.charAt(0) == " ") { + node = AMcreateElementMathML("mspace"); + node.setAttribute("width","0.33em"); // was 1ex + newFrag.appendChild(node); + } + newFrag.appendChild( + AMcreateMmlNode(symbol.tag,document.createTextNode(st))); + if (st.charAt(st.length-1) == " ") { + node = AMcreateElementMathML("mspace"); + node.setAttribute("width","0.33em"); // was 1ex + newFrag.appendChild(node); + } + str = AMremoveCharsAndBlanks(str,i+1); + return [AMcreateMmlNode("mrow",newFrag),str,null]; + case UNARY: + result = AMparseSexpr(str); + if (result[0]==null) return [AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)),str]; + if (typeof symbol.func == "boolean" && symbol.func) { // functions hack + st = str.charAt(0); +// if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") { + if (st=="^" || st=="_" || st==",") { + return [AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)),str,symbol.tag]; + } else { + node = AMcreateMmlNode("mrow",AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output))); + if (isIE) { + var space = AMcreateElementMathML("mspace"); + space.setAttribute("width","0.167em"); + node.appendChild(space); + } + node.appendChild(result[0]); + return [node,result[1],symbol.tag]; + } + } + if (symbol.input == "\\sqrt") { // sqrt + if (isIE) { // set minsize, for \surd + var space = AMcreateElementMathML("mspace"); + space.setAttribute("height","1.2ex"); + space.setAttribute("width","0em"); // probably no effect + node = AMcreateMmlNode(symbol.tag,result[0]) +// node.setAttribute("minsize","1"); // ignored +// node = AMcreateMmlNode("mrow",node); // hopefully unnecessary + node.appendChild(space); + return [node,result[1],symbol.tag]; + } else + return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag]; + } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent + node = AMcreateMmlNode(symbol.tag,result[0]); + var output = symbol.output; + if (isIE) { + if (symbol.input == "\\hat") + output = "\u0302"; + else if (symbol.input == "\\widehat") + output = "\u005E"; + else if (symbol.input == "\\bar") + output = "\u00AF"; + else if (symbol.input == "\\grave") + output = "\u0300"; + else if (symbol.input == "\\tilde") + output = "\u0303"; + } + var node1 = AMcreateMmlNode("mo",document.createTextNode(output)); + if (symbol.input == "\\vec" || symbol.input == "\\check") + // don't allow to stretch + node1.setAttribute("maxsize","1.2"); + // why doesn't "1" work? \vec nearly disappears in firefox + if (isIE && symbol.input == "\\bar") + node1.setAttribute("maxsize","0.5"); + if (symbol.input == "\\underbrace" || symbol.input == "\\underline") + node1.setAttribute("accentunder","true"); + else + node1.setAttribute("accent","true"); + node.appendChild(node1); + if (symbol.input == "\\overbrace" || symbol.input == "\\underbrace") + node.ttype = UNDEROVER; + return [node,result[1],symbol.tag]; + } else if (symbol.input == "\\not") { // not + // added by infinity0 on 2009-12-15 to implement \not command + text = result[0].childNodes[0].nodeValue; + if (typeof text == "string" && text.length == 1 && text in AMRelationNegations) { + result[0].childNodes[0].nodeValue = AMRelationNegations[text]; + return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag]; + } + return [AMcreateMmlNode("mo",document.createTextNode("\\")),"not " + str,symbol.tag]; + } else { // font change or displaystyle command + if (!isIE && typeof symbol.codes != "undefined") { + for (i=0; i64 && st.charCodeAt(j)<91) + { newst = newst + symbol.codes[st.charCodeAt(j)-65] } + // String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]); alert(newst); } + else newst = newst + st.charAt(j); + if (result[0].nodeName=="mi") + result[0]=AMcreateElementMathML("mo"). + appendChild(document.createTextNode(newst)); + else result[0].replaceChild(AMcreateElementMathML("mo"). + appendChild(document.createTextNode(newst)),result[0].childNodes[i]); + } + } + node = AMcreateMmlNode(symbol.tag,result[0]); + node.setAttribute(symbol.atname,symbol.atval); + if (symbol.input == "\\scriptstyle" || + symbol.input == "\\scriptscriptstyle") + node.setAttribute("displaystyle","false"); + return [node,result[1],symbol.tag]; + } + case BINARY: + result = AMparseSexpr(str); + if (result[0]==null) return [AMcreateMmlNode("mo",document.createTextNode(symbol.input)),str,null]; + result2 = AMparseSexpr(result[1]); + if (result2[0]==null) return [AMcreateMmlNode("mo",document.createTextNode(symbol.input)),str,null]; + //added by J. Knisley to allow \textcolor and \colorbox within equations + if (symbol.input=="\\textcolor" || symbol.input=="\\colorbox") { + var tclr = str.match(/\{\s*([#\w]+)\s*\}/); //get's color from beginning of str + str = str.replace(/\{\s*[#\w]+\s*\}/,""); + if(tclr!=null) { + if(IsColorName.test(tclr[1].toLowerCase())) { + tclr=LaTeXColor[tclr[1].toLowerCase()]; + } else { + tclr=tclr[1]; // no checking for valid color!! + } + node = AMcreateElementMathML("mstyle"); + node.setAttribute(symbol.atval,tclr); + node.appendChild(result2[0]); + return [node,result2[1],symbol.tag]; + } + } + if (symbol.input=="\\root" || symbol.input=="\\stackrel") newFrag.appendChild(result2[0]); + newFrag.appendChild(result[0]); + if (symbol.input=="\\frac") newFrag.appendChild(result2[0]); + return [AMcreateMmlNode(symbol.tag,newFrag),result2[1],symbol.tag]; + case INFIX: + str = AMremoveCharsAndBlanks(str,symbol.input.length); + return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)), + str,symbol.tag]; + default: + return [AMcreateMmlNode(symbol.tag, //its a constant + document.createTextNode(symbol.output)),str,symbol.tag]; + } +} + +function AMparseIexpr(str) { + var symbol, sym1, sym2, node, result, tag, underover; + str = AMremoveCharsAndBlanks(str,0); + sym1 = AMgetSymbol(str); + result = AMparseSexpr(str); + node = result[0]; + str = result[1]; + tag = result[2]; + symbol = AMgetSymbol(str); + if (symbol.ttype == INFIX) { + str = AMremoveCharsAndBlanks(str,symbol.input.length); + result = AMparseSexpr(str); + if (result[0] == null) // show box in place of missing argument + result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1")); + str = result[1]; + tag = result[2]; + if (symbol.input == "_" || symbol.input == "^") { + sym2 = AMgetSymbol(str); + tag = null; // no space between x^2 and a following sin, cos, etc. +// This is for \underbrace and \overbrace + underover = ((sym1.ttype == UNDEROVER) || (node.ttype == UNDEROVER)); +// underover = (sym1.ttype == UNDEROVER); + if (symbol.input == "_" && sym2.input == "^") { + str = AMremoveCharsAndBlanks(str,sym2.input.length); + var res2 = AMparseSexpr(str); + str = res2[1]; + tag = res2[2]; // leave space between x_1^2 and a following sin etc. + node = AMcreateMmlNode((underover?"munderover":"msubsup"),node); + node.appendChild(result[0]); + node.appendChild(res2[0]); + } else if (symbol.input == "_") { + node = AMcreateMmlNode((underover?"munder":"msub"),node); + node.appendChild(result[0]); + } else { + node = AMcreateMmlNode((underover?"mover":"msup"),node); + node.appendChild(result[0]); + } + node = AMcreateMmlNode("mrow",node); // so sum does not stretch + } else { + node = AMcreateMmlNode(symbol.tag,node); + if (symbol.input == "\\atop" || symbol.input == "\\choose") + node.setAttribute("linethickness","0ex"); + node.appendChild(result[0]); + if (symbol.input == "\\choose") + node = AMcreateMmlNode("mfenced",node); + } + } + return [node,str,tag]; +} + +function AMparseExpr(str,rightbracket,matrix) { + var symbol, node, result, i, tag, + newFrag = document.createDocumentFragment(); + do { + str = AMremoveCharsAndBlanks(str,0); + result = AMparseIexpr(str); + node = result[0]; + str = result[1]; + tag = result[2]; + symbol = AMgetSymbol(str); + if (node!=undefined) { + if ((tag == "mn" || tag == "mi") && symbol!=null && + typeof symbol.func == "boolean" && symbol.func) { + // Add space before \sin in 2\sin x or x\sin x + var space = AMcreateElementMathML("mspace"); + space.setAttribute("width","0.167em"); + node = AMcreateMmlNode("mrow",node); + node.appendChild(space); + } + newFrag.appendChild(node); + } + } while ((symbol.ttype != RIGHTBRACKET) + && symbol!=null && symbol.output!=""); + tag = null; + if (symbol.ttype == RIGHTBRACKET) { + if (symbol.input == "\\right") { // right what? + str = AMremoveCharsAndBlanks(str,symbol.input.length); + symbol = AMgetSymbol(str); + if (symbol != null && symbol.input == ".") + symbol.invisible = true; + if (symbol != null) + tag = symbol.rtag; + } + if (symbol!=null) + str = AMremoveCharsAndBlanks(str,symbol.input.length); // ready to return + var len = newFrag.childNodes.length; + if (matrix && + len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 && + newFrag.childNodes[len-2].nodeName == "mo" && + newFrag.childNodes[len-2].firstChild.nodeValue == "&") { //matrix + var pos = []; // positions of ampersands + var m = newFrag.childNodes.length; + for (i=0; matrix && i -&-&...&-&- + n = node.childNodes.length; + k = 0; + for (j=0; j2) { + newFrag.removeChild(newFrag.firstChild); //remove + newFrag.removeChild(newFrag.firstChild); //remove & + } + table.appendChild(AMcreateMmlNode("mtr",row)); + } + return [table,str]; + } + if (typeof symbol.invisible != "boolean" || !symbol.invisible) { + node = AMcreateMmlNode("mo",document.createTextNode(symbol.output)); + newFrag.appendChild(node); + } + } + return [newFrag,str,tag]; +} + +function AMparseMath(str) { + var result, node = AMcreateElementMathML("mstyle"); + //added by J. Knisley to allow limited implementation of \color + var cclr = str.match(/\\color\s*\{\s*([#\w]+)\s*\}/); + str = str.replace(/\\color\s*\{\s*[#\w]+\s*\}/g,""); + if(cclr!=null) { + if(IsColorName.test(cclr[1].toLowerCase())) { + cclr=LaTeXColor[cclr[1].toLowerCase()]; + } else { + cclr=cclr[1]; // no checking for valid color!! + } + node.setAttribute("mathcolor",cclr); + } else { + if (mathcolor != "") node.setAttribute("mathcolor",mathcolor); + }; + if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily); + node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false,false)[0]); + node = AMcreateMmlNode("math",node); + if (showasciiformulaonhover) //fixed by djhsu so newline + node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko + if (false ) { //&& mathfontfamily != "" && (isIE || mathfontfamily != "serif")) { + var fnode = AMcreateElementXHTML("font"); + fnode.setAttribute("face",mathfontfamily); + fnode.appendChild(node); + return fnode; + } + return node; +} + +function AMstrarr2docFrag(arr, linebreaks) { + var newFrag=document.createDocumentFragment(); + var expr = false; + for (var i=0; i1 || mtch) { + if (checkForMathML) { + checkForMathML = false; + var nd = AMisMathMLavailable(); + AMnoMathML = nd != null; + if (AMnoMathML && notifyIfNoMathML) + if (alertIfNoMathML) + alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\ + or Firefox/Mozilla/Netscape"); + else AMbody.insertBefore(nd,AMbody.childNodes[0]); + } + if (!AMnoMathML) { + frg = AMstrarr2docFrag(arr,n.nodeType==8); + var len = frg.childNodes.length; + n.parentNode.replaceChild(frg,n); + return len-1; + } else return 0; + } + } + } else return 0; + } else if (n.nodeName!="math") { + for (i=0; i 0) { + if(inAppendix) { + return "A"+sectionCntr+"."+cntr; + } else { + return sectionCntr+"."+cntr; + } + } else { + return ""+cntr; + } +}; + + +function LaTeXpreProcess(thebody) { + var TheBody = thebody; + if(TheBody.hasChildNodes()) { + if(!(IsLaTeXElement.test(TheBody.className))) + { + for(var i=0; i"); // % sign + str = str.replace(/%[^\n]*(?=\n)/g,""); + str = str.replace(/%[^\r]*(?=\r)/g,""); //Used by Explorer + str = str.replace(/%[^\n]*$/,"") // End of text segment comment + + if(isIE && str.match(/%/g) != null && IEcommentWarning) { + alert("Comments may not have parsed properly. Try putting in
 stuff
+            //and to identify non-display math content (sections, etc).  
+             
+            str = str.split("");
+            // var ntype = TheBody.nodeType;
+            var newFrag = document.createDocumentFragment();
+	     
+            for(var i=0;i
+		          if(isIE) {
+		             str[i] = str[i].replace(/\r/g," ");  // replace \r by a space to aid spacing!
+		          }
+
+		  
+		          //items and appendix
+		          str[i] = str[i].replace(/\\bibitem\s*([^\{]*\{\s*\w*\s*\})/g," \\[bibitem\\]$1\\[ ");
+                  str[i] = str[i].replace(/\\bibitem\s*/g," \\[bibitem\\] \\[ ");
+		          str[i] = str[i].replace(/\\item\s*\[\s*(\w+)\s*\]/g," \\[alistitem\\]$1\\[ ");
+		          str[i] = str[i].replace(/\\item\s*/g," \\[alistitem\\] \\[ ");
+  		          str[i] = str[i].replace(/\\appendix/g," \\[appendix\\] \\[ ");
+
+
+                  // \includegraphics[][]{image} -- no processing of options.  This treatment is DANGEROUS.  It assumes no html will be
+		          // placed within the \begin{figure} ... \end{figure} structure, and the [\s\S] character class could lead to strange matches
+	              str[i] = str[i].replace(/\\begin\s*\{\s*figure\s*\}([\s\S]+?)\\end\s*\{\s*figure\s*\}/g," \\[figure\\]$1\\[ ");
+                  str[i] = str[i].replace(/\\begin\s*\{\s*table\s*\}([\s\S]+?)\\end\s*\{\s*table\s*\}/g," \\[table\\]$1\\[ ");
+		          //str[i] = str[i].replace(/\\begin\s*\{\s*array\s*\}([\s\S]+?)\\end\s*\{\s*array\s*\}/g," \\[array\\]$1\\[ ");
+                  //goal is to protect array \\ from being converted into linebreaks
+                  
+                  //This construction allows css classes for divs for these elements, but the CSS will have to be supplied through a 
+                  //css file or  in the header.  (It makes sense to me that style files in LaTeX should correspond
+                  //to css and/or xslt when translating to mathml, but \ref's are a problem).
+                  str[i] = str[i].replace(/\\begin\s*\{\s*theorem\s*\}/g," \\[theorem\\]Theorem \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*theorem\s*\}/g," \\[endtheorem\\] \\[ ");
+
+                  str[i] = str[i].replace(/\\begin\s*\{\s*definition\s*\}/g," \\[definition\\]Definition \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*definition\s*\}/g," \\[enddefinition\\] \\[ ");
+           
+                  str[i] = str[i].replace(/\\begin\s*\{\s*lemma\s*\}/g," \\[lemma\\]Lemma \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*lemma\s*\}/g," \\[endlemma\\] \\[ ");
+
+                  str[i] = str[i].replace(/\\begin\s*\{\s*corollary\s*\}/g," \\[corollary\\]Corollary \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*corollary\s*\}/g," \\[endcorollary\\] \\[ ");
+          
+                  str[i] = str[i].replace(/\\begin\s*\{\s*proposition\s*\}/g," \\[proposition\\]Proposition \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*proposition\s*\}/g," \\[endproposition\\] \\[ ");
+
+                  str[i] = str[i].replace(/\\begin\s*\{\s*example\s*\}/g," \\[example\\]Example \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*example\s*\}/g," \\[endexample\\] \\[ ");
+	           
+                  str[i] = str[i].replace(/\\begin\s*\{\s*exercise\s*\}/g," \\[exercise\\]Exercise \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*exercise\s*\}/g," \\[endexercise\\] \\[ ");
+
+                  str[i] = str[i].replace(/\\begin\s*\{\s*thebibliography\s*\}\s*\{\s*\w+\s*\}/g," \\[thebibliography\\]References \\[ "); 
+                  str[i] = str[i].replace(/\\begin\s*\{\s*thebibliography\s*\}/g," \\[thebibliography\\]References \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*thebibliography\s*\}/g," \\[endthebibliography\\]References \\[ ");
+		  
+
+                  str[i] = str[i].replace(/\\begin\s*\{\s*proof\s*\}/g," \\[proof\\]Proof: \\[ "); 
+                  if(isIE) {  //IE is just so weird
+                     str[i] = str[i].replace(/\\end\s*\{\s*proof\s*\}/g,"\u220E \\[endproof\\] \\[ ");
+                  } else { 
+                     str[i] = str[i].replace(/\\end\s*\{\s*proof\s*\}/g," \\[endproof\\] \\[ ");
+                  }
+		  
+                  //The frontmatter -- all translated to div's to be handled by CSS
+                  str[i] = str[i].replace(/\\title\s*\{\s*([^\}]+)\}/g," \\[title\\] \\[$1 \\[endtitle\\] \\[ ");
+                  str[i] = str[i].replace(/\\author\s*\{\s*([^\}]+)\}/g," \\[author\\] \\[$1 \\[endauthor\\] \\[ ");
+                  str[i] = str[i].replace(/\\address\s*\{\s*([^\}]+)\}/g," \\[address\\] \\[$1 \\[endaddress\\] \\[ ");
+                  str[i] = str[i].replace(/\\date\s*\{\s*([^\}]+)\}/g," \\[date\\] \\[$1 \\[enddate\\] \\[ ");
+                  str[i] = str[i].replace(/\\begin\s*\{\s*keyword\s*\}/g," \\[keyword\\] \\[ "); 
+                  str[i] = str[i].replace(/\\end\s*\{\s*keyword\s*\}/g," \\[endkeyword\\] \\[ ");
+                  str[i] = str[i].replace(/\\begin\s*\{\s*abstract\s*\}/g," \\[abstract\\] \\[ "); 
+	              str[i] = str[i].replace(/\\end\s*\{\s*abstract\s*\}/g," \\[endabstract\\] \\[ ");
+		  
+                  //The rest of the environments -- Users can even "make up their own" -- but it avoids the array and tabular environments
+                  str[i] = str[i].replace(/\\begin\s*\{\s*(?!array|tabular)(\w+)\s*\}/g," \\[$1\\] \\[ ");
+                  str[i] = str[i].replace(/\\end\s*\{\s*(?!array|tabular)(\w+)\s*\}/g," \\[end$1\\] \\[ ");
+
+                  //Next, we look at section--subsection stuff.  This is nested -- this would be so much better if LaTeX used 
+                  //some type of \begin{sectionhead}...\end{sectionhead} structure
+                  var sectionIndex = str[i].search(/\\section\s*\{\s*[\s\S]+\}/); 
+		  
+                  while(sectionIndex >= 0) { 
+                     str[i] = str[i].replace(/\\section\s*\{/ ," \\[section\\]");
+                     var delimcnt = 1;
+                     for(var ii=sectionIndex;ii= 0) { 
+                     str[i] = str[i].replace(/\\subsection\s*\{/ ," \\[subsection\\]");
+                     var delimcnt = 1;
+                     for(var ii=sectionIndex;ii= 0) { 
+                     str[i] = str[i].replace(/\\subsubsection\s*\{/ ," \\[subsubsection\\]");
+                     var delimcnt = 1;
+                     for(var ii=sectionIndex;ii= 0) { // caption may contain other {  } structures -- but not displaymath!!
+                                 var tmp = strtmparray[1];
+                                 var delimcnt = 0;
+                              	 var capstart = -1;
+                                 for(var pos=capIndex;pos0) { 
+                                       capend = pos-1; 
+                                       FIGcap = tmp.substring(capstart,pos);
+                                       break 
+                                    }
+                                 }
+                              }
+                                                   
+                              var FIGtr2 = document.createElement("tr");
+                              var FIGtd2  = document.createElement("td");
+                              FIGtd2.className="caption";
+                  
+                               
+                              var FIGanchor = document.createElement("a");
+                              FIGanchor.className = "figure";
+                              if(FIGlbl!=null) {  FIGanchor.id = FIGlbl[1]; }
+                              LaTeXCounter["figure"]++;
+                              var fignmbr = makeNumberString(LaTeXCounter["figure"]);
+                              var anchorSpan = document.createElement("span");
+                              anchorSpan.className = "figure";
+                              anchorSpan.style.display = "none";
+                              anchorSpan.appendChild(document.createTextNode(fignmbr));  
+                              FIGanchor.appendChild(anchorSpan); 			     
+                              FIGtd2.appendChild(FIGanchor);
+			      
+                              var FIGspan = document.createElement("span");
+                              FIGspan.className = "figure"; //For CSS counters, comment this line
+                              FIGspan.appendChild(document.createTextNode("Figure "+fignmbr+". " ) );
+                              FIGtd2.appendChild(FIGspan);
+                              FIGtd2.appendChild(document.createTextNode(""+FIGcap));
+                              FIGtr2.appendChild(FIGtd2);
+                              FIGtbody.appendChild(FIGtr2);
+                              var IsSpecial = false;
+			      
+                              var FIGinfo = strtmparray[1].match(/\\includegraphics\s*\{([^\}]+)\}/);
+                              if(FIGinfo==null) { //options not processed, for now
+                                 FIGinfo = strtmparray[1].match(/\\includegraphics\s*\[[^\]]*\]\s*\{\s*([^\}]+)\s*\}/);
+                              }
+                              if(FIGinfo==null) {
+                                 FIGinfo = strtmparray[1].match(/\\special\s*\{\s*([^\}]+)\}/);
+                                 IsSpecial=true //Hook: Later can include "special" graphics commands
+                              };
+                         
+                              if(FIGinfo!=null) { //Caption will be above the image
+                                 var FIGtr1 = document.createElement("tr");
+                                 var FIGtd1  = document.createElement("td");
+                                 FIGtd1.className="image";
+                                 var FIGimg = document.createElement("img");
+                                 var FIGsrc = FIGinfo[1]; //options not processed, for now
+                                 FIGimg.src = FIGsrc;
+                                 FIGimg.alt = "Figure "+FIGsrc+" did not load";
+                                 FIGimg.title = "Figure "+fignmbr+". "+FIGcap;
+                                 FIGimg.id = "figure"+fignmbr;
+                                 FIGtd1.appendChild(FIGimg);
+                                 FIGtr1.appendChild(FIGtd1);
+                                 FIGtbody.appendChild(FIGtr1);
+                              }
+                              nodeTmp.appendChild(FIGtbody);
+                              newFrag.appendChild(nodeTmp); 		      
+                           break;
+                           case "table": 
+                              var nodeTmp = document.createElement("table");
+                              if(strtmparray[1].search(/\\centering/) >= 0) {
+                                 nodeTmp.className = 'LaTeXtable centered';
+                                 nodeTmp.align = "center";
+                              } else {
+                                 nodeTmp.className = 'LaTeXtable'; 
+                              };
+                              tableid++;
+                              nodeTmp.id = "LaTeXtable"+tableid; //unique id for each table
+                              
+                              var TABlbl = strtmparray[1].match(/\\label\s*\{\s*(\w+)\s*\}/);
+                              strtmparray[1]=strtmparray[1].replace(/\\label\s*\{\w+\}/g,"");	
+			      
+                              var capIndex = strtmparray[1].search(/\\caption\s*\{[\s\S]+\}/);  
+                              var TABcap = "";
+			      
+                              if(capIndex >= 0) { // caption may contain other {  } structures -- but not displaymath!!
+                                 var tmp = strtmparray[1]; 
+                                 var delimcnt = 0;
+                                 var capstart = -1;
+                                 for(var pos=capIndex;pos0) { 
+	                                   capend = pos-1; 
+                           		       TABcap = tmp.substring(capstart,pos);
+								       break 
+								    }
+								 }
+			  				  }
+                                                   
+                              if(TABcap!="") {
+                                 var TABtbody = document.createElement("tbody");
+                                 var TABcaption = document.createElement("caption");
+                                 TABcaption.className="LaTeXtable centered";
+                                 var TABanchor = document.createElement("a");
+   			        			 TABanchor.className = "LaTeXtable";
+                                 if(TABlbl!=null) {  TABanchor.id = TABlbl[1]; }
+                                 LaTeXCounter["table"]++;
+	   					         var tabnmbr = makeNumberString(LaTeXCounter["table"]);
+						         var anchorSpan = document.createElement("span");
+						         anchorSpan.className = "LaTeXtable";
+						         anchorSpan.style.display = "none";
+						         anchorSpan.appendChild(document.createTextNode(tabnmbr));  
+                                 TABanchor.appendChild(anchorSpan); 			     
+						         TABcaption.appendChild(TABanchor);
+			      
+						         var TABspan = document.createElement("span");
+                                 TABspan.className = "LaTeXtable"; //For CSS counters, comment this line
+                                 TABspan.appendChild(document.createTextNode("Table "+tabnmbr+". " ) );
+						         TABcaption.appendChild(TABspan);
+						         TABcaption.appendChild(document.createTextNode(""+TABcap));
+                                 nodeTmp.appendChild(TABcaption);
+						      }
+                              var TABinfo = strtmparray[1].match(/\\begin\s*\{\s*tabular\s*\}([\s\S]+)\\end\s*\{\s*tabular\s*\}/);
+						      if(TABinfo!=null) { 
+								 var TABtbody = document.createElement('tbody');
+								 var TABrow = null;
+								 var TABcell = null;
+								 var row=0;
+								 var col=0;
+				 
+								 var TABalign = TABinfo[1].match(/^\s*\{([^\}]+)\}/);
+								 TABinfo = TABinfo[1].replace(/^\s*\{[^\}]+\}/,"");
+								 TABinfo = TABinfo.replace(/\\hline/g,""); //no horizontal bars
+								 TABalign[1] = TABalign[1].replace(/\|/g,""); //no vertical bars
+								 TABalign[1] = TABalign[1].replace(/\s/g,""); 
+								 TABinfo = TABinfo.split("\\\\"); // into rows
+								 for(row=0;row -- access it with \cite, thus allowing appropriate labels!
+						      if(strtmparray[1]!="") {
+								 nodeSpan.appendChild(document.createTextNode(strtmparray[1]));
+                              } else { 
+                                 nodeSpan.appendChild(document.createTextNode("["+bibcntr+"]"));
+                              }
+						      nodeTmp.appendChild(nodeSpan);
+						      newFrag.appendChild(nodeTmp);
+                           break;
+                           case "cite":
+                              var nodeTmp = document.createElement("a");
+                              nodeTmp.className = 'cite'; 
+                              nodeTmp.name = 'cite';
+                              nodeTmp.href = "#"+strtmparray[1];
+                              newFrag.appendChild(nodeTmp);                                                                                                                  
+                           break;
+                           case "ref":
+                              var nodeTmp = document.createElement("a"); 
+                              nodeTmp.className = 'ref'; 
+                              nodeTmp.name = 'ref';
+                              nodeTmp.href = "#"+strtmparray[1];
+                              newFrag.appendChild(nodeTmp);                                                                                      
+                           break;
+                           default : 
+                              var nodeTmp = document.createElement("div");
+                              nodeTmp.className = strtmparray[0]; 
+                              if( IsCounter.test(strtmparray[0]) ) { 
+								 LaTeXCounter[strtmparray[0]]++;
+                                 var nodeAnchor = document.createElement("a");
+                                 nodeAnchor.className = strtmparray[0];
+								 var divnum = makeNumberString(LaTeXCounter[strtmparray[0]]);
+				 				 var anchorSpan = document.createElement("span");
+								 anchorSpan.className = strtmparray[0];
+								 anchorSpan.appendChild(document.createTextNode(divnum));
+								 anchorSpan.style.display="none";
+								 nodeAnchor.appendChild(anchorSpan);
+								 nodeTmp.appendChild(nodeAnchor);
+				 
+								 var nodeSpan = document.createElement("span");
+                                 nodeSpan.className = strtmparray[0];
+								 nodeSpan.appendChild(document.createTextNode(strtmparray[1]+" "+divnum+". "));
+                                 nodeTmp.appendChild(nodeSpan);
+                              }
+						      if(isIE) { //remove if IE supports :before and :after
+								 if(strtmparray[0]==("thebibliography"||"abstract"||"keyword"||"proof")) {
+                                    var nodeSpan = document.createElement("span");
+                                    nodeSpan.className = strtmparray[0];
+								    nodeSpan.appendChild(document.createTextNode(strtmparray[1]));
+                                    nodeTmp.appendChild(nodeSpan);
+                                 }
+                              } //end of IE :before and :after fixes
+			    			  if(strtmparray[0]=="endenumerate" || strtmparray[0]=="enditemize" || strtmparray[0]=="enddescription") {
+                                 var endDiv = document.createElement("div");
+                                 endDiv.className = "endlistitem";
+								 newFrag.appendChild(endDiv);
+                              }
+                              newFrag.appendChild(nodeTmp);
+			    			  if(strtmparray[0]=="enumerate" || strtmparray[0]=="itemize" || strtmparray[0]=="description") {
+                                 var endDiv = document.createElement("div");
+                                 endDiv.className = "listitem";
+								 newFrag.appendChild(endDiv);
+                              }
+                         }
+                      } else { 
+                      	 //even = text, labels, bf, and italics, and linebreaks, and math -- we now remove the math
+                         strtmp[j] = strtmp[j].replace(/\\\$/g,"");
+                         strtmp[j] = strtmp[j].replace(/\$([^\$]+)\$/g," \\[$1\\[ ");
+                         strtmp[j] = strtmp[j].replace(//g,"\\$");
+                         strtmp[j] = strtmp[j].replace(/\\begin\s*\{\s*math\s*\}([\s\S]+?)\\end\s*\{\s*math\s*\}/g," \\[$1\\[ ");
+
+						 var strtmptmp = strtmp[j].split("\\[");
+                         
+                         for(var jjj=0;jjj-1) {
+		      			 	       if(/^\\textcolor/.test(strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length))) { 
+		      			 	          strtmptmp[jjj] = strtmptmp[jjj].replace(/\\textcolor\s*\{\s*(\w+)\s*\}\s*/," \\[textcolor\\]$1\\]|");
+		      			 	       } else { 
+		      			 	          if(/^\\colorbox/.test(strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length))) { 
+		      			 	             strtmptmp[jjj] = strtmptmp[jjj].replace(/\\colorbox\s*\{\s*(\w+)\s*\}\s*/," \\[colorbox\\]$1\\]|");
+		      			 	          } else {
+		      			 	             strtmptmp[jjj] = strtmptmp[jjj].substring(0,TagIndex)+strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length).replace(/\\\s*(\w+)\s*/," \\[$1\\]|");
+		      			 	          }
+		      			 	       }
+		      			 	       TagIndex +=strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length).search(/\|/);
+		      			 	       TagIndex++;
+		      			 	       strtmptmp[jjj] = strtmptmp[jjj].replace(/\\\]\|/,"\\] ");
+		      			 	       if(strtmptmp[jjj].charAt(TagIndex) == "{") {
+		      			 	          strtmptmp[jjj] = strtmptmp[jjj].substring(0,TagIndex)+strtmptmp[jjj].substring(TagIndex+1,strtmptmp[jjj].length); 
+		      			 	          var delimcnt = 1;
+		      			 	          for(var kk = TagIndex;kk=0;i--) {
+      EndDivClass = AllDivs[i].className.match(/end\w+/ ); 
+      if(EndDivClass!=null) {
+         EndDivClass = EndDivClass[0]; 
+	 var DivClass = EndDivClass.substring(3,EndDivClass.length);
+         var EndDivNode = AllDivs[i];
+         break; 
+      } 
+   }  
+   while(EndDivClass!=null) {
+      // TrackBack to Beginning, appending to newfrag as we go
+      var newFrag = document.createDocumentFragment();
+      var RootNode = EndDivNode.parentNode;
+      var ClassCount = 1; // because of EndDivNode
+      while(EndDivNode.previousSibling!=null && ClassCount>0) {
+	 switch(EndDivNode.previousSibling.className) {
+	    case EndDivClass:	 
+	       ClassCount++;
+	       newFrag.insertBefore(EndDivNode.previousSibling,newFrag.firstChild);
+	       break;
+	    case DivClass: 
+	       if(EndDivNode.previousSibling.nodeName=="DIV") { 
+	          ClassCount-- ;
+		  //Must check to see if we need a label here!
+		 if(lbl2id !="" ) { 
+		    EndDivNode.previousSibling.id = lbl2id;
+		    lbl2id = "" 
+		 }
+		 if(ClassCount==0) { 
+	             RootNode = EndDivNode.previousSibling; 
+		  } else {
+	             newFrag.insertBefore(EndDivNode.previousSibling,newFrag.firstChild);
+		  }
+	       };
+	       break;
+           case 'LaTeXMathMLlabel':
+               lbl2id = EndDivNode.previousSibling.id; 
+	          EndDivNode.parentNode.removeChild(EndDivNode.previousSibling);
+	       break;
+	    default:
+	       newFrag.insertBefore(EndDivNode.previousSibling,newFrag.firstChild);
+            }
+      }
+      RootNode.appendChild(newFrag);
+      EndDivNode.parentNode.removeChild(EndDivNode);
+      
+      //Look for more end div items
+      AllDivs = TheBody.getElementsByTagName("DIV");
+      for(i=AllDivs.length-1;i>=0;i--) {
+         EndDivClass = AllDivs[i].className.match(/end\w+/ );
+         if(EndDivClass!=null) {
+	    ClassCount = 0;
+            EndDivClass = EndDivClass[0]; 
+	    DivClass = EndDivClass.substring(3,EndDivClass.length);
+            EndDivNode = AllDivs[i];
+	    RootNode = EndDivNode.parentNode;
+            break; 
+         } 
+       }     
+   } // end while!
+   
+   
+
+   
+   var AllDivs = TheBody.getElementsByTagName("div"); //Convert itemize and enumerate to html lists:
+   var DIV2LI = null;
+   
+   for(var i=0;i0) { 
+        for(var m=0;m");
+  document.write("");
+}
+
+// GO1.1 Generic onload by Brothercake
+// http://www.brothercake.com/
+//onload function (replaces the onload="translate()" in the  tag)
+function generic()
+{
+  translate();
+};
+//setup onload function
+if(typeof window.addEventListener != 'undefined')
+{
+  //.. gecko, safari, konqueror and standard
+  window.addEventListener('load', generic, false);
+}
+else if(typeof document.addEventListener != 'undefined')
+{
+  //.. opera 7
+  document.addEventListener('load', generic, false);
+}
+else if(typeof window.attachEvent != 'undefined')
+{
+  //.. win/ie
+  window.attachEvent('onload', generic);
+}
+//** remove this condition to degrade older browsers
+else
+{
+  //.. mac/ie5 and anything else that gets this far
+  //if there's an existing onload function
+  if(typeof window.onload == 'function')
+  {
+    //store it
+    var existing = onload;
+    //add new onload handler
+    window.onload = function()
+    {
+      //call existing onload function
+      existing();
+      //call generic onload function
+      generic();
+    };
+  }
+  else
+  {
+    //setup onload function
+    window.onload = generic;
+  }
+}
diff --git a/LaTeXMathML.standardarticle.css b/LaTeXMathML.standardarticle.css
new file mode 100644
index 00000000..a3eb5bd4
--- /dev/null
+++ b/LaTeXMathML.standardarticle.css
@@ -0,0 +1,606 @@
+/* Standard Article Style for use with LaTeXMathML */
+/* Jeff Knisley (knisleyj@etsu.edu)
+/* Supported in part by the Howard Hughes Medical Institute */
+/* as part of the Symbiosis Project: HHMI #52005872
+
+/* Modification of a style from Arun Ram */
+/* Department of Mathematics */
+/* University of Wisconsin, Madison */ 
+/* Madison, WI 53706 USA */
+/* This is the style information from the mathml template at */
+/* http://www.math.wisc.edu/~ram/MathGlossary/template.xml */
+/*
+/* See http://www.math.wisc.edu/~ram/MathGlossary/mathmlguide.xml for details */
+/* */
+/* Dr. Arun Ram's work was supported in part by the National Science Foundation under Grant No. 0353038. 
+
+/* Internet Explorer does not support before/after tags.  If it ever does, then the original 
+   LaTeXMathML.js script will have to be modified by removing all "if" structures that begin as 
+       if(isIE) { //remove if IE supports :before and :after
+*/
+
+/* To transform to CSS counters, do the following: (note: this is for section.item numbering); 
+    1. Change all span.xxx to display: none 
+    2. Add style to body to reset section counter: For example: 
+         body {    counter-reset: section 0  appendixsection 0}
+
+    3. Add the following style to reset counters after every section change
+         a.section { counter-reset: eqn 0 figure 0 subsection 0 subsubsection 0 definition 0 
+                                    proposition 0 lemma 0 theorem 0 corollary 0 example 0 exercise 0 ;  
+         } 
+         a.appendixsection { counter-reset: eqn 0 figure 0 subsection 0 subsubsection 0 definition 0 
+                                    proposition 0 lemma 0 theorem 0 corollary 0 example 0 exercise 0 ;  
+         } 
+
+    4. For all numbered LaTeX items, set the a.xxx:before to content: counter(section) "."  counter(item) 
+       and also, add    counter-increment: item 1 
+       
+       For example: (Internet Explorer does nto support :before and :after pseudotags -- or counters!)
+       
+         a.subsection:before {
+             content: counter(section) ". " counter(subsection);
+             counter-increment: subsection 1;  
+         } 
+         
+    5. For \ref cross-references, add the line (note: no browser currently supports this!)
+       
+         a.ref:before{ content: target-text(attr(href),before) }
+
+       For \cite cross-references, add the line (note: no browser currently supports this!)
+       
+         a.cite:before{ content: target-text(attr(href),before) }
+
+Note: Alternatively, just uncomment all the commented items below! This will produce 
+   nice results in Firefox and Other CSS2 compliant browsers, but cross-references will not be related
+   to CSS counters until CSS 3 is supported
+
+*/    
+
+
+/* body {
+    counter-reset: section 0 enumerate 0 bibitem 0; 
+} */
+
+
+LaTeX {/* Marks Containers with LaTeX code to be parsed */  
+}
+
+div.title {
+    text-align:center;
+    font-style: normal; 
+    font-weight: bold; 
+    font-size: 150%;
+}
+
+div.author {
+    text-align:center;
+    font-style: normal; 
+    font-size: 130%;     
+}
+
+div.address {
+    text-align:center;
+    font-style:normal; 
+}
+
+div.date {
+    text-align:center;
+    font-style: normal; 
+}
+
+div.abstract {
+    font-style: normal;
+    margin-left: 5%;
+    margin-right: 5%;
+    padding-bottom: 10px;
+    padding-top: 10px;
+}
+
+div.abstract:before {
+    font-style: normal;
+    font-weight: bold;
+    font-size: 105%; 
+    content: "Abstract:";     
+} 
+
+div.keyword {
+    font-style: normal;
+    margin-left: 5%;
+    margin-right: 5%;
+    padding-bottom: 10px;
+    padding-top: 10px;
+}
+
+div.keyword:before {
+    font-style: normal;
+    font-weight: bold;
+    font-size: 105%; 
+    content: "Keywords:";     
+} 
+
+.centered {
+   text-align:center;
+   margin-left:auto; 
+   margin-right:auto;
+}
+
+h2.section {
+   margin-bottom:0.25em;
+   margin-top:1em;
+}
+
+h3.subsection {
+   margin-bottom:0.25em;
+   margin-top:0.75em;
+}
+
+h4.subsubsection {
+   margin-bottom:0.25em;
+   margin-top:0.5em;
+}
+
+div.enumerate {
+}
+
+div.itemize {
+}
+
+/* vertical spacing */
+
+p.LaTeXMathML {
+	font-size: 0.25em;
+}
+
+p.smallskip {  
+   font-size: 1.5em;
+}
+
+p.medskip {
+    font-size: 3em;
+}
+
+p.bigskip {
+    font-size: 4.5em;
+}
+
+
+/* Font-face LaTeX spans */
+
+span.textbf {
+   font-weight:bold;
+}
+
+span.textit {
+   font-style:italic;
+}
+
+span.emph {
+   font-style:italic;
+   font-weight:bolder;
+}
+
+span.textsc {
+   font-variant:small-caps
+}
+
+span.textsl {
+   font-style:oblique;
+}
+
+span.textsf {
+   font-family:sans-serif, Arial, Helvetica;
+}
+
+span.texttt {
+	font-family:monospace,"Courier New", Courier;
+}
+
+span.tiny {
+	font-size:xx-small;
+}
+
+span.scriptsize{
+	font-size:x-small;
+}
+
+span.footnotesize {
+	font-size:small;
+}
+
+span.small {
+	font-size:small;
+}
+
+span.normalsize {
+	font-size:medium;
+}
+
+
+span.Large {
+	font-size:x-large;
+}
+
+span.LARGE {
+	font-size:xx-large;
+}
+
+span.large {
+	font-size:large;
+}
+
+span.huge {
+	font-size:x-large;
+	font-weight:bolder;
+}
+
+span.HUGE {
+	font-size:xx-large;
+	font-weight:bolder;
+}
+
+
+/* sections */
+
+span.section { font-style: normal; /* display: none */ }
+
+/* a.section { counter-reset: eqn 0 figure 0 subsection 0 subsubsection 0 definition 0 
+                           proposition 0 lemma 0 theorem 0 corollary 0 example 0 exercise 0 ;  
+} 
+
+a.appendixsection { counter-reset: eqn 0 figure 0 subsection 0 subsubsection 0 definition 0 
+                           proposition 0 lemma 0 theorem 0 corollary 0 example 0 exercise 0 ;
+}
+*/
+
+
+/* subsections */
+
+span.subsection { font-style: normal; /* display: none */ }
+
+/* a.subsection {
+    counter-reset: subsubsection 0;
+}
+
+a.subsection:before {
+    content: counter(section) ". " counter(subsection);
+    counter-increment: subsection;  
+} 
+*/
+
+/* subsubsections */
+span.subsubsection{ font-style: normal; /* display: none */ }
+
+/* a.subsubsection:before {
+    content: counter(section) ". " counter(subsection);
+    counter-increment: subsection;  
+} 
+*/
+
+/* figures */
+table.figure {
+   width:100%;
+}
+   
+td.caption {
+   text-align:center;
+}
+
+/* td.caption:before {
+   content: "Figure";
+   font-style: normal; 
+   font-weight: bold 
+}
+*/
+
+td.image {
+   text-align:center;
+}
+
+span.figure {  font-weight: bold; /* display: none */ }
+
+/*a.figure:before {
+   content: counter(section) "." counter(figure);
+   counter-increment: figure;  
+   font-style: normal; 
+   font-weight: bold;
+}
+
+a.figure:after { content: "." }
+*/
+
+/* LaTeXtable  configuration */
+
+table.LaTeXtable {
+
+}
+
+table.LaTeXtable tbody {
+   text-align:center;
+   margin-left:auto; 
+   margin-right:auto;
+}
+
+
+/* table.LaTeXtable td.caption:before {
+   content: "Table ";
+   font-style: normal; 
+   font-weight: bold 
+}
+*/
+
+/*table.LaTeXtable td.tabular table.tabular {
+   text-align:center;	
+} */
+
+span.LaTeXtable {  font-weight: bold; /* display: none */ }
+
+/*a.LaTeXtable:before {
+   content: counter(section) "." counter(LaTeXtable);
+   counter-increment: LaTeXtable;  
+   font-style: normal; 
+   font-weight: bold;
+}
+
+a.LaTeXtable:after { content: "." }
+*/
+
+/* Inline equation */
+
+span.inlinemath {
+	 
+}
+
+/* equation -- numbering in script to accomodate IE */
+table.displayequation {
+   width:100%;
+   }
+   
+td.eq {
+   text-align:center;
+}
+
+td.eqno {
+    width: 10px;
+    text-align:right;
+}
+
+span.eqno {  font-style: normal; /* display: none */ }
+
+/* td.eqno:before { content: "(" }
+
+a.eqno:before {
+   content: counter(section) "." counter(equation);
+   counter-increment: equation;  
+   font-style: normal; 
+}
+
+a.eqno:after { content: ")" }
+*/
+
+/* definition style, including number */
+span.definition { 
+   font-weight: bold; 
+   font-style: normal;
+   /* display: none */ 
+}
+
+/* div.definition:before { 
+    content: "Definition"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.definition:before {
+    content: counter(section) "." counter(definition); 
+    counter-increment: definition 1;
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+a.definition:after { content: "." }
+*/
+
+div.definition{ font-style:italic }
+
+/* proposition style, including number */
+span.proposition {  
+   font-weight: bold; 
+   font-style: normal;
+   /* display: none */ 
+}
+
+/* div.proposition:before { 
+    content: "Proposition"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.proposition:before {
+    content: counter(section) "." counter(proposition); 
+    counter-increment: proposition 1;
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+a.proposition:after { content: "." }
+*/
+
+div.proposition{ font-style:italic }
+
+/* lemma style, including number */
+span.lemma {  
+   font-weight: bold; 
+   font-style: normal;
+   /* display: none */ 
+}
+
+/* div.lemma:before { 
+    content: "Lemma"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.lemma:before {
+    content: counter(section) "." counter(lemma); 
+    counter-increment: lemma 1;
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+a.lemma:after { content: "." }
+*/ 
+
+div.lemma{ font-style:italic }
+
+/* theorem style, including number */
+span.theorem { 
+   font-weight: bold; 
+   font-style: normal;
+   /* display: none */ 
+}
+
+/* div.theorem:before { 
+    content: "Theorem"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.theorem:before {
+    content: counter(section) "." counter(theorem); 
+    counter-increment: theorem 1;
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+a.theorem:after { content: "." }
+*/
+
+div.theorem{ font-style:italic }
+
+/* corollary style, including number */
+span.corollary { 
+   font-weight: bold; 
+   font-style: normal;
+   /* display: none */ 
+}
+
+/* div.corollary:before { 
+    content: "Corollary"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.corollary:before {
+    content: counter(section) "." counter(corollary); 
+    counter-increment: corollary 1;
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+a.corollary:after { content: "." }
+*/ 
+
+div.corollary{ font-style:italic }
+
+/* example style, including number */
+span.example { 
+   font-weight: bold; 
+   font-style: normal;
+   /* display: none */ 
+}
+
+/* div.example:before { 
+    content: "Example"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.example:before {
+    content: counter(section) "." counter(example); 
+    counter-increment: example 1;
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+a.example:after { content: "." }
+*/ 
+
+div.example {
+    font-style: normal;
+    margin-left: 5%;
+    margin-right: 5%;
+    padding-bottom: 10px;
+    padding-top: 10px;
+}
+
+/* exercise style, including number */
+span.exercise {  
+   font-weight: bold; 
+   font-style: normal;
+   /* display: none */ 
+}
+
+/* div.exercise:before { 
+    content: "Exercise"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.exercise:before {
+    content: counter(section) "." counter(exercise); 
+    counter-increment: exercise 1;
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+a.exercise:after { content: "." }
+*/ 
+
+/* thebibliography style, including number */
+div.thebibliography {
+    font-style: normal;
+    padding-top: 15px;
+}
+
+div.thebibliography:before { 
+    content: "References"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+a.bibitem {
+    font-style: normal; 
+    font-weight: bold; 
+}
+
+
+/* Proof style, including number */
+div.proof:before { 
+    content: "Proof:"; 
+    font-style: normal; 
+    font-weight: bold 
+}
+
+div.proof:after {
+   content: "\220E";
+   font-weight: bold 
+}
+
+/* cites and refs */
+a.cite {
+    font-style: normal; 
+}
+
+a.ref {
+    font-style: normal; 
+}
+
+/* a.ref:before{ 
+    content: target-text(attr(href),before) 
+}
+
+      
+a.cite:before{ 
+   content: target-text(attr(href),before) 
+}
+*/
\ No newline at end of file
diff --git a/jsMath/COPYING.txt b/jsMath/COPYING.txt
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/jsMath/COPYING.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/jsMath/blank.gif b/jsMath/blank.gif
new file mode 100644
index 00000000..8b27096e
Binary files /dev/null and b/jsMath/blank.gif differ
diff --git a/jsMath/easy/load.js b/jsMath/easy/load.js
new file mode 100644
index 00000000..dbd55c4d
--- /dev/null
+++ b/jsMath/easy/load.js
@@ -0,0 +1,164 @@
+/**********************************************************************
+ *
+ *   Customize the values given below to suit your needs.
+ *   You can make additional copies of this file with
+ *   different customizated settings if you need to load
+ *   jsMath with different parameters.
+ *   
+ *   Load this page via:
+ *   
+ *   
+ *   
+ *   (If you are including this file into your page via Server-Side
+ *   Includes, you should remove line above.)
+ *   
+ *   You can make copies of this file with different settings
+ *   if you need to have several different configurations.
+ *   
+ **********************************************************************/
+
+if (!window.jsMath) {window.jsMath = {}}
+
+jsMath.Easy = {
+  //
+  //  The URL of the root jsMath directory on your server
+  //  (it must be in the same domain as the HTML page).
+  //  It should include "http://yoursite.com/", or should
+  //  be relative to the root of your server.  It is possible
+  //  to be a relative URL, but it will be relative to the
+  //  HTML page loading this file.
+  //  
+  //  If you leave this blank, jsMath will try to look it up from
+  //  the URL where it loaded this file, but that may not work.
+  //
+  root: "",
+  
+  //
+  //  The default scaling factor for mathematics compared to the
+  //  surrounding text.
+  //
+  scale: 120,
+  
+  //
+  //  1 means use the autoload plug-in to decide if jsMath should be loaded
+  //  0 means always load jsMath
+  //
+  autoload: 1,
+
+  //
+  //  Setting any of these will cause the tex2math plugin to be used
+  //  to add the 
and tags that jsMath needs. See the + // documentation for the tex2math plugin for more information. + // + processSlashParens: 1, // process \(...\) in text? + processSlashBrackets: 1, // process \[...\] in text? + processDoubleDollars: 1, // process $$...$$ in text? + processSingleDollars: 0, // process $...$ in text? + processLaTeXenvironments: 0, // process \begin{xxx}...\end{xxx} outside math mode? + fixEscapedDollars: 0, // convert \$ to $ outside of math mode? + doubleDollarsAreInLine: 0, // make $$...$$ be in-line math? + allowDisableTag: 1, // allow ID="tex2math_off" to disable tex2math? + // + // If you want to use your own custom delimiters for math instead + // of the usual ones, then uncomment the following four lines and + // insert your own delimiters within the quotes. You may want to + // turn off processing of the dollars and other delimiters above + // as well, though you can use them in combination with the + // custom delimiters if you wish. See the tex2math documentation + // for more details. + // + //customDelimiters: [ + // '[math]','[/math]', // to begin and end in-line math + // '[display]','[/display]' // to begin and end display math + //], + + // + // Disallow the use of the @(...) mechanism for including raw HTML + // in the contents of \hbox{}? (If used in a content-management system + // where users are allowed to enter mathematics, setting this to 0 + // would allow them to enter arbitrary HTML code within their + // math formulas, and that poses a security risk.) + // + safeHBoxes: 1, + + // + // Show TeX source when mathematics is double-clicked? + // + allowDoubleClicks: 1, + + // + // Show jsMath font warning messages? (Disabling this prevents yours + // users from finding out that they can have a better experience on your + // site by installing some fonts, so don't disable this). + // + showFontWarnings: 1, + + // + // Use "Process" or "ProcessBeforeShowing". See the jsMath + // author's documentation for the difference between these + // two routines. + // + method: "Process", + + // + // List of plug-ins and extensions that you want to be + // loaded automatically. E.g. + // ["plugins/mimeTeX.js","extensions/AMSsymbols.js"] + // + loadFiles: [], + + // + // List of fonts to load automatically. E.g. + // ["cmmib10"] + // + loadFonts: [], + + // + // List of macros to define. These are of the form + // name: value + // where 'value' is the replacement text for the macro \name. + // The 'value' can also be [value,n] where 'value' is the replacement + // text and 'n' is the number of parameters for the macro. + // Note that backslashes must be doubled in the replacement string. + // E.g., + // { + // RR: '{\\bf R}', + // bold: ['{\\bf #1}', 1] + // } + // + macros: {}, + + // + // Allow jsMath to enter global mode? + // (Uses frames, so may not always work with complex web sites) + // + allowGlobal: 1, + + // + // Disable image fonts? (In case you don't load them on your server.) + // + noImageFonts: 0 + +}; + +/****************************************************************/ +/****************************************************************/ +// +// DO NOT MAKE CHANGES BELOW THIS +// +/****************************************************************/ +/****************************************************************/ + +if (jsMath.Easy.root == "") { + jsMath.Easy.root = document.getElementsByTagName("script"); + jsMath.Easy.root = jsMath.Easy.root[jsMath.Easy.root.length-1].src + if (jsMath.Easy.root.match(/\/easy\/[^\/]*$/)) { + jsMath.Easy.root = jsMath.Easy.root.replace(/\/easy\/[^\/]*$/,""); + } else { + jsMath.Easy.root = jsMath.Easy.root.replace(/\/(jsMath\/(easy\/)?)?[^\/]*$/,"/jsMath"); + } +} +jsMath.Easy.root = jsMath.Easy.root.replace(/\/$/,""); // trim trailing "/" if any + +document.write(' + + + + + diff --git a/jsMath/jsMath-controls.html b/jsMath/jsMath-controls.html new file mode 100644 index 00000000..e395ebed --- /dev/null +++ b/jsMath/jsMath-controls.html @@ -0,0 +1,467 @@ + + + + + + + + + + + + +
+
+jsMath v +(type fonts) +[help] +

+ + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+
  + + + + + + + + + + +
+ +
+
+
+
+  + +
+
+
+
+
+  + + +
+Click the jsMath button or ALT-click +on mathematics to reopen this panel. +

+
+
+ + + +
+
+jsMath Options +[help] +

+

+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
Autoselect best font
Show font warnings
Use image alpha channels
Print image-font help
Always use hi-res fonts
Show progress messages
Force asynchronous processing
Don't show page until complete
Show jsMath button
+
+ + + + + + + + + + + + + + + + + + + + +
Scale all mathematics to %
+Use native TeX fonts +(download) +
+Use image fonts +( scalable)
+Use images for symbols only
+Use native Unicode fonts
Use Global mode + +
Save settings for + +
+ + + + + + +
  + +   + + +  +
+ +
+
+
+
+

+ + + + + + + diff --git a/jsMath/jsMath-easy-load.js b/jsMath/jsMath-easy-load.js new file mode 100644 index 00000000..49fe20a1 --- /dev/null +++ b/jsMath/jsMath-easy-load.js @@ -0,0 +1,165 @@ +/* + * jsMath-easy-load.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file is used to load jsMath with one easy '); + +} else { + jsMath.Easy.tex2math = + (jsMath.Easy.processSingleDollars || + jsMath.Easy.processDoubleDollars || + jsMath.Easy.processSlashParens || + jsMath.Easy.processSlashBrackets || + jsMath.Easy.processLaTeXenvironments || + jsMath.Easy.fixEscapedDollars || + jsMath.Easy.customDelimiters); + + if (!jsMath.Setup) {jsMath.Setup = {}} + if (!jsMath.Setup.UserEvent) {jsMath.Setup.UserEvent = {}} + jsMath.Setup.UserEvent.onload = function () { + var easy = jsMath.Easy; + if (easy.tex2math) jsMath.Setup.Script("plugins/tex2math.js"); + var i; + if (easy.loadFiles) { + for (i = 0; i < easy.loadFiles.length; i++) + jsMath.Setup.Script(easy.loadFiles[i]); + } + if (easy.loadFonts) { + for (i = 0; i < easy.loadFonts.length; i++) + jsMath.Font.Load(easy.loadFonts[i]); + } + if (easy.macros) { + for (i in easy.macros) { + if (typeof(easy.macros[i]) == 'string') { + jsMath.Macro(i,easy.macros[i]); + } else { + jsMath.Macro(i,easy.macros[i][0],easy.macros[i][1]); + } + } + } + } + document.write(''+"\n"); +} + +jsMath.Easy.onload = function () { + if (jsMath.Easy.loaded) {return} else {jsMath.Easy.loaded = 1} + if (jsMath.Easy.autoloadCheck) jsMath.Autoload.Check(); + if (jsMath.Easy.tex2math) { + jsMath.Synchronize(function () { + if (jsMath.Easy.findCustomSettings) + jsMath.tex2math.Convert(document,jsMath.Easy.findCustomSettings); + if (jsMath.Easy.customDelimiters) { + var s = jsMath.Easy.customDelimiters; + jsMath.tex2math.CustomSearch(s[0],s[1],s[2],s[3]); + jsMath.tex2math.ConvertCustom(); + } + }); + } + (jsMath[jsMath.Easy.method])(); +} + +if (window.addEventListener) {window.addEventListener("load",jsMath.Easy.onload,false)} +else if (window.attachEvent) {window.attachEvent("onload",jsMath.Easy.onload)} +else {window.onload = jsMath.Easy.onload} diff --git a/jsMath/jsMath-fallback-mac-mozilla.js b/jsMath/jsMath-fallback-mac-mozilla.js new file mode 100644 index 00000000..bd2d429f --- /dev/null +++ b/jsMath/jsMath-fallback-mac-mozilla.js @@ -0,0 +1,107 @@ +/* + * jsMath-fallback-mac-mozilla.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed by Mozilla-based browsers on the Mac + * for when the TeX fonts are not available. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +/******************************************************************** + * + * Fix the default non-TeX-font characters to work with Mozilla + * + */ + +jsMath.Update.TeXfonts({ + cmmi10: { +// '41': // leftharpoondown +// '43': // rightharpoondown + '44': {c: '˓'}, + '45': {c: '˒'}, + '47': {c: ''}, +// '92': // natural + '126': {c: ''} + }, + + cmsy10: { + '0': {c: '–', tclass: 'normal'}, + '11': {c: '/', tclass: 'normal'}, + '42': {c: '⥣'}, '43': {c: '⥥'}, + '48': {c: '', tclass: 'normal'}, + '93': {c: '∪+'}, + '104': {c: ''}, + '105': {c: ''}, + '109': {c: '⥣'} +//, '116': // sqcup +// '117': // sqcap +// '118': // sqsubseteq +// '119': // sqsupseteq + }, + + cmex10: { + '10': {c: ''}, + '11': {c: ''}, + '14': {c: '/'}, '15': {c: '\\'}, + '28': {c: ''}, + '29': {c: ''}, + '30': {c: '/'}, '31': {c: '\\'}, + '42': {c: ''}, + '43': {c: ''}, + '44': {c: '/'}, '45': {c: '\\'}, + '46': {c: '/'}, '47': {c: '\\'}, + '68': {c: ''}, + '69': {c: ''}, +// '70': // sqcup +// '71': // big sqcup + '72': {ic: .194}, '73': {ic: .444}, + '82': {tclass: 'bigop1cx', ic: .15}, '90': {tclass: 'bigop2cx', ic:.6}, + '85': {c: '∪+'}, + '93': {c: '∪+'} + } + +}); + +jsMath.Setup.Styles({ + '.typeset .symbol': "font-family: Osaka", + '.typeset .arrow1': "font-family: Osaka; position: relative; top: .125em; margin: -1px", + '.typeset .arrow2': "font-family: AppleGothic; font-size: 100%; position:relative; top: .11em; margin:-1px", + '.typeset .bigop1': "font-family: AppleGothic; font-size: 110%; position:relative; top: .9em; margin:-.05em", + '.typeset .bigop1b': "font-family: Osaka; font-size: 140%; position: relative; top: .8em; margin:-.1em", + '.typeset .bigop1c': "font-family: AppleGothic; font-size: 125%; position:relative; top: .85em; margin:-.3em", + '.typeset .bigop1cx': "font-family: 'Apple Chancery'; font-size: 125%; position:relative; top: .7em; margin:-.1em", + '.typeset .bigop2': "font-family: AppleGothic; font-size: 175%; position:relative; top: .85em; margin:-.1em", + '.typeset .bigop2b': "font-family: Osaka; font-size: 200%; position: relative; top: .75em; margin:-.15em", + '.typeset .bigop2c': "font-family: AppleGothic; font-size: 300%; position:relative; top: .75em; margin:-.35em", + '.typeset .bigop2cx': "font-family: 'Apple Chancery'; font-size: 250%; position:relative; top: .7em; margin-left:-.1em; margin-right:-.2em", + '.typeset .delim1b': "font-family: Times; font-size: 150%; position:relative; top:.8em; margin:.01em", + '.typeset .delim2b': "font-family: Times; font-size: 210%; position:relative; top:.8em; margin:.01em", + '.typeset .delim3b': "font-family: Times; font-size: 300%; position:relative; top:.75em; margin:.01em", + '.typeset .delim4b': "font-family: Times; font-size: 400%; position:relative; top:.725em; margin:.01em" +}); + + +/* + * replace \not and \joinrel with better dimensions + */ + +jsMath.Macro('not','\\mathrel{\\rlap{\\kern 3mu/}}'); +jsMath.Macro('joinrel','\\mathrel{\\kern-3mu}'); diff --git a/jsMath/jsMath-fallback-mac-msie.js b/jsMath/jsMath-fallback-mac-msie.js new file mode 100644 index 00000000..97bd15eb --- /dev/null +++ b/jsMath/jsMath-fallback-mac-msie.js @@ -0,0 +1,200 @@ +/* + * jsMath-fallback-mac-msie.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed by Internet Explorer on the Mac + * for when the TeX fonts are not available. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +/******************************************************************** + * + * Fix the default non-TeX-font characters to work with MSIE + * + */ + +jsMath.Update.TeXfonts({ + cmr10: { + '0': {c: 'G', tclass: 'greek'}, + '1': {c: 'D', tclass: 'greek'}, + '2': {c: 'Q', tclass: 'greek'}, + '3': {c: 'L', tclass: 'greek'}, + '4': {c: 'X', tclass: 'greek'}, + '5': {c: 'P', tclass: 'greek'}, + '6': {c: 'S', tclass: 'greek'}, + '7': {c: '¡', tclass: 'greek'}, + '8': {c: 'F', tclass: 'greek'}, + '9': {c: 'Y', tclass: 'greek'}, + '10': {c: 'W', tclass: 'greek'}, + '22': {c: '`', tclass: 'symbol3'} + }, + + cmti10: { + '0': {c: 'G', tclass: 'igreek'}, + '1': {c: 'D', tclass: 'igreek'}, + '2': {c: 'Q', tclass: 'igreek'}, + '3': {c: 'L', tclass: 'igreek'}, + '4': {c: 'X', tclass: 'igreek'}, + '5': {c: 'P', tclass: 'igreek'}, + '6': {c: 'S', tclass: 'igreek'}, + '7': {c: '¡', tclass: 'igreek'}, + '8': {c: 'F', tclass: 'igreek'}, + '9': {c: 'Y', tclass: 'igreek'}, + '10': {c: 'W', tclass: 'igreek'}, + '22': {c: '`', tclass: 'symbol3'} + }, + + cmbx10: { + '0': {c: 'G', tclass: 'bgreek'}, + '1': {c: 'D', tclass: 'bgreek'}, + '2': {c: 'Q', tclass: 'bgreek'}, + '3': {c: 'L', tclass: 'bgreek'}, + '4': {c: 'X', tclass: 'bgreek'}, + '5': {c: 'P', tclass: 'bgreek'}, + '6': {c: 'S', tclass: 'bgreek'}, + '7': {c: '¡', tclass: 'bgreek'}, + '8': {c: 'F', tclass: 'bgreek'}, + '9': {c: 'Y', tclass: 'bgreek'}, + '10': {c: 'W', tclass: 'bgreek'}, + '22': {c: '`', tclass: 'symbol3'} + }, + cmmi10: { + '0': {c: 'G', tclass: 'igreek'}, + '1': {c: 'D', tclass: 'igreek'}, + '2': {c: 'Q', tclass: 'igreek'}, + '3': {c: 'L', tclass: 'igreek'}, + '4': {c: 'X', tclass: 'igreek'}, + '5': {c: 'P', tclass: 'igreek'}, + '6': {c: 'S', tclass: 'igreek'}, + '7': {c: '¡', tclass: 'igreek'}, + '8': {c: 'F', tclass: 'igreek'}, + '9': {c: 'Y', tclass: 'igreek'}, + '10': {c: 'W', tclass: 'igreek'}, + '11': {c: 'a', tclass: 'greek'}, + '12': {c: 'b', tclass: 'greek'}, + '13': {c: 'g', tclass: 'greek'}, + '14': {c: 'd', tclass: 'greek'}, + '15': {c: 'e', tclass: 'greek'}, + '16': {c: 'z', tclass: 'greek'}, + '17': {c: 'h', tclass: 'greek'}, + '18': {c: 'q', tclass: 'greek'}, + '19': {c: 'i', tclass: 'greek'}, + '20': {c: 'k', tclass: 'greek'}, + '21': {c: 'l', tclass: 'greek'}, + '22': {c: 'm', tclass: 'greek'}, + '23': {c: 'n', tclass: 'greek'}, + '24': {c: 'x', tclass: 'greek'}, + '25': {c: 'p', tclass: 'greek'}, + '26': {c: 'r', tclass: 'greek'}, + '27': {c: 's', tclass: 'greek'}, + '28': {c: 't', tclass: 'greek'}, + '29': {c: 'u', tclass: 'greek'}, + '30': {c: 'f', tclass: 'greek'}, + '31': {c: 'c', tclass: 'greek'}, + '32': {c: 'y', tclass: 'greek'}, + '33': {c: 'w', tclass: 'greek'}, +// '41': // leftharpoondown +// '43': // rightharpoondown +// '44': // hook left +// '45': // hook right +// '92': // natural + '94': {c: ''}, + '95': {c: ''} +// '127': // half-circle down accent? + }, + + cmsy10: { + '0': {c: '–', tclass: 'normal'}, + '11': {c: '/', tclass: 'normal'}, + '16': {c: '', tclass: 'normal'}, + '48': {c: ''}, + '93': {c: '∪+'}, + '96': {c: '|', tclass: 'normal'}, + '104': {c: ''}, + '105': {c: ''}, + '109': {c: '⇑'}, + '110': {c: '\\', d:0, tclass: 'normal'} +// '111': // wr +//, '113': // amalg +// '116': // sqcup +// '117': // sqcap +// '118': // sqsubseteq +// '119': // sqsupseteq + }, + + cmex10: { + '10': {c: ''}, + '11': {c: ''}, + '14': {c: '/'}, '15': {c: '\\'}, + '28': {c: ''}, + '29': {c: ''}, + '30': {c: '/'}, '31': {c: '\\'}, + '42': {c: ''}, + '43': {c: ''}, + '44': {c: '/'}, '45': {c: '\\'}, + '46': {c: '/'}, '47': {c: '\\'}, + '68': {c: ''}, + '69': {c: ''}, +// '70': // sqcup +// '71': // big sqcup + '72': {ic: 0}, '73': {ic: 0}, + '82': {tclass: 'bigop1cx', ic: .15}, '90': {tclass: 'bigop2cx', ic:.6}, + '85': {c: '∪+'}, + '93': {c: '∪+'}, +// '96': // coprod +// '97': // big coprod + '98': {c: '︿', h: 0.722, w: .58, tclass: 'wide1'}, + '99': {c: '︿', h: 0.722, w: .58, tclass: 'wide2'}, + '100': {c: '︿', h: 0.722, w: .58, tclass: 'wide3'}, + '101': {c: '~', h: 0.722, w: .42, tclass: 'wide1a'}, + '102': {c: '~', h: 0.8, w: .73, tclass: 'wide2a'}, + '103': {c: '~', h: 0.8, w: 1.1, tclass: 'wide3a'} + } + +}); + +jsMath.Setup.Styles({ + '.typeset .arrow1': "font-family: Osaka; position: relative; top: .125em; margin: -1px", + '.typeset .arrow2': "font-family: Osaka; position: relative; top: .1em; margin:-1px", + '.typeset .bigop1': "font-family: Symbol; font-size: 110%; position:relative; top: .8em; margin:-.05em", + '.typeset .bigop1b': "font-family: Symbol; font-size: 140%; position: relative; top: .8em; margin:-.1em", + '.typeset .bigop1c': "font-family: Osaka; font-size: 125%; position:relative; top: .85em; margin:-.3em", + '.typeset .bigop1cx': "font-family: 'Apple Chancery'; font-size: 125%; position:relative; top: .7em; margin:-.1em", + '.typeset .bigop2': "font-family: Symbol; font-size: 175%; position:relative; top: .8em; margin:-.07em", + '.typeset .bigop2a': "font-family: Baskerville; font-size: 175%; position: relative; top: .65em", + '.typeset .bigop2b': "font-family: Symbol; font-size: 175%; position: relative; top: .8em; margin:-.07em", + '.typeset .bigop2c': "font-family: Osaka; font-size: 230%; position:relative; top: .85em; margin:-.35em", + '.typeset .bigop2cx': "font-family: 'Apple Chancery'; font-size: 250%; position:relative; top: .6em; margin-left:-.1em; margin-right:-.2em", + '.typeset .delim1b': "font-family: Times; font-size: 150%; position:relative; top:.8em", + '.typeset .delim2b': "font-family: Times; font-size: 210%; position:relative; top:.75em;", + '.typeset .delim3b': "font-family: Times; font-size: 300%; position:relative; top:.7em;", + '.typeset .delim4b': "font-family: Times; font-size: 400%; position:relative; top:.65em;", + '.typeset .symbol3': "font-family: Symbol", + '.typeset .wide1': "font-size: 50%; position: relative; top:-1.1em", + '.typeset .wide2': "font-size: 80%; position: relative; top:-.7em", + '.typeset .wide3': "font-size: 125%; position: relative; top:-.5em", + '.typeset .wide1a': "font-size: 75%; position: relative; top:-.5em", + '.typeset .wide2a': "font-size: 133%; position: relative; top: -.15em", + '.typeset .wide3a': "font-size: 200%; position: relative; top: -.05em", + '.typeset .greek': "font-family: Symbol", + '.typeset .igreek': "font-family: Symbol; font-style:italic", + '.typeset .bgreek': "font-family: Symbol; font-weight:bold" +}); diff --git a/jsMath/jsMath-fallback-mac.js b/jsMath/jsMath-fallback-mac.js new file mode 100644 index 00000000..f1a3749a --- /dev/null +++ b/jsMath/jsMath-fallback-mac.js @@ -0,0 +1,29 @@ +/* + * jsMath-fallback-mac.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed for when the TeX fonts are not available + * with a browser on the Mac. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2010 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +jsMath.Script.Uncompress([ + ['jsMath.Add(jsMath.TeX,{cmr10',':[{c:"Γ",','tclass:"greek"},{c:"&','Delta;",',2,'Theta;",',2,'Lambda;",',2,'Xi;",',2,'Pi;",',2,'Sigma;",',2,'Upsilon;",',2,'Phi;",',2,'Psi;",',2,'Omega;",','tclass:"','greek','"},{c:"','ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"normal"},{c',':"fi",',28,':"fl",',28,':"ffi",',28,':"ffl",',28,':"ı',';",a:0,',28,':"j",d:0.2,',28,':"`",',22,'accent','"},{c:"&#','xB4;",',22,44,45,'x2C7;",',22,44,45,'x2D8;",',22,44,'"},{c:\'ˉ',';\',',22,44,45,'x2DA;",',22,44,45,'x0327;",',28,':"ß",',28,':"æ',38,28,':"œ',38,28,':"ø",',28,':"Æ",',28,':"Œ",',28,':"Ø",',28,':"?",krn:{"108":-0.278,"76":-0.319},',28,':"!",lig:{"96":60},',28,':"”",',28,':"#",',28,':"$",',28,':"%",',28,':"&",',28,':"’",krn:{"63":0.111,"33":0.','111},','lig:{"39":34},',28,':"(",','d:0.2,',28,':")",',105,28,':"*",',28,':"+",','a:0.1,',28,':",",a:-0.3,d:0.2,','w:0.278,',28,':"-",a:0,lig:{"45":123},',28,':".",a:-0.','25,',28,':"/",',28,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,':":",',28,':";",',28,':"¡",',28,':"=",a:0,d:-0.1,',28,':"¿",',28,':"?",lig:{"96":62},',28,':"@",',28,':"A','",krn:{"','116','":-0.0278,"','67',162,'79',162,'71',162,'85',162,'81',162,'84','":-0.0833,"','89',174,'86','":-0.111',',"87":-0.',101,28,':"B",',28,':"C",',28,':"D',160,'88',162,'87',162,'65',162,'86',162,'89','":-0.0278','},',28,':"E",',28,':"F',160,'111',174,'101',174,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',162,'67',162,'71',162,'81',197,'},',28,':"G",',28,':"H",',28,':"I',160,'73":','0.0278','},',28,':"J",',28,':"K',160,'79',162,'67',162,'71',162,'81',197,'},',28,':"L',160,'84',174,'89',174,'86',178,179,101,28,':"M",',28,':"N",',28,':"O',160,'88',162,'87',162,'65',162,'86',162,'89',197,'},',28,':"P',160,'65',174,'111',162,'101',162,'97',162,'46',174,'44":-0.0833},',28,':"Q",','d:0.1,',28,':"R',160,'116',162,'67',162,'79',162,'71',162,'85',162,'81',162,'84',174,'89',174,'86',178,179,101,28,':"S",',28,':"T',160,'121',162,'101',174,'111',209,'0833,"117":-0.0833','},',28,':"U",',28,':"V",','ic:0.0139,krn:{"','111',174,'101',174,'117',209,'111,"79',162,'67',162,'71',162,'81',197,'},',28,':"W",',329,'111',174,'101',174,'117',209,'111,"79',162,'67',162,'71',162,'81',197,'},',28,':"X',160,'79',162,'67',162,'71',162,'81',197,'},',28,':"Y",ic:0.025,','krn:{"101',174,'111',209,323,'},',28,':"Z",',28,':"[",',288,28,':"“",',28,':"]",',288,28,':"ˆ",',22,44,45,'x2D9;",',22,44,45,'x2018;",lig:{"96":92},',28,':"a','",a:0,krn:{"','118',162,'106','":0.0556,"','121',162,'119',197,'},',28,':"b',160,'101','":0.0278,"','111',419,'120',162,'100',419,'99',419,'113',419,'118',162,'106',409,'121',162,'119',197,'},',28,':"c',405,'104',162,'107',197,'},',28,':"d",',28,':"e",a:0,',28,':"f',26,'12,"102":11,"108":13},',28,':"g','",a:0,d:0.2,',329,'106":',227,'},',28,':"h',160,'116',162,'117',162,'98',162,'121',162,'118',162,'119',197,'},',28,':"i",',28,40,28,':"k',160,'97','":-0.0556,"','101',162,'97',162,'111',162,'99',197,'},',28,':"l",',28,':"m',405,'116',162,'117',162,'98',162,'121',162,'118',162,'119',197,'},',28,':"n',405,'116',162,'117',162,'98',162,'121',162,'118',162,'119',197,'},',28,':"o',405,'101',419,'111',419,'120',162,'100',419,'99',419,'113',419,'118',162,'106',409,'121',162,'119',197,'},',28,':"p',457,377,419,'111',419,'120',162,'100',419,'99',419,'113',419,'118',162,'106',409,'121',162,'119',197,'},',28,':"q',457,28,':"','r",a:0,',28,':"s",a:0,',28,':"t',160,'121',162,'119',197,'},',28,':"u',405,'119',197,'},',28,':"v",a:0,',329,'97',486,'101',162,'97',162,'111',162,'99',197,'},',28,':"w",a:0,',329,'101',162,'97',162,'111',162,'99',197,'},',28,':"x",a:0,',28,':"y',457,329,'111',162,'101',162,'97',162,'46',174,'44":-0.0833},',28,':"z",a:0,',28,':"–',';",a:0.1,','ic:0.0278,','lig:{"45":124},',28,':"—',645,646,28,':"˝",',22,44,45,'x2DC;",',22,44,45,'xA8;",',22,44,'"}],cmmi10',1,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.','0833},',22,'igreek"},{c:"&',3,'krn:{"127":0.','167},',22,670,5,'ic:',227,',krn:{"127":0.','0833},',22,670,7,672,'167},',22,670,9,'ic:0.0757',679,'0833},',22,670,11,'ic:0.0812,krn:{"61',486,'59":-0.0556,"58":-0.0556,"127":0.','0556},',22,670,13,'ic:0.0576',679,'0833},',22,670,15,'ic:0.139',667,'0556},',22,670,17,672,'0833},',22,670,19,'ic:0.11,krn:{"61',486,697,'0556},',22,670,21,'ic:0.0502',679,'0833},',22,670,'alpha',645,'ic:0.0037',679,'0278},',2,'beta',';",d:0.1,','ic:0.0528',679,'0833},',2,'gamma',645,288,'ic:0.0556,',2,'delta;",ic:0.0378,krn:{"',697,'0556},',2,'epsilon;",a:0',679,'0556},',22,'lucida"},{c:"&zeta',738,'ic:0.0738',679,'0833},',2,'eta',645,288,'ic:0.0359',679,'0556},',2,'theta;",ic:',227,679,'0833},',2,'iota;",a:0.1',679,'0556},',2,'kappa',645,2,'lambda;",',2,'mu',645,'d:0.1',679,'0278},',2,'nu',645,'ic:0.0637,krn:{"',697,'0278},',2,'xi',738,'ic:0.046',679,101,2,'pi',645,'ic:0.0359,',2,'rho',645,'d:0.1',679,'0833},',2,'sigma',645,803,'krn:{"59',486,'58":-0.0556','},',2,'tau',645,'ic:0.113,krn:{"',697,'0278},',2,'upsilon',645,'ic:0.0359',679,'0278},',2,'phi;",a:0.3,d:0.1',679,'0833},',2,'chi',645,'d:0.1',679,'0556},',2,'psi;",','a:0.3,d:0.1,','ic:0.0359',679,101,2,'omega',645,803,2,752,'.1',679,'0833},',22,'greek',45,'x3D1;",',672,'0833},',22,'greek',45,'x3D6',645,646,22,'lucida',45,'x3F1',645,'d:0.2',679,'0833},',22,'lucida',45,'x3C2',645,'d:0.2,ic:0.','0799',679,'0833},',22,'greek',45,'x3D5',645,'d:0.1',679,'0833},',22,'greek',45,'x21BC',';",a:0,d:-0.','2,',22,'harpoon',45,'x21BD',896,'1,',22,'harpoon',45,'x21C0',896,'2,',22,'harpoon',45,'x21C1',896,'1,',22,'harpoon',57,'font-size: 133%; ',58,':.1em; margin:-.2em; left:-.05em">&#','x02D3',60,113,22,'lucida',57,919,58,921,'x02D2',60,113,22,'lucida',57,'font-size:50%">&#','x25B7',';
\',a:0,',22,'symbol',57,937,'x25C1',939,22,941,24,'0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,120,'3,',28,115,28,':"<',645,28,':\'/\',',288,'krn:{"1',486,'65',486,'77',486,'78',486,'89',409,'90":-0.0556},',28,':">',645,28,977,937,'x2605',939,'tclass:"symbol"},{c:"&#','x2202;",ic:0.0556',679,'0833},',28,':"A",',672,'139','},tclass:"italic"},{c:"','B",ic:0.0502',679,'0833',1011,'C",ic:0.0715,krn:{"61',162,697,'0833',1011,'D",ic:',227,679,'0556',1011,'E",ic:0.0576',679,'0833',1011,'F",ic:0.139',667,'0833',1011,'G",',672,'0833',1011,'H",ic:0.0812,krn:{"61',486,697,'0556',1011,'I",ic:0.0785',679,'111',1011,'J",ic:0.0962',667,'167',1011,'K",ic:0.0715,krn:{"61',486,697,'0556',1011,'L",',672,'0278',1011,'M','",ic:0.109,krn:{"','61',486,697,'0833',1011,'N',1061,'61',174,'61',162,697,'0833',1011,'O",ic:',227,679,'0833',1011,'P",ic:0.139',667,'0833',1011,'Q",d:0.2',679,'0833',1011,'R",ic:0.00773',679,'0833',1011,'S",ic:0.0576,krn:{"61',486,697,'0833',1011,'T','",ic:0.139,krn:{"','61',162,697,'0833',1011,'U',1061,'59',178,',"58',178,',"61',486,'127":',227,1011,'V",ic:0.222,krn:{"59','":-0.167,"','58',1117,'61',178,1011,'W',1099,'59',1117,'58',1117,'61',178,1011,'X",ic:0.0785,krn:{"61',174,'61',162,697,'0833',1011,'Y",ic:0.222,krn:{"59',1117,'58',1117,'61',178,1011,'Z",ic:0.0715,krn:{"61',486,697,'0833},',22,'italic',45,'x266D;",',22,'symbol2',45,'x266E;",',22,'symbol2',45,'x266F;",',22,'symbol2',57,'position: relative; top',':.5em">⌣',939,'d:-0.1,',28,977,1165,':-.3em">⌢',939,'d:-0.1,',28,977,'margin:-.','2em">ℓ',60,672,101,22,941,24,'a",a:0,',22,'italic"},{c:"','b",',22,1187,'c",a:0',679,'0556',1011,'d',160,'89',409,'90',486,'106',178,',"102',1117,'127":0.167',1011,'e",a:0',679,'0556',1011,'f",',880,'108,krn:{"',697,'167',1011,'g',457,'ic:0.0359',679,'0278',1011,'h',160,'127',197,1011,'i",',22,1187,'j",',880,'0572,krn:{"59',486,816,1011,'k",ic:0.0315,',22,1187,'l",ic:0.0197',679,'0833',1011,'m",a:0,',22,1187,'n",a:0,',22,1187,'o",a:0',679,'0556',1011,'p",a:0,d:0.2',679,'0833',1011,'q',457,'ic:0.0359',679,'0833',1011,583,646,'krn:{"',697,'0556',1011,'s",a:0',679,'0556',1011,'t",',672,'0833',1011,'u",a:0',679,'0278',1011,'v",a:0,ic:0.0359',679,'0278',1011,'w",a:0,ic:0.0269',679,'0833',1011,'x",a:0',679,'0278',1011,'y',457,'ic:0.0359',679,'0556',1011,'z",a:0,ic:0.044',679,'0556},',22,'italic',45,'x131;",a:0',679,'0278},',22,'italic',45,'x237',38,'d:0.2',679,'0833},',22,'italic',45,'x2118;",d:0',679,101,22,'asymbol',57,'position:relative; left: .4em; top: -.8em; ',978,': 50%">→',60,'ic:0.154,',1003,'x0311;",ic:0.399,',22,'normal"}],cmsy10:[{c:"−',645,1003,'xB7',896,'2,',1003,'xD7',38,22,941,57,58,':.3em">*',939,1003,'xF7',38,1003,'x25CA;",',22,'lucida',45,'xB1',645,1003,'x2213;",',1003,'x2295;",',1003,'x2296;",',1003,'x2297;",',1003,'x2298;",',1003,'x2299;",',22,'symbol3',45,'x25EF;",',22,941,57,58,':.25em;">°',60,'a:0.3,d:-0.3,',1003,'x2022;",a:0.2,d:-0.25,',1003,'x224D',645,1003,'x2261',645,1003,'x2286;",',1003,'x2287;",',1003,'x2264;",',1003,'x2265;",',1003,'x2AAF;",',1003,'x2AB0;",',22,941,'"},{c:"~",a:0,d:-0.2,',28,':"≈',645,'d:-0.1,',1003,'x2282;",',1003,'x2283;",',1003,'x226A;",',1003,'x226B;",',1003,'x227A;",',1003,'x227B;",',1003,'x2190',896,'15,',22,'arrows',45,'x2192',896,'15,',22,'arrows',45,'x2191',';",h:0.85,',22,'arrow1a',45,'x2193',1435,22,'arrow1a',45,'x2194',38,22,'arrow1',45,'x2197',1435,288,22,'arrows',45,'x2198',1435,288,22,'arrows',45,'x2243',645,1003,'x21D0',645,22,'arrows',45,'x21D2',645,22,'arrows',45,'x21D1;",h:0.7,',22,'asymbol"},{c:"&#','x21D3;",h:0.7,',22,1476,'x21D4',645,22,'arrows',45,'x2196',1435,288,22,'arrows',45,'x2199',1435,288,22,'arrows',45,'x221D',645,'d:-0.1,',22,941,57,919,'margin-right',': -.1em; ',1165,':.4em">′',939,22,'lucida',45,'x221E',645,1003,'x2208;",',1003,'x220B;",',1003,'x25B3;",',1003,'x25BD;",',22,941,'"},{c:"/",',22,941,57,978,':50%; ',58,':-.3em; ',1504,':-.2em">|∖',60,842,22,'lucida',45,'x2240;",',22,'asymbol',57,58,': .86em">√',60,'h:0.04,d:0.9,',22,'lucida',45,'x2210',738,1003,'x2207;",',1003,'x222B;",h:1,',288,'ic:0.111,',22,'root',45,'x2294;",',1003,'x2293;",',1003,'x2291;",',1003,'x2292;",',1003,'xA7',738,28,':"†',738,28,':"‡',738,28,':"¶",',842,22,'lucida',45,'x2663;",',1003,'x2666;",',1003,'x2665;",',1003,'x2660;",',22,941,'"}],cmex10:[{c',104,'h:0.04,d:1.16,n:','16,',22,'delim1"},{c',107,1829,'17,',22,1832,386,1829,'104,',22,1832,391,1829,'105,',22,'delim1',45,1714,'",',1829,'106,',22,'delim1a',45,'x23A6;",',1829,'107,',22,'delim1a',45,'x23A1;",',1829,'108,',22,'delim1a',45,'x23A4;",',1829,'109,',22,'delim1a"},{c:"{",',1829,'110,',22,1832,1737,1829,'111,',22,'delim1',45,'x3008;",',1829,'68,',22,'delim1c',45,'x3009;",',1829,'69,',22,'delim1c"},{c:"|",','h:0.7,d:0.15,delim:{rep:','12},',22,'vertical1',1752,1894,'13},',22,'vertical1',45,'x2215;",',1829,'46,',22,'delim1b',45,'x2216;",',1829,'47,',22,'delim1b','"},{c:"(",','h:0.04,d:1.76,n:','18,',22,'delim2"},{c',107,1916,'19,',22,'delim2',1915,'h:0.04,d:2.36,n:','32,',22,'delim3"},{c',107,1926,'33,',22,1929,386,1926,'34,',22,1929,391,1926,'35,',22,'delim3',45,1714,';",',1926,'36,',22,'delim3a',45,'x23A6;",',1926,'37,',22,'delim3a',45,'x23A1;",',1926,'38,',22,'delim3a',45,'x23A4;",',1926,'39,',22,'delim3a',57,'margin: -.1em','">{}{}{\',',23,'26,',1,224,'"},{',255,256,'">}\',',23,'27,',1,224,'"},{c:\'\',h:0.','04,d:1.16,n:113,',1,'root',270,': 190',272,'925em">√\',',23,'114,',1,277,270,': 250',272,'925em',274,'06,d:2.36,n:115,',1,277,270,': 320',272,'92em',274,'08,d:2.96,n:116,',1,277,270,': 400',272,'92em',274,'1,d:3.75,n:117,',1,277,270,': 500',272,'9em',274,'12,d:4.5,n:118,',1,277,270,': 625',272,'9em',274,'14,d:5.7,',1,277,270,':130%">‖\',h:0.9,delim:{top:126,bot:127,rep:119},',1,2,3,'x2191',';",h:0.9,d:0,delim:{','top:120,rep:63},',1,'arrow1a',3,'x2193',332,'bot:121,rep:63},',1,335,270,': 67',272,'35em','; margin-left:-.','5em">&#','x256D',';\',h:0.1,',1,'symbol',270,': 67',272,'35em','; margin-right:-.',347,'x256E',349,1,351,270,': 67',272,'35em',346,347,'x2570',349,1,351,270,': 67',272,'35em',356,347,'x256F',349,1,351,3,'x21D1',';",h:0.7,delim:{','top:126,rep:119},',1,2,3,'x21D3',384,'bot:127,rep:119},',1,2,'"}],cmti10',':[{c:"Γ",','ic:0.133,',1,'igreek"},{c:"&','Delta;",',1,398,'Theta;",','ic:0.094,',1,398,'Lambda;",',1,398,'Xi;",ic:0.153,',1,398,'Pi;",ic:0.164,',1,398,'Sigma;",','ic',':0.12,',1,398,'Upsilon;",','ic:0.111,',1,398,'Phi;",','ic:0.0599,',1,398,'Psi;",','ic:0.111,',1,398,'Omega;",','ic:0.103,',1,'igreek','"},{c:"ff','",ic:0.212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,"108":15},','tclass:"italic"},{c',':"fi','",ic:0.103,',439,':"fl',441,439,':"ffi',441,439,':"ffl',441,439,':"ı",a:0,','ic:0.','0767,',439,':"j",d:0.2,','ic:0.0374,',439,':"`",',1,'iaccent',3,'xB4;",','ic:0.0969,',1,461,3,'x2C7;",','ic:0.083,',1,461,3,'x2D8;",','ic:0.108,',1,461,3,'x2C9;",',433,1,461,3,'x2DA;",',1,461,'"},{c:"?",','d:0.17,w:0.46,',439,':"ß",','ic:0.105,',439,':"æ",a:0,','ic:0.0751,',439,':"œ",a:0,',493,439,':"ø",','ic:0.0919,',439,':"Æ",','ic',417,439,':"Œ",','ic',417,439,':"Ø",',403,439,':"?",krn:{"108":-0.','256,"76":-0.321},',439,':"!",','ic:0.124,lig:{"96":','60},',439,':"”",','ic:0.0696,',439,':"#",ic:0.0662,',439,':"$",',439,':"%",ic:0.136,',439,':"&",','ic:0.0969,',439,':"’",','ic:0.124,','krn:{"63":0.','102,"33":0.102},lig:{"39":34},',439,':"(",d:0.2,','ic:0.162,',439,':")",d:0.2,','ic:0.0369,',439,':"*",ic:0.149,',439,':"+",a:0.1,','ic:0.0369,',439,':",",a:-0.3,d:0.2,w:0.278,',439,':"-",a:0,ic:0.0283',',lig:{"45":','123},',439,':".",a:-0.25,',439,':"/",ic:0.162,',439,':"0",ic:0.136,',439,':"1",ic:0.136,',439,':"2",ic:0.136,',439,':"3",ic:0.136,',439,':"4",ic:0.136,',439,':"5",ic:0.136,',439,':"6",ic:0.136,',439,':"7",ic:0.136,',439,':"8",ic:0.136,',439,':"9",ic:0.136,',439,':":",ic:0.0582,',439,':";",ic:0.0582,',439,':"¡",','ic:0.0756,',439,':"=",a:0,d:-0.1,','ic:0.0662,',439,':"¿",',439,':"?",','ic:0.122,','lig:{"96":','62},',439,':"@",ic:0.096,',439,':"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',599,'86','":-0.102,"','87',603,'101','":-0.0511,"','97',607,'111',607,'100',607,'99',607,'103',607,'113','":-0.0511','},',439,':"B',441,439,':"C",','ic:0.145,',439,':"D",',403,'krn:{"88','":-0.0256,"','87',631,'65',631,'86',631,'89":-0.','0256},',439,':"E",ic',417,439,':"F','",ic:0.133,krn:{"','111',599,'101',599,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',603,'79',631,'67',631,'71',631,'81":-0.0256','},',439,':"G",ic:0.0872,',439,':"H",ic:0.164,',439,':"I",ic:0.158,',439,':"J",ic:0.14,',439,':"K",',626,'krn:{"79',631,'67',631,'71',631,660,'},',439,':"L",krn:{"84',599,'89',599,'86',603,'87',603,'101',607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"M",ic:0.164,',439,':"N",ic:0.164,',439,':"O",',403,'krn:{"88',631,'87',631,'65',631,'86',631,638,'0256},',439,':"P',441,'krn:{"65":-0.0767},',439,':"Q",d:0.1,',403,439,':"R",ic:0.0387,',597,'0.0256,"84',599,'89',599,'86',603,'87',603,'101',607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"S",ic',417,439,':"T',645,'121',599,'101',599,'111',651,'117',599,'65":-0.0767},',439,':"U",ic:0.164,',439,':"V",ic:0.','184,krn:{"','111',599,'101',599,'117',651,'65',603,'79',631,'67',631,'71',631,660,'},',439,':"W",ic:0.',774,'65":-0.0767},',439,':"X",ic:0.158,krn:{"79',631,'67',631,'71',631,660,'},',439,':"Y",ic:0.','194',',krn:{"101',599,'111',651,'117',599,'65":-0.0767},',439,':"Z",',626,439,':"[",d:0.1,','ic:0.188,',439,':"“",','ic:0.169,',439,':"]",d:0.1,','ic:0.105,',439,':"ˆ",','ic:0.0665,',1,461,3,'x2D9;",','ic:0.118,',1,461,3,'x2018;",',516,'92},',439,':"a','",a:0,ic:0.',454,439,':"b",ic:0.0631',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"c',842,'0565',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"d',441,'krn:{"108":','0.0511},',439,':"e',842,'0751',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"f',437,'12,"102":11,"108":13},',439,':"g','",a:0,d:0.2,ic:0.','0885,',439,':"h",ic:0.',454,439,':"i",ic:0.102,',439,456,626,439,':"k",',474,439,':"l',441,883,'0.0511},',439,':"m',842,454,439,':"n',842,454,'krn:{"39":-0.102},',439,':"o',842,'0631',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"p',910,'0631',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"q',910,'0885,',439,':"r',842,'108',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"s',842,'0821,',439,':"t",ic:0.0949,',439,':"u',842,454,439,':"v',842,'108,',439,':"w',842,1011,883,'0.0511},',439,':"x',842,'12,',439,':"y',910,'0885,',439,':"z',842,'123,',439,':"–",a:0.1,ic:0.','0921',550,'124},',439,':"—",a:0.1,ic:0.','0921,',439,':"˝",',590,1,461,3,'x2DC;",','ic:0.116,',1,461,3,'xA8;",',1,461,'"}],cmbx10',395,1,'bgreek"},{c:"&','Delta;",',1,1055,402,1,1055,'Lambda;",',1,1055,'Xi;",',1,1055,'Pi;",',1,1055,415,1,1055,420,1,1055,424,1,1055,428,1,1055,432,1,'bgreek','"},{c:"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"bold"},{c',':"fi",',1089,':"fl",',1089,':"ffi",',1089,':"ffl",',1089,452,1089,456,1089,':"`",',1,'baccent',3,463,1,1104,3,468,1,1104,3,473,1,1104,3,478,1,1104,3,'x2DA;",',1,1104,486,1089,489,1089,492,1089,495,1089,498,1089,501,1089,505,1089,509,1089,512,'278,"76":-0.319},',1089,515,591,'60},',1089,519,1089,':"#",',1089,':"$",',1089,':"%",',1089,528,1089,531,533,'111,"33":0.111},lig:{"39":34},',1089,536,1089,539,1089,':"*",',1089,544,1089,':",",a:-0.3,d:0.2,w:0.278,',1089,':"-",a:0',550,'123},',1089,':".",a:-0.25,',1089,':"/",',1089,':"0",',1089,':"1",',1089,':"2",',1089,':"3",',1089,':"4",',1089,':"5",',1089,':"6",',1089,':"7",',1089,':"8",',1089,':"9",',1089,':":",',1089,':";",',1089,581,1089,584,1089,':"¿",',1089,589,591,'62},',1089,':"@",',1089,':"A",krn:{"116','":-0.0278,"','67',1217,'79',1217,'71',1217,'85',1217,'81',1217,'84','":-0.0833,"','89',1229,'86":-0.','111,"87":-0.111},',1089,':"B",',1089,625,1089,':"D",krn:{"88',1217,'87',1217,'65',1217,'86',1217,638,'0278},',1089,':"E",',1089,':"F",krn:{"111',1229,'101',1229,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',1217,'67',1217,'71',1217,'81":-0.0278','},',1089,':"G",',1089,':"H",',1089,':"I",krn:{"73":0.0278},',1089,':"J",',1089,':"K",krn:{"79',1217,'67',1217,'71',1217,1264,'},',1089,':"L",krn:{"84',1229,'89',1229,1232,'111,"87":-0.111},',1089,':"M",',1089,':"N",',1089,':"O",krn:{"88',1217,'87',1217,'65',1217,'86',1217,638,'0278},',1089,':"P",krn:{"65',1229,'111',1217,'101',1217,'97',1217,'46',1229,'44":-0.0833},',1089,727,1089,':"R",krn:{"116',1217,'67',1217,'79',1217,'71',1217,'85',1217,'81',1217,'84',1229,'89',1229,1232,'111,"87":-0.111},',1089,':"S",',1089,':"T",krn:{"121',1217,'101',1229,'111',1257,'0833,"117":-0.0833','},',1089,':"U",',1089,773,'0139,krn:{"','111',1229,'101',1229,'117',1257,'111,"79',1217,'67',1217,'71',1217,1264,'},',1089,792,1353,'111',1229,'101',1229,'117',1257,'111,"79',1217,'67',1217,'71',1217,1264,'},',1089,':"X",krn:{"79',1217,'67',1217,'71',1217,1264,'},',1089,805,'025',807,1229,'111',1257,1347,'},',1089,815,1089,818,1089,821,1089,824,1089,827,1,1104,3,832,1,1104,3,837,591,'92},',1089,':"a','",a:0,krn:{"','118',1217,'106":0.','0556,"121',1217,'119":-0.','0278},',1089,':"b",krn:{"101','":0.0278,"','111',1435,'120',1217,'100',1435,'99',1435,'113',1435,'118',1217,1428,'0556,"121',1217,1431,'0278},',1089,':"c',1425,'104',1217,'107":-0.0278},',1089,':"d",',1089,':"e",a:0,',1089,':"f',1087,'12,"102":11,"108":13},',1089,':"g',910,1353,1428,'0278},',1089,':"h",krn:{"116',1217,'117',1217,'98',1217,'121',1217,'118',1217,1431,'0278},',1089,':"i",',1089,456,1089,':"k",krn:{"97":-0.0556,"101',1217,'97',1217,'111',1217,'99":-0.','0278},',1089,':"l",',1089,':"m',1425,'116',1217,'117',1217,'98',1217,'121',1217,'118',1217,1431,'0278},',1089,':"n',1425,'116',1217,'117',1217,'98',1217,'121',1217,'118',1217,1431,'0278},',1089,':"o",a:0',807,1435,'111',1435,'120',1217,'100',1435,'99',1435,'113',1435,'118',1217,1428,'0556,"121',1217,1431,'0278},',1089,':"p",a:0,d:0.2',807,1435,'111',1435,'120',1217,'100',1435,'99',1435,'113',1435,'118',1217,1428,'0556,"121',1217,1431,'0278},',1089,':"q",a:0,d:0.2,',1089,':"r",a:0,',1089,':"s",a:0,',1089,':"t",krn:{"121',1217,1431,'0278},',1089,':"u',1425,1431,'0278},',1089,':"v',842,1353,'97":-0.0556,"101',1217,'97',1217,'111',1217,1497,'0278},',1089,':"w',842,'0139',807,1217,'97',1217,'111',1217,1497,'0278},',1089,':"x",a:0,',1089,':"y',910,1353,'111',1217,'101',1217,'97',1217,'46',1229,'44":-0.0833},',1089,':"z",a:0,',1089,1031,'0278',550,'124},',1089,1036,'0278,',1089,1039,1,1104,3,1044,1,1104,3,'xA8;",',1,1104,'"}]});','jsMath.Setup.Styles({".typeset .','cmr10','":"font-family: ','serif','",".typeset .','italic":"font-style: italic',1655,'bold":"font-weight: bold',1655,'lucida','":"font-family: \'','Lucida Grande','\'",".typeset .',2,'":"font-family: \'Apple Symbols\'; font-size: ','125','%",".typeset .','cal',1661,'Apple Chancery',1663,'arrows','":"font-family: \'Hiragino Mincho Pro',1663,'Arrows',1661,'AppleGothic',1663,'arrow1',1673,'\'; ','position: relative; top',': .075em; margin: -1px',1655,335,1673,'\'; margin:-.','3em',1655,'harpoon',1653,1677,'; ','font-size: ','90',1667,351,1673,1663,'symbol2',1673,1687,'2em',1655,'symbol3',1653,1677,1655,'delim1',1653,'Times; ',1694,'133',272,'7em',1655,'delim1a',1665,'125',272,'75em',1655,'delim1b',1673,'\'; ',1694,'133',272,'8em; ',256,1655,'delim1c',1653,'Symbol; ',1694,'120',272,'8em',';",".typeset .',224,1653,'Baskerville','; ',1694,'180',272,1721,1655,235,1665,'175',272,'8em',1655,'delim2b',1673,'\'; ',1694,'190',272,'8em; ',256,1655,26,1653,'Symbol; ',1694,'167',272,'8em',1739,'delim3',1653,1742,'; ',1694,'250',272,'725em',1655,'delim3a',1665,'240',272,'78em',1655,'delim3b',1673,'\'; ',1694,'250',272,'8em; ',256,1655,'delim3c',1653,351,'; ',1694,'240',272,'775em',1739,'delim4',1653,1742,'; ',1694,'325',272,'7em',1655,'delim4a',1665,'310',272,1721,1655,'delim4b',1673,'\'; ',1694,'325',272,'8em; ',256,1655,'delim4c',1653,'Symbol; ',1694,'300',272,'8em',1739,'vertical',1653,'Copperplate',1655,'vertical1',1653,1839,'; ',1694,'85%; margin: .','15em',1739,'vertical2',1653,1839,'; ',1694,1846,'17em',1739,'greek',1673,'\', serif',346,'2em',356,'2em',1739,435,1673,'\', serif','; font-style:italic',346,'2em',356,'1em',1655,1085,1673,'\', serif','; font-weight:bold',1655,37,1673,'\'; ',1694,'133%; ',1682,': .7em; margin:-.','05em',1655,92,1653,1742,'; ',1694,'100%; ',1682,': .775em',1739,110,1673,'\'; ',1694,'160%; ',1682,': .67em','; margin:-.1em',1655,48,1665,'125%; ',1682,': .',1721,1904,1739,42,1673,'\'; ',1694,'200%; ',1682,': .6em; margin:-.07em',1655,139,1653,1742,'; ',1694,'175%; ',1682,1903,1739,155,1673,'\'; ',1694,'270%; ',1682,': .62em',1904,1655,52,1665,'250%; ',1682,1885,'17em',1739,194,'":"',1694,'67%; ',1682,':-.8em',1655,199,'":"',1694,'110%; ',1682,':-.5em',1655,204,'":"',1694,'175%; ',1682,':-.32em',1655,210,'":"',1694,'75%; ',1682,1959,1655,215,'":"',1694,'133%; ',1682,': -.15em',1655,'wide3a":"',1694,'200%; ',1682,': -.05em',1655,277,1653,1742,1739,'accent":"',1682,': .02em',1655,461,'":"',1682,1994,1868,1655,1104,'":"',1682,1994,1877,'"});','if(jsMath.browser=="','OmniWeb"){jsMath.Update.TeXfonts({cmsy10:{"55":{',255,1694,'75%; position:relative; left:.3em; top:-.15em',346,'3em">˫\'},"104','":{c:\'\'},"105',2015,'right:-.55em">〉\'}}});',1651,'arrow2',1653,'Symbol; ',1694,'100%; ',1682,': -.1em; margin:-1px"})}',2008,'Opera"){',1651,48,'":"margin:0pt .12em 0pt 0pt',1739,52,2031,';"})}',2008,'Mozilla','"){jsMath.Setup.Script("jsMath-fallback-mac-','mozilla.js")}',2008,'MSIE',2038,'msie.js")}jsMath.Macro("not","\\\\mathrel{\\\\rlap{\\\\kern 4mu/}}");jsMath.Box.defaultH=0.8;'] +]); diff --git a/jsMath/jsMath-fallback-pc.js b/jsMath/jsMath-fallback-pc.js new file mode 100644 index 00000000..aa3bf67b --- /dev/null +++ b/jsMath/jsMath-fallback-pc.js @@ -0,0 +1,29 @@ +/* + * jsMath-fallback-pc.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed for when the TeX fonts are not available + * with a browser on the PC. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2010 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +jsMath.Script.Uncompress([ + ['jsMath.Add(jsMath.TeX,{cmr10',':[{c:"Γ",','tclass:"greek"},{c:"&','Delta;",',2,'Theta;",',2,'Lambda;",',2,'Xi;",',2,'Pi;",',2,'Sigma;",',2,'Upsilon;",',2,'Phi;",',2,'Psi;",',2,'Omega;",','tclass:"','greek','"},{c',':"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"normal"},{c',':"fi",',28,':"fl",',28,':"ffi",',28,':"ffl",',28,':"ı',';",a:0,',28,':"j",d:0.2,',28,':"ˋ",',22,'accent','"},{c:"&#','x2CA;",',22,44,45,'x2C7;",',22,44,45,'x2D8;",',22,44,45,'x2C9;",',22,44,45,'x2DA;",',22,44,45,'x0327;",',28,':"ß",',28,':"æ',38,28,':"œ',38,28,':"ø",',28,':"Æ",',28,':"Œ",',28,':"Ø",',28,':"?",krn:{"108":-0.278,"76":-0.319},',28,':"!",lig:{"96":60},',28,':"”",',28,':"#",',28,':"$",',28,':"%",',28,':"&",',28,':"’",krn:{"63":0.111,"33":0.','111},','lig:{"39":34},',28,':"(",','d:0.2,',28,':")",',103,28,':"*",',28,':"+",a',':0.1,',28,':",",a:-','0.3,d:0.2,','w:0.278,',28,':"-",a:0,lig:{"45":123},',28,':".",a:-0.','25,',28,':"/",',28,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,':":",',28,':";",',28,':"¡",',28,':"=",a:0,d:-0.1,',28,':"¿",',28,':"?",lig:{"96":62},',28,':"@",',28,':"A','",krn:{"','116','":-0.0278,"','67',161,'79',161,'71',161,'85',161,'81',161,'84','":-0.0833,"','89',173,'86','":-0.111',',"87":-0.',99,28,':"B",',28,':"C",',28,':"D',159,'88',161,'87',161,'65',161,'86',161,'89','":-0.0278','},',28,':"E",',28,':"F',159,'111',173,'101',173,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',161,'67',161,'71',161,'81',196,'},',28,':"G",',28,':"H",',28,':"I',159,'73":0.','0278','},',28,':"J",',28,':"K',159,'79',161,'67',161,'71',161,'81',196,'},',28,':"L',159,'84',173,'89',173,'86',177,178,99,28,':"M",',28,':"N",',28,':"O',159,'88',161,'87',161,'65',161,'86',161,'89',196,'},',28,':"P',159,'65',173,'111',161,'101',161,'97',161,'46',173,'44":-0.0833},',28,':"Q",',103,28,':"R',159,'116',161,'67',161,'79',161,'71',161,'85',161,'81',161,'84',173,'89',173,'86',177,178,99,28,':"S",',28,':"T',159,'121',161,'101',173,'111',208,'0833,"117":-0.0833','},',28,':"U",',28,':"V",','ic:0.0139,krn:{"','111',173,'101',173,'117',208,'111,"79',161,'67',161,'71',161,'81',196,'},',28,':"W",',328,'111',173,'101',173,'117',208,'111,"79',161,'67',161,'71',161,'81',196,'},',28,':"X',159,'79',161,'67',161,'71',161,'81',196,'},',28,':"Y",ic:0.025,','krn:{"101',173,'111',208,322,'},',28,':"Z",',28,':"[",d',111,28,':"“",',28,':"]",d',111,28,':"ˆ",',22,44,45,'x2D9;",',22,44,45,'x2018;",lig:{"96":92},',28,':"a','",a:0,krn:{"','118',161,'106":0.','0556,"121',161,'119',196,'},',28,':"b',159,'101','":0.0278,"','111',417,'120',161,'100',417,'99',417,'113',417,'118',161,407,'0556,"121',161,'119',196,'},',28,':"c',404,'104',161,'107',196,'},',28,':"d",',28,':"e",a:0,',28,':"f',26,'12,"102":11,"108":13},',28,':"g",','a:0,d:0.2,ic:0.','0139,krn:{"',407,226,'},',28,':"h',159,'116',161,'117',161,'98',161,'121',161,'118',161,'119',196,'},',28,':"i",',28,40,28,':"k',159,'97','":-0.0556,"','101',161,'97',161,'111',161,'99',196,'},',28,':"l",',28,':"m',404,'116',161,'117',161,'98',161,'121',161,'118',161,'119',196,'},',28,':"n',404,'116',161,'117',161,'98',161,'121',161,'118',161,'119',196,'},',28,':"o',404,'101',417,'111',417,'120',161,'100',417,'99',417,'113',417,'118',161,407,'0556,"121',161,'119',196,'},',28,':"p",a:0,',103,376,417,'111',417,'120',161,'100',417,'99',417,'113',417,'118',161,407,'0556,"121',161,'119',196,'},',28,':"q",a:0,',103,28,':"','r",a:0,',28,':"s",a:0,',28,':"t',159,'121',161,'119',196,'},',28,':"u',404,'119',196,'},',28,':"v",a:0,',328,'97',483,'101',161,'97',161,'111',161,'99',196,'},',28,':"w",a:0,',328,'101',161,'97',161,'111',161,'99',196,'},',28,':"x",a:0,',28,':"y",',454,455,'111',161,'101',161,'97',161,'46',173,'44":-0.0833},',28,':"z",a:0,',28,':"–',';",a:0.1,','ic:0.0278,','lig:{"45":124},',28,':"—',640,641,28,':"˝",',22,44,45,'x2DC;",',22,44,45,'xA8;",',22,44,'"}],cmmi10',1,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.','0833},',22,'igreek"},{c:"&',3,'krn:{"127":0.','167},',22,665,5,'ic:0.',226,',krn:{"127":0.','0833},',22,665,7,667,'167},',22,665,9,'ic:0.0757',674,'0833},',22,665,11,'ic:0.0812,krn:{"61',483,'59":-0.0556,"58":-0.0556,"127":0.','0556},',22,665,13,'ic:0.0576',674,'0833},',22,665,15,'ic:0.139',662,'0556},',22,665,17,667,'0833},',22,665,19,'ic:0.11,krn:{"61',483,692,'0556},',22,665,21,'ic:0.0502',674,'0833},',22,665,'alpha',';",a:0,ic:0.','0037',674,226,'},',2,'beta;",','d:0.2,ic:0.','0528',674,'0833},',2,'gamma;",',454,'0556,',2,'delta;",ic:0.0378,krn:{"',692,'0556},',2,'epsilon;",a:0',674,'0556},',22,'lucida',24,':"ζ",',734,'0738',674,'0833},',2,'eta;",',454,'0359',674,'0556},',2,'theta;",ic:0.',226,674,'0833},',2,'iota;",a:0',674,'0556},',2,'kappa',38,2,'lambda;",',2,'mu',38,'d:0.2',674,226,'},',2,'nu',727,'0637,krn:{"',692,226,'},',2,'xi;",',734,'046',674,99,2,'pi',727,'0359,',2,'rho',38,'d:0.2',674,'0833},',2,'sigma',727,801,'krn:{"59',483,'58":-0.0556','},',2,'tau',727,'113,krn:{"',692,226,'},',2,'upsilon',727,'0359',674,226,'},',2,'phi',640,'d:0.2',674,'0833},',2,'chi',38,'d:0.2',674,'0556},',2,'psi',640,734,'0359',674,99,2,'omega',727,801,2,'epsilon;",a:0',674,'0833},',22,'greek',45,'x3D1;",',667,'0833},',22,'lucida',45,'x3D6',727,226,',',22,'lucida',45,'x3F1',38,'d:0.2',674,'0833},',22,'lucida',45,'x3C2;",',454,'0799',674,'0833},',22,'lucida',45,'x3D5',640,'d:0.2',674,'0833},',22,'lucida',45,'x21BC',';",a:0,d:-0.','2,',22,'arrows',45,'x21BD',898,'1,',22,'arrows',45,'x21C0',898,'2,',22,'arrows',45,'x21C1',898,'1,',22,'arrows',24,':\'&#','x02D3',';\',a:0','.1,',22,'symbol"},{c',921,922,'top:-.1em; ',924,'x02D2',926,'.1,','tclass:"symbol"},{c:"&#','x25B9;",',937,'x25C3;",',22,929,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,119,'3,',28,':",",a:-',114,28,':"<',640,28,921,'font-size:','133%; ',922,'top:.1em','; display:inline-block">/\',d:0.','1,krn:{"1',483,'65',483,'77',483,'78',483,'89":0.0556,"90":-0.0556},',28,':">',640,28,':"⋆',38,22,'arial',45,'x2202;",ic:0.0556',674,'0833},',28,':"A",',667,'139','},tclass:"italic"},{c:"','B",ic:0.0502',674,'0833',1003,'C",ic:0.0715,krn:{"61',161,692,'0833',1003,'D",ic:0.',226,674,'0556',1003,'E",ic:0.0576',674,'0833',1003,'F",ic:0.139',662,'0833',1003,'G",',667,'0833',1003,'H",ic:0.0812,krn:{"61',483,692,'0556',1003,'I",ic:0.0785',674,'111',1003,'J",ic:0.0962',662,'167',1003,'K",ic:0.0715,krn:{"61',483,692,'0556',1003,'L",',667,226,1003,'M','",ic:0.109,krn:{"','61',483,692,'0833',1003,'N',1053,'61',173,'61',161,692,'0833',1003,'O",ic:0.',226,674,'0833',1003,'P",ic:0.139',662,'0833',1003,'Q",d:0.2',674,'0833',1003,'R",ic:0.00773',674,'0833',1003,'S",ic:0.0576,krn:{"61',483,692,'0833',1003,'T','",ic:0.139,krn:{"','61',161,692,'0833',1003,'U',1053,'59',177,',"58',177,',"61',483,'127":0.',226,1003,'V",ic:0.222,krn:{"59','":-0.167,"','58',1109,'61',177,1003,'W',1091,'59',1109,'58',1109,'61',177,1003,'X",ic:0.0785,krn:{"61',173,'61',161,692,'0833',1003,'Y",ic:0.222,krn:{"59',1109,'58',1109,'61',177,1003,'Z",ic:0.0715,krn:{"61',483,692,'0833},',22,'italic',45,'x266D;",',937,'x266E;",',937,'x266F;",',22,929,921,922,'top:-.3em; ',973,'75%; ',924,'x203F',926,',d:-0.1,',22,994,24,921,922,'top',':.4em; ',973,'75%; ',924,'x2040',926,',d:-0.1,',22,994,45,'x2113;",',667,'111',1003,'a",a:0,',22,'italic"},{c:"','b",',22,1183,'c",a:0',674,'0556',1003,'d',159,'89":0.0556,"90',483,'106',177,',"102',1109,1105,'167',1003,'e",a:0',674,'0556',1003,'f",',734,'108,krn:{"',692,'167',1003,'g",',454,'0359',674,226,1003,'h',159,'127',196,1003,'i",',22,1183,'j",',734,'0572,krn:{"59',483,814,1003,'k",ic:0.0315,',22,1183,'l",ic:0.0197',674,'0833',1003,'m",a:0,',22,1183,'n",a:0,',22,1183,'o",a:0',674,'0556',1003,'p",a:0,d:0.2',674,'0833',1003,'q",',454,'0359',674,'0833',1003,578,641,'krn:{"',692,'0556',1003,'s",a:0',674,'0556',1003,'t",',667,'0833',1003,'u",a:0',674,226,1003,'v",a:0,ic:0.0359',674,226,1003,'w",a:0,ic:0.0269',674,'0833',1003,'x",a:0',674,226,1003,'y",',454,'0359',674,'0556',1003,'z",a:0,ic:0.044',674,'0556},',22,'italic',45,'x131;",a:0',674,226,1003,'j",d:0.2',674,'0833},',22,'italic',45,'x2118',38,'d:0.2',674,99,22,994,24,921,922,'left:.3em; top:-.65em; font-size: 67%; ',924,'x2192',';\',','ic:0.154,',937,'x0311;",ic:0.399,',22,'normal"}],cmsy10:[{c',921,922,'top:.1em; ',924,'x2212',926,'.1,',937,'xB7',898,'2,',28,':"×',38,28,921,922,'top:.3em; ',924,'x2A',926,',',28,':"÷',38,28,':"◊",',937,'xB1',640,28,':"∓",',937,'x2295;",',937,'x2296;",',937,'x2297;",',937,'x2298;",',937,'x2299;",',937,'x25EF;",',22,994,45,'x2218',898,'1,',22,'symbol2',45,'x2022',898,'2,',937,'x224D',640,22,'symbol2',45,'x2261',640,22,'symbol2',45,'x2286;",',937,'x2287;",',937,'x2264;",',937,'x2265;",',937,'x227C;",',937,'x227D;",',22,929,':"~",a:0,d:-0.2,',28,':"≈',640,'d:-0.1,',937,'x2282;",',937,'x2283;",',937,'x226A;",',937,'x226B;",',937,'x227A;",',937,'x227B;",',937,'x2190;",a:-0.1,',22,'arrow1',45,'x2192;",a:-0.1,',22,'arrow1',45,'x2191',';",a:0.2,d:0',',',22,'arrow1a',45,'x2193',1437,',',22,'arrow1a',45,'x2194;",a:-0.1,',22,'arrow1',45,'x2197',640,22,'arrows',45,'x2198',640,22,'arrows',45,'x2243',640,22,'symbol2',45,'x21D0;",a:-0.1,',22,'arrow2',45,'x21D2;",a:-0.1,',22,'arrow2',45,'x21D1',1437,'.1,',22,'arrow1a',45,'x21D3',1437,'.1,',22,'arrow1a',45,'x21D4;",a:-0.1,',22,'arrow2',45,'x2196',640,22,'arrows',45,'x2199',640,22,'arrows',45,'x221D',640,28,921,973,974,'margin-right:-.','1em; ','position: relative; top',1167,924,'x2032',926,',',22,'lucida',45,'x221E',640,937,'x2208;",',937,'x220B;",',22,929,921,973,'150%; ',922,'top:.2em; ',924,'x25B3',1324,22,929,921,973,'150%; ',922,'top:.2em; ',924,'x25BD',1324,22,929,921,973,974,922,'top:.2em',977,'2,',28,921,973,'67%; ',1509,':-.15em; ',1507,'3em; ',924,'x22A2',1324,937,'x2200;",',937,'x2203;",',937,'xAC',898,'1,',937,'x2205;",',937,'x211C;",',937,'x2111;",',937,'x22A4;",',937,'x22A5;",',937,'x2135;",',22,929,':"A',159,'48":0.194},',22,'cal"},{c:"','B",ic:0.0304',',krn:{"48":0.','139},',22,1590,'C",ic:0.0583',1592,'139},',22,1590,'D",ic:0.',226,1592,'0833},',22,1590,'E",ic:0.0894',1592,99,22,1590,'F",ic:0.0993',1592,99,22,1590,'G",',734,'0593',1592,99,22,1590,'H",ic:0.00965',1592,99,22,1590,'I",ic:0.0738',1592,226,'},',22,1590,'J",',734,'185',1592,'167},',22,1590,'K",ic:0.0144',1592,'0556},',22,1590,'L',159,'48":0.139},',22,1590,'M',159,'48":0.139},',22,1590,'N",ic:0.147',1592,'0833},',22,1590,'O",ic:0.',226,1592,99,22,1590,'P",ic:0.0822',1592,'0833},',22,1590,'Q",d:0.2',1592,99,22,1590,'R',159,'48":0.0833},',22,1590,'S",ic:0.075',1592,'139},',22,1590,'T",ic:0.254',1592,226,'},',22,1590,'U",ic:0.0993',1592,'0833},',22,1590,'V",ic:0.0822',1592,226,'},',22,1590,'W",ic:0.0822',1592,'0833},',22,1590,'X",ic:0.146',1592,'139},',22,1590,'Y",ic:0.0822',1592,'0833},',22,1590,'Z",ic:0.0794',1592,'139},',22,'cal',45,'x22C3;",',937,'x22C2;",',937,'x228E;",',937,'x22C0;",',937,'x22C1;",',937,'x22A2;",',937,'x22A3;",',937,'x230A;",','a:',114,22,'lucida',45,'x230B;",','a:',114,22,'lucida',45,'x2308;",','a:',114,22,'lucida',45,'x2309;",','a:',114,22,'lucida',24,':"{",',103,28,':"}",',103,28,':"&#','x2329;",','a:',114,937,'x232A;",','a:',114,937,'x2223;",d',111,937,'x2225;",d',111,937,'x2195',1437,',',22,'arrow1a',45,'x21D5;",a:0.3,d:0,',22,'arrow1a',45,'x2216;",','a:0.3,d',111,937,'x2240;",',22,'symbol','"},{c:\'√',1324,'h:0.04,d:0.8,',937,'x2210;",a:0.4,',937,'x2207;",',22,'symbol',1802,922,973,'85%; ','left:-.1em; margin-right:-.','2em">∫',926,'.4,d',111,'ic:0.111,',22,'lucida',45,'x2294;",',937,'x2293;",',937,'x2291;",',937,'x2292;",',937,'xA7;",d',111,28,':"†",d',111,28,':"‡",d',111,28,':"¶",a:0.3,d',111,22,'lucida',45,'x2663;",',22,994,45,'x2662;",',22,994,45,'x2661;",',22,994,45,'x2660;",',22,994,'"}],cmex10:[{c',102,'h:0.04,d:1.16,n:','16,',22,'delim1','"},{c:")",',1865,'17,',22,'delim1','"},{c:"[",',1865,'104,',22,'delim1','"},{c:"]",',1865,'105,',22,'delim1',45,1740,1865,'106,',22,'delim1a',45,1746,1865,'107,',22,'delim1a',45,1752,1865,'108,',22,'delim1a',45,1758,1865,'109,',22,'delim1a',1802,'margin-left',':-.1em">{\',',1865,'110,',22,'delim1',1802,1507,'1em">}{}{}|{\',',6,'26',8,212,243,244,'; position:relative',249,'1em; ','left:-.05em">}\',',6,'27',8,212,243,'font-size:','150%; ','position:relative; top:.','8em; ',244,'">√\',h:0.','04,d:1.16,n:113',8,'root',243,266,'220%; ',268,269,244,271,'04,d:1.76,n:114',8,274,243,266,'310%; ',268,'8em',249,'01em; ',244,271,'06,d:2.36,n:115',8,274,243,266,'400%; ',268,'8em',249,'025em; ',244,271,'08,d:2.96,n:116',8,274,243,266,'490%; ',268,'8em',249,'03em; ',244,271,'1,d:3.75,n:117',8,274,243,266,'580%; ',268,'775em',249,'04em; ',244,271,'12,d:4.5,n:118',8,274,243,266,'750%; ',268,'775em',249,'04em; ',244,271,'14,d:5.7',8,274,243,244,'; margin-left:.','04em">||\',delim:{top:126,bot:127,rep:119},',2,'normal',4,'x2191',';",h:0.7,d:0,delim:{','top:120,rep:63},',2,'arrow1a',4,'x2193',357,'bot:121,rep:63},',2,360,243,'margin-left:-.','1em">◜',';\',h:0.','05',8,'symbol',243,368,'3em">◝',377,'05',8,380,243,368,'1em">◟',377,'05',8,380,243,368,'3em">◞',377,'05',8,380,4,'x21D1',';",h:0.65,d:0,delim:{','top:126,rep:119},',2,360,4,'x21D3',425,'bot:127,rep:119},',2,360,'"}],cmti10:[{c:"Γ",ic:0.133',8,'igreek"},{c:"&','Delta;",',2,437,'Theta;",ic:0.094',8,437,'Lambda;",',2,437,'Xi;",ic:0.153',8,437,'Pi;",ic:0.164',8,437,'Sigma;",ic:0.12',8,437,'Upsilon;",ic:0.111',8,437,'Phi;",ic:0.0599',8,437,'Psi;",ic:0.111',8,437,'Omega;",','ic:0.103',8,'igreek',203,':"ff','",ic:0.212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,"108":15},','tclass:"italic"},{c',':"fi','",ic:0.103,',473,':"fl',475,473,':"ffi',475,473,':"ffl',475,473,0,'x131;",a:0,','ic:0.','0767,',473,':"j",d:0.2,','ic:0.0374,',473,0,'x2CB;",',2,'iaccent',4,'x2CA;",ic:0.0969',8,497,4,'x2C7;",ic:0.083',8,497,4,'x2D8;",ic:0.108',8,497,4,'x2C9;",ic:0.103',8,497,4,'x2DA;",',2,497,'"},{c:"?",','d:0.17,w:0.46,',473,0,'xDF;",','ic:0.105,',473,0,'xE6;",a:0,','ic:0.0751,',473,0,'x153;",a:0,',527,473,0,'xF8;",','ic:0.0919,',473,0,'xC6;",','ic:0.12,',473,0,'x152;",','ic:0.12,',473,0,'xD8;",','ic:0.094,',473,':"?",krn:{"108":-0.','256,"76":-0.321},',473,':"!",','ic:0.124,lig:{"96":','60},',473,0,'x201D;",','ic:0.0696,',473,':"#",ic:0.0662,',473,':"$",',473,':"%",ic:0.136,',473,':"&",','ic:0.0969,',473,0,'x2019;",ic:0.124,krn:{"63":0.102,"33":0.102},lig:{"39":34},',473,':"(",d:0.2,','ic:0.162,',473,':")",d:0.2,','ic:0.0369,',473,':"*",ic:0.149,',473,':"+",a:0.1,','ic:0.0369,',473,':",",a:-0.3,d:0.2,w:0.278,',473,':"-",a:0,ic:0.0283',',lig:{"45":','123},',473,':".",a:-0.25,',473,':"/",ic:0.162,',473,':"0",ic:0.136,',473,':"1",ic:0.136,',473,':"2",ic:0.136,',473,':"3",ic:0.136,',473,':"4",ic:0.136,',473,':"5",ic:0.136,',473,':"6",ic:0.136,',473,':"7",ic:0.136,',473,':"8",ic:0.136,',473,':"9",ic:0.136,',473,':":",ic:0.0582,',473,':";",ic:0.0582,',473,0,'xA1;",','ic:0.0756,',473,':"=",a:0,d:-0.1,','ic:0.0662,',473,0,'xBF;",',473,':"?",ic:0.122,','lig:{"96":','62},',473,':"@",ic:0.096,',473,':"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',636,'86','":-0.102,"','87',640,'101','":-0.0511,"','97',644,'111',644,'100',644,'99',644,'103',644,'113','":-0.0511','},',473,':"B',475,473,':"C",','ic:0.145,',473,':"D",',547,'krn:{"88','":-0.0256,"','87',668,'65',668,'86',668,'89":-0.','0256},',473,':"E",ic:0.12,',473,':"F','",ic:0.133,krn:{"','111',636,'101',636,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',640,'79',668,'67',668,'71',668,'81":-0.0256','},',473,':"G",ic:0.0872,',473,':"H",ic:0.164,',473,':"I",ic:0.158,',473,':"J",ic:0.14,',473,':"K",',663,'krn:{"79',668,'67',668,'71',668,696,'},',473,':"L",krn:{"84',636,'89',636,'86',640,'87',640,'101',644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"M",ic:0.164,',473,':"N",ic:0.164,',473,':"O",',547,'krn:{"88',668,'87',668,'65',668,'86',668,675,'0256},',473,':"P',475,'krn:{"65":-0.0767},',473,':"Q",d:0.2,',547,473,':"R",ic:0.0387,',634,'0.0256,"84',636,'89',636,'86',640,'87',640,'101',644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"S",ic:0.12,',473,':"T',681,'121',636,'101',636,'111',687,'117',636,'65":-0.0767},',473,':"U",ic:0.164,',473,':"V",ic:0.','184,krn:{"','111',636,'101',636,'117',687,'65',640,'79',668,'67',668,'71',668,696,'},',473,':"W",ic:0.',809,'65":-0.0767},',473,':"X",ic:0.158,krn:{"79',668,'67',668,'71',668,696,'},',473,':"Y",ic:0.','194',',krn:{"101',636,'111',687,'117',636,'65":-0.0767},',473,':"Z",',663,473,':"[",d:0.1,','ic:0.188,',473,0,'x201C;",','ic:0.169,',473,':"]",d:0.1,','ic:0.105,',473,0,'x2C6;",ic:0.0665',8,497,4,'x2D9;",ic:0.118',8,497,4,'x2018;",',553,'92},',473,':"a','",a:0,ic:0.',489,473,':"b",ic:0.0631',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"c',877,'0565',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"d',475,'krn:{"108":','0.0511},',473,':"e',877,'0751',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"f',471,'12,"102":11,"108":13},',473,':"g','",a:0,d:0.2,ic:0.','0885,',473,':"h",ic:0.',489,473,':"i",ic:0.102,',473,491,663,473,':"k",ic:0.','108,',473,':"l',475,918,'0.0511},',473,':"m',877,489,473,':"n',877,489,'krn:{"39":-0.102},',473,':"o',877,'0631',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"p',945,'0631',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"q',945,'0885,',473,':"r',877,'108',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"s',877,'0821,',473,':"t",ic:0.0949,',473,':"u',877,489,473,':"v',877,957,473,':"w',877,957,918,'0.0511},',473,':"x',877,'12,',473,':"y',945,'0885,',473,':"z',877,'123,',473,0,'x2013',';",a:0.1,ic:0.','0921',586,'124},',473,0,'x2014',1068,'0921,',473,0,'x2DD;",ic:0.122',8,497,4,'x2DC;",ic:0.116',8,497,4,'xA8;",',2,497,'"}],cmbx10:[{c:"&Gamma',';",tclass:"bgreek"},{c:"&','Delta',1091,'Theta',1091,'Lambda',1091,'Xi',1091,'Pi',1091,'Sigma',1091,'Upsilon',1091,'Phi',1091,'Psi',1091,465,2,'bgreek',203,':"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"bold"},{c',':"fi",',1117,':"fl",',1117,':"ffi",',1117,':"ffl",',1117,0,487,1117,491,1117,0,'x2CB',';",tclass:"baccent',4,'x2CA',1133,4,'x2C7',1133,4,'x2D8',1133,4,'x2C9',1133,4,'x2DA',1133,518,1117,0,522,1117,0,526,1117,0,530,1117,0,534,1117,0,538,1117,0,542,1117,0,546,1117,549,'278,"76":-0.319},',1117,552,628,'60},',1117,0,557,1117,':"#",',1117,':"$",',1117,':"%",',1117,566,1117,0,'x2019;",krn:{"63":0.111,"33":0.111},lig:{"39":34},',1117,572,1117,575,1117,':"*",',1117,580,1117,':",",a:-0.3,d:0.2,w:0.278,',1117,':"-",a:0',586,'123},',1117,':".",a:-0.25,',1117,':"/",',1117,':"0",',1117,':"1",',1117,':"2",',1117,':"3",',1117,':"4",',1117,':"5",',1117,':"6",',1117,':"7",',1117,':"8",',1117,':"9",',1117,':":",',1117,':";",',1117,0,618,1117,621,1117,0,'xBF;",',1117,':"?",',628,'62},',1117,':"@",',1117,':"A",krn:{"116','":-0.0278,"','67',1250,'79',1250,'71',1250,'85',1250,'81',1250,'84','":-0.0833,"','89',1262,'86":-0.','111,"87":-0.111},',1117,':"B",',1117,662,1117,':"D",krn:{"88',1250,'87',1250,'65',1250,'86',1250,675,'0278},',1117,':"E",',1117,':"F",krn:{"111',1262,'101',1262,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',1250,'67',1250,'71',1250,'81":-0.0278','},',1117,':"G",',1117,':"H",',1117,':"I",krn:{"73":0.0278},',1117,':"J",',1117,':"K",krn:{"79',1250,'67',1250,'71',1250,1297,'},',1117,':"L",krn:{"84',1262,'89',1262,1265,'111,"87":-0.111},',1117,':"M",',1117,':"N",',1117,':"O",krn:{"88',1250,'87',1250,'65',1250,'86',1250,675,'0278},',1117,':"P",krn:{"65',1262,'111',1250,'101',1250,'97',1250,'46',1262,'44":-0.0833},',1117,763,1117,':"R",krn:{"116',1250,'67',1250,'79',1250,'71',1250,'85',1250,'81',1250,'84',1262,'89',1262,1265,'111,"87":-0.111},',1117,':"S",',1117,':"T",krn:{"121',1250,'101',1262,'111',1290,'0833,"117":-0.0833','},',1117,':"U",',1117,808,'0139,krn:{"','111',1262,'101',1262,'117',1290,'111,"79',1250,'67',1250,'71',1250,1297,'},',1117,827,1386,'111',1262,'101',1262,'117',1290,'111,"79',1250,'67',1250,'71',1250,1297,'},',1117,':"X",krn:{"79',1250,'67',1250,'71',1250,1297,'},',1117,840,'025',842,1262,'111',1290,1380,'},',1117,850,1117,853,1117,0,857,1117,860,1117,0,'x2C6',1133,4,'x2D9',1133,4,872,628,'92},',1117,':"a','",a:0,krn:{"','118',1250,'106":0.','0556,"121',1250,'119":-0.','0278},',1117,':"b",krn:{"101','":0.0278,"','111',1468,'120',1250,'100',1468,'99',1468,'113',1468,'118',1250,1461,'0556,"121',1250,1464,'0278},',1117,':"c',1458,'104',1250,'107":-0.0278},',1117,':"d",',1117,':"e",a:0,',1117,':"f',1115,'12,"102":11,"108":13},',1117,':"g',945,1386,1461,'0278},',1117,':"h",krn:{"116',1250,'117',1250,'98',1250,'121',1250,'118',1250,1464,'0278},',1117,':"i",',1117,491,1117,':"k",krn:{"97":-0.0556,"101',1250,'97',1250,'111',1250,'99":-0.','0278},',1117,':"l",',1117,':"m',1458,'116',1250,'117',1250,'98',1250,'121',1250,'118',1250,1464,'0278},',1117,':"n',1458,'116',1250,'117',1250,'98',1250,'121',1250,'118',1250,1464,'0278},',1117,':"o",a:0',842,1468,'111',1468,'120',1250,'100',1468,'99',1468,'113',1468,'118',1250,1461,'0556,"121',1250,1464,'0278},',1117,':"p",a:0,d:0.2',842,1468,'111',1468,'120',1250,'100',1468,'99',1468,'113',1468,'118',1250,1461,'0556,"121',1250,1464,'0278},',1117,':"q",a:0,d:0.2,',1117,':"r",a:0,',1117,':"s",a:0,',1117,':"t",krn:{"121',1250,1464,'0278},',1117,':"u',1458,1464,'0278},',1117,':"v',877,1386,'97":-0.0556,"101',1250,'97',1250,'111',1250,1530,'0278},',1117,':"w',877,'0139',842,1250,'97',1250,'111',1250,1530,'0278},',1117,':"x",a:0,',1117,':"y',945,1386,'111',1250,'101',1250,'97',1250,'46',1262,'44":-0.0833},',1117,':"z",a:0,',1117,0,'x2013',1068,'0278',586,'124},',1117,0,'x2014',1068,'0278,',1117,0,'x2DD',1133,4,'x2DC',1133,4,'xA8',1133,'"}]});','jsMath.Setup.Styles({".typeset .','cmr10','":"font-family: ','serif','",".typeset .','italic":"font-style: italic',1690,'bold":"font-weight: bold',1690,'lucida','":"font-family: \'',1695,' sans unicode','\'",".typeset .','arial','":"font-family: \'Arial unicode MS',1699,'cal',1696,'Script MT\', \'Script MT Bold\', cursive',1690,'arrows',1701,1699,'arrow1',1701,1699,360,1701,'\'; ',268,'05em;left:-.15em',249,'15em','; display:inline-block",".typeset .','arrow2',1701,'\'; ',246,'top:-.',259,244,';",".typeset .','arrow3',1701,'\'; margin',':.1em',1690,380,1701,1699,'symbol2',1701,1699,'delim1','":"font-family: \'Times New Roman\'; font-','size: ','133%; ',268,'7em',1720,'delim1a',1696,'Lucida',1698,'\'; font-size: ','133%; ',268,'8em',1720,'delim1b',1701,1751,'133%; ',268,'7em',1720,212,1741,1742,'180%; ',268,'75em',1720,224,1696,'Lucida',1698,1751,'180%; ',268,'8em',1720,9,1701,1751,'180%; ',268,'7em',1720,'delim3',1741,1742,'250%; ',268,'725em',1720,'delim3a',1696,'Lucida',1698,1751,'250%; ',268,'775em',1720,'delim3b',1701,1751,'250%; ',268,'7em',1720,'delim4',1741,1742,'325%; ',268,'7em',1720,'delim4a',1696,'Lucida',1698,1751,'325%; ',268,'775em',1720,'delim4b',1701,1751,'325%; ',268,'7em',1720,3,1688,'Symbol',1690,'greek',1696,'Times New Roman',1699,468,1741,'style:italic',1690,1112,1741,'weight:bold',1690,21,1701,1751,'130','%; position: relative; top',': .7em; margin:-.05em',1720,79,1701,1751,'110',1852,': .85em; ',244,1728,97,1701,1751,'180',1852,': .6em',1720,33,1701,1751,'85',1852,': 1em',1720,27,1701,1751,'230',1852,': .6em; margin:-.05em',1720,127,1701,1751,'185',1852,': .75em',1720,143,1701,1751,'275',1852,': .55em',1720,37,1701,1751,'185',1852,': 1em',249,'1em',1720,184,1701,1751,'67',1852,':-.75em; ',244,1728,189,1701,1751,'110',1852,':-.4em; ',244,1728,194,1701,1751,'175',1852,':-.25em',1720,198,1741,1742,'75',1852,':-.5em',1720,202,1741,1742,'133',1852,':-.2em',1720,206,1741,1742,'200',1852,248,1720,274,1701,1731,'-right:-.075em',1720,'accent',1701,'\'; ',268,'05em; left:.','15em',1720,497,1701,'\'; ',268,1960,'15em; font-',1842,1720,'baccent',1701,'\'; ',268,1960,1968,1846,'; ',244,'"});','if(jsMath.browser=="','Mozilla"){jsMath.Update.TeXfonts({cmex10:{"48":{c',0,'xF8EB;"},"49":{c',0,'xF8F6;"},"50":{c',0,'xF8EE;"},"51":{c',0,'xF8F9;"},"52":{c',0,'xF8F0;"},"53":{c',0,'xF8FB;"},"54":{c',0,'xF8EF;"},"55":{c',0,'xF8FA;"},"56":{c',0,'xF8F1;"},"57":{c',0,'xF8FC;"},"58":{c',0,'xF8F3;"},"59":{c',0,'xF8FE;"},"60":{c',0,'xF8F2;"},"61":{c',0,'xF8FD;"},"62":{c',0,'xF8F4;"},"64":{c',0,'xF8ED;"},"65":{c',0,'xF8F8;"},"66":{c',0,'xF8EC;"},"67":{c',0,'xF8F7;"}}});',1686,'accent',1688,'Arial unicode MS; ',268,1960,'05em"})}',1981,'MSIE"){jsMath.Browser.msieFontBug=1}jsMath.Macro("not","\\\\mathrel{\\\\rlap{\\\\kern 3mu/}}");jsMath.Macro("bowtie","\\\\mathrel\\\\triangleright\\\\kern-6mu\\\\mathrel\\\\triangleleft");jsMath.Box.defaultH=0.8;'] +]); \ No newline at end of file diff --git a/jsMath/jsMath-fallback-symbols.js b/jsMath/jsMath-fallback-symbols.js new file mode 100644 index 00000000..8db31f49 --- /dev/null +++ b/jsMath/jsMath-fallback-symbols.js @@ -0,0 +1,28 @@ +/* + * jsMath-fallback-symbols.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed to use image fonts for symbols + * but standard native fonts for letters and numbers. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +jsMath.Script.Uncompress([ + ['jsMath.','Add(','jsMath.Img',',{','UpdateTeXFonts',':function(_1){for(var _2 in _1){for(var _3 in _1[_2]){',0,'TeX[_2][_3',']=_1[_2][_3];',0,7,'].tclass="i"+_2;}}}});',2,'.',4,'({cmr10',':{"33":{c:"!",lig:{"96":60}},"35":{c:"#"},"36":{c:"$"},"37":{c:"%"},"38":{c:"&"},"40":{c:"(",d:0.2},"41":{c:")",d:0.2},"42":{c',':"*",d:-0.3},"','43":{c:"+",a:0.1},"44":{c:",",a:-0.3','},"45":{c:"-",a:0',',lig:{"45":123}},"46":{c:".",a:-0.25},"47":{c',':"/"},"','48":{c:"0','"},"49":{c:"1"},"50":{c:"2"},"51":{c:"3"},"52":{c:"4"},"53":{c:"5"},"54":{c:"6"},"55":{c:"7"},"56":{c:"8"},"57":{c:"9"},"58":{c:":"},"59":{c:";"},"61":{c:"=",a:0,d:-0.1},"63":{c:"?",lig:{"96":62}},"64":{c:"@"},"65":{c:"A",krn:{"116','":-0.0278,"','67',24,'79',24,'71',24,'85',24,'81',24,'84":-0.0833,"89":-0.0833,"86":-0.111,"87":-0.111}},"','66":{c:"B','"},"','67":{c:"C',37,'68":{c:"D','",krn:{"','88',24,'87',24,'65',24,'86',24,'89','":-0.0278}},"','69":{c:"E',37,'70":{c:"F",','krn:{"111":-0.0833,"101":-0.0833,"117":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.111,"79":-0.0278,"67":-0.0278,"71":-0.0278,"81":-0.0278}},"','71":{c:"G',37,'72":{c:"H',37,'73":{c:"I',41,'73','":0.0278}},"','74":{c:"J',37,'75":{c:"K',41,'79',24,'67',24,'71',24,'81',51,'76":{c:"L",krn:{"',35,'77":{c:"M',37,'78":{c:"N',37,'79":{c:"O',41,'88',24,'87',24,'65',24,'86',24,'89',51,'80":{c:"P",','krn:{"65":-0.','0833,"111',24,'101',24,'97',24,'46":-0.0833,"44":-0.0833}},"','81":{c:"Q",d:','1},"82":{c:"R',41,'116',24,'67',24,'79',24,'71',24,'85',24,'81',24,35,'83":{c:"S',37,'84":{c:"T',41,'121',24,'101":-0.0833,"111":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.0833,"117":-0.0833}},"','85":{c:"U',37,'86":{c:"V",ic:0.','0139,',55,'87":{c:"W",ic:0.','0139,',55,'88":{c:"X",','krn:{"79',24,'67',24,'71',24,'81',51,'89":{c:"Y",ic:0.','025',',krn:{"',125,'90":{c:"Z',37,'91":{c:"[",d:0.1','},"93":{c:"]",d:0.1','},"97":{c:"a','",a:0,krn:{"','118',24,'106":0.0556,"121',24,'119',51,'98":{c:"b",','krn:{"101":0.0278,"111":0.0278,"120":-0.0278,"100":0.0278,"99":0.0278,"113":0.0278,"118":-0.0278,"106":0.0556,"121":-0.0278,"119":-0.0278}},"','99":{c:"c',152,'104',24,'107',51,'100":{c:"d',37,'101":{c:"e",a',':0},"102":{c:"f",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":12,"102":11,"108":13}},"103":{c:"g",a:0,d:0.2,ic:0.0139,krn:{"106":0.0278}},"104":{c:"h",krn:{"116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'105":{c:"i"},"106":{c:"j",d:','1},"107":{c:"k',41,'97','":-0.0556,"','101',24,'97',24,'111',24,'99',51,'108":{c:"l',37,'109":{c:"m',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'110":{c:"n',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'111":{c:"o",a:0,',160,'112":{c:"p",a:0,d:0.2,',160,'113":{c:"q",a:0,d:','1','},"114":{c:"r",a:0','},"','115":{c:"s",a:0','},"116":{c:"t',41,'121',24,'119',51,'117":{c:"u',152,'119',51,'118":{c:"v','",a:0,ic:0.','0139',145,'97',186,'101',24,'97',24,'111',24,'99',51,'119":{c:"w',245,'0139',145,'101',24,'97',24,'111',24,'99',51,'120":{c:"x",a:0','},"121":{c:"y','",a:0,d:0.2,ic:0.','0139',145,'111',24,'101',24,'97',24,102,'122":{c:"z",a:0','}},cmmi10:{"65":{c:"A',41,'127":0.139}},"',36,'",ic:0.','0502,','krn:{"127":0.0833}},"',38,287,'0715',145,'61',24,'59":-0.0556,"58":-0.0556,"127":0.','0833}},"','68":{c:"D',287,'0278',',krn:{"127":0.0556}},"',52,287,'0576,',289,54,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.',297,56,'",',289,58,287,'0812',145,'61',186,296,'0556}},"','73":{c:"I",ic:0.','0785',145,'127":0.111}},"',64,287,'0962',308,'167}},"75":{c:"K',287,'0715',145,'61',186,296,320,'76":{c:"L",','krn:{"127":0.0278}},"',78,287,'109',145,'61',186,296,297,80,287,'109',145,'61":-0.0833,"61',24,296,297,'79":{c:"O',287,300,',',289,94,'ic:0.139',308,297,103,'0.2,',289,'82":{c:"R',287,'00773,',289,119,287,'0576',145,'61',186,296,297,'84":{c:"T",ic:0.','139',145,'61',24,296,297,126,287,'109',145,'59":-0.111,"58":-0.111,"61',186,'127',63,128,'222',',krn:{"59":-0.167,"58":-0.167,"61":-0.111}},"',131,'139',396,134,'ic:0.0785',145,'61":-0.0833,"61',24,296,297,143,'222',396,147,287,'0715',145,'61',186,296,297,'97":{c:"a",a:0},"98":{c:"b',37,'99":{c:"c",a:0',301,167,41,'89":0.0556,"90',186,'106":-0.111,"102":-0.167,"127":0.167}},"101":{c:"e",a:0',301,'102":{c:"f",d:','0.2,ic:0.','108',145,296,'167}},"103":{c:"g',272,'0359,',338,'104":{c:"h',41,'127',51,182,429,'0572',145,'59',186,'58":-0.',320,'107":{c:"k',287,'0315},"',195,287,'0197,',289,'109":{c:"m",a:0},"110":{c:"n",a:0},"111":{c:"o",a:0',301,227,289,'113":{c:"q',272,'0359,',289,'114":{c:"r',245,300,145,296,320,233,301,'116":{c:"t",',289,'117":{c:"u",a:0,',338,'118":{c:"v',245,'0359,',338,'119":{c:"w',245,'0269,',289,270,',',338,'121":{c:"y',272,'0359',301,'122":{c:"z',245,'044',145,'127":0.0556}}},cmsy10:{"0":{c:"−",a:0.1}},cmti10:{"33":{c:"!",lig:{"96":60}},"35":{c:"#",ic:0.0662},"37":{c:"%",ic:0.136},"38":{c:"&",ic:0.0969},"40":{c:"(",d:',429,'162},"41":{c:")",d:',429,'0369},"42":{c:"*",ic:0.149},"43":{c:"+",a:0.1,ic:0.0369},"44":{c:",",a:-0.3,d:0.2,w:0.278},"45":{c:"-",a:0,ic:0.0283',20,':"/",ic:0.162},"',22,'",ic:0.136},"','49":{c:"1',503,'50":{c:"2',503,'51":{c:"3',503,'52":{c:"4',503,'53":{c:"5',503,'54":{c:"6',503,'55":{c:"7',503,'56":{c:"8',503,'57":{c:"9',503,'58":{c:":",ic:0.0582},"59":{c:";",ic:0.0582},"61":{c:"=",a:0,d:-0.1,ic:0.0662},"63":{c:"?",ic:0.122,lig:{"96":62}},"64":{c:"@",ic:0.096},"65":{c:"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',525,'86','":-0.102,"','87',529,'101":-0.0511,"97":-0.0511,"111":-0.0511,"100":-0.0511,"99":-0.0511,"103":-0.0511,"113":-0.0511}},"',36,'",ic:0.103','},"',38,287,'145},"','68":{c:"D','",ic:0.094,krn:{"88":-0.0256,"87":-0.0256,"65":-0.0256,"86":-0.0256,"89":-0.0256}},"',52,'",ic:0.12},"',54,'ic:0.133',145,'111',525,'101',525,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',529,'79":-0.0256,"67":-0.0256,"71":-0.0256,"81":-0.0256}},"',56,287,'0872},"',58,'",ic:0.164},"',321,'158},"',64,287,'14},"75":{c:"K',287,'145',145,554,76,'84',525,'89',525,'86',529,'87',529,532,78,559,80,559,'79":{c:"O',540,94,'ic:0.103',145,'65":-0.0767}},"',103,429,'094},"82":{c:"R',287,'0387,',523,'0.0256,"84',525,'89',525,'86',529,'87',529,532,119,542,379,'133',145,'121',525,'101',525,'111',551,'117',525,588,126,559,128,'184',145,'111',525,'101',525,'117',551,'65',529,554,131,'184',145,588,134,'ic:0.158',145,554,143,'194',145,'101',525,'111',551,'117',525,588,147,287,538,149,',ic:0.188',150,',ic:0.105},"97":{c:"a',245,'0767},"',159,'ic:0.0631',145,532,'99":{c:"c',245,'0565',145,532,167,534,145,'108":0.0511}},"','101":{c:"e',245,'0751',145,532,'102":{c:"f',287,'212',145,'39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":12,"102":11,"108":13}},"103":{c:"g',272,'0885},"','104":{c:"h',287,658,'105":{c:"i',287,'102},"106":{c:"j",d:',429,538,'107":{c:"k',287,'108},"',195,534,145,671,'109":{c:"m',245,658,'110":{c:"n',245,'0767',145,'39":-0.102}},"111":{c:"o',245,'0631',145,532,'112":{c:"p',272,'0631',145,532,'113":{c:"q',272,683,'114":{c:"r',245,'108',145,532,'115":{c:"s',245,'0821},"116":{c:"t',287,'0949},"117":{c:"u',245,658,'118":{c:"v',245,694,'119":{c:"w',245,'108',145,671,'120":{c:"x',245,'12},"121":{c:"y',272,683,'122":{c:"z',245,'123}},cmbx10',16,':"*"},"',18,',d:0.2,w:0.278},"45":{c:"-",a:0',20,':"/"},"',22,23,24,'67',24,'79',24,'71',24,'85',24,'81',24,35,36,37,38,37,'68":{c:"D',41,'88',24,'87',24,'65',24,'86',24,'89',51,52,37,54,55,56,37,58,37,'73":{c:"I',41,'73',63,64,37,'75":{c:"K',41,'79',24,'67',24,'71',24,'81',51,76,35,78,37,80,37,'79":{c:"O',41,'88',24,'87',24,'65',24,'86',24,'89',51,94,95,'0833,"111',24,'101',24,'97',24,102,103,'1},"82":{c:"R',41,'116',24,'67',24,'79',24,'71',24,'85',24,'81',24,35,119,37,'84":{c:"T',41,'121',24,125,126,37,128,'0139,',55,131,'0139,',55,134,'krn:{"79',24,'67',24,'71',24,'81',51,143,'025',145,125,147,37,149,150,'},"97":{c:"a',152,'118',24,'106":0.0556,"121',24,'119',51,159,160,'99":{c:"c',152,'104',24,'107',51,167,37,'101":{c:"e",a',170,24,'117',24,'98',24,'121',24,'118',24,'119',51,182,'1},"107":{c:"k',41,'97',186,'101',24,'97',24,'111',24,'99',51,195,37,'109":{c:"m',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'110":{c:"n',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,225,160,227,160,229,'1',231,'},"',233,'},"116":{c:"t',41,'121',24,'119',51,'117":{c:"u',152,'119',51,'118":{c:"v',245,'0139',145,'97',186,'101',24,'97',24,'111',24,'99',51,'119":{c:"w',245,'0139',145,'101',24,'97',24,'111',24,'99',51,270,'},"121":{c:"y',272,'0139',145,'111',24,'101',24,'97',24,102,282,'}}});if(',0,'browser=="MSIE"&&',0,'platform=="mac"){','jsMath.Setup.Styles({".typeset .math":"font-style: normal",".typeset .typeset":"font-style: normal",".typeset .icmr10":"font-family: ','Times','",".typeset .icmmi10":"font-family: ',1020,'; font-style: italic",".typeset .icmbx10":"font-family: ',1020,'; font-weight: bold",".typeset .icmti10":"font-family: ',1020,'; font-style: italic"});}','else{',1019,'serif',1021,1030,1023,1030,1025,1030,1027,0,'Add(',2,',{symbols:[0,','1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,','34,39,60,62,92,94,95,96',',123,124,125,126,127',']});',2,'.SetFont',15,':',2,'.symbols',',cmmi10:[0,',1042,'33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,','91,92,93,94,95,96',1044,'],cmsy10:[',1042,1054,'65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122',1044,'],cmex10:["all"],cmti10:',2,1051,'.concat(36),cmbx10:',2,1051,'});',2,'.LoadFont("cm-fonts");'] +]); diff --git a/jsMath/jsMath-fallback-unix.js b/jsMath/jsMath-fallback-unix.js new file mode 100644 index 00000000..543c1fde --- /dev/null +++ b/jsMath/jsMath-fallback-unix.js @@ -0,0 +1,29 @@ +/* + * jsMath-fallback-unix.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed for when the TeX fonts are not available + * with a browser under Unix. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +jsMath.Script.Uncompress([ + ['jsMath.Add(jsMath.TeX,{cmr10',':[{c:"Γ",','tclass:"greek"},{c:"&','Delta;",',2,'Theta;",',2,'Lambda;",',2,'Xi;",',2,'Pi;",',2,'Sigma;",',2,'Upsilon;",',2,'Phi;",',2,'Psi;",',2,'Omega;",','tclass:"','greek','"},{c',':"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"normal"},{c',':"fi",',28,':"fl",',28,':"ffi",',28,':"ffl",',28,':"&#','x131',';",a:0,',28,':"j",d:0.2,',28,37,'x60;",',22,'accent','"},{c:"&#','xB4;",',22,46,47,'x2C7;",',22,46,47,'x2D8;",',22,46,24,':"ˉ',';",',22,46,47,'x2DA;",',22,46,47,'x0327;",',28,37,'xDF;",',28,37,'xE6',39,28,37,'x153',39,28,37,'xF8;",',28,37,'xC6;",',28,37,'x152;",',28,37,'xD8;",',28,':"?",krn:{"108":-0.278,"76":-0.319},',28,':"!",lig:{"96":60},',28,37,'x201D;",',28,':"#",',28,':"$",',28,':"%",',28,':"&",',28,37,'x2019;",krn:{"63":0.111,"33":0.','111},','lig:{"39":34},',28,':"(",','d:0.2,',28,':")",',117,28,':"*",',28,':"+",a',':0.1,',28,':",",a:-','0.3,d:0.2,','w:0.278,',28,':"-",a:0,lig:{"45":123},',28,':".",a:-0.','25,',28,':"/",',28,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,':":",',28,':";",',28,37,'xA1;",',28,':"=",','a:0,d:-0.','1,',28,37,'xBF;",',28,':"?",lig:{"96":62},',28,':"@",',28,':"A','",krn:{"','116','":-0.0278,"','67',179,'79',179,'71',179,'85',179,'81',179,'84','":-0.0833,"','89',191,'86','":-0.111',',"87":-0.',113,28,':"B",',28,':"C",',28,':"D',177,'88',179,'87',179,'65',179,'86',179,'89','":-0.0278','},',28,':"E",',28,':"F',177,'111',191,'101',191,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',179,'67',179,'71',179,'81',214,'},',28,':"G",',28,':"H",',28,':"I',177,'73":0.','0278','},',28,':"J",',28,':"K',177,'79',179,'67',179,'71',179,'81',214,'},',28,':"L',177,'84',191,'89',191,'86',195,196,113,28,':"M",',28,':"N",',28,':"O',177,'88',179,'87',179,'65',179,'86',179,'89',214,'},',28,':"P',177,'65',191,'111',179,'101',179,'97',179,'46',191,'44":-0.0833},',28,':"Q",d:1,',28,':"R',177,'116',179,'67',179,'79',179,'71',179,'85',179,'81',179,'84',191,'89',191,'86',195,196,113,28,':"S",',28,':"T',177,'121',179,'101',191,'111',226,'0833,"117":-0.0833','},',28,':"U",',28,':"V",','ic:0.0139,krn:{"','111',191,'101',191,'117',226,'111,"79',179,'67',179,'71',179,'81',214,'},',28,':"W",',345,'111',191,'101',191,'117',226,'111,"79',179,'67',179,'71',179,'81',214,'},',28,':"X',177,'79',179,'67',179,'71',179,'81',214,'},',28,':"Y",ic:0.025,','krn:{"101',191,'111',226,339,'},',28,':"Z",',28,':"[",','d',125,28,37,'x201C;",',28,':"]",','d',125,28,37,'x2C6;",',22,46,47,'x2D9;",',22,46,47,'x2018;",lig:{"96":92},',28,':"a','",a:0,krn:{"','118',179,'106":0.','0556,"121',179,'119',214,'},',28,':"b',177,'101','":0.0278,"','111',438,'120',179,'100',438,'99',438,'113',438,'118',179,428,'0556,"121',179,'119',214,'},',28,':"c',425,'104',179,'107',214,'},',28,':"d",',28,':"e",a:0,',28,':"f',26,'12,"102":11,"108":13},',28,':"g",','a:0,d:0.2,ic:0.','0139,krn:{"',428,244,'},',28,':"h',177,'116',179,'117',179,'98',179,'121',179,'118',179,'119',214,'},',28,':"i",',28,41,28,':"k',177,'97','":-0.0556,"','101',179,'97',179,'111',179,'99',214,'},',28,':"l",',28,':"m',425,'116',179,'117',179,'98',179,'121',179,'118',179,'119',214,'},',28,':"n',425,'116',179,'117',179,'98',179,'121',179,'118',179,'119',214,'},',28,':"o',425,'101',438,'111',438,'120',179,'100',438,'99',438,'113',438,'118',179,428,'0556,"121',179,'119',214,'},',28,':"p",a:0,',117,393,438,'111',438,'120',179,'100',438,'99',438,'113',438,'118',179,428,'0556,"121',179,'119',214,'},',28,':"q",a:0,',117,28,':"','r",a:0,',28,':"s",a:0,',28,':"t',177,'121',179,'119',214,'},',28,':"u',425,'119',214,'},',28,':"v",a:0,',345,'97',504,'101',179,'97',179,'111',179,'99',214,'},',28,':"w",a:0,',345,'101',179,'97',179,'111',179,'99',214,'},',28,':"x",a:0,',28,':"y",',475,476,'111',179,'101',179,'97',179,'46',191,'44":-0.0833},',28,':"z",a:0,',28,37,'x2013',';",a:0.1,','ic:0.0278,','lig:{"45":124},',28,37,'x2014',662,663,28,37,'x2DD;",',22,46,47,'x2DC;",',22,46,47,'xA8;",',22,46,'"}],cmmi10',1,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.','0833},',22,'igreek"},{c:"&',3,'krn:{"127":0.','167},',22,689,5,'ic:0.',244,',krn:{"127":0.','0833},',22,689,7,691,'167},',22,689,9,'ic:0.0757',698,'0833},',22,689,11,'ic:0.0812,krn:{"61',504,'59":-0.0556,"58":-0.0556,"127":0.','0556},',22,689,13,'ic:0.0576',698,'0833},',22,689,15,'ic:0.139',686,'0556},',22,689,17,691,'0833},',22,689,19,'ic:0.11,krn:{"61',504,716,'0556},',22,689,21,'ic:0.0502',698,'0833},',22,689,'alpha',';",a:0,ic:0.','0037',698,244,'},',2,'beta;",','d:0.2,ic:0.','0528',698,'0833},',2,'gamma;",',475,'0556,',2,'delta;",ic:0.0378,krn:{"',716,'0556},',2,'epsilon;",a:0',698,'0556},',22,'symbol"},{c',':"ζ",',758,'0738',698,'0833},',2,'eta;",',475,'0359',698,'0556},',2,'theta;",ic:0.',244,698,'0833},',2,'iota;",a:0',698,'0556},',2,'kappa',39,2,'lambda;",',2,'mu',39,'d:0.2',698,244,'},',2,'nu',751,'0637,krn:{"',716,244,'},',2,'xi;",',758,'046',698,113,2,'pi',751,'0359,',2,'rho',39,'d:0.2',698,'0833},',2,'sigma',751,824,'krn:{"59',504,'58":-0.0556','},',2,'tau',751,'113,krn:{"',716,244,'},',2,'upsilon',751,'0359',698,244,'},',2,'phi',662,'d:0.2',698,'0833},',2,'chi',39,'d:0.2',698,'0556},',2,'psi',662,758,'0359',698,113,2,'omega',751,824,2,'epsilon;",a:0',698,'0833},',22,'greek',47,'x3D1;",',691,'0833},',28,37,'x3D6',751,244,',',28,37,'x3F1',39,'d:0.2',698,'0833},',28,37,'x3C2;",',475,'0799',698,'0833},',28,37,'x3D5',662,'d:0.2',698,'0833},',28,37,'x21BC',';",a:0,d:-0.','2,',22,'harpoon',47,'x21BD',916,'1,',22,'harpoon',47,'x21C0',916,'2,',22,'harpoon',47,'x21C1',916,'1,',22,'harpoon',24,60,'font-size: 133%; ',61,':-.1em; margin:-.2em; left:-.05em\\">&#','x02D3',63,'a',125,22,'symbol"},{c:"&#','x25B7',63,22,948,958,'x25C1',63,22,775,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,133,'3,',28,':",",a:-',128,28,':"<',662,28,136,'krn:{"1',504,'65',504,'77',504,'78',504,'89":0.0556,"90":-0.0556},',28,':">',662,28,60,958,'x2605',63,'a:0,','tclass:"symbol"},{c:"&#','x2202;",ic:0.0556',698,'0833},',28,':"A",',691,'139','},tclass:"italic"},{c:"','B",ic:0.0502',698,'0833',1024,'C",ic:0.0715,krn:{"61',179,716,'0833',1024,'D",ic:0.',244,698,'0556',1024,'E",ic:0.0576',698,'0833',1024,'F",ic:0.139',686,'0833',1024,'G",',691,'0833',1024,'H",ic:0.0812,krn:{"61',504,716,'0556',1024,'I",ic:0.0785',698,'111',1024,'J",ic:0.0962',686,'167',1024,'K",ic:0.0715,krn:{"61',504,716,'0556',1024,'L",',691,244,1024,'M','",ic:0.109,krn:{"','61',504,716,'0833',1024,'N',1074,'61',191,'61',179,716,'0833',1024,'O",ic:0.',244,698,'0833',1024,'P",ic:0.139',686,'0833',1024,'Q",d:0.2',698,'0833',1024,'R",ic:0.00773',698,'0833',1024,'S",ic:0.0576,krn:{"61',504,716,'0833',1024,'T','",ic:0.139,krn:{"','61',179,716,'0833',1024,'U',1074,'59',195,',"58',195,',"61',504,'127":0.',244,1024,'V",ic:0.222,krn:{"59','":-0.167,"','58',1130,'61',195,1024,'W',1112,'59',1130,'58',1130,'61',195,1024,'X",ic:0.0785,krn:{"61',191,'61',179,716,'0833',1024,'Y",ic:0.222,krn:{"59',1130,'58',1130,'61',195,1024,'Z",ic:0.0715,krn:{"61',504,716,'0833},',22,'italic',47,'x266D;",',22,'symbol2',47,'x266E;",',22,'symbol2',47,'x266F;",',22,'symbol2',47,'x2323',916,'1,',28,37,'x2322',916,'1,',28,37,'x2113;",',691,113,22,775,':"a",a:0,',22,'italic"},{c:"','b",',22,1195,'c",a:0',698,'0556',1024,'d',177,'89":0.0556,"90',504,'106',195,',"102',1130,1126,'167',1024,'e",a:0',698,'0556',1024,'f",',758,'108,krn:{"',716,'167',1024,'g",',475,'0359',698,244,1024,'h',177,'127',214,1024,'i",',22,1195,'j",',758,'0572,krn:{"59',504,837,1024,'k",ic:0.0315,',22,1195,'l",ic:0.0197',698,'0833',1024,'m",a:0,',22,1195,'n",a:0,',22,1195,'o",a:0',698,'0556',1024,'p",a:0,d:0.2',698,'0833',1024,'q",',475,'0359',698,'0833',1024,599,663,'krn:{"',716,'0556',1024,'s",a:0',698,'0556',1024,'t",',691,'0833',1024,'u",a:0',698,244,1024,'v",a:0,ic:0.0359',698,244,1024,'w",a:0,ic:0.0269',698,'0833',1024,'x",a:0',698,244,1024,'y",',475,'0359',698,'0556',1024,'z",a:0,ic:0.044',698,'0556},',22,'italic',47,'x131;",a:0',698,244,1024,'j",d:0.2',698,'0833},',22,'italic',47,'x2118',39,'d:0.2',698,113,28,60,'position:relative; left: .4em; top: -.8em; font-size: 50%\\">→',63,'ic:0.154,',1016,'x0311;",ic:0.399,',22,'normal"}],cmsy10:[{c',37,'x2212',662,1016,'xB7',916,'2,',1016,'xD7',39,22,948,61,':.2em\\">*',63,'a:0,',1016,'xF7',39,1016,'x25CA;",',1016,'xB1',662,1016,'x2213;",',1016,'x2295;",',1016,'x2296;",',1016,'x2297;",',1016,'x2298;",',1016,'x2299;",',1016,'x25EF;",',22,948,61,':.25em;\\">°',63,166,'1,',1016,'x2022',916,'2,',1016,'x224D',662,1016,'x2261',662,1016,'x2286;",',1016,'x2287;",',1016,'x2264;",',1016,'x2265;",',1016,'x227C;",',1016,'x227D;",',22,775,':"~",',166,'2,',28,37,'x2248',662,'d:-0.1,',1016,'x2282;",',1016,'x2283;",',1016,'x226A;",',1016,'x226B;",',1016,'x227A;",',1016,'x227B;",',1016,'x2190',916,'15,',22,'arrows"},{c:"&#','x2192',916,'15,',22,1431,'x2191',';",h:1,',22,1431,'x2193',1438,22,1431,'x2194',39,22,1431,'x2197',1438,22,1431,'x2198',1438,22,1431,'x2243',662,1016,'x21D0',662,22,1431,'x21D2',662,22,1431,'x21D1;",h:0.9,d',125,22,1431,'x21D3;",h:0.9,d',125,22,1431,'x21D4',662,22,1431,'x2196',1438,22,1431,'x2199',1438,22,1431,'x221D',662,22,948,940,'margin-right',': -.1em; position: relative; top:.4em\\">′',63,'a:0,',1016,'x221E',662,1016,'x2208;",',1016,'x220B;",',1016,'x25B3;",',1016,'x25BD;",',22,775,136,22,948,'font-size:50%; ',61,':-.3em; ',1493,':-.2em\\">|",a:0,',28,37,'x2200;",',1016,'x2203;",',1016,'xAC',916,'1,',22,'symbol1',47,'x2205;",',1016,'x211C;",',1016,'x2111;",',1016,'x22A4;",',1016,'x22A5;",',1016,'x2135;",',22,775,':"A',177,'48":0.194},',22,'cal"},{c:"','B",ic:0.0304',',krn:{"48":0.','139},',22,1547,'C",ic:0.0583',1549,'139},',22,1547,'D",ic:0.',244,1549,'0833},',22,1547,'E",ic:0.0894',1549,113,22,1547,'F",ic:0.0993',1549,113,22,1547,'G",',758,'0593',1549,113,22,1547,'H",ic:0.00965',1549,113,22,1547,'I",ic:0.0738',1549,244,'},',22,1547,'J",',758,'185',1549,'167},',22,1547,'K",ic:0.0144',1549,'0556},',22,1547,'L',177,'48":0.139},',22,1547,'M',177,'48":0.139},',22,1547,'N",ic:0.147',1549,'0833},',22,1547,'O",ic:0.',244,1549,113,22,1547,'P",ic:0.0822',1549,'0833},',22,1547,'Q",d:0.2',1549,113,22,1547,'R',177,'48":0.0833},',22,1547,'S",ic:0.075',1549,'139},',22,1547,'T",ic:0.254',1549,244,'},',22,1547,'U",ic:0.0993',1549,'0833},',22,1547,'V",ic:0.0822',1549,244,'},',22,1547,'W",ic:0.0822',1549,'0833},',22,1547,'X",ic:0.146',1549,'139},',22,1547,'Y",ic:0.0822',1549,'0833},',22,1547,'Z",ic:0.0794',1549,'139},',22,'cal',47,'x22C3;",',1016,'x22C2;",',1016,'x228E;",',1016,'x22C0;",',1016,'x22C1;",',1016,'x22A2;",',1016,'x22A3;",',22,'symbol2',47,'xF8F0;",','a:',128,28,37,'xF8FB;",','a:',128,28,37,'xF8EE;",','a:',128,28,37,'xF8F9;",','a:',128,28,':"{",',117,28,':"}",',117,28,37,'x3008;",','a:',128,28,37,'x3009;",','a:',128,28,':"|",d',125,22,'vertical"},{c',':"||",','d:0,',22,'vertical',47,'x2195',1438,'d:0.15,',22,1431,'x21D5;",a:0.2,d',125,22,1431,'x2216;",','a:0.3,d',125,28,37,'x2240;",',22,948,61,': .8em\\">√',63,'h:0.04,d:0.9,',28,37,'x2210;",a:0.4,',1016,'x2207;",',1016,'x222B',1438,'d',125,'ic:0.111,',22,'root',47,'x2294;",',1016,'x2293;",',1016,'x2291;",',1016,'x2292;",',1016,'xA7;",d',125,28,37,'x2020;",d',125,28,37,'x2021;",d',125,28,37,'xB6;",a:0.3,d',125,28,37,'x2663;",',1016,'x2666;",',1016,'x2665;",',1016,'x2660;",',22,'symbol"}],cmex10:[{c',116,'h:0.04,d:1.16,n:','16,',22,'delim1"},{c',119,1812,'17,',22,1815,402,1812,'104,',22,1815,409,1812,'105,',22,'delim1',47,'xF8F0",',1812,'106,',22,'delim1',47,1704,1812,'107,',22,'delim1',47,1709,1812,'108,',22,'delim1',47,1714,1812,'109,',22,1815,1718,1812,'110,',22,1815,1721,1812,'111,',22,'delim1',47,1725,1812,'68,',22,'delim1c',47,1730,1812,'69,',22,'delim1c',24,':"|",','h:0.7,d:0,delim:{rep:','12},',22,1737,1738,1879,'13},',22,1737,136,1812,'46,',22,'delim1b',47,1752,1812,'47,',22,'delim1b','"},{c:"(",','h:0.04,d:1.76,n:','18,',22,'delim2',24,119,1900,'19,',22,'delim2',1899,'h:0.04,d:2.36,n:','32,',22,'delim3"},{c',119,1911,'33,',22,1914,402,1911,'34,',22,1914,409,1911,'35,',22,'delim3',47,1699,1911,'36,',22,'delim3',47,1704,1911,'37,',22,'delim3',47,1709,1911,'38,',22,'delim3',47,1714,1911,'39,',22,1914,1718,1911,'40,',22,1914,1721,1911,'41,',22,'delim3',47,1725,1911,'42,',22,'delim3c',47,1730,1911,'43,',22,'delim3c',24,136,1911,'44,',22,'delim3b',47,1752,1911,'45,',22,'delim3b',1899,'h:0.04,d:2.96,','n:48,',22,'delim4"},{c',119,1989,'n:49,',22,1992,402,1989,'n:50,',22,1992,409,1989,'n:51,',22,'delim4',47,1699,1989,'n:52,',22,'delim4',47,1704,1989,'n:53,',22,'delim4',47,1709,1989,'n:54,',22,'delim4',47,1714,1989,'n:55,',22,1992,1718,1989,'n:56,',22,1992,1721,1989,'n:57,',22,'delim4',47,1725,1989,22,'delim4c',47,1730,1989,22,'delim4c',24,136,1989,22,'delim4b',47,1752,1989,22,'delim4b',24,136,1900,'30,',22,'delim2b',47,1752,1900,'31,',22,'delim2b',47,'xF8EB;",h:0.8,d:0.15,delim:{top:48,bot:64,rep:66},',22,'delim',24,':"&'], + ['#xF8F6',';",h:0.8,d:0.15,delim:{','top:','49,bot:65,rep:67','},tclass:"delim"},{c:"&#','xF8EE',1,2,'50,bot:52,rep:54',4,'xF8F9',1,2,'51,bot:53,rep:55',4,'xF8F0',1,'bot:52,rep:54',4,'xF8FB',1,'bot:53,rep:55',4,'xF8EF',1,2,'50,rep:54',4,'xF8FA',1,2,'51,rep:55',4,'xF8F1',1,2,'56,mid:60,bot:58,rep:62',4,'xF8FC',1,2,'57,mid:61,bot:59,rep:62',4,'xF8F3',1,'top:56,bot:','58,rep:62',4,'xF8FE',1,'top:57,bot:','59,rep:62',4,'xF8F2',1,'rep:63',4,'xF8FD',1,'rep:119',4,'xF8F4',1,'rep:62},tclass:"delim"},{c:"|",','h:0.65,d:0,delim:{top:','120,bot:121',',rep:63},tclass:"','vertical','"},{c:"&#','xF8ED',1,45,'59,rep:62',4,'xF8F8',1,50,'58,rep:62',4,'xF8EC',1,'rep:66',4,'xF8F7',1,'rep:67',4,'x3008;",','h:0.04,d:1.76,n:','28',',tclass:"','delim2c',68,'x3009;",',88,'29',90,91,68,'x2294',';",h:0,d:1,n:','71',90,'bigop1',68,'x2294',';",h:0.1,d:1.5,tclass:"','bigop2',68,'x222E',';",h:0,d:1.11,ic:0.095,n:','73',90,'bigop1c',68,'x222E;",h:0,d:2.22,ic:0.222',90,'bigop2c',68,'x2299',100,'75',90,103,68,'x2299',106,107,68,'x2295',100,'77',90,103,68,'x2295',106,107,68,'x2297',100,'79',90,103,68,'x2297',106,107,68,'x2211',100,'88',90,'bigop1a',68,'x220F',100,'89',90,153,68,'x222B',110,'90',90,113,68,'x222A',100,'91',90,'bigop1b',68,'x2229',100,'92',90,171,68,'x228E',100,'93',90,171,68,'x2227',100,'94',90,103,68,'x2228',100,'95',90,103,68,'x2211;",h:0.1,d:1.6',90,'bigop2a',68,'x220F',106,199,68,'x222B;",h:0,d:2.22,ic:0.222',90,117,68,'x222A',106,'bigop2b',68,'x2229',106,211,68,'x228E',106,211,68,'x2227',106,107,68,'x2228',106,107,68,'x2210',100,'97',90,153,68,'x2210',106,199,68,'xFE3F;",h:0.','722,w:0.65,n:99',90,'wide1',68,239,'85,w:1.1,n:100',90,'wide2',68,239,'99,w:1.65',90,'wide3',68,'x2053;",h:0.','722,w:0.75,n:102',90,'wide1a',68,254,'8,w:1.35,n:103',90,'wide2a',68,254,'99,w:2',90,'wide3a','"},{c:"[",',88,'20',90,'delim2','"},{c:"]",',88,'21',90,272,68,'xF8F0;",',88,'22',90,272,68,'xF8FB;",',88,'23',90,272,68,'xF8EE;",',88,'24',90,272,68,10,'",',88,'25',90,272,'"},{c:"{",',88,'26',90,272,'"},{c:"}",',88,'27',90,272,'"},{c:"",h:0.','04,d:1.16,n:113',90,'root',313,'190',315,'925em',317,'04,d:1.76,n:114',90,320,313,'250',315,'925em',317,'06,d:2.36,n:115',90,320,313,'320',315,'92em',317,'08,d:2.96,n:116',90,320,313,'400',315,'92em',317,'1,d:3.75,n:117',90,320,313,'500',315,'9em',317,'12,d:4.5,n:118',90,320,313,'625',315,'9em',317,'14,d:5.7',90,320,'"},{c:"||",',64,'126,bot:127',',rep:119},tclass:"',67,68,'x25B5;",h:0.','45,delim:{',2,'120',66,'arrow1',68,'x25BF;",h:0.',376,'bot:121',66,380,313,'67',315,'35em; margin-','left:-.5em\\">&#','x256D',';",h:0.','1',90,'symbol',313,'67',315,390,'right:-.5em\\">&#','x256E',393,'1',90,396,313,'67',315,390,391,'x2570',393,'1',90,396,313,'67',315,390,401,'x256F',393,'1',90,396,68,375,'5,delim:{',2,'126',372,'arrow2',68,382,429,'bot:127',372,433,'"}],cmti10:[{c:"Γ",ic:0.133,','tclass:"igreek"},{c:"&','Delta;",',441,'Theta;",','ic:0.094,',441,'Lambda;",',441,'Xi;",ic:0.153,',441,'Pi;",ic:0.164,',441,'Sigma;",ic',':0.12,',441,'Upsilon;",ic:0.111,',441,'Phi;",ic:0.0599,',441,'Psi;",ic:0.111,',441,'Omega;",ic:0.103',90,'igreek','"},{c:"ff','",ic:0.212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,"108":15},','tclass:"italic"},{c',':"fi','",ic:0.103,',468,':"fl',470,468,':"ffi',470,468,':"ffl',470,468,':"ı",a:0,','ic:0.','0767,',468,':"j",d:0.2,','ic:0.0374,',468,':"`",','tclass:"iaccent"},{c:"&#','xB4;",ic:0.0969,',489,'x2C7;",ic:0.083,',489,'x2D8;",','ic:0.108,',489,'x2C9;",ic:0.103,',489,'x2DA;",tclass:"','iaccent','"},{c:"?",','d:0.17,w:0.46,',468,':"ß",','ic:0.105,',468,':"æ",a:0,','ic:0.0751,',468,':"œ",a:0,',508,468,':"ø",','ic:0.0919,',468,':"Æ",','ic',454,468,':"Œ",','ic',454,468,':"Ø",',445,468,':"?",krn:{"108":-0.','256,"76":-0.321},',468,':"!",','ic:0.124,lig:{"96":','60},',468,':"”",','ic:0.0696,',468,':"#",ic:0.0662,',468,':"$",',468,':"%",ic:0.136,',468,':"&",','ic:0.0969,',468,':"’",','ic:0.124,','krn:{"63":0.','102,"33":0.102},lig:{"39":34},',468,':"(",d:0.2,','ic:0.162,',468,':")",d:0.2,','ic:0.0369,',468,':"*",ic:0.149,',468,':"+",a:0.1,','ic:0.0369,',468,':",",a:-0.3,d:0.2,w:0.278,',468,':"-",a:0,ic:0.0283',',lig:{"45":','123},',468,':".",a:-0.25,',468,':"/",ic:0.162,',468,':"0",ic:0.136,',468,':"1",ic:0.136,',468,':"2",ic:0.136,',468,':"3",ic:0.136,',468,':"4",ic:0.136,',468,':"5",ic:0.136,',468,':"6",ic:0.136,',468,':"7",ic:0.136,',468,':"8",ic:0.136,',468,':"9",ic:0.136,',468,':":",ic:0.0582,',468,':";",ic:0.0582,',468,':"¡",','ic:0.0756,',468,':"=",a:0,d:-0.1,','ic:0.0662,',468,':"¿",',468,':"?",','ic:0.122,','lig:{"96":','62},',468,':"@",ic:0.096,',468,':"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',614,'86','":-0.102,"','87',618,'101','":-0.0511,"','97',622,'111',622,'100',622,'99',622,'103',622,'113','":-0.0511','},',468,':"B',470,468,':"C",','ic:0.145,',468,':"D",',445,'krn:{"88','":-0.0256,"','87',646,'65',646,'86',646,'89":-0.','0256},',468,':"E",ic',454,468,':"F','",ic:0.133,krn:{"','111',614,'101',614,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',618,'79',646,'67',646,'71',646,'81":-0.0256','},',468,':"G",ic:0.0872,',468,':"H",ic:0.164,',468,':"I",ic:0.158,',468,':"J",ic:0.14,',468,':"K",',641,'krn:{"79',646,'67',646,'71',646,675,'},',468,':"L",krn:{"84',614,'89',614,'86',618,'87',618,'101',622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"M",ic:0.164,',468,':"N",ic:0.164,',468,':"O",',445,'krn:{"88',646,'87',646,'65',646,'86',646,653,'0256},',468,':"P',470,'krn:{"65":-0.0767},',468,':"Q",d:1,',445,468,':"R",ic:0.0387,',612,'0.0256,"84',614,'89',614,'86',618,'87',618,'101',622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"S",ic',454,468,':"T',660,'121',614,'101',614,'111',666,'117',614,'65":-0.0767},',468,':"U",ic:0.164,',468,':"V",ic:0.','184,krn:{"','111',614,'101',614,'117',666,'65',618,'79',646,'67',646,'71',646,675,'},',468,':"W",ic:0.',789,'65":-0.0767},',468,':"X",ic:0.158,krn:{"79',646,'67',646,'71',646,675,'},',468,':"Y",ic:0.','194',',krn:{"101',614,'111',666,'117',614,'65":-0.0767},',468,':"Z",',641,468,':"[",d:0.1,','ic:0.188,',468,':"“",','ic:0.169,',468,':"]",d:0.1,','ic:0.105,',468,':"ˆ",ic:0.0665,',489,'x2D9;",ic:0.118,',489,'x2018;",',531,'92},',468,':"a','",a:0,ic:0.',483,468,':"b",ic:0.0631',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"c',851,'0565',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"d',470,'krn:{"108":','0.0511},',468,':"e',851,'0751',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"f',466,'12,"102":11,"108":13},',468,':"g','",a:0,d:0.2,ic:0.','0885,',468,':"h",ic:0.',483,468,':"i",ic:0.102,',468,485,641,468,':"k",',495,468,':"l',470,892,'0.0511},',468,':"m',851,483,468,':"n',851,483,'krn:{"39":-0.102},',468,':"o',851,'0631',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"p',919,'0631',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"q',919,'0885,',468,':"r',851,'108',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"s',851,'0821,',468,':"t",ic:0.0949,',468,':"u',851,483,468,':"v',851,'108,',468,':"w',851,1020,892,'0.0511},',468,':"x',851,'12,',468,':"y',919,'0885,',468,':"z',851,'123,',468,':"–",a:0.1,ic:0.','0921',565,'124},',468,':"—",a:0.1,ic:0.','0921,',468,':"˝",',605,489,'x2DC;",ic:0.116,',489,'xA8;",tclass:"',500,'"}],cmbx10:[{c:"&Gamma',';",tclass:"bgreek"},{c:"&','Delta',1056,'Theta',1056,'Lambda',1056,'Xi',1056,'Pi',1056,'Sigma',1056,'Upsilon',1056,'Phi',1056,'Psi',1056,'Omega;",tclass:"bgreek"},{c:"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"bold"},{c',':"fi",',1078,':"fl",',1078,':"ffi",',1078,':"ffl",',1078,481,1078,485,1078,':"`',';",tclass:"baccent"},{c:"&#','xB4',1092,'x2C7',1092,'x2D8',1092,'x2C9',1092,499,'baccent',501,1078,504,1078,507,1078,510,1078,513,1078,516,1078,520,1078,524,1078,527,'278,"76":-0.319},',1078,530,606,'60},',1078,534,1078,':"#",',1078,':"$",',1078,':"%",',1078,543,1078,546,548,'111,"33":0.111},lig:{"39":34},',1078,551,1078,554,1078,':"*",',1078,559,1078,':",",a:-0.3,d:0.2,w:0.278,',1078,':"-",a:0',565,'123},',1078,':".",a:-0.25,',1078,':"/",',1078,':"0",',1078,':"1",',1078,':"2",',1078,':"3",',1078,':"4",',1078,':"5",',1078,':"6",',1078,':"7",',1078,':"8",',1078,':"9",',1078,':":",',1078,':";",',1078,596,1078,599,1078,':"¿",',1078,604,606,'62},',1078,':"@",',1078,':"A",krn:{"116','":-0.0278,"','67',1195,'79',1195,'71',1195,'85',1195,'81',1195,'84','":-0.0833,"','89',1207,'86":-0.','111,"87":-0.111},',1078,':"B",',1078,640,1078,':"D",krn:{"88',1195,'87',1195,'65',1195,'86',1195,653,'0278},',1078,':"E",',1078,':"F",krn:{"111',1207,'101',1207,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',1195,'67',1195,'71',1195,'81":-0.0278','},',1078,':"G",',1078,':"H",',1078,':"I",krn:{"73":0.0278},',1078,':"J",',1078,':"K",krn:{"79',1195,'67',1195,'71',1195,1242,'},',1078,':"L",krn:{"84',1207,'89',1207,1210,'111,"87":-0.111},',1078,':"M",',1078,':"N",',1078,':"O",krn:{"88',1195,'87',1195,'65',1195,'86',1195,653,'0278},',1078,':"P",krn:{"65',1207,'111',1195,'101',1195,'97',1195,'46',1207,'44":-0.0833},',1078,742,1078,':"R",krn:{"116',1195,'67',1195,'79',1195,'71',1195,'85',1195,'81',1195,'84',1207,'89',1207,1210,'111,"87":-0.111},',1078,':"S",',1078,':"T",krn:{"121',1195,'101',1207,'111',1235,'0833,"117":-0.0833','},',1078,':"U",',1078,788,'0139,krn:{"','111',1207,'101',1207,'117',1235,'111,"79',1195,'67',1195,'71',1195,1242,'},',1078,807,1331,'111',1207,'101',1207,'117',1235,'111,"79',1195,'67',1195,'71',1195,1242,'},',1078,':"X",krn:{"79',1195,'67',1195,'71',1195,1242,'},',1078,820,'025',822,1207,'111',1235,1325,'},',1078,830,1078,833,1078,836,1078,839,1078,':"ˆ',1092,'x2D9',1092,846,606,'92},',1078,':"a','",a:0,krn:{"','118',1195,'106":0.','0556,"121',1195,'119":-0.','0278},',1078,':"b",krn:{"101','":0.0278,"','111',1409,'120',1195,'100',1409,'99',1409,'113',1409,'118',1195,1402,'0556,"121',1195,1405,'0278},',1078,':"c',1399,'104',1195,'107":-0.0278},',1078,':"d",',1078,':"e",a:0,',1078,':"f',1076,'12,"102":11,"108":13},',1078,':"g',919,1331,1402,'0278},',1078,':"h",krn:{"116',1195,'117',1195,'98',1195,'121',1195,'118',1195,1405,'0278},',1078,':"i",',1078,485,1078,':"k",krn:{"97":-0.0556,"101',1195,'97',1195,'111',1195,'99":-0.','0278},',1078,':"l",',1078,':"m',1399,'116',1195,'117',1195,'98',1195,'121',1195,'118',1195,1405,'0278},',1078,':"n',1399,'116',1195,'117',1195,'98',1195,'121',1195,'118',1195,1405,'0278},',1078,':"o",a:0',822,1409,'111',1409,'120',1195,'100',1409,'99',1409,'113',1409,'118',1195,1402,'0556,"121',1195,1405,'0278},',1078,':"p",a:0,d:0.2',822,1409,'111',1409,'120',1195,'100',1409,'99',1409,'113',1409,'118',1195,1402,'0556,"121',1195,1405,'0278},',1078,':"q",a:0,d:0.2,',1078,':"r",a:0,',1078,':"s",a:0,',1078,':"t",krn:{"121',1195,1405,'0278},',1078,':"u',1399,1405,'0278},',1078,':"v',851,1331,'97":-0.0556,"101',1195,'97',1195,'111',1195,1471,'0278},',1078,':"w',851,'0139',822,1195,'97',1195,'111',1195,1471,'0278},',1078,':"x",a:0,',1078,':"y',919,1331,'111',1195,'101',1195,'97',1195,'46',1207,'44":-0.0833},',1078,':"z",a:0,',1078,1040,'0278',565,'124},',1078,1045,'0278,',1078,':"˝',1092,'x2DC',1092,1053,1102,'"}]});','jsMath.Setup.Styles','({".typeset .math','":"font-style: ','normal','",".typeset .','italic',1622,1625,1624,'bold":"','font-weight: bold',1624,'cmr10','":"font-family: ','serif',1624,'cal',1633,'cursive',1624,'arrows','":"",".typeset .',380,1641,433,1641,'harpoon','":"font-size: ','125%",".typeset .',396,1641,'symbol2',1641,'delim1',1647,'133',315,'75em',1624,'delim1b',1647,'133',315,'8em; margin',': -.1em',1624,'delim1c',1647,'120',315,'8em',';",".typeset .',272,1647,'180',315,1657,1624,'delim2b',1647,'190',315,1663,': -.1em',1624,91,1647,'167',315,'8em',1671,'delim3',1647,'250',315,'725em',1624,'delim3b',1647,'250',315,1663,': -.1em',1624,'delim3c',1647,'240',315,'775em',1671,'delim4',1647,'325',315,'7em',1624,'delim4b',1647,'325',315,1663,': -.1em',1624,'delim4c',1647,'300',315,'8em',1671,'delim',1641,67,1641,'greek',1641,464,1622,1625,1624,'bgreek":"',1630,1624,103,1647,'133%; ','position: relative; top',': .85em; margin:-.05em',1624,153,1647,'100%; ',1745,': .775em',1671,171,1647,'160%; ',1745,': .7em','; margin:-.1em',1624,113,1647,'125%; ',1745,': .',1657,1759,1671,107,1647,'200%; ',1745,': .',1663,':-.07em',1624,199,1647,'175%; ',1745,1758,1671,211,1647,'270%; ',1745,': .62em',1759,1624,117,1647,'250%; ',1745,1758,'; margin:-.17em',1671,242,1647,'67%; ',1745,':-.8em',1624,247,1647,'110%; ',1745,':-.5em',1624,252,1647,'175%; ',1745,':-.32em',1624,257,1647,'75%; ',1745,1807,1624,262,1647,'133%; ',1745,': -.15em',1624,267,1647,'200%; ',1745,': -.05em',1624,320,1641,'accent":"',1745,': .02em',1624,500,'":"',1745,1837,'; font-style: ',1625,1624,1102,'":"',1745,1837,'; ',1630,'"});',1620,'();jsMath.Macro("not','","\\\\mathrel{\\\\','rlap{\\\\kern 4mu/}}");jsMath.Macro("joinrel',1855,'kern-2mu}");jsMath.Box.DelimExtend=jsMath.Box.DelimExtendRelative;jsMath.Box.defaultH=0.8;'] +]); \ No newline at end of file diff --git a/jsMath/jsMath-global-controls.html b/jsMath/jsMath-global-controls.html new file mode 100644 index 00000000..0c5ffe7c --- /dev/null +++ b/jsMath/jsMath-global-controls.html @@ -0,0 +1,106 @@ + + + + + + + + + + +
+ + + +
+ + + + + + + + + +
+
+ + + diff --git a/jsMath/jsMath-global.html b/jsMath/jsMath-global.html new file mode 100644 index 00000000..1732662f --- /dev/null +++ b/jsMath/jsMath-global.html @@ -0,0 +1,414 @@ + + + +jsMath Global Frame + + + + + + + + diff --git a/jsMath/jsMath-loader-omniweb4.js b/jsMath/jsMath-loader-omniweb4.js new file mode 100644 index 00000000..051110ea --- /dev/null +++ b/jsMath/jsMath-loader-omniweb4.js @@ -0,0 +1,39 @@ +/* + * jsMath-loader-omniweb4.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file synchronizes the jsMath-loader.html file with + * the actual loading of the source javascript file. + * OmniWeb 4 has a serious bug where the loader file is run + * several times (and out of sequence), which plays havoc + * with the Start() and End() calls. + * + * --------------------------------------------------------------------- + * + * Copyright 2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +if (window.jsMath.Autoload) { + jsMath.Autoload.Script.endLoad(); +} else { + if (!window.phase2) { + jsMath.Script.Start(); + window.phase2 = 1; + } else { + jsMath.Script.End(); + jsMath.Script.endLoad(); + } +} \ No newline at end of file diff --git a/jsMath/jsMath-loader-post.html b/jsMath/jsMath-loader-post.html new file mode 100644 index 00000000..0de7cb98 --- /dev/null +++ b/jsMath/jsMath-loader-post.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + diff --git a/jsMath/jsMath-loader.html b/jsMath/jsMath-loader.html new file mode 100644 index 00000000..ae9c81ed --- /dev/null +++ b/jsMath/jsMath-loader.html @@ -0,0 +1,92 @@ + + + + + + + + + + + + diff --git a/jsMath/jsMath-msie-mac.js b/jsMath/jsMath-msie-mac.js new file mode 100644 index 00000000..cf19f76f --- /dev/null +++ b/jsMath/jsMath-msie-mac.js @@ -0,0 +1,53 @@ +/* + * jsMath-msie-mac.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed for use with MSIE on the Mac. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +/* + * MSIE crashes if it changes the page too quickly, so we add a + * delay between processing math entries. Unfortunately, this really + * slows down math in MSIE on the mac. + */ + +jsMath.Add(jsMath,{ + + msieProcess: jsMath.Process, + msieProcessBeforeShowing: jsMath.ProcessBeforeShowing, + + Process: function () { + // we need to delay a bit before starting to process the page + // in order to avoid an MSIE display bug + jsMath.Message.Set("Processing Math: 0%"); + setTimeout('jsMath.msieProcess()',jsMath.Browser.delay); + }, + + ProcessBeforeShowing: function () { + // we need to delay a bit before starting to process the page + // in order to avoid an MSIE display bug + setTimeout('jsMath.msieProcessBeforeShowing()',5*jsMath.Browser.delay); + } + +}); + +jsMath.Browser.delay = 75; // hope this is enough of a delay! diff --git a/jsMath/jsMath-old-browsers.js b/jsMath/jsMath-old-browsers.js new file mode 100644 index 00000000..35dcf189 --- /dev/null +++ b/jsMath/jsMath-old-browsers.js @@ -0,0 +1,58 @@ +/* + * jsMath-old-browsers.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed by older versions of some browsers + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +jsMath.Add(jsMath.HTML,{ + /* + * Use the blank GIF image for spacing and rules + */ + Blank: function (w,h,d,isRule) { + var style = ''; + if (isRule) { + if (h*jsMath.em < 1.5) {h = '1px'} else {h = jsMath.HTML.Em(h)} + style = 'border-top:'+h+' solid;'; h = 0; + } + if (d == null) {d = 0} + style += 'width:'+this.Em(w)+'; height:'+this.Em(h+d)+';'; + if (d) {style += 'vertical-align:'+this.Em(-d)} + return ''; + } +}); + +if (jsMath.browser == 'Konqueror') { + + jsMath.Package(jsMath.Box,{Remeasured: function() {return this}}); + + jsMath.Add(jsMath.HTML,{ + Spacer: function (w) { + if (w == 0) {return ''}; + return '' + + ' '; + } + }); + + jsMath.Browser.spaceWidth = this.EmBoxFor('     ').w/5; + +} + +jsMath.styles['.typeset .spacer'] = ''; diff --git a/jsMath/jsMath.js b/jsMath/jsMath.js new file mode 100644 index 00000000..4dc9cf00 --- /dev/null +++ b/jsMath/jsMath.js @@ -0,0 +1,51 @@ +/***************************************************************************** + * + * jsMath: Mathematics on the Web + * + * This jsMath package makes it possible to display mathematics in HTML pages + * that are viewable by a wide range of browsers on both the Mac and the IBM PC, + * including browsers that don't process MathML. See + * + * http://www.math.union.edu/locate/jsMath + * + * for the latest version, and for documentation on how to use jsMath. + * + * Copyright 2004-2010 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *****************************************************************************/ + +if (!window.jsMath) {jsMath = {}} +if (!jsMath.Script) {jsMath.Script = {}} + +jsMath.Script.Uncompress = function (data) { + for (var k = 0; k < data.length; k++) { + var d = data[k]; var n = d.length; + for (var i = 0; i < n; i++) {if (typeof(d[i]) == 'number') {d[i] = d[d[i]]}} + data[k] = d.join(''); + } + eval(data.join('')); +} + +//start = new Date().getTime(); +jsMath.Script.Uncompress([ + ['if(!','window.','jsMath','||!',1,'jsMath.','loaded','){var ','jsMath_old','=',1,2,';',0,'document.','getElementById','||!',14,'childNodes||!',14,'createElement','){','alert("','The',' mathematics ','on this page requires W3C DOM support in its JavaScript. Unfortunately, your ','browser',' doesn\'t seem to have this.")}','else{',1,2,'={version:"3.6e",document:document,','window',':',32,',','platform',':(','navigator.',36,'.match(/','Mac/)?"mac":',38,36,40,'Win/)?"pc":"unix"),','sizes',':[50,60,70,85,100,120,144,173,207,249],styles:{".math','":{"font-family":"serif","font-style":"normal","font-weight":"normal','"},".typeset',48,'","line-height":"normal','","text-indent":"0px','","white-space":"','normal','"},".typeset .',54,48,'"},"div.','typeset','":{"text-align":"','center",margin:"1em 0px"},"span.',59,60,'left',49,' span',60,'left",border',':"0px",margin:"0px','",padding',':"0px"},"a .',59,' img, .',59,' a img','":{border:"0px','","border-bottom":"','1px solid',' blue;"},".',59,' .size0','":{"font-size":"','50','%"},".typeset .','size1',82,'60',84,'size2',82,'70',84,'size3',82,'85',84,'size4',82,'100',84,'size5',82,'120',84,'size6',82,'144',84,'size7',82,'173',84,'size8',82,'207',84,'size9',82,'249',84,'cmr10','":{"font-family":"jsMath-',121,', serif',55,'cmbx10',122,126,', ',2,'-cmr10',55,'cmti10',122,133,', ',2,131,55,'cmmi10',122,140,55,'cmsy10',122,144,55,'cmex10',122,148,55,'textit','":{"font-family":"','serif","','font-style":"italic',55,'textbf',153,'serif","font-weight":"bold',55,'link":{"','text-decoration":"none',55,'error',82,'90%","',155,'","background-color','":"#FFFFCC',70,':"1px','",border:"',78,' #CC0000',55,'blank','":{display:"','inline-block','",overflow:"','hidden',172,'0px none",width:"0px",height:"0px',55,'spacer',177,178,'"},"#','jsMath_hiddenSpan":{','visibility:"hidden",position:"absolute",','top:"0px",left:"0px',51,52,187,'jsMath_message','":{position:"fixed",bottom:"','1px",left:"2px',168,'":"#E6E6E6','",border:"solid 1px #959595",margin:"0px",padding:"','1px 8px','","z-index":"','102','",color:"black","font-size":"','small",width:"auto','"},"#jsMath_panel',195,'1.75em",right:"1.5em',70,':".8em 1.6em',168,'":"#DDDDDD',172,'outset 2px',201,'103",','width:"auto',203,'10pt","font-style":"',54,205,' .disabled":{color:"#888888',205,' .infoLink',82,'85%"},"#jsMath_panel *":{"','font-size":"inherit","font-style":"inherit","font-family":"inherit',51,205,' div":{"','background-color":"inherit",color:"inherit"},"#jsMath_panel ','span":{"',230,'td',76,70,69,'","',230,'tr',76,70,69,'","',230,'table',76,70,69,168,'":"inherit",color:"inherit",height:"auto",',216,187,'jsMath_button',195,'1px",right:"2px',168,'":"white',199,'0px 3px 1px 3px',201,'102",color:"black","',162,'","font-size":"x-',204,'",cursor:"hand"},"#',253,' *":{padding:"0px",border',69,51,'","',226,187,'jsMath_global":{"',155,187,'jsMath_noFont',' .message":{"text-align":"center",padding:".8em 1.6em",border:"3px solid #DD0000","background-color":"#FFF8F8",color:"#AA0000","font-size":"',204,187,'jsMath_noFont .link":{padding:"0px 5px 2px 5px',172,'2px outset',168,'":"#E8E8E8',203,'80%",',216,265,'jsMath_PrintWarning',277,'x-',204,'"},"@media print":{"#',253,177,'none',187,'jsMath_Warning',177,'none"}},"@media screen":{"#',289,177,'none"}}},Element',':function(','a){','return ',5,14,15,'("jsMath_"+a)},BBoxFor',304,'a','){this.','hidden.innerHTML','=\'<','span class="',59,'"><',316,'scale">\'+a+"";var b=(',5,'Browser.','msieBBoxBug?this.','hidden.firstChild','.firstChild',':this.hidden',');var c={w:','b.offsetWidth',',h',326,'.offsetHeight','};this.',314,'="";',306,'c},EmBoxFor',304,'b){var a=',5,'Global.cache','.R;',0,'a[this.em',']){',343,']={}}',0,343,'][b]){','var c=','this.BBoxFor','(b);',343,'][b]={w:c.w/this.em,h:c.h/this.em}}',306,343,'][b]},Init',':function(){','if(',5,'Setup.inited','!=1){',0,5,361,'){',5,'Setup.','Body()}if(',5,361,'!=1){if(',5,361,'==-100','){return}',22,'It looks like ',2,' failed to set up properly (error code "+',5,361,'+"). I will try to keep going, but it could get ugly.");',5,361,'=1}}this.em=this.CurrentEm();','var a=',5,340,'.B;',0,343,']){',343,']={};',343,'].bb=',351,'("x");',350,343,'].bb.h;',343,'].d=',351,'("x"+',5,'HTML.Strut','(c/this.em)).h-c}',5,322,'italicCorrection=',343,'].ic;var g=',343,'].bb;var e=g.h;var f=',343,'].d;this.h=(e-f)/this.em;this.d=f/this.em;this.hd=this.h+','this.d;this.',368,'TeXfonts','();var b=this.EmBoxFor(\'<',316,121,'">M\').w/2;this.TeX.M_height=b*(26/14);this.TeX.h=this.h;this.TeX.d=',419,'TeX.hd=this.hd;this.Img.Scale();',0,'this.initialized',313,368,'Sizes','();this.','Img.UpdateFonts()}this.p_height=(','this.TeX.cmex10[0].','h+',435,'d)/0.85;',429,'=1},ReInit',358,'if(this.','em!=this.CurrentEm()){this.Init()}},CurrentEm',358,387,351,'(\'\').','w/27;if(a>0){',306,'a}',306,351,'(\'\').w/13},Loaded',358,'if(',8,7,'b=["Process","ProcessBeforeShowing","ProcessElement","ConvertTeX","ConvertTeX2","ConvertLaTeX","ConvertCustom","CustomSearch","Synchronize","Macro","document"];','for(var a=0;a<','b','.length;a++){','if(',8,'[b[a]]){','delete ',8,'[b[a]]}}}if(',8,'){this.Insert(',2,',',8,')}',8,'=null;',5,6,'=1},Add',304,'c,a){for(var b in a){','c[b]=a[b]}},Insert',304,487,'if(c[b]&&typeof(a[b])=="object"&&(','typeof(c[b])=="','object"||',492,'function")){this.Insert(c[b],a[b])}',28,'c[b]=a[b]}}},Package',304,'b,a',476,'b.prototype,a)}};',5,'Global={isLocal:1,cache:{','T:{},D:{},R:{},B',':{}},ClearCache',358,5,340,'={',504,':{}}},GoGlobal',304,338,'String(',5,1,'location',');var d=(',5,'isCHMmode','?"#":"?");if(b){a=a.replace(/\\?.*/,"")+"?"+b}',5,'Controls.','Reload(',5,'root+"',2,'-global.html"+d+escape(a))},Init',358,'if(',5,'Controls.cookie.','global=="always"&&!',5,'noGoGlobal','){if(',38,'accentColorName',376,0,5,32,'){',5,32,'=',32,'}',5,523,6,'=1;',5,523,'defaults.hiddenGlobal=null;this.GoGlobal(',5,523,'SetCookie(2))}},Register',358,387,5,1,'parent;',0,5,520,'){',5,520,'=(',5,1,517,'.protocol','=="mk:")}try{',0,5,520,313,'Domain()}if(a.',2,'&&a.',5,'isGlobal){a.',5,'Register(',5,32,')}}catch(b){',5,535,'=1}},Domain',358,'if(',38,'appName=="Microsoft Internet Explorer"&&',5,36,'=="mac"&&',38,'userProfile','!=null',376,'if(',5,14,'all&&!',5,1,'opera',376,'if(',32,'==parent',376,'var b=',5,14,'domain',';try{while(true){try{if(parent.',14,'title',602,'){return}}','catch(a){}',0,14,619,'.match(/\\..*\\./)){break}',5,14,619,'=',5,14,619,'.replace(/^[^.]*\\./,"")}}',625,5,14,619,'=b}};',5,'Script={request:null,Init',358,'if(!(',5,532,'asynch&&',5,532,'progress',')){if(',1,'XMLHttpRequest','){try{','this.request','=new ',655,'}catch(c){}if(',657,'&&',5,'root.match','(/^file:\\/\\//)){try{',657,'.open("GET",',5,526,5,'js",false);',657,'.send(null)}catch(','c){',657,'=null;if(',1,'postMessage&&',1,'addEventListener',313,'mustPost','=1;',5,1,680,'("message",',5,'Post.','Listener,false)}}}}',0,657,'&&',1,'ActiveXObject','&&!this.',682,7,'a=["MSXML2.XMLHTTP.6','.0","MSXML2.XMLHTTP','.5',700,'.4',700,'.3',700,'","Microsoft.XMLHTTP"];','for(var b=0;b<','a.length&&!',657,';b++){try{',657,658,695,'(a[b])}catch(c){}}}}',0,657,'||',5,368,'domainChanged',313,'Load=this.delayedLoad;this.needsBody=1}},Load',304,'b,a){','if(a){',5,'Message.Set("Loading "+','b);',5,'Script.','Delay(1);',5,'Script.Push(','this,"xmlRequest",b',');',5,734,5,'Message',',"Clear")}',28,5,734,735,')}},xmlRequest',304,'url){','this.blocking','=1;try{',657,667,'url,false);',657,673,'err){',749,'=0;if(',5,'Translate.','restart&&',5,'Translate.asynchronous){return""}throw Error("jsMath can\'t load the file \'"+url+"\'\\','nMessage: "+err.message)}if(',657,'.status',602,'&&(',657,766,'>=400||',657,766,'<0)){',749,'=0;if(',5,760,'restart&&',5,763,'nError status: "+',657,766,')}',0,'url','.match(/\\.js$/)){','return(',657,'.responseText',')}var tmpQueue','=this.queue;this.queue','=[];',5,1,'eval(',657,791,');',749,'=0;','this.queue=this.queue.','concat(','tmpQueue);this.Process();return""},cancelTimeout:30*1000,blocking:0,cancelTimer:null,needsBody:0,queue:[],Synchronize',304,'a,b','){if(typeof(','a)!="string"){',5,734,'null,a,b)}',28,5,734,5,32,',"eval",a)}},Push',304,'a,c,b',313,'queue[','this.queue.length',']=[a,c,b];if(!(',749,'||(this.needsBody&&!',5,14,'body','))){this.Process()}},Process',358,'while(',823,'&&!',749,7,'c=this.queue[0];',803,'slice(1);',387,'this.SaveQueue();var b=c[0];var e=c[1];var d=c[2];if(b){b[e](d)}',28,'if(e){e(d)}}this.','RestoreQueue','(a)}},SaveQueue',358,'var a',793,'=[];',306,'a},',844,304,'a){',803,804,'a)},delayedLoad',304,'a',313,'Push(','this,"','startLoad','",a)},',863,304,'a',7,'b=',5,14,20,'("iframe");b','.style.visibility="',180,'";b.style.','position="absolute";','b','.style.width="','0px";b','.style.height="','0px";if(',5,14,829,325,'){',5,14,829,'.insertBefore(','b,',5,14,829,325,')}',28,5,14,829,'.appendChild(','b)}',749,'=1;this.','url=a;if(a','.substr(0,',5,'root.length',')==',5,'root){a=a.substr(',5,909,')}',5,728,'a);this.cancelTimer=setTimeout("',5,731,'cancelLoad','()",this.cancelTimeout);',442,682,'){','b.src=',5,689,863,'(a,b)}',28,'if(a',788,926,5,526,2,'-loader.html"}',28,926,'this.url}}},','endLoad',304,'a){if(this.cancelTimer){clearTimeout(this.cancelTimer);this.cancelTimer=null}',5,689,942,'();',5,740,'.Clear();if(a!="cancel"){',749,'=0;this.Process','()}},Start',358,'this.tmpQueue',793,'=[]},End',358,803,804,956,');',472,956,'},',921,304,'b,',944,'if(b==null){b','="Can\'t load file"}if(a==null){a=2000}',5,740,'.Set(b);setTimeout(\'',5,731,942,'("cancel")\',a)},Delay',304,'a){',749,'=1;setTimeout("',5,731,'endDelay','()",a)},',986,358,749,953,'()},','imageCount',':0,WaitForImage',304,'b){',749,905,993,'++;',442,'img==null',313,'img=[]}',387,'new Image',433,'img[this.img.length]=a;a.onload=function(){if(--',5,731,993,'==0){',5,731,986,'()}};a.onerror=a.onload;a.onabort=a.onload;a.src=b},Uncompress',304,'data){for(var k=0;k\'+a[65].c','+"").h;a.d=',5,1572,'+',5,408,'(a.hd)+"").h-a.hd;a.h=a.hd-a.d;','if(b=="',140,'"){a.skewchar=','127}',28,1580,144,1582,'48}}},',421,358,466,5,1555,468,'if(',5,1555,'[a]){this.TeXfont(',5,1555,'[a])}}},Sizes',358,5,'TeXparams','=[];var b;var a;for(a=0;a<',5,46,468,5,1604,'[a]={}}for(b in ',5,'TeX',808,5,'TeX[b])!="object"){for(a=0;a<',5,46,468,5,1604,'[a][b]=',5,46,'[a]*',5,'TeX[b]/100}}}},Styles',304,'a){',0,'a){a=',5,'styles;a[".',59,' .scale"]={"font-size":',5,532,'scale+"%"};this.stylesReady=1}',5,734,862,'AddStyleSheet','",a);if(',5,322,'styleChangeDelay','){',5,734,5,'Script,"Delay",1)}},StyleString',304,'e',7,'a={},f;for(f in e){if(typeof e[f]==="string"){a[f]=e[f]}',28,'if(f',907,'1)==="@"){a[f]=','this.StyleString(','e[f])}',28,'if(e[f]!=null',7,'d=[];for(var c in e[f]){if(e[f][c]!=null){d[d.length]=c+": "+e[f][c]}}a[f]=d.join("; ")}}}}var b="";for(f in a){b+=f+" {"+a[f]+"}\\n"}',306,'b},',1642,304,'d',7,'b=',5,14,1379,'head")[0];if(',338,1660,'d);if(',5,14,'createStyleSheet){b.insertAdjacentHTML("beforeEnd",\'<','span style="display:','none">x")}',28,350,5,14,20,'("style");c.type="text/css";c',902,5,14,1162,'(a));b',902,'c)}}',28,0,5,'noHEAD){',5,'noHEAD=1;',22,'Document is missing its section. Style sheet can\'t be created without it.")}}},Body',358,442,'inited',376,'this.inited=-','1;',5,368,'Hidden();',1710,'2;',5,322,1184,1710,'3;if(',5,532,176,'){',5,740,'.Blank()}',1710,'4;',5,368,'Styles();',1710,'5;',5,523,1184,1710,'6;',5,734,5,'Setup,"User","pre-font");',1710,'7;',5,734,5,'Font,"Check");if(',5,'Font.register.length){',5,734,5,'Font,"LoadRegistered")}this.inited=1},User',304,'a){if(',5,'Setup.UserEvent[a',']){(',5,1760,'])()}},UserEvent:{"pre-font":null,onload:null}};',5,'Update={',421,304,'d){for(var a in d){for(var b in d[a]){for(var c in d[a',349,5,'TeX[a][b][c]=d[a][b][c]}}}},TeXfontCodes',304,'c){',1320,708,'c[a].',1384,5,'TeX[a][b].c=c[a][b]}}}};',5,'Browser={allowAbsolute:1,allowAbsoluteDelim:0,','separateSkips',':0,valignBug:0,operaHiddenFix:"",','msieCenterBugFix',':"",','msieInlineBlockFix',':"",msieSpaceFix:"",imgScale:1,renameOK:1,',1646,':0,delay:1,','processAtOnce',':16,version:0,','TestSpanHeight',358,5,314,'=\'<','span style="\'+this.block','+\';height:2em',';width:1px','">x','\';var b=',5,324,';',387,'b',325,';this.spanHeightVaries=(b',331,'>=a',331,'&&b',331,'>0);this.spanHeightTooBig=(b',331,'>a',331,');',5,314,'=""},','TestInlineBlock',358,'this.block="display',':-','moz-inline-box";','this.hasInlineBlock','=',5,'BBoxFor(\'\').w>0;if','(',1828,'){',5,'styles[".typeset',' .',176,'"].display="-',1827,472,5,1837,' .spacer"].display','}',28,1825,':',178,'";',1828,'=',5,1831,1832,'(!',1828,624,'this.block+=";overflow:',180,'";var d=',5,'BBoxFor("x").h;this.mozInlineBlockBug=',5,1831,'+";height:"+d+\'px;width:1px',1801,'<',1798,'+";height:"+d+"px',1800,';vertical-align:-"+d+\'px',451,'h>2*d;this.widthAddsBorder=',5,1831,'+\';overflow:',180,';height:1px;width:10px',';border-left:','10px solid',451,'w>10;',350,5,1831,1867,1801,'\').h,b=',5,1831,1867,1881,78,1801,'\').h,a=',5,1831,1799,451,'h;this.msieBlockDepthBug=(c==d);','this.msieRuleDepthBug','=(b==d',');this.blankWidthBug=(','a==0)},','TestRenameOK',358,5,314,'="";',387,5,324,';a.setAttribute("name","','jsMath_test','");this.renameOK=(',5,14,'getElementsByName("',1916,'").length>0);',5,314,1822,'TestStyleChange',358,5,314,'=\'x\';var b=',5,324,';',387,328,';',5,368,1642,'({"#',1916,'":"font-size:200%"});this.',1646,'=(',328,'==a);',5,314,1822,'VersionAtLeast',304,338,1430,'this.version',').split(".");','b=',1430,'b',1957,'if(b[1]==null){b[1]="0"}',306,'a[0]>b[0]||(a[0]==b[0]&&a[1]>=b[1])},Init',358,5,26,'="unknown";this.',1823,433,1793,433,1907,433,1926,433,'MSIE',433,'Mozilla',433,'Opera',433,'OmniWeb',433,'Safari',433,'Konqueror();if(','this.allowAbsoluteDelim','){',5,'Box.DelimExtend=',5,'Box.DelimExtendAbsolute;',5,'Box.Layout=',5,'Box.LayoutAbsolute}',28,5,'Box.DelimExtend=',5,'Box.DelimExtendRelative;',5,'Box.Layout=',5,'Box.LayoutRelative}',442,1783,'){',5,'HTML.Place=',5,'HTML.','PlaceSeparateSkips',';',5,'Typeset.prototype.','Place=',5,2017,2014,'}},MSIE',358,'if(',5,'BBoxFor("").w','){',5,26,'="MSIE";if(',5,36,'=="pc"){this.','IE7=(',1,655,'!=null);this.','IE8=(',5,2026,'gte IE 8]>IE8',2028,'>0);','this.isReallyIE8','=(',5,14,'documentMode',2039,'quirks=(',5,14,'compatMode=="BackCompat");','this.msieMode','=(',5,14,2050,'||(this.quirks?5:7));this.msieStandard6=!this.quirks&&!this.IE7;',1988,905,1783,'=1',';this.buttonCheck=1;this.','msieBlankBug=1;this.','msieAccentBug',905,'msieRelativeClipBug','=1;this.msieDivWidthBug=1;this.',1271,905,'msieIntegralBug',905,'waitForImages',905,'msieAlphaBug','=!this.IE7;this.','alphaPrintBug',2079,1785,'="position:relative; ";this.',1787,'=" display:',178,';";this.msie8HeightBug=this.msieBBoxBug=(',2056,'==8',1905,2056,'!=8);this.msieSpaceFix=(',2046,'?\'<',1683,178,'; ','margin-right:-1px; width:1px">\':\'‹\',"',54,'"];',5,2137,'width="42em";',5,532,'printwarn=0}}this.',1791,'=Math.max(Math.floor((this.',1791,'+1)/2),1);',5,2103,'not',2105,2121,'kern3mu/}}");',5,'Macro("angle","\\\\raise1.','84pt','{\\\\kern2.5mu\\\\rlap{\\\\scriptstyle/}\\\\','kern.5pt\\\\','rule{.4em}{-','1.5pt}{1.84pt}\\\\kern2.5mu}")}},',1979,358,'if(',5,180,'.ATTRIBUTE_NODE&&',5,1,'directories){',5,26,'="',1979,'";if(',5,36,2035,2080,'=1}',1988,'=1;',5,2144,'cursor=',5,2179,'cursor="pointer",',5,2103,'not',2105,2121,'kern3mu/}}");',5,2271,'34pt',2273,2275,'1pt}{1.34pt}\\\\kern2.5mu}");if(',38,'vendor=="Firefox"){',1956,'=',38,'vendorSub}',28,'if(',38,'userAgent.match(" Firefox/([0-9.]+)([a-z ]|$)")){',1956,'=RegExp.$1}}',442,1952,'("3.0")){this.mozImageSizeBug=this.lineBreakBug=1}}},',1983,358,'if(',38,'accentColorName){',5,26,'="',1983,'";','this.allowAbsolute','=',1828,';',1988,'=',2341,';this.valignBug=!',2341,2066,1191,'=1;',5,'noChangeGlobal=1;',0,1828,'){',5,368,'Scri'], + ['pt("','jsMath','-old-browsers.js','")}}},Opera',':function(){','if(this.','spanHeightTooBig){',1,'.browser="','Opera";','var b=','navigator.userAgent.match','("Opera 7");','this.allowAbsolute=0;this.','delay=10;this.operaHiddenFix="[Processing]";if(b){',1,'.Setup.','Script','("',1,2,'")}','var a=','navigator.appVersion.match','(/^(\\d+\\.\\d+)/);if(a){','this.version=a','[1]}else{this.vesion=0}this.operaAbsoluteWidthBug=this.operaLineHeightBug=(a[1]>=9.5&&a[1]<9.6)}},Safari',4,'if(',23,'(/Safari\\//)){',1,8,'Safari";if(navigator.vendor','.match(/','Google/)){',1,8,'Chrome"}',22,11,'("Safari/([0-9]+)");a=(a)?a[1]:400;',25,';',1,'.TeX.','axis_height','+=0.05;this.','allowAbsoluteDelim=','a>=125;this.safariIFRAMEbug=a>=312&&a<412;this.safariButtonBug=a<412;this.safariImgBug=1;this.textNodeBug=1;this.lineBreakBug=a>=526;this.buttonCheck=a<500;this.styleChangeDelay=1;',1,'.Macro("not","\\\\mathrel{\\\\rlap{\\\\kern3.25mu/}}")}},','Konqueror',4,'if(','navigator.product','&&',55,'.match("',52,'")){',1,8,52,'";',13,48,'0;if(',11,'(/',52,'\\/(\\d+)\\.(\\d+)/)){if(RegExp.$1<3||(RegExp.$1==3&&RegExp.$2<3)){this.separateSkips=1;this.valignBug=1;',1,16,17,'("',1,2,'")}}',1,'.Add(',1,'.styles,{".typeset .cmr10":"','font-family: ',1,'-','cmr10, ',1,' cmr10',', serif','",".typeset .','cmbx10":"',83,1,'-cmbx10, ',1,' cmbx10, ',1,'-',86,1,88,90,'cmti10":"',83,1,'-cmti10, ',1,' cmti10, ',1,'-',86,1,88,90,'cmmi10":"',83,1,'-cmmi10, ',1,' cmmi10',90,'cmsy10":"',83,1,'-cmsy10, ',1,' cmsy10',90,'cmex10":"',83,1,'-cmex10',', ',1,' cmex10"});',1,'.Font.testFont','="',1,132,', ',1,' cmex10"}}};',1,'.Font={testFont:"',1,132,'",fallback:"symbol",register:[],message:"No ',1,' TeX fonts ','found -- using',' image fonts instead','.
\\nThese may be slow and might not print well.
\\nUse the ',1,' control panel to get additional information','.",','extra_message',':\'Extra',150,'not found:
Using',152,'. This may be slow and might not print well.
\\nUse the ',1,155,'.\',','print_message',':"To print higher-resolution math symbols, click the
\\nHi-Res Fonts for Printing button on the ',1,' control panel.
\\n",','alpha_message',':"If the math symbols print as black boxes, turn off image alpha channels
\\nusing the Options pane of the ',1,169,'Test1',':function(','c,','f,d,e){if(f==null){f=124}if(d==null){d=2}if(e==null){e=""}var b=jsMath.BBoxFor(\'\'+jsMath.TeX[c][f].c+"");var a=jsMath.BBoxFor(\'\'+jsMath.TeX[c][f].c+"");return(','b.w>d*a.w&&b.h!=0)},Test2',175,'c,',177,'a.w>d*b.w&&b.h!=0)},CheckTeX',4,22,1,'.BBoxFor(\'\'+',1,45,'cmex10[1].c+"");',1,'.nofonts','=((a.w*3>a.h||a.h==0)&&!this.Test1("cmr10",null,null,"',1,'-"));if(!',1,196,'){return}},Check',4,22,1,'.Controls.','cookie;this.CheckTeX();if(',1,196,'){if(a.autofont||a','.font=="tex"){','a.font=this.fallback;if(a.warn){',1,'.nofontMessage=1;a.warn=0;',1,206,'SetCookie(0);if','(',1,'.window.NoFontMessage','){',1,220,'()}else{','this.Message(this.','message)}}}}else{if(a.autofont){a.font="tex"}if(a',211,'return}}if(',1,'.noImgFonts){','a.font="unicode"}if(a','.font=="unicode','"){',1,16,17,'("',1,'-fallback','-"+',1,'.platform+".js");',1,'.Box.TeXnonfallback=',1,'.Box.TeX',';',1,246,'=',1,'.Box.TeXfallback;return}','if(!a.print&&a.printwarn){this.','PrintMessage','((',1,'.Browser.','alphaPrintBug&&',1,206,'cookie.alpha)?this.',166,'+this.',170,':this.',166,')}if(',1,257,'waitForImages){',1,'.Script.','Push(',1,'.',17,',"WaitForImage",',1,'.blank)}if(a.font=="symbol"){',1,16,17,'("',1,239,'-symbols.js");',1,'.Box.TeXnonfallback=',1,246,';',1,246,'=',1,252,1,'.Img.SetFont','({cmr10:["all"],cmmi10:["all"],cmsy10:["all"],cmex10:["all"],cmbx10:["all"],cmti10:["all"]});',1,'.Img.LoadFont','("cm-fonts")},Message',175,'a){if(',1,'.Element("Warning',60,'return}',10,1,16,'DIV("Warning','",{});b.innerHTML=\'
\'+a','+\'
',1,323,'


\'},',331,4,22,1,306,'");if(a','){a.style.display="none"}},',254,175,304,1,'.Element','("PrintWarning',60,308,10,1,16,'DIV',350,313,315,'+\'',1,'
\';if(!',1,'.Global.','isLocal&&!',1,'.noShowGlobal){a',426,'+=\'Global \'}if(a.offsetWidth<30){a.style.width="auto"}if(!','this.cookie','.button',344,'MoveButton',4,'var a=(',1,257,'quirks?document.body:document.documentElement);',1,'.fixedDiv.style.','left=a.scrollLeft+"px";',1,554,'top=a.scrollTop+a.clientHeight+"px";',1,554,'width=a.clientWidth+"px"},GetCookie',4,'if(','this.defaults','==null){',564,'={}}',1,80,564,',',544,');this.userSet={};var c=',1,'.document.cookie',';if(',1,'.window.location','.protocol.match(this.',481,')){c=this.','localGetCookie','();this.','isLocalCookie','=1}if(c',34,1,'=([^;]+)/)){var d=unescape(RegExp.$1).split(/,/);for(',10,'0;b\'},Blank',941,'b,f,i,g){var a','="";var e="";','if(g){e+="border-left',':"+this.Em(','b)+" solid;";if(',1023,'widthAddsBorder){b=0}}if(b==0){if(',1023,'blankWidthBug){if(',1023,'quirks','){e+="width:1px',';";a=\'<',1035,'right:-1px">\'}else{if(!g',1050,';margin-right:-1px;"}}}}else{e+="width',1042,'b)+";"}if(i==null){i=0}if(f){var c=this.Em(f+i);if(g&&f*jsMath.em<=1.5){c="1.5px";f=1.5/jsMath.em}e+="height:"+c+";"}if(',1023,'mozInlineBlockBug){i=-f}if(',1023,'msieBlockDepthBug','&&!g){i-=jsMath.d}if(i){e+="','vertical-align:"+','this.Em(-i)}return a+\'\'},Rule',941,'a,b){if(b==null){b','=jsMath.TeX.default_rule_thickness}',1001,'Blank(a,b,0,1)},Strut',941,'a){',1001,'Blank(1,a,0,1)},msieStrut',941,'a){return','\'\'},Class',941,'a,b){return\'\'+b+""},Place',941,'b,a,d){',990,'a)<0.0001){a=0}',990,'d)<0.0001){d=0}if(a||d){var c=\'<','span style="position',': relative',';\';if(a){c+=" margin-left',1042,'a)+";"}if(d){c+=" top:"+this.Em(-d)+";"}b=c',1081,'>"}return b},PlaceSeparateSkips',941,'e',',g,f,i,a,h){if(Math.abs(g)<0.0001){g=0}if(Math.abs(f)<0.0001){f=0}','if(f){var d=0;var c=0;','var b="";if(','i!=null){c=','a-h;d=i;b=" width',1042,'a-i)+";"}e=','this.Spacer','(d-c)+\'<',1089,1090,'; top:\'+this.Em(-f)+";left',1042,'c',')+";"+b+\'">\'+',1105,'(-d)+e+',1105,'(c)+""}if(g){e=',1105,'(g)+e}return e},PlaceAbsolute',941,'d',1098,'var c',1040,1100,1023,'msieRelativeClipBug&&',1101,1105,'(-i);g+=i;e=',1105,'(a-h)}if(',1023,'operaAbsoluteWidthBug){b=" width: "+this.Em(h+2)}d=\'<',1089,':absolute; ',1036,'g)+"; top',1042,'f',1112,'c+d+e+" ";','return d},','Absolute',941,'b,a,c,e,f){if(f!="none"){',990,'f)<0.0001){f=0}b=\'<',1089,1135,'top:\'+','jsMath.HTML.','Em(f)+\'; left:0em;">\'+b+" "}if(e=="none"){e=0}b+=this.Blank((',1023,'lineBreakBug','?0:a),c-e,e);if(',1023,'msieAbsoluteBug){b=\'<',1089,':relative',';">\'+b+""}b=\'<',1089,1159,';\'+',1023,'msieInlineBlockFix',1081,'>";if(',1023,1154,'){b=\'\'+b+""}return b}};jsMath.Box=function(c,f,a,b,e){','if(e==null){','e=jsMath.d}this.type="typeset";this.w=a;this.h=b;this.d=e;this.bh=b;this.bd=e;this.x=0;this.y=0;this.mw=0;this.Mw=a;this.html=f;this.format=c};jsMath.Add(jsMath.Box,{defaultH:0,Null',959,'return ','new jsMath.Box("','null","",0,0,0)},Text',941,'l,k,b,m,j,i){var g=','jsMath.Typeset.AddClass(','k,l);g=','jsMath.Typeset.','AddStyle(','b,m,g);var c','=jsMath.EmBoxFor(','g);',960,1183,'TeX(b,m);var h=((k=="cmsy10"||k=="cmex10")?c.h-e.h:e.d*c.h/e.hd);var f=',1177,'text",l,c.w,c.h-h,h);f.style=b;f.size=m;f.tclass=k;if(i!=null){f.d=i*e.scale}else{f.d=0}if(j==null||j==1){f.h=0.9*e.M_height}else{f.h=1.1*e.x_height+e.scale*j}return f},TeX',941,'g,a,d,b){var h=',965,'a][g];if(h.d==null){h.d=0}if(h.h==null){h.h=0}if(h.img!=null&&h.c!=""){this.TeXIMG(a,g,',1183,'StyleSize(d,b))}var f=',1183,'TeX(d,b).scale;',960,1177,'text",h.c,h.w*f,h.h*f,h.d*f);e.style=d;e.size=b;if(h.tclass){e.tclass=h.tclass;if(h.img){e.bh=h.img.bh;e.bd=h.img.bd}else{e.bh=f*jsMath.h;e.bd=f*jsMath.d}}else{e.tclass=a;e.bh=f*',965,'a].h;e.bd=f*',965,'a].d;if(',1023,'msieFontBug&&','e','.html.match(/&#/)){','e','.html+=\'x\'}}return e},TeXfallback',941,'b,f,e,o){var m=',965,'f][b];if(!m.tclass){m.tclass=f}if(m.img!=null){',1001,'TeXnonfallback(b,f,e,o)}if(m.h!=null&&m.a==null){m.a=m.h-1.1*jsMath.TeX.x_height}var n=m.a;var l=m.d;var k=this.Text(m.c,m.tclass,e,o,n,l);var g=',1183,'TeX(e,o).scale;if(m.bh!=null){k.bh=m.bh*g;k.bd=m.bd*g}else{var j=k.bd+k.bh;var i=',1181,'k.tclass,k.html);i=',1183,1184,'e,o,i);k.bd',1186,'i+',1151,'Strut(j)).h-j;k.bh=j-k.bd;if(g==1){m.bh=k.bh;m.bd=k.bd}}if(jsMath.',1209,'k',1211,'k',1213,'>\'}return k},TeXIMG',941,'f,a,t){var o=',965,'f][a];if(o.img.size!=null&&o.img.size==t&&o.img.best!=null&&o.img.best==','jsMath.Img.best','){return}var g=(',939,'.scale!=1);var b=',1242,'+t-4;if(b<0){b=0;g=1','}else{if(','b>=','jsMath.Img.fonts','.length){','b=',1250,'.length-1',';g=1}}var s=',939,'[',1250,'[b]];var k=s[f][a];var i=1/',939,'.w[',1250,'[b]];if(b!=',1242,'+t-4){if(o.w!=null){i=o.w/k[0]}else{i*=',1250,'[t]/',1250,'[4]*',1250,'[',1242,']/',1250,'[b]}}var p=k[0]*i;var l=k[1]*i;var n=-k[2]*i;var q;var j=(o.w==null||Math.abs(o.w-p)<0.01)?"":" margin-right:"+',1151,'Em(o.w-p)+";";var e="";a=',939,'.HexCode[a];if(!g&&!',997,'scaleImg){if(',1023,'mozImageSizeBug||2*p"}else{',1326,'m+\'" ',1065,1023,1330,'+\'" />\'}o.tclass="normal";o.img.bh=l+n;o.img.bd=-n;o.img.size=t;o.img.best=',1242,'},Space',941,1077,' ','new jsMath.Box("html",',1151,'Spacer(a),a,0,0)},Rule',941,'a,c){if(c==null){c',1069,'var b=',1151,'Rule(a,c);return ',1343,'b,a,c,0)},GetChar',941,'b,a){var d=',965,'a][b];','if(d.img!=null){this.TeXIMG(a,b',',4)}if(d.tclass',999,'.tclass=a}if(!d.computedW){d.w',1186,1181,'d.tclass,d.c)).w',';if(d.h',999,'.h=jsMath.Box.defaultH}if(','d.d',999,'.d=0}d.computedW=1}',1142,'DelimBestFit',941,'e,j,d,g){if(j==0&&d==0){return null}var i;var f;d','=jsMath.TeX.fam[','d];var a=(g.charAt(1)=="S");var b=(g.charAt(0)=="S");while(j!=null){i=',965,'d][j];if(i.h==null){i',1367,'i.d==null){i.d=0}f=i.h+i.d;if(i.delim','){return[j,d',',"",e]}if(a&&0.5*f>=e',1381,',"SS",0.5*f]}if(b&&0.7*f>=e',1381,',"S",0.7*f]}if(f>=e||i.n==null',1381,',"T",f]}j=i.n}return null},DelimExtendRelative',941,'k,x,r,A,e){var s=',965,'r][x];var q','=this.GetChar(s.delim.','top?s','.delim.top',':s.delim.rep,r);var ','b',1393,'rep,r);var p',1393,'bot?s','.delim.bot',1396,'f=',1181,'b.tclass,b.c);','var l=b.w;var v=b.h+b.d;var g;var d;var m;var o;var u;var t;if(s','.delim.mid){var ','z',1393,'mid,r);t','=Math.ceil((k-(','q.h+q.d)-(','z.h+z.d)-(p.h+p.d))/(2*(b.h+b.d',')));k=2*','t*(b.h+b.d)+(q.h+q.d)+(','z.h+z.d)+(p.h+p.d);if(e){g=0}else{g=k/2+A}d=g;m=',1151,'Place(',1181,'q.tclass,q.c),0,g-q.h',')+',1151,1419,1181,'p.tclass,p.c),-(','q.w+p.w)/2,g-(k-p.d))+',1151,1419,1181,'z.tclass,z.c),-(p.w+z.w)/2,g-(k+z.h-z.d)/2);o=(l-z','.w)/2;if(Math.abs(o)<0.0001){o=0}if(o){m+=jsMath.HTML.Spacer(o)}g-=q.h+q.d+b.h;for(u=0;uv[E]){v[E]=o[C].h}if(o[C].d>x[E]){x[E]=o[C].d}if(C>=g',1251,'g[C]=o[C].w',1248,'o[C].w>g[C]){',1608,'}}if(o[C].bh>f){f=o[C].bh}if(o[C].bd>m){m=o[C].bd}}}if(l[J','.length]==null){','l[J.length]=0}if(f==e){f=0}if(m==e){m=0}var a=G','*(jsMath.hd-0.01)*','L;var u=(p||1)*L/6;var t="";var n=0;var I=0;var s;var F;var q;var r;var c;var b;for(C=0;C0){r',1574,'(c,"T",z);t+=',1151,1419,'r.html,I,0);I=g[C]-r.w+k[C]}else{I+=k[C]}}s=-k[g',1254,'];q=(v',1254,')*u+l[0];for(E=0;Eq[A]){q[A]=g[v].h}if(g[v].d>s[A]){s[A]=g[v].d}if(v>=c',1251,'c[v]=g[v].w',1248,'g[v].w>c[v]){',1658,'}}}}if(f[E',1613,'f[E.length]=0}l=(q',1254,')*p+f[0];for(A=0;A")}if(!h.match(/\\$|\\\\\\(/)){',1001,'Text(this.safeHTML(h),"normal","T",l).Styled()}',960,'0;var d=0;var g;var f="";var a=[];var b,j;while(e/g,">")}','return ','a},Set',1,'c,b,a',',d){if(','c&&c.type){if(c','.type=="','typeset"){',5,'c}if(c',11,'mlist"){c.mlist.','Atomize','(b,a);',5,'c.mlist','.Typeset(','b,a)}if(c',11,'text"){c=this.Text(c.text,c.tclass,b,a,c.ascend||null,c.descend||null);if(d!=0){c','.Styled()}',5,'c}c=this','.TeX(','c.c,c.font,b,a);if(d!=0){c',25,5,'c}',5,3,'Box.Null','()},SetList',1,'d,f,c){var a=[];var g;','for(var b=0;b<','d.length;b++){g=d[b];if(g',11,12,'g=','jsMath.mItem',21,'g)}a[a','.length]=','g}var e=new ','jsMath.Typeset','(a);',5,'e',21,'f,c)}});',3,'Package(',3,'Box,{Styled',':function(){','if(this.','format=="text"){','this.html','=',49,'.AddClass(','this.tclass',',',62,');',62,'=',49,'.AddStyle(','this.style',',this.size,',62,');delete ',66,';delete ',74,';this.format="html"}',5,'this},Remeasured',59,60,'w>0){var a=this.w;this.w=',3,'EmBoxFor(',62,').w;',60,'w','>this.Mw){this.Mw=this.w','}a=this.w/a;if(Math.abs(a-1)>0.05){this.h*=a;this.d*=a}}',5,'this}});',44,'=function(a',',b','){this.type','=a;',3,'Add(this,b)};',3,'Add(',44,',{Atom',1,'b,a){',5,'new ',44,'(b,{atom:1,nuc',':a})},TextAtom',1,'e,h,c,b,g','){var f=','new ',44,'(e,{atom:1,nuc:{type:"text",text:h,tclass:c}});if(b','!=null){f.nuc.','ascend=b}if(g',121,'descend=g}',5,'f},TeXAtom',1,'b,d,a){',5,'new ',44,113,':{type:"TeX",c:d,font:a}})},Fraction',1,'b,a,f,d,e,c){',5,'new ',44,'("fraction",{from:b,num:a,den:f,','thickness',':d,left:e,right:c})},Space',1,'a){',5,'new ',44,'("space",{w:a})},','Typeset',1,'a){',5,'new ',44,'("ord",{atom:1,nuc:a})},HTML',1,'a){',5,'new ',44,'("html",{html:a})}});',3,'mList','=function(d,a,b,c){','if(d){','this.mlist','=d}else{',165,'=[]}','if(c==null){c','="T"}if(b==null){b=4}','this.data','={openI:null,overI:null,overF:null,font:a,','size:b,style:c','};this.init={',173,'}};',3,'Package(',3,162,',{Add',1,'a){return(',165,'[','this.mlist.length',']=a)},Get',1,'a){',5,165,'[a]},Length',59,5,186,'},Last',59,'if(',186,'==0){',5,'null}',5,165,'[',186,'-1]},Range',1,'b,',2,'a==null){a=',186,'}',5,'new ',3,162,'(',165,'.slice(b,a+1))},Delete',1,'d,c){',169,'=d}if(',165,'.splice){',165,'.splice(d,c-d+1)}else{var a=[];',39,186,';b++){if(bc){a[a',47,165,'[b]}}',165,'=a}},Open',1,'d){var c=this.Add(new ',44,'("boundary",{','data:',171,'}));var a=',171,';',171,'={};for(var b in a){',171,'[b]=a[b]}delete ',171,'.overI',79,171,'.overF;',171,'.openI=',186,'-1;if(d!=null){c.left=d}',5,'c},Close',1,'c){if(c!=null){c=new ',44,240,'right:c})}var e;var b=',171,'.openI;var f=',171,'.overI;var ','g=',171,254,171,'=',165,'[b].data;if(f){e=',44,'.Fraction(','g.name,{','type:"mlist",mlist:this.Range(','b+1,f-1)},{',280,'f)},g.',140,',g.left,g.right);if(c){var a=new ',3,162,'([',165,'[b],e,c]);e=',44,'.Atom("inner",{type:"mlist",mlist:a})}}else{var d=b+1;if(c){this.Add(c);d--}e=',44,'.Atom((c)?"inner":"ord",{',280,'d)})}this.Delete(b,this.Length());',5,'this.Add(e)},Over',59,'var b=',171,269,'c=',171,254,'var a=',44,278,'c.name,{',280,'open+1,b-1)},{',280,'b)},c.',140,',c.left,c.right);',165,'=[a]},',17,1,222,'var a;var e="";',74,'=d;this.size=c;',39,186,';b++){a=',165,'[b];a.delta=0;if(a',11,'choice"){',165,'=this.',17,'.choice(',74,',a,b,',165,');b--}else{',60,17,'[a.type]){var g=this.',17,'[a.type];g(',74,75,'a,e,this,b)}}e=a}if(a&&a',11,'bin"){a','.type="ord"}','if(',186,'>=2&&a',11,'boundary"&&',165,'[0].type=="boundary"){this.','AddDelimiters','(d,c)}},',357,1,'b,q){var p=-10000;var g=p;var k=p;for(var f=0;f<',186,';f++){var j=',165,'[f];if(j.atom||j',11,'box"){g','=Math.max(','g,j.nuc.h+j.nuc.y);k',368,'k,j.nuc.d-j.nuc.y)}}var e=',3,'TeX;var l=',49,28,'b,q).','axis_height',';var o',368,'g-l,k+l);var n',368,'Math.floor(e.integer*o/500)*e.delimiterfactor,e.integer*(2*o-e.delimitershortfall))/e.integer;var c=',165,'[0];var m=',165,'[',186,'-1];c.nuc=',3,'Box.Delimiter(','n,c.left,b);m.nuc=',3,390,'n,m.right,b);c.type="open";c.atom=1',79,'c.left;m.type="close";m.atom=1',79,'m.right},',148,1,'c,a){var b=new ',49,'(',165,');',5,'b',21,'c,a)}});',3,'Add(',3,162,'.prototype.',17,',{style',1,'d,c,a,e,b){b.','style=a.style},size',1,418,'size=a.size},phantom',1,8,'){var d=','a.nuc','=jsMath.Box.Set(','a.phantom',',c,b);if(a.h){d.','Remeasured();','d.html=',3,'HTML.Spacer','(d.w)}else{d.html="",d.w=d.Mw=d.mw=0}if(!a.v){','d.h=d.d=0','}d.bd=d.bh=0',79,428,';a.type="box"},','smash',1,8,425,'a.nuc',427,'a.smash',',c,b).',430,435,79,446,439,'raise',1,8,'){a.nuc',427,'a.nuc,c,b);var ','d=a.raise;','a.nuc.html','=',3,'HTML.Place(',460,',0,d,a.nuc.mw,a.nuc.Mw,a.nuc.w);a.nuc.h+=d;a.nuc.d-=d;a','.type="ord";','a.atom=1},lap',1,'d,c,a){var ','e',427,'a.nuc,','d,c).',430,'var b=[e];if(a.lap=="llap"){e.x=-e.w}','else{if(a.lap=="','rlap"){b[1]=',44,'.Space(-e.w)}',476,'ulap"){e.y=e.d;e.h=e.d=0}',476,'dlap"){e.y=-e.h;e.h=e.d=0}}}}a','.nuc=jsMath.Box.SetList','(b,d,c);if(a.lap=="ulap"||a.lap=="dlap"){a.nuc.h=a.nuc.d=0}a.type="box";delete a.atom},bin',1,'d,b,a,e){if(e&&e.type){var c=e.type;if(c=="bin"||c=="op"||c=="rel"||c=="open"||c=="punct"||c==""||(c=="',354,'e.left!="")){a.type="ord"}}else{a',349,'jsMath.mList.prototype.Atomize.SupSub(','d,b,a)},rel',1,8,9,'d.type&&','d',11,'bin"){d',349,491,8,')},close',1,8,9,496,'d',11,'bin"){d',349,491,8,')},punct',1,8,9,496,'d',11,'bin"){d',349,491,8,')},open',1,8,'){',491,8,')},inner',1,8,'){',491,8,')},','vcenter',1,8,'){var d',427,458,'e=',49,28,'c,b);d.y=e.',377,'-(d.h-d.d)/2;a.nuc=d;a',466,491,8,')},','overline',1,469,'g=',49,28,'d,c);var e',427,472,49,'.PrimeStyle(d),c).Remeasured();var b=g.default_rule_thickness;var f=jsMath.Box.Rule(e.w,b);f.x=-f.w;f.y','=e.h+3*b;a',484,'([e,f],d,c);a.nuc.','h+=b;a',466,491,'d,c,a)},','underline',1,469,'g=',49,28,'d,c);var e',427,472,49,564,'=-e.d-3*b-b;a',484,567,'d+=b;a',466,491,571,'radical',1,'b,m,g',425,49,28,'b,m);var k=',49,'.PrimeStyle(b);var ','f',427,'g.nuc,k,m).',430,'var l=d','.default_rule_thickness',';var c=l;if(b=="D"||b=="D\'"){c=d.x_height}var a=l+c/4;var e=',3,390,'f.h+f.d+a+l,[0,2,112,3,112],b,1);if(e.d>f.h+f.d+a){a=(a+e.d-f.h-f.d)/2}e.y=f.h+a;var j=',3,'Box.Rule(','f.w,l);j.y=e.y-l/2;j.h+=3*l/2;f.x=-f.w;var i=',49,'.UpStyle(',49,613,'b));var h',427,'g.root||null,i,m).',430,'if(g.root){h.y=0.55*(f.h+f.d+3*l+a)-f.d;e.x',368,'h.w-(11/18)*e.w,0);j.x=(7/18)*e.w;h.x=-(h.w+j.x)}g',484,'([e,h,j,f],b,m);g',466,491,'b,m,g)},accent',1,'b,q,j',117,49,28,'b,q);var m=',49,598,'i',427,'j.nuc,m,q);var o=i.w;var p;var k;var d=0;if(j.nuc',11,'TeX"){k=',3,'TeX[j.nuc.font];if(k[j.nuc.c].krn&&k.skewchar){p=k[j.nuc.c].krn[k.skewchar]}d=k[j.nuc.c].ic;if(d==null){d=0}}if(p==null){p=0}var l=j.accent[2];var e=',3,'TeX.fam[j.accent[1]];k=',3,'TeX[e];while(k[l].n&&k[k[l].n].w<=o){l=k[l].n}var n=Math.min(i.h,f.x_height);if(j.nuc',11,'TeX"){var ','h=',44,'.Atom("ord",j.nuc);h.sup=j.sup;h.sub=j.sub;h.delta=0;',491,'b,q,h);n+=(h.nuc.h-i.h);i=j.nuc=h.nuc',79,'j.sup',79,'j.sub}var g=',3,'Box',28,'l,e,b,q);g.y=i.h-n;g.x=-i.w+p+(o-g.w)/2;if(',3,'Browser.msieAccentBug){g.html+=',3,433,'(0.1);g.w+=0.1;g.Mw+=0.1}if(k[l].ic||d){g.x+=(d-(k[l].ic||0))*f.scale}j',484,'([i,g],b,q);if(j.nuc.w!=i.w){var a=',44,'.Space(','i.w-j.nuc.w);j',484,'([j.nuc,a],b,q)}j',466,491,'b,q,j)},op',1,'c,n,i',117,49,28,'c,n);var h;i.delta=0;var m=(c','.charAt(0)=="','D");if(i.limits==null&&m){i.limits=1}if(i.nuc',11,648,'b=',3,'TeX[i.nuc.font][','i.nuc.c];if(m&&b.n){i.nuc.c=b.n;b=',3,689,'b.n]}h=i.nuc',427,'i.nuc,c,n',');if(b.ic){i.delta=b.ic*f.scale;if(i.limits||!i.sub||',3,'Browser.msieIntegralBug','){h=i',484,'([h,',44,670,'i.delta)],c,n)}}h.y=-((h.h+h.d)/2-h.d-f.',377,');if(Math.abs(h.y)<0.0001){h.y=0}}if(!h){h=i.nuc',427,695,').Remeasured()}if(i.limits){var e=h.w;var k=h.w;var d=[h];var j=0;var l=0;if(i.sup){var g',427,'i.sup,',49,613,'c),n).',430,'g.x=((h.w-g.w)/2+i.delta/2)-k;j=f.big_op_spacing5;e',368,'e,g.w);k+=g.x+g.w;g.y=h.h+g.d+h.y+Math.max(f.big_op_spacing1,f.big_op_spacing3-g.d);d[d',47,'g',79,'i.sup}if(i.sub){var a',427,'i.sub,',49,'.DownStyle(','c),n).',430,'a.x=((h.w-a.w)/2-i.delta/2)-k;l=f.big_op_spacing5;e',368,'e,a.w);k+=a.x+a.w;a.y=-h.d-a.h+h.y-Math.max(f.big_op_spacing2,f.big_op_spacing4-a.h);d[d',47,'a',79,'i.sub}if(e>h.w){h.x=(e-h.w)/2;k+=h.x}if(ke;c--){f.mlist[c+1]=f.mlist[c]}f.mlist[e+1]=',44,670,'h[d.nuc.c])}}}}',491,'a,j,g)},fraction',1,'x,n,c){var A=',49,28,'x,n);var l=0;if(c.',140,'!=null){l=c.',140,742,'c.from.match(/over/)){l=A',604,'}}var s=(x',683,'D");var g=(x=="D")?"T":(x=="D\'")?"T\'":',49,613,'x);var q=(s)?"T\'":',49,726,'x);var f',427,'c.num,g,n).',430,'var e',427,'c.den,q,n).',430,'var k;var j;var i;var o;var m;var h=(s)?A.delim1:A.delim2;var b=[',3,390,'h,c.left,x)];var y=',3,390,'h,c.right,x);if(f.w0){n+=f;m-=f}}i.',430,'a.',430,'i.y=n;a.y=-m;i.x=k.delta;if(i.w+i.x>a.w){i.x-=a.w;k',484,'([j,a,i],e,w)}else{a.x-=(i.w+i.x);k',484,'([j,i,a],e,w)}delete k.sup',79,'k.sub}});',49,98,100,'="typeset";',165,'=a};',3,'Add(',49,',{upStyle:{D:"S",T:"S","','D\'":"S\'","T\'":"S\'",S:"SS','",SS:"SS","','S\'":"SS\'","SS\'":"SS\'"},','downStyle:{D:"S\'",T:"S\'","',942,'\'",SS:"SS\'","',944,'UpStyle',1,'a){',5,'this.upStyle[a]},DownStyle',1,'a){',5,'this.downStyle[a]},PrimeStyle',1,2,'a',902,'a',904,5,'a}',5,'a+"\'"},StyleValue',1,'b,',2,'b=="S"||b=="S\'"){',5,'0.7*a}if(b=="SS"||b=="SS\'"){',5,'0.5*a}',5,'a},StyleSize',1,'b,a){if(b=="S"||b=="S\'"){a=Math.max(0,a-2)}else{if(b=="SS"||b=="SS\'"){a=Math.max(0,a-4)}}return ','a},TeX',1,979,3,'TeXparams[a]},AddStyle',1,8,'){if(c=="S"||c=="S\'"){b',368,'0,b-2)}else{if(c=="SS"||c=="SS\'"){b',368,'0,b-4)}}if(b!=4){a=\'\'+a+""}',5,'a},AddClass',1,'a,b){if(a!=""&&a!="normal"){b=',3,'HTML.Class(a,b)}',5,'b}});',3,'Package(',49,',{DTsep:{ord',':{op:1,bin:2,rel:3,inner:1},','op',':{ord:1,op:1',',rel:3,inner:1},bin:{ord:2,op:2,open:2,inner:2},rel:{ord:3,op:3,open:3,inner:3},open:{},close',1004,'punct',1006,',rel:1,open:1,close',':1,punct:1,inner:1','},inner',1006,',bin:2,rel:3,open',1012,'}},SSsep:{ord:{op:1},op',1006,'},bin:{},rel:{},open:{},close:{op:1},punct:{},inner:{op:1}},sepW:["","thinmuskip","medmuskip","thickmuskip"],','GetSeparation',1,'a,d,b){if(a&&a.atom&&d.atom){var c=this.DTsep;if(b',683,'S"){c=this.SSsep}var e=c[a.type];if(e&&e[d.type]!=null){',5,3,'TeX[this.sepW[e[d.type]]]}}',5,'0},',148,1,222,74,323,'var g=-10000;this.w=0;this.mw=0;this.Mw=0;this.h=g;this.d=g;this.bh=this.h;this.bd=this.d;this.tbuf="";this.tx=0;',66,'="";','this.cbuf','="";this.hbuf="";this.hx=0;var a=null;var f;this.x=0;','this.dx=0;',39,186,';b++){f=a;a=',165,'[b];switch(a.type){case"size":','this.FlushClassed();','this.size=a.size;','a=f;break;case"','style":',1046,'if(',74,902,74,904,74,'=a.style+"\'"}else{',74,'=a.style}',1048,'space":if(typeof(a.w)=="object"){if(',74,902,'1)=="S"){a.w=0.5*a.w[0]/18',742,74,683,'S"){a.w=0.7*a.w[0]/18}else{a.w=a.w[0]/18}}}this.dx+=a.w-0;',1048,'html":',1046,'if(this.hbuf==""){this.hx=this.','x}','this.hbuf+=','a.html;a=f;break;default:if(!a.atom&&a.type!="box"){break}a.nuc.x+=this.dx+this.',1020,'(f,a,',74,');','if(a.nuc.x||a.nuc.y){','a.nuc',25,1040,'this.x=this.x+this.w;',60,'x','+a.nuc.x+a.nuc.','mw','\'+b.html+"";','b.h+=b.y;b.d-=b.y;b.x=0;b.y=0','},PlaceSeparateSkips',1,'b){if(b.y',425,'b.Mw-b.w;var c=b.mw;var a=b.Mw-b.mw;b.html=',3,433,'(c-d)+\'<',1192,'; top:\'+',3,1195,'(-b.y)+"; left:"+',3,1195,'(d)+"; width:"+',3,1195,'(a)+\';">\'+',3,433,'(-c)+b.html+',3,433,'(d)+""}if(b.x){b.html=',3,433,'(b.x)+b.html}',1200,'}});',3,'Parse',163,'var e=new ',3,'Parser','(d,a,b,c);e.Parse();',5,'e};',3,1236,163,'this.string=d;this.i=0;',165,'=new ',3,162,'(null,a,b,c)};',3,'Package(',3,1236,',{cmd:"\\\\",open:"{",close:"}",letter:/[a-z]/i,number:/[0-9]/,scriptargs:/^((math|text)..|mathcal|[hm]box)$/,mathchar:{"!":[5,0,33],"(":[4,0,40],")":[5,0,41],"*":[2,2,3],"+":[2,0,43],",":[6,1,59],"-":[2,2,0],".":[0,1,58],"/":[0,1,61],":":[3,0,58],";":[6,0,59],"<":[3,1,60],"=":[3,0,61],">":[3,1,62],"?":[5,0,63],"[":[4,0,91],"]":[5,0,93],"|":[0,2,106]},special:{"~":"Tilde","^":"HandleSuperscript",_:"HandleSubscript"," ":"Space","\\01','":"Space","\\','t',1254,'r',1254,'n":"Space","\'":"Prime","%":"HandleComment","&":"HandleEntry","#":"Hash"},mathchardef:{braceld:[0,3,122],bracerd:[0,3,123],bracelu:[0,3,124],braceru:[0,3,125],alpha:[0,1,11],beta:[0,1,12],gamma:[0,1,13],delta:[0,1,14],epsilon:[0,1,15],zeta:[0,1,16],eta:[0,1,17],theta:[0,1,18],iota:[0,1,19],kappa:[0,1,20],lambda:[0,1,21],mu:[0,1,22],nu:[0,1,23],xi:[0,1,24],pi:[0,1,25],rho:[0,1,26],sigma:[0,1,27],tau:[0,1,28],upsilon:[0,1,29],phi:[0,1,30],chi:[0,1,31],psi:[0,1,32],omega:[0,1,33],varepsilon:[0,1,34],vartheta:[0,1,35],varpi:[0,1,36],varrho:[0,1,37],varsigma:[0,1,38],varphi:[0,1,39],Gamma:[7,0,0],Delta:[7,0,1],Theta:[7,0,2],Lambda:[7,0,3],Xi:[7,0,4],Pi:[7,0,5],Sigma:[7,0,6],Upsilon:[7,0,7],Phi:[7,0,8],Psi:[7,0,9],Omega:[7,0,10],aleph:[0,2,64],imath:[0,1,123],jmath:[0,1,124],ell:[0,1,96],wp:[0,1,125],Re:[0,2,60],Im:[0,2,61],partial:[0,1,64],infty:[0,2,49],prime:[0,2,48],emptyset:[0,2,59],nabla:[0,2,114],surd:[1,2,112],top:[0,2,62],bot:[0,2,63],triangle:[0,2,52],forall:[0,2,56],exists:[0,2,57],neg:[0,2,58],lnot:[0,2,58],flat:[0,1,91],natural:[0,1,92],sharp:[0,1,93],clubsuit:[0,2,124],diamondsuit:[0,2,125],heartsuit:[0,2,126],spadesuit:[0,2,127],coprod:[1,3,96],bigvee:[1,3,87],bigwedge:[1,3,86],biguplus:[1,3,85],bigcap:[1,3,84],bigcup:[1,3,83],intop:[1,3,82],prod:[1,3,81],sum:[1,3,80],bigotimes:[1,3,78],bigoplus:[1,3,76],bigodot:[1,3,74],ointop:[1,3,72],bigsqcup:[1,3,70],smallint:[1,2,115],triangleleft:[2,1,47],triangleright:[2,1,46],bigtriangleup:[2,2,52],bigtriangledown:[2,2,53],wedge:[2,2,94],land:[2,2,94],vee:[2,2,95],lor:[2,2,95],cap:[2,2,92],cup:[2,2,91],ddagger:[2,2,122],dagger:[2,2,121],sqcap:[2,2,117],sqcup:[2,2,116],uplus:[2,2,93],amalg:[2,2,113],diamond:[2,2,5],bullet:[2,2,15],wr:[2,2,111],div:[2,2,4],odot:[2,2,12],oslash:[2,2,11],otimes:[2,2,10],ominus:[2,2,9],oplus:[2,2,8],mp:[2,2,7],pm:[2,2,6],circ:[2,2,14],bigcirc:[2,2,13],setminus:[2,2,110],cdot:[2,2,1],ast:[2,2,3],times:[2,2,2],star:[2,1,63],propto:[3,2,47],sqsubseteq:[3,2,118],sqsupseteq:[3,2,119],parallel:[3,2,107],mid:[3,2,106],dashv:[3,2,97],vdash:[3,2,96],leq:[3,2,20],le:[3,2,20],geq:[3,2,21],ge:[3,2,21],lt:[3,1,60],gt:[3,1,62],succ:[3,2,31],prec:[3,2,30],approx:[3,2,25],succeq:[3,2,23],preceq:[3,2,22],supset:[3,2,27],subset:[3,2,26],supseteq:[3,2,19],subseteq:[3,2,18],"in":[3,2,50],ni:[3,2,51],owns:[3,2,51],gg:[3,2,29],ll:[3,2,28],not:[3,2,54],sim:[3,2,24],simeq:[3,2,39],perp:[3,2,63],equiv:[3,2,17],asymp:[3,2,16],smile:[3,1,94],frown:[3,1,95],Leftrightarrow:[3,2,44],Leftarrow:[3,2,40],Rightarrow:[3,2,41],leftrightarrow:[3,2,36],leftarrow:[3,2,32],gets:[3,2,32],rightarrow:[3,2,33],to:[3,2,33],mapstochar:[3,2,55],leftharpoonup:[3,1,40],leftharpoondown:[3,1,41],rightharpoonup:[3,1,42],rightharpoondown:[3,1,43],nearrow:[3,2,37],searrow:[3,2,38],nwarrow:[3,2,45],swarrow:[3,2,46],minuschar:[3,2,0],hbarchar:[0,0,22],lhook:[3,1,44],rhook:[3,1,45],ldotp:[6,1,58],cdotp:[6,2,1],colon:[6,0,58],"#":[7,0,35],"$":[7,0,36],"%":[7,0,37],"&":[7,0,38]},delimiter:{"(":[0,0,40,3,0],")":[0,0,41,3,1],"[":[0,0,91,3,2],"]":[0,0,93,3,3],"<":[0,2,104,3,10],">":[0',',2,105,3,11],"\\\\','lt":[0',',2,104,3,10],"\\\\','gt":[0,2,105,3,11],"/":[0,0,47,3,14],"|":[0,2,106,3,12],".":[0,0,0,0,0],"\\\\":[','0,2,110,3,15],"\\\\','lmoustache":[4,3,122,3,64],"\\\\rmoustache":[5,3,123,3,65],"\\\\lgroup":[4,6,40,3,58],"\\\\rgroup":[5,6,41,3,59],"\\\\arrowvert','":[0,2,106,3,','60],"\\\\Arrowvert":[0,2,107,3,61],"\\\\bracevert',1266,'62],"\\\\Vert":[0,2,107,3,13],"\\\\|":[0,2,107,3,13],"\\\\vert',1266,'12],"\\\\uparrow":[3,2,34,3,120],"\\\\downarrow":[3,2,35,3,121],"\\\\updownarrow":[3,2,108,3,63],"\\\\Uparrow":[3,2,42,3,126],"\\\\Downarrow":[3,2,43,3,127],"\\\\Updownarrow":[3,2,109,3,119],"\\\\backslash":[',1264,'rangle":[5',1260,'langle":[4',1262,'rbrace":[5,2,103,3,9],"\\\\lbrace":[4,2,102,3,8],"\\\\}":[5,2,103,3,9],"\\\\{":[4,2,102,3,8],"\\\\rceil":[5,2,101,3,7],"\\\\lceil":[4,2,100,3,6],"\\\\rfloor":[5,2,99,3,5],"\\\\lfloor":[4,2,98,3,4],"\\\\lbrack":[0,0,91,3,2],"\\\\rbrack":[0,0,93,3,3]},macros:{displaystyle',':["HandleStyle","','D"],textstyle',1278,'T"],scriptstyle',1278,'S"],scriptscriptstyle',1278,'SS"],rm',':["HandleFont",','0],mit',1286,'1],oldstyle',1286,'1],cal',1286,'2],it',1286,'4],bf',1286,'6],font',':["Extension","','font"],left:"HandleLeft",right:"HandleRight",arcsin',':["NamedOp",0],','arccos',1300,'arctan',1300,'arg',1300,'cos',1300,'cosh',1300,'cot',1300,'coth',1300,'csc',1300,'deg',1300,'det',':"NamedOp",','dim',1300,'exp',1300,'gcd',1320,'hom',1300,'inf',1320,'ker',1300,'lg',1300,'lim',1320,'liminf',':["NamedOp",null,\'lim','inf\'],limsup',1338,'sup\'],ln',1300,'log',1300,'max',1320,'min',1320,'Pr',1320,'sec',1300,'sin',1300,'sinh',1300,'sup',1320,'tan',1300,'tanh',1300,538,':["HandleAtom","',538,'"],',554,1364,554,'"],',572,1364,572,'"],over',':"HandleOver",','overwithdelims',1375,'atop',1375,'atopwithdelims',1375,'above',1375,'abovewithdelims',1375,'brace',':["HandleOver','","\\\\{","\\\\}"],brack',1387,'","[","]"],choose',1387,'","(",")"],overbrace',':["Extension","leaders"],','underbrace',1393,'overrightarrow',1393,'underrightarrow',1393,'overleftarrow',1393,'underleftarrow',1393,'overleftrightarrow',1393,'underleftrightarrow',1393,'overset',':["Extension","underset-overset"],','underset',1409,'llap',':"HandleLap",','rlap',1413,'ulap',1413,'dlap',1413,'raise:"RaiseLower",lower:"RaiseLower",moveleft',':"MoveLeftRight",','moveright',1421,'frac:"Frac",root:"Root",sqrt:"Sqrt",hbar',':["Macro","\\\\','hbarchar\\\\kern-.5em h"],ne',1425,'not="],neq',1425,'not="],notin',1425,'mathrel{\\\\','rlap{\\\\kern2mu/}}\\\\in"],cong',1425,1432,'lower2mu{\\\\mathrel{{\\\\rlap{=}\\\\raise6mu\\\\sim}}}}"],bmod',1425,'mathbin{\\\\rm mod}"],pmod',1425,'kern 18mu ({\\\\rm mod}\\\\,\\\\,#1)",1],"int":["Macro","\\\\intop\\\\nolimits"],oint',1425,'ointop\\\\nolimits"],doteq',1425,'buildrel\\\\textstyle.\\\\over="],ldots',1425,'mathinner{\\\\','ldotp\\\\ldotp\\\\ldotp}"],cdots',1425,1446,'cdotp\\\\cdotp\\\\cdotp}"],vdots',1425,1446,'rlap{\\\\raise8pt{.\\\\rule 0pt 6pt 0pt}}\\\\rlap{\\\\raise4pt{.}}.}"],ddots',1425,1446,'kern1mu\\\\raise7pt{\\\\rule 0pt 7pt 0pt .}\\\\kern2mu\\\\raise4pt{.}\\\\kern2mu\\\\raise1pt{.}\\\\kern1mu}"],joinrel',1425,1432,'kern-4mu}"],relbar',1425,1432,'smash-}"],Relbar',1425,'mathrel="],bowtie',1425,'mathrel\\\\triangleright\\\\joinrel\\\\mathrel\\\\triangleleft"],models',1425,'mathrel|\\\\joinrel="],mapsto',1425,1432,'mapstochar\\\\','rightarrow}"],rightleftharpoons',1425,538,'{\\\\',1432,'rlap{\\\\raise3mu{\\\\rightharpoonup}}}\\\\leftharpoondown}"],hookrightarrow',1425,'lhook','\\\\joinrel\\\\rightarrow','"],hookleftarrow',1425,'leftarrow\\\\joinrel\\\\','rhook"],Longrightarrow',1425,'Relbar\\\\joinrel\\\\','Rightarrow"],','longrightarrow',1425,'relbar',1480,'"],longleftarrow',1425,1483,'relbar"],Longleftarrow',1425,'Leftarrow\\\\joinrel\\\\','Relbar"],longmapsto',1425,1432,1471,'minuschar',1480,'}"],longleftrightarrow',1425,'leftarrow',1480,'"],','Longleftrightarrow',1425,1497,1487,'iff:["Macro","\\\\;\\\\',1509,'\\\\;"],mathcal',':["Macro","{\\\\','cal #1}",1],mathrm',1516,'rm #1}",1],mathbf',1516,'bf #1}",1],','mathbb',1516,1521,'mathit',1516,'it #1}",1],textrm',1425,'mathord{\\\\hbox{#1}}",1],textit',1425,'mathord{\\\\class{','textit','}{\\\\hbox{#1}}}",1],','textbf',1425,1531,1534,1533,'pmb',1425,'rlap{#1}\\\\kern1px{#1}",1],TeX:["Macro","T\\\\kern-.1667em\\\\lower.5ex{E}\\\\kern-.125em X"],limits:["Limits",1],nolimits:["Limits",0],",":["Spacer",1/6],":":["Spacer",1/6],">":["Spacer",2/9],";":["Spacer",5/18],"!":["Spacer",-1/6],enspace:["Spacer",1/2],quad:["Spacer",1],qquad:["Spacer",2],thinspace:["Spacer",1/6],negthinspace:["Spacer",-1/6],hskip:"Hskip",kern:"Hskip",rule:["Rule","colored"],space:["Rule","blank"],big',':["MakeBig","','ord",0.85],Big',1542,'ord",1.15],bigg',1542,'ord",1.45],Bigg',1542,'ord",1.75],bigl',1542,'open",0.85],Bigl',1542,'open",1.','15],biggl',1542,1553,'45],Biggl',1542,1553,'75],bigr',1542,'close",0.85],Bigr',1542,'close",1.','15],biggr',1542,1564,'45],Biggr',1542,1564,'75],bigm',1542,'rel",0.85],Bigm',1542,'rel",1.15],biggm',1542,'rel",1.45],Biggm',1542,'rel",1.75],mathord',1364,'ord"],mathop',1364,'op"],mathopen',1364,'open"],mathclose',1364,'close"],mathbin',1364,'bin"],mathrel',1364,'rel"],mathpunct',1364,'punct"],mathinner',1364,'inner"],','mathchoice',1298,1596,'"],buildrel:"BuildRel",hbox:"HBox",text:"HBox",mbox:"HBox",fbox',1298,'fbox"],strut:"Strut",mathstrut',1425,'vphantom{(}"],phantom:["Phantom",1,1],vphantom:["Phantom",1,0],hphantom:["Phantom",0,1],smash:"Smash",acute:["MathAccent",[7,0,19]],grave:["MathAccent",'], + ['[','7,0,','18]],ddot',':["MathAccent",[',1,'127]],tilde',3,1,'126]],bar',3,1,'22]],breve',3,1,'21]],check',3,1,'20]],hat',3,1,'94]],vec',3,'0,1,126]],dot',3,1,'95]],widetilde',3,'0,3,101]],widehat',3,'0,3,98]],_:["Replace","ord","_","normal",-0.4,0.1]," ":["Replace","','ord"," ","normal','"],angle:["Macro","\\\\kern2.5mu\\\\raise1.54pt{\\\\rlap{\\\\scriptstyle \\\\char{cmsy10}{54}}\\\\kern1pt\\\\rule{.45em}{-1.2pt}{1.54pt}\\\\kern2.5mu}"],matrix:"Matrix",array:"Matrix",pmatrix:["Matrix','","(",")","c"],','cases:["Matrix","\\\\{",".",["l","l"],null,2],eqalign',':["Matrix",null,null,["','r","l"],[5/18],3,"D"],displaylines',34,'c"],null,3,"D"],cr:"','HandleRow','","\\\\":"',38,'",newline:"',38,'",noalign:"','HandleNoAlign','",eqalignno',34,'r","l","r"],[5/8,3],3,"D"],','leqalignno',34,47,'begin:"Begin",end:"End",tiny',':["HandleSize",','0],Tiny',52,'1],scriptsize',52,'2],small',52,'3],normalsize',52,'4],large',52,'5],Large',52,'6],LARGE',52,'7],huge',52,'8],Huge',52,'9],dots:["Macro","\\\\ldots"],','newcommand',':["Extension","',72,'"],newenvironment',73,72,'"],def',73,72,'"],color',73,'HTML"],','href',73,'HTML"],"class":["','Extension','","',83,'style',73,83,'cssId',73,83,'unicode',73,83,'bbox',73,'bbox"],require:"Require","char":"Char"},','environments',':{array:"Array",matrix',':["Array','",null,null,"c"],pmatrix',104,32,'bmatrix',104,'","[","]","c"],Bmatrix',104,'","\\\\{","\\\\}","c"],vmatrix',104,'","\\\\vert","\\\\vert","c"],Vmatrix',104,'","\\\\Vert","\\\\Vert","c"],cases',104,'","\\\\{",".","ll",null,2],eqnarray:["','Array",null,null,"rcl",[5/18,5/18],3,"D','"],"eqnarray*":["',119,'"],equation:"Equation","equation*":"Equation",align',73,'AMSmath','"],"align','*":["Extension","AMSmath"],','aligned',73,124,'"],','multline',73,124,'"],"',131,126,'split',73,124,'"],gather',73,124,'"],"gather',126,'gathered',73,124,'"]},AddSpecial',':function(','a){for(var b in a){','jsMath.Parser.prototype','.special[',151,'[b]]=a[b]}},Error',149,'a){this.i=','this.string','.length;','if(a','.error){this.error=a','.error}','else{if(!','this',160,'}}},nextIsSpace',':function(){','return ','this.string.charAt(this.i',').match(/[ \\n\\r\\t]/)},trimSpaces',149,'a){if(typeof(a)!="string"){',167,'a}',167,'a.replace(/^\\s+|\\s+$/g',',"")},','Process',149,'a){var ','c=','this.mlist.data',';a','=jsMath.Parse(','a,c.font,c.size,c.style);if(a','.error){this.Error(','a);','return null','}if(a.mlist.Length()==','0){',187,188,'1','){var b=','a.mlist.','Last();if(','b.atom&&b.type=="ord"&&b.nuc&&!b.sub&&!b.sup&&(b.nuc.type=="text"||b.nuc.type=="TeX")){',167,'b.nuc}}return{type:"mlist",mlist:a.mlist}},GetCommand',':function(){var ','a=/^([a-z]+|.) ?/i;var b=a.exec(','this.string.slice(this.i','));if(b){this.i+=b[1].length;',167,'b[1]}','this.i++;','return" "},GetArgument',149,'b,d){while','(this.nextIsSpace()){this.i','++}','if(this.','i>=',157,'.length){','if(!d){','this.Error("','Missing',' argument for "+b)}',187,'}if(',168,')==this.close){',215,216,'Extra close brace','")}',187,'}if(',168,')==this.cmd){',205,167,'this.cmd+','this.GetCommand','()}if(',168,')!=this.open){',167,168,'++)}var a=++this.i;var e=1;var f="";','while(this.i0){e--;this.i+=2}}}',247,'if(',201,427,'d.length)==d){f=',168,'+d','.length);','if(f.match(/[^a-z]/i)||!d.match(/[a-z]/i)){',273,157,'.slice(g,this.i-1);this.i+=d',158,167,'a}}}this.i++}}}}',216,401,403,'+d+" for "+b);',187,'},','ProcessUpto',149,'b,c){var ','a=this.GetUpto(b,c);',267,268,269,'GetEnd',149,'c){var a="";var b="";while(b!=c){a+=this.GetUpto("begin{"+c+"}","end");',267,268,'b=','this.GetArgument(this.cmd','+"end");',267,324,167,'a},Space',':function(){},','Prime',149,'d',193,'this.mlist.',195,'b==null||(!b.atom&&b','.type!="box"&&','b','.type!="frac")){','b=','this.mlist.Add(jsMath.mItem.','Atom("ord",{type:null}))}','if(b.sup){',216,'Prime causes double exponent',': use braces to clarify");return','}var a','="";while(d=="\'"){a+=this.cmd+"prime";d',381,'d=="\'"){this.i++}}b.sup=this.',177,'(a);b.sup.isPrime=1},RaiseLower',149,179,'b','=this.GetDimen(this.cmd+','a,1);',267,'}var c','=this.ProcessScriptArg','(',233,'a);',267,'}if(a=="lower"){b=-b}','this.mlist.Add(new jsMath.mItem("','raise",{nuc:c,raise:b}))},MoveLeftRight',149,263,'a',499,'b,1);',267,'}var c',503,'(',233,'b);',267,'}if(b=="moveleft"){a=-a}',484,'Space(a','));',484,'Atom("ord",c));',484,'Space(-a))},Require',149,179,'b=',466,404,267,'}b=','jsMath.Extension','.URL(b);if(','jsMath.Setup.','loaded[b]){return}','this.Extension(null,[','b])},',87,149,'a,b){','jsMath.Translate','.restart=1;if(a','!=null){','delete ',151,'[b[1]||"macros"][a]}',538,'.Require(b[0],',547,'.asynchronous',');throw"restart"},Frac',149,263,'a','=this.ProcessArg(this.cmd+','b);',267,'}var c',561,'b);',267,'}',484,'Fraction("over",a,c))},Sqrt',149,263,'d=',291,233,'b);',267,490,561,'b);',267,'}var c=jsMath.mItem.Atom("','radical",a);','if(d!=""){c.root=this.',177,'(d);',267,'}}',477,'Add(c)},','Root',149,263,'d=this.',453,'(',233,'b,"of");',267,490,561,'b);',267,582,583,'c.root=d;',477,590,'BuildRel',149,179,'b=this.',453,'(',233,'a,"over");',267,'}var d',561,'a);',267,582,'op",d);c.limits=1;c.sup=b;',477,590,'MakeBig',149,337,'c=d[0];var b=d[1]*jsMath.p_height;var e','=this.GetDelimiter(this.cmd+','a);',267,'}',484,'Atom(c,','jsMath.Box.Delimiter(','b,e,"T")))},Char',149,263,'a=',466,'+b);',267,'}var c=',466,'+b);',267,'}if(!',365,'[a]){',365,'[a]=[];',542,'jsMath.Font.URL(a',')])}else{',484,'Typeset(','jsMath.Box.TeX(c-0,a,',181,'.style,',181,'.size)))}},Matrix',149,'b,h){var e=',181,';var a=',466,'+b);',267,'}var g=','new jsMath.','Parser(a','+this.cmd+"\\\\",null,','e.size,h[5]||"T");g.matrix=b;g.row=[];g.table=[];g.rspacing=[];g.Parse();if(g',185,'g);return}g.',38,'(',515,'var d','=jsMath.Box.','Layout(e.size,g.table,h[2]||null,h[3]||null,g.rspacing,h[4]||null);if(h[0]&&h[1]){',412,636,'d.h+d','.d-jsMath.hd/4,this.delimiter[','h[0]],"T");var c=',636,'d.h+d',686,'h[1]],"T");d',681,'SetList([','f,d,c],e.style,e.size)}',484,'Atom((h','[0]?"inner":"ord"),','d))},HandleEntry',149,'b){if(!this.matrix){this.Error(b','+" can only appear in a matrix or array");return}if(',181,'.openI',549,273,477,'Get(',181,'.openI);if','(a.left){',216,217,403,'+"right','")}else{',216,257,'")}}if(',181,'.overI',549,477,'Over()}var d=',181,';',477,'Atomize(','d.style,d.size);','var c=',477,657,728,'c.entry=d.entry;delete d.entry;if(!c.entry){c.entry={}}this.row[','this.row.length',']=c;this.mlist=',671,'mList(null,null,d.size,d.style)},',38,149,'a,c){var b;if(!this.matrix){','this.Error(this.cmd+a',701,'a=="\\\\"){b=',291,233,'a);',267,'}if(b){b=',348,'b,',233,'a,0,1)}}this.HandleEntry(a);if(!c||',734,'>1||this.row[0].format!="null"){this.table[this.table.length]=this.row}if(b){','this.rspacing[this.table.length',']=b}this.row=[]},',44,149,263,'a=',466,'+b);',267,644,'a.replace(/^.*(vskip|vspace)([^a-z])/i,"$2");if(c.length==a',214,'return}var ','e=',348,'c,',233,'RegExp.$1,0,1);',267,'}',755,']=(',755,']||0)+e},Array',149,455,'e=c[2];var i=c[3];if(!e){e=',466,'+"begin{"+b+"}");',267,'}}e=e.replace(/[^clr]/g,"");e=e.split("");var g=',181,666,'c[5]||"T";var k=this.GetEnd(b);',267,'}',412,671,'Parser(k',673,'g.size,a);f.matrix=b;f.row=[];f.table=[];f.rspacing=[];f.Parse();if(f',185,'f);return}f.',38,'(',515,'var h',681,'Layout(g.size,f.table,e,i,f.rspacing,c[4],c[6],c[7]);if(c[0]&&c[1]){var d=',636,'h.h+h',686,'c[0]],"T");var j=',636,'h.h+h',686,'c[1]],"T");h',681,693,'d,h,j],g.style,g.size)}',484,'Atom((c',697,'h))},Begin',149,179,'b=',466,404,267,'}if(b.match(/[^a-z*]/i)){this.Error(\'Invalid environment name "\'+b+\'"\');return}if(!this.',102,'[b]){this.Error(\'Unknown environment "\'+b+\'"\');return',644,'this.',102,'[b];if(typeof(','c',')=="string"){','c=[c]}this[c[0]](b,c.slice(1))},End',149,179,'b=',466,404,267,'}',741,'+"{"+b+"} without matching',403,'+"begin")},Equation',149,263,'a=this.GetEnd(b);',267,'}',157,'=a+',201,');this.i=0},Spacer',149,'b,a){',484,525,'-0))},Hskip',149,263,'a',499,'b);',267,'}',484,525,'))},HBox',149,179,'c=',466,404,267,'}var b',681,'InternalMath(c,',181,'.size);',484,657,'b))},Rule',149,'b,f){var a',499,515,267,'}var e',499,515,267,'}var g',499,515,267,'}e+=g;var c;if(e!=0){e=Math.max(1.05/jsMath.em,e)}if(e==0||a==0||f=="blank"){c=','jsMath.HTML.','Blank(a,e)}else{c=',898,'Rule(a,e)}if(g){c=\'\'+c','+""}',484,657,671,'Box("html",c,a,e-g,g)))},Strut',199,'a=',181,'.size;var b',681,'Text("","normal","T",a).Styled();b.bh=b.bd=0;b.h=0.8;b.d=0.3;b.w=b.Mw=0;',484,657,'b))},Phantom',149,455,'a',561,'b);',267,'}',509,'phantom",{phantom:a,v:c[0],h:c[1]}))},Smash',149,455,'a',561,'b);',267,'}',509,'smash",{smash:a}))},MathAccent',149,'b,',179,'e',561,'b);',267,'}var d','=jsMath.mItem.','Atom("accent",e);d.accent=a[0];',477,'Add(d)},NamedOp',149,'c,f){var b=(c.match(/[^acegm-su-z]/))?1:0;var g=(c.match(/[gjpqy]/))?0.2:0;if(f[1]){c=f[1]}var e',944,'TextAtom("','op",c,',365,'.fam[0],b,g);if(f[0]!=null){e.limits=f[0]}',477,'Add(e)},Limits',149,'a,c',193,477,'Last();if(!b||b.type!="op"){',741,'+" is allowed only on operators");return}b.limits=c[0]},Macro',149,'b,d){var e=d[0];if(d[1]){var a=[];','for(var c=0;c<','d[1];c++){a[a.length]=',466,'+b);',267,'}}e=this.','SubstituteArgs','(a,e)}',157,'=','this.AddArgs(e,',201,'));this.i=0},',972,149,'b,',179,'f="";var e="";var g;var d=0;while(db',214,216,'Illegal ','macro parameter ','reference");',187,'}e=this.AddArgs(',976,'f),b[g-1]);f=""}}else{f+=g}}}',167,976,'f)},AddArgs',149,856,'if(a.match','(/^[a-z]/i)&&b.match(/(^|[^\\\\])(\\\\\\\\)*\\\\[a-z]+$/i)){b+=" "}',167,'b+a},Replace',149,546,484,'TextAtom(','b[0],b[1],b[2','],b[3]))},Hash',149,'a){',216,'You can\'t use \'',995,'character #\' in math mode")},Tilde',149,'a){',484,951,30,'"))},HandleLap',149,179,612,261,'();',267,'}b=',509,'lap",{nuc:b,lap:a}))},HandleAtom',149,455,'a',561,'b);',267,'}',484,'Atom(c[0],a))},HandleMathCode',149,'a,b','){this.HandleTeXchar(',1014,'])},HandleTeXchar',149,'b,a,c){if(b==7&&',181,'.font',549,'a=',181,'.font}a=',365,'.fam[a];if(!',365,'[a]){',365,'[a]=[];',542,654,')])}else{',484,'TeXAtom(',365,'.atom[b],c,a))}},','HandleVariable',149,'a',1048,'7,1,','a.charCodeAt(0))},','HandleNumber',149,'a',1048,1,1077,'HandleOther',149,'a){',484,951,'ord",a,"normal"))},HandleComment',199,'a;',241,'a=',168,'++);if(a=="\\r"||a=="\\n"){return}}},HandleStyle',149,546,181,'.style=b[0];',509,'style",{style:b[0]}))},HandleSize',149,546,181,'.size=b[0];',509,'size",{size:b[0]}))},HandleFont',149,856,181,'.font=a[0]},HandleCS',199,'b=',234,'();',267,'}',211,'macros[b]){',273,'this','.macros',831,'a',833,'a=[a]}this[a[0]](b,a.slice(1','));return}',211,'mathchardef','[','b]){this.HandleMathCode(b,this.',1129,'[b]);return}if(',326,233,1131,'delimiter[',233,'b].slice(0,3',1127,216,'Unknown control sequence \'"+',233,'b+"\'")},HandleOpen',166,477,'Open()},HandleClose',166,'if(',181,703,'==null){',216,225,'");',767,'a=',477,'Get(',181,709,'(!a||a.left',1152,477,'Close()}else{',216,225,' or missing',403,714,'");return}},HandleLeft',149,179,'b',630,'a);',267,'}',477,'Open(b)},HandleRight',149,263,'c',630,'b);',267,490,'=',477,'Get(',181,709,'(a&&a.left',549,477,'Close(c)}else{',216,'Extra open brace or missing',403,'+"left")}},HandleOver',149,546,'if(',181,720,549,216,'Ambiguous use of',403,404,'return}',181,720,'=',477,'Length();',181,'.overF={name:a};if(b.length>0){',181,'.overF.','left=',326,'b[0]];',181,1220,'right=',326,'b[1]]}else{',1006,'(/withdelims$/)){',181,1220,'left',630,'a);',267,'}',181,1220,'right',630,'a);',267,'}}else{',181,1220,'left=null;',181,1220,1226,'null}}',1006,'(/^above/)){',181,1220,'thickness',499,'a,1);',267,1244,181,1220,'thickness=null}},HandleSuperscript',199,'a=',477,195,181,720,'==',477,'Length()){a=null}','if(a==null','||(!a.atom&&a',480,'a',482,'a=',484,485,'if(a.sup){if(a.sup.isPrime){a=',484,485,'else{',216,'Double exponent',489,'}}a.sup',503,'("superscript");',267,'}},HandleSubscript',199,'a=',477,195,181,720,'==',477,'Length()){a=null}',1273,'||(!a.atom&&a',480,'a',482,'a=',484,485,'if(a.sub){',216,'Double subscripts',489,'}a.sub',503,'("subscript");',267,'}},Parse',199,'b;',241,'b=',168,'++);',211,'mathchar[',1131,'mathchar[b])}else{',211,'special[b]){this[this',152,'b]](b)}else{',211,'letter','.test(b)){this.',1072,'(b)}else{',211,'number',1335,1078,1337,'this.',1084,'(b)}}}}}if(',181,703,549,273,477,'Get(',181,709,'(a.left){',216,217,403,714,715,216,257,'")}}if(',181,720,549,477,'Over()}},Atomize',199,'a=',477,'init;if(!this.error){',477,727,'a.style,a.size)}},Typeset',199,'f=',477,'init;var ',594,'typeset=',477,657,'f.style,f',880,267,'\'\'+this.error',904,'if(d.format=="null"){return""}d.Styled().Remeasured();var e=0;var c=0;if(d.bh>d.h&&','d.bh>jsMath.h+0.001','){e=1}if(d.bd>d.d&&d.bd>jsMath.d+0.001){e=1}if(d.h>jsMath.h||d.d>jsMath.d){c=1}var b=d.html;if(e){if(','jsMath.Browser.','allowAbsolute){var g=(',1389,'?jsMath.h-d.bh:0);b=',898,'Absolute(b,d.w,jsMath.h,0,g)}else{if(',1391,'valignBug){','b=\'\'+b',904,162,1391,'operaLineHeightBug){',273,898,'Em(Math.max(0,d.bd-jsMath.hd)/3);',1399,')+"; position:relative; top:"+a+"; vertical-align:"+a+\'">\'+b+""}}}c=1}if(c){b+=',898,'Blank(0,d.h+0.05,d.d+0.05)}return\'\'+b+""}});',151,'.AddSpecial({cmd:"HandleCS",open:"HandleOpen",close:"HandleClose"});','jsMath.Add(jsMath,{','Macro',149,179,'c=',151,1122,';c[a]=["Macro"];for(var b=1;b=0){','c=c.replace(/&','lt;/g,"<");',1574,'gt;/g,">");',1574,'quot;/g,\'"\');',1574,'amp;/g,"&")}',167,'c},',1572,149,1560,'b.nodeValue',549,'if(b.nodeName!=="#',1565,167,1587,'}',167,1587,'.replace(/^\\[CDATA\\[((.|\\n)*)\\]\\]$/,"$1")}if(',1561,'===0){return" "}var c="";for(',273,'0;a<',1561,';a++){c+=this.',1572,'(',1563,'a])}',167,'c},ResetHidden',149,'a){a.innerHTML=\'\'+',1391,'operaHiddenFix;a','.className','="";','jsMath.hidden','=a.firstChild;if(!jsMath.BBoxFor("x").w){','jsMath.hidden=jsMath.hiddenTop','}jsMath.ReInit()},ConvertMath',149,'c,b,',179,594,1558,'(b);this.ResetHidden(b);if(d.match(/^\\s*\\\\nocache([^a-zA-Z])/)){a=true;d=d.replace(/\\s*\\\\nocache/,"")}',594,'Parse(c,d,a);b',1613,'="typeset";b.innerHTML=d},',1520,149,'c){this.restart=0;if(!c',1613,'.match(/(^| )math( |$)/)){',767,'a=(c',1613,'.toLowerCase','().match(/(^| )nocache( |$)/)!=null);try{var d=(c.tagName',1637,'()=="div"?"D":"T");this.ConvertMath(d,c,a);c.onclick=jsMath.Click.CheckClick;c.ondblclick=jsMath.Click.CheckDblClick}catch(e){if(c.alt',193,'c.alt;b=b.replace(/&/g,"&").replace(//g,">");c.innerHTML=b;c',1613,'="math";if(a){c',1613,'+=" nocache"}}',1617,'}},','ProcessElements',149,'b){',1498,'blocking=','1;',966,1391,'processAtOnce;c++,b++){if(b>=','this.element','.length||this.cancel){this.','ProcessComplete','();',211,'cancel){','jsMath.Message.','Set("',177,' Math: Canceled");',1664,'Clear()}',1498,1653,'0;',1498,177,'();return}','else{',273,1498,'SaveQueue();','this.ProcessElement(this.element[','b]);',211,'restart){',1498,1499,'this,"',1649,'",b);',1498,'RestoreQueue(a);',1498,1653,'0;setTimeout("',1498,177,'()",',1391,'delay);return}}}',1498,1690,'var d=Math.floor(100*b/',1658,439,'jsMath.Message.Set("Processing Math',': "+d+"%");setTimeout("',547,'.',1649,'("+b+")",',1391,'delay)},',1502,149,'a','){if(!jsMath.initialized){jsMath.Init()}this.element','=this.GetMathElements(','a);',1498,1653,'1;this.cancel=0;this',556,'=1;',1704,': 0%",1);setTimeout("',547,'.',1649,'(0)",',1391,1711,1514,149,856,1273,1715,1716,'b);a=0}this',556,'=0;while(a<',1658,214,1680,'a]);',211,'restart){','jsMath.Synchronize','("',547,'.',1514,'(null,"+a+")");',1498,177,1675,'a++}this.',1660,'(1)},ProcessOne',149,'a',1715,'=[a];this.',1514,'(null,0)},GetMathElements',149,'d){var b=[];var a;',215,'d=','jsMath.document','}if(typeof(d',833,'d=',1768,'.getElementById(d)}if(!','d.getElementsByTagName','){',187,644,1774,'("div','");for(a=0;a=0;a--){b[a].removeAttribute("name")}}',1617,';',1658,'=[];this.restart=null;if(!c){',1704,': Done");',1664,'Clear()}',1664,'UnBlank();if(',1391,'safariImgBug&&(',1510,'font=="symbol"||',1510,'font=="image")){',211,'timeout){clearTimeout(this.timeout)}this.timeout=setTimeout("','jsMath.window.resizeBy','(-1,0); ',1836,'(1,0); ',547,'.timeout = null",2000)}},Cancel',166,547,'.cancel=1;if(',1498,'cancelTimer){',1498,'cancelLoad()}}};',1414,'ConvertTeX',149,'a){',1498,'Push(jsMath.tex2math,"',1850,1503,'ConvertTeX2',149,'a){',1498,1854,1857,1503,'ConvertLaTeX',149,'a){',1498,1854,1864,1503,'ConvertCustom',149,'a){',1498,1854,1871,1503,'CustomSearch',149,'c,b,a,d){',1498,1499,'null,function(){jsMath.tex2math.',1878,'(c,b,a,d)})},tex2math:{',1850,472,1857,472,1864,472,1871,472,1878,':function(){}}});',1746,'=',1498,'Synchronize;try{if(','window.parent','!=window&&window.jsMathAutoload){',1900,'.jsMath=jsMath;',1768,'=',1900,'.document;jsMath.window=',1900,'}}catch(err){}',1535,'Register();jsMath.Loaded();jsMath.Controls.GetCookie();',540,'Source();',1535,'Init();',1498,'Init();',540,'Fonts();if(',1768,'.body){',540,'Body()}',540,'User("onload")}};'] + +]); +//end = new Date().getTime(); +//alert(end-start); diff --git a/jsMath/local/macros.js b/jsMath/local/macros.js new file mode 100644 index 00000000..974fba98 --- /dev/null +++ b/jsMath/local/macros.js @@ -0,0 +1,17 @@ +/* + * local/macros.js + * + * Use jsMath.Macro() to declare your own local macro definitions here, + * and add "local/macros.js" to the loadFiles array in easy/load.js so + * that they will be loaded automatically when jsMath is used. + * + * See http://www.math.union.edu/locate/jsMath/authors/macros.html + * for details on defining macros for jsMath. + */ + +// +// Examples: +// +// jsMath.Macro('R','{\\bf R}'); +// jsMath.Macro('red','\\color{red}{#1}',1); +// diff --git a/jsMath/plugins/CHMmode.js b/jsMath/plugins/CHMmode.js new file mode 100644 index 00000000..1bab915f --- /dev/null +++ b/jsMath/plugins/CHMmode.js @@ -0,0 +1,85 @@ +/* + * CHMmode.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes jsMath work with MicroSoft's HTML Help system + * from within .chm files (compiled help archives). + * + * This file should be loaded BEFORE jsMath.js. + * + * --------------------------------------------------------------------- + * + * Copyright 2006-2007 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +if (!window.jsMath) {window.jsMath = {}} +if (!jsMath.Controls) {jsMath.Controls = {}} +if (!jsMath.Controls.cookie) {jsMath.Controls.cookie = {}} + +jsMath.isCHMmode = 1; + +jsMath.noChangeGlobal = 1; +jsMath.noShowGlobal = 1; +jsMath.noImgFonts = 1; +jsMath.Controls.cookie.global = 'always'; +jsMath.Controls.cookie.hiddenGlobal = 1; + +if (window.location.protocol == "mk:") { + + /* + * Work around bug in hh.exe that causes it to run at 100% CPU + * and not exit if the page is reloaded after an IFRAME is used + * to load the controls file, so fake it using XMLHttpRequest. + * Load the data into a DIV instead of an IFRAME, and make sure + * that the styles are correct for it. Change the GetPanel() + * call to hide the other panel and open the correct one. + */ + + jsMath.Controls.Init = function () { + this.controlPanels = jsMath.Setup.DIV("controlPanels"); + if (!jsMath.Browser.msieButtonBug) {this.Button()} + else {setTimeout("jsMath.Controls.Button()",500)} + } + + jsMath.Controls.Panel = function () { + jsMath.Translate.Cancel(); + jsMath.Setup.AddStyleSheet({ + '#jsMath_options': jsMath.styles['#jsMath_panel'], + '#jsMath_options .disabled': jsMath.styles['#jsMath_panel .disabled'], + '#jsMath_options .infoLink': jsMath.styles['#jsMath_panel .infoLink'] + }); + if (this.loaded) {this.panel = jsMath.Element("panel"); this.Main(); return} + var html = jsMath.Script.xmlRequest(jsMath.root+"jsMath-controls.html"); + var body = (html.match(/([\s\S]*)<\/body>/))[1]; + this.controlPanels.innerHTML = body; + var script = (body.match(/ + + + +
+ +

jsMath Image Mode Test Page

+ +If you see typeset mathematics below, then jsMath Image Mode is working. If you see +TeX code instead, jsMath Image Mode is not working for you. +

+ +


+ + +
+\left(\, \sum_{k=1}^n a_k b_k \right)^2 \le +\left(\, \sum_{k=1}^n a_k^2 \right) \left(\, \sum_{k=1}^n b_k^2 \right) +
+

+ +

+\warning{       jsMath image mode is not working!       } +
+ + +
+

+If the mathematics does not show up properly, you may not have not +installed the jsMath +image fonts file correctly. Follow the instructions on the linked +page. +

+ +Once you have jsMath working, go on to the sample +page to see if easy/load.js is configured properly. + +

+ + + + + + +

+


+ + + +
+ + + + + + +
[HOME]jsMath web pages
+Created: 14 Feb 2007
+ +Last modified: Jun 16, 2007 8:56:17 AM + +
+Comments to: dpvc@union.edu
+
 
+
+ + + diff --git a/jsMath/test/index.html b/jsMath/test/index.html new file mode 100644 index 00000000..559d9e4f --- /dev/null +++ b/jsMath/test/index.html @@ -0,0 +1,114 @@ + + +jsMath (Test): jsMath Test Page + + + + + + + + +
+ + +
jsMath (Test)
+
+

+ + + + + + + +

+Warning: jsMath +requires JavaScript to process the mathematics on this page.
+If your browser supports JavaScript, be sure it is enabled. +
+
+ + +
+ +
+ +
+ +

jsMath Test Page

+ +If you see typeset mathematics below, then jsMath is working. If you see +TeX code instead, jsMath is not working for you. +

+ +


+ + +
+\left(\, \sum_{k=1}^n a_k b_k \right)^2 \le +\left(\, \sum_{k=1}^n a_k^2 \right) \left(\, \sum_{k=1}^n b_k^2 \right) +
+

+ +

+\warning{       jsMath is not working!       } +
+ + +
+

+ +Once you have jsMath working properly, view the image mode test page to make sure that the +image fallback mode is working as well. + +

+ + + + + + +

+


+ + + +
+ + + + + + +
[HOME]jsMath web pages
+Created: 14 Feb 2007
+ +Last modified: Feb 12, 2009 6:14:47 PM + +
+Comments to: dpvc@union.edu
+
 
+
+ + + diff --git a/jsMath/test/jsMath40.jpg b/jsMath/test/jsMath40.jpg new file mode 100644 index 00000000..db537947 Binary files /dev/null and b/jsMath/test/jsMath40.jpg differ diff --git a/jsMath/test/sample.html b/jsMath/test/sample.html new file mode 100644 index 00000000..4497e7a3 --- /dev/null +++ b/jsMath/test/sample.html @@ -0,0 +1,165 @@ + + +jsMath (Test): jsMath Sample Page + + + + + + + + + +
+ +

jsMath Sample Page

+ +This is a sample file showing you how to use jsMath to display mathematics +in your web pages. Be sure you have followed the installation +instructions before loading this file. Also, you may need to edit the +jsMath/easy/load.js file to set the root URL for where jsMath +can be found on your web site. The rest of this document gives examples of +how to enter mathematics in your pages. Depending on the settings in +jsMath/easy/load.js, not all of the mathematics below will be +processed by jsMath. Experiment with the settings in that file to see how +they work. +

+ +


+

+ +

Some mathematics using tex2math

+ +The easiest way to enter mathematics is to use jsMath's tex2math +plugin to identify the mathematics in your document by looking for \rm\TeX-like math delimiters. Here are some math +equations using those markers. Some inline math: $\sqrt{1-x^2}$ or \(ax^2+bx+c\), +and some displayed math: +$$\int {1\over x}\,dx = \ln(x)+C$$ +and +\[\sum_{i=1}^n i = {n(n+1)\over 2}.\] +Note that the first of these will not be processed unless you have enabled +processSingleDollars in jsMath/easy/load.js, +which is disabled by default. That is because a single dollar sign can +appear in normal text (as in "That will cost from $3.50 to +$5.00 to repair"), and you don't want jsMath to try to typeset +the "3.50 to " as mathematics. +

+ +If you enable processSingleDollars, you might also want to +enable fixEscapedDollars, so that it is possible to enter +dollar signs by preceding them with a backslash. Here's one that you can +use to see the results of these settings: \$ (an escaped dollar) and $x+1$ +(not escaped). +

+ +It is also possible to use your own custom delimiters for marking the +mathematics within your pages. If you uncomment the customDelimiters +array in jsMath/easy/load.js, then the following math will be +typeset by jsMath: some inline math [math]\sin(2\pi x)[/math] and some +display math [display]x={-b\pm \sqrt{b^2-4ac}\over 2a}.[/display] +You may change the delimiters to nearly anything you want, but they can not +look like HTML tags, since some browsers will eliminate unknown tags, and +jsMath doesn't get to look for the custom delimiters until after the +browser has interpreted the page. +

+ +

+You can prevent the tex2math plugin from processing a portion +of a page by enclosing it in a tag that is of +CLASS="tex2math_ignore". Often, that tag will be a +DIV or SPAN, but it can be anything. This +paragraph is wrapped in a DIV tag with +CLASS="tex2math_ignore", and so no math delimiters will be +processed: $f\colon X\to Y$, \(x^2 \gt 5\), $$1\over 1+x^2$$ and +\[\matrix{a& b\cr c& d}.\] +Note that this includes the processing of escaped dollars (\$) and +custom delimiters ([math]a \mapsto a^2[/math]) as well. +This makes it possible to produce examples of how to enter mathematics on +your site, for instance. +
+

+JsMath will automatically ignore the text within +PRE tags, so you can easily enter examples that way as well: +

+   $f\colon X\to Y$, \(x^2 \gt 5\),
+   $$1\over 1+x^2$$ and \[\matrix{a& b\cr c& d}.\]
+
+

+ +Note that since the < and > symbols are used to denote HTML tags, +these can be hard to incorporate into your \rm\TeX +code. Often, putting spaces around the < or > will make it work, but +it is probably better to use \lt and \gt instead. +Also note that the tex2math plugin does not allow any HTML +tags to be within the math delimiters, with the exception of +<BR>, which is ignored. +

+ +See the tex2math +documentation for more information. +

+ +


+

+ +

Mathematics without tex2math

+

+ +If you are not using tex2math, then you will need to enclose +your mathematics within SPAN or DIV tags that +are of CLASS="math". Use a SPAN for in-line math +and a DIV for displayed math. For instance, P = (x_1,\ldots,x_n) and +

+ A = \left\lgroup\matrix{a_{11}& \cdots& a_{1m}\cr + \vdots& \ddots& \vdots\cr + a_{n1}& \cdots& a_{nm}\cr}\right\rgroup. +
+

+


+

+

More information

+

+ +See the jsMath +example files for more examples of using jsMath. There are several extensions +to \rm\TeX that allow jsMath to interact better +with HTML. These provide features such as colored text, tagging mathematics +with CSS styles, and so on. +

+ +More information is available from the jsMath author's +documentation site. JsMath also has a home page at +SourceForge, and that includes public forums +for jsMath where you can ask the jsMath user community for help. +

+ + + diff --git a/jsMath/uncompressed/def.js b/jsMath/uncompressed/def.js new file mode 100644 index 00000000..0b5b6a19 --- /dev/null +++ b/jsMath/uncompressed/def.js @@ -0,0 +1,1442 @@ +jsMath.Img.AddFont(50,{ + cmr10: [ + [5,5,0], [6,6,0], [6,6,1], [5,6,0], [5,5,0], [6,5,0], [5,5,0], [6,5,0], + [5,5,0], [6,5,0], [5,5,0], [5,5,0], [4,5,0], [4,5,0], [6,5,0], [6,5,0], + [2,4,0], [3,6,2], [3,2,-3], [3,2,-3], [3,2,-3], [3,2,-3], [4,2,-3], [4,3,-3], + [3,3,2], [4,6,1], [5,5,1], [6,5,1], [4,5,1], [7,5,0], [7,6,1], [6,7,1], + [2,2,-1], [2,6,0], [3,3,-2], [6,7,2], [4,7,1], [6,7,1], [6,7,1], [2,3,-2], + [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,3,2], [2,1,-1], [2,1,0], [4,8,2], + [4,6,1], [3,5,0], [4,5,0], [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,6,1], + [4,6,1], [4,6,1], [2,4,0], [2,6,2], [2,6,2], [6,3,0], [3,6,2], [3,5,0], + [6,6,1], [6,6,0], [5,5,0], [5,6,1], [5,5,0], [5,5,0], [5,5,0], [6,6,1], + [6,5,0], [3,5,0], [4,6,1], [6,5,0], [5,5,0], [7,5,0], [6,5,0], [6,6,1], + [5,5,0], [6,7,2], [6,6,1], [4,6,1], [5,5,0], [6,6,1], [6,6,1], [8,6,1], + [6,5,0], [6,5,0], [4,5,0], [2,8,2], [4,3,-2], [2,8,2], [3,2,-3], [2,2,-3], + [2,3,-2], [4,5,1], [4,6,1], [3,5,1], [4,6,1], [3,5,1], [3,5,0], [4,6,2], + [4,5,0], [2,5,0], [3,7,2], [4,5,0], [2,5,0], [6,4,0], [4,4,0], [4,5,1], + [4,6,2], [4,6,2], [3,4,0], [3,5,1], [3,6,1], [4,5,1], [4,5,1], [5,5,1], + [4,4,0], [4,6,2], [3,4,0], [4,1,-1], [7,1,-1], [3,2,-3], [3,1,-4], [3,2,-3] + ], + cmmi10: [ + [6,5,0], [6,6,0], [6,6,1], [5,6,0], [6,5,0], [7,5,0], [6,5,0], [5,5,0], + [5,5,0], [5,5,0], [6,5,0], [5,5,1], [5,7,2], [4,6,2], [4,6,1], [3,5,1], + [4,7,2], [4,6,2], [4,6,1], [3,5,1], [4,5,1], [4,6,1], [4,6,2], [4,4,0], + [4,7,2], [4,5,1], [4,6,2], [4,5,1], [4,5,1], [4,5,1], [5,7,2], [5,6,2], + [5,7,2], [5,5,1], [3,5,1], [4,6,1], [6,5,1], [4,6,2], [3,5,1], [5,6,2], + [7,3,-1], [7,3,1], [7,3,-1], [7,3,1], [2,3,-1], [2,3,-1], [4,5,1], [4,5,1], + [4,5,1], [3,4,0], [4,4,0], [4,6,2], [4,6,2], [4,6,2], [4,6,1], [4,6,2], + [4,6,1], [4,6,2], [2,1,0], [2,3,2], [5,5,1], [4,8,2], [5,5,1], [4,4,0], + [4,7,1], [6,6,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [6,5,0], [6,6,1], + [7,5,0], [4,5,0], [5,6,1], [7,5,0], [5,5,0], [8,5,0], [7,5,0], [6,6,1], + [6,5,0], [6,7,2], [6,6,1], [5,6,1], [5,5,0], [6,6,1], [6,6,1], [8,6,1], + [6,5,0], [6,5,0], [6,5,0], [3,7,1], [3,8,2], [3,8,2], [7,3,0], [7,3,0], + [3,6,1], [4,5,1], [3,6,1], [4,5,1], [4,6,1], [4,5,1], [4,7,2], [4,6,2], + [4,6,1], [3,6,1], [4,7,2], [4,6,1], [2,6,1], [6,5,1], [4,5,1], [4,5,1], + [5,6,2], [4,6,2], [4,5,1], [3,5,1], [3,6,1], [4,5,1], [4,5,1], [5,5,1], + [4,5,1], [4,6,2], [4,5,1], [3,5,1], [4,6,2], [5,6,2], [5,2,-3], [5,2,-3] + ], + cmsy10: [ + [5,1,-1], [2,2,-1], [5,4,0], [4,4,0], [6,5,1], [4,4,0], [6,5,0], [6,6,2], + [6,6,1], [6,6,1], [6,6,1], [6,6,1], [6,6,1], [7,8,2], [4,4,0], [4,4,0], + [6,4,0], [6,4,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], + [6,3,0], [6,4,0], [5,5,1], [5,5,1], [7,5,1], [7,5,1], [5,5,1], [5,5,1], + [7,3,0], [7,3,0], [3,7,2], [3,7,2], [7,3,0], [7,7,2], [7,7,2], [6,4,0], + [7,5,1], [7,5,1], [5,7,2], [5,7,2], [7,5,1], [7,7,2], [7,7,2], [6,5,1], + [2,4,0], [7,5,1], [5,5,1], [5,5,1], [6,6,0], [6,6,2], [5,8,2], [1,4,0], + [4,6,1], [4,5,0], [5,3,0], [4,7,1], [5,7,1], [5,6,1], [6,5,0], [6,5,0], + [4,5,0], [6,7,1], [5,6,1], [4,6,1], [6,5,0], [4,6,1], [6,6,1], [5,6,1], + [6,6,1], [6,5,0], [6,6,1], [6,6,1], [5,6,1], [8,6,1], [8,7,1], [6,6,1], + [6,6,1], [6,6,1], [6,6,1], [5,6,1], [6,6,0], [6,6,1], [5,6,1], [8,6,1], + [6,5,0], [6,6,1], [6,5,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], + [4,5,0], [4,5,0], [3,8,2], [2,8,2], [3,8,2], [2,8,2], [3,8,2], [3,8,2], + [3,8,2], [2,8,2], [2,8,2], [3,8,2], [3,8,2], [5,8,2], [4,8,2], [2,6,1], + [6,8,7], [5,5,0], [6,6,1], [4,8,2], [5,5,0], [5,5,0], [5,6,1], [5,6,1], + [3,7,2], [3,7,2], [3,7,2], [5,7,2], [6,7,1], [6,8,2], [6,7,1], [6,7,1] + ], + cmex10: [ + [3,10,9], [3,10,9], [3,10,9], [2,10,9], [4,10,9], [2,10,9], [4,10,9], [2,10,9], + [4,10,9], [4,10,9], [3,10,9], [3,10,9], [2,6,5], [3,6,5], [4,10,9], [4,10,9], + [4,14,13], [3,14,13], [5,18,17], [4,18,17], [4,18,17], [2,18,17], [4,18,17], [3,18,17], + [4,18,17], [3,18,17], [5,18,17], [5,18,17], [5,18,17], [5,18,17], [7,18,17], [7,18,17], + [6,22,21], [4,22,21], [4,22,21], [3,22,21], [5,22,21], [3,22,21], [5,22,21], [3,22,21], + [5,22,21], [5,22,21], [5,22,21], [5,22,21], [9,22,21], [9,22,21], [6,14,13], [6,14,13], + [6,14,13], [5,14,13], [5,14,13], [3,14,13], [5,14,13], [3,14,13], [3,6,5], [3,6,5], + [6,8,7], [4,8,7], [6,8,7], [4,8,7], [4,14,13], [6,14,13], [4,4,3], [3,6,5], + [6,14,13], [5,14,13], [3,6,5], [5,6,5], [4,14,13], [4,14,13], [6,8,7], [8,11,10], + [5,9,8], [7,17,16], [8,8,7], [11,11,10], [8,8,7], [11,11,10], [8,8,7], [11,11,10], + [7,8,7], [7,8,7], [5,9,8], [6,8,7], [6,8,7], [6,8,7], [6,8,7], [6,8,7], + [10,11,10], [9,11,10], [7,17,16], [8,11,10], [8,11,10], [8,11,10], [8,11,10], [8,11,10], + [7,8,7], [9,11,10], [5,3,-3], [9,2,-4], [12,2,-4], [4,2,-4], [7,2,-4], [11,2,-4], + [4,14,13], [2,14,13], [4,14,13], [3,14,13], [4,14,13], [3,14,13], [4,14,13], [4,14,13], + [8,10,9], [8,14,13], [8,18,17], [8,22,21], [6,14,13], [6,6,5], [8,6,5], [4,6,5], + [4,6,5], [4,6,5], [5,3,2], [5,3,2], [5,3,0], [5,3,0], [6,6,5], [6,6,5] + ], + cmbx10: [ + [5,5,0], [7,5,0], [6,6,1], [6,5,0], [6,5,0], [7,5,0], [6,5,0], [6,5,0], + [6,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], [5,5,0], [7,5,0], [7,5,0], + [2,4,0], [3,6,2], [3,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], + [4,3,2], [4,6,1], [6,5,1], [7,5,1], [4,5,1], [8,5,0], [8,6,1], [6,7,1], + [3,2,-1], [2,5,0], [4,3,-2], [7,7,2], [4,7,1], [7,7,1], [6,6,1], [2,3,-2], + [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,4,2], [3,1,-1], [2,2,0], [4,8,2], + [4,6,1], [4,5,0], [4,5,0], [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,6,1], + [4,6,1], [4,6,1], [2,4,0], [2,6,2], [2,6,2], [6,3,0], [4,6,2], [4,5,0], + [6,6,1], [6,5,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [5,5,0], [6,6,1], + [7,5,0], [3,5,0], [4,6,1], [6,5,0], [5,5,0], [8,5,0], [7,5,0], [6,6,1], + [6,5,0], [6,7,2], [6,6,1], [5,6,1], [6,5,0], [6,6,1], [6,6,1], [9,6,1], + [6,5,0], [6,5,0], [5,5,0], [3,8,2], [4,3,-2], [2,8,2], [4,2,-3], [2,2,-3], + [2,3,-2], [4,5,1], [5,6,1], [4,5,1], [5,6,1], [4,5,1], [4,5,0], [4,6,2], + [5,5,0], [2,5,0], [3,7,2], [5,5,0], [3,5,0], [7,4,0], [5,4,0], [4,5,1], + [5,6,2], [5,6,2], [4,4,0], [3,5,1], [3,6,1], [5,5,1], [5,5,1], [6,5,1], + [5,4,0], [5,6,2], [4,4,0], [5,2,-1], [9,2,-1], [4,2,-3], [4,1,-4], [4,2,-3] + ], + cmti10: [ + [5,5,0], [6,6,0], [6,6,1], [5,6,0], [6,5,0], [6,5,0], [6,5,0], [6,5,0], + [6,5,0], [6,5,0], [6,5,0], [7,7,2], [6,7,2], [6,7,2], [8,7,2], [8,7,2], + [3,5,1], [4,6,2], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [5,3,-3], + [3,3,2], [6,7,2], [6,5,1], [6,5,1], [4,5,1], [7,5,0], [8,6,1], [6,7,1], + [3,2,-1], [3,6,0], [4,3,-2], [6,7,2], [5,6,1], [6,7,1], [6,7,1], [3,3,-2], + [4,8,2], [3,8,2], [5,4,-2], [6,5,1], [2,3,2], [3,1,-1], [2,1,0], [5,8,2], + [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,7,2], [4,6,1], [4,6,1], [5,6,1], + [4,6,1], [4,6,1], [3,4,0], [3,6,2], [3,6,2], [6,3,0], [4,6,2], [4,6,0], + [6,6,1], [5,6,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [6,5,0], [6,6,1], + [6,5,0], [4,5,0], [5,6,1], [7,5,0], [5,5,0], [8,5,0], [6,5,0], [6,6,1], + [6,5,0], [6,7,2], [6,6,1], [5,6,1], [6,5,0], [6,6,1], [7,6,1], [8,6,1], + [6,5,0], [7,5,0], [5,5,0], [4,8,2], [5,3,-2], [4,8,2], [4,2,-3], [3,2,-3], + [3,3,-2], [4,5,1], [4,6,1], [4,5,1], [4,6,1], [4,5,1], [5,7,2], [4,6,2], + [4,6,1], [3,6,1], [4,7,2], [4,6,1], [3,6,1], [6,5,1], [5,5,1], [4,5,1], + [4,6,2], [4,6,2], [4,5,1], [3,5,1], [3,6,1], [4,5,1], [4,5,1], [5,5,1], + [4,5,1], [4,6,2], [4,5,1], [4,1,-1], [8,1,-1], [5,2,-3], [4,2,-3], [4,2,-3] + ] +}); + +jsMath.Img.AddFont(60,{ + cmr10: [ + [5,6,0], [7,6,0], [6,7,1], [6,6,0], [5,6,0], [6,6,0], [6,6,0], [6,6,0], + [6,6,0], [6,6,0], [6,6,0], [6,6,0], [5,6,0], [5,6,0], [7,6,0], [7,6,0], + [2,4,0], [3,6,2], [3,2,-4], [4,2,-4], [4,2,-4], [4,2,-4], [4,1,-4], [4,2,-4], + [3,3,2], [4,7,1], [6,5,1], [6,5,1], [4,6,1], [7,6,0], [8,7,1], [6,7,1], + [3,2,-2], [2,6,0], [3,3,-3], [7,8,2], [4,7,1], [7,7,1], [6,7,1], [2,3,-3], + [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,3,2], [3,1,-1], [2,1,0], [4,8,2], + [4,7,1], [4,6,0], [4,6,0], [4,7,1], [4,6,0], [4,7,1], [4,7,1], [4,7,1], + [4,7,1], [4,7,1], [2,4,0], [2,6,2], [2,6,2], [6,2,-1], [4,6,2], [4,6,0], + [6,7,1], [6,6,0], [6,6,0], [6,7,1], [6,6,0], [6,6,0], [5,6,0], [6,7,1], + [6,6,0], [3,6,0], [4,7,1], [6,6,0], [5,6,0], [8,6,0], [6,6,0], [6,7,1], + [5,6,0], [6,8,2], [6,7,1], [4,7,1], [6,6,0], [6,7,1], [6,7,1], [9,7,1], + [6,6,0], [6,6,0], [5,6,0], [3,8,2], [4,3,-3], [2,8,2], [4,2,-4], [2,2,-4], + [2,3,-3], [4,5,1], [5,7,1], [4,5,1], [5,7,1], [4,5,1], [3,6,0], [4,6,2], + [5,6,0], [2,6,0], [3,8,2], [5,6,0], [3,6,0], [7,4,0], [5,4,0], [4,5,1], + [5,6,2], [5,6,2], [3,4,0], [3,5,1], [3,6,1], [5,5,1], [5,5,1], [6,5,1], + [5,4,0], [5,6,2], [4,4,0], [4,1,-2], [8,1,-2], [4,2,-4], [4,2,-4], [4,2,-4] + ], + cmmi10: [ + [6,6,0], [7,6,0], [6,7,1], [6,6,0], [7,6,0], [8,6,0], [7,6,0], [6,6,0], + [6,6,0], [6,6,0], [7,6,0], [5,5,1], [5,8,2], [5,6,2], [4,7,1], [4,5,1], + [4,8,2], [4,6,2], [4,7,1], [3,5,1], [5,5,1], [5,7,1], [5,6,2], [5,4,0], + [4,8,2], [5,5,1], [5,6,2], [5,5,1], [5,5,1], [5,5,1], [5,8,2], [5,6,2], + [6,8,2], [5,5,1], [4,5,1], [5,7,1], [7,5,1], [5,6,2], [4,5,1], [5,6,2], + [8,4,-1], [8,4,1], [8,4,-1], [8,4,1], [2,3,-1], [2,3,-1], [4,6,1], [4,6,1], + [4,5,1], [4,4,0], [4,4,0], [4,6,2], [4,6,2], [4,6,2], [4,7,1], [4,6,2], + [4,7,1], [4,6,2], [2,1,0], [2,3,2], [6,6,1], [4,8,2], [6,6,1], [4,4,0], + [5,7,1], [6,6,0], [7,6,0], [7,7,1], [7,6,0], [7,6,0], [7,6,0], [7,7,1], + [8,6,0], [4,6,0], [6,7,1], [8,6,0], [6,6,0], [9,6,0], [8,6,0], [6,7,1], + [7,6,0], [6,8,2], [7,7,1], [6,7,1], [6,6,0], [7,7,1], [7,7,1], [9,7,1], + [7,6,0], [7,6,0], [6,6,0], [3,7,1], [3,8,2], [3,8,2], [8,2,-1], [8,3,-1], + [4,7,1], [4,5,1], [4,7,1], [4,5,1], [5,7,1], [4,5,1], [5,8,2], [4,6,2], + [5,7,1], [3,7,1], [5,8,2], [5,7,1], [3,7,1], [7,5,1], [5,5,1], [4,5,1], + [5,6,2], [4,6,2], [4,5,1], [4,5,1], [3,7,1], [5,5,1], [4,5,1], [6,5,1], + [5,5,1], [4,6,2], [4,5,1], [3,5,1], [4,6,2], [5,6,2], [5,2,-4], [6,2,-4] + ], + cmsy10: [ + [6,2,-1], [2,2,-1], [6,4,0], [4,4,0], [6,6,1], [4,4,0], [6,6,0], [6,6,2], + [6,6,1], [6,6,1], [6,6,1], [6,6,1], [6,6,1], [8,8,2], [4,4,0], [4,4,0], + [6,4,0], [6,4,0], [6,8,2], [6,8,2], [6,8,2], [6,8,2], [6,8,2], [6,8,2], + [6,2,-1], [6,4,0], [6,6,1], [6,6,1], [8,6,1], [8,6,1], [6,6,1], [6,6,1], + [8,4,0], [8,4,0], [4,8,2], [4,8,2], [8,4,0], [8,8,2], [8,8,2], [6,4,0], + [8,6,1], [8,6,1], [5,8,2], [5,8,2], [8,6,1], [8,8,2], [8,8,2], [6,5,1], + [3,5,0], [8,5,1], [5,6,1], [5,6,1], [7,6,0], [7,6,2], [6,8,2], [1,4,0], + [5,7,1], [4,6,0], [5,3,0], [4,8,1], [6,7,1], [6,7,1], [6,6,0], [6,6,0], + [5,6,0], [7,7,1], [6,7,1], [5,7,1], [7,6,0], [5,7,1], [7,7,1], [5,7,1], + [7,7,1], [7,6,0], [7,7,1], [6,7,1], [6,7,1], [9,7,1], [9,8,1], [7,7,1], + [6,7,1], [7,7,1], [7,7,1], [6,7,1], [7,6,0], [7,7,1], [6,7,1], [9,7,1], + [7,6,0], [6,8,2], [7,6,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], + [5,6,0], [5,6,0], [4,8,2], [3,8,2], [4,8,2], [3,8,2], [4,8,2], [4,8,2], + [3,8,2], [3,8,2], [2,8,2], [3,8,2], [4,10,3], [5,10,3], [4,8,2], [2,6,1], + [7,9,8], [6,6,0], [7,7,1], [4,8,2], [5,5,0], [5,5,0], [6,8,2], [6,8,2], + [3,8,2], [4,8,2], [4,8,2], [5,8,2], [6,8,2], [6,8,2], [6,7,1], [6,8,2] + ], + cmex10: [ + [4,11,10], [3,11,10], [4,11,10], [2,11,10], [4,11,10], [3,11,10], [4,11,10], [3,11,10], + [4,11,10], [4,11,10], [4,11,10], [3,11,10], [2,6,5], [4,6,5], [5,11,10], [5,11,10], + [5,16,15], [4,16,15], [6,20,19], [5,20,19], [5,20,19], [3,20,19], [5,20,19], [3,20,19], + [5,20,19], [3,20,19], [5,20,19], [5,20,19], [6,20,19], [5,20,19], [8,20,19], [8,20,19], + [7,25,24], [5,25,24], [5,25,24], [3,25,24], [6,25,24], [3,25,24], [6,25,24], [3,25,24], + [6,25,24], [6,25,24], [6,25,24], [6,25,24], [10,25,24], [10,25,24], [7,16,15], [7,16,15], + [7,16,15], [5,16,15], [6,16,15], [3,16,15], [6,16,15], [3,16,15], [4,6,5], [3,6,5], + [6,9,8], [5,9,8], [6,9,8], [5,9,8], [5,16,15], [6,16,15], [5,4,3], [3,6,5], + [7,16,15], [5,16,15], [4,6,5], [5,6,5], [5,16,15], [4,16,15], [7,9,8], [9,13,12], + [5,10,9], [8,19,18], [9,9,8], [12,13,12], [9,9,8], [12,13,12], [9,9,8], [12,13,12], + [8,9,8], [8,9,8], [5,10,9], [7,9,8], [7,9,8], [7,9,8], [7,9,8], [7,9,8], + [12,13,12], [10,13,12], [8,19,18], [9,13,12], [9,13,12], [9,13,12], [9,13,12], [9,13,12], + [8,9,8], [10,13,12], [6,2,-4], [10,3,-4], [13,3,-4], [5,2,-4], [8,2,-4], [12,2,-4], + [4,16,15], [2,16,15], [5,16,15], [3,16,15], [5,16,15], [3,16,15], [5,16,15], [5,16,15], + [9,11,10], [9,16,15], [9,20,19], [9,25,24], [6,16,15], [6,6,5], [9,6,5], [5,6,5], + [5,6,5], [5,6,5], [5,3,2], [5,3,2], [5,3,0], [5,3,0], [6,6,5], [6,6,5] + ], + cmbx10: [ + [6,6,0], [8,6,0], [7,7,1], [7,6,0], [6,6,0], [7,6,0], [7,6,0], [7,6,0], + [7,6,0], [7,6,0], [7,6,0], [6,6,0], [5,6,0], [5,6,0], [8,6,0], [8,6,0], + [3,4,0], [4,6,2], [3,2,-4], [4,2,-4], [4,2,-4], [4,2,-4], [4,1,-4], [5,2,-4], + [4,3,2], [5,7,1], [7,5,1], [7,5,1], [5,6,1], [9,6,0], [10,7,1], [7,7,1], + [3,2,-2], [3,6,0], [4,4,-2], [8,8,2], [5,7,1], [8,7,1], [7,7,1], [3,4,-2], + [4,8,2], [3,8,2], [4,4,-2], [7,8,2], [2,4,2], [3,2,-1], [2,2,0], [5,8,2], + [5,7,1], [4,6,0], [5,6,0], [5,7,1], [5,6,0], [5,7,1], [5,7,1], [5,7,1], + [5,7,1], [5,7,1], [2,4,0], [2,6,2], [3,6,2], [7,4,0], [4,6,2], [4,6,0], + [7,7,1], [7,6,0], [7,6,0], [7,7,1], [7,6,0], [6,6,0], [6,6,0], [7,7,1], + [7,6,0], [4,6,0], [5,7,1], [7,6,0], [6,6,0], [9,6,0], [7,6,0], [7,7,1], + [6,6,0], [7,8,2], [7,7,1], [5,7,1], [7,6,0], [7,7,1], [7,7,1], [10,7,1], + [7,6,0], [7,6,0], [6,6,0], [3,8,2], [5,4,-2], [2,8,2], [4,2,-4], [2,2,-4], + [2,4,-2], [5,5,1], [5,7,1], [4,5,1], [5,7,1], [4,5,1], [4,6,0], [5,6,2], + [5,6,0], [3,6,0], [4,8,2], [5,6,0], [3,6,0], [8,4,0], [5,4,0], [5,5,1], + [5,6,2], [5,6,2], [4,4,0], [4,5,1], [4,7,1], [5,5,1], [5,5,1], [7,5,1], + [5,4,0], [5,6,2], [4,4,0], [5,1,-2], [10,1,-2], [4,2,-4], [4,2,-4], [4,2,-4] + ], + cmti10: [ + [6,6,0], [7,6,0], [7,7,1], [6,6,0], [7,6,0], [7,6,0], [7,6,0], [7,6,0], + [6,6,0], [7,6,0], [7,6,0], [8,8,2], [6,8,2], [7,8,2], [9,8,2], [9,8,2], + [3,5,1], [4,6,2], [4,2,-4], [5,2,-4], [5,2,-4], [5,2,-4], [5,1,-4], [6,2,-4], + [3,3,2], [6,8,2], [6,5,1], [6,5,1], [5,6,1], [8,6,0], [9,7,1], [7,7,1], + [3,2,-2], [3,6,0], [5,3,-3], [7,8,2], [6,7,1], [7,7,1], [7,7,1], [3,3,-3], + [5,8,2], [4,8,2], [5,4,-2], [7,6,1], [2,3,2], [3,1,-1], [2,1,0], [5,8,2], + [5,7,1], [4,6,0], [5,7,1], [5,7,1], [4,8,2], [5,7,1], [5,7,1], [5,7,1], + [5,7,1], [5,7,1], [3,4,0], [3,6,2], [3,6,2], [7,2,-1], [4,6,2], [5,6,0], + [7,7,1], [6,6,0], [6,6,0], [7,7,1], [7,6,0], [6,6,0], [6,6,0], [7,7,1], + [7,6,0], [5,6,0], [5,7,1], [7,6,0], [5,6,0], [9,6,0], [7,6,0], [7,7,1], + [6,6,0], [7,8,2], [6,7,1], [6,7,1], [7,6,0], [7,7,1], [7,7,1], [9,7,1], + [7,6,0], [7,6,0], [6,6,0], [4,8,2], [5,3,-3], [4,8,2], [5,2,-4], [3,2,-4], + [3,3,-3], [5,5,1], [4,7,1], [4,5,1], [5,7,1], [4,5,1], [5,8,2], [4,6,2], + [5,7,1], [3,7,1], [4,8,2], [5,7,1], [3,7,1], [7,5,1], [5,5,1], [5,5,1], + [5,6,2], [4,6,2], [4,5,1], [4,5,1], [3,7,1], [5,5,1], [4,5,1], [6,5,1], + [5,5,1], [5,6,2], [4,5,1], [5,1,-2], [9,1,-2], [5,2,-4], [5,2,-4], [5,2,-4] + ] +}); + +jsMath.Img.AddFont(70,{ + cmr10: [ + [6,7,0], [8,8,0], [8,9,1], [7,8,0], [7,7,0], [8,7,0], [7,7,0], [8,8,0], + [7,7,0], [8,7,0], [7,8,0], [7,8,0], [6,8,0], [6,8,0], [9,8,0], [9,8,0], + [3,5,0], [4,8,3], [3,2,-5], [4,2,-5], [4,2,-5], [4,2,-5], [5,1,-5], [5,3,-5], + [4,4,3], [5,9,1], [7,6,1], [8,6,1], [5,8,2], [9,7,0], [10,9,1], [8,9,1], + [3,2,-2], [2,8,0], [4,4,-3], [8,9,2], [5,9,1], [8,9,1], [8,9,1], [3,4,-3], + [4,11,3], [3,11,3], [5,5,-3], [8,7,1], [3,4,2], [3,2,-1], [2,2,0], [5,11,3], + [5,8,1], [5,7,0], [5,7,0], [5,8,1], [5,7,0], [5,8,1], [5,8,1], [5,8,1], + [5,8,1], [5,8,1], [2,5,0], [2,7,2], [2,8,3], [8,3,-1], [5,8,3], [5,8,0], + [8,9,1], [8,8,0], [7,7,0], [7,9,1], [8,7,0], [7,7,0], [7,7,0], [8,9,1], + [8,7,0], [4,7,0], [5,8,1], [8,7,0], [6,7,0], [9,7,0], [8,7,0], [8,9,1], + [7,7,0], [8,10,2], [8,8,1], [5,9,1], [7,7,0], [8,8,1], [8,8,1], [11,8,1], + [8,7,0], [8,7,0], [6,7,0], [3,11,3], [5,4,-3], [2,11,3], [4,2,-5], [2,2,-5], + [2,4,-3], [5,6,1], [6,8,1], [5,6,1], [6,8,1], [5,6,1], [4,8,0], [5,8,3], + [6,7,0], [3,7,0], [4,10,3], [6,7,0], [3,7,0], [9,5,0], [6,5,0], [5,6,1], + [6,7,2], [6,7,2], [4,5,0], [4,6,1], [4,8,1], [6,6,1], [6,6,1], [8,6,1], + [6,5,0], [6,8,3], [5,5,0], [5,1,-2], [10,1,-2], [5,2,-5], [5,2,-5], [4,2,-5] + ], + cmmi10: [ + [8,7,0], [8,8,0], [8,9,1], [7,8,0], [8,7,0], [9,7,0], [9,7,0], [8,8,0], + [7,7,0], [7,7,0], [8,8,0], [7,6,1], [6,10,2], [6,8,3], [5,9,1], [4,6,1], + [5,10,3], [5,8,3], [5,9,1], [4,6,1], [6,6,1], [6,8,1], [6,8,3], [6,5,0], + [5,10,3], [6,6,1], [6,8,3], [6,6,1], [6,6,1], [6,6,1], [6,10,3], [6,8,3], + [7,10,3], [7,6,1], [5,6,1], [6,9,1], [9,6,1], [6,7,2], [5,7,2], [7,8,3], + [10,4,-2], [10,4,1], [10,4,-2], [10,4,1], [3,3,-2], [3,3,-2], [5,7,1], [5,7,1], + [5,6,1], [5,5,0], [5,5,0], [5,8,3], [5,7,2], [5,8,3], [5,8,1], [5,8,3], + [5,8,1], [5,8,3], [2,2,0], [3,4,2], [7,7,1], [5,11,3], [7,7,1], [5,5,0], + [6,9,1], [8,8,0], [8,7,0], [8,9,1], [9,7,0], [8,7,0], [8,7,0], [8,9,1], + [9,7,0], [5,7,0], [7,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,9,1], + [8,7,0], [8,10,2], [8,8,1], [7,9,1], [8,7,0], [8,8,1], [8,8,1], [11,8,1], + [9,7,0], [8,7,0], [8,7,0], [4,9,1], [4,11,3], [4,11,3], [10,3,-1], [10,3,-1], + [4,9,1], [5,6,1], [5,8,1], [5,6,1], [6,8,1], [5,6,1], [6,11,3], [5,8,3], + [6,8,1], [3,8,1], [5,10,3], [6,8,1], [3,8,1], [9,6,1], [6,6,1], [5,6,1], + [6,7,2], [5,7,2], [5,6,1], [5,6,1], [4,8,1], [6,6,1], [5,6,1], [7,6,1], + [6,6,1], [5,8,3], [5,6,1], [3,6,1], [5,8,3], [7,8,3], [7,3,-5], [7,2,-5] + ], + cmsy10: [ + [7,1,-2], [2,3,-1], [7,5,0], [5,5,0], [8,7,1], [5,5,0], [8,7,0], [8,7,2], + [8,7,1], [8,7,1], [8,7,1], [8,7,1], [8,7,1], [10,11,3], [5,5,0], [5,5,0], + [8,5,0], [8,5,0], [7,9,2], [7,9,2], [7,9,2], [7,9,2], [7,9,2], [7,9,2], + [8,3,-1], [8,5,0], [7,7,1], [7,7,1], [10,7,1], [10,7,1], [7,7,1], [7,7,1], + [10,5,0], [10,5,0], [5,9,2], [5,9,2], [10,5,0], [10,9,2], [10,9,2], [8,5,0], + [10,7,1], [10,7,1], [6,9,2], [6,9,2], [10,7,1], [10,9,2], [10,9,2], [8,6,1], + [3,6,0], [10,6,1], [6,7,1], [6,7,1], [9,8,0], [9,8,3], [7,11,3], [2,5,0], + [6,8,1], [5,7,0], [7,4,0], [5,9,1], [8,9,1], [7,9,1], [8,7,0], [8,7,0], + [6,7,0], [8,9,1], [7,9,1], [6,9,1], [8,7,0], [6,9,1], [9,8,1], [7,10,2], + [9,8,1], [8,7,0], [9,9,2], [8,9,1], [7,9,1], [12,9,1], [11,9,1], [8,9,1], + [8,8,1], [8,10,2], [9,8,1], [7,9,1], [8,8,0], [8,8,1], [7,8,1], [11,8,1], + [9,7,0], [8,9,2], [8,7,0], [7,7,1], [7,7,1], [7,7,1], [7,7,1], [7,7,1], + [6,7,0], [6,7,0], [5,11,3], [3,11,3], [5,11,3], [3,11,3], [5,11,3], [5,11,3], + [4,11,3], [3,11,3], [2,11,3], [4,11,3], [5,11,3], [6,11,3], [5,11,3], [3,7,1], + [9,11,10], [8,7,0], [8,8,1], [5,11,3], [7,6,0], [7,6,0], [8,9,2], [7,9,2], + [4,11,3], [4,11,3], [4,11,3], [6,9,2], [8,10,2], [8,10,2], [8,9,1], [8,10,2] + ], + cmex10: [ + [5,13,12], [4,13,12], [4,13,12], [3,13,12], [5,13,12], [3,13,12], [5,13,12], [3,13,12], + [5,13,12], [5,13,12], [4,13,12], [4,13,12], [2,8,7], [5,8,7], [6,13,12], [6,13,12], + [6,19,18], [5,19,18], [7,25,24], [6,25,24], [6,25,24], [3,25,24], [6,25,24], [4,25,24], + [6,25,24], [4,25,24], [7,25,24], [7,25,24], [7,25,24], [7,25,24], [10,25,24], [10,25,24], + [8,31,30], [6,31,30], [6,31,30], [4,31,30], [7,31,30], [4,31,30], [7,31,30], [4,31,30], + [7,31,30], [7,31,30], [7,31,30], [7,31,30], [13,31,30], [13,31,30], [8,19,18], [8,19,18], + [9,19,18], [6,19,18], [7,19,18], [4,19,18], [7,19,18], [4,19,18], [4,8,7], [4,8,7], + [8,11,10], [6,11,10], [8,10,9], [6,10,9], [6,20,19], [8,20,19], [6,5,4], [4,8,7], + [9,19,18], [6,19,18], [5,8,7], [6,8,7], [6,19,18], [5,19,18], [8,11,10], [11,15,14], + [7,13,12], [10,24,23], [11,11,10], [15,15,14], [11,11,10], [15,15,14], [11,11,10], [15,15,14], + [10,11,10], [9,11,10], [7,13,12], [8,11,10], [8,11,10], [8,11,10], [8,11,10], [8,11,10], + [14,15,14], [13,15,14], [10,24,23], [11,15,14], [11,15,14], [11,15,14], [11,15,14], [11,15,14], + [9,11,10], [13,15,14], [7,3,-5], [12,3,-5], [16,3,-5], [6,2,-6], [10,2,-6], [15,2,-6], + [5,19,18], [3,19,18], [6,19,18], [4,19,18], [6,19,18], [4,19,18], [6,19,18], [6,19,18], + [11,13,12], [11,19,18], [11,25,24], [11,31,30], [8,19,18], [8,8,7], [11,7,6], [6,8,7], + [6,7,6], [6,7,6], [6,5,3], [6,5,3], [6,4,0], [6,4,0], [8,7,6], [8,7,6] + ], + cmbx10: [ + [7,7,0], [9,7,0], [9,8,1], [8,7,0], [8,7,0], [9,7,0], [8,7,0], [9,7,0], + [8,7,0], [9,7,0], [8,7,0], [8,7,0], [7,7,0], [7,7,0], [10,7,0], [10,7,0], + [3,5,0], [4,7,2], [4,3,-5], [5,3,-5], [5,2,-5], [5,2,-5], [5,2,-5], [6,3,-5], + [5,3,2], [6,8,1], [8,6,1], [9,6,1], [6,8,2], [11,7,0], [12,8,1], [9,9,1], + [4,3,-2], [3,8,0], [5,4,-3], [9,9,2], [6,9,1], [9,9,1], [9,9,1], [3,4,-3], + [4,11,3], [4,11,3], [5,5,-3], [9,9,2], [3,4,2], [4,2,-1], [3,2,0], [6,11,3], + [6,8,1], [5,7,0], [6,7,0], [6,8,1], [6,7,0], [6,8,1], [6,8,1], [6,8,1], + [6,8,1], [6,8,1], [3,5,0], [3,7,2], [3,8,3], [9,3,-1], [5,7,2], [5,7,0], + [9,8,1], [9,7,0], [8,7,0], [8,8,1], [9,7,0], [8,7,0], [7,7,0], [9,8,1], + [9,7,0], [5,7,0], [6,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,8,1], + [8,7,0], [9,9,2], [9,8,1], [6,8,1], [8,7,0], [9,8,1], [9,8,1], [12,8,1], + [9,7,0], [9,7,0], [7,7,0], [3,11,3], [6,4,-3], [2,11,3], [5,2,-5], [3,2,-5], + [3,4,-3], [6,6,1], [6,8,1], [5,6,1], [7,8,1], [5,6,1], [5,7,0], [6,8,3], + [7,7,0], [3,7,0], [4,9,2], [6,7,0], [3,7,0], [10,5,0], [7,5,0], [6,6,1], + [6,7,2], [7,7,2], [5,5,0], [5,6,1], [4,8,1], [7,6,1], [6,6,1], [9,6,1], + [6,5,0], [6,7,2], [5,5,0], [6,1,-2], [12,1,-2], [5,3,-5], [5,2,-5], [5,2,-5] + ], + cmti10: [ + [8,7,0], [8,8,0], [8,9,1], [7,8,0], [8,7,0], [9,7,0], [8,7,0], [9,8,0], + [8,7,0], [9,7,0], [8,8,0], [9,11,3], [7,11,3], [8,11,3], [11,11,3], [11,11,3], + [4,6,1], [5,8,3], [5,2,-5], [6,2,-5], [6,2,-5], [6,2,-5], [6,1,-5], [7,3,-5], + [4,3,2], [7,11,3], [8,6,1], [8,6,1], [6,8,2], [10,7,0], [11,9,1], [9,9,1], + [4,2,-2], [4,8,0], [6,4,-3], [9,9,2], [7,9,1], [9,9,1], [9,9,1], [4,4,-3], + [6,11,3], [4,11,3], [6,5,-3], [8,7,1], [3,4,2], [4,2,-1], [3,2,0], [7,11,3], + [6,8,1], [5,7,0], [6,8,1], [6,8,1], [5,9,2], [6,8,1], [6,8,1], [7,8,1], + [6,8,1], [6,8,1], [4,5,0], [4,7,2], [4,8,3], [8,3,-1], [5,8,3], [6,8,0], + [8,9,1], [7,8,0], [8,7,0], [9,9,1], [8,7,0], [8,7,0], [8,7,0], [9,9,1], + [9,7,0], [6,7,0], [7,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,9,1], + [8,7,0], [8,10,2], [8,8,1], [7,9,1], [9,7,0], [9,8,1], [9,8,1], [12,8,1], + [9,7,0], [9,7,0], [8,7,0], [5,11,3], [7,4,-3], [5,11,3], [6,2,-5], [4,2,-5], + [4,4,-3], [6,6,1], [5,8,1], [5,6,1], [6,8,1], [5,6,1], [6,11,3], [5,8,3], + [6,8,1], [4,8,1], [5,10,3], [6,8,1], [4,8,1], [9,6,1], [6,6,1], [6,6,1], + [6,7,2], [5,7,2], [5,6,1], [5,6,1], [4,8,1], [6,6,1], [5,6,1], [7,6,1], + [6,6,1], [6,8,3], [5,6,1], [6,1,-2], [11,1,-2], [6,2,-5], [6,2,-5], [6,2,-5] + ] +}); + +jsMath.Img.AddFont(85,{ + cmr10: [ + [7,9,0], [10,9,0], [9,10,1], [8,9,0], [8,9,0], [9,9,0], [8,9,0], [9,9,0], + [8,9,0], [9,9,0], [9,9,0], [8,9,0], [7,9,0], [7,9,0], [10,9,0], [10,9,0], + [3,6,0], [4,9,3], [4,3,-6], [5,3,-6], [5,2,-6], [5,3,-6], [6,2,-6], [6,3,-6], + [5,4,3], [6,10,1], [9,7,1], [9,7,1], [6,9,2], [11,9,0], [12,10,1], [9,10,1], + [4,2,-3], [3,9,0], [5,5,-4], [10,12,3], [6,10,1], [10,10,1], [9,10,1], [3,5,-4], + [4,12,3], [4,12,3], [6,6,-3], [9,8,1], [3,5,3], [4,1,-2], [3,2,0], [6,12,3], + [6,9,1], [6,8,0], [6,8,0], [6,9,1], [6,9,0], [6,9,1], [6,9,1], [6,10,1], + [6,9,1], [6,9,1], [3,6,0], [3,9,3], [3,9,3], [9,4,-1], [5,9,3], [5,9,0], + [9,10,1], [9,9,0], [8,9,0], [8,10,1], [9,9,0], [8,9,0], [8,9,0], [9,10,1], + [9,9,0], [4,9,0], [6,10,1], [9,9,0], [7,9,0], [11,9,0], [9,9,0], [9,10,1], + [8,9,0], [9,12,3], [9,10,1], [6,10,1], [9,9,0], [9,10,1], [9,10,1], [13,10,1], + [9,9,0], [9,9,0], [7,9,0], [4,12,3], [6,5,-4], [2,12,3], [5,3,-6], [3,3,-6], + [3,5,-4], [6,7,1], [7,10,1], [5,7,1], [7,10,1], [5,7,1], [5,9,0], [6,9,3], + [7,9,0], [3,9,0], [4,12,3], [7,9,0], [4,9,0], [10,6,0], [7,6,0], [6,7,1], + [7,9,3], [7,9,3], [5,6,0], [5,7,1], [4,9,1], [7,7,1], [7,7,1], [9,7,1], + [7,6,0], [7,9,3], [5,6,0], [6,1,-3], [12,1,-3], [6,3,-6], [5,3,-6], [5,3,-6] + ], + cmmi10: [ + [9,9,0], [10,9,0], [9,10,1], [8,9,0], [10,9,0], [11,9,0], [10,9,0], [9,9,0], + [8,9,0], [9,9,0], [10,9,0], [8,7,1], [8,12,3], [7,9,3], [6,10,1], [5,7,1], + [6,12,3], [6,9,3], [6,10,1], [4,7,1], [7,7,1], [7,10,1], [7,9,3], [7,6,0], + [6,12,3], [7,7,1], [7,9,3], [7,7,1], [7,7,1], [7,7,1], [7,12,3], [8,9,3], + [8,12,3], [8,7,1], [6,7,1], [7,10,1], [10,7,1], [7,9,3], [5,8,2], [8,9,3], + [12,5,-2], [12,5,1], [12,5,-2], [12,5,1], [3,4,-2], [3,4,-2], [6,8,1], [6,8,1], + [6,7,1], [6,6,0], [6,6,0], [6,9,3], [6,9,3], [6,9,3], [6,9,1], [6,9,3], + [6,9,1], [6,9,3], [3,2,0], [3,5,3], [9,8,1], [6,12,3], [9,8,1], [6,6,0], + [7,10,1], [9,9,0], [10,9,0], [10,10,1], [10,9,0], [10,9,0], [10,9,0], [10,10,1], + [11,9,0], [6,9,0], [8,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [9,10,1], + [10,9,0], [9,12,3], [10,10,1], [8,10,1], [9,9,0], [10,10,1], [10,10,1], [13,10,1], + [11,9,0], [10,9,0], [9,9,0], [4,10,1], [4,12,3], [4,12,3], [12,4,-1], [12,4,-1], + [5,10,1], [6,7,1], [5,10,1], [6,7,1], [7,10,1], [6,7,1], [7,12,3], [6,9,3], + [7,10,1], [4,9,1], [6,11,3], [7,10,1], [4,10,1], [11,7,1], [7,7,1], [6,7,1], + [7,9,3], [6,9,3], [6,7,1], [6,7,1], [4,9,1], [7,7,1], [6,7,1], [9,7,1], + [7,7,1], [6,9,3], [6,7,1], [4,7,1], [6,9,3], [8,9,3], [8,3,-6], [8,2,-6] + ], + cmsy10: [ + [9,2,-2], [3,2,-2], [8,6,0], [6,6,0], [9,8,1], [6,6,0], [9,8,0], [9,8,2], + [9,8,1], [9,8,1], [9,8,1], [9,8,1], [9,8,1], [12,12,3], [6,6,0], [6,6,0], + [9,6,0], [9,6,0], [9,10,2], [9,10,2], [9,10,2], [9,10,2], [9,10,2], [9,10,2], + [9,4,-1], [9,6,0], [9,8,1], [9,8,1], [12,8,1], [12,8,1], [9,8,1], [9,8,1], + [12,6,0], [12,6,0], [6,12,3], [6,12,3], [12,6,0], [12,12,3], [12,12,3], [9,6,0], + [12,8,1], [12,8,1], [7,12,3], [7,12,3], [12,8,1], [12,12,3], [12,12,3], [9,7,1], + [4,7,0], [12,7,1], [7,8,1], [7,8,1], [10,9,0], [10,9,3], [8,12,3], [2,6,0], + [7,10,1], [6,9,0], [8,4,-1], [6,11,1], [9,10,1], [9,10,1], [9,8,0], [9,8,0], + [7,9,0], [10,10,1], [8,10,1], [7,10,1], [10,9,0], [7,10,1], [10,10,1], [8,11,2], + [10,10,1], [9,9,0], [11,11,2], [9,10,1], [8,10,1], [14,10,1], [13,11,1], [10,10,1], + [9,10,1], [10,11,2], [11,10,1], [8,10,1], [10,9,0], [10,10,1], [8,10,1], [13,10,1], + [10,9,0], [9,11,2], [10,9,0], [8,9,1], [8,9,1], [8,9,1], [8,9,1], [8,9,1], + [7,9,0], [7,9,0], [6,12,3], [4,12,3], [6,12,3], [4,12,3], [6,12,3], [6,12,3], + [4,12,3], [4,12,3], [2,12,3], [5,12,3], [6,14,4], [7,14,4], [6,12,3], [3,8,1], + [11,13,12], [9,9,0], [10,10,1], [6,12,3], [8,8,0], [8,8,0], [9,10,2], [9,10,2], + [5,12,3], [5,12,3], [5,12,3], [7,12,3], [9,11,2], [9,11,2], [9,10,1], [9,11,2] + ], + cmex10: [ + [5,15,14], [4,15,14], [5,15,14], [3,15,14], [6,15,14], [4,15,14], [6,15,14], [4,15,14], + [6,15,14], [6,15,14], [5,15,14], [5,15,14], [3,9,8], [5,9,8], [7,15,14], [7,15,14], + [7,23,22], [5,23,22], [9,30,29], [7,30,29], [7,30,29], [4,30,29], [7,30,29], [4,30,29], + [7,30,29], [4,30,29], [8,30,29], [8,30,29], [8,30,29], [8,30,29], [12,30,29], [12,30,29], + [10,37,36], [7,37,36], [7,37,36], [4,37,36], [8,37,36], [5,37,36], [8,37,36], [5,37,36], + [8,37,36], [8,37,36], [9,37,36], [8,37,36], [15,37,36], [15,37,36], [10,23,22], [10,23,22], + [11,23,22], [7,23,22], [8,23,22], [5,23,22], [8,23,22], [5,23,22], [5,9,8], [5,9,8], + [9,12,11], [7,12,11], [9,12,11], [7,12,11], [7,23,22], [9,23,22], [7,5,4], [5,9,8], + [11,23,22], [7,23,22], [5,9,8], [7,9,8], [7,23,22], [6,23,22], [10,13,12], [13,18,17], + [8,15,14], [12,28,27], [13,13,12], [18,18,17], [13,13,12], [18,18,17], [13,13,12], [18,18,17], + [12,13,12], [11,13,12], [8,15,14], [10,13,12], [10,13,12], [10,13,12], [10,13,12], [10,13,12], + [17,18,17], [15,18,17], [12,28,27], [13,18,17], [13,18,17], [13,18,17], [13,18,17], [13,18,17], + [11,13,12], [15,18,17], [8,3,-6], [14,4,-6], [19,4,-6], [7,2,-7], [12,2,-7], [18,2,-7], + [6,23,22], [3,23,22], [7,23,22], [4,23,22], [7,23,22], [4,23,22], [7,23,22], [7,23,22], + [13,15,14], [13,23,22], [13,30,29], [13,37,36], [9,23,22], [9,9,8], [13,8,7], [7,9,8], + [7,9,8], [7,9,8], [7,5,3], [7,5,3], [7,5,0], [7,5,0], [9,9,8], [9,9,8] + ], + cmbx10: [ + [8,9,0], [11,9,0], [10,10,1], [10,9,0], [9,9,0], [11,9,0], [10,9,0], [10,9,0], + [10,9,0], [10,9,0], [10,9,0], [9,9,0], [8,9,0], [8,9,0], [12,9,0], [12,9,0], + [4,6,0], [5,9,3], [5,3,-6], [6,3,-6], [6,2,-6], [6,3,-6], [6,2,-6], [7,3,-6], + [6,4,3], [7,10,1], [10,7,1], [11,7,1], [7,9,2], [13,9,0], [14,10,1], [10,10,1], + [4,2,-3], [4,9,0], [6,5,-4], [11,12,3], [7,10,1], [11,10,1], [11,10,1], [4,5,-4], + [5,12,3], [5,12,3], [6,6,-3], [10,10,2], [3,5,3], [4,2,-2], [3,2,0], [7,12,3], + [7,9,1], [6,8,0], [7,8,0], [7,9,1], [7,8,0], [7,9,1], [7,9,1], [7,10,1], + [7,9,1], [7,9,1], [3,6,0], [3,9,3], [4,9,3], [10,4,-1], [6,9,3], [6,9,0], + [10,10,1], [10,9,0], [10,9,0], [10,10,1], [10,9,0], [9,9,0], [9,9,0], [11,10,1], + [11,9,0], [5,9,0], [7,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [10,10,1], + [9,9,0], [10,12,3], [11,10,1], [7,10,1], [10,9,0], [11,10,1], [11,10,1], [14,10,1], + [11,9,0], [11,9,0], [8,9,0], [4,12,3], [7,5,-4], [3,12,3], [6,3,-6], [3,3,-6], + [3,5,-4], [7,7,1], [8,10,1], [6,7,1], [8,10,1], [6,7,1], [6,9,0], [7,9,3], + [8,9,0], [4,9,0], [5,12,3], [8,9,0], [4,9,0], [12,6,0], [8,6,0], [7,7,1], + [8,9,3], [8,9,3], [6,6,0], [5,7,1], [5,9,1], [8,7,1], [7,7,1], [10,7,1], + [8,6,0], [7,9,3], [6,6,0], [7,1,-3], [14,1,-3], [6,3,-6], [6,2,-7], [6,3,-6] + ], + cmti10: [ + [9,9,0], [10,9,0], [10,10,1], [8,9,0], [10,9,0], [11,9,0], [10,9,0], [10,9,0], + [9,9,0], [10,9,0], [10,9,0], [11,12,3], [9,12,3], [9,12,3], [12,12,3], [13,12,3], + [4,7,1], [5,9,3], [6,3,-6], [7,3,-6], [7,2,-6], [7,3,-6], [7,2,-6], [9,3,-6], + [5,4,3], [8,12,3], [9,7,1], [9,7,1], [7,9,2], [12,9,0], [13,10,1], [10,10,1], + [5,2,-3], [5,9,0], [7,5,-4], [10,12,3], [9,10,1], [11,10,1], [10,10,1], [5,5,-4], + [7,12,3], [5,12,3], [7,6,-3], [10,8,1], [3,5,3], [5,1,-2], [3,2,0], [8,12,3], + [7,9,1], [6,8,0], [7,9,1], [7,9,1], [6,11,3], [7,9,1], [7,9,1], [8,9,1], + [7,9,1], [7,9,1], [4,6,0], [4,9,3], [4,9,3], [10,4,-1], [6,9,3], [7,9,0], + [10,10,1], [9,9,0], [9,9,0], [10,10,1], [10,9,0], [9,9,0], [9,9,0], [10,10,1], + [11,9,0], [7,9,0], [8,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [10,10,1], + [9,9,0], [10,12,3], [9,10,1], [8,10,1], [10,9,0], [11,10,1], [11,10,1], [14,10,1], + [10,9,0], [11,9,0], [9,9,0], [6,12,3], [8,5,-4], [6,12,3], [7,3,-6], [5,3,-6], + [5,5,-4], [7,7,1], [6,10,1], [6,7,1], [7,10,1], [6,7,1], [7,12,3], [6,9,3], + [7,10,1], [4,9,1], [6,11,3], [7,10,1], [4,10,1], [11,7,1], [8,7,1], [7,7,1], + [7,9,3], [6,9,3], [6,7,1], [6,7,1], [5,9,1], [7,7,1], [6,7,1], [9,7,1], + [7,7,1], [7,9,3], [6,7,1], [7,1,-3], [13,1,-3], [7,3,-6], [7,3,-6], [7,3,-6] + ] +}); + +jsMath.Img.AddFont(100,{ + cmr10: [ + [9,10,0], [11,11,0], [11,11,1], [10,11,0], [9,10,0], [11,10,0], [10,10,0], [11,10,0], + [10,10,0], [11,10,0], [10,10,0], [9,10,0], [8,10,0], [8,10,0], [12,10,0], [12,10,0], + [4,7,0], [4,10,3], [5,3,-7], [6,3,-7], [6,2,-7], [6,3,-7], [7,2,-7], [7,4,-7], + [6,4,3], [7,11,1], [10,8,1], [11,8,1], [7,10,2], [13,10,0], [14,11,1], [11,12,1], + [4,3,-3], [3,11,0], [5,5,-5], [11,13,3], [7,12,1], [11,12,1], [11,12,1], [3,5,-5], + [5,15,4], [5,15,4], [7,7,-4], [11,11,2], [3,5,3], [4,2,-2], [3,2,0], [7,15,4], + [7,11,1], [6,10,0], [7,10,0], [7,11,1], [7,10,0], [7,11,1], [7,11,1], [7,11,1], + [7,11,1], [7,11,1], [3,7,0], [3,10,3], [3,11,4], [11,5,-1], [6,10,3], [6,10,0], + [11,11,1], [11,11,0], [10,10,0], [10,11,1], [10,10,0], [10,10,0], [9,10,0], [11,11,1], + [11,10,0], [5,10,0], [7,11,1], [11,10,0], [9,10,0], [13,10,0], [11,10,0], [11,11,1], + [9,10,0], [11,13,3], [11,11,1], [7,11,1], [10,10,0], [11,11,1], [11,11,1], [15,11,1], + [11,10,0], [11,10,0], [8,10,0], [4,15,4], [7,5,-5], [3,15,4], [6,3,-7], [3,3,-7], + [3,5,-5], [7,8,1], [8,11,1], [6,8,1], [8,11,1], [6,8,1], [5,10,0], [7,10,3], + [8,10,0], [4,10,0], [4,13,3], [8,10,0], [4,10,0], [12,7,0], [8,7,0], [7,8,1], + [8,10,3], [8,10,3], [6,7,0], [6,8,1], [5,10,1], [8,8,1], [8,8,1], [10,8,1], + [8,7,0], [8,10,3], [6,7,0], [7,1,-3], [14,1,-3], [6,3,-7], [6,2,-8], [6,3,-7] + ], + cmmi10: [ + [11,10,0], [12,11,0], [11,11,1], [10,11,0], [11,10,0], [13,10,0], [12,10,0], [10,10,0], + [9,10,0], [10,10,0], [11,10,0], [9,8,1], [9,13,3], [8,11,4], [7,11,1], [6,8,1], + [7,13,3], [7,11,4], [7,11,1], [5,8,1], [8,8,1], [8,11,1], [9,11,4], [8,7,0], + [7,13,3], [8,8,1], [8,11,4], [8,8,1], [8,8,1], [8,8,1], [9,13,3], [9,10,3], + [9,13,3], [9,8,1], [6,8,1], [8,11,1], [12,8,1], [8,10,3], [6,9,2], [9,11,4], + [14,5,-3], [14,5,1], [14,5,-3], [14,5,1], [4,4,-3], [4,4,-3], [7,9,1], [7,9,1], + [7,8,1], [6,7,0], [7,7,0], [7,11,4], [7,10,3], [7,11,4], [7,11,1], [7,11,4], + [7,11,1], [7,11,4], [3,2,0], [3,5,3], [10,9,1], [7,15,4], [10,9,1], [7,7,0], + [8,12,1], [11,11,0], [11,10,0], [11,11,1], [12,10,0], [11,10,0], [11,10,0], [11,11,1], + [13,10,0], [7,10,0], [9,11,1], [13,10,0], [9,10,0], [15,10,0], [13,10,0], [11,11,1], + [11,10,0], [11,13,3], [11,11,1], [10,11,1], [10,10,0], [11,11,1], [11,11,1], [15,11,1], + [12,10,0], [11,10,0], [11,10,0], [5,12,1], [5,15,4], [5,15,4], [14,5,-1], [14,5,-1], + [6,11,1], [7,8,1], [6,11,1], [7,8,1], [8,11,1], [7,8,1], [8,13,3], [7,10,3], + [8,11,1], [5,11,1], [7,13,3], [8,11,1], [4,11,1], [12,8,1], [8,8,1], [7,8,1], + [8,10,3], [7,10,3], [7,8,1], [6,8,1], [5,10,1], [8,8,1], [7,8,1], [10,8,1], + [8,8,1], [7,10,3], [7,8,1], [5,8,1], [7,10,3], [9,11,4], [9,3,-7], [10,3,-7] + ], + cmsy10: [ + [10,1,-3], [3,3,-2], [9,7,0], [7,7,0], [11,9,1], [7,7,0], [11,10,0], [11,10,3], + [11,11,2], [11,11,2], [11,11,2], [11,11,2], [11,11,2], [14,15,4], [7,7,0], [7,7,0], + [11,7,0], [11,7,0], [10,11,2], [10,11,2], [10,11,2], [10,11,2], [10,11,2], [10,11,2], + [11,5,-1], [11,7,0], [10,9,1], [10,9,1], [14,9,1], [14,9,1], [10,9,1], [10,9,1], + [14,5,-1], [14,5,-1], [6,13,3], [6,13,3], [14,5,-1], [14,13,3], [14,13,3], [11,7,0], + [14,9,1], [14,9,1], [9,13,3], [9,13,3], [14,9,1], [14,13,3], [14,13,3], [11,8,1], + [4,8,0], [14,8,1], [9,9,1], [9,9,1], [12,11,0], [12,11,4], [9,15,4], [2,7,0], + [8,11,1], [7,10,0], [9,4,-1], [7,13,2], [10,12,1], [10,11,1], [11,10,0], [11,10,0], + [8,10,0], [12,12,1], [10,11,1], [8,11,1], [11,10,0], [8,11,1], [12,11,1], [9,12,2], + [12,11,1], [10,10,0], [12,12,2], [11,11,1], [10,11,1], [16,11,1], [15,12,1], [11,11,1], + [11,11,1], [12,12,2], [12,11,1], [9,11,1], [12,11,0], [11,11,1], [10,11,1], [15,11,1], + [12,10,0], [11,12,2], [11,10,0], [9,10,1], [9,10,1], [9,10,1], [9,10,1], [9,10,1], + [8,10,0], [8,10,0], [6,15,4], [4,15,4], [6,15,4], [4,15,4], [6,15,4], [6,15,4], + [5,15,4], [4,15,4], [3,15,4], [6,15,4], [6,15,4], [9,15,4], [7,15,4], [4,11,2], + [12,15,14], [10,10,0], [11,11,1], [7,15,4], [9,9,0], [9,9,0], [10,11,2], [10,11,2], + [6,13,3], [6,14,4], [6,13,3], [9,13,3], [11,13,2], [11,14,3], [11,12,1], [11,13,2] + ], + cmex10: [ + [6,18,17], [5,18,17], [6,18,17], [3,18,17], [7,18,17], [4,18,17], [7,18,17], [4,18,17], + [7,18,17], [7,18,17], [6,18,17], [6,18,17], [3,10,9], [6,10,9], [8,18,17], [8,18,17], + [8,26,25], [6,26,25], [10,35,34], [8,35,34], [8,35,34], [4,35,34], [8,35,34], [5,35,34], + [8,35,34], [5,35,34], [9,35,34], [9,35,34], [10,35,34], [9,35,34], [14,35,34], [14,35,34], + [11,43,42], [8,43,42], [8,43,42], [5,43,42], [9,43,42], [6,43,42], [9,43,42], [6,43,42], + [10,43,42], [10,43,42], [10,43,42], [10,43,42], [18,43,42], [18,43,42], [11,26,25], [11,26,25], + [12,26,25], [9,26,25], [10,26,25], [5,26,25], [10,26,25], [5,26,25], [6,10,9], [5,10,9], + [11,14,13], [8,14,13], [11,14,13], [8,14,13], [8,27,26], [11,27,26], [8,6,5], [5,10,9], + [12,26,25], [9,26,25], [6,10,9], [9,10,9], [8,26,25], [7,26,25], [11,15,14], [15,21,20], + [9,17,16], [14,33,32], [15,15,14], [21,21,20], [15,15,14], [21,21,20], [15,15,14], [21,21,20], + [14,15,14], [13,15,14], [9,17,16], [11,15,14], [11,15,14], [11,15,14], [11,15,14], [11,15,14], + [20,21,20], [18,21,20], [14,33,32], [15,21,20], [15,21,20], [15,21,20], [15,21,20], [15,21,20], + [13,15,14], [18,21,20], [9,4,-7], [16,3,-8], [22,3,-8], [8,3,-8], [14,3,-8], [21,3,-8], + [7,26,25], [4,26,25], [8,26,25], [5,26,25], [8,26,25], [5,26,25], [8,26,25], [8,26,25], + [15,18,17], [15,26,25], [15,35,34], [15,43,42], [11,27,26], [11,10,9], [16,10,9], [8,10,9], + [8,10,9], [8,10,9], [8,5,3], [8,5,3], [8,5,0], [8,5,0], [11,10,9], [11,10,9] + ], + cmbx10: [ + [9,10,0], [13,10,0], [12,11,1], [11,10,0], [11,10,0], [13,10,0], [11,10,0], [12,10,0], + [11,10,0], [12,10,0], [11,10,0], [11,10,0], [9,10,0], [9,10,0], [13,10,0], [13,10,0], + [4,7,0], [5,10,3], [5,3,-7], [7,3,-7], [7,3,-7], [7,3,-7], [7,2,-7], [8,3,-7], + [7,4,3], [8,11,1], [12,8,1], [13,8,1], [8,10,2], [15,10,0], [16,11,1], [12,12,1], + [5,3,-3], [4,10,0], [7,6,-4], [13,13,3], [8,12,1], [13,12,1], [12,11,1], [4,6,-4], + [6,15,4], [5,15,4], [7,7,-4], [12,11,2], [4,6,3], [5,2,-2], [4,3,0], [8,15,4], + [8,11,1], [7,10,0], [8,10,0], [8,11,1], [8,10,0], [8,11,1], [8,11,1], [8,11,1], + [8,11,1], [8,11,1], [4,7,0], [4,10,3], [4,10,3], [12,5,-1], [7,10,3], [7,10,0], + [12,11,1], [12,10,0], [11,10,0], [11,11,1], [12,10,0], [11,10,0], [10,10,0], [12,11,1], + [13,10,0], [6,10,0], [8,11,1], [12,10,0], [9,10,0], [15,10,0], [13,10,0], [12,11,1], + [11,10,0], [12,13,3], [13,11,1], [9,11,1], [11,10,0], [12,11,1], [12,11,1], [17,11,1], + [12,10,0], [12,10,0], [10,10,0], [5,15,4], [8,6,-4], [3,15,4], [7,3,-7], [4,3,-7], + [4,6,-4], [8,8,1], [9,11,1], [7,8,1], [9,11,1], [7,8,1], [7,10,0], [8,10,3], + [9,10,0], [4,10,0], [5,13,3], [9,10,0], [5,10,0], [14,7,0], [9,7,0], [8,8,1], + [9,10,3], [9,10,3], [7,7,0], [6,8,1], [6,10,1], [9,8,1], [9,8,1], [12,8,1], + [9,7,0], [9,10,3], [7,7,0], [9,2,-3], [17,2,-3], [7,3,-7], [7,2,-8], [7,3,-7] + ], + cmti10: [ + [10,10,0], [11,11,0], [12,11,1], [9,11,0], [11,10,0], [12,10,0], [11,10,0], [12,10,0], + [11,10,0], [12,10,0], [11,10,0], [12,13,3], [10,13,3], [10,13,3], [14,13,3], [15,13,3], + [5,8,1], [6,10,3], [7,3,-7], [8,3,-7], [8,2,-7], [8,3,-7], [8,2,-7], [10,4,-7], + [5,4,3], [10,13,3], [11,8,1], [11,8,1], [8,10,2], [14,10,0], [15,11,1], [12,12,1], + [5,3,-3], [6,11,0], [8,5,-5], [12,13,3], [10,11,1], [12,12,1], [12,12,1], [6,5,-5], + [8,15,4], [6,15,4], [9,7,-4], [11,9,1], [4,5,3], [5,2,-2], [4,2,0], [9,15,4], + [8,11,1], [7,10,0], [8,11,1], [8,11,1], [7,13,3], [8,11,1], [8,11,1], [9,11,1], + [8,11,1], [8,11,1], [5,7,0], [5,10,3], [5,11,4], [11,5,-1], [7,11,4], [8,11,0], + [12,11,1], [10,11,0], [11,10,0], [12,11,1], [11,10,0], [11,10,0], [11,10,0], [12,11,1], + [12,10,0], [8,10,0], [9,11,1], [13,10,0], [9,10,0], [15,10,0], [12,10,0], [12,11,1], + [11,10,0], [12,13,3], [11,11,1], [9,11,1], [12,10,0], [12,11,1], [13,11,1], [16,11,1], + [12,10,0], [13,10,0], [10,10,0], [7,15,4], [9,5,-5], [7,15,4], [8,3,-7], [6,3,-7], + [6,5,-5], [8,8,1], [7,11,1], [7,8,1], [8,11,1], [7,8,1], [8,13,3], [7,10,3], + [8,11,1], [5,11,1], [6,13,3], [8,11,1], [5,11,1], [12,8,1], [9,8,1], [8,8,1], + [8,10,3], [7,10,3], [7,8,1], [6,8,1], [6,10,1], [8,8,1], [7,8,1], [10,8,1], + [8,8,1], [8,10,3], [7,8,1], [8,1,-3], [15,1,-3], [9,3,-7], [9,3,-7], [8,3,-7] + ] +}); + +jsMath.Img.AddFont(120,{ + cmr10: [ + [10,12,0], [14,13,0], [13,13,1], [12,13,0], [11,12,0], [13,12,0], [12,12,0], [13,12,0], + [12,12,0], [13,12,0], [12,12,0], [11,12,0], [9,12,0], [9,12,0], [14,12,0], [14,12,0], + [5,8,0], [5,12,4], [5,4,-8], [7,4,-8], [7,3,-8], [7,4,-8], [8,2,-9], [8,4,-9], + [7,5,4], [8,13,1], [12,9,1], [13,9,1], [8,12,2], [15,12,0], [17,13,1], [13,14,1], + [5,3,-4], [4,13,0], [6,6,-6], [14,16,4], [8,14,1], [14,14,1], [13,14,1], [4,6,-6], + [6,18,5], [5,18,5], [8,8,-5], [13,12,2], [4,6,4], [5,2,-3], [4,2,0], [8,18,5], + [8,13,1], [8,12,0], [8,12,0], [8,13,1], [8,12,0], [8,13,1], [8,13,1], [9,13,1], + [8,13,1], [8,13,1], [4,8,0], [4,12,4], [4,13,4], [13,5,-2], [8,13,4], [8,12,0], + [13,13,1], [13,13,0], [12,12,0], [12,13,1], [13,12,0], [12,12,0], [11,12,0], [13,13,1], + [13,12,0], [6,12,0], [8,13,1], [13,12,0], [10,12,0], [15,12,0], [13,12,0], [13,13,1], + [11,12,0], [13,16,4], [13,13,1], [9,13,1], [12,12,0], [13,13,1], [13,13,1], [18,13,1], + [13,12,0], [13,12,0], [10,12,0], [5,18,5], [8,6,-6], [3,18,5], [7,3,-9], [4,3,-9], + [4,6,-6], [9,9,1], [9,13,1], [8,9,1], [9,13,1], [8,9,1], [7,12,0], [9,12,4], + [10,12,0], [5,12,0], [5,16,4], [9,12,0], [5,12,0], [14,8,0], [10,8,0], [8,9,1], + [9,12,4], [9,12,4], [7,8,0], [7,9,1], [6,12,1], [10,9,1], [9,9,1], [12,9,1], + [9,8,0], [9,12,4], [7,8,0], [9,1,-4], [17,1,-4], [8,4,-8], [8,3,-9], [7,3,-9] + ], + cmmi10: [ + [13,12,0], [14,13,0], [13,13,1], [12,13,0], [14,12,0], [15,12,0], [14,12,0], [12,12,0], + [11,12,0], [12,12,0], [14,12,0], [11,9,1], [11,16,4], [10,12,4], [8,14,1], [7,9,1], + [9,16,4], [9,12,4], [8,13,1], [6,9,1], [10,9,1], [10,13,1], [10,12,4], [9,8,0], + [8,16,4], [10,9,1], [9,12,4], [10,9,1], [9,9,1], [9,9,1], [10,16,4], [11,12,4], + [11,16,4], [11,9,1], [8,9,1], [10,13,1], [14,9,1], [9,12,4], [7,10,2], [11,12,4], + [17,6,-3], [17,6,1], [17,6,-3], [17,6,1], [4,5,-3], [4,5,-3], [9,10,1], [9,10,1], + [8,9,1], [8,8,0], [8,8,0], [8,12,4], [8,12,4], [8,12,4], [8,13,1], [9,12,4], + [8,13,1], [8,12,4], [4,2,0], [4,6,4], [12,11,1], [8,18,5], [12,11,1], [9,9,0], + [10,14,1], [13,13,0], [13,12,0], [13,13,1], [14,12,0], [14,12,0], [13,12,0], [13,13,1], + [15,12,0], [9,12,0], [11,13,1], [16,12,0], [11,12,0], [18,12,0], [15,12,0], [13,13,1], + [13,12,0], [13,16,4], [13,13,1], [11,13,1], [12,12,0], [13,13,1], [14,13,1], [18,13,1], + [15,12,0], [13,12,0], [13,12,0], [6,14,1], [6,17,4], [6,17,4], [17,5,-2], [17,5,-2], + [7,13,1], [9,9,1], [8,13,1], [8,9,1], [9,13,1], [8,9,1], [10,16,4], [9,12,4], + [10,13,1], [5,13,1], [8,16,4], [9,13,1], [5,13,1], [15,9,1], [10,9,1], [8,9,1], + [10,12,4], [8,12,4], [8,9,1], [8,9,1], [6,12,1], [10,9,1], [8,9,1], [12,9,1], + [9,9,1], [9,12,4], [8,9,1], [5,9,1], [8,12,4], [11,12,4], [11,5,-8], [12,3,-9] + ], + cmsy10: [ + [12,2,-3], [4,3,-3], [11,9,0], [8,8,0], [13,11,1], [9,9,0], [13,12,0], [13,12,3], + [13,12,2], [13,12,2], [13,12,2], [13,12,2], [13,12,2], [17,17,4], [8,8,0], [8,8,0], + [13,9,0], [13,8,0], [12,14,3], [12,14,3], [12,14,3], [12,14,3], [12,14,3], [12,14,3], + [13,5,-2], [13,9,0], [12,11,1], [12,11,1], [17,12,2], [17,12,2], [12,11,1], [12,11,1], + [17,7,-1], [17,7,-1], [8,16,4], [8,16,4], [17,7,-1], [17,16,4], [17,16,4], [13,8,0], + [17,10,1], [17,10,1], [10,16,4], [10,16,4], [17,10,1], [17,16,4], [17,16,4], [13,9,1], + [5,10,0], [17,9,1], [10,11,1], [10,11,1], [15,13,0], [15,13,4], [11,17,4], [3,7,-1], + [10,13,1], [9,12,0], [11,6,-1], [8,16,2], [13,14,1], [12,13,1], [13,12,0], [13,12,0], + [10,12,0], [14,14,1], [12,13,1], [10,13,1], [14,12,0], [10,13,1], [15,13,1], [11,15,3], + [14,13,1], [12,12,0], [15,15,3], [13,13,1], [12,13,1], [19,13,1], [18,15,1], [14,13,1], + [13,13,1], [14,15,3], [15,13,1], [11,13,1], [14,13,0], [13,13,1], [12,13,1], [18,13,1], + [14,12,0], [13,15,3], [14,12,0], [11,12,1], [11,12,1], [11,12,1], [11,12,1], [11,12,1], + [10,12,0], [10,12,0], [8,18,5], [5,18,5], [8,18,5], [5,18,5], [8,18,5], [8,18,5], + [6,18,5], [5,18,5], [3,18,5], [7,18,5], [8,19,5], [10,19,5], [8,18,5], [4,12,2], + [15,18,17], [13,12,0], [14,13,1], [8,17,4], [11,11,0], [11,11,0], [13,14,3], [12,14,3], + [7,16,4], [7,16,4], [7,16,4], [10,16,4], [13,16,3], [13,16,3], [13,14,1], [13,16,3] + ], + cmex10: [ + [8,21,20], [6,21,20], [7,21,20], [4,21,20], [8,21,20], [5,21,20], [8,21,20], [5,21,20], + [8,21,20], [8,21,20], [7,21,20], [7,21,20], [4,12,11], [7,12,11], [9,21,20], [9,21,20], + [10,31,30], [8,31,30], [12,42,41], [9,42,41], [9,42,41], [5,42,41], [10,42,41], [6,42,41], + [10,42,41], [6,42,41], [11,42,41], [11,42,41], [12,42,41], [11,42,41], [17,42,41], [17,42,41], + [13,52,51], [10,52,51], [10,52,51], [6,52,51], [11,52,51], [7,52,51], [11,52,51], [7,52,51], + [12,52,51], [12,52,51], [12,52,51], [12,52,51], [21,52,51], [21,52,51], [13,31,30], [13,31,30], + [15,32,31], [10,32,31], [12,31,30], [6,31,30], [12,31,30], [6,31,30], [7,12,11], [6,12,11], + [13,17,16], [9,17,16], [13,17,16], [9,17,16], [9,32,31], [13,32,31], [9,7,6], [7,12,11], + [15,31,30], [10,31,30], [7,12,11], [10,12,11], [9,31,30], [9,31,30], [14,18,17], [18,25,24], + [11,20,19], [17,39,38], [18,18,17], [25,25,24], [18,18,17], [25,25,24], [18,18,17], [25,25,24], + [17,18,17], [16,18,17], [11,20,19], [14,18,17], [14,18,17], [14,18,17], [14,18,17], [14,18,17], + [24,25,24], [21,25,24], [17,39,38], [18,25,24], [18,25,24], [18,25,24], [18,25,24], [18,25,24], + [16,18,17], [21,25,24], [11,4,-9], [19,5,-9], [26,5,-9], [10,3,-10], [17,3,-10], [25,3,-10], + [8,31,30], [5,31,30], [9,31,30], [6,31,30], [9,31,30], [6,31,30], [10,31,30], [10,31,30], + [18,21,20], [18,31,30], [18,42,41], [18,52,51], [13,32,31], [13,12,11], [19,11,10], [9,12,11], + [10,12,11], [10,12,11], [9,7,4], [10,7,4], [9,6,0], [10,6,0], [13,12,11], [13,12,11] + ], + cmbx10: [ + [11,12,0], [16,12,0], [15,13,1], [13,12,0], [13,12,0], [15,12,0], [14,12,0], [15,12,0], + [14,12,0], [15,12,0], [14,12,0], [13,12,0], [11,12,0], [11,12,0], [16,12,0], [16,12,0], + [5,8,0], [6,12,4], [6,4,-8], [8,4,-8], [8,4,-8], [8,4,-8], [9,2,-9], [10,3,-9], + [8,5,4], [10,13,1], [14,9,1], [15,9,1], [10,12,2], [18,12,0], [20,13,1], [15,15,2], + [6,3,-4], [5,12,0], [8,7,-5], [16,16,4], [9,14,1], [16,14,1], [15,13,1], [5,7,-5], + [7,18,5], [6,18,5], [9,8,-5], [15,14,3], [5,7,4], [6,3,-2], [5,3,0], [9,18,5], + [9,13,1], [9,12,0], [9,12,0], [9,13,1], [10,12,0], [9,13,1], [9,13,1], [10,13,1], + [9,13,1], [9,13,1], [5,8,0], [5,12,4], [5,13,4], [15,6,-1], [9,13,4], [9,12,0], + [15,13,1], [15,12,0], [13,12,0], [14,13,1], [14,12,0], [13,12,0], [12,12,0], [15,13,1], + [15,12,0], [7,12,0], [9,13,1], [15,12,0], [11,12,0], [18,12,0], [15,12,0], [14,13,1], + [13,12,0], [14,16,4], [15,13,1], [10,13,1], [13,12,0], [15,13,1], [15,13,1], [20,13,1], + [15,12,0], [15,12,0], [11,12,0], [5,18,5], [10,7,-5], [4,18,5], [8,3,-9], [5,3,-9], + [5,7,-5], [10,9,1], [11,13,1], [9,9,1], [11,13,1], [9,9,1], [8,12,0], [10,12,4], + [11,12,0], [5,12,0], [6,16,4], [10,12,0], [5,12,0], [16,8,0], [11,8,0], [10,9,1], + [11,12,4], [11,12,4], [8,8,0], [8,9,1], [7,12,1], [11,9,1], [10,9,1], [14,9,1], + [10,8,0], [10,12,4], [8,8,0], [10,1,-4], [20,1,-4], [9,5,-8], [9,3,-9], [8,3,-9] + ], + cmti10: [ + [13,12,0], [13,13,0], [14,13,1], [11,13,0], [13,12,0], [15,12,0], [14,12,0], [15,12,0], + [13,12,0], [15,12,0], [13,12,0], [14,16,4], [12,16,4], [12,16,4], [17,16,4], [18,16,4], + [6,9,1], [7,12,4], [8,4,-8], [10,4,-8], [10,3,-8], [10,4,-8], [10,2,-9], [12,4,-9], + [6,5,4], [11,16,4], [13,9,1], [13,9,1], [10,12,2], [17,12,0], [18,13,1], [14,15,2], + [6,3,-4], [7,13,0], [9,6,-6], [15,16,4], [12,13,1], [15,14,1], [14,14,1], [7,6,-6], + [9,18,5], [7,18,5], [10,8,-5], [13,11,1], [4,6,4], [6,2,-3], [4,2,0], [11,18,5], + [10,13,1], [8,12,0], [10,13,1], [10,13,1], [9,16,4], [10,13,1], [10,13,1], [11,13,1], + [10,13,1], [10,13,1], [6,8,0], [6,12,4], [6,13,4], [14,5,-2], [8,13,4], [10,13,0], + [14,13,1], [12,13,0], [13,12,0], [14,13,1], [14,12,0], [13,12,0], [13,12,0], [14,13,1], + [15,12,0], [9,12,0], [11,13,1], [15,12,0], [11,12,0], [18,12,0], [15,12,0], [14,13,1], + [13,12,0], [14,16,4], [13,13,1], [11,13,1], [14,12,0], [15,13,1], [15,13,1], [20,13,1], + [15,12,0], [15,12,0], [12,12,0], [8,18,5], [11,6,-6], [8,18,5], [9,3,-9], [7,3,-9], + [7,6,-6], [10,9,1], [8,13,1], [8,9,1], [10,13,1], [8,9,1], [9,16,4], [9,12,4], + [10,13,1], [6,13,1], [8,16,4], [9,13,1], [6,13,1], [15,9,1], [10,9,1], [9,9,1], + [9,12,4], [9,12,4], [9,9,1], [8,9,1], [7,12,1], [10,9,1], [9,9,1], [12,9,1], + [9,9,1], [9,12,4], [8,9,1], [10,1,-4], [18,1,-4], [10,4,-8], [10,3,-9], [10,3,-9] + ] +}); + +jsMath.Img.AddFont(144,{ + cmr10: [ + [12,14,0], [16,15,0], [15,16,1], [14,15,0], [13,14,0], [15,14,0], [14,14,0], [15,15,0], + [14,14,0], [15,14,0], [14,15,0], [13,15,0], [11,15,0], [11,15,0], [17,15,0], [17,15,0], + [5,9,0], [6,14,5], [6,4,-10], [8,4,-10], [8,3,-10], [8,4,-10], [9,1,-11], [10,5,-10], + [8,6,5], [10,16,1], [14,10,1], [15,10,1], [10,14,3], [18,14,0], [20,16,1], [15,17,2], + [6,3,-5], [4,15,0], [7,7,-7], [16,18,4], [9,17,2], [16,17,2], [15,16,1], [5,7,-7], + [7,20,5], [6,20,5], [9,9,-6], [15,14,2], [5,7,4], [6,2,-3], [4,3,0], [9,20,5], + [10,15,1], [9,14,0], [9,14,0], [10,15,1], [10,14,0], [9,15,1], [10,15,1], [10,15,1], + [10,15,1], [10,15,1], [4,9,0], [4,13,4], [4,15,5], [15,6,-2], [9,15,5], [9,15,0], + [15,16,1], [15,15,0], [14,14,0], [14,16,1], [15,14,0], [14,14,0], [13,14,0], [15,16,1], + [15,14,0], [7,14,0], [10,15,1], [15,14,0], [12,14,0], [18,14,0], [15,14,0], [15,16,1], + [13,14,0], [15,19,4], [15,15,1], [10,16,1], [14,14,0], [15,15,1], [15,15,1], [21,15,1], + [15,14,0], [15,14,0], [12,14,0], [6,20,5], [10,7,-7], [4,20,5], [8,4,-10], [4,3,-11], + [4,7,-7], [10,10,1], [11,15,1], [9,10,1], [11,15,1], [9,10,1], [8,15,0], [10,15,5], + [11,14,0], [5,14,0], [6,19,5], [11,14,0], [6,14,0], [17,9,0], [11,9,0], [10,10,1], + [11,13,4], [11,13,4], [8,9,0], [8,10,1], [7,14,1], [11,10,1], [11,10,1], [15,10,1], + [11,9,0], [11,14,5], [9,9,0], [10,1,-5], [20,1,-5], [9,4,-10], [9,3,-11], [8,3,-11] + ], + cmmi10: [ + [15,14,0], [16,15,0], [15,16,1], [14,15,0], [16,14,0], [18,14,0], [17,14,0], [15,15,0], + [13,14,0], [14,14,0], [16,15,0], [13,10,1], [12,19,4], [11,14,5], [10,16,1], [8,10,1], + [10,19,5], [10,14,5], [10,16,1], [7,10,1], [11,10,1], [11,15,1], [12,14,5], [11,9,0], + [9,19,5], [12,10,1], [11,14,5], [12,10,1], [11,10,1], [11,10,1], [12,19,5], [12,14,5], + [13,19,5], [13,10,1], [9,11,1], [12,16,1], [17,10,1], [11,13,4], [9,12,3], [13,14,5], + [19,7,-4], [19,7,1], [19,7,-4], [19,7,1], [5,6,-4], [5,6,-4], [10,12,1], [10,12,1], + [10,11,1], [9,10,0], [9,10,0], [10,15,5], [10,14,4], [9,15,5], [10,15,1], [10,15,5], + [10,15,1], [10,15,5], [4,3,0], [5,7,4], [14,12,1], [9,20,5], [14,12,1], [10,10,0], + [12,16,1], [15,15,0], [16,14,0], [16,16,1], [17,14,0], [16,14,0], [16,14,0], [16,16,1], + [18,14,0], [10,14,0], [13,15,1], [18,14,0], [13,14,0], [21,14,0], [18,14,0], [15,16,1], + [16,14,0], [15,19,4], [16,15,1], [13,16,1], [15,14,0], [16,15,1], [16,15,1], [21,15,1], + [18,14,0], [16,14,0], [15,14,0], [7,16,1], [7,20,5], [7,20,5], [19,6,-2], [19,6,-2], + [8,16,1], [10,10,1], [9,15,1], [9,10,1], [11,15,1], [9,10,1], [12,20,5], [10,14,5], + [11,15,1], [6,15,1], [9,19,5], [11,15,1], [6,15,1], [17,10,1], [12,10,1], [10,10,1], + [11,13,4], [10,13,4], [9,10,1], [9,10,1], [7,14,1], [11,10,1], [10,10,1], [14,10,1], + [11,10,1], [10,14,5], [10,10,1], [6,10,1], [9,14,5], [13,15,5], [13,5,-10], [13,4,-10] + ], + cmsy10: [ + [14,2,-4], [4,4,-3], [13,10,0], [9,10,0], [15,12,1], [10,10,0], [15,14,0], [15,14,4], + [15,14,2], [15,14,2], [15,14,2], [15,14,2], [15,14,2], [19,20,5], [9,8,-1], [9,8,-1], + [15,10,0], [15,10,0], [14,16,3], [14,16,3], [14,16,3], [14,16,3], [14,16,3], [14,16,3], + [15,6,-2], [15,9,-1], [14,12,1], [14,12,1], [19,14,2], [19,14,2], [14,12,1], [14,12,1], + [19,8,-1], [19,8,-1], [9,18,4], [9,18,4], [19,8,-1], [19,18,4], [19,18,4], [15,10,0], + [19,12,1], [19,12,1], [12,18,4], [12,18,4], [20,12,1], [19,18,4], [19,18,4], [15,10,1], + [6,12,0], [19,10,1], [12,12,1], [12,12,1], [17,15,0], [17,15,5], [13,20,5], [3,8,-1], + [12,15,1], [10,14,0], [13,7,-1], [10,18,2], [15,16,1], [14,16,1], [15,14,0], [15,14,0], + [12,14,0], [16,16,1], [14,16,1], [11,16,1], [16,14,0], [12,16,1], [17,15,1], [13,18,3], + [17,15,1], [14,14,0], [17,17,3], [15,16,1], [14,16,1], [23,16,1], [21,17,1], [16,16,1], + [15,15,1], [16,18,3], [17,15,1], [13,16,1], [16,15,0], [15,15,1], [14,15,1], [21,15,1], + [17,14,0], [15,17,3], [16,14,0], [13,13,1], [13,13,1], [13,13,1], [13,13,1], [13,13,1], + [12,14,0], [12,14,0], [9,20,5], [6,20,5], [9,20,5], [6,20,5], [9,20,5], [9,20,5], + [7,20,5], [6,20,5], [4,20,5], [8,20,5], [9,22,6], [12,22,6], [9,20,5], [5,14,2], + [18,21,20], [15,14,0], [16,15,1], [10,20,5], [13,12,0], [13,12,0], [15,16,3], [14,16,3], + [8,20,5], [8,20,5], [8,20,5], [12,18,4], [15,18,3], [15,19,4], [15,16,1], [15,18,3] + ], + cmex10: [ + [9,25,24], [7,25,24], [8,25,24], [5,25,24], [9,25,24], [6,25,24], [9,25,24], [6,25,24], + [10,25,24], [10,25,24], [8,25,24], [8,25,24], [4,14,13], [9,14,13], [11,25,24], [11,25,24], + [12,37,36], [9,37,36], [14,49,48], [11,49,48], [11,49,48], [6,49,48], [12,49,48], [7,49,48], + [12,49,48], [7,49,48], [13,49,48], [13,49,48], [14,49,48], [13,49,48], [20,49,48], [20,49,48], + [16,61,60], [12,61,60], [12,61,60], [7,61,60], [13,61,60], [8,61,60], [13,61,60], [8,61,60], + [14,61,60], [14,61,60], [14,61,60], [14,61,60], [25,61,60], [25,61,60], [16,37,36], [16,37,36], + [17,37,36], [12,37,36], [14,37,36], [7,37,36], [14,37,36], [7,37,36], [8,14,13], [7,14,13], + [15,20,19], [11,20,19], [15,19,18], [11,19,18], [11,38,37], [15,38,37], [11,8,7], [8,14,13], + [17,37,36], [12,37,36], [9,14,13], [12,14,13], [11,37,36], [10,37,36], [16,21,20], [22,29,28], + [13,24,23], [19,46,45], [22,21,20], [30,29,28], [22,21,20], [30,29,28], [22,21,20], [30,29,28], + [20,21,20], [18,21,20], [13,24,23], [16,21,20], [16,21,20], [16,21,20], [16,21,20], [16,21,20], + [28,29,28], [25,29,28], [19,46,45], [22,29,28], [22,29,28], [22,29,28], [22,29,28], [22,29,28], + [18,21,20], [25,29,28], [13,4,-11], [22,5,-11], [30,5,-11], [12,3,-12], [20,3,-12], [29,3,-12], + [10,37,36], [5,37,36], [11,37,36], [7,37,36], [11,37,36], [7,37,36], [11,37,36], [11,37,36], + [21,25,24], [21,37,36], [21,49,48], [21,61,60], [15,37,36], [15,14,13], [22,13,12], [11,14,13], + [12,13,12], [12,13,12], [11,8,5], [11,8,5], [11,7,0], [11,7,0], [15,13,12], [15,13,12] + ], + cmbx10: [ + [13,14,0], [18,14,0], [17,15,1], [16,14,0], [15,14,0], [18,14,0], [16,14,0], [17,14,0], + [16,14,0], [17,14,0], [16,14,0], [15,14,0], [13,14,0], [13,14,0], [19,14,0], [19,14,0], + [6,9,0], [8,13,4], [7,5,-10], [10,5,-10], [9,4,-10], [10,4,-10], [10,2,-11], [12,5,-10], + [9,5,4], [12,15,1], [16,11,1], [18,11,1], [11,15,3], [21,14,0], [23,15,1], [17,17,2], + [7,4,-5], [6,15,0], [10,8,-6], [18,18,4], [11,17,2], [18,17,2], [17,16,1], [6,8,-6], + [8,20,5], [7,20,5], [10,9,-6], [17,16,3], [5,8,4], [7,3,-3], [5,4,0], [11,20,5], + [11,15,1], [10,14,0], [11,14,0], [11,15,1], [11,14,0], [11,15,1], [11,15,1], [12,15,1], + [11,15,1], [11,15,1], [5,9,0], [5,13,4], [6,15,5], [17,6,-2], [10,14,4], [10,14,0], + [17,15,1], [17,14,0], [16,14,0], [16,15,1], [17,14,0], [15,14,0], [14,14,0], [17,15,1], + [18,14,0], [9,14,0], [11,15,1], [18,14,0], [13,14,0], [22,14,0], [18,14,0], [16,15,1], + [15,14,0], [17,18,4], [18,15,1], [12,15,1], [16,14,0], [17,15,1], [17,15,1], [24,15,1], + [17,14,0], [17,14,0], [13,14,0], [6,20,5], [12,8,-6], [4,20,5], [9,4,-10], [5,4,-10], + [5,8,-6], [12,11,1], [12,15,1], [10,11,1], [13,15,1], [10,11,1], [9,14,0], [12,15,5], + [13,14,0], [6,14,0], [8,18,4], [12,14,0], [6,14,0], [19,9,0], [13,9,0], [11,11,1], + [12,13,4], [13,13,4], [9,9,0], [9,11,1], [8,14,1], [13,10,1], [12,10,1], [17,10,1], + [12,9,0], [12,13,4], [10,9,0], [12,1,-5], [23,1,-5], [10,5,-10], [10,3,-11], [10,3,-11] + ], + cmti10: [ + [15,14,0], [16,15,0], [16,16,1], [13,15,0], [16,14,0], [18,14,0], [16,14,0], [17,15,0], + [15,14,0], [17,14,0], [16,15,0], [17,20,5], [13,20,5], [14,20,5], [20,20,5], [20,20,5], + [7,10,1], [8,14,5], [9,4,-10], [12,4,-10], [11,3,-10], [12,4,-10], [12,1,-11], [14,5,-10], + [7,5,4], [13,20,5], [15,10,1], [15,10,1], [11,14,3], [20,14,0], [22,16,1], [17,17,2], + [7,3,-5], [8,15,0], [11,7,-7], [17,18,4], [14,16,1], [17,17,2], [17,16,1], [8,7,-7], + [11,20,5], [8,20,5], [12,9,-6], [16,14,2], [5,7,4], [7,2,-3], [5,3,0], [13,20,5], + [12,15,1], [10,14,0], [12,15,1], [12,15,1], [10,18,4], [12,15,1], [12,15,1], [13,15,1], + [12,15,1], [12,15,1], [7,9,0], [7,13,4], [7,15,5], [16,6,-2], [9,15,5], [12,15,0], + [16,16,1], [14,15,0], [15,14,0], [17,16,1], [16,14,0], [15,14,0], [15,14,0], [17,16,1], + [18,14,0], [11,14,0], [13,15,1], [18,14,0], [13,14,0], [21,14,0], [18,14,0], [16,16,1], + [15,14,0], [16,19,4], [15,15,1], [13,16,1], [17,14,0], [18,15,1], [18,15,1], [23,15,1], + [17,14,0], [18,14,0], [15,14,0], [9,20,5], [13,7,-7], [9,20,5], [11,4,-10], [8,3,-11], + [8,7,-7], [11,10,1], [10,15,1], [10,10,1], [12,15,1], [10,10,1], [11,20,5], [10,14,5], + [11,15,1], [7,15,1], [9,19,5], [11,15,1], [7,15,1], [17,10,1], [12,10,1], [11,10,1], + [11,13,4], [10,13,4], [10,10,1], [9,10,1], [8,14,1], [12,10,1], [10,10,1], [14,10,1], + [11,10,1], [11,14,5], [10,10,1], [12,1,-5], [21,1,-5], [12,4,-10], [12,3,-11], [11,3,-11] + ] +}); + +jsMath.Img.AddFont(173,{ + cmr10: [ + [14,17,0], [19,18,0], [18,18,1], [16,18,0], [15,17,0], [18,17,0], [16,17,0], [18,17,0], + [16,17,0], [18,17,0], [17,17,0], [16,17,0], [13,17,0], [13,17,0], [20,17,0], [20,17,0], + [6,11,0], [7,16,5], [8,5,-12], [10,5,-12], [10,4,-12], [10,5,-12], [11,2,-13], [12,6,-12], + [9,6,5], [12,18,1], [17,12,1], [18,12,1], [12,16,3], [21,17,0], [24,18,1], [18,20,2], + [7,4,-6], [5,18,0], [9,8,-9], [19,22,5], [11,20,2], [19,20,2], [18,19,1], [5,8,-9], + [8,24,6], [7,24,6], [11,11,-7], [18,16,2], [5,8,5], [7,2,-4], [5,3,0], [11,24,6], + [12,17,1], [11,16,0], [11,16,0], [11,17,1], [12,17,0], [11,17,1], [11,17,1], [12,18,1], + [11,17,1], [11,17,1], [5,11,0], [5,16,5], [5,18,6], [18,6,-3], [10,17,5], [10,17,0], + [18,18,1], [18,18,0], [16,17,0], [16,18,1], [17,17,0], [16,17,0], [15,17,0], [18,18,1], + [18,17,0], [8,17,0], [12,18,1], [18,17,0], [14,17,0], [22,17,0], [18,17,0], [18,18,1], + [15,17,0], [18,22,5], [18,18,1], [12,18,1], [17,17,0], [18,18,1], [18,18,1], [25,18,1], + [18,17,0], [18,17,0], [14,17,0], [7,24,6], [12,8,-9], [4,24,6], [10,5,-12], [5,4,-13], + [5,8,-9], [12,12,1], [13,18,1], [10,12,1], [13,18,1], [10,12,1], [9,17,0], [12,16,5], + [13,17,0], [6,17,0], [7,22,5], [13,17,0], [7,17,0], [20,11,0], [13,11,0], [12,12,1], + [13,16,5], [13,16,5], [9,11,0], [9,12,1], [8,16,1], [13,12,1], [13,12,1], [17,12,1], + [13,11,0], [13,16,5], [10,11,0], [12,1,-6], [24,1,-6], [11,5,-12], [10,4,-13], [10,4,-13] + ], + cmmi10: [ + [18,17,0], [19,18,0], [18,18,1], [16,18,0], [19,17,0], [22,17,0], [20,17,0], [17,17,0], + [16,17,0], [17,17,0], [19,17,0], [15,12,1], [15,22,5], [14,17,6], [11,19,1], [10,12,1], + [12,22,5], [12,17,6], [11,18,1], [8,12,1], [14,12,1], [14,18,1], [14,17,6], [13,11,0], + [11,22,5], [14,12,1], [13,17,6], [14,12,1], [13,12,1], [13,12,1], [14,22,5], [15,16,5], + [16,22,5], [15,12,1], [11,12,1], [14,18,1], [20,12,1], [13,16,5], [10,14,3], [15,17,6], + [23,8,-5], [23,8,1], [23,8,-5], [23,8,1], [6,7,-5], [6,7,-5], [12,14,1], [12,14,1], + [12,12,1], [11,11,0], [11,11,0], [11,17,6], [12,17,5], [11,17,6], [11,17,1], [12,18,6], + [11,17,1], [11,17,6], [5,3,0], [5,8,5], [17,14,1], [11,24,6], [17,14,1], [12,12,0], + [14,19,1], [18,18,0], [19,17,0], [19,18,1], [20,17,0], [19,17,0], [19,17,0], [19,18,1], + [22,17,0], [12,17,0], [16,18,1], [22,17,0], [16,17,0], [26,17,0], [22,17,0], [18,18,1], + [19,17,0], [18,22,5], [19,18,1], [16,18,1], [17,17,0], [19,18,1], [19,18,1], [26,18,1], + [21,17,0], [19,17,0], [18,17,0], [8,19,1], [8,24,6], [8,24,6], [23,6,-3], [23,7,-3], + [10,18,1], [12,12,1], [10,18,1], [11,12,1], [13,18,1], [11,12,1], [14,22,5], [12,16,5], + [14,18,1], [8,17,1], [11,21,5], [13,18,1], [7,18,1], [21,12,1], [14,12,1], [12,12,1], + [13,16,5], [11,16,5], [11,12,1], [11,12,1], [8,17,1], [14,12,1], [12,12,1], [17,12,1], + [13,12,1], [12,16,5], [12,12,1], [8,12,1], [10,16,5], [15,17,6], [15,6,-12], [16,4,-12] + ], + cmsy10: [ + [17,2,-5], [5,4,-4], [16,12,0], [11,12,0], [18,14,1], [12,12,0], [18,16,0], [18,16,4], + [18,16,2], [18,16,2], [18,16,2], [18,16,2], [18,16,2], [23,24,6], [11,10,-1], [11,10,-1], + [18,12,0], [18,12,0], [17,20,4], [17,20,4], [17,20,4], [17,20,4], [17,20,4], [17,20,4], + [18,6,-3], [18,11,-1], [17,14,1], [17,14,1], [23,16,2], [23,16,2], [17,14,1], [17,14,1], + [23,10,-1], [23,10,-1], [11,22,5], [11,22,5], [23,10,-1], [23,22,5], [23,22,5], [18,12,0], + [23,14,1], [23,14,1], [14,22,5], [14,22,5], [24,14,1], [23,22,5], [23,22,5], [18,12,1], + [7,13,-1], [23,12,1], [14,14,1], [14,14,1], [20,18,0], [20,18,6], [16,24,6], [3,10,-1], + [14,18,1], [12,17,0], [15,7,-2], [11,21,2], [18,19,1], [17,18,1], [18,16,0], [18,16,0], + [14,17,0], [20,20,2], [16,18,1], [13,18,1], [19,17,0], [14,18,1], [20,18,1], [15,20,3], + [20,19,2], [17,17,0], [21,20,3], [18,18,1], [16,18,1], [27,19,2], [25,21,2], [19,18,1], + [18,19,2], [19,20,3], [21,18,1], [16,18,1], [20,18,0], [18,18,1], [16,19,2], [25,19,2], + [20,17,0], [18,21,4], [19,17,0], [15,16,1], [15,16,1], [15,16,1], [15,16,1], [15,16,1], + [14,17,0], [14,17,0], [11,24,6], [7,24,6], [11,24,6], [7,24,6], [11,24,6], [11,24,6], + [8,24,6], [7,24,6], [4,24,6], [9,24,6], [11,26,7], [14,26,7], [11,24,6], [6,16,2], + [21,25,24], [18,17,0], [19,18,1], [12,24,6], [15,15,0], [15,15,0], [18,20,4], [17,20,4], + [9,22,5], [10,23,6], [10,22,5], [14,22,5], [18,22,4], [18,22,4], [18,19,1], [18,22,4] + ], + cmex10: [ + [10,29,28], [8,29,28], [10,29,28], [6,29,28], [11,29,28], [7,29,28], [11,29,28], [7,29,28], + [12,29,28], [12,29,28], [10,29,28], [9,29,28], [5,16,15], [10,16,15], [13,29,28], [13,29,28], + [14,44,43], [10,44,43], [17,58,57], [13,58,57], [13,58,57], [7,58,57], [14,58,57], [8,58,57], + [14,58,57], [8,58,57], [15,58,57], [15,58,57], [16,58,57], [15,58,57], [24,58,57], [24,58,57], + [19,73,72], [14,73,72], [14,73,72], [8,73,72], [16,73,72], [9,73,72], [16,73,72], [9,73,72], + [16,73,72], [16,73,72], [17,73,72], [16,73,72], [30,73,72], [30,73,72], [19,44,43], [19,44,43], + [21,44,43], [14,44,43], [16,44,43], [9,44,43], [16,44,43], [9,44,43], [10,16,15], [9,16,15], + [18,23,22], [13,23,22], [18,23,22], [13,23,22], [13,45,44], [18,45,44], [13,9,8], [9,16,15], + [21,45,43], [14,45,43], [10,16,15], [14,16,15], [13,44,43], [12,44,43], [19,25,24], [26,35,34], + [15,28,27], [23,55,54], [26,25,24], [35,35,34], [26,25,24], [35,35,34], [26,25,24], [35,35,34], + [24,25,24], [22,25,24], [15,28,27], [19,25,24], [19,25,24], [19,25,24], [19,25,24], [19,25,24], + [34,35,34], [30,35,34], [23,55,54], [26,35,34], [26,35,34], [26,35,34], [26,35,34], [26,35,34], + [22,25,24], [30,35,34], [15,5,-13], [26,6,-13], [36,6,-13], [14,4,-14], [24,4,-14], [35,4,-14], + [11,44,43], [6,44,43], [13,44,43], [8,44,43], [13,44,43], [8,44,43], [14,44,43], [14,44,43], + [25,29,28], [25,44,43], [25,58,57], [25,73,72], [18,45,44], [18,16,15], [26,15,14], [13,16,15], + [14,16,15], [14,16,15], [13,9,6], [13,9,6], [13,9,0], [13,9,0], [18,16,15], [18,16,15] + ], + cmbx10: [ + [16,17,0], [22,17,0], [20,18,1], [19,17,0], [18,17,0], [21,17,0], [19,17,0], [20,17,0], + [19,17,0], [20,17,0], [19,17,0], [18,17,0], [15,17,0], [15,17,0], [23,17,0], [23,17,0], + [7,11,0], [9,16,5], [9,5,-12], [11,5,-12], [11,4,-12], [12,5,-12], [12,2,-13], [14,5,-12], + [11,6,5], [14,18,1], [20,12,1], [21,12,1], [14,17,3], [25,17,0], [28,18,1], [20,20,2], + [8,4,-6], [7,17,0], [12,9,-8], [22,22,5], [13,20,2], [22,20,2], [21,18,1], [7,9,-8], + [10,24,6], [9,24,6], [12,11,-7], [20,20,4], [6,9,5], [8,3,-4], [6,4,0], [13,24,6], + [13,17,1], [12,16,0], [13,16,0], [13,17,1], [14,16,0], [13,17,1], [13,17,1], [14,18,1], + [13,17,1], [13,17,1], [6,11,0], [6,16,5], [7,17,5], [20,8,-2], [12,17,5], [12,17,0], + [20,18,1], [20,17,0], [19,17,0], [19,18,1], [20,17,0], [18,17,0], [17,17,0], [21,18,1], + [21,17,0], [10,17,0], [13,18,1], [21,17,0], [16,17,0], [26,17,0], [21,17,0], [20,18,1], + [18,17,0], [20,22,5], [21,18,1], [14,18,1], [19,17,0], [21,18,1], [21,18,1], [28,18,1], + [21,17,0], [21,17,0], [16,17,0], [8,24,6], [14,9,-8], [5,24,6], [11,5,-12], [6,5,-12], + [6,9,-8], [14,12,1], [15,18,1], [12,12,1], [15,18,1], [12,12,1], [11,17,0], [14,16,5], + [15,17,0], [7,17,0], [9,22,5], [15,17,0], [8,17,0], [23,11,0], [15,11,0], [14,12,1], + [15,16,5], [15,16,5], [11,11,0], [10,12,1], [10,17,1], [15,12,1], [14,12,1], [20,12,1], + [15,11,0], [14,16,5], [12,11,0], [14,2,-6], [28,2,-6], [12,6,-12], [12,3,-14], [12,4,-13] + ], + cmti10: [ + [17,17,0], [19,18,0], [19,18,1], [16,18,0], [19,17,0], [21,17,0], [19,17,0], [20,17,0], + [18,17,0], [20,17,0], [19,17,0], [20,22,5], [16,22,5], [17,22,5], [23,22,5], [24,22,5], + [8,12,1], [9,16,5], [11,5,-12], [14,5,-12], [13,4,-12], [14,5,-12], [14,2,-13], [17,6,-12], + [9,6,5], [15,22,5], [18,12,1], [18,12,1], [14,16,3], [23,17,0], [26,18,1], [20,20,2], + [9,4,-6], [9,18,0], [13,8,-9], [20,22,5], [17,18,1], [21,20,2], [20,19,1], [9,8,-9], + [13,24,6], [10,24,6], [14,11,-7], [19,16,2], [6,8,5], [9,2,-4], [6,3,0], [15,24,6], + [14,17,1], [12,16,0], [14,17,1], [14,17,1], [12,21,5], [14,17,1], [14,17,1], [15,17,1], + [14,17,1], [14,17,1], [8,11,0], [8,16,5], [8,18,6], [19,6,-3], [11,18,6], [14,18,0], + [19,18,1], [17,18,0], [18,17,0], [20,18,1], [19,17,0], [18,17,0], [18,17,0], [20,18,1], + [21,17,0], [13,17,0], [15,18,1], [21,17,0], [15,17,0], [25,17,0], [21,17,0], [19,18,1], + [18,17,0], [19,22,5], [18,18,1], [16,18,1], [20,17,0], [21,18,1], [21,18,1], [27,18,1], + [20,17,0], [21,17,0], [17,17,0], [11,24,6], [15,8,-9], [10,24,6], [13,5,-12], [9,4,-13], + [9,8,-9], [13,12,1], [12,18,1], [12,12,1], [14,18,1], [12,12,1], [12,22,5], [12,16,5], + [13,18,1], [8,17,1], [10,21,5], [13,18,1], [8,18,1], [21,12,1], [15,12,1], [13,12,1], + [13,16,5], [12,16,5], [12,12,1], [11,12,1], [9,17,1], [14,12,1], [12,12,1], [17,12,1], + [13,12,1], [13,16,5], [12,12,1], [14,1,-6], [25,1,-6], [14,5,-12], [14,4,-13], [14,4,-13] + ] +}); + +jsMath.Img.AddFont(207,{ + cmr10: [ + [17,20,0], [23,21,0], [21,22,1], [20,21,0], [19,20,0], [21,20,0], [20,20,0], [21,21,0], + [20,20,0], [21,20,0], [20,21,0], [19,21,0], [16,21,0], [16,21,0], [24,21,0], [24,21,0], + [8,13,0], [9,19,6], [9,7,-14], [12,7,-14], [12,5,-14], [12,6,-15], [13,2,-16], [14,6,-15], + [11,7,6], [14,22,1], [21,14,1], [22,14,1], [14,19,3], [26,20,0], [29,22,1], [21,24,2], + [8,4,-8], [6,21,0], [11,10,-11], [23,27,6], [13,24,2], [23,24,2], [22,22,1], [6,10,-11], + [10,30,8], [9,30,8], [13,13,-9], [21,20,3], [6,10,6], [8,3,-5], [6,4,0], [13,30,8], + [14,21,1], [13,20,0], [14,20,0], [14,21,1], [14,20,0], [14,21,1], [14,21,1], [15,21,1], + [14,21,1], [14,21,1], [6,13,0], [6,19,6], [6,22,7], [21,8,-3], [13,21,6], [13,21,0], + [21,22,1], [21,21,0], [19,20,0], [20,22,1], [21,20,0], [19,20,0], [18,20,0], [22,22,1], + [21,20,0], [10,20,0], [14,21,1], [22,20,0], [17,20,0], [26,20,0], [21,20,0], [21,22,1], + [19,20,0], [22,27,6], [22,21,1], [15,22,1], [20,20,0], [21,21,1], [22,21,1], [30,21,1], + [22,20,0], [22,20,0], [17,20,0], [8,30,8], [14,10,-11], [5,30,8], [12,6,-15], [6,4,-16], + [6,10,-11], [15,14,1], [16,22,1], [13,14,1], [16,22,1], [13,14,1], [11,21,0], [15,20,6], + [16,21,0], [8,20,0], [9,26,6], [15,21,0], [8,21,0], [24,13,0], [16,13,0], [14,14,1], + [16,19,6], [16,19,6], [11,13,0], [11,14,1], [10,19,1], [16,14,1], [15,14,1], [21,14,1], + [15,13,0], [15,19,6], [12,13,0], [15,2,-7], [29,2,-7], [13,7,-14], [13,4,-16], [12,4,-16] + ], + cmmi10: [ + [21,20,0], [23,21,0], [22,22,1], [20,21,0], [23,20,0], [26,20,0], [24,20,0], [21,21,0], + [19,20,0], [21,20,0], [23,21,0], [18,14,1], [18,27,6], [16,20,7], [14,22,1], [11,14,1], + [14,27,6], [15,20,7], [14,22,1], [10,14,1], [16,14,1], [16,22,1], [17,20,7], [16,13,0], + [13,27,6], [17,14,1], [15,20,7], [17,14,1], [15,14,1], [16,14,1], [17,27,6], [18,19,6], + [19,27,6], [18,14,1], [13,15,1], [17,22,1], [24,14,1], [15,19,6], [12,17,4], [18,20,7], + [28,9,-6], [28,9,1], [28,9,-6], [28,9,1], [7,8,-6], [7,8,-6], [14,16,1], [14,16,1], + [14,15,1], [13,14,0], [14,14,0], [14,21,7], [14,20,6], [14,21,7], [14,21,1], [15,21,7], + [14,21,1], [14,21,7], [6,4,0], [6,10,6], [21,18,2], [13,30,8], [21,18,2], [15,15,0], + [17,22,1], [21,21,0], [22,20,0], [23,22,1], [24,20,0], [23,20,0], [22,20,0], [23,22,1], + [26,20,0], [15,20,0], [19,21,1], [26,20,0], [19,20,0], [31,20,0], [26,20,0], [22,22,1], + [22,20,0], [22,27,6], [22,21,1], [19,22,1], [21,20,0], [23,21,1], [23,21,1], [31,21,1], + [25,20,0], [23,20,0], [21,20,0], [10,23,1], [9,29,7], [10,28,7], [28,8,-3], [28,9,-3], + [12,22,1], [15,14,1], [13,22,1], [13,14,1], [15,22,1], [13,14,1], [17,27,6], [14,19,6], + [16,22,1], [9,21,1], [13,26,6], [15,22,1], [8,22,1], [25,14,1], [17,14,1], [14,14,1], + [16,19,6], [14,19,6], [13,14,1], [13,14,1], [10,20,1], [16,14,1], [14,14,1], [21,14,1], + [16,14,1], [15,19,6], [14,14,1], [9,14,1], [12,19,6], [18,21,7], [19,7,-14], [19,5,-15] + ], + cmsy10: [ + [21,2,-6], [6,4,-5], [19,15,0], [13,14,0], [21,17,1], [15,15,0], [21,20,0], [21,20,5], + [21,20,3], [21,20,3], [21,20,3], [21,20,3], [21,20,3], [28,28,7], [13,12,-1], [13,12,-1], + [21,15,0], [21,13,-1], [21,23,4], [21,23,4], [21,23,4], [21,23,4], [21,23,4], [21,23,4], + [21,8,-3], [21,13,-1], [21,18,2], [21,18,2], [28,19,2], [28,19,2], [21,18,2], [21,18,2], + [28,11,-2], [28,11,-2], [13,27,6], [13,27,6], [28,11,-2], [28,27,6], [28,27,6], [21,13,-1], + [28,17,1], [28,17,1], [17,27,6], [17,27,6], [28,17,1], [28,27,6], [28,27,6], [21,14,1], + [8,16,-1], [28,14,1], [17,18,2], [17,18,2], [25,21,0], [25,22,7], [19,28,7], [4,12,-1], + [17,22,1], [15,21,0], [18,9,-2], [14,26,3], [21,22,1], [21,22,1], [21,20,0], [21,20,0], + [17,21,0], [24,23,2], [20,22,1], [16,22,1], [23,20,0], [17,22,1], [25,21,1], [18,25,4], + [24,22,2], [20,20,0], [25,24,4], [22,22,1], [20,22,1], [33,23,2], [30,25,2], [23,22,1], + [22,22,2], [23,25,4], [25,21,1], [19,22,1], [24,21,0], [21,21,1], [20,22,2], [31,22,2], + [24,20,0], [21,24,4], [23,20,0], [18,19,1], [18,19,1], [18,19,1], [18,19,1], [18,19,1], + [17,21,0], [17,21,0], [13,30,8], [8,30,8], [13,30,8], [8,30,8], [13,30,8], [13,30,8], + [10,30,8], [9,30,8], [5,30,8], [11,30,8], [13,31,8], [17,31,8], [13,30,8], [7,20,3], + [25,30,28], [21,20,0], [23,21,1], [14,28,7], [18,18,0], [18,18,0], [21,23,4], [21,23,4], + [11,27,6], [12,28,7], [12,27,6], [17,27,6], [22,26,4], [21,27,5], [21,22,1], [21,26,4] + ], + cmex10: [ + [12,36,34], [9,36,34], [12,36,34], [7,36,34], [14,36,34], [8,36,34], [14,36,34], [8,36,34], + [14,36,34], [14,36,34], [12,36,34], [11,36,34], [6,20,19], [12,20,19], [16,36,34], [16,36,34], + [17,54,52], [13,54,52], [21,71,69], [16,71,69], [15,71,69], [9,71,69], [17,71,69], [10,71,69], + [17,71,69], [10,71,69], [18,71,69], [18,71,69], [19,71,69], [19,71,69], [29,71,69], [29,71,69], + [22,88,86], [17,88,86], [17,88,86], [9,88,86], [19,88,86], [11,88,86], [19,88,86], [11,88,86], + [20,88,86], [20,88,86], [21,88,86], [20,88,86], [36,88,86], [36,88,86], [22,54,52], [22,54,52], + [25,54,52], [17,54,52], [20,54,52], [10,54,52], [20,54,52], [10,54,52], [12,19,18], [10,19,18], + [21,28,27], [15,28,27], [21,28,27], [15,28,27], [15,54,53], [21,54,53], [15,10,9], [11,19,18], + [25,54,52], [17,54,52], [12,19,18], [17,19,18], [16,54,52], [15,54,52], [23,30,29], [31,42,41], + [18,34,33], [28,66,65], [31,30,29], [43,42,41], [31,30,29], [43,42,41], [31,30,29], [43,42,41], + [29,30,29], [26,30,29], [18,34,33], [23,30,29], [23,30,29], [23,30,29], [23,30,29], [23,30,29], + [41,42,41], [36,42,41], [28,66,65], [31,42,41], [31,42,41], [31,42,41], [31,42,41], [31,42,41], + [26,30,29], [36,42,41], [18,6,-16], [31,7,-16], [43,7,-16], [17,4,-17], [29,4,-18], [42,4,-18], + [14,54,52], [8,54,52], [15,54,52], [9,54,52], [15,54,52], [9,54,52], [16,54,52], [16,54,52], + [30,36,34], [30,54,52], [30,71,69], [30,88,86], [22,54,53], [22,19,18], [32,19,17], [16,19,18], + [17,19,18], [17,19,18], [15,11,7], [15,11,7], [15,10,0], [15,10,0], [21,19,18], [21,19,18] + ], + cmbx10: [ + [19,20,0], [27,21,0], [25,22,1], [23,21,0], [21,20,0], [25,20,0], [23,20,0], [25,21,0], + [23,20,0], [25,20,0], [23,21,0], [22,21,0], [18,21,0], [18,21,0], [27,21,0], [27,21,0], + [9,14,0], [10,20,6], [10,7,-14], [14,7,-14], [13,4,-15], [14,7,-14], [15,2,-16], [17,6,-15], + [13,7,6], [17,22,1], [24,15,1], [25,15,1], [16,21,4], [30,20,0], [33,22,1], [25,24,2], + [10,4,-8], [8,21,0], [14,12,-9], [26,27,6], [15,24,2], [26,24,2], [25,22,1], [8,12,-9], + [12,30,8], [10,30,8], [15,14,-8], [25,23,4], [8,11,6], [10,3,-5], [7,5,0], [15,30,8], + [16,20,1], [15,19,0], [15,19,0], [16,20,1], [16,20,0], [15,20,1], [16,20,1], [17,21,1], + [16,20,1], [16,20,1], [7,13,0], [7,19,6], [8,21,6], [25,9,-3], [14,21,6], [14,21,0], + [25,22,1], [24,21,0], [22,20,0], [23,22,1], [24,20,0], [21,20,0], [20,20,0], [25,22,1], + [25,20,0], [12,20,0], [16,21,1], [25,20,0], [19,20,0], [31,20,0], [25,20,0], [24,22,1], + [21,20,0], [24,27,6], [25,21,1], [17,22,1], [22,20,0], [25,21,1], [25,21,1], [34,21,1], + [25,20,0], [25,20,0], [19,20,0], [9,30,8], [17,12,-9], [6,30,8], [13,6,-15], [7,6,-15], + [7,12,-9], [17,15,1], [18,22,1], [14,15,1], [18,22,1], [15,15,1], [13,21,0], [17,20,6], + [18,21,0], [9,21,0], [10,27,6], [18,21,0], [9,21,0], [28,14,0], [18,14,0], [16,15,1], + [18,20,6], [18,20,6], [13,14,0], [13,15,1], [12,20,1], [18,15,1], [17,14,1], [24,14,1], + [17,13,0], [17,19,6], [14,13,0], [17,2,-7], [34,2,-7], [15,7,-14], [14,4,-17], [14,6,-15] + ], + cmti10: [ + [21,20,0], [22,21,0], [23,22,1], [19,21,0], [22,20,0], [25,20,0], [23,20,0], [25,21,0], + [22,20,0], [24,20,0], [23,21,0], [23,27,6], [19,27,6], [20,27,6], [28,27,6], [29,27,6], + [10,14,1], [12,19,6], [13,7,-14], [16,7,-14], [16,5,-14], [17,6,-15], [17,2,-16], [20,6,-15], + [10,7,6], [18,27,6], [21,14,1], [21,14,1], [16,20,4], [28,20,0], [31,22,1], [24,24,2], + [10,4,-8], [11,21,0], [15,10,-11], [25,27,6], [21,22,1], [25,24,2], [24,22,1], [11,10,-11], + [15,30,8], [12,30,8], [17,13,-9], [22,19,2], [7,10,6], [10,3,-5], [7,4,0], [18,30,8], + [17,21,1], [14,20,0], [16,21,1], [17,21,1], [14,26,6], [17,21,1], [17,21,1], [19,21,1], + [17,21,1], [17,21,1], [9,13,0], [9,19,6], [10,22,7], [23,8,-3], [13,22,7], [16,21,0], + [23,22,1], [21,21,0], [22,20,0], [24,22,1], [23,20,0], [22,20,0], [22,20,0], [24,22,1], + [25,20,0], [15,20,0], [19,21,1], [25,20,0], [19,20,0], [30,20,0], [25,20,0], [23,22,1], + [22,20,0], [23,27,6], [21,21,1], [19,22,1], [24,20,0], [25,21,1], [26,21,1], [33,21,1], + [24,20,0], [26,20,0], [21,20,0], [13,30,8], [18,10,-11], [12,30,8], [16,6,-15], [11,4,-16], + [11,10,-11], [16,14,1], [14,22,1], [14,14,1], [17,22,1], [14,14,1], [15,27,6], [15,19,6], + [16,22,1], [10,21,1], [13,26,6], [15,22,1], [9,22,1], [25,14,1], [17,14,1], [15,14,1], + [15,19,6], [15,19,6], [15,14,1], [13,14,1], [11,20,1], [17,14,1], [15,14,1], [21,14,1], + [16,14,1], [15,19,6], [14,14,1], [16,2,-7], [31,2,-7], [17,7,-14], [17,4,-16], [16,4,-16] + ] +}); + +jsMath.Img.AddFont(249,{ + cmr10: [ + [20,24,0], [27,25,0], [25,25,1], [23,25,0], [22,24,0], [25,24,0], [23,24,0], [25,24,0], + [23,24,0], [25,24,0], [24,24,0], [22,24,0], [18,24,0], [18,24,0], [28,24,0], [28,24,0], + [9,16,0], [10,23,7], [10,7,-17], [14,7,-17], [13,5,-17], [14,7,-17], [15,2,-19], [16,7,-18], + [13,8,7], [17,25,1], [24,17,1], [26,17,1], [16,23,4], [30,24,0], [34,25,1], [25,28,2], + [9,5,-9], [7,25,0], [12,11,-13], [27,31,7], [16,28,2], [27,28,2], [25,26,1], [7,11,-13], + [12,35,9], [10,35,9], [15,16,-10], [25,23,3], [7,11,7], [10,3,-6], [7,4,0], [16,35,9], + [16,24,1], [15,23,0], [16,23,0], [16,24,1], [17,24,0], [16,24,1], [16,24,1], [17,24,1], + [16,24,1], [16,24,1], [7,15,0], [7,22,7], [7,25,8], [25,9,-4], [15,24,7], [15,24,0], + [25,25,1], [25,25,0], [23,24,0], [23,25,1], [25,24,0], [23,24,0], [21,24,0], [25,25,1], + [25,24,0], [12,24,0], [16,25,1], [26,24,0], [20,24,0], [30,24,0], [25,24,0], [25,25,1], + [22,24,0], [25,31,7], [25,25,1], [17,25,1], [24,24,0], [25,25,1], [25,25,1], [35,25,1], + [25,24,0], [26,24,0], [20,24,0], [9,35,9], [16,11,-13], [6,35,9], [14,6,-18], [7,4,-19], + [7,11,-13], [17,17,1], [18,25,1], [15,17,1], [18,25,1], [15,17,1], [13,24,0], [17,23,7], + [19,24,0], [9,23,0], [10,30,7], [18,24,0], [9,24,0], [28,16,0], [19,16,0], [17,17,1], + [18,23,7], [18,23,7], [13,16,0], [13,17,1], [12,22,1], [19,17,1], [18,16,1], [24,16,1], + [18,15,0], [18,22,7], [14,15,0], [17,2,-8], [34,2,-8], [15,7,-17], [15,4,-19], [14,4,-19] + ], + cmmi10: [ + [25,24,0], [27,25,0], [26,25,1], [23,25,0], [27,24,0], [30,24,0], [28,24,0], [24,24,0], + [22,24,0], [24,24,0], [27,24,0], [21,17,1], [21,31,7], [19,24,8], [16,26,1], [13,16,1], + [17,31,7], [17,24,8], [16,25,1], [12,17,1], [19,17,1], [19,25,1], [20,24,8], [18,16,0], + [16,31,7], [20,16,1], [18,24,8], [20,16,1], [18,16,1], [18,17,1], [20,31,7], [21,23,7], + [22,31,7], [21,17,1], [15,17,1], [20,25,1], [28,16,1], [18,23,7], [14,20,4], [22,24,8], + [33,11,-7], [33,11,1], [33,11,-7], [33,11,1], [8,9,-7], [8,9,-7], [17,19,1], [17,19,1], + [16,17,1], [15,16,0], [16,16,0], [16,24,8], [17,23,7], [16,24,8], [16,24,1], [17,24,8], + [16,24,1], [16,24,8], [7,4,0], [7,11,7], [24,21,2], [16,35,9], [24,21,2], [17,17,0], + [20,26,1], [25,25,0], [26,24,0], [26,25,1], [28,24,0], [27,24,0], [26,24,0], [26,25,1], + [30,24,0], [17,24,0], [22,25,1], [31,24,0], [22,24,0], [36,24,0], [30,24,0], [26,25,1], + [26,24,0], [26,31,7], [26,25,1], [22,25,1], [24,24,0], [26,25,1], [27,25,1], [36,25,1], + [29,24,0], [26,24,0], [25,24,0], [12,27,1], [11,33,8], [12,33,8], [33,9,-4], [33,9,-4], + [14,25,1], [17,17,1], [15,25,1], [15,17,1], [18,25,1], [15,17,1], [19,31,7], [17,23,7], + [19,25,1], [10,24,1], [15,30,7], [18,25,1], [9,25,1], [29,17,1], [20,17,1], [16,17,1], + [19,23,7], [16,23,7], [15,17,1], [15,17,1], [12,23,1], [19,17,1], [16,17,1], [24,17,1], + [18,17,1], [17,23,7], [16,17,1], [10,17,1], [14,23,7], [22,24,8], [22,8,-17], [23,5,-18] + ], + cmsy10: [ + [24,3,-7], [7,5,-6], [22,17,0], [15,15,-1], [25,21,2], [17,17,0], [25,23,0], [25,23,6], + [25,23,3], [25,23,3], [25,23,3], [25,23,3], [25,23,3], [33,33,8], [16,15,-1], [16,15,-1], + [25,17,0], [25,15,-1], [24,27,5], [24,27,5], [24,27,5], [24,27,5], [24,27,5], [24,27,5], + [25,9,-4], [25,16,-1], [24,21,2], [24,21,2], [33,23,3], [33,23,3], [24,21,2], [24,21,2], + [33,13,-2], [33,13,-2], [15,31,7], [15,31,7], [33,13,-2], [33,31,7], [33,31,7], [25,15,-1], + [33,19,1], [33,19,1], [20,31,7], [20,31,7], [33,19,1], [33,31,7], [33,31,7], [25,17,1], + [9,18,-1], [33,17,1], [20,21,2], [20,21,2], [29,25,0], [29,25,8], [22,33,8], [5,13,-2], + [19,25,1], [17,24,0], [21,10,-3], [16,30,3], [25,26,1], [24,25,1], [25,23,0], [25,23,0], + [19,24,0], [28,27,2], [23,25,1], [19,25,1], [27,24,0], [20,25,1], [29,26,2], [21,29,5], + [28,26,2], [23,24,0], [29,29,5], [25,25,1], [23,25,1], [38,26,2], [35,29,2], [27,25,1], + [25,26,2], [27,29,5], [29,25,1], [22,25,1], [28,25,0], [25,25,1], [23,26,2], [36,26,2], + [28,24,0], [25,29,5], [27,24,0], [21,22,1], [21,22,1], [21,22,1], [21,22,1], [21,22,1], + [19,24,0], [19,24,0], [15,35,9], [10,35,9], [15,35,9], [10,35,9], [15,35,9], [15,35,9], + [12,35,9], [10,35,9], [6,35,9], [13,35,9], [15,37,10], [20,37,10], [16,35,9], [8,23,3], + [29,35,33], [25,24,0], [27,26,2], [17,33,8], [21,21,0], [21,21,0], [25,27,5], [24,27,5], + [13,31,7], [14,32,8], [14,31,7], [20,31,7], [26,30,5], [25,31,6], [25,27,2], [25,30,5] + ], + cmex10: [ + [15,42,40], [11,42,40], [14,42,40], [8,42,40], [16,42,40], [10,42,40], [16,42,40], [10,42,40], + [16,42,40], [16,42,40], [14,42,40], [13,42,40], [7,23,22], [14,23,22], [18,42,40], [18,42,40], + [20,62,60], [15,62,60], [24,83,81], [18,83,81], [18,83,81], [10,83,81], [20,83,81], [12,83,81], + [20,83,81], [12,83,81], [22,83,81], [22,83,81], [23,83,81], [22,83,81], [34,83,81], [34,83,81], + [26,103,101], [19,103,101], [20,103,101], [11,103,101], [22,103,101], [13,103,101], [22,103,101], [13,103,101], + [23,103,101], [23,103,101], [24,103,101], [23,103,101], [42,103,101], [42,103,101], [26,62,60], [26,62,60], + [29,63,61], [20,63,61], [23,62,60], [12,62,60], [23,62,60], [12,62,60], [14,22,21], [12,22,21], + [25,32,31], [18,32,31], [25,32,31], [18,32,31], [18,63,62], [25,63,62], [18,12,11], [13,22,21], + [29,62,60], [20,62,60], [14,22,21], [20,22,21], [18,62,60], [17,62,60], [27,35,34], [36,49,48], + [21,39,38], [33,77,76], [36,35,34], [50,49,48], [36,35,34], [50,49,48], [36,35,34], [50,49,48], + [34,35,34], [31,35,34], [21,39,38], [27,35,34], [27,35,34], [27,35,34], [27,35,34], [27,35,34], + [48,49,48], [42,49,48], [33,77,76], [36,49,48], [36,49,48], [36,49,48], [36,49,48], [36,49,48], + [31,35,34], [42,49,48], [21,7,-19], [36,8,-19], [51,8,-19], [19,5,-20], [34,5,-21], [50,5,-21], + [16,62,60], [9,62,60], [18,62,60], [11,62,60], [18,62,60], [11,62,60], [19,62,60], [19,62,60], + [35,42,40], [35,62,60], [35,83,81], [35,103,101], [26,63,62], [26,23,22], [37,22,20], [18,22,21], + [19,22,21], [19,22,21], [17,13,8], [18,13,8], [17,12,0], [18,12,0], [25,22,21], [25,22,21] + ], + cmbx10: [ + [22,24,0], [31,24,0], [29,25,1], [27,24,0], [25,23,0], [30,24,0], [27,24,0], [29,24,0], + [27,24,0], [29,24,0], [27,24,0], [26,24,0], [21,24,0], [21,24,0], [32,24,0], [32,24,0], + [10,16,0], [12,23,7], [12,7,-17], [16,7,-17], [15,6,-17], [16,7,-17], [17,3,-18], [19,6,-18], + [15,8,7], [20,25,1], [28,17,1], [30,17,1], [19,23,4], [35,24,0], [39,25,1], [29,29,3], + [11,5,-9], [9,24,0], [16,13,-11], [31,31,7], [18,28,2], [31,28,2], [29,25,1], [9,13,-11], + [13,35,9], [12,35,9], [17,16,-10], [29,27,5], [9,13,7], [11,5,-5], [9,6,0], [18,35,9], + [18,24,1], [17,23,0], [18,23,0], [18,24,1], [19,23,0], [18,24,1], [18,24,1], [19,24,1], + [18,24,1], [18,24,1], [9,16,0], [9,23,7], [9,24,7], [29,11,-3], [17,24,7], [17,24,0], + [29,25,1], [29,24,0], [26,24,0], [27,25,1], [28,24,0], [25,24,0], [23,24,0], [29,25,1], + [30,24,0], [14,24,0], [18,25,1], [29,24,0], [22,24,0], [36,24,0], [30,24,0], [28,25,1], + [25,24,0], [28,31,7], [30,25,1], [20,25,1], [26,23,0], [29,25,1], [29,25,1], [40,25,1], + [29,24,0], [29,24,0], [22,24,0], [10,35,9], [20,13,-11], [7,35,9], [16,7,-17], [9,6,-18], + [9,13,-11], [19,17,1], [21,25,1], [17,17,1], [21,25,1], [17,17,1], [15,24,0], [19,23,7], + [21,24,0], [10,24,0], [12,31,7], [20,24,0], [10,24,0], [32,16,0], [21,16,0], [19,17,1], + [21,23,7], [21,23,7], [16,16,0], [15,17,1], [13,23,1], [21,17,1], [20,17,1], [28,17,1], + [20,16,0], [20,23,7], [16,16,0], [20,2,-8], [40,2,-8], [17,8,-17], [17,5,-19], [17,6,-18] + ], + cmti10: [ + [25,24,0], [26,25,0], [27,25,1], [22,25,0], [26,24,0], [29,24,0], [27,24,0], [29,24,0], + [25,24,0], [29,24,0], [26,24,0], [27,31,7], [22,31,7], [23,31,7], [33,31,7], [34,31,7], + [12,17,1], [13,23,7], [15,7,-17], [19,7,-17], [19,5,-17], [20,7,-17], [20,2,-19], [23,7,-18], + [12,8,7], [21,31,7], [25,17,1], [25,17,1], [19,23,4], [33,24,0], [36,25,1], [28,29,3], + [12,5,-9], [13,25,0], [18,11,-13], [29,31,7], [24,25,1], [29,28,2], [28,26,1], [13,11,-13], + [18,35,9], [13,35,9], [20,16,-10], [26,21,2], [8,11,7], [12,3,-6], [8,4,0], [21,35,9], + [19,24,1], [16,23,0], [19,24,1], [20,24,1], [17,30,7], [20,24,1], [20,24,1], [22,24,1], + [19,24,1], [19,24,1], [11,15,0], [11,22,7], [11,25,8], [27,9,-4], [16,25,8], [19,25,0], + [27,25,1], [24,25,0], [25,24,0], [28,25,1], [27,24,0], [26,24,0], [25,24,0], [28,25,1], + [29,24,0], [18,24,0], [22,25,1], [30,24,0], [22,24,0], [35,24,0], [29,24,0], [27,25,1], + [25,24,0], [27,31,7], [25,25,1], [22,25,1], [28,24,0], [29,25,1], [30,25,1], [39,25,1], + [29,24,0], [30,24,0], [24,24,0], [16,35,9], [21,11,-13], [14,35,9], [18,6,-18], [13,4,-19], + [13,11,-13], [19,17,1], [16,25,1], [16,17,1], [20,25,1], [16,17,1], [17,31,7], [17,23,7], + [19,25,1], [12,24,1], [15,30,7], [18,25,1], [11,25,1], [29,17,1], [20,17,1], [18,17,1], + [18,23,7], [17,23,7], [17,17,1], [15,17,1], [13,23,1], [20,17,1], [17,17,1], [24,17,1], + [18,17,1], [18,23,7], [16,17,1], [19,2,-8], [36,2,-8], [20,7,-17], [20,4,-19], [19,4,-19] + ] +}); + +jsMath.Img.AddFont(298,{ + cmr10: [ + [24,28,0], [33,30,0], [30,30,1], [28,30,0], [26,28,0], [30,28,0], [28,28,0], [30,29,0], + [28,28,0], [30,28,0], [28,29,0], [26,29,0], [22,29,0], [22,29,0], [33,29,0], [33,29,0], + [11,19,0], [11,28,9], [13,9,-20], [17,9,-20], [16,6,-21], [17,8,-21], [18,3,-22], [20,8,-22], + [16,10,9], [20,30,1], [29,20,1], [31,20,1], [20,27,5], [36,28,0], [41,30,1], [30,34,3], + [11,6,-11], [8,30,0], [15,13,-16], [32,37,8], [19,34,3], [32,34,3], [30,31,1], [9,13,-16], + [14,42,11], [12,42,11], [18,18,-13], [30,28,4], [9,13,8], [12,4,-7], [8,5,0], [19,42,11], + [19,29,1], [18,28,0], [19,28,0], [19,29,1], [20,28,0], [19,29,1], [19,29,1], [20,29,1], + [19,29,1], [19,29,1], [8,18,0], [8,26,8], [8,30,9], [30,11,-5], [18,30,9], [18,29,0], + [30,30,1], [30,30,0], [27,28,0], [28,30,1], [29,28,0], [27,28,0], [26,28,0], [31,30,1], + [30,28,0], [14,28,0], [20,29,1], [31,28,0], [24,28,0], [37,28,0], [30,28,0], [30,30,1], + [26,28,0], [30,37,8], [31,29,1], [21,30,1], [29,28,0], [30,29,1], [30,29,1], [42,29,1], + [30,28,0], [31,28,0], [23,28,0], [11,42,11], [20,13,-16], [7,42,11], [16,7,-22], [8,5,-23], + [8,13,-16], [21,20,1], [22,30,1], [18,20,1], [22,30,1], [18,20,1], [15,29,0], [20,28,9], + [22,29,0], [11,28,0], [11,37,9], [21,29,0], [11,29,0], [34,19,0], [22,19,0], [20,20,1], + [22,27,8], [22,27,8], [15,19,0], [15,20,1], [14,27,1], [22,20,1], [21,19,1], [29,19,1], + [22,18,0], [21,27,9], [17,18,0], [21,2,-10], [41,2,-10], [18,8,-21], [18,5,-23], [17,5,-23] + ], + cmmi10: [ + [30,28,0], [33,30,0], [31,30,1], [28,30,0], [32,28,0], [37,28,0], [34,28,0], [29,29,0], + [27,28,0], [29,28,0], [33,29,0], [25,20,1], [25,37,8], [23,28,9], [19,31,1], [16,19,1], + [20,38,9], [21,28,9], [19,30,1], [14,20,1], [23,20,1], [23,30,1], [24,28,9], [22,19,0], + [19,38,9], [24,19,1], [21,28,9], [24,19,1], [21,19,1], [22,20,1], [24,38,9], [25,28,9], + [27,38,9], [25,20,1], [18,20,1], [23,30,1], [34,19,1], [21,27,8], [17,24,5], [26,28,9], + [39,12,-9], [39,13,1], [39,12,-9], [39,13,1], [10,11,-9], [10,11,-9], [20,22,1], [20,22,1], + [19,20,1], [18,19,0], [19,19,0], [19,28,9], [20,28,8], [19,28,9], [19,29,1], [20,28,9], + [19,29,1], [19,28,9], [8,5,0], [9,13,8], [29,25,2], [19,42,11], [29,25,2], [21,20,0], + [24,31,1], [30,30,0], [31,28,0], [32,30,1], [33,28,0], [32,28,0], [31,28,0], [32,30,1], + [37,28,0], [21,28,0], [26,29,1], [37,28,0], [27,28,0], [43,28,0], [37,28,0], [31,30,1], + [31,28,0], [31,37,8], [31,29,1], [27,30,1], [29,28,0], [32,29,1], [32,29,1], [43,29,1], + [35,28,0], [32,28,0], [30,28,0], [14,32,1], [13,39,9], [14,39,9], [39,11,-5], [39,11,-5], + [17,30,1], [21,20,1], [18,30,1], [18,20,1], [22,30,1], [18,20,1], [23,38,9], [20,28,9], + [23,30,1], [13,29,1], [18,37,9], [21,30,1], [11,30,1], [35,20,1], [24,20,1], [20,20,1], + [23,27,8], [19,27,8], [18,20,1], [18,20,1], [14,27,1], [23,20,1], [20,20,1], [29,20,1], + [22,20,1], [21,28,9], [20,20,1], [13,20,1], [16,28,9], [26,28,9], [26,9,-21], [27,6,-22] + ], + cmsy10: [ + [29,3,-9], [8,5,-8], [26,21,0], [18,19,-1], [30,24,2], [21,21,0], [30,28,0], [30,28,7], + [30,28,4], [30,28,4], [30,28,4], [30,28,4], [30,28,4], [39,39,9], [19,17,-2], [19,17,-2], + [30,20,0], [30,19,-1], [29,33,6], [29,33,6], [29,33,6], [29,33,6], [29,33,6], [29,33,6], + [30,11,-5], [30,18,-2], [29,25,2], [29,25,2], [39,27,3], [39,27,3], [29,25,2], [29,25,2], + [39,16,-2], [39,16,-2], [18,37,8], [18,37,8], [39,16,-2], [39,37,8], [39,38,9], [30,19,-1], + [39,24,2], [39,24,2], [24,37,8], [24,37,8], [40,24,2], [39,37,8], [39,38,9], [30,20,1], + [11,22,-1], [39,20,1], [24,25,2], [24,25,2], [34,30,0], [34,30,9], [27,39,9], [6,16,-2], + [23,30,1], [21,29,0], [26,12,-3], [19,36,4], [30,31,1], [29,30,1], [30,28,0], [30,28,0], + [23,29,0], [33,33,3], [28,30,1], [22,30,1], [32,28,0], [24,30,1], [34,30,2], [25,34,5], + [34,30,2], [28,28,0], [35,33,5], [31,30,1], [27,30,1], [46,32,3], [43,35,3], [32,30,1], + [31,31,3], [33,35,6], [35,29,1], [27,30,1], [33,30,0], [30,30,2], [28,30,2], [43,30,2], + [34,28,0], [30,34,6], [32,28,0], [26,26,1], [26,26,1], [26,26,1], [26,26,1], [26,26,1], + [23,29,0], [23,29,0], [18,42,11], [12,42,11], [18,42,11], [12,42,11], [18,42,11], [18,42,11], + [14,42,11], [12,42,11], [7,42,11], [16,42,11], [18,44,12], [24,44,12], [19,42,11], [10,28,4], + [35,42,40], [30,28,0], [33,30,2], [20,39,9], [25,25,0], [25,25,0], [30,33,6], [29,33,6], + [16,38,9], [16,38,9], [16,38,9], [24,37,8], [31,36,6], [30,37,7], [30,32,2], [30,36,6] + ], + cmex10: [ + [17,50,48], [13,50,48], [17,50,48], [9,50,48], [19,50,48], [12,50,48], [19,50,48], [12,50,48], + [20,50,48], [20,50,48], [17,50,48], [16,50,48], [8,27,26], [17,27,26], [22,50,48], [22,50,48], + [23,75,73], [18,75,73], [29,99,97], [22,99,97], [22,99,97], [12,99,97], [24,99,97], [14,99,97], + [24,99,97], [14,99,97], [26,99,97], [26,99,97], [27,99,97], [26,99,97], [41,99,97], [41,99,97], + [32,124,122], [23,124,122], [24,124,122], [13,124,122], [26,124,122], [15,124,122], [26,124,122], [15,124,122], + [28,124,122], [28,124,122], [29,124,122], [28,124,122], [51,124,122], [51,124,122], [31,75,73], [31,75,73], + [35,75,73], [24,75,73], [28,75,73], [14,75,73], [28,75,73], [14,75,73], [17,26,25], [14,26,25], + [30,39,38], [21,39,38], [30,38,37], [21,38,37], [21,76,75], [30,76,75], [21,14,13], [15,26,25], + [35,76,73], [24,76,73], [17,27,26], [24,27,26], [22,75,73], [21,75,73], [32,42,41], [44,59,58], + [25,47,46], [39,93,92], [44,42,41], [60,59,58], [44,42,41], [60,59,58], [44,42,41], [60,59,58], + [41,42,41], [37,42,41], [25,47,46], [32,42,41], [32,42,41], [32,42,41], [32,42,41], [32,42,41], + [57,59,58], [51,59,58], [39,93,92], [44,59,58], [44,59,58], [44,59,58], [44,59,58], [44,59,58], + [37,42,41], [51,59,58], [24,8,-23], [43,9,-23], [61,9,-23], [23,6,-24], [41,6,-25], [60,6,-25], + [19,75,73], [11,75,73], [21,75,73], [13,75,73], [21,75,73], [13,75,73], [23,75,73], [23,75,73], + [42,50,48], [42,75,73], [42,99,97], [42,124,122], [31,75,74], [31,27,26], [45,26,24], [22,26,25], + [23,26,25], [23,26,25], [20,14,9], [21,14,9], [20,14,0], [21,14,0], [30,26,25], [30,26,25] + ], + cmbx10: [ + [27,28,0], [37,29,0], [34,30,1], [32,29,0], [30,28,0], [36,28,0], [32,29,0], [34,29,0], + [32,29,0], [34,29,0], [32,29,0], [31,29,0], [25,29,0], [25,29,0], [38,29,0], [38,29,0], + [12,19,0], [14,28,9], [14,9,-20], [19,9,-20], [19,6,-21], [20,9,-20], [21,3,-22], [23,8,-21], + [19,10,9], [24,30,1], [33,20,1], [36,20,1], [23,28,5], [42,29,0], [47,30,1], [34,34,3], + [14,6,-11], [11,29,0], [19,15,-14], [37,37,8], [21,34,3], [37,34,3], [35,30,1], [11,15,-14], + [16,42,11], [14,42,11], [21,19,-12], [34,32,6], [11,15,8], [14,5,-7], [10,7,0], [21,42,11], + [22,28,1], [21,27,0], [22,27,0], [22,28,1], [23,27,0], [22,28,1], [22,28,1], [23,29,1], + [22,28,1], [22,28,1], [10,19,0], [10,27,8], [11,30,9], [34,13,-4], [20,30,9], [20,29,0], + [34,30,1], [34,29,0], [31,29,0], [32,30,1], [34,29,0], [30,28,0], [28,28,0], [35,30,1], + [36,29,0], [17,29,0], [22,30,1], [35,29,0], [27,29,0], [44,29,0], [36,29,0], [33,30,1], + [30,29,0], [33,37,8], [36,30,1], [24,30,1], [32,28,0], [35,30,1], [35,30,1], [48,30,1], + [35,29,0], [35,29,0], [27,29,0], [13,42,11], [24,15,-14], [8,42,11], [19,8,-21], [10,7,-22], + [10,15,-14], [23,20,1], [25,30,1], [20,20,1], [25,30,1], [21,20,1], [18,29,0], [23,28,9], + [26,29,0], [12,29,0], [14,38,9], [25,29,0], [13,29,0], [39,19,0], [26,19,0], [23,20,1], + [25,27,8], [25,27,8], [19,19,0], [18,20,1], [16,28,1], [26,20,1], [24,20,1], [33,20,1], + [24,19,0], [24,28,9], [19,19,0], [24,2,-10], [48,2,-10], [21,9,-21], [20,5,-24], [20,7,-22] + ], + cmti10: [ + [29,28,0], [31,30,0], [33,30,1], [27,30,0], [31,28,0], [35,28,0], [33,28,0], [35,29,0], + [30,28,0], [34,28,0], [32,29,0], [34,38,9], [27,38,9], [29,38,9], [40,38,9], [41,38,9], + [14,20,1], [16,28,9], [18,9,-20], [23,9,-20], [23,6,-20], [24,8,-21], [24,3,-22], [28,8,-22], + [14,9,8], [25,38,9], [30,20,1], [30,20,1], [23,28,5], [39,28,0], [44,30,1], [34,34,3], + [15,6,-11], [16,30,0], [21,13,-16], [34,37,8], [29,30,1], [35,34,3], [33,31,1], [16,13,-16], + [22,42,11], [16,42,11], [24,18,-13], [31,26,3], [10,13,8], [14,3,-7], [10,5,0], [26,42,11], + [23,29,1], [19,28,0], [23,29,1], [24,29,1], [20,36,8], [24,29,1], [24,29,1], [26,29,1], + [23,29,1], [23,29,1], [13,18,0], [13,26,8], [14,30,9], [32,11,-5], [19,30,9], [23,30,0], + [33,30,1], [29,30,0], [31,28,0], [34,30,1], [32,28,0], [31,28,0], [31,28,0], [34,30,1], + [35,28,0], [21,28,0], [26,29,1], [36,28,0], [26,28,0], [42,28,0], [35,28,0], [33,30,1], + [30,28,0], [33,37,8], [30,29,1], [26,30,1], [34,28,0], [35,29,1], [36,29,1], [47,29,1], + [34,28,0], [36,28,0], [29,28,0], [19,42,11], [26,13,-16], [16,42,11], [22,8,-21], [15,5,-23], + [15,13,-16], [22,20,1], [19,30,1], [20,20,1], [23,30,1], [20,20,1], [21,38,9], [20,28,9], + [22,30,1], [14,28,1], [17,36,9], [21,30,1], [13,30,1], [35,20,1], [25,20,1], [21,20,1], + [21,27,8], [21,27,8], [21,20,1], [18,20,1], [16,27,1], [23,20,1], [21,20,1], [29,20,1], + [22,20,1], [22,28,9], [20,20,1], [23,2,-10], [43,2,-10], [24,9,-20], [24,5,-23], [23,5,-23] + ] +}); + +jsMath.Img.AddFont(358,{ + cmr10: [ + [29,34,0], [39,36,0], [36,37,2], [33,36,0], [31,34,0], [36,34,0], [33,34,0], [36,35,0], + [33,34,0], [36,34,0], [34,35,0], [31,35,0], [26,35,0], [26,35,0], [40,35,0], [40,35,0], + [13,22,0], [13,33,11], [15,11,-24], [20,11,-24], [19,7,-25], [20,9,-25], [22,2,-27], [24,10,-26], + [18,11,10], [24,36,1], [34,23,1], [37,23,1], [23,32,5], [43,34,0], [49,37,2], [36,40,3], + [13,7,-13], [10,36,0], [17,15,-19], [39,44,10], [22,40,3], [39,40,3], [36,38,2], [11,15,-19], + [17,50,13], [15,50,13], [22,22,-15], [36,34,5], [10,16,10], [14,3,-9], [10,6,0], [22,50,13], + [23,35,2], [21,33,0], [22,33,0], [23,35,2], [24,34,0], [22,35,2], [23,35,2], [24,36,2], + [23,35,2], [23,35,2], [10,22,0], [10,32,10], [10,36,11], [36,12,-6], [21,36,11], [21,35,0], + [36,36,1], [36,36,0], [32,34,0], [33,37,2], [35,34,0], [32,34,0], [30,34,0], [37,37,2], + [36,34,0], [17,34,0], [23,36,2], [37,34,0], [29,34,0], [44,34,0], [36,34,0], [36,37,2], + [31,34,0], [36,45,10], [36,36,2], [25,37,2], [34,34,0], [36,36,2], [36,36,2], [50,36,2], + [36,34,0], [37,34,0], [28,34,0], [13,50,13], [23,15,-19], [8,50,13], [19,8,-26], [10,6,-27], + [10,15,-19], [25,23,1], [26,35,1], [21,23,1], [26,35,1], [21,23,1], [18,35,0], [24,34,11], + [27,34,0], [13,33,0], [13,44,11], [26,34,0], [13,34,0], [40,22,0], [27,22,0], [24,23,1], + [26,32,10], [26,32,10], [18,22,0], [18,23,1], [17,32,1], [27,23,1], [25,23,1], [35,23,1], + [26,22,0], [25,33,11], [20,22,0], [25,2,-12], [49,2,-12], [21,10,-25], [21,5,-28], [20,6,-27] + ], + cmmi10: [ + [36,34,0], [39,36,0], [37,37,2], [33,36,0], [39,34,0], [44,34,0], [40,34,0], [35,35,0], + [32,34,0], [34,34,0], [39,35,0], [30,23,1], [29,45,10], [27,33,11], [23,36,1], [19,23,1], + [24,46,11], [25,33,11], [23,36,1], [16,23,1], [27,23,1], [27,35,1], [29,33,11], [26,22,0], + [22,46,11], [28,23,1], [25,33,11], [28,23,1], [26,23,1], [26,23,1], [29,45,11], [30,33,11], + [32,45,11], [30,23,1], [22,25,2], [28,36,1], [41,23,1], [25,32,10], [21,28,6], [31,33,11], + [47,15,-11], [47,15,1], [47,15,-11], [47,15,1], [11,12,-11], [11,12,-11], [24,26,1], [24,26,1], + [23,25,2], [21,23,0], [22,23,0], [23,34,11], [24,33,10], [22,34,11], [23,35,2], [24,34,11], + [23,35,2], [23,34,11], [10,6,0], [10,16,10], [34,29,2], [22,50,13], [34,29,2], [25,24,0], + [28,38,2], [36,36,0], [38,34,0], [38,37,2], [40,34,0], [38,34,0], [37,34,0], [38,37,2], + [44,34,0], [25,34,0], [32,36,2], [44,34,0], [32,34,0], [52,34,0], [44,34,0], [37,37,2], + [37,34,0], [37,45,10], [37,36,2], [32,37,2], [35,34,0], [38,36,2], [38,36,2], [52,36,2], + [42,34,0], [38,34,0], [36,34,0], [17,39,2], [16,47,11], [17,47,11], [47,13,-6], [47,13,-6], + [20,36,1], [25,23,1], [21,35,1], [22,23,1], [26,35,1], [22,23,1], [28,46,11], [24,33,11], + [27,35,1], [15,34,1], [21,44,11], [25,35,1], [13,35,1], [42,23,1], [28,23,1], [23,23,1], + [27,32,10], [23,32,10], [22,23,1], [21,23,1], [17,32,1], [27,23,1], [23,23,1], [34,23,1], + [26,23,1], [25,33,11], [23,23,1], [15,23,1], [19,33,11], [31,34,11], [31,10,-25], [32,7,-26] + ], + cmsy10: [ + [34,3,-11], [10,6,-9], [31,25,0], [22,22,-1], [36,28,2], [24,24,0], [36,33,0], [36,34,9], + [36,34,5], [36,34,5], [36,34,5], [36,34,5], [36,34,5], [47,47,11], [22,20,-2], [22,20,-2], + [36,24,0], [36,22,-1], [34,39,7], [34,39,7], [34,39,7], [34,39,7], [34,39,7], [34,39,7], + [36,12,-6], [36,22,-2], [34,29,2], [34,29,2], [47,32,4], [47,32,4], [34,29,2], [34,29,2], + [47,18,-3], [47,18,-3], [21,44,10], [21,44,10], [47,18,-3], [47,45,10], [47,44,10], [36,22,-1], + [47,28,2], [47,28,2], [29,44,10], [29,44,10], [48,28,2], [47,45,10], [47,44,10], [36,23,1], + [13,26,-2], [47,23,1], [29,29,2], [29,29,2], [41,36,0], [41,36,11], [32,47,11], [7,19,-3], + [28,36,2], [25,34,0], [30,14,-4], [23,42,4], [35,38,2], [34,36,1], [36,33,0], [36,33,0], + [28,34,0], [40,39,3], [33,37,2], [27,37,2], [38,34,0], [28,37,2], [41,36,2], [30,41,6], + [41,37,3], [34,34,0], [42,40,6], [36,37,2], [33,37,2], [55,38,3], [50,41,3], [39,37,2], + [36,37,3], [39,42,7], [42,36,2], [32,37,2], [40,36,0], [35,36,2], [33,37,3], [51,37,3], + [40,34,0], [36,41,7], [38,34,0], [30,32,2], [30,32,2], [30,32,2], [30,32,2], [30,32,2], + [28,34,0], [28,34,0], [21,50,13], [14,50,13], [21,50,13], [14,50,13], [21,50,13], [21,50,13], + [17,50,13], [14,50,13], [8,50,13], [18,50,13], [21,52,14], [29,52,14], [22,50,13], [11,34,5], + [42,50,48], [35,34,0], [39,36,2], [24,47,11], [30,30,0], [30,30,0], [35,39,7], [34,39,7], + [19,46,11], [19,46,11], [19,46,11], [29,44,10], [37,43,7], [36,44,8], [36,38,2], [36,43,7] + ], + cmex10: [ + [21,59,57], [15,59,57], [20,59,57], [11,59,57], [22,59,57], [14,59,57], [22,59,57], [14,59,57], + [23,59,57], [23,59,57], [20,59,57], [19,59,57], [10,33,31], [21,33,31], [26,59,57], [26,59,57], + [28,89,87], [21,89,87], [35,118,116], [26,118,116], [26,118,116], [14,118,116], [28,118,116], [17,118,116], + [28,118,116], [17,118,116], [31,118,116], [31,118,116], [32,118,116], [31,118,116], [49,118,116], [49,118,116], + [38,147,145], [28,147,145], [28,147,145], [16,147,145], [31,147,145], [18,147,145], [31,147,145], [18,147,145], + [33,147,145], [33,147,145], [35,148,146], [33,148,146], [60,147,145], [60,147,145], [37,89,87], [37,89,87], + [42,89,87], [29,89,87], [33,89,87], [17,89,87], [33,89,87], [17,89,87], [20,31,30], [17,31,30], + [36,46,45], [25,46,45], [36,46,45], [25,46,45], [25,90,89], [36,90,89], [25,17,16], [18,31,30], + [42,90,87], [29,90,87], [20,31,30], [29,31,30], [26,89,87], [25,89,87], [39,50,49], [52,70,69], + [30,56,55], [47,110,109], [52,50,49], [72,70,69], [52,50,49], [72,70,69], [52,50,49], [72,70,69], + [49,50,49], [44,50,49], [30,56,55], [39,50,49], [39,50,49], [39,50,49], [39,50,49], [39,50,49], + [68,70,69], [60,70,69], [47,110,109], [52,70,69], [52,70,69], [52,70,69], [52,70,69], [52,70,69], + [44,50,49], [60,70,69], [29,10,-27], [51,10,-28], [72,10,-28], [28,7,-29], [49,7,-30], [71,7,-30], + [23,89,87], [12,89,87], [25,89,87], [15,89,87], [25,89,87], [15,89,87], [27,89,87], [27,89,87], + [50,59,57], [50,89,87], [50,118,116], [50,148,146], [37,90,89], [37,32,31], [53,31,29], [26,31,30], + [28,31,30], [28,31,30], [25,17,11], [25,17,11], [25,17,0], [25,17,0], [36,31,30], [36,31,30] + ], + cmbx10: [ + [32,34,0], [45,35,0], [41,36,1], [38,35,0], [36,34,0], [43,34,0], [38,34,0], [41,35,0], + [38,34,0], [41,34,0], [39,35,0], [37,35,0], [30,35,0], [30,35,0], [46,35,0], [46,35,0], + [15,23,0], [17,33,10], [17,11,-24], [23,11,-24], [22,7,-25], [23,10,-24], [25,3,-27], [28,9,-26], + [22,11,10], [28,36,1], [40,24,1], [43,24,1], [27,34,6], [50,34,0], [56,36,1], [41,40,3], + [16,7,-13], [13,35,0], [23,18,-16], [44,44,10], [25,40,3], [44,40,3], [41,36,1], [13,18,-16], + [19,50,13], [17,50,13], [25,22,-15], [41,39,7], [13,18,10], [16,6,-8], [12,8,0], [25,50,13], + [26,34,1], [25,33,0], [26,33,0], [26,34,1], [27,33,0], [26,34,1], [26,34,1], [28,35,1], + [26,34,1], [26,34,1], [12,22,0], [12,32,10], [13,36,11], [41,15,-5], [24,35,10], [24,35,0], + [41,36,1], [41,35,0], [37,34,0], [38,36,1], [41,34,0], [36,34,0], [34,34,0], [42,36,1], + [43,34,0], [20,34,0], [26,35,1], [42,34,0], [32,34,0], [52,34,0], [43,34,0], [40,36,1], + [36,34,0], [40,45,10], [43,35,1], [29,36,1], [38,34,0], [42,35,1], [42,35,1], [58,35,1], + [41,34,0], [42,34,0], [32,34,0], [15,50,13], [28,18,-16], [10,50,13], [22,9,-25], [12,9,-26], + [12,18,-16], [28,24,1], [30,35,1], [24,24,1], [30,35,1], [25,24,1], [22,35,0], [28,33,10], + [31,34,0], [15,35,0], [17,45,10], [29,34,0], [15,34,0], [46,23,0], [31,23,0], [27,24,1], + [30,33,10], [30,33,10], [22,23,0], [21,24,1], [19,33,1], [31,24,1], [29,23,1], [40,23,1], + [29,22,0], [29,32,10], [23,22,0], [29,3,-12], [57,3,-12], [25,10,-25], [24,6,-28], [24,9,-26] + ], + cmti10: [ + [35,34,0], [37,36,0], [39,37,2], [32,36,0], [37,34,0], [42,34,0], [39,34,0], [41,35,0], + [36,34,0], [41,34,0], [38,35,0], [40,46,11], [32,46,11], [34,46,11], [47,46,11], [49,46,11], + [17,23,1], [18,33,11], [22,11,-24], [27,11,-24], [27,7,-24], [28,9,-25], [28,2,-27], [33,10,-26], + [17,11,10], [30,46,11], [36,23,1], [36,23,1], [27,33,6], [47,34,0], [52,37,2], [41,40,3], + [17,7,-13], [19,36,0], [26,15,-19], [41,44,10], [35,36,1], [42,40,3], [40,38,2], [19,15,-19], + [26,50,13], [19,50,13], [29,22,-15], [37,31,3], [11,16,10], [17,3,-9], [11,6,0], [31,50,13], + [28,35,2], [23,33,0], [27,35,2], [28,35,2], [24,43,10], [28,35,2], [28,35,2], [31,35,2], + [28,35,2], [28,35,2], [15,22,0], [15,32,10], [16,36,11], [39,12,-6], [22,36,11], [27,36,0], + [39,36,1], [34,36,0], [36,34,0], [40,37,2], [38,34,0], [37,34,0], [36,34,0], [40,37,2], + [42,34,0], [25,34,0], [31,36,2], [43,34,0], [31,34,0], [50,34,0], [42,34,0], [39,37,2], + [36,34,0], [39,45,10], [36,36,2], [31,37,2], [40,34,0], [42,36,2], [43,36,2], [56,36,2], + [41,34,0], [43,34,0], [35,34,0], [22,50,13], [30,15,-19], [19,50,13], [26,8,-26], [18,6,-27], + [18,15,-19], [27,23,1], [23,35,1], [24,23,1], [28,35,1], [23,23,1], [25,46,11], [24,33,11], + [27,35,1], [17,34,1], [20,44,11], [25,35,1], [15,35,1], [42,23,1], [29,23,1], [25,23,1], + [25,32,10], [25,32,10], [24,23,1], [21,23,1], [19,32,1], [28,23,1], [25,23,1], [35,23,1], + [26,23,1], [26,33,11], [23,23,1], [27,2,-12], [51,2,-12], [29,11,-24], [29,6,-27], [27,6,-27] + ] +}); + +jsMath.Img.AddFont(430,{ + cmr10: [ + [35,41,0], [47,43,0], [43,44,2], [39,43,0], [37,40,0], [43,41,0], [40,41,0], [43,42,0], + [40,41,0], [43,41,0], [40,42,0], [38,42,0], [32,42,0], [32,42,0], [48,42,0], [48,42,0], + [15,27,0], [16,40,13], [18,12,-30], [24,12,-30], [23,8,-30], [24,11,-30], [26,3,-32], [28,12,-31], + [22,13,12], [28,43,1], [41,28,1], [45,28,1], [28,39,7], [52,41,0], [59,44,2], [43,48,4], + [16,8,-16], [12,43,0], [21,18,-23], [46,53,12], [27,49,4], [46,49,4], [43,45,2], [13,18,-23], + [20,60,15], [18,60,15], [26,27,-18], [43,40,5], [12,19,12], [17,4,-11], [12,7,0], [27,60,15], + [28,42,2], [25,40,0], [27,40,0], [27,42,2], [28,40,0], [27,42,2], [27,42,2], [29,42,2], + [27,42,2], [27,42,2], [12,26,0], [12,38,12], [12,43,13], [43,15,-7], [25,43,13], [25,42,0], + [43,43,1], [43,43,0], [39,41,0], [40,44,2], [42,41,0], [39,41,0], [36,41,0], [44,44,2], + [43,41,0], [20,41,0], [28,43,2], [44,41,0], [35,41,0], [52,41,0], [43,41,0], [43,44,2], + [37,41,0], [43,54,12], [44,43,2], [30,44,2], [41,40,0], [43,43,2], [44,43,2], [60,43,2], + [43,41,0], [44,41,0], [34,41,0], [16,60,15], [28,18,-23], [10,60,15], [23,10,-31], [12,7,-33], + [12,18,-23], [30,28,1], [31,42,1], [25,28,1], [32,42,1], [25,28,1], [22,42,0], [29,40,13], + [32,41,0], [15,40,0], [16,53,13], [31,41,0], [16,41,0], [48,27,0], [32,27,0], [28,28,1], + [31,39,12], [32,39,12], [22,27,0], [22,28,1], [20,38,1], [32,28,1], [30,27,1], [42,27,1], + [31,26,0], [30,39,13], [24,26,0], [30,2,-15], [59,2,-15], [25,12,-30], [25,7,-33], [24,7,-33] + ], + cmmi10: [ + [43,41,0], [47,43,0], [44,44,2], [40,43,0], [46,40,0], [52,41,0], [48,41,0], [42,42,0], + [38,41,0], [41,41,0], [47,42,0], [36,28,1], [35,54,12], [33,40,13], [27,43,1], [23,27,1], + [28,55,13], [30,40,13], [27,43,1], [20,28,1], [33,28,1], [33,42,1], [34,40,13], [31,27,0], + [27,55,13], [34,27,1], [30,40,13], [34,27,1], [31,27,1], [31,28,1], [34,54,13], [36,40,13], + [38,54,13], [36,28,1], [26,29,2], [34,43,1], [49,27,1], [30,39,12], [25,34,7], [37,40,13], + [56,18,-13], [56,17,1], [56,18,-13], [56,17,1], [14,15,-13], [14,15,-13], [28,31,1], [28,31,1], + [28,29,2], [25,27,0], [27,27,0], [27,40,13], [28,40,12], [27,40,13], [27,42,2], [29,41,13], + [27,42,2], [27,40,13], [12,7,0], [12,19,12], [41,35,3], [27,60,15], [41,35,3], [30,29,0], + [34,45,2], [43,43,0], [45,41,0], [45,44,2], [48,41,0], [46,41,0], [45,41,0], [45,44,2], + [52,41,0], [30,41,0], [38,43,2], [53,41,0], [38,41,0], [62,41,0], [52,41,0], [44,44,2], + [45,41,0], [44,54,12], [45,43,2], [39,44,2], [42,40,0], [45,43,2], [46,43,2], [62,43,2], + [51,41,0], [45,41,0], [43,41,0], [20,47,2], [19,56,13], [20,56,13], [56,15,-7], [56,16,-7], + [24,43,1], [30,28,1], [25,42,1], [26,28,1], [31,42,1], [26,28,1], [33,55,13], [28,40,13], + [33,42,1], [18,40,1], [25,52,13], [30,42,1], [16,42,1], [51,28,1], [34,28,1], [28,28,1], + [31,39,12], [27,39,12], [26,28,1], [25,28,1], [20,38,1], [33,28,1], [28,28,1], [41,28,1], + [32,28,1], [29,40,13], [28,28,1], [18,28,1], [23,40,13], [37,40,13], [37,13,-30], [39,9,-31] + ], + cmsy10: [ + [41,3,-13], [12,7,-11], [38,29,0], [26,26,-2], [43,34,2], [29,29,0], [43,40,0], [43,40,10], + [43,40,5], [43,40,5], [43,40,5], [43,40,5], [43,40,5], [56,56,13], [27,24,-3], [27,24,-3], + [43,29,0], [43,26,-2], [41,47,9], [41,47,9], [41,47,9], [41,47,9], [41,47,9], [41,47,9], + [43,15,-7], [43,26,-3], [41,35,3], [41,35,3], [56,38,4], [56,38,4], [41,35,3], [41,35,3], + [56,22,-4], [56,22,-4], [26,53,12], [26,53,12], [56,22,-4], [56,54,12], [56,53,12], [43,26,-2], + [56,33,2], [56,33,2], [35,53,12], [35,53,12], [57,33,2], [56,54,12], [56,53,12], [43,28,1], + [16,31,-2], [56,28,1], [35,35,3], [35,35,3], [49,43,0], [49,43,13], [38,56,13], [8,23,-3], + [33,43,2], [30,41,0], [36,16,-5], [27,51,5], [43,45,2], [41,43,1], [43,40,0], [43,40,0], + [33,41,0], [48,46,3], [40,44,2], [32,44,2], [46,41,0], [34,44,2], [49,43,2], [36,50,8], + [49,44,3], [40,41,0], [50,49,8], [44,44,2], [39,44,2], [66,45,3], [60,49,3], [46,44,2], + [44,44,3], [47,50,8], [50,43,2], [38,44,2], [48,43,0], [42,43,2], [39,44,3], [62,44,3], + [48,41,0], [43,49,8], [46,41,0], [36,38,2], [36,38,2], [36,38,2], [36,38,2], [36,38,2], + [33,41,0], [33,41,0], [25,60,15], [16,60,15], [25,60,15], [16,60,15], [26,60,15], [26,60,15], + [20,60,15], [17,60,15], [10,60,15], [22,60,15], [26,63,17], [35,63,17], [27,60,15], [14,40,5], + [51,60,57], [43,41,0], [47,43,2], [28,56,13], [36,36,0], [36,36,0], [43,47,9], [41,47,9], + [23,55,13], [23,55,13], [23,55,13], [35,53,12], [45,51,8], [43,53,10], [43,45,2], [43,51,8] + ], + cmex10: [ + [25,72,69], [18,72,69], [24,72,69], [13,72,69], [27,72,69], [16,72,69], [27,72,69], [16,72,69], + [28,72,69], [28,72,69], [24,72,69], [22,72,69], [12,39,37], [25,39,37], [31,72,69], [31,72,69], + [34,107,104], [25,107,104], [42,143,140], [32,143,140], [31,143,140], [17,143,140], [34,143,140], [20,143,140], + [34,143,140], [20,143,140], [37,143,140], [37,143,140], [39,143,140], [37,143,140], [59,143,140], [59,143,140], + [45,178,175], [33,178,175], [34,178,175], [19,178,175], [37,178,175], [22,178,175], [37,178,175], [22,178,175], + [39,178,175], [39,178,175], [42,178,175], [40,178,175], [73,178,175], [73,178,175], [45,107,104], [45,107,104], + [50,108,105], [35,108,105], [39,107,104], [21,107,104], [39,107,104], [21,107,104], [24,37,36], [21,37,36], + [43,55,54], [30,55,54], [43,55,54], [30,55,54], [30,108,107], [43,108,107], [30,20,19], [21,37,36], + [50,107,104], [35,107,104], [24,37,36], [35,37,36], [31,107,104], [30,107,104], [46,60,59], [63,84,83], + [36,67,66], [56,133,132], [63,60,59], [86,84,83], [63,60,59], [86,84,83], [63,60,59], [86,84,83], + [59,60,59], [53,60,59], [36,67,66], [46,60,59], [46,60,59], [46,60,59], [46,60,59], [46,60,59], + [82,84,83], [73,84,83], [56,133,132], [63,84,83], [63,84,83], [63,84,83], [63,84,83], [63,84,83], + [53,60,59], [73,84,83], [35,11,-33], [61,13,-33], [87,13,-33], [33,8,-35], [59,9,-36], [86,9,-36], + [27,107,104], [15,107,104], [31,107,104], [18,107,104], [31,107,104], [18,107,104], [33,107,104], [33,107,104], + [61,72,69], [61,107,104], [61,143,140], [61,178,175], [44,109,107], [44,39,37], [64,38,35], [31,37,36], + [33,37,36], [33,37,36], [30,21,13], [29,21,13], [30,20,0], [29,20,0], [43,37,36], [43,37,36] + ], + cmbx10: [ + [38,41,0], [54,42,0], [49,43,1], [46,42,0], [43,40,0], [51,41,0], [46,41,0], [49,42,0], + [46,41,0], [49,41,0], [46,42,0], [45,42,0], [36,42,0], [36,42,0], [55,42,0], [55,42,0], + [17,27,0], [20,39,12], [20,12,-30], [27,12,-30], [27,9,-30], [28,12,-29], [30,4,-32], [33,11,-31], + [26,13,12], [34,43,1], [48,28,1], [51,28,1], [32,40,7], [60,41,0], [68,43,1], [49,49,4], + [19,8,-16], [15,42,0], [28,21,-20], [53,53,12], [31,49,4], [53,49,4], [50,43,1], [15,21,-20], + [23,60,15], [20,60,15], [30,27,-18], [49,46,8], [15,22,12], [19,6,-10], [14,10,0], [31,60,15], + [32,40,1], [30,39,0], [31,39,0], [32,40,1], [32,39,0], [31,40,1], [32,40,1], [33,41,1], + [32,40,1], [32,40,1], [14,27,0], [15,39,12], [15,43,13], [49,18,-6], [29,42,12], [29,42,0], + [49,43,1], [49,42,0], [45,41,0], [46,43,1], [49,41,0], [43,41,0], [40,41,0], [50,43,1], + [51,41,0], [24,41,0], [32,42,1], [51,41,0], [38,41,0], [63,41,0], [51,41,0], [48,43,1], + [43,41,0], [48,54,12], [51,42,1], [34,43,1], [45,40,0], [50,42,1], [50,42,1], [69,42,1], + [50,41,0], [51,41,0], [39,41,0], [18,60,15], [34,21,-20], [12,60,15], [27,10,-31], [14,10,-31], + [14,21,-20], [33,28,1], [36,42,1], [29,28,1], [36,42,1], [30,28,1], [26,42,0], [33,39,12], + [37,41,0], [17,41,0], [20,53,12], [35,41,0], [18,41,0], [56,27,0], [37,27,0], [32,28,1], + [36,39,12], [36,39,12], [27,27,0], [25,28,1], [23,39,1], [37,28,1], [35,28,1], [48,28,1], + [35,27,0], [35,39,12], [28,27,0], [34,3,-15], [68,3,-15], [29,12,-30], [29,7,-34], [28,9,-32] + ], + cmti10: [ + [42,41,0], [45,43,0], [47,44,2], [38,43,0], [45,40,0], [51,41,0], [47,41,0], [50,42,0], + [44,41,0], [49,41,0], [45,42,0], [47,55,13], [38,55,13], [40,55,13], [57,55,13], [58,55,13], + [20,28,1], [22,40,13], [26,13,-29], [33,13,-29], [32,9,-29], [34,11,-30], [34,3,-32], [40,12,-31], + [20,13,12], [37,55,13], [43,28,1], [43,28,1], [33,39,7], [57,41,0], [63,44,2], [49,48,4], + [21,8,-16], [23,43,0], [31,18,-23], [49,53,12], [42,43,1], [50,49,4], [48,45,2], [22,18,-23], + [31,60,15], [23,60,15], [35,27,-18], [45,37,4], [14,19,12], [20,4,-11], [14,7,0], [37,60,15], + [33,42,2], [28,40,0], [33,42,2], [34,42,2], [28,52,12], [34,42,2], [34,42,2], [37,42,2], + [33,42,2], [33,42,2], [18,26,0], [18,38,12], [19,43,13], [46,15,-7], [27,43,13], [33,43,0], + [47,43,1], [41,43,0], [44,41,0], [48,44,2], [46,41,0], [44,41,0], [44,41,0], [48,44,2], + [51,41,0], [30,41,0], [37,43,2], [51,41,0], [37,41,0], [60,41,0], [51,41,0], [47,44,2], + [44,41,0], [47,54,12], [43,43,2], [38,44,2], [48,40,0], [51,43,2], [52,43,2], [67,43,2], + [49,41,0], [52,41,0], [42,41,0], [27,60,15], [36,18,-23], [23,60,15], [31,10,-31], [22,7,-33], + [22,18,-23], [32,28,1], [28,42,1], [28,28,1], [34,42,1], [28,28,1], [29,55,13], [29,40,13], + [32,42,1], [20,40,1], [25,52,13], [30,42,1], [19,42,1], [50,28,1], [35,28,1], [31,28,1], + [31,39,12], [30,39,12], [29,28,1], [25,28,1], [22,38,1], [34,28,1], [30,28,1], [42,28,1], + [31,28,1], [31,40,13], [28,28,1], [33,2,-15], [62,2,-15], [34,13,-29], [34,7,-33], [33,7,-33] + ] +}); diff --git a/jsMath/uncompressed/font.js b/jsMath/uncompressed/font.js new file mode 100644 index 00000000..51f0a2fe --- /dev/null +++ b/jsMath/uncompressed/font.js @@ -0,0 +1,1677 @@ +jsMath.Img.AddFont(50,{ + cmr10: [ + [4,5,0], [6,5,0], [5,6,1], [5,5,0], [5,5,0], [5,5,0], [5,5,0], [5,5,0], + [5,5,0], [5,5,0], [5,5,0], [5,5,0], [4,5,0], [4,5,0], [6,5,0], [6,5,0], + [2,3,0], [3,5,2,1], [2,2,-3], [2,2,-3,-1], [2,2,-3,-1], [3,2,-3], [3,2,-3], [2,2,-3,-2], + [2,2,2,-1], [4,5,0], [5,4,0], [6,4,0], [4,5,1], [6,5,0], [7,6,1], [5,6,1], + [2,1,-2], [2,5,0], [3,2,-3], [6,7,2], [4,6,1], [6,7,1], [5,6,1], [2,2,-3], + [3,7,2], [2,7,2], [3,4,-2], [5,5,1], [2,2,1], [2,1,-1], [2,1,0], [3,7,2], + [4,6,1], [3,5,0], [4,5,0], [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,6,1], + [4,6,1], [4,6,1], [2,3,0], [2,4,1], [2,6,2], [5,3,0], [3,6,2], [3,5,0], + [5,5,0], [5,5,0], [5,5,0], [5,6,1], [5,5,0], [5,5,0], [5,5,0], [5,6,1], + [5,5,0], [3,5,0], [3,6,1], [5,5,0], [4,5,0], [6,5,0], [5,5,0], [5,6,1], + [5,5,0], [5,7,2], [5,6,1], [4,6,1], [5,5,0], [5,6,1], [5,5,0], [7,5,0], + [7,5,0,2], [5,5,0], [4,5,0], [2,8,2], [3,3,-2,-1], [2,8,2], [2,1,-4,-1], [2,1,-4], + [2,3,-2], [4,4,0], [4,5,0], [3,4,0], [4,5,0], [3,4,0], [3,5,0], [4,5,2], + [4,5,0], [2,5,0], [3,7,2,1], [4,5,0], [2,5,0], [6,3,0], [4,3,0], [4,4,0], + [4,5,2], [4,5,2], [3,3,0], [3,4,0], [3,5,0], [4,3,0], [4,3,0], [5,3,0], + [4,3,0], [4,5,2], [3,3,0], [4,1,-1], [7,1,-1], [2,2,-3,-1], [3,1,-4], [3,1,-4], + [3,11,20,28,37,45,54,63,71,80,88,97,105,114,122,131], + [9,17,26,34,42,51,59,67], + [141,73] + ], + cmmi10: [ + [5,5,0], [6,5,0], [6,6,1], [5,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], + [5,5,0], [5,5,0], [6,5,0], [5,3,0], [4,6,1], [4,5,2], [3,5,0], [3,3,0], + [4,7,2], [4,5,2], [4,5,0], [3,3,0], [4,3,0], [4,5,0], [4,5,2], [4,3,0], + [3,7,2], [4,3,0], [4,5,2], [4,3,0], [4,3,0], [4,3,0], [4,7,2], [4,5,2], + [5,7,2], [5,3,0], [3,5,1], [4,5,0], [6,3,0], [4,5,2], [3,4,1], [5,5,2], + [7,3,-1], [9,2,0,2], [7,3,-1], [9,2,0,2], [4,3,-1,2], [2,3,-1], [4,4,0], [4,4,0], + [4,5,1], [3,3,0], [4,4,0], [4,6,2], [4,6,2], [3,5,2], [4,6,1], [4,5,2], + [4,6,1], [4,6,2], [2,1,0], [2,2,1], [5,5,1], [3,7,2], [5,5,1], [4,4,0], + [4,6,1], [5,5,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [6,5,0], [6,6,1], + [6,5,0], [4,5,0], [5,6,1], [6,5,0], [5,5,0], [7,5,0], [8,5,0,2], [6,6,1], + [6,5,0], [6,7,2], [6,6,1], [5,6,1], [5,5,0], [6,6,1], [6,5,0], [7,5,0], + [8,5,0,2], [6,5,0], [5,5,0], [3,5,0], [3,7,2], [3,7,2], [7,2,-1], [9,2,-1,2], + [3,5,0], [4,3,0], [3,5,0], [3,3,0], [4,5,0], [3,3,0], [4,7,2], [4,5,2], + [4,5,0], [2,5,0], [3,7,2], [4,5,0], [2,5,0], [6,3,0], [4,3,0], [4,3,0], + [4,5,2], [3,5,2], [3,3,0], [3,3,0], [3,5,0], [4,3,0], [4,3,0], [5,3,0], + [4,3,0], [4,5,2], [3,3,0], [2,3,0], [3,5,2], [5,5,2], [4,2,-3,-1], [3,1,-4,-2], + [3,11,19,28,36,44,53,61,69,77,86,94,102,111,119,127], + [9,17,26,34,42,51,59,67], + [137,73] + ], + cmsy10: [ + [5,1,-1], [2,1,-1], [4,4,0,-1], [3,4,0], [5,5,1], [4,4,0], [5,5,0], [5,5,1], + [5,5,1], [5,5,1], [5,5,1], [5,5,1], [5,5,1], [7,7,2], [3,4,0], [3,4,0], + [5,4,0], [5,4,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], + [5,2,-1], [5,4,0], [5,5,1], [5,5,1], [7,5,1], [7,5,1], [5,5,1], [5,5,1], + [7,3,0], [7,3,0], [3,7,2], [3,7,2], [7,3,0], [7,7,2], [7,7,2], [5,4,0], + [7,4,0], [7,4,0], [4,7,2], [4,7,2], [7,4,0], [7,7,2], [7,7,2], [5,3,0], + [2,4,0], [7,3,0], [4,5,1], [4,5,1], [6,5,0], [6,6,2], [4,7,2,-1], [1,3,0], + [4,5,0], [4,5,0], [5,3,0], [4,7,1], [5,6,1], [5,5,0], [5,5,0], [5,5,0], + [4,5,0], [6,6,1], [5,6,1], [4,6,1], [6,5,0], [4,6,1], [6,6,1], [5,6,1], + [6,6,1], [5,5,0], [6,6,1], [5,6,1], [5,6,1], [8,6,1], [9,7,1,2], [6,6,1], + [6,6,1], [6,6,1], [6,6,1], [5,6,1], [6,5,0], [6,6,1,1], [5,6,1], [8,6,1], + [6,5,0], [5,6,1], [6,5,0], [5,5,1], [5,5,0], [5,5,1], [5,4,0], [5,4,0], + [4,5,0], [4,5,0], [2,8,2,-1], [2,8,2], [2,8,2,-1], [2,8,2], [3,8,2], [3,8,2], + [3,8,2], [2,8,2], [2,7,2], [3,8,2], [3,8,2], [4,8,2], [3,8,2], [2,5,1], + [6,8,7], [5,5,0], [6,6,1], [4,7,2], [5,4,0], [5,5,0], [5,6,1], [5,6,1], + [3,7,2], [3,7,2], [3,7,2], [4,7,2], [6,6,1], [5,6,1], [5,6,1], [5,6,1], + [3,13,23,33,43,53,63,73,83,93,103,113,123,133,142,152], + [9,24,38,52,66,80,95,109], + [164,121] + ], + cmex10: [ + [6,9,8,3], [3,9,8], [2,10,9,-1], [2,10,9], [2,10,9,-1], [2,10,9], [2,9,8,-1], [2,9,8], + [2,9,8,-1], [2,9,8,-1], [3,9,8], [3,9,8], [1,5,5,-1], [2,5,5,-1], [4,9,8], [4,9,8], + [7,14,13,3], [3,14,13], [4,18,17,-1], [4,18,17], [3,18,17,-1], [2,18,17], [3,18,17,-1], [3,18,17], + [3,18,17,-1], [3,18,17], [4,18,17,-1], [4,18,17,-1], [4,18,17,-1], [5,18,17], [7,18,17], [7,18,17], + [9,22,21,3], [4,22,21], [3,22,21,-1], [3,22,21], [4,22,21,-1], [3,22,21], [4,22,21,-1], [3,22,21], + [4,22,21,-1], [4,22,21,-1], [4,22,21,-1], [5,22,21], [9,22,21], [9,22,21], [6,14,13], [6,14,13], + [9,14,13,3], [5,14,13], [3,14,13,-2], [3,14,13], [3,14,13,-2], [3,14,13], [1,5,5,-2], [2,5,5,-1], + [3,7,7,-2], [3,7,7,-1], [3,7,7,-2], [3,7,7,-1], [3,13,13,-1], [3,13,13,-2], [2,3,3,-2], [1,5,5,-2], + [9,14,13,3], [5,14,13], [1,5,5,-2], [2,5,5,-3], [4,14,13], [4,14,13], [6,7,7], [8,10,10], + [5,8,8], [7,16,16], [8,7,7], [11,10,10], [11,7,7,3], [11,10,10], [11,7,7,3], [11,10,10], + [10,8,7,3], [7,7,7], [5,8,8], [6,7,7], [6,7,7], [6,7,7], [6,7,7], [6,7,7], + [10,10,10], [9,10,10], [7,16,16], [8,10,10], [8,10,10], [8,10,10], [8,10,10], [8,10,10], + [10,8,7,3], [9,10,10], [4,1,-4], [7,2,-4], [10,2,-4], [4,1,-4], [7,2,-4], [10,2,-4], + [6,19,13,3], [2,14,13], [3,14,13,-1], [3,14,13], [3,14,13,-1], [3,14,13], [3,14,13,-1], [3,14,13,-1], + [10,9,8,3], [6,13,13,-1], [6,17,17,-1], [6,21,21,-1], [5,13,13,-1], [2,5,5,-4], [4,5,4,-4], [3,5,5,-1], + [3,5,5,-1], [4,4,4], [5,3,2,1], [4,3,2], [4,3,0], [4,3,0], [5,5,5], [5,4,4], + [3,16,28,41,53,66,78,91,103,116,129,141,154,166,179,191], + [11,42,72,103,134,165,196,226], + [205,256] + ], + cmbx10: [ + [5,5,0], [7,5,0], [6,5,0], [6,5,0], [5,5,0], [6,5,0], [6,5,0], [6,5,0], + [6,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], [5,5,0], [7,5,0], [7,5,0], + [2,4,0], [3,6,2,1], [3,2,-3], [3,2,-3,-1], [2,2,-3,-1], [4,2,-3], [4,2,-3], [2,2,-3,-2], + [2,2,2,-1], [4,5,0], [6,4,0], [6,4,0], [4,5,1], [7,5,0], [8,6,1], [6,6,1], + [3,1,-2], [2,5,0], [4,3,-2], [7,7,2], [4,6,1], [7,7,1], [6,5,0], [2,3,-2], + [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,2,1], [3,1,-1], [2,1,0], [4,8,2], + [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], + [4,5,0], [4,5,0], [2,3,0], [2,4,1], [2,6,2], [6,3,0], [4,6,2], [4,5,0], + [6,5,0], [6,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], [5,5,0], [6,5,0], + [6,5,0], [3,5,0], [4,6,1], [6,5,0], [5,5,0], [8,5,0], [6,5,0], [6,5,0], + [5,5,0], [6,7,2], [6,5,0], [4,5,0], [6,5,0], [6,5,0], [6,5,0], [8,5,0], + [6,5,0], [6,5,0], [5,5,0], [2,8,2], [3,3,-2,-1], [2,8,2], [2,2,-3,-1], [2,2,-3], + [2,3,-2], [4,4,0], [5,5,0], [4,4,0], [5,5,0], [4,4,0], [3,5,0], [4,6,2], + [5,5,0], [2,5,0], [3,7,2,1], [4,5,0], [2,5,0], [7,4,0], [5,4,0], [4,4,0], + [5,6,2], [5,6,2], [3,4,0], [3,4,0], [3,5,0], [5,4,0], [4,4,0], [6,4,0], + [4,4,0], [4,6,2], [4,4,0], [4,1,-1], [8,1,-1], [3,2,-3,-1], [4,1,-4], [4,2,-3], + [3,13,23,33,42,52,62,72,82,92,102,111,121,131,141,151], + [9,17,26,34,42,51,59,67], + [162,73] + ], + cmti10: [ + [5,5,0], [6,5,0], [5,6,1,-1], [5,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0,-1], + [5,5,0,-1], [5,5,0,-1], [6,5,0], [6,7,2], [5,7,2], [5,7,2], [7,7,2], [9,7,2,2], + [3,3,0], [4,5,2,1], [1,2,-3,-2], [2,2,-3,-2], [2,2,-3,-2], [2,2,-3,-2], [2,2,-3,-2], [2,2,-3,-3], + [2,2,2,-1], [4,7,2], [5,3,0], [5,3,0], [4,5,1], [7,5,0], [6,6,1,-1], [8,6,1,2], + [3,1,-2], [3,5,0], [3,2,-3,-1], [5,7,2,-1], [5,5,0], [5,7,1,-1], [6,6,1], [2,2,-3,-1], + [3,7,2,-1], [3,7,2], [3,3,-2,-1], [5,5,1,-1], [2,3,2], [3,1,-1], [2,1,0], [5,8,2], + [4,6,1], [3,5,0,-1], [4,6,1], [4,6,1], [4,7,2], [4,6,1], [4,6,1], [4,5,0,-1], + [4,6,1], [4,6,1], [2,3,0], [2,5,2], [3,6,2], [5,3,0,-1], [3,6,2], [3,5,0,-1], + [5,5,0,-1], [5,5,0], [6,5,0], [5,6,1,-1], [6,5,0], [6,5,0], [6,5,0], [5,6,1,-1], + [6,5,0], [4,5,0], [5,6,1], [6,5,0], [5,5,0], [7,5,0], [6,5,0], [5,6,1,-1], + [5,5,0], [5,7,2,-1], [5,6,1], [5,6,1], [5,5,0,-1], [5,6,1,-1], [5,5,0,-1], [7,5,0,-1], + [8,5,0,2], [5,5,0,-1], [5,5,0], [3,8,2], [2,3,-2,-2], [3,8,2], [2,1,-4,-2], [2,1,-4,-1], + [2,3,-2,-1], [4,3,0], [4,5,0], [4,3,0], [4,5,0], [4,3,0], [4,7,2], [4,5,2], + [4,5,0], [3,5,0], [4,7,2,1], [4,5,0], [2,5,0], [6,3,0], [4,3,0], [4,3,0], + [4,5,2], [4,5,2], [4,3,0], [3,3,0], [3,5,0], [4,3,0], [4,3,0], [5,3,0], + [4,3,0], [4,5,2], [3,3,0], [3,1,-1,-1], [6,1,-1,-1], [6,4,-1,2], [2,1,-4,-2], [2,1,-4,-2], + [3,11,20,28,37,45,54,62,71,79,88,96,105,113,122,130], + [9,17,26,34,42,51,59,67], + [140,73] + ] +}); + +jsMath.Img.AddFont(60,{ + cmr10: [ + [5,6,0], [7,6,0], [6,7,1], [6,6,0], [5,6,0], [6,6,0], [6,6,0], [6,6,0], + [6,6,0], [6,6,0], [6,6,0], [5,6,0], [4,6,0], [4,6,0], [7,6,0], [7,6,0], + [2,4,0], [3,6,2,1], [2,2,-4,-1], [2,2,-4,-1], [2,1,-4,-1], [4,2,-4], [4,1,-4], [2,2,-4,-2], + [2,2,2,-1], [4,6,0], [6,5,1], [6,4,0], [4,5,1], [7,6,0], [8,7,1], [6,7,1], + [2,1,-2], [2,6,0], [3,3,-3], [6,8,2], [4,7,1], [7,7,1], [6,7,1], [2,3,-3], + [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,3,2], [3,1,-1], [2,1,0], [4,8,2], + [4,7,1], [4,6,0], [4,6,0], [4,7,1], [4,6,0], [4,7,1], [4,7,1], [4,7,1], + [4,7,1], [4,7,1], [2,4,0], [2,6,2], [2,6,2], [6,2,-1], [4,6,2], [4,6,0], + [6,7,1], [6,6,0], [6,6,0], [6,7,1], [6,6,0], [6,6,0], [5,6,0], [6,7,1], + [6,6,0], [3,6,0], [4,7,1], [6,6,0], [5,6,0], [7,6,0], [6,6,0], [6,7,1], + [5,6,0], [6,8,2], [6,7,1], [4,7,1], [6,6,0], [6,7,1], [6,6,0], [8,6,0], + [6,6,0], [6,6,0], [5,6,0], [2,8,2], [3,3,-3,-1], [2,8,2], [2,2,-4,-1], [2,2,-4], + [2,3,-3], [4,5,1], [5,7,1], [4,4,0], [4,6,0], [4,4,0], [3,6,0], [4,6,2], + [5,6,0], [2,6,0], [3,8,2,1], [4,6,0], [2,6,0], [7,4,0], [5,4,0], [4,4,0], + [5,6,2], [4,6,2], [3,4,0], [3,5,1], [3,5,0], [5,4,0], [4,4,0], [6,4,0], + [4,4,0], [4,6,2], [4,4,0], [4,1,-2], [8,1,-2], [3,2,-4,-1], [4,2,-4], [2,2,-4,-1], + [3,14,24,34,44,55,65,75,85,95,106,116,126,136,147,157], + [11,21,31,41,51,61,71,81], + [169,87] + ], + cmmi10: [ + [6,6,0], [7,6,0], [6,7,1], [6,6,0], [7,6,0], [7,6,0], [7,6,0], [6,6,0], + [5,6,0], [6,6,0], [7,6,0], [5,5,1], [5,8,2], [5,6,2], [4,6,0], [3,4,0], + [4,8,2], [4,6,2], [4,6,0], [3,4,0], [5,4,0], [5,6,0], [5,6,2], [5,4,0], + [4,8,2], [5,4,0], [4,6,2], [5,5,1], [4,4,0], [5,4,0], [5,8,2], [5,6,2], + [5,8,2], [5,4,0], [4,5,1], [5,6,0], [7,4,0], [4,6,2], [4,5,1], [5,6,2], + [8,3,-1], [8,3,0], [8,3,-1], [8,3,0], [2,3,-1], [2,3,-1], [4,4,0], [4,4,0], + [4,5,1], [3,4,0,-1], [4,4,0], [4,6,2], [4,6,2], [4,6,2], [4,7,1], [4,6,2], + [4,7,1], [4,6,2], [2,1,0], [2,3,2], [6,6,1], [4,8,2], [6,6,1], [4,4,0], + [5,7,1], [6,6,0], [6,6,0], [6,7,1], [7,6,0], [6,6,0], [6,6,0], [6,7,1], + [7,6,0], [4,6,0], [5,7,1], [7,6,0], [5,6,0], [9,6,0], [9,6,0,2], [6,7,1], + [6,6,0], [6,8,2], [6,7,1], [6,7,1], [6,6,0], [6,7,1], [6,6,0], [9,6,0], + [9,6,0,2], [6,6,0], [6,6,0], [3,6,0], [3,8,2], [3,8,2], [8,2,-1], [8,2,-1], + [4,6,0], [4,4,0], [4,6,0], [4,5,1], [4,6,0], [4,4,0], [5,8,2], [4,6,2], + [5,6,0], [3,6,0], [3,8,2], [4,6,0], [2,6,0], [7,4,0], [5,4,0], [4,5,1], + [4,6,2], [4,6,2], [4,4,0], [4,5,1], [3,5,0], [5,4,0], [4,4,0], [6,4,0], + [5,4,0], [4,6,2], [4,4,0], [3,4,0], [3,6,2], [5,6,2], [4,2,-4,-1], [4,2,-4,-2], + [3,13,23,33,43,53,63,73,83,93,103,113,123,133,143,153], + [11,21,31,41,51,61,71,81], + [164,87] + ], + cmsy10: [ + [5,2,-1,-1], [2,2,-1], [4,4,0,-1], [4,4,0], [6,6,1], [4,4,0], [6,6,0], [6,6,2], + [6,6,1], [6,6,1], [6,6,1], [6,6,1], [6,6,1], [8,8,2], [4,4,0], [4,4,0], + [6,4,0], [6,4,0], [6,8,2], [6,8,2], [6,7,2], [6,7,2], [6,7,2], [6,7,2], + [6,2,-1], [6,4,0], [6,6,1], [6,6,1], [8,6,1], [8,6,1], [5,6,1,-1], [6,6,1], + [8,4,0], [8,4,0], [4,8,2], [4,8,2], [8,4,0], [8,8,2], [8,8,2], [6,4,0], + [8,6,1], [8,6,1], [5,8,2], [5,8,2], [8,6,1], [8,8,2], [8,8,2], [6,4,0], + [2,5,0], [8,4,0], [5,6,1], [5,6,1], [7,6,0], [7,6,2], [4,8,2,-1], [1,4,0], + [5,6,0], [4,6,0], [5,3,0], [4,7,1], [6,7,1], [6,7,1], [6,6,0], [6,6,0], + [5,6,0], [7,7,1], [6,7,1], [5,7,1], [7,6,0], [5,7,1], [7,7,1], [5,7,1], + [7,7,1], [5,6,0], [7,7,1], [6,7,1], [5,7,1], [9,7,1], [9,8,1,1], [7,7,1], + [6,7,1], [6,7,1,-1], [7,7,1], [6,7,1], [7,6,0], [7,7,1,1], [6,7,1], [9,7,1], + [7,6,0], [6,7,1], [6,6,0], [5,6,1], [5,5,0], [5,6,1], [5,5,0], [5,5,0], + [5,6,0], [5,6,0], [3,8,2,-1], [3,8,2], [3,8,2,-1], [3,8,2], [3,8,2,-1], [3,8,2], + [2,8,2,-1], [3,8,2], [1,8,2,-1], [2,8,2,-1], [4,8,2], [5,8,2], [4,8,2], [2,6,1], + [7,9,8], [6,6,0], [7,7,1], [4,8,2], [5,5,0], [5,5,0], [6,8,2], [6,8,2], + [3,8,2], [3,8,2], [3,8,2], [5,8,2], [6,7,1], [6,8,2], [6,7,1], [6,7,1], + [3,15,27,39,51,63,75,87,99,111,123,135,147,159,171,183], + [11,28,45,62,80,97,114,131], + [196,145] + ], + cmex10: [ + [3,10,9,-1], [3,11,10], [2,11,10,-1], [2,11,10], [3,11,10,-1], [3,10,10], [3,11,10,-1], [3,10,9], + [3,11,10,-1], [3,11,10,-1], [3,9,9], [3,11,10], [1,5,5,-1], [3,5,5,-1], [4,10,10], [4,10,9], + [4,15,14,-1], [4,15,14], [5,20,19,-1], [5,20,19], [2,20,19,-2], [3,20,19], [3,20,19,-2], [3,20,19], + [3,20,19,-2], [3,20,19], [4,20,19,-1], [4,20,19,-1], [5,20,19,-1], [5,20,19], [8,20,19], [8,20,19], + [5,25,24,-1], [5,25,24], [3,25,24,-2], [3,25,24], [3,25,24,-2], [3,25,24], [3,25,24,-2], [3,25,24], + [5,25,24,-1], [5,25,24,-1], [5,25,24,-1], [5,25,24,-1], [10,25,24], [10,25,24], [6,15,14], [6,15,14], + [5,16,15,-2], [5,16,15], [4,15,14,-2], [3,15,14], [4,16,15,-2], [3,16,15], [2,5,5,-2], [1,5,5,-2], + [3,8,8,-3], [3,8,8,-1], [3,9,8,-3], [3,9,8,-1], [3,16,15,-1], [3,16,15,-3], [1,4,3,-3], [1,5,5,-2], + [5,15,14,-2], [5,15,14], [2,5,5,-2], [2,5,5,-3], [4,15,14,-1], [4,15,14], [7,8,8], [9,12,12], + [5,9,9], [8,18,18], [9,8,8], [12,12,12], [9,8,8], [12,12,12], [9,8,8], [12,12,12], + [8,8,8], [7,8,8], [5,9,9], [7,8,8], [7,8,8], [7,8,8], [7,8,8], [7,8,8], + [11,12,12], [10,12,12], [8,18,18], [9,12,12], [9,12,12], [9,12,12], [9,12,12], [9,12,12], + [7,8,8], [10,12,12], [5,2,-4], [8,2,-4], [12,3,-4], [5,1,-5], [8,1,-5], [12,1,-5], + [3,16,15,-1], [2,16,15], [3,15,15,-1], [3,16,15], [3,15,14,-1], [3,15,14], [4,15,14,-1], [4,15,14,-1], + [7,10,10,-1], [7,14,14,-1], [7,19,19,-1], [7,24,24,-1], [5,15,15,-1], [1,5,5,-5], [4,6,5,-5], [3,5,5,-2], + [4,5,5,-1], [4,5,5,-1], [5,3,2,1], [5,3,2,1], [5,3,0,1], [5,3,0,1], [6,5,5], [6,5,5], + [4,19,34,49,64,79,94,109,124,139,154,169,184,199,215,230], + [13,50,87,124,161,198,235,272], + [246,308] + ], + cmbx10: [ + [5,6,0], [7,6,0], [7,7,1], [6,6,0], [6,6,0], [7,6,0], [6,6,0], [7,6,0], + [7,6,0], [7,6,0], [7,6,0], [6,6,0], [5,6,0], [5,6,0], [8,6,0], [8,6,0], + [3,4,0], [4,6,2,1], [2,2,-4,-1], [2,2,-4,-2], [3,2,-4,-1], [3,2,-4,-1], [4,1,-4], [3,2,-4,-2], + [3,2,2,-1], [5,6,0], [7,4,0], [7,4,0], [5,6,1], [8,6,0], [9,7,1], [7,7,1], + [3,2,-2], [2,6,0], [4,4,-2], [7,8,2], [4,7,1], [8,7,1], [7,7,1], [2,3,-3], + [3,8,2], [3,8,2], [4,4,-2], [7,6,1], [2,4,2], [3,2,-1], [2,2,0], [4,8,2], + [5,6,0], [4,6,0], [5,6,0], [5,7,1], [5,6,0], [5,6,0], [5,7,1], [5,6,0], + [5,7,1], [5,6,0], [2,4,0], [2,6,2], [2,6,2], [7,4,0], [4,6,2], [4,6,0], + [7,6,0], [7,6,0], [6,6,0], [7,7,1], [7,6,0], [6,6,0], [6,6,0], [7,7,1], + [7,6,0], [4,6,0], [5,7,1], [7,6,0], [6,6,0], [9,6,0], [7,6,0], [7,7,1], + [6,6,0], [7,8,2], [7,7,1], [5,7,1], [6,6,0], [7,7,1], [7,6,0], [10,6,0], + [7,6,0], [7,6,0], [6,6,0], [2,8,2,-1], [4,4,-2,-1], [2,8,2], [3,2,-4,-1], [2,2,-4], + [2,4,-2], [5,4,0], [5,6,0], [4,4,0], [5,6,0], [4,4,0], [4,6,0], [5,6,2], + [5,6,0], [3,6,0], [4,8,2,1], [5,6,0], [3,6,0], [8,4,0], [5,4,0], [5,4,0], + [5,6,2], [5,6,2], [4,4,0], [4,4,0], [3,5,0], [5,4,0], [5,4,0], [7,4,0], + [5,4,0], [5,6,2], [4,4,0], [5,1,-2], [9,1,-2], [3,2,-4,-1], [3,2,-4,-1], [3,2,-4,-1], + [3,15,27,39,51,63,75,86,98,110,122,134,146,157,169,181], + [11,21,31,41,51,61,71,81], + [194,87] + ], + cmti10: [ + [6,6,0], [6,6,0], [6,7,1,-1], [5,6,0], [6,6,0], [7,6,0], [7,6,0], [6,6,0,-1], + [5,6,0,-1], [6,6,0,-1], [6,6,0], [7,8,2,1], [6,8,2,1], [6,8,2,1], [9,8,2,1], [9,8,2,1], + [3,4,0], [4,6,2,1], [2,2,-4,-2], [3,2,-4,-2], [3,1,-4,-2], [3,2,-4,-2], [3,1,-4,-2], [3,2,-4,-3], + [2,2,2,-1], [6,8,2,1], [6,4,0], [6,4,0], [4,5,1], [8,6,0], [8,7,1,-1], [9,7,1,2], + [3,1,-2], [2,6,0,-1], [3,3,-3,-1], [6,8,2,-1], [6,6,0], [6,7,1,-1], [6,7,1,-1], [1,3,-3,-2], + [3,8,2,-1], [3,8,2], [4,4,-2,-1], [5,6,1,-1], [2,3,2], [3,1,-1], [1,1,0,-1], [5,8,2], + [4,7,1,-1], [3,6,0,-1], [5,7,1], [5,7,1], [4,8,2], [5,7,1], [4,7,1,-1], [4,7,1,-1], + [5,7,1], [5,7,1], [2,4,0,-1], [3,6,2], [3,6,2], [6,2,-1,-1], [4,6,2], [4,6,0,-1], + [6,7,1,-1], [6,6,0], [6,6,0], [6,7,1,-1], [7,6,0], [6,6,0], [6,6,0], [6,7,1,-1], + [7,6,0], [4,6,0], [5,7,1], [7,6,0], [5,6,0], [8,6,0], [7,6,0], [6,7,1,-1], + [6,6,0], [6,8,2,-1], [6,7,1], [5,7,1], [6,6,0,-1], [6,7,1,-1], [6,6,0,-1], [8,6,0,-1], + [9,6,0,2], [6,6,0,-1], [6,6,0], [4,8,2], [3,3,-3,-2], [3,8,2], [2,2,-4,-2], [1,2,-4,-2], + [2,3,-3,-1], [5,4,0], [3,6,0,-1], [4,4,0], [5,6,0], [4,4,0], [5,8,2,1], [4,6,2], + [5,6,0], [3,6,0], [4,8,2,1], [4,6,0], [3,6,0], [7,4,0], [5,4,0], [4,4,0], + [4,6,2], [4,6,2], [4,4,0], [4,5,1], [3,5,0], [5,4,0], [4,4,0], [6,4,0], + [4,4,0], [4,6,2], [4,4,0], [4,1,-2,-1], [7,1,-2,-1], [3,2,-4,-2], [3,2,-4,-2], [3,2,-4,-2], + [3,14,24,34,44,54,64,75,85,95,105,115,126,136,146,156], + [11,21,31,41,51,61,71,81], + [168,87] + ] +}); + +jsMath.Img.AddFont(70,{ + cmr10: [ + [6,7,0], [8,7,0], [8,8,1], [7,7,0], [7,7,0], [7,7,0], [7,7,0], [8,7,0], + [7,7,0], [7,7,0], [7,7,0], [7,7,0], [6,7,0], [6,7,0], [8,7,0], [8,7,0], + [3,5,0], [4,7,2,1], [2,2,-5,-1], [2,2,-5,-2], [3,2,-5,-1], [3,2,-5,-1], [5,1,-5], [3,3,-5,-2], + [3,2,2,-1], [5,7,0], [7,6,1], [8,6,1], [5,7,1], [9,7,0], [10,8,1], [8,9,1], + [3,2,-2], [2,8,0], [4,3,-4], [8,9,2], [5,9,1], [8,9,1], [8,9,1], [2,3,-4], + [3,10,2,-1], [3,10,2], [5,5,-3], [8,7,1], [2,3,2], [3,2,-1], [2,1,0], [5,10,2], + [5,8,1], [3,7,0,-1], [5,7,0], [5,8,1], [5,7,0], [5,8,1], [5,8,1], [5,8,1], + [5,10,1], [5,10,1], [2,5,0], [2,7,2], [2,7,2], [8,3,-1], [5,7,2], [5,9,0], + [8,8,1], [7,7,0], [7,7,0], [7,8,1], [7,7,0], [7,7,0], [6,7,0], [8,8,1], + [7,7,0], [4,7,0], [5,8,1], [8,7,0], [6,7,0], [9,7,0], [7,7,0], [8,8,1], + [7,7,0], [8,9,2], [8,8,1], [5,8,1], [7,7,0], [7,8,1], [8,8,1], [10,8,1], + [10,7,0,2], [8,7,0], [6,7,0], [2,10,2,-1], [4,3,-4,-1], [2,10,2], [3,2,-5,-1], [2,2,-5], + [2,3,-4], [5,5,0], [6,7,0], [4,6,1], [6,8,1], [5,6,1], [4,7,0], [5,7,2], + [6,7,0], [3,7,0], [4,9,2,1], [5,9,0], [3,7,0], [8,9,0], [6,5,0], [5,6,1], + [6,7,2], [6,7,2], [4,5,0], [4,5,0], [4,7,1], [6,6,1], [5,5,0], [7,5,0], + [5,5,0], [5,7,2], [4,5,0], [5,1,-2], [10,1,-2], [4,2,-5,-1], [3,2,-5,-1], [3,2,-5,-1], + [4,16,28,40,52,64,76,88,99,111,123,135,147,159,171,183], + [13,24,36,47,59,71,82,94], + [197,102] + ], + cmmi10: [ + [8,7,0], [8,7,0], [8,8,1], [7,7,0], [8,7,0], [9,7,0], [8,7,0], [7,7,0], + [7,7,0], [7,7,0], [8,7,0], [6,6,1], [6,9,2], [6,7,2], [5,8,0], [4,6,1], + [5,9,2], [5,7,2], [5,8,1], [4,6,1], [6,6,1], [6,7,0], [6,7,2], [6,5,0], + [5,9,2], [6,5,0], [5,7,2], [6,5,0], [5,5,0], [6,6,1], [6,9,2], [6,7,2], + [7,9,2], [6,6,1], [5,6,1], [6,8,1], [8,5,0], [5,7,2], [4,6,1], [7,7,2], + [10,3,-2], [12,3,0,2], [10,3,-2], [10,3,0], [5,3,-2,2], [3,3,-2], [5,5,0], [5,5,0], + [5,6,1], [3,5,0,-1], [5,5,0], [5,7,2], [5,7,2], [5,7,2], [5,8,1], [5,7,2], + [5,8,1], [5,7,2], [2,1,0], [2,3,2], [6,7,1,-1], [5,10,2], [6,7,1,-1], [5,5,0], + [6,9,1], [7,7,0], [8,7,0], [8,8,1], [8,7,0], [8,7,0], [8,7,0], [8,8,1], + [9,7,0], [5,7,0], [7,8,1], [9,7,0], [7,7,0], [11,7,0], [11,7,0,2], [8,8,1], + [8,7,0], [8,9,2], [8,8,1], [7,8,1], [7,7,0], [8,8,1], [8,8,1], [11,8,1], + [11,7,0,2], [8,7,0], [8,7,0], [4,9,1], [4,9,2], [4,9,2], [10,3,-1], [12,3,-1,2], + [4,7,0], [5,6,1], [5,8,1], [5,5,0], [6,8,1], [5,5,0], [6,9,2], [5,7,2], + [6,7,0], [3,7,0], [4,9,2], [5,7,0], [3,7,0], [9,5,0], [6,6,1], [5,5,0], + [6,7,2,1], [5,7,2], [5,5,0], [5,5,0], [4,8,1], [6,6,1], [5,6,1], [7,6,1], + [6,6,1], [5,7,2], [5,5,0], [3,5,0], [5,7,2,1], [7,7,2], [5,2,-5,-2], [5,2,-5,-2], + [4,15,27,39,50,62,74,85,97,108,120,132,143,155,167,178], + [13,24,36,47,59,71,82,94], + [191,102] + ], + cmsy10: [ + [6,1,-2,-1], [2,1,-2], [6,5,0,-1], [5,5,0], [8,7,1], [5,5,0], [8,7,0], [8,7,2], + [8,7,1], [8,7,1], [8,7,1], [8,7,1], [8,7,1], [10,11,3], [5,5,0], [5,5,0], + [8,5,0], [8,5,0], [7,9,2], [6,9,2,-1], [6,9,2,-1], [6,9,2,-1], [6,9,2,-1], [7,9,2], + [8,3,-1], [8,5,0], [7,7,1], [6,7,1,-1], [10,7,1], [10,7,1], [6,7,1,-1], [6,7,1,-1], + [10,5,0], [10,5,0], [5,9,2], [5,9,2], [10,5,0], [10,9,2], [10,9,2], [8,5,0], + [10,5,0], [10,5,0], [6,9,2], [6,9,2], [10,7,1], [10,9,2], [10,9,2], [8,6,1], + [3,6,0], [10,6,1], [6,7,1], [5,7,1,-1], [9,7,0], [9,7,2], [6,9,2,-1], [2,5,0], + [6,8,1], [5,7,0], [7,3,-1], [5,9,1], [7,9,1], [7,8,1], [8,7,0], [8,7,0], + [6,7,0], [8,9,1], [7,8,1], [6,8,1], [8,7,0], [6,8,1], [9,8,1], [6,9,2], + [8,8,1], [7,7,0], [9,9,2], [8,8,1], [7,8,1], [11,8,1], [13,9,1,3], [8,8,1], + [8,8,1], [7,9,2,-1], [9,8,1], [7,8,1], [8,8,0], [8,8,1,1], [7,8,1], [11,8,1], + [8,7,0], [8,9,2], [8,7,0], [7,7,1], [7,7,1], [7,7,1], [6,7,1], [6,7,1], + [6,7,0], [6,7,0], [4,11,3,-1], [3,11,3], [4,11,3,-1], [3,11,3], [3,11,3,-1], [3,11,3,-1], + [3,11,3,-1], [3,11,3], [1,11,3,-1], [3,11,3,-1], [3,11,3,-1], [6,11,3], [5,11,3], [3,7,1], + [9,11,10], [7,7,0], [8,8,1], [5,11,3], [6,6,0], [6,6,0], [7,9,2], [7,9,2], + [4,9,2], [4,9,2], [4,9,2], [6,9,2], [8,10,2], [8,10,2], [8,9,1], [8,10,2], + [4,18,32,46,60,74,88,102,116,130,144,158,172,186,199,213], + [13,33,53,73,93,113,133,152], + [229,169] + ], + cmex10: [ + [3,13,12,-1], [3,13,12], [2,13,12,-2], [3,13,12], [3,13,12,-2], [3,13,12], [3,13,12,-2], [3,13,12], + [4,13,12,-1], [4,13,12,-1], [3,13,12,-1], [4,13,12], [1,8,7,-1], [4,8,7,-1], [6,13,12], [6,13,12], + [5,19,18,-1], [5,19,18], [5,25,24,-2], [6,25,24], [4,25,24,-2], [3,25,24], [4,25,24,-2], [4,25,24], + [4,25,24,-2], [4,25,24], [6,25,24,-1], [6,25,24,-1], [6,25,24,-1], [6,25,24,-1], [10,25,24], [10,25,24], + [6,31,30,-2], [6,31,30], [4,31,30,-2], [4,31,30], [5,31,30,-2], [4,31,30], [5,31,30,-2], [4,31,30], + [6,31,30,-1], [6,31,30,-1], [6,31,30,-1], [6,31,30,-1], [13,31,30], [13,31,30], [8,19,18], [8,19,18], + [7,19,18,-2], [6,19,18], [4,19,18,-3], [4,19,18], [4,19,18,-3], [4,19,18], [1,6,6,-3], [2,6,6,-2], + [5,10,10,-3], [4,10,10,-1], [5,10,9,-3], [4,10,9,-1], [4,20,19,-1], [4,20,19,-3], [2,5,4,-3], [1,6,6,-3], + [7,19,18,-2], [6,19,18], [2,8,7,-2], [2,8,7,-4], [5,19,18,-1], [4,19,18,-1], [8,10,10], [11,14,14], + [6,12,12], [10,23,23], [11,10,10], [15,14,14], [14,10,10,3], [15,14,14], [14,10,10,3], [15,14,14], + [10,10,10], [9,10,10], [6,12,12], [8,10,10], [8,10,10], [8,10,10], [8,10,10], [8,10,10], + [14,14,14], [13,14,14], [10,23,23], [11,14,14], [11,14,14], [11,14,14], [11,14,14], [11,14,14], + [9,10,10], [13,14,14], [6,3,-5], [10,3,-5], [15,3,-5], [9,3,-5,3], [10,2,-6], [15,2,-6], + [3,19,18,-2], [3,19,18], [3,19,18,-2], [3,19,18], [3,19,18,-2], [3,19,18], [5,19,18,-1], [5,19,18,-1], + [10,13,12,-1], [10,19,18,-1], [10,25,24,-1], [10,31,30,-1], [7,19,18,-1], [1,7,6,-7], [4,7,6,-7], [4,6,6,-2], + [5,6,6,-1], [5,6,6,-1], [6,4,2,1], [6,5,3,1], [6,4,0,1], [6,4,0,1], [8,6,6], [8,6,6], + [4,22,39,57,75,92,110,127,145,162,180,198,215,233,250,268], + [15,58,101,145,188,231,274,317], + [287,359] + ], + cmbx10: [ + [7,7,0], [9,7,0], [9,8,1], [8,7,0], [8,7,0], [9,7,0], [8,7,0], [9,7,0], + [8,7,0], [9,7,0], [8,7,0], [8,7,0], [6,7,0], [6,7,0], [10,7,0], [10,7,0], + [3,5,0], [4,7,2,1], [3,2,-5,-1], [3,2,-5,-2], [4,2,-5,-1], [4,2,-5,-1], [5,2,-5], [3,2,-5,-3], + [4,2,2,-1], [6,7,0], [8,5,0], [9,5,0], [6,7,1], [10,7,0], [11,8,1], [12,9,1,3], + [4,2,-2], [2,7,0,-1], [5,4,-3], [9,9,2], [5,9,1], [9,9,1], [9,8,1], [3,4,-3], + [3,10,2,-1], [4,10,2], [5,5,-3], [9,9,2], [3,4,2], [4,2,-1], [3,2,0], [5,10,2], + [6,8,1], [5,7,0], [6,7,0], [6,8,1], [6,7,0], [6,8,1], [6,8,1], [6,7,0], + [6,10,1], [6,10,1], [3,5,0], [3,7,2], [2,7,2,-1], [9,3,-1], [5,7,2], [5,9,0], + [9,7,0], [9,7,0], [8,7,0], [8,8,1], [9,7,0], [8,7,0], [7,7,0], [9,8,1], + [9,7,0], [4,7,0], [6,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,8,1], + [8,7,0], [8,9,2], [9,8,1], [6,8,1], [8,7,0], [9,8,1], [9,7,0], [12,7,0], + [12,7,0,3], [9,7,0], [7,7,0], [2,10,2,-1], [5,4,-3,-1], [2,10,2], [4,2,-5,-1], [3,2,-5], + [3,4,-3], [6,5,0], [6,7,0], [5,5,0], [6,7,0], [5,5,0], [5,7,0], [6,7,2], + [7,7,0], [3,7,0], [4,9,2,1], [6,9,0], [3,7,0], [10,9,0], [7,5,0], [6,5,0], + [6,7,2], [6,7,2], [5,5,0], [5,5,0], [4,7,0], [7,5,0], [6,5,0], [8,5,0], + [6,5,0], [6,7,2], [5,5,0], [6,1,-2], [12,1,-2], [8,5,-2,3], [4,2,-5,-1], [4,2,-5,-1], + [4,18,32,46,59,73,87,101,115,128,142,156,170,184,198,211], + [13,24,36,47,59,71,82,94], + [227,102] + ], + cmti10: [ + [7,7,0], [8,7,0], [7,8,1,-1], [7,7,0], [8,7,0], [9,7,0], [7,7,0,-1], [7,7,0,-2], + [7,7,0,-1], [6,7,0,-2], [7,7,0,-1], [9,9,2,1], [7,9,2,1], [8,9,2,1], [11,9,2,1], [11,9,2,1], + [3,5,0,-1], [5,7,2,1], [2,2,-5,-3], [3,2,-5,-3], [3,2,-5,-3], [4,2,-5,-2], [4,1,-5,-2], [3,3,-5,-4], + [3,2,2,-1], [7,9,2,1], [7,6,1,-1], [7,6,1,-1], [6,7,1], [10,7,0], [10,8,1,-1], [10,9,1,2], + [3,2,-2,-1], [3,8,0,-1], [4,3,-4,-2], [8,9,2,-1], [6,8,1,-1], [8,9,1,-1], [7,9,1,-1], [2,3,-4,-2], + [4,10,2,-1], [4,10,2], [4,5,-3,-2], [7,7,1,-1], [3,3,2], [3,2,-1,-1], [2,1,0,-1], [6,10,2], + [5,8,1,-1], [4,7,0,-1], [5,8,1,-1], [5,8,1,-1], [5,9,2], [5,8,1,-1], [5,8,1,-1], [6,8,1,-1], + [5,10,1,-1], [6,10,1], [2,5,0,-1], [3,7,2], [4,7,2], [7,3,-1,-1], [5,7,2], [6,9,0], + [7,8,1,-1], [7,7,0], [8,7,0], [7,8,1,-1], [8,7,0], [8,7,0], [8,7,0], [7,8,1,-1], + [9,7,0], [5,7,0], [6,8,1,-1], [9,7,0], [7,7,0], [10,7,0], [9,7,0], [7,8,1,-1], + [8,7,0], [7,9,2,-1], [8,8,1], [7,8,1], [7,7,0,-1], [7,8,1,-2], [7,8,1,-2], [9,8,1,-2], + [11,7,0,2], [7,7,0,-2], [7,7,0], [5,10,2], [4,3,-4,-2], [3,10,2,-1], [4,2,-5,-2], [2,2,-5,-2], + [2,3,-4,-2], [5,6,1,-1], [4,8,1,-1], [4,6,1,-1], [5,8,1,-1], [4,6,1,-1], [6,9,2,1], [5,7,2], + [6,7,0], [3,7,0,-1], [5,9,2,1], [5,9,0], [2,7,0,-1], [9,9,0], [5,5,0,-1], [4,6,1,-1], + [5,7,2], [4,7,2,-1], [4,5,0,-1], [5,5,0], [3,7,0,-1], [5,6,1,-1], [4,6,1,-1], [6,6,1,-1], + [6,6,1], [4,7,2,-1], [5,5,0], [5,1,-2,-1], [10,1,-2,-1], [8,5,-2,2], [4,2,-5,-2], [4,2,-5,-2], + [4,16,28,40,51,63,75,87,99,111,123,135,146,158,170,182], + [13,24,36,47,59,71,82,94], + [195,102] + ] +}); + +jsMath.Img.AddFont(85,{ + cmr10: [ + [7,9,0], [10,9,0], [9,10,1], [8,9,0], [8,9,0], [9,9,0], [8,9,0], [9,9,0], + [8,9,0], [9,9,0], [8,9,0], [8,9,0], [7,9,0], [7,9,0], [10,9,0], [10,9,0], + [3,6,0], [4,9,3,1], [3,3,-6,-1], [3,3,-6,-2], [4,2,-6,-1], [4,3,-6,-1], [4,2,-6,-1], [3,3,-6,-3], + [4,3,3,-1], [6,10,1], [9,7,1], [9,7,1], [6,8,1], [11,9,0], [12,10,1], [12,10,1,3], + [3,2,-3], [2,9,0,-1], [5,5,-4], [10,12,3], [6,10,1], [10,10,1], [9,10,1], [2,5,-4,-1], + [3,12,3,-1], [4,12,3], [6,5,-4], [9,8,1], [2,5,3,-1], [4,1,-2], [2,2,0,-1], [6,12,3], + [6,9,1], [4,8,0,-1], [6,8,0], [6,9,1], [6,8,0], [6,9,1], [6,9,1], [6,9,1], + [6,9,1], [6,9,1], [2,6,0,-1], [2,9,3,-1], [2,9,3,-1], [9,4,-1], [5,9,3], [5,9,0], + [9,10,1], [9,9,0], [8,9,0], [8,10,1], [9,9,0], [8,9,0], [8,9,0], [9,10,1], + [9,9,0], [4,9,0], [6,10,1], [9,9,0], [7,9,0], [11,9,0], [9,9,0], [9,10,1], + [8,9,0], [9,12,3], [9,10,1], [6,10,1], [9,9,0], [9,10,1], [9,10,1], [12,10,1], + [9,9,0], [9,9,0], [7,9,0], [2,12,3,-1], [5,5,-4,-1], [2,12,3], [4,2,-6,-1], [2,2,-6,-1], + [3,5,-4], [6,7,1], [7,10,1], [5,7,1], [7,10,1], [5,7,1], [5,9,0], [6,9,3], + [7,9,0], [3,8,0], [4,11,3,1], [6,9,0], [3,9,0], [10,6,0], [7,6,0], [6,7,1], + [7,9,3], [7,9,3], [5,6,0], [5,7,1], [4,9,1], [7,7,1], [6,6,0], [9,6,0], + [7,6,0], [6,9,3], [5,6,0], [6,1,-3], [12,1,-3], [8,6,-3,3], [4,1,-7,-1], [4,2,-6,-1], + [5,19,34,48,63,77,92,106,121,135,150,164,179,193,208,222], + [16,30,45,59,73,87,101,115], + [239,125] + ], + cmmi10: [ + [9,9,0], [10,9,0], [9,10,1], [8,9,0], [10,9,0], [11,9,0], [10,9,0], [9,9,0], + [8,9,0], [9,9,0], [9,9,0,-1], [8,7,1], [7,12,3], [7,9,3], [6,10,1], [5,7,1], + [6,12,3], [6,9,3], [6,9,0], [4,7,1], [7,7,1], [7,10,1], [7,9,3], [7,6,0], + [6,12,3], [7,6,0], [6,9,3], [7,7,1], [6,7,1], [7,7,1], [7,12,3], [7,9,3], + [8,12,3], [8,7,1], [5,7,1], [7,10,1], [10,7,1], [6,9,3], [5,8,2], [8,9,3], + [12,4,-2], [15,4,0,3], [15,4,-2,3], [15,4,0,3], [6,4,-2,3], [3,4,-2], [6,6,0], [6,6,0], + [6,7,1], [4,6,0,-1], [6,6,0], [6,9,3], [6,9,3], [6,9,3], [6,9,1], [6,9,3], + [6,9,1], [6,9,3], [2,2,0,-1], [2,5,3,-1], [8,8,1,-1], [6,12,3], [8,8,1,-1], [6,6,0], + [7,10,1], [9,9,0], [9,9,0], [9,10,1], [10,9,0], [10,9,0], [9,9,0], [9,10,1], + [11,9,0], [6,9,0], [8,10,1], [11,9,0], [8,9,0], [12,9,0], [14,9,0,3], [9,10,1], + [9,9,0], [9,12,3], [9,10,1], [8,10,1], [9,9,0], [9,10,1], [8,10,1,-1], [12,10,1], + [13,9,0,3], [9,9,0], [9,9,0], [4,10,1], [3,12,3,-1], [4,12,3], [12,4,-1], [15,4,-1,3], + [5,10,1], [6,7,1], [5,10,1], [6,7,1], [6,10,1], [5,7,1], [7,12,3], [6,9,3], + [7,9,0], [4,8,0], [6,11,3,1], [6,10,1], [3,10,1], [11,7,1], [7,7,1], [6,7,1], + [7,9,3,1], [6,9,3], [6,6,0], [5,7,1], [4,9,1], [7,7,1], [6,7,1], [9,7,1], + [7,7,1], [6,9,3], [6,7,1], [4,6,0], [6,9,3,1], [8,9,3], [6,3,-6,-2], [5,2,-6,-3], + [5,19,33,47,61,75,89,104,118,132,146,160,174,188,202,216], + [16,30,45,59,73,87,101,115], + [232,125] + ], + cmsy10: [ + [8,2,-2,-1], [2,2,-2,-1], [7,6,0,-1], [6,6,0], [9,8,1], [6,6,0], [9,8,0], [9,8,2], + [9,8,1], [9,8,1], [9,8,1], [9,8,1], [9,8,1], [12,12,3], [6,6,0], [6,6,0], + [9,6,0], [9,6,0], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], + [9,4,-1], [9,6,0], [8,8,1,-1], [8,8,1,-1], [12,8,1], [12,8,1], [8,8,1,-1], [8,8,1,-1], + [11,4,-1,-1], [11,4,-1], [4,11,3,-1], [4,11,2,-1], [10,4,-1,-1], [12,12,3], [12,12,3], [9,6,0], + [11,8,1,-1], [11,8,1], [7,12,3], [7,12,3], [12,8,1], [12,12,3], [12,12,3], [9,7,1], + [3,7,0], [12,7,1], [6,8,1,-1], [6,8,1,-1], [10,9,0], [10,9,3], [7,12,3,-1], [2,6,0], + [7,10,1], [6,9,0], [8,4,-1], [6,11,1], [9,10,1], [9,10,1], [9,8,0], [9,8,0], + [7,9,0], [10,10,1], [8,10,1], [7,10,1], [10,9,0], [7,10,1], [10,10,1], [8,11,2], + [10,10,1], [9,9,0,1], [10,11,2], [9,10,1], [8,10,1], [14,10,1], [13,11,1,1], [10,10,1], + [9,10,1], [9,11,2,-1], [10,10,1], [8,10,1], [10,9,0], [10,10,1,1], [8,10,1], [13,10,1], + [10,9,0], [9,11,2], [9,9,0], [8,8,1], [8,9,1], [8,8,1], [8,8,1], [8,7,0], + [7,9,0], [7,9,0], [3,12,3,-2], [4,12,3], [3,12,3,-2], [4,12,3], [4,12,3,-1], [4,12,3,-1], + [3,12,3,-1], [4,12,3], [1,12,3,-1], [4,12,3,-1], [4,12,3,-1], [7,14,4], [6,12,3], [3,8,1], + [10,13,12,-1], [9,9,0], [10,10,1], [6,12,3], [8,7,0], [8,8,0], [8,10,2,-1], [9,10,2], + [5,12,3], [5,12,3], [5,12,3], [7,12,3], [9,11,2], [9,11,2], [9,10,1], [9,11,2], + [5,22,39,56,73,90,107,124,141,157,174,191,208,225,242,259], + [17,41,65,90,114,138,162,186], + [278,206] + ], + cmex10: [ + [4,15,14,-1], [4,15,14], [3,15,14,-2], [3,15,14], [4,15,14,-2], [4,15,14], [4,15,14,-2], [4,15,14], + [5,15,14,-1], [5,15,14,-1], [4,15,14,-1], [4,15,14,-1], [2,8,8,-1], [4,9,8,-1], [7,15,14], [7,15,14], + [5,22,21,-2], [5,22,21], [7,30,29,-2], [7,30,29], [4,30,29,-3], [4,30,29], [4,30,29,-3], [4,30,29], + [4,30,29,-3], [4,30,29], [7,30,29,-1], [7,30,29,-1], [7,30,29,-1], [7,30,29,-1], [12,30,29], [12,30,29], + [7,37,36,-2], [7,37,36], [4,37,36,-3], [4,37,36], [5,37,36,-3], [5,37,36], [5,37,36,-3], [5,37,36], + [7,37,36,-1], [7,37,36,-1], [8,37,36,-1], [7,37,36,-1], [15,37,36], [15,37,36], [9,22,21], [9,22,21], + [7,23,22,-3], [7,23,22], [5,23,22,-3], [5,23,22], [5,23,22,-3], [5,23,22], [2,8,8,-3], [2,8,8,-3], + [5,11,11,-4], [4,11,11,-2], [5,12,11,-4], [4,12,11,-2], [4,23,22,-2], [5,23,22,-4], [2,5,4,-4], [2,7,7,-3], + [7,22,21,-3], [7,22,21], [2,9,8,-3], [2,9,8,-5], [6,22,21,-1], [5,22,21,-1], [10,12,12], [13,17,17], + [8,14,14], [12,27,27], [13,12,12], [18,17,17], [13,12,12], [18,17,17], [13,12,12], [18,17,17], + [12,12,12], [11,12,12], [8,14,14], [10,12,12], [10,12,12], [10,12,12], [10,12,12], [10,12,12], + [17,17,17], [15,17,17], [12,27,27], [13,17,17], [13,17,17], [13,17,17], [13,17,17], [13,17,17], + [11,12,12], [15,17,17], [7,3,-6], [12,3,-7], [18,3,-7], [7,2,-7], [12,2,-7], [18,2,-7], + [4,23,22,-2], [3,23,22], [4,23,22,-2], [4,23,22], [4,22,21,-2], [4,23,22], [6,22,21,-1], [6,22,21,-1], + [12,15,14,-1], [12,22,21,-1], [12,30,29,-1], [12,37,36,-1], [8,23,22,-1], [1,9,8,-8], [5,8,7,-8], [4,8,8,-3], + [6,7,7,-1], [6,7,7,-1], [7,5,3,1], [7,5,3,1], [7,4,0,1], [7,4,0,1], [9,8,8], [9,7,7], + [5,27,48,69,91,112,133,155,176,197,219,240,261,283,304,325], + [19,72,124,177,229,281,334,386], + [349,437] + ], + cmbx10: [ + [8,9,0], [11,9,0], [10,10,1], [10,9,0], [9,9,0], [11,9,0], [10,9,0], [10,9,0], + [10,9,0], [10,9,0], [10,9,0], [9,9,0], [8,9,0], [8,9,0], [11,9,0], [11,9,0], + [4,6,0], [5,9,3,1], [3,3,-6,-1], [3,3,-6,-3], [5,2,-6,-1], [5,3,-6,-1], [5,2,-6,-1], [4,3,-6,-3], + [5,3,3,-1], [7,9,0], [10,7,1], [11,7,1], [7,9,2], [12,9,0], [13,10,1,-1], [10,10,1], + [4,2,-3], [2,9,0,-1], [6,5,-4], [11,12,3], [7,10,1], [11,10,1], [10,10,1], [2,5,-4,-1], + [4,12,3,-1], [4,12,3], [5,6,-3,-1], [10,10,2], [2,5,3,-1], [4,2,-2], [2,2,0,-1], [6,12,3], + [7,9,1], [5,8,0,-1], [7,8,0], [7,9,1], [7,8,0], [7,9,1], [7,9,1], [7,9,0], + [7,9,1], [7,9,1], [2,6,0,-1], [2,9,3,-1], [2,9,3,-1], [10,4,-1], [6,9,3], [6,9,0], + [10,10,1], [10,9,0], [9,9,0], [10,10,1], [10,9,0], [9,9,0], [8,9,0], [10,10,1], + [11,9,0], [5,9,0], [7,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [10,10,1], + [9,9,0], [10,12,3], [11,10,1], [7,10,1], [9,9,0], [10,10,1], [10,9,0], [14,9,0], + [10,9,0], [11,9,0], [8,9,0], [3,12,3,-1], [6,5,-4,-1], [3,12,3], [5,3,-6,-1], [2,3,-6,-1], + [3,5,-4], [7,7,1], [8,9,0], [6,6,0], [8,10,1], [6,7,1], [6,9,0], [7,9,3], + [8,9,0], [4,9,0], [5,12,3,1], [7,9,0], [4,9,0], [12,6,0], [8,6,0], [7,7,1], + [8,9,3], [8,9,3], [6,6,0], [5,7,1], [5,8,0], [8,7,1], [7,6,0], [10,6,0], + [7,6,0], [7,9,3], [6,6,0], [7,1,-3], [14,1,-3], [5,3,-6,-1], [5,2,-7,-1], [5,3,-6,-1], + [5,22,38,55,72,89,106,122,139,156,173,190,206,223,240,257], + [16,30,45,59,73,87,101,115], + [275,125] + ], + cmti10: [ + [9,9,0], [8,9,0,-1], [9,10,1,-1], [8,9,0], [8,9,0,-1], [10,9,0], [9,9,0,-1], [8,9,0,-2], + [8,9,0,-1], [8,9,0,-2], [8,9,0,-1], [10,12,3,1], [9,12,3,1], [9,12,3,1], [12,12,3,1], [13,12,3,1], + [3,7,1,-1], [5,9,3,1], [3,3,-6,-3], [3,3,-6,-4], [4,2,-6,-3], [4,3,-6,-3], [4,2,-6,-3], [3,3,-6,-5], + [3,3,3,-1], [8,12,3,1], [8,7,1,-1], [8,7,1,-1], [6,8,1,-1], [12,9,0], [10,10,1,-2], [13,10,1,3], + [3,2,-3,-1], [4,9,0,-1], [5,5,-4,-2], [9,12,3,-1], [8,10,1,-1], [9,10,1,-1], [9,10,1,-1], [3,5,-4,-2], + [5,12,3,-1], [5,12,3], [5,5,-4,-2], [8,8,1,-1], [2,5,3,-1], [3,1,-2,-1], [2,2,0,-1], [8,12,3], + [6,9,1,-1], [5,8,0,-1], [6,9,1,-1], [6,9,1,-1], [6,11,3], [6,9,1,-1], [6,9,1,-1], [7,9,1,-1], + [6,9,1,-1], [6,9,1,-1], [3,6,0,-1], [3,9,3,-1], [4,9,3], [9,4,-1,-1], [5,9,3,-1], [5,9,0,-2], + [9,10,1,-1], [9,9,0], [9,9,0], [9,10,1,-1], [10,9,0], [9,9,0], [9,9,0], [9,10,1,-1], + [10,9,0], [6,9,0], [7,10,1,-1], [10,9,0], [8,9,0], [12,9,0], [10,9,0], [9,10,1,-1], + [9,9,0], [9,12,3,-1], [9,10,1], [7,10,1,-1], [8,9,0,-2], [8,10,1,-2], [9,10,1,-2], [10,10,1,-2], + [13,9,0,3], [9,9,0,-2], [8,9,0,-1], [5,12,3,-1], [5,5,-4,-3], [6,12,3,1], [4,3,-6,-3], [2,2,-6,-3], + [3,5,-4,-2], [6,7,1,-1], [5,10,1,-1], [5,7,1,-1], [6,10,1,-1], [5,7,1,-1], [7,12,3,1], [6,9,3], + [6,9,0,-1], [3,9,1,-1], [6,11,3,1], [5,10,1,-1], [3,9,0,-1], [9,7,1,-1], [6,7,1,-1], [6,7,1,-1], + [7,9,3], [5,9,3,-1], [5,6,0,-1], [4,7,1,-1], [4,9,1,-1], [6,7,1,-1], [5,7,1,-1], [8,7,1,-1], + [7,7,1], [6,9,3,-1], [6,7,1], [6,1,-3,-1], [11,1,-3,-1], [10,6,-3,3], [4,2,-6,-3], [4,2,-6,-3], + [5,19,34,48,62,77,91,106,120,135,149,163,178,192,207,221], + [16,30,45,59,73,87,101,115], + [237,125] + ] +}); + +jsMath.Img.AddFont(100,{ + cmr10: [ + [9,10,0], [11,10,0], [11,11,1], [10,10,0], [9,10,0], [10,10,0], [10,10,0], [10,10,0], + [10,10,0], [9,10,0,168], [10,10,0], [9,10,0], [8,10,0], [8,10,0], [12,10,0], [12,10,0], + [4,7,0], [4,10,3,1], [3,3,-7,-1], [3,3,-7,-3], [5,2,-7,-1], [5,3,-7,-1], [5,2,-7,-1], [3,3,-7,-4], + [4,3,3,-2], [7,11,1], [10,8,1], [11,8,1], [7,10,2], [13,10,0], [13,11,1,-1], [11,12,1], + [4,2,-4], [2,10,0,-1], [5,5,-5], [11,13,3], [7,12,1], [11,12,1], [11,11,1], [2,5,-5,-1], + [4,15,4,-1], [3,15,4,-1], [5,7,-4,-1], [10,9,1], [2,5,3,-1], [4,2,-2], [2,2,0,-1], [7,15,4], + [7,11,1], [5,10,0,-1], [7,10,0], [7,11,1], [7,10,0], [7,11,1], [7,11,1], [7,11,1], + [7,11,1], [7,11,1], [2,6,0,-1], [2,9,3,-1], [2,10,3,-1], [10,5,-1], [6,10,3], [6,10,0], + [11,11,1], [10,10,0], [10,10,0], [10,11,1], [10,10,0], [9,10,0], [9,10,0], [11,11,1], + [10,10,0], [5,10,0], [7,11,1], [11,10,0], [9,10,0], [13,10,0], [10,10,0], [11,11,1], + [9,10,0], [11,13,3], [11,11,1], [7,11,1], [10,10,0], [10,11,1], [11,11,1], [14,11,1], + [11,10,0], [11,10,0], [8,10,0], [3,15,4,-1], [5,5,-5,-2], [3,15,4], [5,3,-7,-1], [2,2,-8,-1], + [2,5,-5,-1], [7,8,1], [8,11,1], [6,8,1], [8,11,1], [6,8,1], [5,10,0], [7,10,3], + [8,10,0], [4,10,0], [4,13,3,1], [8,10,0], [4,10,0], [12,7,0], [8,7,0], [7,8,1], + [8,10,3], [8,10,3], [5,7,0], [5,8,1], [5,10,1], [8,8,1], [7,6,0], [10,6,0], + [8,6,0], [7,9,3], [6,6,0], [7,1,-3], [14,1,-3], [5,3,-7,-1], [5,2,-8,-1], [5,2,-8,-1], + [6,23,40,57,74,91,108,125,142,159,176,193,210,227,244,262], + [19,36,52,69,85,102,119,135], + [281,146] + ], + cmmi10: [ + [10,10,0], [11,10,0], [11,11,1], [10,10,0], [11,10,0], [13,10,0], [11,10,0,-1], [10,10,0], + [9,10,0], [10,10,0], [10,10,0,-1], [9,8,1], [9,13,3], [8,10,3], [7,11,1], [6,7,1], + [7,13,3], [7,10,3], [7,11,1], [5,8,1], [8,8,1], [8,11,1], [8,9,3], [8,7,0], + [7,13,3], [8,7,1], [7,10,3], [8,7,1], [8,7,1], [8,8,1], [8,13,3], [9,10,3], + [9,13,3], [9,8,1], [6,8,1], [8,11,1], [12,7,1], [6,10,3,-1], [6,9,2], [9,10,3], + [14,4,-3], [14,4,0], [14,4,-3], [17,4,0,3], [3,4,-3], [3,4,-3], [7,7,0], [7,7,0], + [7,8,1], [5,7,0,-1], [7,7,0], [7,10,3], [7,10,3], [7,10,3], [7,11,1], [7,10,3], + [7,11,1], [7,10,3], [2,2,0,-1], [2,5,3,-1], [9,9,1,-1], [7,15,4], [9,9,1,-1], [7,7,0], + [8,11,1], [10,10,0], [11,10,0], [11,11,1], [12,10,0], [11,10,0], [11,10,0], [11,11,1], + [13,10,0], [7,10,0], [8,11,1,-1], [13,10,0], [9,10,0], [15,10,0], [16,10,0,3], [11,11,1], + [11,10,0], [11,13,3], [11,11,1], [9,11,1], [10,10,0], [10,11,1,-1], [11,11,1], [14,11,1], + [15,10,0,3], [11,10,0], [10,10,0], [5,12,1], [4,13,3,-1], [5,13,3], [12,4,-1,-1], [12,4,-2,-1], + [6,11,1], [7,8,1], [6,11,1], [6,8,1], [8,11,1], [6,8,1], [8,13,3], [7,10,3], + [8,11,1], [4,11,1], [7,13,3,1], [7,11,1], [4,11,1], [12,8,1], [8,8,1], [7,8,1], + [8,10,3,1], [7,10,3], [6,8,1], [6,8,1], [5,10,1], [8,8,1], [7,8,1], [10,8,1], + [8,8,1], [7,10,3], [7,8,1], [4,8,1], [6,10,3,1], [8,10,3,-1], [7,3,-7,-2], [6,3,-7,-3], + [6,22,39,55,72,89,105,122,138,155,172,188,205,221,238,255], + [19,36,52,69,85,102,119,135], + [273,146] + ], + cmsy10: [ + [9,1,-3,-1], [2,3,-2,-1], [7,7,0,-2], [5,7,0,-1], [10,9,1], [7,7,0], [10,10,0], [10,10,3], + [11,11,2], [11,11,2], [11,11,2], [11,11,2], [11,11,2], [14,13,3], [7,7,0], [7,7,0], + [10,7,0], [10,7,0], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], + [11,5,-1], [10,7,0], [9,9,1,-1], [9,9,1,-1], [14,9,1], [14,9,1], [9,9,1,-1], [9,9,1,-1], + [13,5,-1,-1], [13,5,-1], [5,13,3,-1], [5,13,3,-1], [12,5,-1,-1], [14,13,3], [14,13,3], [10,7,0], + [13,9,1,-1], [13,9,1], [8,13,3], [8,13,3], [14,9,1], [14,13,3], [14,13,3], [10,8,1], + [4,8,0], [14,8,1], [7,9,1,-1], [8,9,1,-1], [12,10,0], [12,10,3], [7,13,3,-2], [2,5,-1], + [8,11,1], [7,10,0], [9,4,-1], [7,12,1], [10,11,1], [10,11,1], [9,10,0,-1], [10,10,0], + [8,10,0], [11,11,1], [10,11,1], [8,11,1], [11,10,0], [8,11,1], [12,11,1], [9,12,2], + [12,11,1], [10,10,0,1], [12,12,2], [11,11,1], [9,11,1], [16,11,1], [15,12,1,1], [11,11,1], + [11,11,1], [10,12,2,-1], [12,11,1], [9,11,1], [11,10,0], [11,11,1,1], [10,11,1], [15,11,1], + [12,10,0], [10,12,2], [11,10,0], [9,10,1], [9,10,1], [9,10,1], [8,10,1,-1], [9,10,1], + [8,10,0], [8,10,0], [4,15,4,-2], [4,15,4], [4,15,4,-2], [4,15,4], [5,15,4,-1], [5,15,4,-1], + [4,15,4,-1], [4,15,4], [2,15,4,-1], [5,15,4,-1], [5,15,4,-1], [8,15,4], [7,15,4], [4,11,2], + [11,15,14,-1], [10,10,0], [11,11,1], [7,13,3], [9,9,0], [9,9,0], [9,11,2,-1], [9,11,2,-1], + [5,13,3,-1], [6,13,3], [6,13,3], [8,13,3], [11,13,2], [10,14,3], [11,11,1], [11,13,2], + [6,26,46,66,86,106,125,145,165,185,205,225,245,265,285,305], + [20,48,77,105,134,162,190,219], + [327,243] + ], + cmex10: [ + [4,18,17,-2], [5,18,17], [4,18,17,-2], [3,18,17], [5,18,17,-2], [4,18,17], [5,18,17,-2], [4,18,17], + [6,18,17,-1], [6,18,17,-1], [5,18,17,-1], [5,18,17,-1], [1,10,9,-2], [4,10,9,-2], [8,18,17], [8,17,16], + [6,26,25,-2], [6,26,25], [8,34,33,-2], [8,34,33], [5,34,33,-3], [4,34,33], [5,34,33,-3], [5,34,33], + [5,34,33,-3], [5,34,33], [8,34,33,-1], [8,34,33,-1], [8,34,33,-1], [8,34,33,-1], [14,34,33], [14,34,33], + [8,43,42,-3], [8,43,42], [5,43,42,-3], [5,43,42], [6,43,42,-3], [6,43,42], [6,43,42,-3], [6,43,42], + [8,43,42,-2], [8,43,42,-2], [8,43,42,-2], [9,43,42,-1], [17,43,42], [17,43,42], [11,26,25], [11,26,25], + [8,26,25,-4], [9,26,25], [6,26,25,-4], [5,26,25], [6,26,25,-4], [5,26,25], [2,9,9,-4], [2,9,9,-3], + [5,13,13,-5], [6,13,13,-2], [5,14,13,-5], [6,14,13,-2], [6,27,26,-2], [5,27,26,-5], [3,6,5,-5], [1,9,9,-4], + [8,26,25,-4], [9,26,25], [2,10,9,-4], [3,10,9,-6], [7,26,25,-1], [6,26,25,-1], [11,14,14], [15,20,20], + [9,16,16], [14,31,31], [15,14,14], [21,20,20], [15,14,14], [21,20,20], [15,14,14], [21,20,20], + [14,14,14], [13,14,14], [9,16,16], [11,14,14], [11,14,14], [11,14,14], [11,14,14], [11,14,14], + [20,20,20], [18,20,20], [14,31,31], [15,20,20], [15,20,20], [15,20,20], [15,20,20], [15,20,20], + [13,14,14], [18,20,20], [8,3,-8], [14,3,-8], [21,3,-8], [8,3,-8], [14,3,-8], [20,3,-8], + [4,26,25,-3], [4,26,25], [5,26,25,-3], [5,26,25], [5,26,25,-3], [5,26,25], [7,26,25,-1], [7,26,25,-1], + [14,18,17,-1], [14,26,25,-1], [14,34,33,-1], [14,43,42,-1], [10,26,25,-1], [2,10,9,-9], [6,9,8,-9], [5,9,9,-3], + [7,9,9,-1], [7,9,9,-1], [8,5,3,1], [8,5,3,1], [8,5,0,1], [8,5,0,1], [11,9,9], [11,9,9], + [6,31,56,82,107,132,157,182,207,232,257,282,307,332,358,383], + [23,84,146,208,269,331,392,454], + [410,514] + ], + cmbx10: [ + [9,10,0], [13,10,0], [12,11,1], [11,10,0], [10,10,0], [12,10,0], [10,10,0,-1], [11,10,0,-1], + [11,10,0], [11,10,0,-1], [11,10,0], [11,10,0], [9,10,0], [9,10,0], [13,10,0], [13,10,0], + [4,7,0], [5,10,3,1], [4,3,-7,-1], [4,3,-7,-3], [4,2,-7,-2], [6,3,-7,-1], [6,2,-7,-1], [4,3,-7,-4], + [6,3,3,-1], [8,10,0], [12,8,1], [12,8,1], [8,10,2], [14,10,0], [15,11,1,-1], [12,12,1], + [5,2,-4], [3,10,0,-1], [7,6,-4], [12,13,3,-1], [8,12,1], [13,12,1], [12,11,1], [3,5,-5,-1], + [5,15,4,-1], [4,15,4,-1], [6,7,-4,-1], [11,11,2,-1], [3,6,3,-1], [5,2,-2], [3,3,0,-1], [6,15,4,-1], + [8,11,1], [6,10,0,-1], [8,10,0], [8,11,1], [8,10,0], [8,11,1], [8,11,1], [7,11,1,-1], + [8,11,1], [8,11,1], [3,7,0,-1], [3,10,3,-1], [3,10,3,-1], [11,5,-1,-1], [6,10,3,-1], [6,10,0,-1], + [12,11,1], [12,10,0], [11,10,0], [11,11,1], [12,10,0], [10,10,0], [10,10,0], [12,11,1], + [12,10,0], [6,10,0], [8,11,1], [12,10,0], [9,10,0], [15,10,0], [12,10,0], [12,11,1], + [10,10,0], [12,13,3], [12,11,1], [8,11,1], [11,10,0], [12,11,1], [12,10,0], [17,10,0], + [12,10,0], [12,10,0], [8,10,0,-1], [3,15,4,-1], [6,6,-4,-2], [3,15,4], [4,3,-7,-2], [3,3,-7,-1], + [4,6,-4], [8,7,0], [9,10,0], [7,7,0], [9,11,1], [7,7,0], [7,10,0], [8,10,3], + [9,10,0], [4,10,0], [5,13,3,1], [9,10,0], [5,10,0], [14,7,0], [9,7,0], [8,7,0], + [9,10,3], [9,10,3], [7,7,0], [6,8,1], [6,10,1], [9,7,0], [8,7,0], [12,7,0], + [9,7,0], [8,10,3], [7,7,0], [8,2,-3], [16,2,-3], [5,3,-7,-2], [6,2,-8,-1], [6,3,-7,-1], + [6,26,45,65,85,104,124,144,164,183,203,223,243,262,282,302], + [19,36,52,69,85,102,119,135], + [324,146] + ], + cmti10: [ + [9,10,0,-1], [10,10,0,-1], [9,11,1,-2], [9,10,0], [10,10,0,-1], [11,10,0,-1], [10,10,0,-1], [9,10,0,-3], + [9,10,0,-2], [9,10,0,-3], [10,10,0,-1], [12,13,3,1], [10,13,3,1], [10,13,3,1], [14,13,3,1], [15,13,3,1], + [4,8,1,-1], [6,10,3,1], [2,3,-7,-4], [4,3,-7,-4], [4,2,-7,-4], [4,3,-7,-4], [5,2,-7,-3], [4,3,-7,-6], + [4,3,3,-1], [9,13,3,1], [9,8,1,-1], [9,8,1,-1], [7,10,2,-1], [13,10,0,-1], [13,11,1,-2], [15,12,1,3], + [4,2,-4,-1], [5,10,0,-1], [6,5,-5,-2], [11,13,3,-1], [9,11,1,-1], [10,12,1,-2], [11,11,1,-1], [3,5,-5,-3], + [6,15,4,-2], [6,15,4], [6,7,-4,-2], [9,9,1,-2], [3,5,3,-1], [4,2,-2,-1], [2,2,0,-1], [9,15,4], + [7,11,1,-1], [6,10,0,-1], [7,11,1,-1], [7,11,1,-1], [7,13,3], [7,11,1,-1], [7,11,1,-1], [7,11,1,-2], + [7,11,1,-1], [7,11,1,-1], [4,6,0,-1], [4,9,3,-1], [5,10,3], [10,5,-1,-1], [6,10,3,-1], [6,10,0,-2], + [9,11,1,-2], [9,10,0,-1], [10,10,0,-1], [10,11,1,-2], [10,10,0,-1], [10,10,0,-1], [10,10,0,-1], [10,11,1,-2], + [11,10,0,-1], [7,10,0], [8,11,1,-1], [11,10,0,-1], [8,10,0,-1], [13,10,0,-1], [11,10,0,-1], [9,11,1,-2], + [10,10,0,-1], [9,13,3,-2], [9,11,1,-1], [8,11,1,-1], [10,10,0,-2], [10,11,1,-2], [9,11,1,-3], [12,11,1,-3], + [15,10,0,3], [10,10,0,-3], [9,10,0,-1], [6,15,4,-1], [6,5,-5,-3], [6,15,4,1], [5,3,-7,-3], [2,2,-8,-3], + [3,5,-5,-2], [7,8,1,-1], [6,11,1,-1], [6,8,1,-1], [7,11,1,-1], [6,8,1,-1], [8,13,3,1], [7,10,3], + [7,11,1,-1], [4,11,1,-1], [6,13,3,1], [6,11,1,-1], [4,11,1,-1], [11,8,1,-1], [8,8,1,-1], [7,8,1,-1], + [8,10,3], [6,10,3,-1], [6,8,1,-1], [5,8,1,-1], [5,10,1,-1], [7,8,1,-1], [6,8,1,-1], [9,8,1,-1], + [8,8,1], [7,10,3,-1], [6,8,1,-1], [7,1,-3,-1], [14,1,-3,-1], [11,7,-3,3], [5,2,-8,-3], [5,2,-8,-3], + [6,23,40,56,73,90,107,124,141,158,175,192,209,226,243,260], + [19,36,52,69,85,102,119,135], + [279,146] + ] +}); + +jsMath.Img.AddFont(120,{ + cmr10: [ + [10,12,0], [14,12,0], [12,13,1,-1], [12,13,0], [11,12,0], [13,12,0], [11,12,0,-1], [12,12,0,-1], + [11,12,0,-1], [12,12,0,-1], [12,12,0], [11,12,0], [9,12,0], [9,12,0], [14,12,0], [14,12,0], + [5,8,0], [5,12,4,1], [4,4,-8,-1], [4,4,-8,-3], [5,3,-8,-2], [6,4,-8,-1], [7,1,-9,-1], [4,4,-9,-4], + [5,4,4,-2], [8,13,1], [12,9,1], [13,9,1], [8,11,2], [15,12,0], [16,13,1,-1], [12,14,1,-1], + [5,3,-4], [3,13,0,-1], [6,6,-6], [13,16,4,-1], [7,14,1,-1], [13,14,1,-1], [13,14,1], [3,6,-6,-1], + [5,17,4,-1], [4,17,4,-1], [7,8,-5,-1], [12,12,2,-1], [3,6,4,-1], [5,2,-3], [3,2,0,-1], [7,17,4,-1], + [8,13,1], [7,12,0,-1], [8,12,0], [8,13,1], [8,12,0], [8,13,1], [8,13,1], [8,13,1,-1], + [8,13,1], [8,13,1], [3,8,0,-1], [3,12,4,-1], [3,13,4,-1], [12,5,-2,-1], [6,13,4,-1], [6,12,0,-1], + [12,13,1,-1], [13,13,0], [11,12,0], [11,13,1,-1], [12,12,0], [11,12,0], [11,12,0], [12,13,1,-1], + [13,12,0], [6,12,0], [8,13,1], [13,12,0], [10,12,0], [15,12,0], [13,12,0], [12,13,1,-1], + [11,12,0], [12,16,4,-1], [13,13,1], [8,13,1,-1], [12,12,0], [13,13,1], [13,13,1], [18,13,1], + [13,12,0], [13,12,0], [9,12,0,-1], [3,17,4,-2], [6,6,-6,-2], [3,17,4], [5,3,-9,-2], [3,3,-9,-1], + [3,6,-6,-1], [9,9,1], [9,13,1], [7,9,1], [9,13,1], [7,9,1], [6,12,0], [9,12,4], + [9,12,0], [5,12,0], [5,16,4,1], [9,12,0], [5,12,0], [14,8,0], [9,8,0], [8,9,1], + [9,12,4], [9,12,4], [7,8,0], [7,9,1], [6,12,1], [9,9,1], [9,9,1], [12,9,1], + [9,8,0], [9,12,4], [7,8,0], [9,1,-4], [17,1,-4], [6,4,-8,-2], [6,3,-9,-1], [6,3,-9,-1], + [7,27,48,68,89,109,130,150,171,191,211,232,252,273,293,314], + [22,42,61,81,101,121,141,161], + [337,175] + ], + cmmi10: [ + [13,12,0], [13,13,0,-1], [13,13,1], [12,12,0], [13,12,0,-1], [15,12,0], [13,12,0,-1], [12,12,0], + [11,12,0], [12,12,0], [13,12,0,-1], [11,9,1], [10,16,4], [10,12,4], [8,14,1], [7,9,1], + [8,16,4], [9,12,4], [8,13,1], [5,9,1,-1], [9,9,1,-1], [9,13,1,-1], [10,12,4], [8,8,0,-1], + [8,16,4], [10,9,1], [9,12,4], [10,9,1], [9,9,1], [9,9,1], [10,16,4], [10,12,4], + [11,16,4], [11,9,1], [8,9,1], [10,13,1], [14,9,1], [8,12,4,-1], [7,10,2], [11,12,4], + [15,6,-3,-1], [15,6,1,-1], [15,6,-3,-1], [15,6,1,-1], [3,4,-4,-1], [3,5,-3,-1], [8,9,0], [8,9,0], + [8,9,1], [6,8,0,-1], [8,8,0], [8,12,4], [8,12,4], [8,12,4], [8,13,1], [8,12,4,-1], + [8,13,1], [8,12,4], [3,2,0,-1], [3,6,4,-1], [11,11,1,-1], [7,17,4,-1], [11,11,1,-1], [9,9,0], + [10,14,1], [13,13,0], [13,12,0], [13,13,1], [14,12,0], [13,12,0], [13,12,0], [13,13,1], + [15,12,0], [9,12,0], [10,13,1,-1], [15,12,0], [11,12,0], [18,12,0], [18,12,0,3], [13,13,1], + [13,12,0], [13,16,4], [13,13,1], [10,13,1,-1], [12,12,0], [12,13,1,-1], [12,13,1,-1], [17,13,1,-1], + [18,12,0,3], [13,12,0], [12,12,0,-1], [6,14,1], [5,17,4,-1], [5,16,4,-1], [15,5,-2,-1], [15,5,-2,-1], + [7,13,1], [9,9,1], [7,13,1], [8,9,1], [9,13,1], [8,9,1], [9,16,4,-1], [8,12,4], + [9,13,1,-1], [5,13,1], [8,16,4,1], [8,13,1,-1], [5,13,1], [15,9,1], [10,9,1], [8,9,1], + [10,12,4,1], [8,12,4], [8,9,1], [7,9,1], [6,12,1], [10,9,1], [8,9,1], [12,9,1], + [9,9,1], [9,12,4], [8,9,1], [5,9,1], [8,12,4,1], [10,12,4,-1], [8,4,-8,-3], [7,3,-9,-4], + [7,27,46,66,86,106,126,146,166,186,206,226,246,266,286,306], + [22,42,61,81,101,121,141,161], + [328,175] + ], + cmsy10: [ + [11,2,-3,-1], [3,3,-3,-1], [9,9,0,-2], [7,8,0,-1], [12,10,1,-1], [9,9,0], [12,12,0,-1], [12,12,3,-1], + [12,12,2,-1], [12,12,2,-1], [12,12,2,-1], [12,12,2,-1], [12,12,2,-1], [15,17,4,-1], [7,7,-1,-1], [7,7,-1,-1], + [12,9,0,-1], [12,8,0,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], + [12,5,-2,-1], [12,8,-1,-1], [11,11,1,-1], [11,11,1,-1], [15,11,1,-1], [15,11,1,-1], [11,11,1,-1], [11,11,1,-1], + [15,7,-1,-1], [15,7,-1,-1], [7,16,4,-1], [7,16,4,-1], [15,7,-1,-1], [15,16,4,-1], [15,16,4,-1], [12,8,0,-1], + [15,10,1,-1], [15,10,1,-1], [10,16,4], [10,16,4], [17,10,1], [15,16,4,-1], [15,16,4,-1], [12,9,1,-1], + [5,10,0], [15,9,1,-1], [9,11,1,-1], [9,11,1,-1], [13,13,0,-1], [13,13,4,-1], [9,17,4,-2], [1,7,-1,-1], + [10,13,1], [8,12,0,-1], [10,5,-1,-1], [8,15,2], [12,14,1], [11,13,1,-1], [12,12,0,-1], [12,12,0,-1], + [9,12,0,-1], [14,14,1], [12,13,1], [9,13,1], [13,12,0], [10,13,1], [14,13,1], [11,14,2], + [14,13,1], [12,12,0,1], [15,14,2], [13,13,1], [11,13,1], [19,13,1], [18,15,1,1], [13,13,1,-1], + [13,13,1], [12,15,3,-2], [14,13,1], [11,13,1], [14,13,0], [13,13,1,1], [12,13,1], [18,13,1], + [14,12,0], [13,15,3], [13,12,0], [10,12,1,-1], [10,12,1,-1], [10,12,1,-1], [10,12,1,-1], [10,12,1,-1], + [9,12,0,-1], [9,12,0,-1], [4,18,5,-3], [5,18,5], [5,18,5,-3], [5,18,5], [7,18,5,-1], [7,18,5,-1], + [5,18,5,-1], [4,18,5,-1], [1,18,5,-2], [5,18,5,-2], [7,18,5,-1], [10,18,5], [7,18,5,-1], [3,12,2,-1], + [14,18,17,-1], [12,12,0], [14,13,1], [7,17,4,-1], [10,11,0,-1], [10,11,0,-1], [11,14,3,-1], [11,14,3,-1], + [6,16,4,-1], [6,16,4,-1], [6,16,4,-1], [9,16,4,-1], [13,16,3], [12,16,3,-1], [12,14,1,-1], [12,16,3,-1], + [7,31,55,79,103,127,151,174,198,222,246,270,294,318,342,366], + [23,57,91,125,159,193,227,261], + [392,290] + ], + cmex10: [ + [5,21,20,-2], [6,21,20], [4,21,20,-3], [4,21,20], [5,21,20,-3], [5,21,20], [5,21,20,-3], [5,21,20], + [6,21,20,-2], [6,21,20,-2], [6,21,20,-1], [6,21,20,-1], [2,12,11,-2], [5,12,11,-2], [8,21,20,-1], [8,21,20,-1], + [7,31,30,-3], [8,31,30], [9,42,41,-3], [9,41,40], [5,42,41,-4], [5,42,41], [6,42,41,-4], [6,42,41], + [6,42,41,-4], [6,42,41], [9,41,40,-2], [9,42,41,-2], [9,41,40,-2], [10,41,40,-1], [16,41,40,-1], [16,41,40,-1], + [9,52,51,-4], [10,52,51], [6,52,51,-4], [6,52,51], [7,52,51,-4], [7,52,51], [7,52,51,-4], [7,52,51], + [10,52,51,-2], [10,52,51,-2], [10,52,51,-2], [11,52,51,-1], [20,52,51,-1], [20,52,51,-1], [12,31,30,-1], [12,31,30,-1], + [10,32,31,-5], [10,32,31], [7,31,30,-5], [6,31,30], [7,31,30,-5], [6,31,30], [2,11,11,-5], [2,11,11,-4], + [7,16,16,-6], [7,16,16,-2], [7,17,16,-6], [6,17,16,-3], [7,32,31,-2], [7,32,31,-6], [3,7,6,-6], [1,11,11,-5], + [10,31,30,-5], [10,31,30], [2,12,11,-5], [2,12,11,-8], [7,31,30,-2], [8,31,30,-1], [13,17,17,-1], [17,24,24,-1], + [10,19,19,-1], [15,38,38,-1], [17,17,17,-1], [24,24,24,-1], [17,17,17,-1], [24,24,24,-1], [17,17,17,-1], [24,24,24,-1], + [16,17,17,-1], [14,17,17,-1], [10,19,19,-1], [13,17,17,-1], [13,17,17,-1], [13,17,17,-1], [13,17,17,-1], [13,17,17,-1], + [23,24,24,-1], [20,24,24,-1], [15,38,38,-1], [17,24,24,-1], [17,24,24,-1], [17,24,24,-1], [17,24,24,-1], [17,24,24,-1], + [14,17,17,-1], [20,24,24,-1], [10,4,-9], [17,4,-9], [25,4,-9], [10,3,-10], [17,3,-10], [25,3,-10], + [5,31,30,-3], [5,31,30], [6,31,30,-3], [6,31,30], [6,31,30,-3], [6,31,30], [8,31,30,-2], [8,31,30,-2], + [16,21,20,-2], [16,31,30,-2], [16,42,41,-2], [16,52,51,-2], [11,32,31,-2], [2,12,11,-11], [8,11,10,-11], [5,11,11,-4], + [9,11,11,-1], [8,10,10,-2], [9,6,4,1], [9,6,4,1], [9,6,0,1], [9,6,0,1], [12,11,11,-1], [12,10,10,-1], + [7,38,68,98,128,158,188,218,248,278,309,339,369,399,429,459], + [26,100,174,248,322,396,470,544], + [492,616] + ], + cmbx10: [ + [11,12,0], [15,12,0,-1], [14,13,1,-1], [13,12,0], [13,12,0], [15,12,0], [12,12,0,-1], [13,12,0,-1], + [12,12,0,-1], [13,12,0,-1], [13,12,0,-1], [13,12,0], [11,12,0], [11,12,0], [16,12,0], [16,12,0], + [5,8,0], [6,12,4,1], [4,4,-8,-2], [4,4,-8,-4], [6,2,-9,-2], [7,4,-8,-1], [8,2,-9,-1], [5,3,-9,-5], + [6,4,4,-2], [10,13,1], [14,9,1], [15,9,1], [10,12,2], [18,12,0], [19,13,1,-1], [14,14,1,-1], + [6,3,-4], [4,12,0,-1], [8,6,-6], [15,16,4,-1], [8,14,1,-1], [15,14,1,-1], [15,13,1], [4,6,-6,-1], + [6,17,4,-1], [5,17,4,-1], [8,8,-5,-1], [13,14,3,-1], [4,7,4,-1], [6,2,-3], [3,3,0,-1], [8,17,4,-1], + [9,13,1], [8,12,0,-1], [8,12,0,-1], [9,13,1], [10,12,0], [8,12,1,-1], [9,13,1], [9,13,1,-1], + [9,13,1], [9,13,1], [3,8,0,-1], [4,12,4,-1], [4,13,4,-1], [13,6,-1,-1], [8,13,4,-1], [8,12,0,-1], + [14,13,1,-1], [14,12,0], [13,12,0], [12,13,1,-1], [14,12,0], [13,12,0], [12,12,0], [14,13,1,-1], + [15,12,0], [7,12,0], [9,13,1], [15,12,0], [11,12,0], [18,12,0], [15,12,0], [13,13,1,-1], + [13,12,0], [13,16,4,-1], [15,13,1], [9,13,1,-1], [13,12,0], [15,13,1], [15,13,1], [20,13,1], + [15,12,0], [15,12,0], [10,12,0,-1], [3,17,4,-2], [8,7,-5,-2], [4,17,4], [6,3,-9,-2], [3,3,-9,-1], + [3,7,-5,-1], [10,9,1], [11,13,1], [8,9,1], [11,13,1], [9,9,1], [8,12,0], [10,12,4], + [11,12,0], [5,12,0], [6,16,4,1], [10,12,0], [5,12,0], [16,8,0], [11,8,0], [10,9,1], + [11,12,4], [11,12,4], [8,8,0], [7,9,1], [7,12,1], [11,9,1], [10,8,0], [14,8,0], + [10,8,0], [10,12,4], [8,8,0], [10,1,-4], [20,1,-4], [7,4,-8,-2], [7,2,-10,-1], [7,3,-9,-1], + [7,31,54,78,102,125,149,173,196,220,244,268,291,315,339,362], + [22,42,61,81,101,121,141,161], + [388,175] + ], + cmti10: [ + [11,12,0,-1], [12,12,0,-1], [12,13,1,-2], [10,13,0,-1], [12,12,0,-1], [14,12,0,-1], [13,12,0,-1], [12,12,0,-3], + [11,12,0,-2], [11,12,0,-3], [12,12,0,-1], [14,16,4,1], [12,16,4,1], [12,16,4,1], [17,16,4,1], [17,16,4,1], + [5,9,1,-1], [7,12,4,1], [3,4,-8,-5], [5,4,-8,-5], [5,3,-8,-4], [6,4,-8,-4], [6,1,-9,-4], [4,4,-9,-8], + [5,4,4,-1], [11,16,4,1], [12,9,1,-1], [12,9,1,-1], [9,11,2,-1], [15,12,0,-1], [16,13,1,-2], [17,14,1,3], + [5,3,-4,-1], [5,13,0,-2], [6,6,-6,-3], [12,16,4,-2], [11,13,1,-1], [13,14,1,-2], [12,14,1,-2], [4,6,-6,-3], + [7,17,4,-2], [7,17,4], [7,8,-5,-3], [11,11,1,-2], [3,6,4,-1], [5,2,-3,-1], [2,2,0,-2], [11,17,4], + [8,13,1,-2], [6,12,0,-2], [9,13,1,-1], [9,13,1,-1], [8,16,4], [9,13,1,-1], [8,13,1,-2], [9,13,1,-2], + [9,13,1,-1], [9,13,1,-1], [4,8,0,-2], [5,12,4,-1], [5,13,4,-1], [12,5,-2,-2], [7,13,4,-1], [7,13,0,-3], + [12,13,1,-2], [11,13,0,-1], [12,12,0,-1], [12,13,1,-2], [13,12,0,-1], [12,12,0,-1], [12,12,0,-1], [12,13,1,-2], + [14,12,0,-1], [8,12,0,-1], [10,13,1,-1], [14,12,0,-1], [10,12,0,-1], [16,12,0,-1], [14,12,0,-1], [12,13,1,-2], + [12,12,0,-1], [12,16,4,-2], [12,13,1,-1], [10,13,1,-1], [11,12,0,-3], [12,13,1,-3], [12,13,1,-3], [16,13,1,-3], + [17,12,0,3], [12,12,0,-3], [11,12,0,-1], [7,17,4,-1], [7,6,-6,-4], [7,17,4,1], [5,3,-9,-4], [3,3,-9,-4], + [3,6,-6,-3], [8,9,1,-1], [6,13,1,-2], [7,9,1,-1], [9,13,1,-1], [6,9,1,-2], [9,16,4,1], [8,12,4,-1], + [8,13,1,-1], [5,12,1,-1], [7,16,4,1], [8,13,1,-1], [5,13,1,-1], [14,9,1,-1], [9,9,1,-1], [8,9,1,-1], + [9,12,4], [8,12,4,-1], [8,9,1,-1], [6,9,1,-1], [6,12,1,-1], [9,9,1,-1], [8,9,1,-1], [11,9,1,-1], + [8,9,1,-1], [8,12,4,-1], [7,9,1,-1], [9,1,-4,-1], [16,1,-4,-2], [13,8,-4,3], [6,3,-9,-4], [6,3,-9,-4], + [7,27,47,68,88,109,129,149,170,190,210,231,251,271,292,312], + [22,42,61,81,101,121,141,161], + [335,175] + ] +}); + +jsMath.Img.AddFont(144,{ + cmr10: [ + [12,14,0], [15,15,0,-1], [14,16,1,-1], [14,15,0], [13,14,0], [15,14,0], [13,14,0,-1], [14,15,0,-1], + [13,14,0,-1], [14,14,0,-1], [13,15,0,-1], [13,15,0], [11,15,0], [11,15,0], [16,15,0], [16,15,0], + [5,9,0], [6,14,5,1], [4,4,-10,-2], [4,4,-10,-4], [6,3,-10,-2], [6,4,-10,-2], [8,1,-11,-1], [5,5,-10,-5], + [6,5,5,-2], [10,16,1], [13,10,1,-1], [15,10,1], [10,13,2], [18,14,0], [19,15,1,-1], [14,16,1,-1], + [6,3,-5], [3,15,0,-1], [7,6,-8], [15,18,4,-1], [8,16,1,-1], [15,17,2,-1], [15,16,1], [4,6,-8,-1], + [5,20,5,-2], [5,20,5,-1], [8,9,-6,-1], [14,14,2,-1], [3,7,4,-1], [6,2,-3], [3,3,0,-1], [8,20,5,-1], + [10,15,1], [8,14,0,-1], [8,14,0,-1], [10,15,1], [10,14,0], [8,15,1,-1], [10,15,1], [9,15,1,-1], + [10,15,1], [10,15,1], [3,9,0,-1], [3,13,4,-1], [3,15,5,-1], [14,6,-2,-1], [8,15,5,-1], [8,15,0,-1], + [14,16,1,-1], [15,15,0], [13,14,0], [13,16,1,-1], [15,14,0], [13,14,0], [13,14,0], [14,16,1,-1], + [15,14,0], [7,14,0], [10,15,1], [15,14,0], [12,14,0], [18,14,0], [15,14,0], [14,16,1,-1], + [13,14,0], [14,19,4,-1], [15,15,1], [9,16,1,-1], [14,14,0], [15,15,1], [15,15,1], [21,15,1], + [15,14,0], [15,14,0], [11,14,0,-1], [4,20,5,-2], [7,7,-7,-3], [4,20,5], [6,3,-11,-2], [3,3,-11,-1], + [3,7,-7,-1], [10,10,1], [11,15,1], [9,10,1], [11,15,1], [9,10,1], [8,15,0], [10,14,5], + [11,14,0], [5,14,0], [6,19,5,1], [11,14,0], [5,14,0], [17,9,0], [11,9,0], [10,10,1], + [11,13,4], [11,13,4], [8,9,0], [8,10,1], [7,14,1], [11,10,1], [11,10,1], [14,10,1], + [11,9,0], [11,13,4], [8,9,0], [10,1,-5], [20,1,-5], [7,4,-10,-2], [8,3,-11,-1], [6,3,-11,-2], + [8,33,57,82,106,131,155,180,205,229,254,278,303,327,352,377], + [26,50,74,98,122,145,169,193], + [404,209] + ], + cmmi10: [ + [15,14,0], [15,15,0,-1], [14,16,1,-1], [14,15,0], [15,14,0,-1], [18,14,0], [15,14,0,-1], [14,14,0], + [13,14,0], [14,14,0], [15,15,0,-1], [12,10,1], [12,18,4], [11,14,5], [9,16,1], [7,10,1,-1], + [10,19,5], [10,14,5], [10,15,1], [6,10,1,-1], [10,10,1,-1], [10,15,1,-1], [12,14,5], [10,9,0,-1], + [9,19,5], [12,10,1], [10,14,5], [12,10,1], [11,10,1], [11,10,1], [11,18,4,-1], [12,14,5], + [13,18,4], [13,10,1], [9,10,1], [12,16,1], [17,10,1], [9,13,4,-1], [9,12,3], [12,14,5,-1], + [18,7,-4,-1], [18,7,1,-1], [18,7,-4,-1], [18,7,1,-1], [4,6,-4,-1], [4,6,-4,-1], [10,10,0], [10,10,0], + [10,10,1], [7,9,0,-2], [8,9,0,-1], [10,14,5], [10,14,4], [8,14,5,-1], [10,15,1], [9,15,5,-1], + [10,15,1], [10,14,5], [3,3,0,-1], [3,7,4,-1], [13,12,1,-1], [8,20,5,-1], [13,12,1,-1], [10,10,0], + [12,16,1], [15,15,0], [16,14,0], [15,16,1,-1], [17,14,0], [16,14,0], [15,14,0], [15,16,1,-1], + [18,14,0], [10,14,0], [12,15,1,-1], [18,14,0], [13,14,0], [21,14,0], [18,14,0], [14,16,1,-1], + [15,14,0], [14,19,4,-1], [15,15,1], [12,16,1,-1], [14,14,0], [15,15,1,-1], [15,15,1,-1], [20,15,1,-1], + [17,14,0], [16,14,0], [14,14,0,-1], [6,16,1,-1], [6,20,5,-1], [6,20,5,-1], [18,6,-2,-1], [18,6,-2,-1], + [8,15,1], [10,10,1], [8,15,1,-1], [9,10,1], [11,15,1], [9,10,1], [10,19,4,-1], [10,14,5], + [10,15,1,-1], [6,15,1], [9,19,5,1], [10,15,1,-1], [6,15,1], [17,10,1], [12,10,1], [10,10,1], + [11,13,4,1], [9,13,4], [9,10,1], [8,10,1,-1], [7,14,1], [11,10,1], [10,10,1], [14,10,1], + [11,10,1], [10,14,5], [9,10,1,-1], [6,10,1], [9,14,5,1], [12,14,5,-1], [10,5,-10,-3], [8,4,-10,-5], + [8,32,56,80,104,128,151,175,199,223,247,271,295,319,343,367], + [26,50,74,98,122,145,169,193], + [393,209] + ], + cmsy10: [ + [13,2,-4,-1], [3,2,-4,-1], [10,10,0,-3], [8,10,0,-1], [14,12,1,-1], [10,10,0], [14,14,0,-1], [14,14,4,-1], + [14,14,2,-1], [14,14,2,-1], [14,14,2,-1], [14,14,2,-1], [14,14,2,-1], [18,20,5,-1], [8,8,-1,-1], [8,8,-1,-1], + [14,10,0,-1], [14,10,0,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], + [14,6,-2,-1], [14,9,-1,-1], [13,12,1,-1], [13,12,1,-1], [18,14,2,-1], [18,14,2,-1], [13,12,1,-1], [13,12,1,-1], + [18,8,-1,-1], [18,8,-1,-1], [8,18,4,-1], [8,18,4,-1], [18,8,-1,-1], [18,18,4,-1], [18,18,4,-1], [14,10,0,-1], + [18,12,1,-1], [18,12,1,-1], [12,18,4], [12,18,4], [19,12,1], [18,18,4,-1], [18,18,4,-1], [14,10,1,-1], + [6,11,-1], [18,10,1,-1], [11,12,1,-1], [11,12,1,-1], [16,15,0,-1], [16,15,5,-1], [11,20,5,-2], [2,8,-1,-1], + [11,15,1], [9,14,0,-1], [12,7,-1,-1], [9,18,2], [14,16,1,-1], [13,16,1,-1], [14,14,0,-1], [14,14,0,-1], + [11,14,0,-1], [16,16,1], [14,16,1], [11,15,1], [16,14,0], [12,16,1], [17,15,1], [12,18,3], + [17,15,1], [14,14,0,1], [16,17,3,-1], [15,16,1], [13,16,1], [23,15,1], [21,17,1,1], [15,15,1,-1], + [15,15,1], [14,18,3,-2], [17,15,1], [13,16,1], [16,15,0], [15,15,1,1], [14,15,1], [21,15,1], + [16,14,0,-1], [15,17,3], [16,14,0], [12,13,1,-1], [12,13,1,-1], [12,13,1,-1], [11,13,1,-1], [12,13,1,-1], + [10,14,0,-1], [11,14,0,-1], [6,20,5,-3], [6,20,5], [6,20,5,-3], [6,20,5], [8,20,5,-1], [8,20,5,-1], + [5,20,5,-2], [5,20,5,-1], [2,20,5,-2], [6,20,5,-2], [8,22,6,-1], [12,22,6], [8,20,5,-1], [4,14,2,-1], + [16,21,20,-1], [15,14,0], [15,15,1,-1], [9,20,5,-1], [12,12,0,-1], [12,12,0,-1], [14,16,3,-1], [13,16,3,-1], + [7,20,5,-1], [7,19,5,-1], [7,18,4,-1], [11,18,4,-1], [15,18,3], [14,19,4,-1], [14,16,1,-1], [14,18,3,-1], + [8,37,66,95,123,152,181,209,238,267,295,324,353,382,410,439], + [27,68,109,150,191,232,273,314], + [471,348] + ], + cmex10: [ + [6,24,23,-3], [6,24,23,-1], [4,25,24,-4], [5,25,24], [5,25,24,-4], [6,25,24], [5,25,24,-4], [6,25,24], + [8,25,24,-2], [8,25,24,-2], [6,25,24,-2], [7,24,23,-1], [2,14,13,-2], [7,14,13,-2], [10,25,24,-1], [10,24,23,-1], + [9,37,36,-3], [9,37,36], [10,49,48,-4], [11,49,48], [6,49,48,-5], [6,49,48], [7,49,48,-5], [7,49,48], + [7,49,48,-5], [7,49,48], [11,49,48,-2], [11,49,48,-2], [11,49,48,-2], [11,49,48,-2], [19,49,48,-1], [19,49,48,-1], + [11,61,60,-4], [12,61,60], [7,61,60,-5], [7,61,60], [8,61,60,-5], [8,61,60], [8,61,60,-5], [8,61,60], + [12,61,60,-2], [12,61,60,-2], [12,61,60,-2], [12,61,60,-2], [24,61,60,-1], [24,61,60,-1], [14,37,36,-1], [14,37,36,-1], + [12,37,36,-5], [12,37,36], [8,37,36,-6], [7,37,36], [8,37,36,-6], [7,37,36], [2,12,12,-6], [2,12,12,-5], + [8,19,19,-7], [8,19,19,-3], [8,19,18,-7], [8,19,18,-3], [8,38,37,-3], [8,38,37,-7], [4,8,7,-7], [2,12,12,-6], + [12,37,36,-5], [12,37,36], [3,14,13,-5], [3,14,13,-9], [9,36,35,-2], [9,37,36,-1], [15,20,20,-1], [21,28,28,-1], + [12,23,23,-1], [18,45,45,-1], [20,20,20,-1], [28,28,28,-1], [20,20,20,-1], [28,28,28,-1], [20,20,20,-1], [28,28,28,-1], + [19,20,20,-1], [17,20,20,-1], [12,23,23,-1], [15,20,20,-1], [15,20,20,-1], [15,20,20,-1], [15,20,20,-1], [15,20,20,-1], + [27,28,28,-1], [24,28,28,-1], [18,45,45,-1], [21,28,28,-1], [21,28,28,-1], [21,28,28,-1], [20,28,28,-1], [20,28,28,-1], + [17,20,20,-1], [24,28,28,-1], [12,4,-11], [20,5,-11], [29,5,-11], [11,3,-12], [20,3,-12], [29,3,-12], + [5,37,36,-4], [5,37,36], [7,37,36,-4], [6,37,36], [7,37,36,-4], [6,37,36], [9,37,36,-2], [9,37,36,-2], + [19,25,24,-2], [19,37,36,-2], [19,49,48,-2], [19,61,60,-2], [13,37,36,-2], [1,14,13,-14], [8,13,12,-14], [6,12,12,-5], + [9,12,12,-2], [9,12,12,-2], [11,8,5,1], [11,8,5,1], [11,7,0,1], [11,7,0,1], [14,12,12,-1], [14,12,12,-1], + [9,45,81,117,154,190,226,262,298,334,370,406,443,479,515,551], + [31,120,209,297,386,475,564,652], + [591,739] + ], + cmbx10: [ + [13,14,0], [17,14,0,-1], [16,15,1,-1], [16,14,0], [14,14,0,-1], [18,14,0], [15,14,0,-1], [16,14,0,-1], + [15,14,0,-1], [16,14,0,-1], [15,14,0,-1], [15,14,0], [12,14,0], [12,14,0], [19,14,0], [19,14,0], + [5,9,0,-1], [8,13,4,2], [5,4,-10,-2], [5,4,-10,-5], [7,3,-10,-2], [8,4,-10,-2], [9,2,-11,-1], [5,4,-10,-6], + [7,4,4,-2], [12,15,1], [16,10,1], [18,10,1], [11,13,2], [21,14,0], [22,15,1,-1], [16,16,1,-1], + [7,3,-5], [3,15,0,-2], [10,7,-7], [17,18,4,-1], [10,17,2,-1], [17,17,2,-1], [16,15,1,-1], [4,7,-7,-1], + [6,20,5,-2], [6,20,5,-1], [9,9,-6,-1], [16,16,3,-1], [4,8,4,-1], [7,3,-3], [4,4,0,-1], [10,20,5,-1], + [11,15,1], [9,13,0,-1], [10,14,0,-1], [10,15,1,-1], [11,14,0], [10,14,1,-1], [10,15,1,-1], [11,15,1,-1], + [10,15,1,-1], [10,15,1,-1], [4,9,0,-1], [4,13,4,-1], [3,15,5,-2], [16,6,-2,-1], [9,14,4,-1], [9,14,0,-1], + [16,15,1,-1], [17,14,0], [15,14,0], [15,15,1,-1], [17,14,0], [15,14,0], [14,14,0], [16,15,1,-1], + [18,14,0], [8,14,0], [11,15,1], [17,14,0], [13,14,0], [21,14,0], [18,14,0], [15,15,1,-1], + [15,14,0], [16,18,4,-1], [18,15,1], [11,15,1,-1], [16,14,0], [17,15,1], [17,15,1], [24,15,1], + [17,14,0], [17,14,0], [12,14,0,-1], [4,20,5,-2], [10,8,-6,-2], [4,20,5], [7,4,-10,-2], [4,4,-10,-1], + [4,8,-6,-1], [12,10,1], [12,15,1], [10,10,1], [12,15,1], [10,10,1], [9,14,0], [12,13,4], + [13,14,0], [5,14,0,-1], [8,18,4,2], [12,14,0], [5,14,0,-1], [19,9,0], [13,9,0], [11,10,1], + [12,13,4], [12,13,4], [9,9,0], [9,10,1], [8,14,1], [13,10,1], [12,9,0], [17,9,0], + [12,9,0], [12,13,4], [10,9,0], [12,1,-5], [23,1,-5], [7,5,-10,-3], [8,3,-11,-2], [8,3,-11,-2], + [8,37,65,94,122,150,179,207,236,264,293,321,349,378,406,435], + [26,50,74,98,122,145,169,193], + [466,209] + ], + cmti10: [ + [13,14,0,-1], [14,15,0,-1], [13,16,1,-3], [12,15,0,-1], [14,14,0,-1], [16,14,0,-1], [15,14,0,-1], [13,15,0,-4], + [12,14,0,-3], [13,14,0,-4], [14,15,0,-2], [17,19,4,1], [13,19,4,1], [14,19,4,1], [20,20,5,1], [20,20,5,1], + [6,10,1,-1], [8,13,4,1], [4,4,-10,-5], [5,4,-10,-6], [6,3,-10,-5], [7,4,-10,-5], [8,1,-11,-4], [5,5,-10,-9], + [5,4,4,-2], [13,19,4,1], [14,10,1,-1], [13,10,1,-2], [10,13,2,-1], [18,14,0,-1], [18,16,1,-3], [15,17,2,-2], + [5,3,-5,-2], [6,15,0,-2], [8,6,-8,-3], [15,18,4,-2], [13,16,1,-1], [14,17,2,-3], [14,16,1,-2], [4,6,-8,-4], + [8,20,5,-3], [8,20,5], [8,9,-6,-4], [12,13,2,-3], [4,7,4,-1], [6,2,-3,-1], [3,3,0,-2], [13,20,5], + [10,15,1,-2], [8,14,0,-2], [10,15,1,-1], [11,15,1,-1], [9,18,4,-1], [10,15,1,-2], [10,15,1,-2], [10,15,1,-3], + [9,15,1,-2], [9,15,1,-2], [4,9,0,-2], [5,13,4,-1], [6,15,5,-1], [14,6,-2,-2], [8,15,5,-1], [8,15,0,-3], + [13,16,1,-3], [13,15,0,-1], [14,14,0,-1], [14,16,1,-3], [15,14,0,-1], [14,14,0,-1], [14,14,0,-1], [14,16,1,-3], + [16,14,0,-1], [9,14,0,-1], [12,15,1,-1], [17,14,0,-1], [12,14,0,-1], [19,14,0,-1], [16,14,0,-1], [13,16,1,-3], + [14,14,0,-1], [13,19,4,-3], [14,15,1,-1], [12,16,1,-1], [13,14,0,-3], [13,15,1,-4], [14,15,1,-4], [18,15,1,-4], + [21,14,0,4], [14,14,0,-4], [13,14,0,-1], [8,20,5,-1], [8,7,-7,-5], [9,20,5,1], [6,4,-10,-5], [3,3,-11,-5], + [4,6,-8,-4], [9,10,1,-2], [8,15,1,-2], [8,10,1,-2], [10,15,1,-2], [8,10,1,-2], [10,19,4,1], [9,14,5,-1], + [10,15,1,-1], [6,14,1,-1], [9,18,4,1], [9,15,1,-1], [5,15,1,-1], [16,10,1,-1], [11,10,1,-1], [9,10,1,-2], + [11,13,4], [8,13,4,-2], [9,10,1,-1], [8,10,1,-1], [7,14,1,-1], [11,10,1,-1], [9,10,1,-1], [13,10,1,-1], + [10,10,1,-1], [10,13,4,-1], [9,10,1,-1], [9,1,-5,-2], [19,1,-5,-2], [7,4,-10,-5], [7,3,-11,-5], [6,3,-11,-5], + [8,32,57,81,106,130,155,179,204,228,252,277,301,326,350,375], + [26,50,74,98,122,145,169,193], + [402,209] + ] +}); + +jsMath.Img.AddFont(173,{ + cmr10: [ + [14,17,0], [18,18,0,-1], [17,18,1,-1], [16,18,0], [14,17,0,-1], [18,17,0], [15,17,0,-1], [17,17,0,-1], + [15,17,0,-1], [17,17,0,-1], [16,17,0,-1], [15,17,0], [13,17,0], [13,17,0], [20,17,0], [20,17,0], + [6,11,0], [6,16,5,1], [5,5,-12,-2], [5,5,-12,-5], [6,4,-12,-3], [8,5,-12,-2], [10,2,-13,-1], [6,5,-13,-6], + [6,5,5,-3], [12,18,1], [16,12,1,-1], [18,12,1], [12,16,3], [21,17,0], [23,18,1,-1], [17,20,2,-1], + [7,4,-6], [3,18,0,-2], [9,8,-9], [18,22,5,-1], [10,20,2,-1], [18,20,2,-1], [17,19,1,-1], [3,8,-9,-2], + [6,24,6,-2], [6,24,6,-1], [10,11,-7,-1], [17,16,2,-1], [3,8,5,-2], [7,2,-4], [3,3,0,-2], [10,24,6,-1], + [11,17,1], [8,16,0,-2], [10,16,0,-1], [10,17,1,-1], [12,17,0], [10,17,1,-1], [10,17,1,-1], [11,18,1,-1], + [10,17,1,-1], [10,17,1,-1], [3,11,0,-2], [3,16,5,-2], [3,18,6,-2], [17,6,-3,-1], [9,17,5,-1], [9,17,0,-1], + [17,18,1,-1], [18,18,0], [16,17,0], [15,18,1,-1], [17,17,0], [16,17,0], [15,17,0], [17,18,1,-1], + [18,17,0], [8,17,0], [11,18,1,-1], [18,17,0], [14,17,0], [22,17,0], [18,17,0], [17,18,1,-1], + [15,17,0], [17,22,5,-1], [18,18,1], [11,18,1,-1], [17,17,0], [18,18,1], [18,18,1], [25,18,1], + [18,17,0], [18,17,0], [13,17,0,-1], [5,24,6,-2], [9,8,-9,-3], [4,24,6], [6,4,-13,-3], [3,3,-13,-2], + [4,8,-9,-1], [11,12,1,-1], [13,18,1], [10,12,1], [13,18,1], [10,12,1], [9,17,0], [12,16,5], + [13,17,0], [6,16,0], [6,21,5,1], [13,17,0], [7,17,0], [20,11,0], [13,11,0], [12,12,1], + [13,16,5], [13,16,5], [9,11,0], [9,12,1], [8,16,1], [13,12,1], [13,12,1], [17,12,1], + [13,11,0], [13,16,5], [10,11,0], [12,1,-6], [24,1,-6], [7,5,-12,-3], [8,3,-13,-2], [8,3,-13,-2], + [10,39,69,98,128,157,187,216,246,275,305,334,364,393,423,453], + [32,61,90,118,147,176,204,233], + [485,253] + ], + cmmi10: [ + [17,17,0,-1], [18,18,0,-1], [17,18,1,-1], [16,18,0], [18,17,0,-1], [20,17,0,-1], [19,17,0,-1], [17,17,0], + [16,17,0], [17,17,0], [18,17,0,-1], [14,12,1,-1], [15,22,5], [13,16,5], [10,18,1,-1], [8,12,1,-1], + [11,22,5,-1], [12,17,6], [10,18,1,-1], [7,12,1,-1], [12,12,1,-1], [12,18,1,-1], [14,17,6], [12,11,0,-1], + [11,22,5], [14,12,1], [12,17,6], [14,12,1], [13,12,1], [13,12,1], [13,22,5,-1], [15,16,5], + [16,22,5], [15,12,1], [11,12,1], [14,18,1], [20,12,1], [11,16,5,-1], [10,14,3], [14,17,6,-1], + [22,8,-5,-1], [22,8,1,-1], [22,8,-5,-1], [22,8,1,-1], [5,7,-5,-1], [5,7,-5,-1], [12,12,0], [12,12,0], + [10,12,1,-1], [8,11,0,-2], [10,11,0,-1], [10,17,6,-1], [12,17,5], [10,17,6,-1], [10,17,1,-1], [11,17,6,-1], + [10,17,1,-1], [10,17,6,-1], [3,3,0,-2], [3,8,5,-2], [15,14,1,-2], [10,24,6,-1], [15,14,1,-2], [12,12,0], + [13,19,1,-1], [18,18,0], [18,17,0,-1], [18,18,1,-1], [19,17,0,-1], [18,17,0,-1], [17,17,0,-1], [18,18,1,-1], + [20,17,0,-1], [12,17,0], [14,18,1,-1], [21,17,0,-1], [15,17,0,-1], [24,17,0,-1], [20,17,0,-1], [17,18,1,-1], + [18,17,0,-1], [17,22,5,-1], [17,18,1,-1], [15,18,1,-1], [17,17,0], [18,18,1,-1], [18,18,1,-1], [24,18,1,-1], + [25,17,0,4], [18,17,0,-1], [17,17,0,-1], [7,19,1,-1], [7,24,6,-1], [7,24,6,-1], [22,6,-3,-1], [22,7,-3,-1], + [10,18,1], [11,12,1,-1], [9,18,1,-1], [10,12,1,-1], [12,18,1,-1], [10,12,1,-1], [13,22,5,-1], [12,16,5], + [12,18,1,-1], [7,17,1], [11,21,5,1], [12,18,1,-1], [6,18,1,-1], [21,12,1], [14,12,1], [11,12,1,-1], + [13,16,5,1], [10,16,5,-1], [11,12,1], [9,12,1,-1], [8,16,1], [13,12,1], [12,12,1], [17,12,1], + [13,12,1], [12,16,5], [11,12,1,-1], [7,12,1], [10,16,5,1], [14,17,6,-1], [11,5,-12,-4], [10,3,-13,-6], + [10,38,67,96,124,153,182,211,239,268,297,326,354,383,412,440], + [32,61,90,118,147,176,204,233], + [472,253] + ], + cmsy10: [ + [15,2,-5,-2], [3,4,-4,-2], [12,12,0,-3], [10,11,0,-1], [17,14,1,-1], [12,12,0], [17,16,0,-1], [17,16,4,-1], + [17,16,2,-1], [17,16,2,-1], [17,16,2,-1], [17,16,2,-1], [17,16,2,-1], [22,24,6,-1], [10,10,-1,-1], [10,10,-1,-1], + [17,12,0,-1], [17,12,0,-1], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], + [17,6,-3,-1], [17,11,-1,-1], [15,14,1,-2], [15,14,1,-2], [22,16,2,-1], [22,16,2,-1], [15,14,1,-2], [15,14,1,-2], + [22,10,-1,-1], [22,10,-1,-1], [10,22,5,-1], [10,22,5,-1], [22,10,-1,-1], [22,22,5,-1], [22,22,5,-1], [17,12,0,-1], + [22,14,1,-1], [22,14,1,-1], [14,22,5], [14,22,5], [22,14,1,-1], [22,22,5,-1], [22,22,5,-1], [17,12,1,-1], + [7,13,-1], [22,12,1,-1], [12,14,1,-2], [12,14,1,-2], [19,18,0,-1], [19,18,6,-1], [13,24,6,-3], [2,10,-1,-1], + [14,18,1], [11,17,0,-1], [14,7,-2,-1], [10,21,2,-1], [16,19,1,-1], [16,18,1,-1], [17,16,0,-1], [17,16,0,-1], + [13,17,0,-1], [19,20,2], [16,18,1], [13,18,1], [19,17,0], [14,18,1], [20,18,1], [14,20,3,-1], + [20,19,2], [17,17,0,1], [19,20,3,-1], [18,18,1], [16,18,1], [27,19,2], [25,21,2,1], [18,18,1,-1], + [18,19,2], [17,20,3,-2], [20,18,1], [16,18,1], [19,18,0], [18,18,1,1], [15,18,1,-1], [24,18,1,-1], + [19,17,0,-1], [18,21,4], [18,17,0,-1], [14,16,1,-1], [14,16,1,-1], [14,16,1,-1], [14,16,1,-1], [14,16,1,-1], + [13,17,0,-1], [13,17,0,-1], [6,24,6,-4], [7,24,6], [6,24,6,-4], [7,24,6], [9,24,6,-2], [9,24,6,-1], + [6,24,6,-2], [6,24,6,-1], [2,24,6,-2], [6,24,6,-3], [10,26,7,-1], [14,26,7], [10,24,6,-1], [5,16,2,-1], + [20,24,23,-1], [17,17,0], [18,18,1,-1], [11,24,6,-1], [14,15,0,-1], [14,15,0,-1], [16,20,4,-2], [16,20,4,-1], + [8,22,5,-1], [9,23,6,-1], [9,22,5,-1], [13,22,5,-1], [18,22,4], [17,22,4,-1], [17,19,1,-1], [17,22,4,-1], + [10,45,79,114,148,183,217,252,286,321,355,390,424,459,493,528], + [34,83,132,181,230,279,329,378], + [565,419] + ], + cmex10: [ + [7,29,28,-3], [7,29,28,-1], [6,29,28,-4], [6,29,28], [7,29,28,-4], [7,29,28], [7,29,28,-4], [7,29,28], + [10,29,28,-2], [10,29,28,-2], [8,29,28,-2], [8,29,28,-1], [2,16,15,-3], [7,16,15,-3], [12,29,28,-1], [12,29,28,-1], + [10,44,43,-4], [9,44,43,-1], [12,58,57,-5], [12,58,57,-1], [7,58,57,-6], [7,58,57], [8,58,57,-6], [8,58,57], + [8,58,57,-6], [8,58,57], [12,58,57,-3], [12,58,57,-3], [13,58,57,-3], [13,58,57,-2], [23,58,57,-1], [23,58,57,-1], + [14,72,71,-5], [14,72,71], [8,72,71,-6], [8,72,71], [9,72,71,-6], [9,72,71], [9,72,71,-6], [9,72,71], + [13,72,71,-3], [13,72,71,-3], [14,72,71,-3], [14,72,71,-2], [29,72,71,-1], [29,72,71,-1], [17,44,43,-1], [17,44,43,-1], + [14,44,43,-7], [14,44,43], [9,44,43,-7], [9,44,43], [9,44,43,-7], [9,44,43], [3,15,15,-7], [3,15,15,-6], + [9,22,22,-9], [9,22,22,-4], [9,23,22,-9], [9,23,22,-4], [9,45,44,-4], [9,45,44,-9], [4,9,8,-9], [2,15,15,-7], + [13,45,43,-7], [14,45,43], [3,16,15,-7], [3,16,15,-11], [11,44,43,-2], [10,44,43,-2], [18,24,24,-1], [25,34,34,-1], + [14,27,27,-1], [22,54,54,-1], [25,24,24,-1], [34,34,34,-1], [25,24,24,-1], [34,34,34,-1], [25,24,24,-1], [34,34,34,-1], + [23,24,24,-1], [21,24,24,-1], [14,27,27,-1], [18,24,24,-1], [18,24,24,-1], [18,24,24,-1], [18,24,24,-1], [18,24,24,-1], + [33,34,34,-1], [29,34,34,-1], [22,54,54,-1], [25,34,34,-1], [25,34,34,-1], [25,34,34,-1], [25,34,34,-1], [25,34,34,-1], + [21,24,24,-1], [29,34,34,-1], [14,5,-13], [24,6,-13], [35,6,-13], [14,4,-14], [24,3,-15], [35,3,-15], + [6,44,43,-5], [6,44,43], [8,44,43,-5], [8,44,43], [8,44,43,-5], [8,44,43], [12,44,43,-2], [12,44,43,-2], + [23,29,28,-2], [23,44,43,-2], [23,58,57,-2], [23,72,71,-2], [16,45,44,-2], [2,16,15,-16], [10,15,14,-16], [7,15,15,-6], + [12,15,15,-2], [12,15,15,-2], [12,9,6,1], [13,9,6,1], [12,8,0,1], [13,8,0,1], [17,15,15,-1], [17,15,15,-1], + [11,54,98,141,184,228,271,315,358,401,445,488,532,575,619,662], + [39,145,252,358,465,571,678,785], + [709,888] + ], + cmbx10: [ + [16,17,0], [21,17,0,-1], [19,18,1,-1], [18,17,0,-1], [17,17,0,-1], [21,17,0], [18,17,0,-1], [19,17,0,-1], + [18,17,0,-1], [19,17,0,-1], [18,17,0,-1], [18,17,0], [15,17,0], [15,17,0], [23,17,0], [23,17,0], + [6,11,0,-1], [9,16,5,2], [6,5,-12,-2], [6,5,-12,-5], [8,4,-12,-3], [10,5,-12,-2], [10,2,-13,-2], [7,5,-12,-7], + [8,5,5,-3], [14,18,1], [20,12,1], [21,12,1], [13,17,3], [24,17,0,-1], [26,18,1,-2], [19,20,2,-1], + [8,4,-6], [4,17,0,-2], [11,9,-8,-1], [21,22,5,-1], [12,20,2,-1], [21,20,2,-1], [19,18,1,-1], [5,9,-8,-2], + [8,24,6,-2], [8,24,6,-1], [11,11,-7,-1], [19,20,4,-1], [4,9,5,-2], [8,3,-4], [4,4,0,-2], [12,24,6,-1], + [12,17,1,-1], [10,16,0,-2], [12,16,0,-1], [12,17,1,-1], [13,16,0], [12,17,1,-1], [12,17,1,-1], [13,18,1,-1], + [12,17,1,-1], [12,17,1,-1], [4,11,0,-2], [4,16,5,-2], [4,17,5,-2], [19,8,-2,-1], [11,17,5,-1], [11,17,0,-1], + [19,18,1,-1], [19,17,0,-1], [19,17,0], [18,18,1,-1], [20,17,0], [18,17,0], [17,17,0], [20,18,1,-1], + [21,17,0], [10,17,0], [13,18,1], [21,17,0], [16,17,0], [25,17,0,-1], [21,17,0], [19,18,1,-1], + [18,17,0], [19,22,5,-1], [21,18,1], [13,18,1,-1], [18,17,0,-1], [20,18,1,-1], [21,18,1], [28,18,1], + [20,17,0], [21,17,0], [15,17,0,-1], [4,24,6,-3], [11,9,-8,-3], [5,24,6], [8,5,-12,-3], [4,4,-13,-2], + [5,9,-8,-1], [14,12,1], [15,18,1], [12,12,1], [15,18,1], [12,12,1], [10,17,0,-1], [14,16,5], + [14,17,0,-1], [6,17,0,-1], [9,22,5,2], [15,17,0], [6,17,0,-1], [22,11,0,-1], [14,11,0,-1], [13,12,1], + [15,16,5], [15,16,5], [11,11,0], [10,12,1], [10,17,1], [14,12,1,-1], [14,12,1], [20,12,1], + [14,11,0], [14,16,5], [11,11,0], [14,1,-6], [28,1,-6], [9,5,-12,-3], [10,3,-14,-2], [10,4,-13,-2], + [10,44,78,112,147,181,215,249,283,317,352,386,420,454,488,522], + [32,61,90,118,147,176,204,233], + [560,253] + ], + cmti10: [ + [16,17,0,-1], [17,18,0,-1], [16,18,1,-3], [15,18,0,-1], [17,17,0,-1], [20,17,0,-1], [17,17,0,-2], [15,17,0,-5], + [15,17,0,-3], [15,17,0,-5], [17,17,0,-2], [20,22,5,1], [16,22,5,1], [17,22,5,1], [23,22,5,1], [24,22,5,1], + [6,12,1,-2], [9,16,5,1], [4,5,-12,-7], [6,5,-12,-8], [7,3,-12,-6], [8,5,-12,-6], [9,2,-13,-5], [5,5,-13,-11], + [6,5,5,-2], [15,22,5,1], [16,12,1,-2], [16,12,1,-2], [13,16,3,-1], [22,17,0,-1], [23,18,1,-3], [24,20,2,4], + [7,4,-6,-2], [7,18,0,-2], [9,8,-9,-4], [18,22,5,-2], [15,18,1,-2], [18,20,2,-3], [17,19,1,-3], [4,8,-9,-5], + [10,24,6,-3], [10,24,6], [10,11,-7,-4], [15,16,2,-3], [5,8,5,-1], [7,2,-4,-2], [4,3,0,-2], [15,24,6], + [12,17,1,-2], [9,16,0,-2], [12,17,1,-2], [12,17,1,-2], [11,21,5,-1], [12,17,1,-2], [12,17,1,-2], [12,17,1,-3], + [12,17,1,-2], [12,17,1,-2], [6,11,0,-2], [7,16,5,-1], [7,18,6,-1], [17,6,-3,-2], [9,18,6,-2], [10,18,0,-4], + [16,18,1,-3], [16,18,0,-1], [17,17,0,-1], [17,18,1,-3], [18,17,0,-1], [17,17,0,-1], [17,17,0,-1], [17,18,1,-3], + [20,17,0,-1], [11,17,0,-1], [13,18,1,-2], [20,17,0,-1], [14,17,0,-1], [23,17,0,-1], [20,17,0,-1], [16,18,1,-3], + [17,17,0,-1], [16,22,5,-3], [17,18,1,-1], [15,18,1,-1], [16,17,0,-4], [17,18,1,-4], [16,18,1,-5], [22,18,1,-5], + [24,17,0,4], [16,17,0,-5], [15,17,0,-2], [10,24,6,-1], [9,8,-9,-6], [10,24,6,1], [7,4,-13,-6], [3,3,-13,-6], + [4,8,-9,-5], [11,12,1,-2], [9,18,1,-2], [10,12,1,-2], [12,18,1,-2], [10,12,1,-2], [12,22,5,1], [11,16,5,-1], + [12,18,1,-1], [6,17,1,-2], [10,21,5,1], [11,18,1,-1], [6,18,1,-2], [19,12,1,-2], [12,12,1,-2], [11,12,1,-2], + [13,16,5], [10,16,5,-2], [10,12,1,-2], [9,12,1,-1], [7,16,1,-2], [12,12,1,-2], [10,12,1,-2], [15,12,1,-2], + [12,12,1,-1], [11,16,5,-2], [10,12,1,-1], [12,1,-6,-2], [22,1,-6,-3], [8,5,-12,-6], [8,3,-13,-6], [8,3,-13,-6], + [10,39,68,98,127,156,186,215,245,274,303,333,362,391,421,450], + [32,61,90,118,147,176,204,233], + [482,253] + ] +}); + +jsMath.Img.AddFont(207,{ + cmr10: [ + [16,20,0,-1], [22,21,0,-1], [20,22,1,-1], [20,21,0], [18,20,0,-1], [20,20,0,-1], [19,20,0,-1], [20,21,0,-1], + [19,20,0,-1], [20,20,0,-1], [19,21,0,-1], [19,21,0], [16,21,0], [16,21,0], [24,21,0], [24,21,0], + [7,13,0,-1], [9,19,6,2], [6,6,-15,-3], [6,6,-15,-6], [8,4,-15,-3], [9,6,-15,-3], [11,2,-16,-2], [6,6,-15,-8], + [8,6,6,-3], [14,22,1], [20,14,1,-1], [22,14,1], [13,19,3,-1], [26,20,0], [27,22,1,-2], [20,24,2,-1], + [8,4,-8], [4,21,0,-2], [9,10,-11,-1], [22,27,6,-1], [12,24,2,-1], [22,24,2,-1], [20,22,1,-1], [4,9,-11,-2], + [8,30,8,-2], [8,30,8,-1], [11,13,-9,-2], [20,20,3,-1], [4,9,6,-2], [8,3,-5], [4,3,0,-2], [12,30,8,-1], + [13,21,1,-1], [11,20,0,-2], [12,20,0,-1], [13,21,1,-1], [14,20,0], [12,21,1,-1], [13,21,1,-1], [13,21,1,-1], + [13,21,1,-1], [13,21,1,-1], [4,13,0,-2], [4,19,6,-2], [4,22,7,-2], [20,8,-3,-1], [11,21,6,-1], [11,21,0,-1], + [20,22,1,-1], [21,21,0], [18,20,0,-1], [19,22,1,-1], [20,20,0,-1], [18,20,0,-1], [17,20,0,-1], [21,22,1,-1], + [20,20,0,-1], [10,20,0], [13,21,1,-1], [21,20,0,-1], [16,20,0,-1], [25,20,0,-1], [20,20,0,-1], [20,22,1,-1], + [18,20,0,-1], [21,27,6,-1], [21,21,1,-1], [14,22,1,-1], [19,20,0,-1], [20,21,1,-1], [22,21,1], [30,21,1], + [21,20,0], [22,20,0], [16,20,0,-1], [5,30,8,-3], [10,9,-11,-4], [5,30,8], [8,5,-15,-3], [4,4,-16,-2], + [4,9,-11,-2], [14,14,1,-1], [16,22,1], [11,14,1,-1], [15,22,1,-1], [12,14,1], [10,21,0,-1], [14,20,6], + [16,21,0], [7,20,0,-1], [9,26,6,2], [15,21,0], [7,21,0,-1], [24,13,0], [16,13,0], [14,14,1], + [16,19,6], [15,19,6,-1], [11,13,0], [10,14,1,-1], [10,19,1], [15,14,1,-1], [15,14,1], [21,14,1], + [15,13,0], [15,19,6], [12,13,0], [15,1,-7], [29,1,-7], [10,6,-15,-3], [10,4,-16,-2], [9,4,-16,-3], + [12,47,82,118,153,188,223,259,294,329,365,400,435,471,506,541], + [37,72,106,140,175,209,243,278], + [580,301] + ], + cmmi10: [ + [20,20,0,-1], [22,21,0,-1], [21,22,1,-1], [19,21,0,-1], [22,20,0,-1], [25,20,0,-1], [23,20,0,-1], [21,21,0], + [19,20,0], [20,20,0], [21,21,0,-2], [17,14,1,-1], [18,27,6], [16,20,7], [13,22,1,-1], [10,14,1,-1], + [13,27,6,-1], [15,20,7], [13,22,1,-1], [9,14,1,-1], [15,14,1,-1], [15,22,1,-1], [17,20,7], [15,13,0,-1], + [13,27,6], [17,14,1], [15,20,7], [16,14,1,-1], [15,14,1], [16,14,1], [16,26,6,-1], [17,19,6,-1], + [19,26,6], [18,14,1], [13,15,1], [17,22,1], [24,14,1], [13,19,6,-2], [12,17,4], [17,20,7,-1], + [27,9,-6,-1], [27,9,1,-1], [27,9,-6,-1], [27,9,1,-1], [6,8,-6,-1], [6,8,-6,-1], [14,16,1], [14,16,1], + [13,15,1,-1], [11,13,0,-2], [12,14,0,-1], [13,21,7,-1], [14,20,6], [12,20,7,-1], [13,21,1,-1], [13,21,7,-1], + [13,21,1,-1], [13,21,7,-1], [4,3,0,-2], [4,9,6,-2], [18,18,2,-2], [12,30,8,-1], [18,17,1,-2], [15,14,0], + [16,22,1,-1], [20,21,0,-1], [21,20,0,-1], [21,22,1,-1], [23,20,0,-1], [22,20,0,-1], [21,20,0,-1], [21,22,1,-1], + [25,20,0,-1], [14,20,0,-1], [17,21,1,-2], [25,20,0,-1], [18,20,0,-1], [30,20,0,-1], [25,20,0,-1], [21,22,1,-1], + [21,20,0,-1], [21,27,6,-1], [21,21,1,-1], [18,22,1,-1], [21,20,0], [20,21,1,-2], [22,21,1,-1], [30,21,1,-1], + [29,20,0,4], [21,20,0,-1], [20,20,0,-1], [9,23,1,-1], [7,28,7,-2], [9,28,7,-1], [27,8,-3,-1], [27,8,-3,-1], + [12,22,1], [14,14,1,-1], [11,22,1,-1], [12,14,1,-1], [14,22,1,-1], [12,14,1,-1], [15,27,6,-1], [14,19,6], + [15,22,1,-1], [9,21,1], [13,26,6,1], [14,22,1,-1], [7,22,1,-1], [25,14,1], [17,14,1], [13,14,1,-1], + [16,19,6,1], [12,19,6,-1], [13,14,1], [12,14,1,-1], [10,20,1], [16,14,1], [14,14,1], [20,14,1], + [16,14,1], [15,19,6], [13,14,1,-1], [9,14,1], [12,19,6,1], [16,20,7,-2], [13,6,-15,-5], [12,5,-15,-7], + [11,46,80,115,149,183,218,252,286,321,355,390,424,458,493,527], + [37,72,106,140,175,209,243,278], + [565,301] + ], + cmsy10: [ + [19,2,-6,-2], [4,4,-5,-2], [15,15,0,-4], [11,13,-1,-2], [20,17,1,-1], [15,15,0], [20,20,0,-1], [20,20,5,-1], + [20,20,3,-1], [20,20,3,-1], [20,20,3,-1], [20,20,3,-1], [20,20,3,-1], [27,28,7,-1], [12,12,-1,-1], [12,12,-1,-1], + [20,14,0,-1], [20,13,-1,-1], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], + [20,8,-3,-1], [20,13,-1,-1], [19,18,2,-2], [19,18,2,-2], [27,19,2,-1], [27,19,2,-1], [19,18,2,-2], [18,17,1,-2], + [27,11,-2,-1], [27,11,-2,-1], [11,26,6,-2], [11,26,6,-2], [27,11,-2,-1], [27,27,6,-1], [27,26,6,-1], [20,13,-1,-1], + [27,17,1,-1], [27,17,1,-1], [17,26,6], [17,27,6], [27,17,1,-1], [27,27,6,-1], [27,26,6,-1], [20,14,1,-1], + [7,16,-1,-1], [27,14,1,-1], [15,18,2,-2], [15,18,2,-2], [23,21,0,-1], [23,22,7,-1], [15,28,7,-4], [3,12,-1,-1], + [17,22,1], [14,21,0,-1], [17,9,-2,-1], [13,26,3,-1], [20,22,1,-1], [19,22,1,-1], [20,20,0,-1], [20,20,0,-1], + [15,20,0,-1], [23,23,2], [19,22,1,-1], [16,22,1], [23,20,0], [17,22,1], [24,21,1], [17,25,4,-1], + [24,22,2], [20,20,0,1], [24,24,4,-1], [21,22,1,-1], [18,22,1,-1], [33,23,2], [30,25,2,1], [22,22,1,-1], + [22,22,2], [20,25,4,-3], [25,21,1], [19,22,1], [23,21,0], [21,21,1,1], [19,22,2,-1], [29,22,2,-1], + [23,20,0,-1], [21,24,4], [22,20,0,-1], [17,19,1,-1], [17,19,1,-1], [17,19,1,-1], [17,19,1,-1], [17,19,1,-1], + [15,20,0,-1], [16,21,0,-1], [8,30,8,-5], [8,30,8], [8,30,8,-5], [8,30,8], [11,30,8,-2], [11,30,8,-2], + [7,30,8,-3], [7,30,8,-1], [2,30,8,-3], [8,30,8,-3], [11,31,8,-2], [17,31,8], [12,30,8,-1], [6,20,3,-1], + [23,30,28,-2], [20,20,0,-1], [22,21,1,-1], [13,28,7,-1], [17,18,0,-1], [17,18,0,-1], [19,23,4,-2], [20,23,4,-1], + [9,27,6,-2], [11,28,7,-1], [11,27,6,-1], [16,27,6,-1], [22,25,4], [20,26,5,-1], [20,22,1,-1], [20,25,4,-1], + [12,53,95,136,177,218,260,301,342,384,425,466,507,549,590,631], + [39,98,157,216,274,333,392,451], + [676,500] + ], + cmex10: [ + [8,36,34,-4], [8,36,34,-1], [7,36,34,-5], [7,36,34], [8,36,34,-5], [8,36,34], [8,36,34,-5], [8,36,34], + [11,36,34,-3], [11,36,34,-3], [10,36,34,-2], [9,36,34,-2], [2,19,18,-4], [8,19,18,-4], [14,36,34,-1], [14,36,34,-1], + [12,53,51,-5], [11,53,51,-1], [15,71,69,-6], [15,71,69,-1], [8,71,69,-7], [8,71,69], [10,71,69,-7], [10,71,69], + [10,71,69,-7], [10,71,69], [15,71,69,-3], [15,71,69,-3], [16,71,69,-3], [16,71,69,-2], [28,71,69,-1], [28,71,69,-1], + [16,88,86,-6], [16,88,86,-1], [9,88,86,-8], [9,88,86], [11,88,86,-8], [11,88,86], [11,88,86,-8], [11,88,86], + [16,88,86,-4], [16,88,86,-4], [17,88,86,-4], [17,88,86,-3], [35,88,86,-1], [35,88,86,-1], [21,53,51,-1], [21,53,51,-1], + [17,54,52,-8], [16,54,52,-1], [11,53,51,-9], [10,53,51], [11,53,51,-9], [10,53,51], [3,18,18,-9], [3,18,18,-7], + [10,27,27,-11], [10,27,27,-5], [10,27,26,-11], [10,28,27,-5], [10,54,53,-5], [10,54,53,-11], [4,10,9,-11], [2,18,18,-9], + [17,53,51,-8], [16,53,51,-1], [4,19,18,-8], [4,19,18,-13], [13,53,51,-3], [13,53,51,-2], [22,29,29,-1], [30,41,41,-1], + [17,33,33,-1], [27,65,65,-1], [30,29,29,-1], [42,41,41,-1], [30,29,29,-1], [42,41,41,-1], [30,29,29,-1], [42,41,41,-1], + [28,29,29,-1], [25,29,29,-1], [17,33,33,-1], [22,29,29,-1], [22,29,29,-1], [22,29,29,-1], [22,29,29,-1], [22,29,29,-1], + [40,41,41,-1], [35,41,41,-1], [27,65,65,-1], [30,41,41,-1], [30,41,41,-1], [30,41,41,-1], [30,41,41,-1], [30,41,41,-1], + [25,29,29,-1], [35,41,41,-1], [17,6,-16], [29,7,-16], [42,7,-16], [16,4,-17], [29,4,-18], [42,4,-18], + [8,53,51,-6], [8,53,51], [9,53,51,-6], [9,53,51], [9,53,51,-6], [9,53,51], [13,53,51,-3], [13,53,51,-3], + [27,35,34,-3], [27,52,51,-3], [27,70,69,-3], [27,87,86,-3], [19,54,53,-3], [2,19,18,-20], [12,19,17,-20], [9,18,18,-7], + [14,18,18,-3], [14,18,18,-3], [15,11,7,1], [15,11,7,1], [15,10,0,1], [15,10,0,1], [20,18,18,-1], [20,18,18,-1], + [13,65,117,169,221,273,325,377,428,480,532,584,636,688,740,792], + [45,173,300,428,555,683,810,938], + [849,1062] + ], + cmbx10: [ + [18,20,0,-1], [25,21,0,-1], [23,22,1,-1], [22,21,0,-1], [20,20,0,-1], [24,20,0,-1], [22,20,0,-1], [23,21,0,-1], + [22,20,0,-1], [23,20,0,-1], [22,21,0,-1], [22,21,0], [18,21,0], [18,21,0], [27,21,0], [27,21,0], + [8,13,0,-1], [10,19,6,2], [7,7,-14,-3], [7,7,-14,-7], [9,4,-15,-4], [11,7,-14,-3], [13,2,-16,-2], [7,6,-15,-9], + [10,6,6,-3], [16,22,1,-1], [23,15,1,-1], [24,15,1,-1], [16,19,3], [29,20,0,-1], [31,22,1,-2], [23,24,2,-1], + [10,4,-8], [6,21,0,-2], [13,11,-10,-1], [25,27,6,-1], [14,24,2,-1], [25,24,2,-1], [24,22,1,-1], [6,11,-10,-2], + [8,30,8,-3], [9,30,8,-1], [13,14,-8,-2], [23,23,4,-1], [6,11,6,-2], [10,3,-5], [5,5,0,-2], [14,30,8,-1], + [15,20,1,-1], [13,19,0,-2], [14,19,0,-1], [15,20,1,-1], [16,19,0], [14,20,1,-1], [15,20,1,-1], [16,21,1,-1], + [15,20,1,-1], [15,20,1,-1], [5,13,0,-2], [5,19,6,-2], [6,21,6,-2], [23,9,-3,-1], [13,21,6,-1], [13,21,0,-1], + [23,22,1,-1], [23,21,0,-1], [21,20,0,-1], [22,22,1,-1], [23,20,0,-1], [20,20,0,-1], [19,20,0,-1], [24,22,1,-1], + [24,20,0,-1], [11,20,0,-1], [16,21,1], [24,20,0,-1], [18,20,0,-1], [30,20,0,-1], [24,20,0,-1], [23,22,1,-1], + [20,20,0,-1], [23,27,6,-1], [24,21,1,-1], [16,22,1,-1], [21,20,0,-1], [24,21,1,-1], [25,21,1], [34,21,1], + [24,20,0,-1], [25,20,0], [18,20,0,-1], [6,30,8,-3], [13,10,-10,-4], [6,30,8], [10,5,-15,-3], [5,6,-15,-2], + [6,10,-10,-1], [16,15,1,-1], [17,22,1,-1], [13,15,1,-1], [17,22,1,-1], [15,15,1], [12,21,0,-1], [16,20,6,-1], + [17,21,0,-1], [8,21,0,-1], [10,27,6,2], [16,21,0,-1], [8,21,0,-1], [27,13,0,-1], [17,13,0,-1], [16,15,1], + [17,19,6,-1], [17,19,6,-1], [12,13,0,-1], [11,15,1,-1], [12,20,1], [17,14,1,-1], [17,14,1], [24,14,1], + [17,13,0], [17,19,6], [13,13,0,-1], [17,2,-7], [34,2,-7], [11,6,-15,-4], [11,4,-17,-3], [11,5,-16,-3], + [12,53,94,135,175,216,257,298,339,380,421,462,502,543,584,625], + [37,72,106,140,175,209,243,278], + [670,301] + ], + cmti10: [ + [20,20,0,-1], [20,21,0,-2], [19,22,1,-4], [18,21,0,-1], [20,20,0,-2], [24,20,0,-1], [21,20,0,-2], [19,21,0,-6], + [18,20,0,-4], [18,20,0,-6], [20,21,0,-2], [23,27,6,1], [19,27,6,1], [20,27,6,1], [28,27,6,1], [29,27,6,1], + [8,14,1,-2], [11,19,6,1], [5,7,-14,-8], [6,7,-14,-10], [8,5,-14,-8], [9,5,-15,-8], [11,2,-16,-6], [7,6,-15,-13], + [7,6,6,-3], [18,27,6,1], [19,14,1,-2], [18,14,1,-3], [14,19,3,-2], [27,20,0,-1], [27,22,1,-4], [21,24,2,-3], + [8,4,-8,-2], [8,21,0,-3], [10,10,-11,-5], [21,27,6,-3], [19,22,1,-2], [21,24,2,-4], [21,22,1,-3], [5,10,-11,-6], + [11,30,8,-4], [12,30,8], [12,13,-9,-5], [18,18,2,-4], [5,9,6,-2], [8,2,-5,-2], [4,3,0,-3], [18,30,8], + [14,21,1,-3], [11,20,0,-3], [14,21,1,-2], [15,21,1,-2], [13,26,6,-1], [14,21,1,-3], [14,21,1,-3], [14,21,1,-4], + [14,21,1,-2], [13,21,1,-3], [6,13,0,-3], [7,19,6,-2], [9,22,7,-1], [20,8,-3,-3], [11,22,7,-2], [11,21,0,-5], + [19,22,1,-4], [19,21,0,-1], [20,20,0,-2], [20,22,1,-4], [22,20,0,-1], [21,20,0,-1], [21,20,0,-1], [20,22,1,-4], + [24,20,0,-1], [14,20,0,-1], [16,21,1,-2], [24,20,0,-1], [17,20,0,-1], [27,20,0,-2], [24,20,0,-1], [19,22,1,-4], + [21,20,0,-1], [19,27,6,-4], [20,21,1,-1], [17,22,1,-2], [19,20,0,-5], [20,21,1,-5], [20,21,1,-6], [27,21,1,-6], + [28,20,0,4], [21,20,0,-5], [19,20,0,-2], [11,30,8,-2], [10,9,-11,-8], [12,30,8,1], [8,5,-15,-7], [4,4,-16,-7], + [5,9,-11,-6], [13,14,1,-3], [11,22,1,-3], [11,14,1,-3], [14,22,1,-3], [11,14,1,-3], [15,27,6,1], [14,19,6,-1], + [14,22,1,-2], [8,20,1,-2], [12,25,6,1], [13,22,1,-2], [7,22,1,-2], [23,14,1,-2], [15,14,1,-2], [12,14,1,-3], + [15,19,6], [12,19,6,-3], [13,14,1,-2], [11,14,1,-2], [9,20,1,-2], [15,14,1,-2], [13,14,1,-2], [19,14,1,-2], + [14,14,1,-1], [13,19,6,-2], [12,14,1,-2], [14,1,-7,-2], [27,1,-7,-3], [10,7,-14,-7], [10,4,-16,-7], [9,4,-16,-7], + [12,47,82,117,152,187,222,257,293,328,363,398,433,468,503,539], + [37,72,106,140,175,209,243,278], + [577,301] + ] +}); + +jsMath.Img.AddFont(249,{ + cmr10: [ + [19,24,0,-1], [26,25,0,-1], [24,25,1,-1], [22,25,0,-1], [21,23,0,-1], [24,24,0,-1], [21,24,0,-2], [23,24,0,-2], + [22,24,0,-1], [23,24,0,-2], [22,24,0,-1], [21,24,0,-1], [17,24,0,-1], [17,24,0,-1], [27,24,0,-1], [27,24,0,-1], + [8,15,0,-1], [10,22,7,2], [7,7,-17,-3], [7,7,-17,-7], [9,5,-17,-4], [11,7,-17,-3], [13,2,-19,-2], [7,7,-18,-9], + [9,7,7,-4], [15,25,1,-1], [23,17,1,-1], [25,17,1,-1], [15,22,4,-1], [29,24,0,-1], [32,25,1,-2], [24,27,2,-1], + [8,5,-9,-1], [4,25,0,-3], [11,11,-13,-1], [25,31,7,-2], [14,28,2,-1], [26,28,2,-1], [24,26,1,-1], [4,11,-13,-3], + [9,35,9,-3], [8,35,9,-2], [13,16,-10,-2], [23,23,3,-2], [4,11,7,-3], [10,3,-6], [4,4,0,-3], [13,35,9,-2], + [15,24,1,-1], [12,23,0,-3], [15,23,0,-1], [15,24,1,-1], [15,23,0,-1], [15,24,1,-1], [15,24,1,-1], [15,24,1,-2], + [15,24,1,-1], [15,24,1,-1], [4,15,0,-3], [4,22,7,-3], [4,25,8,-3], [23,9,-4,-2], [14,24,7,-1], [14,24,0,-1], + [24,25,1,-1], [24,25,0,-1], [22,24,0,-1], [22,25,1,-1], [23,24,0,-1], [22,24,0,-1], [20,24,0,-1], [24,25,1,-1], + [24,24,0,-1], [11,24,0,-1], [15,25,1,-1], [24,24,0,-1], [19,24,0,-1], [29,24,0,-1], [24,24,0,-1], [24,25,1,-1], + [21,24,0,-1], [24,31,7,-1], [24,25,1,-1], [16,25,1,-1], [23,23,0,-1], [24,25,1,-1], [25,25,1], [35,25,1], + [25,24,0], [26,24,0], [18,24,0,-1], [5,35,9,-4], [11,11,-13,-5], [6,35,9], [9,6,-18,-4], [4,4,-19,-3], + [5,11,-13,-2], [16,17,1,-1], [17,25,1,-1], [13,17,1,-1], [17,25,1,-1], [14,17,1,-1], [12,24,0,-1], [16,23,7,-1], + [18,24,0,-1], [8,23,0,-1], [10,30,7,2], [17,24,0,-1], [8,24,0,-1], [27,15,0,-1], [18,15,0,-1], [15,17,1,-1], + [17,22,7,-1], [17,22,7,-1], [12,15,0,-1], [12,17,1,-1], [12,22,1], [18,16,1,-1], [18,16,1], [24,16,1], + [18,15,0], [18,22,7], [13,15,0,-1], [17,2,-8], [34,2,-8], [11,7,-17,-4], [11,4,-19,-3], [11,4,-19,-3], + [14,56,99,141,184,226,269,311,354,396,439,481,524,566,609,651], + [46,87,128,170,211,253,294,335], + [698,363] + ], + cmmi10: [ + [24,24,0,-1], [26,25,0,-1], [25,25,1,-1], [22,25,0,-1], [26,23,0,-1], [29,24,0,-1], [26,24,0,-2], [23,24,0,-1], + [22,24,0], [23,24,0,-1], [25,24,0,-2], [20,16,1,-1], [20,31,7], [19,23,8], [15,26,1,-1], [12,16,1,-1], + [15,31,7,-1], [16,23,8,-1], [15,25,1,-1], [10,16,1,-1], [18,16,1,-1], [18,25,1,-1], [19,23,8,-1], [17,15,0,-1], + [16,31,7], [19,16,1,-1], [16,23,8,-1], [19,16,1,-1], [17,16,1,-1], [17,16,1,-1], [19,31,7,-1], [20,22,7,-1], + [21,31,7,-1], [21,16,1], [15,17,1], [18,25,1,-1], [27,16,1,-1], [15,22,7,-2], [13,19,4,-1], [20,23,8,-1], + [31,11,-7,-1], [31,11,1,-1], [31,11,-7,-1], [31,11,1,-1], [7,9,-7,-1], [7,9,-7,-1], [16,19,1], [16,19,1,-1], + [15,17,1,-1], [12,16,0,-3], [15,16,0,-1], [15,24,8,-1], [15,23,7,-1], [15,24,8,-1], [15,24,1,-1], [16,24,8,-1], + [15,24,1,-1], [15,24,8,-1], [4,4,0,-3], [4,11,7,-3], [22,21,2,-2], [13,35,9,-2], [22,21,2,-2], [17,17,0], + [19,26,1,-1], [24,25,0,-1], [25,24,0,-1], [25,25,1,-1], [27,24,0,-1], [25,24,0,-1], [25,24,0,-1], [25,25,1,-1], + [29,24,0,-1], [16,24,0,-1], [20,25,1,-2], [30,24,0,-1], [21,24,0,-1], [35,24,0,-1], [29,24,0,-1], [25,25,1,-1], + [25,24,0,-1], [25,31,7,-1], [25,25,1,-1], [21,25,1,-1], [24,23,0], [24,25,1,-2], [25,25,1,-2], [35,25,1,-1], + [28,24,0,-1], [25,24,0,-1], [23,24,0,-2], [11,27,1,-1], [9,33,8,-2], [11,33,8,-1], [30,9,-4,-2], [30,9,-4,-2], + [14,25,1], [16,16,1,-1], [14,25,1,-1], [14,16,1,-1], [17,25,1,-1], [14,16,1,-1], [18,31,7,-1], [17,22,7], + [18,25,1,-1], [9,24,1,-1], [15,30,7,1], [17,25,1,-1], [8,25,1,-1], [28,16,1,-1], [19,16,1,-1], [15,16,1,-1], + [18,22,7,1], [15,22,7,-1], [14,16,1,-1], [14,16,1,-1], [12,23,1], [18,16,1,-1], [15,16,1,-1], [23,16,1,-1], + [17,16,1,-1], [16,22,7,-1], [15,16,1,-1], [9,16,1,-1], [14,22,7,1], [19,24,8,-2], [16,8,-17,-6], [13,5,-18,-9], + [14,55,96,138,179,221,262,303,345,386,427,469,510,551,593,634], + [46,87,128,170,211,253,294,335], + [679,363] + ], + cmsy10: [ + [22,3,-7,-2], [4,5,-6,-3], [17,17,0,-5], [13,15,-1,-2], [23,19,1,-2], [17,17,0], [23,23,0,-2], [23,23,6,-2], + [24,23,3,-1], [24,23,3,-1], [24,23,3,-1], [24,23,3,-1], [24,23,3,-1], [31,33,8,-1], [14,15,-1,-1], [14,15,-1,-1], + [23,17,0,-2], [23,15,-1,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], + [24,9,-4,-1], [23,16,-1,-2], [22,21,2,-2], [22,21,2,-2], [30,23,3,-2], [30,23,3,-2], [22,21,2,-2], [22,21,2,-2], + [30,13,-2,-2], [30,13,-2,-2], [13,31,7,-2], [13,31,7,-2], [30,13,-2,-2], [31,31,7,-2], [31,31,7,-2], [24,15,-1,-1], + [30,19,1,-2], [30,19,1,-2], [19,31,7,-1], [19,31,7,-1], [32,19,1,-1], [31,31,7,-1], [31,31,7,-1], [24,16,1,-1], + [8,18,-1,-1], [31,16,1,-1], [18,21,2,-2], [18,21,2,-2], [27,25,0,-2], [27,25,8,-2], [18,33,8,-4], [4,13,-2,-1], + [19,25,1], [15,24,0,-2], [19,10,-3,-2], [15,30,3,-1], [24,26,1,-1], [23,25,1,-1], [23,23,0,-2], [23,23,0,-2], + [18,24,0,-1], [26,27,2,-1], [22,25,1,-1], [19,25,1], [26,24,0], [19,25,1,-1], [29,26,2], [20,28,4,-1], + [28,26,2], [23,24,0,1], [28,28,4,-1], [24,25,1,-1], [22,25,1,-1], [37,26,2,-1], [35,29,2,1], [25,25,1,-2], + [25,26,2], [24,29,5,-3], [29,25,1], [22,25,1], [26,25,0,-1], [25,25,1,1], [22,26,2,-1], [35,26,2,-1], + [27,24,0,-1], [24,29,5,-1], [25,24,0,-1], [20,22,1,-1], [20,22,1,-1], [20,22,1,-1], [19,22,1,-2], [19,22,1,-2], + [18,24,0,-1], [17,24,0,-2], [10,35,9,-5], [10,35,9], [10,35,9,-5], [10,35,9], [13,35,9,-2], [13,35,9,-2], + [9,35,9,-3], [8,35,9,-2], [2,35,9,-4], [9,35,9,-4], [13,37,10,-2], [19,37,10,-1], [13,35,9,-2], [7,23,3,-1], + [27,35,33,-2], [24,24,0,-1], [26,26,2,-1], [15,33,8,-1], [19,21,0,-2], [19,21,0,-2], [22,27,5,-3], [22,27,5,-2], + [11,31,7,-2], [12,32,8,-2], [12,31,7,-2], [19,31,7,-1], [25,30,5,-1], [23,31,6,-2], [24,27,2,-1], [24,30,5,-1], + [14,64,114,163,213,263,312,362,412,461,511,561,610,660,710,759], + [48,119,190,260,331,402,472,543], + [814,603] + ], + cmex10: [ + [9,42,40,-5], [10,42,40,-1], [8,42,40,-6], [8,42,40], [10,42,40,-6], [10,42,40], [10,42,40,-6], [10,42,40], + [12,42,40,-4], [12,42,40,-4], [11,42,40,-3], [11,42,40,-2], [3,22,21,-4], [10,22,21,-4], [16,42,40,-2], [16,42,40,-2], + [13,62,60,-6], [14,62,60,-1], [17,83,81,-7], [17,83,81,-1], [10,83,81,-8], [10,83,81], [12,83,81,-8], [12,83,81], + [12,83,81,-8], [12,83,81], [17,83,81,-4], [17,83,81,-4], [19,83,81,-4], [19,83,81,-3], [32,83,81,-2], [32,83,81,-2], + [18,103,101,-8], [18,103,101,-1], [11,103,101,-9], [11,103,101], [13,103,101,-9], [13,103,101], [13,103,101,-9], [13,103,101], + [19,103,101,-4], [19,103,101,-4], [20,103,101,-4], [20,103,101,-3], [40,103,101,-2], [40,103,101,-2], [24,62,60,-2], [24,62,60,-2], + [20,63,61,-9], [19,63,61,-1], [12,62,60,-11], [12,62,60], [12,62,60,-11], [12,62,60], [3,21,21,-11], [3,21,21,-9], + [12,31,31,-13], [13,31,31,-5], [12,32,31,-13], [13,32,31,-5], [13,63,62,-5], [12,63,62,-13], [5,12,11,-13], [3,21,21,-10], + [20,62,60,-9], [19,62,60,-1], [5,22,21,-9], [4,22,21,-16], [15,62,60,-3], [14,62,60,-3], [26,34,34,-1], [35,48,48,-1], + [19,38,38,-2], [31,76,76,-1], [35,34,34,-1], [49,48,48,-1], [35,34,34,-1], [49,48,48,-1], [35,34,34,-1], [49,48,48,-1], + [33,34,34,-1], [30,34,34,-1], [19,38,38,-2], [26,34,34,-1], [26,34,34,-1], [26,34,34,-1], [25,34,34,-2], [25,34,34,-2], + [46,48,48,-1], [41,48,48,-1], [31,76,76,-1], [35,48,48,-1], [35,48,48,-1], [35,48,48,-1], [34,48,48,-2], [35,48,48,-1], + [30,34,34,-1], [41,48,48,-1], [19,7,-19], [34,8,-19], [49,8,-19], [19,5,-20], [34,5,-21], [49,5,-21], + [9,62,60,-7], [9,62,60], [11,62,60,-7], [11,62,60], [11,62,60,-7], [11,62,60], [15,62,60,-4], [15,62,60,-4], + [32,42,40,-3], [32,62,60,-3], [32,83,81,-3], [32,103,101,-3], [23,63,62,-3], [3,22,21,-23], [14,22,20,-23], [10,21,21,-8], + [16,21,21,-3], [16,21,21,-3], [17,13,8,1], [18,13,8,1], [17,12,0,1], [18,12,0,1], [24,21,21,-1], [24,21,21,-1], + [16,78,141,203,265,328,390,453,515,578,640,703,765,828,890,953], + [55,209,362,515,669,822,976,1129], + [1021,1278] + ], + cmbx10: [ + [21,24,0,-1], [29,24,0,-2], [27,25,1,-2], [25,24,0,-1], [24,23,0,-1], [29,24,0,-1], [24,24,0,-2], [27,24,0,-2], + [24,24,0,-2], [27,24,0,-2], [26,24,0,-1], [25,24,0,-1], [20,24,0,-1], [20,24,0,-1], [31,24,0,-1], [31,24,0,-1], + [9,16,0,-1], [12,23,7,2], [8,7,-17,-4], [8,7,-17,-8], [11,6,-17,-4], [13,7,-17,-3], [15,3,-18,-2], [9,6,-18,-10], + [11,7,7,-4], [19,25,1,-1], [27,17,1,-1], [29,17,1,-1], [18,23,4,-1], [34,24,0,-1], [37,25,1,-2], [27,28,2,-2], + [11,5,-9], [6,24,0,-3], [15,13,-11,-1], [29,31,7,-2], [16,28,2,-2], [29,28,2,-2], [28,25,1,-1], [7,13,-11,-2], + [10,35,9,-3], [10,35,9,-2], [15,16,-10,-2], [27,27,5,-2], [7,13,7,-2], [11,5,-5], [6,6,0,-2], [16,35,9,-2], + [17,24,1,-1], [15,23,0,-2], [17,23,0,-1], [17,24,1,-1], [18,23,0,-1], [16,24,1,-2], [17,24,1,-1], [17,24,1,-2], + [17,24,1,-1], [17,24,1,-1], [6,16,0,-2], [7,23,7,-2], [6,24,7,-3], [27,11,-3,-2], [15,24,7,-2], [15,24,0,-2], + [27,25,1,-2], [28,24,0,-1], [25,24,0,-1], [24,25,1,-2], [27,24,0,-1], [24,24,0,-1], [22,24,0,-1], [27,25,1,-2], + [29,24,0,-1], [13,24,0,-1], [18,25,1], [28,24,0,-1], [21,24,0,-1], [35,24,0,-1], [29,24,0,-1], [26,25,1,-2], + [24,24,0,-1], [26,31,7,-2], [29,25,1,-1], [18,25,1,-2], [25,23,0,-1], [28,25,1,-1], [29,25,1], [40,25,1], + [28,24,0,-1], [29,24,0], [20,24,0,-2], [6,35,9,-4], [16,13,-11,-4], [7,35,9], [11,6,-18,-4], [6,6,-18,-2], + [6,13,-11,-2], [18,17,1,-1], [20,25,1,-1], [16,17,1,-1], [20,25,1,-1], [16,17,1,-1], [14,24,0,-1], [18,23,7,-1], + [20,24,0,-1], [9,24,0,-1], [12,31,7,2], [19,24,0,-1], [9,24,0,-1], [31,16,0,-1], [20,16,0,-1], [18,17,1,-1], + [20,23,7,-1], [20,23,7,-1], [14,16,0,-1], [14,17,1,-1], [13,23,1], [20,17,1,-1], [20,17,1], [28,17,1], + [20,16,0], [20,23,7], [15,16,0,-1], [20,2,-8], [39,2,-8], [13,8,-17,-4], [14,4,-20,-3], [13,6,-18,-3], + [14,64,113,162,211,260,309,359,408,457,506,555,604,653,703,752], + [46,87,128,170,211,253,294,335], + [806,363] + ], + cmti10: [ + [22,24,0,-2], [24,25,0,-2], [22,25,1,-5], [20,25,0,-2], [24,23,0,-2], [27,24,0,-2], [25,24,0,-2], [22,24,0,-7], + [20,24,0,-5], [21,24,0,-7], [23,24,0,-3], [27,31,7,1], [22,31,7,1], [23,31,7,1], [33,31,7,1], [33,31,7,1], + [10,16,1,-2], [13,22,7,2], [6,7,-17,-9], [8,7,-17,-11], [10,5,-17,-9], [11,7,-17,-9], [12,1,-19,-8], [7,7,-18,-16], + [9,7,7,-3], [21,31,7,1], [22,16,1,-3], [22,16,1,-3], [17,23,4,-2], [31,24,0,-2], [31,25,1,-5], [24,28,2,-4], + [9,5,-9,-3], [10,25,0,-3], [12,11,-13,-6], [25,31,7,-4], [21,25,1,-3], [24,28,2,-5], [24,26,1,-4], [6,11,-13,-7], + [13,35,9,-5], [13,35,9], [14,16,-10,-6], [22,21,2,-4], [6,11,7,-2], [9,3,-6,-3], [5,4,0,-3], [21,35,9], + [15,24,1,-4], [12,23,0,-4], [17,24,1,-2], [17,24,1,-3], [15,30,7,-1], [17,24,1,-3], [16,24,1,-4], [17,24,1,-5], + [16,24,1,-3], [16,24,1,-3], [8,15,0,-3], [9,22,7,-2], [9,25,8,-2], [23,9,-4,-4], [13,25,8,-2], [13,25,0,-6], + [22,25,1,-5], [22,25,0,-2], [23,24,0,-2], [23,25,1,-5], [25,24,0,-2], [24,24,0,-2], [23,24,0,-2], [23,25,1,-5], + [27,24,0,-2], [15,24,0,-2], [19,25,1,-3], [28,24,0,-2], [20,24,0,-2], [32,24,0,-2], [27,24,0,-2], [22,25,1,-5], + [23,24,0,-2], [22,31,7,-5], [23,25,1,-2], [20,25,1,-2], [22,23,0,-6], [23,25,1,-6], [23,25,1,-7], [31,25,1,-7], + [33,24,0,5], [24,24,0,-6], [22,24,0,-2], [13,35,9,-2], [12,11,-13,-9], [14,35,9,1], [9,6,-18,-9], [5,4,-19,-8], + [6,11,-13,-7], [16,16,1,-3], [13,25,1,-3], [13,16,1,-3], [16,25,1,-3], [13,16,1,-3], [17,31,7,1], [16,22,7,-1], + [17,25,1,-2], [10,24,-294,-2], [15,30,7,2], [15,25,1,-2], [8,25,1,-3], [27,16,1,-2], [18,16,1,-2], [15,16,1,-3], + [18,22,7], [14,22,7,-3], [15,16,1,-2], [13,16,1,-2], [10,23,1,-3], [17,16,1,-2], [15,16,1,-2], [22,16,1,-2], + [17,16,1,-1], [16,22,7,-2], [14,16,1,-2], [16,2,-8,-3], [32,2,-8,-4], [11,7,-17,-9], [12,4,-19,-8], [10,4,-19,-9], + [14,56,98,141,183,225,267,310,352,394,437,479,521,563,606,648], + [46,87,128,170,211,253,294,335], + [694,363] + ] +}); + +jsMath.Img.AddFont(298,{ + cmr10: [ + [23,28,0,-1], [31,30,0,-2], [28,30,1,-2], [27,30,0,-1], [25,28,0,-1], [29,28,0,-1], [26,28,0,-2], [28,29,0,-2], + [26,28,0,-2], [28,28,0,-2], [27,29,0,-1], [25,29,0,-1], [21,29,0,-1], [21,29,0,-1], [32,29,0,-1], [32,29,0,-1], + [10,19,0,-1], [11,28,9,2], [8,8,-21,-4], [8,8,-21,-8], [11,5,-21,-5], [13,8,-21,-4], [16,3,-22,-2], [9,8,-22,-11], + [10,9,9,-5], [19,30,1,-1], [28,20,1,-1], [30,20,1,-1], [18,26,4,-1], [35,28,0,-1], [39,30,1,-2], [28,34,3,-2], + [10,5,-11,-1], [5,30,0,-3], [14,13,-16,-1], [30,37,8,-2], [17,34,3,-2], [30,34,3,-2], [29,31,1,-1], [6,13,-16,-3], + [10,42,11,-4], [10,42,11,-2], [16,18,-13,-2], [28,28,4,-2], [6,13,8,-3], [12,3,-7], [5,5,0,-3], [17,42,11,-2], + [18,29,1,-1], [15,28,0,-3], [17,28,0,-2], [18,29,1,-1], [19,28,0,-1], [17,29,1,-2], [18,29,1,-1], [18,29,1,-2], + [18,29,1,-1], [18,29,1,-1], [5,18,0,-3], [5,26,8,-3], [5,30,9,-3], [28,10,-5,-2], [15,30,9,-2], [15,29,0,-2], + [28,30,1,-2], [29,30,0,-1], [26,28,0,-1], [26,30,1,-2], [28,28,0,-1], [26,28,0,-1], [24,28,0,-1], [29,30,1,-2], + [29,28,0,-1], [13,28,0,-1], [19,29,1,-1], [30,28,0,-1], [23,28,0,-1], [35,28,0,-1], [29,28,0,-1], [28,30,1,-2], + [25,28,0,-1], [28,37,8,-2], [29,29,1,-1], [19,30,1,-2], [27,28,0,-1], [29,29,1,-1], [30,29,1], [42,29,1], + [29,28,0,-1], [31,28,0], [21,28,0,-2], [7,42,11,-4], [14,13,-16,-6], [7,42,11], [11,7,-22,-5], [5,5,-23,-3], + [5,13,-16,-3], [20,20,1,-1], [21,30,1,-1], [16,20,1,-1], [21,30,1,-1], [16,20,1,-1], [14,29,0,-1], [19,28,9,-1], + [21,29,0,-1], [10,28,0,-1], [11,37,9,2], [20,29,0,-1], [10,29,0,-1], [33,19,0,-1], [21,19,0,-1], [19,20,1,-1], + [21,27,8,-1], [21,27,8,-1], [14,19,0,-1], [14,20,1,-1], [14,27,1], [21,20,1,-1], [21,19,1], [29,19,1], + [22,18,0], [21,27,9], [16,18,0,-1], [21,2,-10], [41,2,-10], [13,8,-21,-5], [14,5,-23,-3], [13,5,-23,-4], + [17,67,118,169,220,271,322,373,423,474,525,576,627,678,729,780], + [55,104,154,203,253,302,352,401], + [835,434] + ], + cmmi10: [ + [29,28,0,-1], [31,30,0,-2], [29,30,1,-2], [27,30,0,-1], [30,28,0,-2], [35,28,0,-1], [31,28,0,-2], [28,29,0,-1], + [26,28,0,-1], [28,28,0,-1], [30,29,0,-3], [24,20,1,-1], [24,37,8,-1], [23,28,9], [18,31,1,-1], [15,19,1,-1], + [19,38,9,-1], [20,28,9,-1], [18,30,1,-1], [12,20,1,-2], [21,20,1,-2], [21,30,1,-2], [23,27,9,-1], [20,19,0,-2], + [18,38,9,-1], [23,19,1,-1], [20,28,9,-1], [23,19,1,-1], [20,19,1,-1], [21,20,1,-1], [22,38,9,-2], [24,28,9,-1], + [25,38,9,-1], [25,19,1], [17,20,1,-1], [22,30,1,-1], [33,19,1,-1], [18,27,8,-3], [16,24,5,-1], [24,28,9,-2], + [37,12,-9,-2], [37,13,1,-2], [37,12,-9,-2], [37,13,1,-2], [7,10,-9,-2], [8,10,-9,-2], [19,22,1,-1], [19,22,1,-1], + [18,20,1,-1], [15,19,0,-3], [18,19,0,-1], [18,28,9,-1], [19,27,8,-1], [17,28,9,-2], [18,29,1,-1], [18,28,9,-2], + [18,29,1,-1], [18,28,9,-1], [5,5,0,-3], [6,13,8,-3], [26,25,2,-3], [17,42,11,-2], [26,25,2,-3], [21,20,0], + [23,31,1,-1], [29,30,0,-1], [30,28,0,-1], [30,30,1,-2], [32,28,0,-1], [31,28,0,-1], [30,28,0,-1], [30,30,1,-2], + [36,28,0,-1], [20,28,0,-1], [24,29,1,-2], [36,28,0,-1], [26,28,0,-1], [42,28,0,-1], [36,28,0,-1], [29,30,1,-2], + [30,28,0,-1], [29,37,8,-2], [30,29,1,-1], [25,30,1,-2], [28,28,0,-1], [30,29,1,-2], [30,29,1,-2], [41,29,1,-2], + [34,28,0,-1], [31,28,0,-1], [28,28,0,-2], [12,32,1,-2], [10,39,9,-3], [12,39,9,-2], [37,11,-5,-2], [37,11,-5,-2], + [17,30,1], [20,20,1,-1], [16,30,1,-1], [17,20,1,-1], [20,30,1,-1], [17,20,1,-1], [21,38,9,-2], [20,28,9], + [21,30,1,-2], [11,28,1,-1], [18,36,9,1], [19,30,1,-2], [10,30,1,-1], [34,20,1,-1], [23,20,1,-1], [19,20,1,-1], + [23,27,8,2], [18,27,8,-1], [17,20,1,-1], [16,20,1,-2], [13,27,1,-1], [22,20,1,-1], [19,20,1,-1], [28,20,1,-1], + [21,20,1,-1], [20,28,9,-1], [18,20,1,-1], [11,20,1,-1], [16,28,9,1], [23,28,9,-3], [19,9,-21,-7], [17,6,-22,-10], + [16,66,115,165,214,264,313,363,412,462,511,561,610,660,709,759], + [55,104,154,203,253,302,352,401], + [813,434] + ], + cmsy10: [ + [26,3,-9,-3], [5,5,-8,-3], [20,20,0,-6], [16,18,-1,-2], [28,24,2,-2], [20,20,0], [28,28,0,-2], [28,28,7,-2], + [28,28,4,-2], [28,28,4,-2], [28,28,4,-2], [28,28,4,-2], [28,28,4,-2], [37,39,9,-2], [17,17,-2,-2], [17,17,-2,-2], + [28,20,0,-2], [28,18,-1,-2], [26,33,6,-3], [26,33,6,-3], [26,32,6,-3], [26,32,6,-3], [26,32,6,-3], [26,32,6,-3], + [28,10,-5,-2], [28,18,-2,-2], [26,25,2,-3], [26,25,2,-3], [37,27,3,-2], [37,27,3,-2], [26,24,2,-3], [26,24,2,-3], + [37,15,-3,-2], [37,15,-3,-2], [15,37,8,-3], [15,37,8,-3], [37,15,-3,-2], [37,37,8,-2], [37,37,8,-2], [28,18,-1,-2], + [37,23,1,-2], [37,23,1,-2], [23,37,8,-1], [23,37,8,-1], [39,23,1,-1], [37,37,8,-2], [37,37,8,-2], [28,20,1,-2], + [10,22,-1,-1], [37,20,1,-2], [21,25,2,-3], [21,25,2,-3], [32,30,0,-2], [32,30,9,-2], [22,39,9,-5], [3,16,-2,-2], + [23,30,1], [19,29,0,-2], [23,12,-3,-2], [18,36,4,-1], [28,31,1,-2], [27,30,1,-2], [28,28,0,-2], [28,28,0,-2], + [21,29,0,-2], [32,32,2,-1], [27,30,1,-1], [22,30,1], [32,28,0], [23,30,1,-1], [34,30,2], [24,34,5,-1], + [34,30,2], [27,28,0,1], [34,33,5,-1], [29,30,1,-1], [26,30,1,-1], [45,31,2,-1], [42,34,2,2], [30,30,1,-2], + [30,30,2], [29,35,6,-4], [35,29,1], [27,30,1], [32,30,0,-1], [30,30,2,1], [26,30,2,-1], [42,30,2,-1], + [32,28,0,-2], [29,34,6,-1], [31,28,0,-1], [23,26,1,-2], [23,26,1,-2], [23,26,1,-2], [23,26,1,-2], [23,26,1,-2], + [21,29,0,-2], [21,29,0,-2], [11,42,11,-7], [11,42,11], [11,42,11,-7], [10,42,11,-1], [15,42,11,-3], [15,42,11,-3], + [10,42,11,-4], [10,42,11,-2], [3,42,11,-4], [10,42,11,-5], [15,44,12,-3], [23,44,12,-1], [17,42,11,-2], [7,28,4,-2], + [32,42,40,-3], [29,28,0,-1], [31,30,2,-2], [18,39,9,-2], [23,25,0,-2], [23,25,0,-2], [27,33,6,-3], [27,33,6,-2], + [14,38,9,-2], [14,38,9,-2], [14,38,9,-2], [22,37,8,-2], [30,36,6,-1], [28,37,7,-2], [28,32,2,-2], [28,36,6,-2], + [17,77,136,196,255,314,374,433,493,552,612,671,730,790,849,909], + [58,142,227,311,396,481,565,650], + [974,721] + ], + cmex10: [ + [11,50,48,-6], [12,50,48,-1], [9,50,48,-8], [9,50,48], [11,50,48,-8], [11,50,48], [11,50,48,-8], [11,50,48], + [16,50,48,-4], [16,50,48,-4], [12,50,48,-4], [13,50,48,-3], [3,27,26,-5], [12,27,26,-5], [20,50,48,-2], [20,50,48,-2], + [16,75,73,-7], [17,75,73,-1], [21,99,97,-8], [21,99,97,-1], [11,99,97,-10], [12,99,97], [14,99,97,-10], [14,99,97], + [14,99,97,-10], [14,99,97], [21,99,97,-5], [21,99,97,-5], [22,99,97,-5], [22,99,97,-4], [39,99,97,-2], [39,99,97,-2], + [22,124,122,-9], [22,124,122,-1], [13,124,122,-11], [13,124,122], [15,124,122,-11], [15,124,122], [15,124,122,-11], [15,124,122], + [23,124,122,-5], [23,124,122,-5], [24,124,122,-5], [24,124,122,-4], [48,124,122,-2], [48,124,122,-2], [29,75,73,-2], [29,74,72,-2], + [24,75,73,-11], [23,75,73,-1], [14,75,73,-13], [14,75,73], [14,75,73,-13], [14,75,73], [4,25,25,-13], [3,25,25,-11], + [15,38,38,-15], [14,38,38,-7], [15,38,37,-15], [14,38,37,-7], [14,76,75,-7], [15,76,75,-15], [6,14,13,-15], [3,25,25,-12], + [24,75,73,-11], [23,75,73,-1], [6,26,25,-11], [5,26,25,-19], [18,75,73,-4], [18,75,73,-3], [30,41,41,-2], [42,58,58,-2], + [23,46,46,-2], [37,92,92,-2], [42,41,41,-2], [58,58,58,-2], [42,41,41,-2], [58,58,58,-2], [42,41,41,-2], [58,58,58,-2], + [39,41,41,-2], [35,41,41,-2], [23,46,46,-2], [30,41,41,-2], [30,41,41,-2], [30,41,41,-2], [30,41,41,-2], [30,41,41,-2], + [55,58,58,-2], [49,58,58,-2], [37,92,92,-2], [42,58,58,-2], [42,58,58,-2], [42,58,58,-2], [42,58,58,-2], [42,58,58,-2], + [35,41,41,-2], [49,58,58,-2], [23,8,-23], [41,9,-23], [60,9,-23], [23,6,-24], [41,6,-25], [59,6,-25], + [10,75,73,-9], [10,75,73], [12,75,73,-9], [13,75,73], [12,75,73,-9], [13,75,73], [19,75,73,-4], [19,75,73,-4], + [38,50,48,-4], [38,75,73,-4], [38,99,97,-4], [38,124,122,-4], [27,75,74,-4], [3,27,26,-28], [16,26,24,-28], [12,25,25,-10], + [19,25,25,-4], [19,25,25,-4], [20,14,9,1], [21,14,9,1], [20,14,0,1], [21,14,0,1], [28,25,25,-2], [28,25,25,-2], + [19,93,168,243,318,392,467,542,617,692,766,841,916,991,1066,1140], + [66,249,433,617,800,984,1167,1351], + [1222,1530] + ], + cmbx10: [ + [26,28,0,-1], [35,29,0,-2], [32,30,1,-2], [31,29,0,-1], [28,28,0,-2], [35,28,0,-1], [30,29,0,-2], [32,29,0,-2], + [30,29,0,-2], [32,29,0,-2], [30,29,0,-2], [30,29,0,-1], [24,29,0,-1], [24,29,0,-1], [37,29,0,-1], [37,29,0,-1], + [11,19,0,-1], [14,28,9,3], [10,8,-21,-4], [10,8,-21,-9], [13,6,-21,-5], [15,9,-20,-4], [18,3,-22,-3], [10,7,-22,-13], + [13,9,9,-5], [23,30,1,-1], [32,20,1,-1], [35,20,1,-1], [22,28,5,-1], [41,29,0,-1], [44,30,1,-3], [32,34,3,-2], + [14,6,-11], [7,29,0,-4], [18,15,-14,-1], [35,37,8,-2], [19,34,3,-2], [35,34,3,-2], [33,30,1,-2], [8,15,-14,-3], + [12,42,11,-4], [12,42,11,-2], [18,19,-12,-3], [32,32,6,-2], [8,15,8,-3], [13,5,-7], [7,7,0,-3], [19,42,11,-2], + [21,28,1,-1], [18,27,0,-3], [20,27,0,-2], [20,28,1,-2], [22,27,0,-1], [20,28,1,-2], [20,28,1,-2], [21,29,1,-2], + [20,28,1,-2], [20,28,1,-2], [7,19,0,-3], [7,27,8,-3], [7,30,9,-4], [32,13,-4,-2], [18,30,9,-2], [18,29,0,-2], + [32,30,1,-2], [33,29,0,-1], [30,29,0,-1], [30,30,1,-2], [33,29,0,-1], [29,28,0,-1], [27,28,0,-1], [33,30,1,-2], + [35,29,0,-1], [16,29,0,-1], [21,30,1,-1], [34,29,0,-1], [26,29,0,-1], [43,29,0,-1], [35,29,0,-1], [31,30,1,-2], + [29,29,0,-1], [31,37,8,-2], [35,30,1,-1], [22,30,1,-2], [30,28,0,-1], [34,30,1,-1], [34,30,1,-1], [47,30,1,-1], + [34,29,0,-1], [35,29,0], [25,29,0,-2], [7,42,11,-5], [19,15,-14,-5], [7,42,11,-1], [13,8,-21,-5], [7,7,-22,-3], + [8,15,-14,-2], [22,20,1,-1], [24,30,1,-1], [19,20,1,-1], [24,30,1,-1], [20,20,1,-1], [17,29,0,-1], [22,28,9,-1], + [25,29,0,-1], [11,29,0,-1], [14,38,9,3], [24,29,0,-1], [11,29,0,-1], [38,19,0,-1], [25,19,0,-1], [22,20,1,-1], + [24,27,8,-1], [24,27,8,-1], [18,19,0,-1], [16,20,1,-1], [16,27,1], [25,20,1,-1], [23,20,1,-1], [32,20,1,-1], + [24,19,0], [24,28,9], [18,19,0,-1], [24,2,-10], [48,2,-10], [16,9,-21,-5], [16,5,-24,-4], [16,7,-22,-4], + [17,76,135,194,253,311,370,429,488,547,606,664,723,782,841,900], + [55,104,154,203,253,302,352,401], + [964,434] + ], + cmti10: [ + [27,28,0,-2], [28,30,0,-3], [27,30,1,-6], [25,30,0,-2], [28,28,0,-3], [33,28,0,-2], [29,28,0,-3], [27,29,0,-8], + [24,28,0,-6], [26,28,0,-8], [28,29,0,-4], [32,38,9,1], [26,38,9,1], [27,38,9,1], [39,38,9,1], [40,38,9,1], + [11,20,1,-3], [16,28,9,2], [6,9,-20,-12], [9,9,-20,-14], [11,6,-20,-11], [13,8,-21,-11], [15,3,-22,-9], [9,8,-22,-19], + [10,8,8,-4], [25,38,9,1], [27,20,1,-3], [26,20,1,-4], [21,27,5,-2], [37,28,0,-2], [37,30,1,-6], [30,34,3,-4], + [11,5,-11,-3], [12,30,0,-4], [14,13,-16,-7], [30,37,8,-4], [26,30,1,-3], [29,34,3,-6], [28,31,1,-5], [7,13,-16,-9], + [16,42,11,-6], [16,42,11], [16,18,-13,-8], [26,26,3,-5], [7,13,8,-3], [11,3,-7,-3], [6,5,0,-4], [26,42,11], + [19,29,1,-4], [15,28,0,-4], [20,29,1,-3], [20,29,1,-3], [19,36,8,-1], [20,29,1,-4], [20,29,1,-4], [20,29,1,-6], + [19,29,1,-4], [19,29,1,-4], [9,18,0,-4], [10,26,8,-3], [12,30,9,-2], [28,10,-5,-4], [16,30,9,-3], [15,30,0,-8], + [27,30,1,-6], [27,30,0,-2], [29,28,0,-2], [28,30,1,-6], [30,28,0,-2], [29,28,0,-2], [28,28,0,-2], [28,30,1,-6], + [33,28,0,-2], [19,28,0,-2], [23,29,1,-3], [34,28,0,-2], [24,28,0,-2], [39,28,0,-2], [33,28,0,-2], [27,30,1,-6], + [28,28,0,-2], [27,37,8,-6], [28,29,1,-2], [23,30,1,-3], [26,28,0,-7], [27,29,1,-8], [28,29,1,-8], [37,29,1,-8], + [40,28,0,6], [28,28,0,-8], [26,28,0,-3], [16,42,11,-3], [14,13,-16,-11], [16,42,11,1], [11,7,-22,-11], [5,5,-23,-10], + [7,13,-16,-8], [18,20,1,-4], [15,30,1,-4], [16,20,1,-4], [19,30,1,-4], [16,20,1,-4], [20,38,9,1], [18,28,9,-2], + [19,30,1,-3], [11,28,1,-3], [17,36,9,2], [18,30,1,-3], [10,30,1,-3], [32,20,1,-3], [21,20,1,-3], [17,20,1,-4], + [21,27,8], [17,27,8,-4], [17,20,1,-3], [15,20,1,-3], [13,27,1,-3], [20,20,1,-3], [18,20,1,-3], [26,20,1,-3], + [20,20,1,-2], [19,28,9,-3], [17,20,1,-2], [20,2,-10,-3], [38,2,-10,-5], [13,9,-20,-11], [14,5,-23,-10], [12,5,-23,-11], + [17,67,118,168,219,270,320,371,421,472,522,573,624,674,725,775], + [55,104,154,203,253,302,352,401], + [831,434] + ] +}); + +jsMath.Img.AddFont(358,{ + cmr10: [ + [28,34,0,-1], [37,35,0,-2], [34,36,1,-2], [32,35,0,-1], [29,34,0,-2], [35,34,0,-1], [31,34,0,-2], [34,35,0,-2], + [31,34,0,-2], [34,34,0,-2], [32,35,0,-2], [30,35,0,-1], [25,35,0,-1], [25,35,0,-1], [39,35,0,-1], [39,35,0,-1], + [12,22,0,-1], [13,32,10,2], [10,10,-25,-5], [10,10,-25,-10], [13,7,-25,-6], [16,9,-25,-4], [18,2,-27,-3], [10,10,-26,-13], + [12,9,10,-6], [23,36,1,-1], [32,23,1,-2], [36,23,1,-1], [22,31,5,-1], [42,34,0,-1], [46,37,2,-3], [34,39,3,-2], + [12,6,-13,-1], [6,35,0,-4], [16,15,-19,-1], [36,44,10,-2], [20,40,3,-2], [36,40,3,-2], [34,38,2,-2], [7,15,-19,-4], + [13,50,13,-4], [13,50,13,-2], [19,22,-15,-3], [34,33,4,-2], [6,16,10,-4], [14,3,-9], [6,6,0,-4], [20,50,13,-2], + [22,35,2,-1], [17,33,0,-4], [20,33,0,-2], [21,35,2,-2], [23,34,0,-1], [20,35,2,-2], [21,35,2,-2], [22,35,1,-2], + [21,35,2,-2], [21,34,1,-2], [6,22,0,-4], [6,32,10,-4], [6,36,11,-4], [34,12,-6,-2], [19,35,10,-2], [19,35,0,-2], + [34,36,1,-2], [35,35,0,-1], [31,34,0,-1], [31,37,2,-2], [34,34,0,-1], [31,34,0,-1], [29,34,0,-1], [34,37,2,-2], + [35,34,0,-1], [16,34,0,-1], [21,35,1,-2], [36,34,0,-1], [28,34,0,-1], [43,34,0,-1], [35,34,0,-1], [34,36,1,-2], + [30,34,0,-1], [34,45,10,-2], [35,35,1,-1], [23,37,2,-2], [33,34,0,-1], [35,35,1,-1], [36,35,1], [50,35,1], + [35,34,0,-1], [37,34,0], [26,34,0,-2], [8,50,13,-5], [16,15,-19,-7], [7,50,13,-1], [14,8,-26,-5], [6,6,-27,-4], + [7,15,-19,-3], [23,23,1,-2], [25,35,1,-1], [20,23,1,-1], [25,35,1,-1], [20,23,1,-1], [17,35,0,-1], [23,34,11,-1], + [26,34,0,-1], [12,33,0,-1], [13,43,10,2], [24,34,0,-1], [12,34,0,-1], [39,22,0,-1], [26,22,0,-1], [23,23,1,-1], + [25,32,10,-1], [25,32,10,-1], [17,22,0,-1], [17,23,1,-1], [16,32,1,-1], [26,23,1,-1], [25,23,1], [35,23,1], + [26,22,0], [25,32,10], [19,22,0,-1], [25,2,-12], [49,2,-12], [15,10,-25,-6], [17,5,-28,-4], [15,6,-27,-5], + [20,81,142,203,264,325,387,448,509,570,631,692,753,814,875,937], + [64,124,183,243,302,362,421,481], + [1003,521] + ], + cmmi10: [ + [34,34,0,-2], [37,35,0,-2], [35,37,2,-2], [32,35,0,-1], [36,34,0,-2], [42,34,0,-2], [38,34,0,-2], [34,35,0,-1], + [31,34,0,-1], [33,34,0,-1], [36,35,0,-3], [28,23,1,-2], [28,45,10,-1], [27,33,11], [21,36,1,-2], [17,23,1,-2], + [22,45,10,-2], [24,33,11,-1], [21,36,1,-2], [14,23,1,-2], [25,23,1,-2], [25,35,1,-2], [27,33,11,-1], [24,22,0,-2], + [21,45,10,-1], [27,23,1,-1], [24,33,11,-1], [27,23,1,-1], [24,23,1,-1], [25,23,1,-1], [26,44,10,-2], [28,32,10,-1], + [31,44,10,-1], [30,23,1], [20,25,2,-1], [27,36,1,-1], [39,23,1,-1], [22,32,10,-3], [19,28,6,-1], [29,33,11,-2], + [45,14,-11,-2], [45,15,1,-2], [45,14,-11,-2], [45,15,1,-2], [9,12,-11,-2], [9,12,-11,-2], [23,26,1,-1], [23,26,1,-1], + [21,25,2,-2], [17,23,0,-4], [20,23,0,-2], [21,34,11,-2], [22,33,10,-1], [20,34,11,-2], [21,35,2,-2], [22,34,11,-2], + [21,35,2,-2], [21,34,11,-2], [6,6,0,-4], [6,16,10,-4], [30,29,2,-4], [20,50,13,-2], [30,29,2,-4], [25,24,0], + [26,36,1,-2], [35,35,0,-1], [35,34,0,-2], [36,37,2,-2], [38,34,0,-2], [37,34,0,-1], [36,34,0,-1], [36,37,2,-2], + [42,34,0,-2], [24,34,0,-1], [28,35,1,-3], [43,34,0,-1], [30,34,0,-2], [50,34,0,-2], [42,34,0,-2], [35,37,2,-2], + [35,34,0,-2], [35,45,10,-2], [35,35,1,-2], [30,37,2,-2], [34,34,0,-1], [35,36,2,-3], [36,35,1,-2], [50,35,1,-2], + [41,34,0,-1], [37,34,0,-1], [34,34,0,-2], [15,38,1,-2], [13,47,11,-3], [15,46,11,-2], [45,13,-6,-2], [45,13,-6,-2], + [20,36,1], [23,23,1,-2], [19,35,1,-2], [19,23,1,-2], [24,35,1,-2], [19,23,1,-2], [25,45,10,-2], [24,32,10], + [25,35,1,-2], [14,34,1,-1], [21,43,10,1], [23,35,1,-2], [11,35,1,-2], [41,23,1,-1], [27,23,1,-1], [21,23,1,-2], + [26,32,10,2], [20,32,10,-2], [21,23,1,-1], [19,23,1,-2], [16,32,1,-1], [26,23,1,-1], [22,23,1,-1], [33,23,1,-1], + [25,23,1,-1], [23,32,10,-1], [21,23,1,-2], [14,23,1,-1], [19,32,10,1], [28,34,11,-3], [22,10,-25,-9], [19,7,-26,-13], + [20,79,139,198,258,317,377,436,495,555,614,674,733,793,852,912], + [64,124,183,243,302,362,421,481], + [977,521] + ], + cmsy10: [ + [30,3,-11,-4], [6,6,-9,-4], [24,24,0,-7], [19,22,-1,-3], [34,28,2,-2], [24,24,0], [34,33,0,-2], [34,34,9,-2], + [34,33,4,-2], [34,33,4,-2], [34,33,4,-2], [34,33,4,-2], [34,33,4,-2], [45,47,11,-2], [20,20,-2,-2], [20,20,-2,-2], + [34,24,0,-2], [34,22,-1,-2], [30,39,7,-4], [30,39,7,-4], [30,38,7,-4], [30,39,7,-4], [30,38,7,-4], [30,39,7,-4], + [34,12,-6,-2], [34,22,-2,-2], [30,29,2,-4], [30,29,2,-4], [45,32,4,-2], [45,32,4,-2], [30,29,2,-4], [30,29,2,-4], + [45,18,-3,-2], [45,18,-3,-2], [18,44,10,-3], [18,44,10,-3], [45,18,-3,-2], [45,45,10,-2], [45,44,10,-2], [34,22,-1,-2], + [45,28,2,-2], [45,28,2,-2], [28,44,10,-1], [28,44,10,-1], [47,28,2,-1], [45,45,10,-2], [45,44,10,-2], [34,23,1,-2], + [12,26,-2,-1], [45,23,1,-2], [25,29,2,-4], [25,29,2,-4], [38,35,0,-3], [39,36,11,-2], [26,46,11,-6], [4,19,-3,-2], + [28,35,1], [23,34,0,-2], [28,14,-4,-2], [21,42,4,-2], [33,38,2,-2], [32,36,1,-2], [34,33,0,-2], [34,33,0,-2], + [26,34,0,-2], [38,39,3,-1], [32,37,2,-1], [27,37,2], [37,34,0,-1], [27,37,2,-1], [41,36,2], [28,41,6,-2], + [39,37,3,-1], [33,34,0,2], [39,40,6,-2], [35,37,2,-1], [31,37,2,-1], [54,38,3,-1], [50,41,3,2], [37,37,2,-2], + [35,37,3,-1], [34,42,7,-5], [40,36,2,-1], [32,37,2], [38,36,0,-1], [35,36,2,1], [32,37,3,-1], [50,37,3,-1], + [38,34,0,-2], [35,41,7,-1], [37,34,0,-1], [28,32,2,-2], [28,31,1,-2], [28,32,2,-2], [28,31,1,-2], [28,31,1,-2], + [25,34,0,-2], [26,34,0,-2], [13,50,13,-8], [13,50,13,-1], [13,50,13,-8], [13,50,13,-1], [18,50,13,-3], [18,50,13,-3], + [12,50,13,-5], [12,50,13,-2], [3,50,13,-5], [12,50,13,-6], [18,52,14,-3], [28,52,14,-1], [20,50,13,-2], [9,33,4,-2], + [39,49,47,-3], [34,34,0,-1], [37,36,2,-2], [21,46,11,-2], [27,30,0,-3], [27,30,0,-3], [31,39,7,-4], [31,39,7,-3], + [16,45,10,-3], [17,46,11,-2], [17,45,10,-2], [27,44,10,-2], [36,43,7,-1], [34,44,8,-2], [34,38,2,-2], [34,43,7,-2], + [21,92,164,235,306,378,449,521,592,663,735,806,878,949,1020,1092], + [68,170,271,373,475,576,678,780], + [1170,865] + ], + cmex10: [ + [14,59,57,-7], [13,59,57,-2], [11,59,57,-9], [10,59,57,-1], [13,59,57,-9], [13,59,57,-1], [13,59,57,-9], [13,59,57,-1], + [18,59,57,-5], [18,59,57,-5], [16,59,57,-4], [16,59,57,-3], [3,32,31,-7], [14,32,31,-7], [24,59,57,-2], [24,59,57,-2], + [20,89,87,-8], [20,89,87,-1], [25,118,116,-10], [25,118,116,-1], [14,118,116,-12], [14,118,116], [16,118,116,-12], [17,118,116], + [16,118,116,-12], [17,118,116], [25,118,116,-6], [25,118,116,-6], [26,118,116,-6], [27,118,116,-4], [47,118,116,-2], [47,118,116,-2], + [26,147,145,-11], [27,147,145,-1], [15,147,145,-13], [15,147,145], [18,147,145,-13], [18,147,145], [18,147,145,-13], [18,147,145], + [26,147,145,-7], [26,147,145,-7], [29,147,145,-6], [28,147,145,-5], [58,147,145,-2], [58,147,145,-2], [35,89,87,-2], [35,89,87,-2], + [28,89,87,-14], [28,89,87,-1], [17,89,87,-16], [17,89,87], [17,89,87,-16], [17,89,87], [4,30,30,-16], [4,30,30,-13], + [18,45,45,-18], [17,45,45,-8], [18,45,44,-18], [17,45,44,-8], [17,90,89,-8], [18,90,89,-18], [7,17,16,-18], [3,30,30,-15], + [28,90,87,-14], [28,90,87,-1], [6,31,30,-14], [6,31,30,-23], [21,89,87,-5], [21,89,87,-4], [36,49,49,-2], [50,69,69,-2], + [28,55,55,-2], [45,109,109,-2], [50,49,49,-2], [70,69,69,-2], [50,49,49,-2], [70,69,69,-2], [50,49,49,-2], [70,69,69,-2], + [47,49,49,-2], [42,49,49,-2], [28,55,55,-2], [36,49,49,-2], [36,49,49,-2], [36,49,49,-2], [36,49,49,-2], [36,49,49,-2], + [66,69,69,-2], [58,69,69,-2], [45,109,109,-2], [50,69,69,-2], [50,69,69,-2], [50,69,69,-2], [50,69,69,-2], [50,69,69,-2], + [42,49,49,-2], [58,69,69,-2], [29,10,-27,1], [49,10,-28], [71,10,-28], [27,7,-29], [49,7,-30], [71,7,-30], + [12,89,87,-11], [12,89,87], [14,89,87,-11], [15,89,87], [14,89,87,-11], [15,89,87], [22,89,87,-5], [22,89,87,-5], + [45,59,57,-5], [45,89,87,-5], [45,118,116,-5], [45,147,145,-5], [32,90,89,-5], [3,32,31,-34], [19,31,29,-34], [14,30,30,-12], + [23,30,30,-5], [23,30,30,-5], [25,17,11,2], [25,17,11,1], [25,17,0,2], [25,17,0,1], [34,30,30,-2], [34,29,29,-2], + [22,112,202,292,382,472,561,651,741,831,921,1011,1100,1190,1280,1370], + [78,298,519,740,960,1181,1401,1622], + [1468,1836] + ], + cmbx10: [ + [31,34,0,-1], [42,35,0,-2], [38,36,1,-3], [36,35,0,-2], [34,34,0,-2], [42,34,0,-1], [35,34,0,-3], [38,35,0,-3], + [35,34,0,-3], [38,34,0,-3], [37,35,0,-2], [36,35,0,-1], [29,35,0,-1], [29,35,0,-1], [45,35,0,-1], [45,35,0,-1], + [12,22,0,-2], [17,32,10,3], [12,10,-25,-5], [12,10,-25,-11], [16,7,-25,-6], [18,10,-24,-5], [22,3,-27,-3], [13,9,-26,-15], + [16,10,10,-6], [27,36,1,-1], [39,24,1,-1], [42,24,1,-1], [26,32,5,-1], [48,34,0,-2], [52,36,1,-4], [38,40,3,-3], + [15,7,-13,-1], [9,35,0,-4], [22,18,-16,-1], [41,44,10,-3], [22,40,3,-3], [41,40,3,-3], [39,36,1,-2], [9,18,-16,-4], + [14,50,13,-5], [14,50,13,-3], [22,22,-15,-3], [38,38,7,-3], [9,18,10,-4], [16,6,-8], [8,8,0,-4], [22,50,13,-3], + [24,34,1,-2], [21,32,0,-4], [24,33,0,-2], [24,34,1,-2], [26,33,0,-1], [24,33,1,-2], [24,34,1,-2], [25,35,1,-3], + [24,34,1,-2], [24,34,1,-2], [8,22,0,-4], [8,32,10,-4], [9,35,10,-4], [38,15,-5,-3], [21,35,10,-3], [21,35,0,-3], + [38,36,1,-3], [39,35,0,-2], [36,34,0,-1], [35,36,1,-3], [39,34,0,-1], [35,34,0,-1], [32,34,0,-1], [39,36,1,-3], + [42,34,0,-1], [19,34,0,-1], [25,35,1,-1], [41,34,0,-1], [31,34,0,-1], [50,34,0,-2], [42,34,0,-1], [37,36,1,-3], + [35,34,0,-1], [37,45,10,-3], [41,35,1,-1], [26,36,1,-3], [35,34,0,-2], [41,35,1,-1], [41,35,1,-1], [56,35,1,-1], + [40,34,0,-1], [42,34,0], [29,34,0,-3], [9,50,13,-6], [22,18,-16,-6], [9,50,13,-1], [16,8,-26,-6], [8,8,-26,-4], + [9,18,-16,-3], [27,24,1,-1], [29,35,1,-1], [23,24,1,-1], [29,35,1,-1], [24,24,1,-1], [20,35,0,-2], [27,33,10,-1], + [29,34,0,-2], [12,34,0,-2], [17,44,10,3], [28,34,0,-1], [13,34,0,-2], [44,22,0,-2], [29,22,0,-2], [26,24,1,-1], + [29,32,10,-1], [29,32,10,-1], [21,22,0,-1], [20,24,1,-1], [18,33,1,-1], [29,23,1,-2], [28,23,1,-1], [39,23,1,-1], + [28,22,0,-1], [28,32,10,-1], [22,22,0,-1], [29,3,-12], [57,3,-12], [17,10,-25,-7], [20,6,-28,-4], [19,7,-27,-5], + [21,91,162,233,303,374,445,516,586,657,728,798,869,940,1010,1081], + [64,124,183,243,302,362,421,481], + [1158,521] + ], + cmti10: [ + [32,34,0,-3], [34,35,0,-3], [32,37,2,-7], [30,35,0,-2], [34,34,0,-3], [39,34,0,-3], [35,34,0,-4], [31,35,0,-10], + [29,34,0,-7], [31,34,0,-10], [34,35,0,-4], [40,45,10,2], [32,45,10,2], [34,45,10,2], [47,45,10,2], [49,45,10,2], + [13,23,1,-4], [18,32,10,2], [8,10,-24,-14], [11,11,-24,-16], [14,7,-24,-13], [15,9,-25,-13], [17,2,-27,-11], [10,9,-26,-23], + [12,10,10,-5], [30,45,10,1], [32,23,1,-4], [31,23,1,-5], [24,33,6,-3], [45,34,0,-2], [44,37,2,-8], [36,40,3,-5], + [13,7,-13,-4], [14,35,0,-5], [18,15,-19,-8], [36,44,10,-5], [31,36,1,-4], [35,40,3,-7], [34,37,2,-6], [9,15,-19,-10], + [19,50,13,-7], [18,50,13,-1], [20,22,-15,-9], [31,31,3,-6], [8,16,10,-3], [13,3,-9,-4], [6,6,0,-5], [30,50,13,-1], + [23,35,2,-5], [18,33,0,-5], [23,34,1,-4], [24,35,2,-4], [22,43,10,-2], [23,34,1,-5], [23,34,1,-5], [24,34,1,-7], + [24,35,2,-4], [23,34,1,-5], [10,22,0,-5], [12,32,10,-3], [14,36,11,-2], [33,12,-6,-5], [18,36,11,-4], [18,35,0,-9], + [32,36,1,-7], [32,35,0,-2], [33,34,0,-3], [33,37,2,-7], [35,34,0,-3], [34,34,0,-3], [33,34,0,-3], [33,37,2,-7], + [39,34,0,-3], [23,34,0,-2], [27,36,2,-4], [39,34,0,-3], [28,34,0,-3], [46,34,0,-3], [39,34,0,-3], [32,37,2,-7], + [33,34,0,-3], [32,45,10,-7], [33,36,2,-3], [28,37,2,-3], [32,34,0,-8], [33,36,2,-9], [33,35,1,-10], [45,36,2,-10], + [48,34,0,7], [34,34,0,-9], [31,34,0,-4], [19,50,13,-3], [17,15,-19,-13], [19,50,13,1], [13,8,-26,-13], [6,6,-27,-12], + [8,15,-19,-10], [22,23,1,-5], [18,35,1,-5], [18,23,1,-5], [23,35,1,-5], [18,23,1,-5], [25,45,10,2], [22,32,10,-2], + [24,35,1,-3], [13,34,1,-4], [20,43,10,2], [22,35,1,-3], [11,35,1,-4], [38,23,1,-4], [25,23,1,-4], [20,23,1,-5], + [25,32,10], [20,32,10,-5], [20,23,1,-4], [18,23,1,-3], [15,32,1,-4], [24,23,1,-4], [21,23,1,-4], [31,23,1,-4], + [24,23,1,-2], [22,32,10,-4], [20,23,1,-3], [23,2,-12,-4], [45,2,-12,-6], [16,11,-24,-13], [16,6,-27,-12], [14,6,-27,-13], + [20,81,141,202,263,324,385,445,506,567,628,688,749,810,871,932], + [64,124,183,243,302,362,421,481], + [998,521] + ] +}); + +jsMath.Img.AddFont(430,{ + cmr10: [ + [33,41,0,-2], [45,43,0,-2], [40,44,2,-3], [38,43,0,-1], [35,40,0,-2], [41,41,0,-2], [37,41,0,-3], [40,42,0,-3], + [37,41,0,-3], [40,41,0,-3], [38,42,0,-2], [36,42,0,-1], [31,42,0,-1], [31,42,0,-1], [47,42,0,-1], [47,42,0,-1], + [13,26,0,-2], [16,39,13,3], [12,12,-30,-6], [11,12,-30,-12], [16,8,-30,-7], [19,11,-30,-5], [22,2,-33,-4], [12,11,-32,-16], + [15,11,12,-7], [27,43,1,-1], [39,28,1,-2], [44,28,1,-1], [26,38,6,-2], [51,41,0,-1], [54,44,2,-4], [40,48,4,-3], + [15,7,-16,-1], [7,43,0,-5], [19,18,-23,-2], [43,53,12,-3], [24,49,4,-3], [43,49,4,-3], [41,45,2,-2], [8,18,-23,-5], + [15,60,15,-5], [14,60,15,-3], [23,27,-18,-3], [40,40,5,-3], [7,19,12,-5], [17,4,-11], [7,7,0,-5], [24,60,15,-3], + [26,42,2,-2], [20,40,0,-5], [24,40,0,-3], [25,42,2,-2], [27,40,0,-1], [24,42,2,-3], [25,42,2,-2], [26,42,2,-3], + [25,42,2,-2], [25,42,2,-2], [7,26,0,-5], [7,38,12,-5], [7,43,13,-5], [40,15,-7,-3], [22,43,13,-3], [22,42,0,-3], + [40,43,1,-3], [42,43,0,-1], [37,41,0,-2], [37,44,2,-3], [40,41,0,-2], [37,41,0,-2], [34,41,0,-2], [41,44,2,-3], + [41,41,0,-2], [19,41,0,-1], [26,43,2,-2], [42,41,0,-2], [33,41,0,-2], [50,41,0,-2], [41,41,0,-2], [40,44,2,-3], + [35,41,0,-2], [40,54,12,-3], [42,43,2,-2], [27,44,2,-3], [39,40,0,-2], [41,43,2,-2], [43,43,2,-1], [59,43,2,-1], + [42,41,0,-1], [44,41,0], [30,41,0,-3], [8,60,15,-7], [19,18,-23,-9], [9,60,15,-1], [16,9,-32,-7], [7,7,-33,-5], + [8,18,-23,-4], [28,28,1,-2], [30,42,1,-1], [23,28,1,-2], [30,42,1,-2], [24,28,1,-1], [19,42,0,-2], [28,40,13,-1], + [31,41,0,-1], [13,40,0,-2], [16,53,13,3], [30,41,0,-1], [13,41,0,-2], [47,27,0,-1], [31,27,0,-1], [27,28,1,-1], + [30,39,12,-1], [30,39,12,-2], [21,26,0,-1], [20,28,1,-2], [19,38,1,-1], [31,27,1,-1], [29,27,1,-1], [41,27,1,-1], + [31,26,0], [29,39,13,-1], [23,26,0,-1], [30,2,-15], [59,2,-15], [18,12,-30,-7], [20,7,-33,-5], [18,7,-33,-6], + [24,97,171,244,317,391,464,538,611,684,758,831,904,978,1051,1125], + [77,149,220,292,363,434,506,577], + [1205,625] + ], + cmmi10: [ + [41,41,0,-2], [44,43,0,-3], [42,44,2,-2], [38,43,0,-2], [43,40,0,-3], [50,41,0,-2], [45,41,0,-3], [41,42,0,-1], + [37,41,0,-1], [40,41,0,-1], [43,42,0,-4], [34,28,1,-2], [34,54,12,-1], [31,40,13,-1], [25,43,1,-2], [21,27,1,-2], + [26,55,13,-2], [29,40,13,-1], [25,43,1,-2], [17,27,1,-3], [30,27,1,-3], [30,42,1,-3], [33,39,13,-1], [28,26,0,-3], + [26,54,13,-1], [33,27,1,-1], [29,40,13,-1], [32,27,1,-2], [30,27,1,-1], [30,27,1,-1], [32,53,12,-2], [34,39,13,-1], + [37,53,12,-1], [36,27,1], [25,29,2,-1], [32,43,1,-1], [48,27,1,-1], [26,39,12,-4], [24,34,7,-1], [34,39,13,-3], + [53,18,-13,-3], [53,17,1,-3], [53,18,-13,-3], [53,17,1,-3], [10,15,-13,-3], [11,15,-13,-3], [27,31,1,-1], [27,31,1,-1], + [26,29,2,-2], [20,27,0,-5], [25,27,0,-2], [25,40,13,-2], [27,40,12,-1], [24,40,13,-3], [25,42,2,-2], [26,41,13,-3], + [25,42,2,-2], [25,40,13,-2], [7,7,0,-5], [7,19,12,-5], [37,35,3,-4], [24,60,15,-3], [37,35,3,-4], [30,28,-1], + [32,45,2,-2], [41,43,0,-2], [43,41,0,-2], [42,44,2,-3], [46,41,0,-2], [43,41,0,-2], [43,41,0,-2], [42,44,2,-3], + [50,41,0,-2], [28,41,0,-2], [34,43,2,-4], [51,41,0,-2], [36,41,0,-2], [60,41,0,-2], [50,41,0,-2], [42,44,2,-2], + [43,41,0,-2], [42,54,12,-2], [43,43,2,-2], [35,44,2,-3], [41,40,0,-1], [41,43,2,-4], [43,43,2,-3], [59,43,2,-3], + [50,41,0,-1], [43,41,0,-2], [40,41,0,-3], [17,47,2,-3], [15,56,13,-4], [17,56,13,-3], [53,15,-7,-3], [53,16,-7,-3], + [24,43,1], [28,28,1,-2], [23,42,1,-2], [24,28,1,-2], [29,42,1,-2], [24,28,1,-2], [30,54,12,-3], [28,40,13], + [30,42,1,-3], [17,40,1,-1], [25,52,13,1], [27,42,1,-3], [14,42,1,-2], [49,28,1,-1], [33,28,1,-1], [26,28,1,-2], + [31,38,12,2], [25,39,12,-2], [25,28,1,-1], [22,28,1,-3], [19,38,1,-1], [31,27,1,-1], [27,27,1,-1], [40,27,1,-1], + [31,28,1,-1], [28,39,13,-1], [26,27,1,-2], [17,27,1,-1], [23,39,13,1], [33,40,13,-4], [27,13,-30,-10], [24,9,-31,-15], + [24,95,167,238,309,381,452,524,595,666,738,809,880,952,1023,1095], + [77,149,220,292,363,434,506,577], + [1172,625] + ], + cmsy10: [ + [36,3,-13,-5], [7,7,-11,-5], [30,29,0,-8], [23,26,-2,-3], [40,34,2,-3], [29,29,0], [40,40,0,-3], [40,40,10,-3], + [40,40,5,-3], [40,40,5,-3], [40,40,5,-3], [40,40,5,-3], [40,40,5,-3], [53,56,13,-3], [24,24,-3,-3], [24,24,-3,-3], + [40,28,-1,-3], [40,26,-2,-3], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], + [40,15,-7,-3], [40,26,-3,-3], [37,35,3,-4], [37,35,3,-4], [53,38,4,-3], [53,38,4,-3], [37,35,3,-4], [37,35,3,-4], + [53,22,-4,-3], [53,22,-4,-3], [22,53,12,-4], [22,53,12,-4], [53,22,-4,-3], [53,53,12,-3], [53,53,12,-3], [40,26,-2,-3], + [53,33,2,-3], [53,33,2,-3], [34,53,12,-1], [34,53,12,-1], [55,33,2,-2], [53,54,12,-3], [53,53,12,-3], [40,28,1,-3], + [15,31,-2,-1], [53,28,1,-3], [31,35,3,-4], [31,35,3,-4], [46,43,0,-3], [46,43,13,-3], [30,56,13,-8], [5,23,-3,-3], + [33,43,2], [27,41,0,-3], [33,16,-5,-3], [25,51,5,-2], [40,45,2,-2], [38,43,1,-3], [40,40,0,-3], [40,40,0,-3], + [30,41,0,-3], [46,46,3,-1], [39,44,2,-1], [32,44,2], [45,41,0,-1], [33,44,2,-1], [48,43,2,-1], [34,49,7,-2], + [48,44,3,-1], [40,41,0,2], [48,48,7,-2], [43,44,2,-1], [38,44,2,-1], [65,45,3,-1], [60,49,3,2], [43,44,2,-3], + [43,44,3,-1], [41,50,8,-6], [49,43,2,-1], [37,44,2,-1], [46,43,0,-1], [42,43,2,1], [37,44,3,-2], [60,44,3,-2], + [45,41,0,-3], [42,49,8,-1], [44,41,0,-2], [33,38,2,-3], [33,38,2,-3], [33,38,2,-3], [33,38,2,-3], [33,38,2,-3], + [30,41,0,-3], [30,41,0,-3], [15,60,15,-10], [15,60,15,-1], [15,60,15,-10], [15,60,15,-1], [22,60,15,-4], [22,60,15,-4], + [14,60,15,-6], [14,60,15,-3], [3,60,15,-7], [15,60,15,-7], [22,62,16,-4], [34,62,16,-1], [24,60,15,-3], [10,40,5,-3], + [47,60,57,-4], [40,41,0,-2], [45,43,2,-2], [25,56,13,-3], [33,36,0,-3], [33,36,0,-3], [38,47,9,-5], [38,47,9,-3], + [18,55,13,-4], [20,55,13,-3], [20,54,12,-3], [32,53,12,-3], [44,51,8,-1], [40,53,10,-3], [40,45,2,-3], [40,51,8,-3], + [25,111,196,282,368,454,539,625,711,797,882,968,1054,1140,1225,1311], + [82,204,326,448,570,692,814,936], + [1404,1039] + ], + cmex10: [ + [16,72,69,-9], [16,72,69,-2], [13,72,69,-11], [12,72,69,-1], [16,72,69,-11], [15,72,69,-1], [16,72,69,-11], [15,72,69,-1], + [22,72,69,-6], [22,72,69,-6], [19,72,69,-5], [18,72,69,-4], [4,39,37,-8], [17,39,37,-8], [28,72,69,-3], [28,72,69,-3], + [23,107,104,-10], [23,107,104,-2], [30,143,140,-12], [30,143,140,-2], [17,143,140,-14], [17,143,140], [20,143,140,-14], [20,143,140], + [20,143,140,-14], [20,143,140], [30,143,140,-7], [30,143,140,-7], [32,143,140,-7], [32,143,140,-5], [56,143,140,-3], [56,143,140,-3], + [32,178,175,-13], [31,178,175,-2], [18,178,175,-16], [19,178,175], [21,178,175,-16], [22,178,175], [21,178,175,-16], [22,178,175], + [31,178,175,-8], [31,178,175,-8], [34,178,175,-8], [34,178,175,-6], [69,178,175,-3], [69,178,175,-3], [42,107,104,-3], [42,107,104,-3], + [33,108,105,-17], [33,108,105,-2], [20,107,104,-19], [21,107,104], [20,107,104,-19], [21,107,104], [5,37,36,-19], [5,37,36,-16], + [21,54,54,-22], [20,54,54,-10], [21,54,53,-22], [20,54,53,-10], [20,108,107,-10], [21,108,107,-22], [8,20,19,-22], [3,37,36,-18], + [33,107,104,-17], [33,107,104,-2], [7,37,36,-17], [8,37,36,-27], [25,107,104,-6], [25,107,104,-5], [43,59,59,-3], [60,83,83,-3], + [33,66,66,-3], [53,132,132,-3], [60,59,59,-3], [83,83,83,-3], [60,59,59,-3], [83,83,83,-3], [60,59,59,-3], [83,83,83,-3], + [56,59,59,-3], [50,59,59,-3], [33,66,66,-3], [43,59,59,-3], [43,59,59,-3], [43,59,59,-3], [43,59,59,-3], [43,59,59,-3], + [79,83,83,-3], [69,83,83,-3], [53,132,132,-3], [60,83,83,-3], [60,83,83,-3], [60,83,83,-3], [60,83,83,-3], [60,83,83,-3], + [50,59,59,-3], [69,83,83,-3], [34,11,-33,1], [60,12,-34,1], [86,12,-34], [33,8,-35], [59,9,-36], [85,9,-36], + [14,107,104,-13], [14,107,104,-1], [17,107,104,-13], [17,107,104,-1], [17,107,104,-13], [17,107,104,-1], [26,107,104,-7], [26,107,104,-7], + [55,72,69,-6], [55,107,104,-6], [55,143,140,-6], [55,178,175,-6], [38,109,107,-6], [3,39,37,-41], [23,38,35,-41], [16,37,36,-15], + [27,36,36,-6], [27,36,36,-6], [30,21,13,2], [29,21,13,1], [30,20,0,2], [29,20,0,1], [40,36,36,-3], [40,35,35,-3], + [27,135,243,350,458,566,674,782,890,998,1106,1213,1321,1429,1537,1645], + [93,358,623,888,1153,1418,1683,1947], + [1762,2205] + ], + cmbx10: [ + [36,41,0,-2], [50,42,0,-3], [46,43,1,-3], [44,42,0,-2], [41,40,0,-2], [49,41,0,-2], [43,41,0,-3], [46,42,0,-3], + [43,41,0,-3], [46,41,0,-3], [43,42,0,-3], [43,42,0,-1], [35,42,0,-1], [35,42,0,-1], [54,42,0,-1], [54,42,0,-1], + [15,27,0,-2], [20,39,12,4], [13,12,-30,-7], [13,12,-30,-14], [18,9,-30,-8], [22,12,-29,-6], [26,4,-32,-4], [15,11,-31,-18], + [19,12,12,-7], [32,43,1,-2], [46,28,1,-2], [50,28,1,-1], [31,40,7,-1], [58,41,0,-2], [63,43,1,-4], [46,48,4,-3], + [18,8,-16,-1], [10,42,0,-5], [26,21,-20,-2], [50,53,12,-3], [28,49,4,-3], [50,49,4,-3], [48,43,1,-2], [11,21,-20,-4], + [17,60,15,-6], [17,60,15,-3], [26,27,-18,-4], [46,46,8,-3], [11,22,12,-4], [19,6,-10], [10,10,0,-4], [28,60,15,-3], + [30,40,1,-2], [25,39,0,-5], [28,39,0,-3], [29,40,1,-2], [31,39,0,-1], [28,40,1,-3], [29,40,1,-2], [30,41,1,-3], + [29,40,1,-2], [29,40,1,-2], [10,27,0,-4], [11,39,12,-4], [10,43,13,-5], [46,18,-6,-3], [26,42,12,-3], [26,42,0,-3], + [46,43,1,-3], [47,42,0,-2], [43,41,0,-2], [43,43,1,-3], [47,41,0,-2], [41,41,0,-2], [38,41,0,-2], [47,43,1,-3], + [49,41,0,-2], [22,41,0,-2], [31,42,1,-1], [49,41,0,-2], [36,41,0,-2], [60,41,0,-2], [49,41,0,-2], [45,43,1,-3], + [41,41,0,-2], [45,54,12,-3], [49,42,1,-2], [31,43,1,-3], [43,40,0,-2], [48,42,1,-2], [49,42,1,-1], [68,42,1,-1], + [48,41,0,-2], [50,41,0,-1], [35,41,0,-3], [11,60,15,-7], [26,21,-20,-8], [11,60,15,-1], [19,10,-31,-7], [10,10,-31,-4], + [11,21,-20,-3], [32,28,1,-1], [34,42,1,-2], [27,28,1,-2], [34,42,1,-2], [29,28,1,-1], [24,42,0,-2], [32,39,12,-1], + [35,41,0,-2], [15,41,0,-2], [20,53,12,4], [33,41,0,-2], [16,41,0,-2], [54,27,0,-2], [35,27,0,-2], [31,28,1,-1], + [34,39,12,-2], [34,39,12,-2], [24,27,0,-2], [23,28,1,-2], [22,39,1,-1], [35,28,1,-2], [34,28,1,-1], [47,28,1,-1], + [34,27,0,-1], [34,39,12,-1], [27,27,0,-1], [34,3,-15], [68,3,-15], [21,12,-30,-8], [23,7,-34,-5], [22,9,-32,-6], + [25,110,195,280,364,449,534,619,704,789,874,959,1043,1128,1213,1298], + [77,149,220,292,363,434,506,577], + [1390,625], + ], + cmti10: [ + [39,41,0,-3], [41,43,0,-4], [39,44,2,-8], [35,43,0,-3], [41,40,0,-4], [48,41,0,-3], [43,41,0,-4], [38,42,0,-12], + [34,41,0,-9], [37,41,0,-12], [40,42,0,-5], [47,55,13,2], [38,55,13,2], [40,55,13,2], [56,55,13,2], [58,55,13,2], + [15,28,1,-5], [21,39,13,2], [9,12,-29,-17], [13,12,-29,-20], [16,9,-29,-16], [18,11,-30,-16], [21,2,-33,-13], [12,12,-31,-28], + [14,12,12,-6], [37,55,13,2], [38,28,1,-5], [37,28,1,-6], [29,39,7,-4], [53,41,0,-3], [53,44,2,-9], [42,48,4,-7], + [16,8,-16,-5], [17,43,0,-6], [21,18,-23,-10], [43,53,12,-6], [37,43,1,-5], [42,49,4,-8], [41,45,2,-7], [9,18,-23,-13], + [22,60,15,-9], [22,60,15,-1], [24,27,-18,-11], [37,37,4,-8], [10,19,12,-4], [15,4,-11,-5], [7,7,0,-6], [36,60,15,-1], + [27,42,2,-6], [21,40,0,-7], [28,42,2,-5], [29,42,2,-5], [26,52,12,-2], [28,42,2,-6], [27,42,2,-7], [29,42,2,-8], + [28,42,2,-5], [27,42,2,-6], [12,26,0,-6], [14,38,12,-4], [16,43,13,-3], [40,15,-7,-6], [21,43,13,-5], [22,43,0,-11], + [39,43,1,-8], [38,43,0,-3], [41,41,0,-3], [40,44,2,-8], [43,41,0,-3], [41,41,0,-3], [41,41,0,-3], [40,44,2,-8], + [48,41,0,-3], [27,41,0,-3], [32,43,2,-5], [48,41,0,-3], [34,41,0,-3], [56,41,0,-4], [48,41,0,-3], [39,44,2,-8], + [40,41,0,-3], [39,54,12,-8], [40,43,2,-3], [34,44,2,-4], [38,40,0,-10], [40,43,2,-11], [40,43,2,-12], [54,43,2,-12], + [57,41,0,8], [40,41,0,-12], [38,41,0,-4], [23,60,15,-4], [20,18,-23,-16], [23,60,15,996], [16,10,-31,-15], [7,7,-33,-15], + [10,18,-23,-12], [26,27,1,-6], [21,42,1,-6], [22,28,1,-6], [27,42,1,-6], [22,28,1,-6], [29,54,12,2], [26,39,13,-3], + [28,42,1,-4], [15,40,1,-5], [23,52,13,2], [26,42,1,-4], [13,42,1,-5], [45,28,1,-5], [30,28,1,-5], [24,28,1,-6], + [31,38,12], [24,38,12,-6], [24,28,1,-5], [21,28,1,-4], [17,38,1,-5], [28,28,1,-5], [25,28,1,-5], [37,28,1,-5], + [28,28,1,-3], [26,40,13,-5], [25,28,1,-3], [28,2,-15,-5], [55,2,-15,-7], [18,11,-30,-16], [20,7,-33,-14], [17,7,-33,-16], + [24,97,170,243,316,389,462,535,608,681,754,827,900,973,1046,1119], + [77,149,220,292,363,434,506,577], + [1198,625] + ] +}); + diff --git a/jsMath/uncompressed/jsMath-fallback-mac.js b/jsMath/uncompressed/jsMath-fallback-mac.js new file mode 100644 index 00000000..a45476f3 --- /dev/null +++ b/jsMath/uncompressed/jsMath-fallback-mac.js @@ -0,0 +1,970 @@ +/* + * jsMath-fallback-mac.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed for when the TeX fonts are not available + * with a browser on the Mac. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2010 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +/******************************************************************** + * + * Here we replace the TeX character mappings by equivalent unicode + * points when possible, and adjust the character dimensions + * based on the fonts we hope we get them from (the styles are set + * to try to use the best characters available in the standard + * fonts). + */ + +jsMath.Add(jsMath.TeX,{ + + cmr10: [ + // 00 - 0F + {c: 'Γ', tclass: 'greek'}, + {c: 'Δ', tclass: 'greek'}, + {c: 'Θ', tclass: 'greek'}, + {c: 'Λ', tclass: 'greek'}, + {c: 'Ξ', tclass: 'greek'}, + {c: 'Π', tclass: 'greek'}, + {c: 'Σ', tclass: 'greek'}, + {c: 'Υ', tclass: 'greek'}, + {c: 'Φ', tclass: 'greek'}, + {c: 'Ψ', tclass: 'greek'}, + {c: 'Ω', tclass: 'greek'}, + {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'normal'}, + {c: 'fi', tclass: 'normal'}, + {c: 'fl', tclass: 'normal'}, + {c: 'ffi', tclass: 'normal'}, + {c: 'ffl', tclass: 'normal'}, + // 10 - 1F + {c: 'ı', a:0, tclass: 'normal'}, + {c: 'j', d:.2, tclass: 'normal'}, + {c: '`', tclass: 'accent'}, + {c: '´', tclass: 'accent'}, + {c: 'ˇ', tclass: 'accent'}, + {c: '˘', tclass: 'accent'}, + {c: 'ˉ', tclass: 'accent'}, + {c: '˚', tclass: 'accent'}, + {c: '̧', tclass: 'normal'}, + {c: 'ß', tclass: 'normal'}, + {c: 'æ', a:0, tclass: 'normal'}, + {c: 'œ', a:0, tclass: 'normal'}, + {c: 'ø', tclass: 'normal'}, + {c: 'Æ', tclass: 'normal'}, + {c: 'Œ', tclass: 'normal'}, + {c: 'Ø', tclass: 'normal'}, + // 20 - 2F + {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'normal'}, + {c: '!', lig: {'96': 60}, tclass: 'normal'}, + {c: '”', tclass: 'normal'}, + {c: '#', tclass: 'normal'}, + {c: '$', tclass: 'normal'}, + {c: '%', tclass: 'normal'}, + {c: '&', tclass: 'normal'}, + {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'normal'}, + {c: '(', d:.2, tclass: 'normal'}, + {c: ')', d:.2, tclass: 'normal'}, + {c: '*', tclass: 'normal'}, + {c: '+', a:.1, tclass: 'normal'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'normal'}, + {c: '-', a:0, lig: {'45': 123}, tclass: 'normal'}, + {c: '.', a:-.25, tclass: 'normal'}, + {c: '/', tclass: 'normal'}, + // 30 - 3F + {c: '0', tclass: 'normal'}, + {c: '1', tclass: 'normal'}, + {c: '2', tclass: 'normal'}, + {c: '3', tclass: 'normal'}, + {c: '4', tclass: 'normal'}, + {c: '5', tclass: 'normal'}, + {c: '6', tclass: 'normal'}, + {c: '7', tclass: 'normal'}, + {c: '8', tclass: 'normal'}, + {c: '9', tclass: 'normal'}, + {c: ':', tclass: 'normal'}, + {c: ';', tclass: 'normal'}, + {c: '¡', tclass: 'normal'}, + {c: '=', a:0, d:-.1, tclass: 'normal'}, + {c: '¿', tclass: 'normal'}, + {c: '?', lig: {'96': 62}, tclass: 'normal'}, + // 40 - 4F + {c: '@', tclass: 'normal'}, + {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'B', tclass: 'normal'}, + {c: 'C', tclass: 'normal'}, + {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, + {c: 'E', tclass: 'normal'}, + {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'G', tclass: 'normal'}, + {c: 'H', tclass: 'normal'}, + {c: 'I', krn: {'73': 0.0278}, tclass: 'normal'}, + {c: 'J', tclass: 'normal'}, + {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'M', tclass: 'normal'}, + {c: 'N', tclass: 'normal'}, + {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, + // 50 - 5F + {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, + {c: 'Q', d:.1, tclass: 'normal'}, + {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'S', tclass: 'normal'}, + {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, + {c: 'U', tclass: 'normal'}, + {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, + {c: 'Z', tclass: 'normal'}, + {c: '[', d:.1, tclass: 'normal'}, + {c: '“', tclass: 'normal'}, + {c: ']', d:.1, tclass: 'normal'}, + {c: 'ˆ', tclass: 'accent'}, + {c: '˙', tclass: 'accent'}, + // 60 - 6F + {c: '‘', lig: {'96': 92}, tclass: 'normal'}, + {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'normal'}, + {c: 'd', tclass: 'normal'}, + {c: 'e', a:0, tclass: 'normal'}, + {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'normal'}, + {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'normal'}, + {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'i', tclass: 'normal'}, + {c: 'j', d:.2, tclass: 'normal'}, + {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'l', tclass: 'normal'}, + {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'q', a:0, d:.2, tclass: 'normal'}, + {c: 'r', a:0, tclass: 'normal'}, + {c: 's', a:0, tclass: 'normal'}, + {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'normal'}, + {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'x', a:0, tclass: 'normal'}, + {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, + {c: 'z', a:0, tclass: 'normal'}, + {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'normal'}, + {c: '—', a:.1, ic: 0.0278, tclass: 'normal'}, + {c: '˝', tclass: 'accent'}, + {c: '˜', tclass: 'accent'}, + {c: '¨', tclass: 'accent'} + ], + + cmmi10: [ + // 00 - 0F + {c: 'Γ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'igreek'}, + {c: 'Δ', krn: {'127': 0.167}, tclass: 'igreek'}, + {c: 'Θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Λ', krn: {'127': 0.167}, tclass: 'igreek'}, + {c: 'Ξ', ic: 0.0757, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Π', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Σ', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Υ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Φ', krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Ψ', ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Ω', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'α', a:.1, ic: 0.0037, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'β', d:.1, ic: 0.0528, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'γ', a:.1, d:.1, ic: 0.0556, tclass: 'greek'}, + {c: 'δ', ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'greek'}, + {c: 'ε', a:0, krn: {'127': 0.0556}, tclass: 'lucida'}, + // 10 - 1F + {c: 'ζ', d:.1, ic: 0.0738, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'η', a:.1, d:.1, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'greek'}, + {c: 'θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ι', a:.1, krn: {'127': 0.0556}, tclass: 'greek'}, + {c: 'κ', a:.1, tclass: 'greek'}, + {c: 'λ', tclass: 'greek'}, + {c: 'μ', a:.1, d:.1, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'ν', a:.1, ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, + {c: 'ξ', d:.1, ic: 0.046, krn: {'127': 0.111}, tclass: 'greek'}, + {c: 'π', a:.1, ic: 0.0359, tclass: 'greek'}, + {c: 'ρ', a:.1, d:.1, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'σ', a:.1, ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'greek'}, + {c: 'τ', a:.1, ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, + {c: 'υ', a:.1, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'φ', a:.3, d:.1, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'χ', a:.1, d:.1, krn: {'127': 0.0556}, tclass: 'greek'}, + // 20 - 2F + {c: 'ψ', a:.3, d:.1, ic: 0.0359, krn: {'127': 0.111}, tclass: 'greek'}, + {c: 'ω', a:.1, ic: 0.0359, tclass: 'greek'}, + {c: 'ε', a:.1, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ϑ', krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ϖ', a:.1, ic: 0.0278, tclass: 'lucida'}, + {c: 'ϱ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'lucida'}, + {c: 'ς', a:.1, d:.2, ic: 0.0799, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ϕ', a:.1, d:.1, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: '↼', a:0, d:-.2, tclass: 'harpoon'}, + {c: '↽', a:0, d:-.1, tclass: 'harpoon'}, + {c: '⇀', a:0, d:-.2, tclass: 'harpoon'}, + {c: '⇁', a:0, d:-.1, tclass: 'harpoon'}, + {c: '˓', a:.1, tclass: 'lucida'}, + {c: '˒', a:.1, tclass: 'lucida'}, + {c: '', a:0, tclass: 'symbol'}, + {c: '', a:0, tclass: 'symbol'}, + // 30 - 3F + {c: '0', tclass: 'normal'}, + {c: '1', tclass: 'normal'}, + {c: '2', tclass: 'normal'}, + {c: '3', tclass: 'normal'}, + {c: '4', tclass: 'normal'}, + {c: '5', tclass: 'normal'}, + {c: '6', tclass: 'normal'}, + {c: '7', tclass: 'normal'}, + {c: '8', tclass: 'normal'}, + {c: '9', tclass: 'normal'}, + {c: '.', a:-.3, tclass: 'normal'}, + {c: ',', a:-.3, d:.2, tclass: 'normal'}, + {c: '<', a:.1, tclass: 'normal'}, + {c: '/', d:.1, krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}, tclass: 'normal'}, + {c: '>', a:.1, tclass: 'normal'}, + {c: '', a:0, tclass: 'symbol'}, + // 40 - 4F + {c: '∂', ic: 0.0556, krn: {'127': 0.0833}, tclass: 'normal'}, + {c: 'A', krn: {'127': 0.139}, tclass: 'italic'}, + {c: 'B', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'D', ic: 0.0278, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'E', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, + {c: 'G', krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 'I', ic: 0.0785, krn: {'127': 0.111}, tclass: 'italic'}, + {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}, tclass: 'italic'}, + {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 'L', krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'O', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'italic'}, + // 50 - 5F + {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, + {c: 'Q', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'R', ic: 0.00773, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}, tclass: 'italic'}, + {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: '♭', tclass: 'symbol2'}, + {c: '♮', tclass: 'symbol2'}, + {c: '♯', tclass: 'symbol2'}, + {c: '', a:0, d:-.1, tclass: 'normal'}, + {c: '', a:0, d:-.1, tclass: 'normal'}, + // 60 - 6F + {c: '', krn: {'127': 0.111}, tclass: 'symbol'}, + {c: 'a', a:0, tclass: 'italic'}, + {c: 'b', tclass: 'italic'}, + {c: 'c', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}, tclass: 'italic'}, + {c: 'e', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}, tclass: 'italic'}, + {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'h', krn: {'127': -0.0278}, tclass: 'italic'}, + {c: 'i', tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'italic'}, + {c: 'k', ic: 0.0315, tclass: 'italic'}, + {c: 'l', ic: 0.0197, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'm', a:0, tclass: 'italic'}, + {c: 'n', a:0, tclass: 'italic'}, + {c: 'o', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 's', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 't', krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'u', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'x', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'ı', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'ȷ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: '℘', d:0, krn: {'127': 0.111}, tclass: 'asymbol'}, + {c: '', ic: 0.154, tclass: 'symbol'}, + {c: '̑', ic: 0.399, tclass: 'normal'} + ], + + cmsy10: [ + // 00 - 0F + {c: '−', a:.1, tclass: 'symbol'}, + {c: '·', a:0, d:-.2, tclass: 'symbol'}, + {c: '×', a:0, tclass: 'symbol'}, + {c: '*', a:0, tclass: 'symbol'}, + {c: '÷', a:0, tclass: 'symbol'}, + {c: '◊', tclass: 'lucida'}, + {c: '±', a:.1, tclass: 'symbol'}, + {c: '∓', tclass: 'symbol'}, + {c: '⊕', tclass: 'symbol'}, + {c: '⊖', tclass: 'symbol'}, + {c: '⊗', tclass: 'symbol'}, + {c: '⊘', tclass: 'symbol'}, + {c: '⊙', tclass: 'symbol3'}, + {c: '◯', tclass: 'symbol'}, + {c: '°', a:.3, d:-.3, tclass: 'symbol'}, + {c: '•', a:.2, d:-.25, tclass: 'symbol'}, + // 10 - 1F + {c: '≍', a:.1, tclass: 'symbol'}, + {c: '≡', a:.1, tclass: 'symbol'}, + {c: '⊆', tclass: 'symbol'}, + {c: '⊇', tclass: 'symbol'}, + {c: '≤', tclass: 'symbol'}, + {c: '≥', tclass: 'symbol'}, + {c: '⪯', tclass: 'symbol'}, + {c: '⪰', tclass: 'symbol'}, + {c: '~', a:0, d: -.2, tclass: 'normal'}, + {c: '≈', a:.1, d:-.1, tclass: 'symbol'}, + {c: '⊂', tclass: 'symbol'}, + {c: '⊃', tclass: 'symbol'}, + {c: '≪', tclass: 'symbol'}, + {c: '≫', tclass: 'symbol'}, + {c: '≺', tclass: 'symbol'}, + {c: '≻', tclass: 'symbol'}, + // 20 - 2F + {c: '←', a:0, d:-.15, tclass: 'arrows'}, + {c: '→', a:0, d:-.15, tclass: 'arrows'}, + {c: '↑', h:.85, tclass: 'arrow1a'}, + {c: '↓', h:.85, tclass: 'arrow1a'}, + {c: '↔', a:0, tclass: 'arrow1'}, + {c: '↗', h:.85, d:.1, tclass: 'arrows'}, + {c: '↘', h:.85, d:.1, tclass: 'arrows'}, + {c: '≃', a: .1, tclass: 'symbol'}, + {c: '⇐', a:.1, tclass: 'arrows'}, + {c: '⇒', a:.1, tclass: 'arrows'}, + {c: '⇑', h:.7, tclass: 'asymbol'}, + {c: '⇓', h:.7, tclass: 'asymbol'}, + {c: '⇔', a:.1, tclass: 'arrows'}, + {c: '↖', h:.85, d:.1, tclass: 'arrows'}, + {c: '↙', h:.85, d:.1, tclass: 'arrows'}, + {c: '∝', a:.1, d:-.1, tclass: 'symbol'}, + // 30 - 3F + {c: '', a: 0, tclass: 'lucida'}, + {c: '∞', a:.1, tclass: 'symbol'}, + {c: '∈', tclass: 'symbol'}, + {c: '∋', tclass: 'symbol'}, + {c: '△', tclass: 'symbol'}, + {c: '▽', tclass: 'symbol'}, + {c: '/', tclass: 'symbol'}, + {c: '|', a:0, tclass: 'normal'}, + {c: '∀', tclass: 'symbol'}, + {c: '∃', tclass: 'symbol'}, + {c: '¬', a:0, d:-.1, tclass: 'symbol1'}, + {c: '∅', tclass: 'symbol'}, + {c: 'ℜ', tclass: 'asymbol'}, + {c: 'ℑ', tclass: 'asymbol'}, + {c: '⊤', tclass: 'symbol'}, + {c: '⊥', tclass: 'symbol'}, + // 40 - 4F + {c: 'ℵ', tclass: 'symbol'}, + {c: 'A', krn: {'48': 0.194}, tclass: 'cal'}, + {c: 'B', ic: 0.0304, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'C', ic: 0.0583, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'D', ic: 0.0278, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'E', ic: 0.0894, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'F', ic: 0.0993, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'G', d:.2, ic: 0.0593, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'H', ic: 0.00965, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'I', ic: 0.0738, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'J', d:.2, ic: 0.185, krn: {'48': 0.167}, tclass: 'cal'}, + {c: 'K', ic: 0.0144, krn: {'48': 0.0556}, tclass: 'cal'}, + {c: 'L', krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'M', krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'N', ic: 0.147, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'O', ic: 0.0278, krn: {'48': 0.111}, tclass: 'cal'}, + // 50 - 5F + {c: 'P', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'Q', d:.2, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'R', krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'S', ic: 0.075, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'T', ic: 0.254, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'U', ic: 0.0993, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'V', ic: 0.0822, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'W', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'X', ic: 0.146, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'Y', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'Z', ic: 0.0794, krn: {'48': 0.139}, tclass: 'cal'}, + {c: '⋃', tclass: 'symbol'}, + {c: '⋂', tclass: 'symbol'}, + {c: '⊎', tclass: 'symbol'}, + {c: '⋀', tclass: 'symbol'}, + {c: '⋁', tclass: 'symbol'}, + // 60 - 6F + {c: '⊢', tclass: 'symbol'}, + {c: '⊣', tclass: 'symbol'}, + {c: '⎣', h:1, d:.3, tclass: 'asymbol'}, + {c: '⎦', h:1, d:.3, tclass: 'asymbol'}, + {c: '⎡', h:1, d:.3, tclass: 'asymbol'}, + {c: '⎤', h:1, d:.3, tclass: 'asymbol'}, + {c: '{', d:.2, tclass: 'normal'}, + {c: '}', d:.2, tclass: 'normal'}, + {c: '⟨', h:.9, d:.1, tclass: 'asymbol'}, + {c: '⟩', h:.9, d:.1, tclass: 'asymbol'}, + {c: '|', d:.2, tclass: 'vertical'}, + {c: '||', d:.2, tclass: 'vertical'}, + {c: '↕', d:.1, tclass: 'arrow1'}, + {c: '⇕', d:.1, tclass: 'arrow1'}, + {c: '', a:.3, d:.1, tclass: 'lucida'}, + {c: '≀', tclass: 'asymbol'}, + // 70 - 7F + {c: '', h:.04, d:.9, tclass: 'lucida'}, + {c: '∐', d:.1, tclass: 'symbol'}, + {c: '∇', tclass: 'symbol'}, + {c: '∫', h:1, d:.1, ic: 0.111, tclass: 'root'}, + {c: '⊔', tclass: 'symbol'}, + {c: '⊓', tclass: 'symbol'}, + {c: '⊑', tclass: 'symbol'}, + {c: '⊒', tclass: 'symbol'}, + {c: '§', d:.1, tclass: 'normal'}, + {c: '†', d:.1, tclass: 'normal'}, + {c: '‡', d:.1, tclass: 'normal'}, + {c: '¶', a:.3, d:.1, tclass: 'lucida'}, + {c: '♣', tclass: 'symbol'}, + {c: '♦', tclass: 'symbol'}, + {c: '♥', tclass: 'symbol'}, + {c: '♠', tclass: 'symbol'} + ], + + cmex10: [ + // 00 - 0F + {c: '(', h: 0.04, d: 1.16, n: 16, tclass: 'delim1'}, + {c: ')', h: 0.04, d: 1.16, n: 17, tclass: 'delim1'}, + {c: '[', h: 0.04, d: 1.16, n: 104, tclass: 'delim1'}, + {c: ']', h: 0.04, d: 1.16, n: 105, tclass: 'delim1'}, + {c: '⎣', h: 0.04, d: 1.16, n: 106, tclass: 'delim1a'}, + {c: '⎦', h: 0.04, d: 1.16, n: 107, tclass: 'delim1a'}, + {c: '⎡', h: 0.04, d: 1.16, n: 108, tclass: 'delim1a'}, + {c: '⎤', h: 0.04, d: 1.16, n: 109, tclass: 'delim1a'}, + {c: '{', h: 0.04, d: 1.16, n: 110, tclass: 'delim1'}, + {c: '}', h: 0.04, d: 1.16, n: 111, tclass: 'delim1'}, + {c: '〈', h: 0.04, d: 1.16, n: 68, tclass: 'delim1c'}, + {c: '〉', h: 0.04, d: 1.16, n: 69, tclass: 'delim1c'}, + {c: '|', h:.7, d:.15, delim: {rep: 12}, tclass: 'vertical1'}, + {c: '||', h:.7, d:.15, delim: {rep: 13}, tclass: 'vertical1'}, + {c: '∕', h: 0.04, d: 1.16, n: 46, tclass: 'delim1b'}, + {c: '∖', h: 0.04, d: 1.16, n: 47, tclass: 'delim1b'}, + // 10 - 1F + {c: '(', h: 0.04, d: 1.76, n: 18, tclass: 'delim2'}, + {c: ')', h: 0.04, d: 1.76, n: 19, tclass: 'delim2'}, + {c: '(', h: 0.04, d: 2.36, n: 32, tclass: 'delim3'}, + {c: ')', h: 0.04, d: 2.36, n: 33, tclass: 'delim3'}, + {c: '[', h: 0.04, d: 2.36, n: 34, tclass: 'delim3'}, + {c: ']', h: 0.04, d: 2.36, n: 35, tclass: 'delim3'}, + {c: '⎣', h: 0.04, d: 2.36, n: 36, tclass: 'delim3a'}, + {c: '⎦', h: 0.04, d: 2.36, n: 37, tclass: 'delim3a'}, + {c: '⎡', h: 0.04, d: 2.36, n: 38, tclass: 'delim3a'}, + {c: '⎤', h: 0.04, d: 2.36, n: 39, tclass: 'delim3a'}, + {c: '{', h: 0.04, d: 2.36, n: 40, tclass: 'delim3'}, + {c: '}', h: 0.04, d: 2.36, n: 41, tclass: 'delim3'}, + {c: '〈', h: 0.04, d: 2.36, n: 42, tclass: 'delim3c'}, + {c: '〉', h: 0.04, d: 2.36, n: 43, tclass: 'delim3c'}, + {c: '∕', h: 0.04, d: 2.36, n: 44, tclass: 'delim3b'}, + {c: '∖', h: 0.04, d: 2.36, n: 45, tclass: 'delim3b'}, + // 20 - 2F + {c: '(', h: 0.04, d: 2.96, n: 48, tclass: 'delim4'}, + {c: ')', h: 0.04, d: 2.96, n: 49, tclass: 'delim4'}, + {c: '[', h: 0.04, d: 2.96, n: 50, tclass: 'delim4'}, + {c: ']', h: 0.04, d: 2.96, n: 51, tclass: 'delim4'}, + {c: '⎣', h: 0.04, d: 2.96, n: 52, tclass: 'delim4a'}, + {c: '⎦', h: 0.04, d: 2.96, n: 53, tclass: 'delim4a'}, + {c: '⎡', h: 0.04, d: 2.96, n: 54, tclass: 'delim4a'}, + {c: '⎤', h: 0.04, d: 2.96, n: 55, tclass: 'delim4a'}, + {c: '{', h: 0.04, d: 2.96, n: 56, tclass: 'delim4'}, + {c: '}', h: 0.04, d: 2.96, n: 57, tclass: 'delim4'}, + {c: '〈', h: 0.04, d: 2.96, tclass: 'delim4c'}, + {c: '〉', h: 0.04, d: 2.96, tclass: 'delim4c'}, + {c: '∕', h: 0.04, d: 2.96, tclass: 'delim4b'}, + {c: '∖', h: 0.04, d: 2.96, tclass: 'delim4b'}, + {c: '∕', h: 0.04, d: 1.76, n: 30, tclass: 'delim2b'}, + {c: '∖', h: 0.04, d: 1.76, n: 31, tclass: 'delim2b'}, + // 30 - 3F + {c: '⎛', h: 1, d: .2, delim: {top: 48, bot: 64, rep: 66}, tclass: 'asymbol'}, + {c: '⎞', h: 1, d: .2, delim: {top: 49, bot: 65, rep: 67}, tclass: 'asymbol'}, + {c: '⎡', h: 1, d: .2, delim: {top: 50, bot: 52, rep: 54}, tclass: 'asymbol'}, + {c: '⎤', h: 1, d: .2, delim: {top: 51, bot: 53, rep: 55}, tclass: 'asymbol'}, + {c: '⎣', h: 1, d: .2, delim: {bot: 52, rep: 54}, tclass: 'asymbol'}, + {c: '⎦', h: 1, d: .2, delim: {bot: 53, rep: 55}, tclass: 'asymbol'}, + {c: '⎢', h: 1, d: .2, delim: {top: 50, rep: 54}, tclass: 'asymbol'}, + {c: '⎥', h: 1, d: .2, delim: {top: 51, rep: 55}, tclass: 'asymbol'}, + {c: '⎧', h: 1, d: .2, delim: {top: 56, mid: 60, bot: 58, rep: 62}, tclass: 'asymbol'}, + {c: '⎫', h: 1, d: .2, delim: {top: 57, mid: 61, bot: 59, rep: 62}, tclass: 'asymbol'}, + {c: '⎩', h: 1, d: .2, delim: {top: 56, bot: 58, rep: 62}, tclass: 'asymbol'}, + {c: '⎭', h: 1, d: .2, delim: {top: 57, bot: 59, rep: 62}, tclass: 'asymbol'}, + {c: '⎨', h: 1, d: .2, delim: {rep: 63}, tclass: 'asymbol'}, + {c: '⎬', h: 1, d: .2, delim: {rep: 119}, tclass: 'asymbol'}, + {c: '⎪', h: 1, d: .2, delim: {rep: 62}, tclass: 'asymbol'}, + {c: '⎪', h: .95, d: .05, delim: {top: 120, bot: 121, rep: 63}, tclass: 'arrow1a'}, + // 40 - 4F + {c: '⎝', h: 1, d: .2, delim: {top: 56, bot: 59, rep: 62}, tclass: 'asymbol'}, + {c: '⎠', h: 1, d: .2, delim: {top: 57, bot: 58, rep: 62}, tclass: 'asymbol'}, + {c: '⎜', h: 1, d: .2, delim: {rep: 66}, tclass: 'asymbol'}, + {c: '⎟', h: 1, d: .2, delim: {rep: 67}, tclass: 'asymbol'}, + {c: '〈', h: 0.04, d: 1.76, n: 28, tclass: 'delim2c'}, + {c: '〉', h: 0.04, d: 1.76, n: 29, tclass: 'delim2c'}, + {c: '⊔', h: -.2, d: 1, n: 71, tclass: 'bigop1'}, + {c: '⊔', h: -.1, d: 1.2, tclass: 'bigop2'}, + {c: '∮', h: 0, d: 1.11, ic: 0.095, n: 73, tclass: 'bigop1c'}, + {c: '∮', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, + {c: '⊙', h: 0, d: 1, n: 75, tclass: 'bigop1'}, + {c: '⊙', h: 0.1, d: 1.2, tclass: 'bigop2'}, + {c: '⊕', h: .2, d: .9, n: 77, tclass: 'bigop1'}, + {c: '⊕', h: 0.4, d: 1.2, tclass: 'bigop2'}, + {c: '⊗', h: .2, d: .9, n: 79, tclass: 'bigop1'}, + {c: '⊗', h: 0.4, d: 1.2, tclass: 'bigop2'}, + // 50 - 5F + {c: '∑', h: 0, d: 1, n: 88, tclass: 'bigop1a'}, + {c: '∏', h: 0, d: 1, n: 89, tclass: 'bigop1a'}, + {c: '∫', h: 0, d: 1.11, ic: 0.095, n: 90, tclass: 'bigop1c'}, + {c: '∪', h: 0, d: 1, n: 91, tclass: 'bigop1b'}, + {c: '∩', h: 0, d: 1, n: 92, tclass: 'bigop1b'}, + {c: '⊎', h: -.2, d: 1.1, n: 93, tclass: 'bigop1b'}, + {c: '∧', h: 0, d: 1, n: 94, tclass: 'bigop1'}, + {c: '∨', h: 0, d: 1, n: 95, tclass: 'bigop1'}, + {c: '∑', h: 0.1, d: 1.6, tclass: 'bigop2a'}, + {c: '∏', h: 0.1, d: 1.6, tclass: 'bigop2a'}, + {c: '∫', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, + {c: '∪', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '∩', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '⊎', h: -0.3, d: 1.6, tclass: 'bigop2b'}, + {c: '∧', h: 0.1, d: 1.2, tclass: 'bigop2'}, + {c: '∨', h: 0.1, d: 1.2, tclass: 'bigop2'}, + // 60 - 6F + {c: '∐', h: 0, d: .9, n: 97, tclass: 'bigop1a'}, + {c: '∐', h: 0.1, d: 1.4, tclass: 'bigop2a'}, + {c: '︿', h: 0.722, w: .65, n: 99, tclass: 'wide1'}, + {c: '︿', h: 0.85, w: 1.1, n: 100, tclass: 'wide2'}, + {c: '︿', h: 0.99, w: 1.65, tclass: 'wide3'}, + {c: '⁓', h: 0.722, w: .75, n: 102, tclass: 'wide1a'}, + {c: '⁓', h: 0.8, w: 1.35, n: 103, tclass: 'wide2a'}, + {c: '⁓', h: 0.99, w: 2, tclass: 'wide3a'}, + {c: '[', h: 0.04, d: 1.76, n: 20, tclass: 'delim2'}, + {c: ']', h: 0.04, d: 1.76, n: 21, tclass: 'delim2'}, + {c: '⎣', h: 0.04, d: 1.76, n: 22, tclass: 'delim2a'}, + {c: '⎦', h: 0.04, d: 1.76, n: 23, tclass: 'delim2a'}, + {c: '⎡', h: 0.04, d: 1.76, n: 24, tclass: 'delim2a'}, + {c: '⎤', h: 0.04, d: 1.76, n: 25, tclass: 'delim2a'}, + {c: '{', h: 0.04, d: 1.76, n: 26, tclass: 'delim2'}, + {c: '}', h: 0.04, d: 1.76, n: 27, tclass: 'delim2'}, + // 70 - 7F + {c: '', h: 0.04, d: 1.16, n: 113, tclass: 'root'}, + {c: '', h: 0.04, d: 1.76, n: 114, tclass: 'root'}, + {c: '', h: 0.06, d: 2.36, n: 115, tclass: 'root'}, + {c: '', h: 0.08, d: 2.96, n: 116, tclass: 'root'}, + {c: '', h: 0.1, d: 3.75, n: 117, tclass: 'root'}, + {c: '', h: .12, d: 4.5, n: 118, tclass: 'root'}, + {c: '', h: .14, d: 5.7, tclass: 'root'}, + {c: '', h:.9, delim: {top: 126, bot: 127, rep: 119}, tclass: 'asymbol'}, + {c: '↑', h:.9, d:0, delim: {top: 120, rep: 63}, tclass: 'arrow1a'}, + {c: '↓', h:.9, d:0, delim: {bot: 121, rep: 63}, tclass: 'arrow1a'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '⇑', h:.7, delim: {top: 126, rep: 119}, tclass: 'asymbol'}, + {c: '⇓', h:.7, delim: {bot: 127, rep: 119}, tclass: 'asymbol'} + ], + + cmti10: [ + // 00 - 0F + {c: 'Γ', ic: 0.133, tclass: 'igreek'}, + {c: 'Δ', tclass: 'igreek'}, + {c: 'Θ', ic: 0.094, tclass: 'igreek'}, + {c: 'Λ', tclass: 'igreek'}, + {c: 'Ξ', ic: 0.153, tclass: 'igreek'}, + {c: 'Π', ic: 0.164, tclass: 'igreek'}, + {c: 'Σ', ic: 0.12, tclass: 'igreek'}, + {c: 'Υ', ic: 0.111, tclass: 'igreek'}, + {c: 'Φ', ic: 0.0599, tclass: 'igreek'}, + {c: 'Ψ', ic: 0.111, tclass: 'igreek'}, + {c: 'Ω', ic: 0.103, tclass: 'igreek'}, + {c: 'ff', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}, tclass: 'italic'}, + {c: 'fi', ic: 0.103, tclass: 'italic'}, + {c: 'fl', ic: 0.103, tclass: 'italic'}, + {c: 'ffi', ic: 0.103, tclass: 'italic'}, + {c: 'ffl', ic: 0.103, tclass: 'italic'}, + // 10 - 1F + {c: 'ı', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.0374, tclass: 'italic'}, + {c: '`', tclass: 'iaccent'}, + {c: '´', ic: 0.0969, tclass: 'iaccent'}, + {c: 'ˇ', ic: 0.083, tclass: 'iaccent'}, + {c: '˘', ic: 0.108, tclass: 'iaccent'}, + {c: 'ˉ', ic: 0.103, tclass: 'iaccent'}, + {c: '˚', tclass: 'iaccent'}, + {c: '?', d: 0.17, w: 0.46, tclass: 'italic'}, + {c: 'ß', ic: 0.105, tclass: 'italic'}, + {c: 'æ', a:0, ic: 0.0751, tclass: 'italic'}, + {c: 'œ', a:0, ic: 0.0751, tclass: 'italic'}, + {c: 'ø', ic: 0.0919, tclass: 'italic'}, + {c: 'Æ', ic: 0.12, tclass: 'italic'}, + {c: 'Œ', ic: 0.12, tclass: 'italic'}, + {c: 'Ø', ic: 0.094, tclass: 'italic'}, + // 20 - 2F + {c: '?', krn: {'108': -0.256, '76': -0.321}, tclass: 'italic'}, + {c: '!', ic: 0.124, lig: {'96': 60}, tclass: 'italic'}, + {c: '”', ic: 0.0696, tclass: 'italic'}, + {c: '#', ic: 0.0662, tclass: 'italic'}, + {c: '$', tclass: 'italic'}, + {c: '%', ic: 0.136, tclass: 'italic'}, + {c: '&', ic: 0.0969, tclass: 'italic'}, + {c: '’', ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}, tclass: 'italic'}, + {c: '(', d:.2, ic: 0.162, tclass: 'italic'}, + {c: ')', d:.2, ic: 0.0369, tclass: 'italic'}, + {c: '*', ic: 0.149, tclass: 'italic'}, + {c: '+', a:.1, ic: 0.0369, tclass: 'italic'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'italic'}, + {c: '-', a:0, ic: 0.0283, lig: {'45': 123}, tclass: 'italic'}, + {c: '.', a:-.25, tclass: 'italic'}, + {c: '/', ic: 0.162, tclass: 'italic'}, + // 30 - 3F + {c: '0', ic: 0.136, tclass: 'italic'}, + {c: '1', ic: 0.136, tclass: 'italic'}, + {c: '2', ic: 0.136, tclass: 'italic'}, + {c: '3', ic: 0.136, tclass: 'italic'}, + {c: '4', ic: 0.136, tclass: 'italic'}, + {c: '5', ic: 0.136, tclass: 'italic'}, + {c: '6', ic: 0.136, tclass: 'italic'}, + {c: '7', ic: 0.136, tclass: 'italic'}, + {c: '8', ic: 0.136, tclass: 'italic'}, + {c: '9', ic: 0.136, tclass: 'italic'}, + {c: ':', ic: 0.0582, tclass: 'italic'}, + {c: ';', ic: 0.0582, tclass: 'italic'}, + {c: '¡', ic: 0.0756, tclass: 'italic'}, + {c: '=', a:0, d:-.1, ic: 0.0662, tclass: 'italic'}, + {c: '¿', tclass: 'italic'}, + {c: '?', ic: 0.122, lig: {'96': 62}, tclass: 'italic'}, + // 40 - 4F + {c: '@', ic: 0.096, tclass: 'italic'}, + {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'B', ic: 0.103, tclass: 'italic'}, + {c: 'C', ic: 0.145, tclass: 'italic'}, + {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, + {c: 'E', ic: 0.12, tclass: 'italic'}, + {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'G', ic: 0.0872, tclass: 'italic'}, + {c: 'H', ic: 0.164, tclass: 'italic'}, + {c: 'I', ic: 0.158, tclass: 'italic'}, + {c: 'J', ic: 0.14, tclass: 'italic'}, + {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'M', ic: 0.164, tclass: 'italic'}, + {c: 'N', ic: 0.164, tclass: 'italic'}, + {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, + // 50 - 5F + {c: 'P', ic: 0.103, krn: {'65': -0.0767}, tclass: 'italic'}, + {c: 'Q', d:.1, ic: 0.094, tclass: 'italic'}, + {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'S', ic: 0.12, tclass: 'italic'}, + {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, + {c: 'U', ic: 0.164, tclass: 'italic'}, + {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'W', ic: 0.184, krn: {'65': -0.0767}, tclass: 'italic'}, + {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, + {c: 'Z', ic: 0.145, tclass: 'italic'}, + {c: '[', d:.1, ic: 0.188, tclass: 'italic'}, + {c: '“', ic: 0.169, tclass: 'italic'}, + {c: ']', d:.1, ic: 0.105, tclass: 'italic'}, + {c: 'ˆ', ic: 0.0665, tclass: 'iaccent'}, + {c: '˙', ic: 0.118, tclass: 'iaccent'}, + // 60 - 6F + {c: '‘', ic: 0.124, lig: {'96': 92}, tclass: 'italic'}, + {c: 'a', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'd', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'italic'}, + {c: 'g', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'h', ic: 0.0767, tclass: 'italic'}, + {c: 'i', ic: 0.102, tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.145, tclass: 'italic'}, + {c: 'k', ic: 0.108, tclass: 'italic'}, + {c: 'l', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'm', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}, tclass: 'italic'}, + {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + // 70 - 7F + {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'q', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 's', a:0, ic: 0.0821, tclass: 'italic'}, + {c: 't', ic: 0.0949, tclass: 'italic'}, + {c: 'u', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'v', a:0, ic: 0.108, tclass: 'italic'}, + {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'x', a:0, ic: 0.12, tclass: 'italic'}, + {c: 'y', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'z', a:0, ic: 0.123, tclass: 'italic'}, + {c: '–', a:.1, ic: 0.0921, lig: {'45': 124}, tclass: 'italic'}, + {c: '—', a:.1, ic: 0.0921, tclass: 'italic'}, + {c: '˝', ic: 0.122, tclass: 'iaccent'}, + {c: '˜', ic: 0.116, tclass: 'iaccent'}, + {c: '¨', tclass: 'iaccent'} + ], + + cmbx10: [ + // 00 - 0F + {c: 'Γ', tclass: 'bgreek'}, + {c: 'Δ', tclass: 'bgreek'}, + {c: 'Θ', tclass: 'bgreek'}, + {c: 'Λ', tclass: 'bgreek'}, + {c: 'Ξ', tclass: 'bgreek'}, + {c: 'Π', tclass: 'bgreek'}, + {c: 'Σ', tclass: 'bgreek'}, + {c: 'Υ', tclass: 'bgreek'}, + {c: 'Φ', tclass: 'bgreek'}, + {c: 'Ψ', tclass: 'bgreek'}, + {c: 'Ω', tclass: 'bgreek'}, + {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'bold'}, + {c: 'fi', tclass: 'bold'}, + {c: 'fl', tclass: 'bold'}, + {c: 'ffi', tclass: 'bold'}, + {c: 'ffl', tclass: 'bold'}, + // 10 - 1F + {c: 'ı', a:0, tclass: 'bold'}, + {c: 'j', d:.2, tclass: 'bold'}, + {c: '`', tclass: 'baccent'}, + {c: '´', tclass: 'baccent'}, + {c: 'ˇ', tclass: 'baccent'}, + {c: '˘', tclass: 'baccent'}, + {c: 'ˉ', tclass: 'baccent'}, + {c: '˚', tclass: 'baccent'}, + {c: '?', tclass: 'bold'}, + {c: 'ß', tclass: 'bold'}, + {c: 'æ', a:0, tclass: 'bold'}, + {c: 'œ', a:0, tclass: 'bold'}, + {c: 'ø', tclass: 'bold'}, + {c: 'Æ', tclass: 'bold'}, + {c: 'Œ', tclass: 'bold'}, + {c: 'Ø', tclass: 'bold'}, + // 20 - 2F + {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'bold'}, + {c: '!', lig: {'96': 60}, tclass: 'bold'}, + {c: '”', tclass: 'bold'}, + {c: '#', tclass: 'bold'}, + {c: '$', tclass: 'bold'}, + {c: '%', tclass: 'bold'}, + {c: '&', tclass: 'bold'}, + {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'bold'}, + {c: '(', d:.2, tclass: 'bold'}, + {c: ')', d:.2, tclass: 'bold'}, + {c: '*', tclass: 'bold'}, + {c: '+', a:.1, tclass: 'bold'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'bold'}, + {c: '-', a:0, lig: {'45': 123}, tclass: 'bold'}, + {c: '.', a:-.25, tclass: 'bold'}, + {c: '/', tclass: 'bold'}, + // 30 - 3F + {c: '0', tclass: 'bold'}, + {c: '1', tclass: 'bold'}, + {c: '2', tclass: 'bold'}, + {c: '3', tclass: 'bold'}, + {c: '4', tclass: 'bold'}, + {c: '5', tclass: 'bold'}, + {c: '6', tclass: 'bold'}, + {c: '7', tclass: 'bold'}, + {c: '8', tclass: 'bold'}, + {c: '9', tclass: 'bold'}, + {c: ':', tclass: 'bold'}, + {c: ';', tclass: 'bold'}, + {c: '¡', tclass: 'bold'}, + {c: '=', a:0, d:-.1, tclass: 'bold'}, + {c: '¿', tclass: 'bold'}, + {c: '?', lig: {'96': 62}, tclass: 'bold'}, + // 40 - 4F + {c: '@', tclass: 'bold'}, + {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'B', tclass: 'bold'}, + {c: 'C', tclass: 'bold'}, + {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, + {c: 'E', tclass: 'bold'}, + {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'G', tclass: 'bold'}, + {c: 'H', tclass: 'bold'}, + {c: 'I', krn: {'73': 0.0278}, tclass: 'bold'}, + {c: 'J', tclass: 'bold'}, + {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'M', tclass: 'bold'}, + {c: 'N', tclass: 'bold'}, + {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, + // 50 - 5F + {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, + {c: 'Q', d:.1, tclass: 'bold'}, + {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'S', tclass: 'bold'}, + {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, + {c: 'U', tclass: 'bold'}, + {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, + {c: 'Z', tclass: 'bold'}, + {c: '[', d:.1, tclass: 'bold'}, + {c: '“', tclass: 'bold'}, + {c: ']', d:.1, tclass: 'bold'}, + {c: 'ˆ', tclass: 'baccent'}, + {c: '˙', tclass: 'baccent'}, + // 60 - 6F + {c: '‘', lig: {'96': 92}, tclass: 'bold'}, + {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'bold'}, + {c: 'd', tclass: 'bold'}, + {c: 'e', a:0, tclass: 'bold'}, + {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'bold'}, + {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'bold'}, + {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'i', tclass: 'bold'}, + {c: 'j', d:.2, tclass: 'bold'}, + {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'l', tclass: 'bold'}, + {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'q', a:0, d:.2, tclass: 'bold'}, + {c: 'r', a:0, tclass: 'bold'}, + {c: 's', a:0, tclass: 'bold'}, + {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'bold'}, + {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'x', a:0, tclass: 'bold'}, + {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, + {c: 'z', a:0, tclass: 'bold'}, + {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'bold'}, + {c: '—', a:.1, ic: 0.0278, tclass: 'bold'}, + {c: '˝', tclass: 'baccent'}, + {c: '˜', tclass: 'baccent'}, + {c: '¨', tclass: 'baccent'} + ] +}); + + +jsMath.Setup.Styles({ + '.typeset .cmr10': "font-family: serif", + '.typeset .italic': "font-style: italic", + '.typeset .bold': "font-weight: bold", + '.typeset .lucida': "font-family: 'Lucida Grande'", + '.typeset .asymbol': "font-family: 'Apple Symbols'; font-size: 125%", + '.typeset .cal': "font-family: 'Apple Chancery'", + '.typeset .arrows': "font-family: 'Hiragino Mincho Pro'", + '.typeset .Arrows': "font-family: 'AppleGothic'", + '.typeset .arrow1': "font-family: 'Hiragino Mincho Pro'; position: relative; top: .075em; margin: -1px", + '.typeset .arrow1a': "font-family: 'Hiragino Mincho Pro'; margin:-.3em", + '.typeset .harpoon': "font-family: AppleGothic; font-size: 90%", + '.typeset .symbol': "font-family: 'Hiragino Mincho Pro'", + '.typeset .symbol2': "font-family: 'Hiragino Mincho Pro'; margin:-.2em", + '.typeset .symbol3': "font-family: AppleGothic", + '.typeset .delim1': "font-family: Times; font-size: 133%; position:relative; top:.7em", + '.typeset .delim1a': "font-family: 'Apple Symbols'; font-size: 125%; position:relative; top:.75em", + '.typeset .delim1b': "font-family: 'Hiragino Mincho Pro'; font-size: 133%; position:relative; top:.8em; margin: -.1em", + '.typeset .delim1c': "font-family: Symbol; font-size: 120%; position:relative; top:.8em;", + '.typeset .delim2': "font-family: Baskerville; font-size: 180%; position:relative; top:.75em", + '.typeset .delim2a': "font-family: 'Apple Symbols'; font-size: 175%; position:relative; top:.8em", + '.typeset .delim2b': "font-family: 'Hiragino Mincho Pro'; font-size: 190%; position:relative; top:.8em; margin: -.1em", + '.typeset .delim2c': "font-family: Symbol; font-size: 167%; position:relative; top:.8em;", + '.typeset .delim3': "font-family: Baskerville; font-size: 250%; position:relative; top:.725em", + '.typeset .delim3a': "font-family: 'Apple Symbols'; font-size: 240%; position:relative; top:.78em", + '.typeset .delim3b': "font-family: 'Hiragino Mincho Pro'; font-size: 250%; position:relative; top:.8em; margin: -.1em", + '.typeset .delim3c': "font-family: symbol; font-size: 240%; position:relative; top:.775em;", + '.typeset .delim4': "font-family: Baskerville; font-size: 325%; position:relative; top:.7em", + '.typeset .delim4a': "font-family: 'Apple Symbols'; font-size: 310%; position:relative; top:.75em", + '.typeset .delim4b': "font-family: 'Hiragino Mincho Pro'; font-size: 325%; position:relative; top:.8em; margin: -.1em", + '.typeset .delim4c': "font-family: Symbol; font-size: 300%; position:relative; top:.8em;", + '.typeset .vertical': "font-family: Copperplate", + '.typeset .vertical1': "font-family: Copperplate; font-size: 85%; margin: .15em;", + '.typeset .vertical2': "font-family: Copperplate; font-size: 85%; margin: .17em;", + '.typeset .greek': "font-family: 'Hiragino Mincho Pro', serif; margin-left:-.2em; margin-right:-.2em;", + '.typeset .igreek': "font-family: 'Hiragino Mincho Pro', serif; font-style:italic; margin-left:-.2em; margin-right:-.1em", + '.typeset .bgreek': "font-family: 'Hiragino Mincho Pro', serif; font-weight:bold", + '.typeset .bigop1': "font-family: 'Hiragino Mincho Pro'; font-size: 133%; position: relative; top: .7em; margin:-.05em", + '.typeset .bigop1a': "font-family: Baskerville; font-size: 100%; position: relative; top: .775em;", + '.typeset .bigop1b': "font-family: 'Hiragino Mincho Pro'; font-size: 160%; position: relative; top: .67em; margin:-.1em", + '.typeset .bigop1c': "font-family: 'Apple Symbols'; font-size: 125%; position: relative; top: .75em; margin:-.1em;", + '.typeset .bigop2': "font-family: 'Hiragino Mincho Pro'; font-size: 200%; position: relative; top: .6em; margin:-.07em", + '.typeset .bigop2a': "font-family: Baskerville; font-size: 175%; position: relative; top: .67em;", + '.typeset .bigop2b': "font-family: 'Hiragino Mincho Pro'; font-size: 270%; position: relative; top: .62em; margin:-.1em", + '.typeset .bigop2c': "font-family: 'Apple Symbols'; font-size: 250%; position: relative; top: .7em; margin:-.17em;", + '.typeset .wide1': "font-size: 67%; position: relative; top:-.8em", + '.typeset .wide2': "font-size: 110%; position: relative; top:-.5em", + '.typeset .wide3': "font-size: 175%; position: relative; top:-.32em", + '.typeset .wide1a': "font-size: 75%; position: relative; top:-.5em", + '.typeset .wide2a': "font-size: 133%; position: relative; top: -.15em", + '.typeset .wide3a': "font-size: 200%; position: relative; top: -.05em", + '.typeset .root': "font-family: Baskerville;", + '.typeset .accent': "position: relative; top: .02em", + '.typeset .iaccent': "position: relative; top: .02em; font-style:italic", + '.typeset .baccent': "position: relative; top: .02em; font-weight:bold" +}); + +// +// Adjust for OmniWeb +// +if (jsMath.browser == 'OmniWeb') { + jsMath.Update.TeXfonts({ + cmsy10: { + '55': {c: '˫'}, + '104': {c: ''}, + '105': {c: ''} + } + }); + + jsMath.Setup.Styles({ + '.typeset .arrow2': 'font-family: Symbol; font-size: 100%; position: relative; top: -.1em; margin:-1px' + }); + +} + +// +// Adjust for Opera +// +if (jsMath.browser == 'Opera') { + jsMath.Setup.Styles({ + '.typeset .bigop1c': "margin:0pt .12em 0pt 0pt;", + '.typeset .bigop2c': "margin:0pt .12em 0pt 0pt;" + }); +} + +if (jsMath.browser == 'Mozilla') {jsMath.Setup.Script('jsMath-fallback-mac-mozilla.js')} +if (jsMath.browser == 'MSIE') {jsMath.Setup.Script('jsMath-fallback-mac-msie.js')} + + +/* + * No access to TeX "not" character, so fake this + */ +jsMath.Macro('not','\\mathrel{\\rlap{\\kern 4mu/}}'); + +jsMath.Box.defaultH = 0.8; + diff --git a/jsMath/uncompressed/jsMath-fallback-pc.js b/jsMath/uncompressed/jsMath-fallback-pc.js new file mode 100644 index 00000000..f7fb8ba0 --- /dev/null +++ b/jsMath/uncompressed/jsMath-fallback-pc.js @@ -0,0 +1,971 @@ +/* + * jsMath-fallback-pc.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed for when the TeX fonts are not available + * with a browser on the PC. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2010 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +/******************************************************************** + * + * Here we replace the TeX character mappings by equivalent unicode + * points when possible, and adjust the character dimensions + * based on the fonts we hope we get them from (the styles are set + * to try to use the best characters available in the standard + * fonts). + */ + +jsMath.Add(jsMath.TeX,{ + + cmr10: [ + // 00 - 0F + {c: 'Γ', tclass: 'greek'}, + {c: 'Δ', tclass: 'greek'}, + {c: 'Θ', tclass: 'greek'}, + {c: 'Λ', tclass: 'greek'}, + {c: 'Ξ', tclass: 'greek'}, + {c: 'Π', tclass: 'greek'}, + {c: 'Σ', tclass: 'greek'}, + {c: 'Υ', tclass: 'greek'}, + {c: 'Φ', tclass: 'greek'}, + {c: 'Ψ', tclass: 'greek'}, + {c: 'Ω', tclass: 'greek'}, + {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'normal'}, + {c: 'fi', tclass: 'normal'}, + {c: 'fl', tclass: 'normal'}, + {c: 'ffi', tclass: 'normal'}, + {c: 'ffl', tclass: 'normal'}, + // 10 - 1F + {c: 'ı', a:0, tclass: 'normal'}, + {c: 'j', d:.2, tclass: 'normal'}, + {c: 'ˋ', tclass: 'accent'}, + {c: 'ˊ', tclass: 'accent'}, + {c: 'ˇ', tclass: 'accent'}, + {c: '˘', tclass: 'accent'}, + {c: 'ˉ', tclass: 'accent'}, + {c: '˚', tclass: 'accent'}, + {c: '̧', tclass: 'normal'}, + {c: 'ß', tclass: 'normal'}, + {c: 'æ', a:0, tclass: 'normal'}, + {c: 'œ', a:0, tclass: 'normal'}, + {c: 'ø', tclass: 'normal'}, + {c: 'Æ', tclass: 'normal'}, + {c: 'Œ', tclass: 'normal'}, + {c: 'Ø', tclass: 'normal'}, + // 20 - 2F + {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'normal'}, + {c: '!', lig: {'96': 60}, tclass: 'normal'}, + {c: '”', tclass: 'normal'}, + {c: '#', tclass: 'normal'}, + {c: '$', tclass: 'normal'}, + {c: '%', tclass: 'normal'}, + {c: '&', tclass: 'normal'}, + {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'normal'}, + {c: '(', d:.2, tclass: 'normal'}, + {c: ')', d:.2, tclass: 'normal'}, + {c: '*', tclass: 'normal'}, + {c: '+', a:.1, tclass: 'normal'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'normal'}, + {c: '-', a:0, lig: {'45': 123}, tclass: 'normal'}, + {c: '.', a:-.25, tclass: 'normal'}, + {c: '/', tclass: 'normal'}, + // 30 - 3F + {c: '0', tclass: 'normal'}, + {c: '1', tclass: 'normal'}, + {c: '2', tclass: 'normal'}, + {c: '3', tclass: 'normal'}, + {c: '4', tclass: 'normal'}, + {c: '5', tclass: 'normal'}, + {c: '6', tclass: 'normal'}, + {c: '7', tclass: 'normal'}, + {c: '8', tclass: 'normal'}, + {c: '9', tclass: 'normal'}, + {c: ':', tclass: 'normal'}, + {c: ';', tclass: 'normal'}, + {c: '¡', tclass: 'normal'}, + {c: '=', a:0, d:-.1, tclass: 'normal'}, + {c: '¿', tclass: 'normal'}, + {c: '?', lig: {'96': 62}, tclass: 'normal'}, + // 40 - 4F + {c: '@', tclass: 'normal'}, + {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'B', tclass: 'normal'}, + {c: 'C', tclass: 'normal'}, + {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, + {c: 'E', tclass: 'normal'}, + {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'G', tclass: 'normal'}, + {c: 'H', tclass: 'normal'}, + {c: 'I', krn: {'73': 0.0278}, tclass: 'normal'}, + {c: 'J', tclass: 'normal'}, + {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'M', tclass: 'normal'}, + {c: 'N', tclass: 'normal'}, + {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, + // 50 - 5F + {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, + {c: 'Q', d:.2, tclass: 'normal'}, + {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'S', tclass: 'normal'}, + {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, + {c: 'U', tclass: 'normal'}, + {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, + {c: 'Z', tclass: 'normal'}, + {c: '[', d:.1, tclass: 'normal'}, + {c: '“', tclass: 'normal'}, + {c: ']', d:.1, tclass: 'normal'}, + {c: 'ˆ', tclass: 'accent'}, + {c: '˙', tclass: 'accent'}, + // 60 - 6F + {c: '‘', lig: {'96': 92}, tclass: 'normal'}, + {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'normal'}, + {c: 'd', tclass: 'normal'}, + {c: 'e', a:0, tclass: 'normal'}, + {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'normal'}, + {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'normal'}, + {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'i', tclass: 'normal'}, + {c: 'j', d:.2, tclass: 'normal'}, + {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'l', tclass: 'normal'}, + {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'q', a:0, d:.2, tclass: 'normal'}, + {c: 'r', a:0, tclass: 'normal'}, + {c: 's', a:0, tclass: 'normal'}, + {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'normal'}, + {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'x', a:0, tclass: 'normal'}, + {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, + {c: 'z', a:0, tclass: 'normal'}, + {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'normal'}, + {c: '—', a:.1, ic: 0.0278, tclass: 'normal'}, + {c: '˝', tclass: 'accent'}, + {c: '˜', tclass: 'accent'}, + {c: '¨', tclass: 'accent'} + ], + + cmmi10: [ + // 00 - 0F + {c: 'Γ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'igreek'}, + {c: 'Δ', krn: {'127': 0.167}, tclass: 'igreek'}, + {c: 'Θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Λ', krn: {'127': 0.167}, tclass: 'igreek'}, + {c: 'Ξ', ic: 0.0757, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Π', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Σ', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Υ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Φ', krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Ψ', ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Ω', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'α', a:0, ic: 0.0037, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'β', d:.2, ic: 0.0528, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'γ', a:0, d:.2, ic: 0.0556, tclass: 'greek'}, + {c: 'δ', ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'greek'}, + {c: 'ε', a:0, krn: {'127': 0.0556}, tclass: 'lucida'}, + // 10 - 1F + {c: 'ζ', d:.2, ic: 0.0738, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'η', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'greek'}, + {c: 'θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ι', a:0, krn: {'127': 0.0556}, tclass: 'greek'}, + {c: 'κ', a:0, tclass: 'greek'}, + {c: 'λ', tclass: 'greek'}, + {c: 'μ', a:0, d:.2, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'ν', a:0, ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, + {c: 'ξ', d:.2, ic: 0.046, krn: {'127': 0.111}, tclass: 'greek'}, + {c: 'π', a:0, ic: 0.0359, tclass: 'greek'}, + {c: 'ρ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'σ', a:0, ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'greek'}, + {c: 'τ', a:0, ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, + {c: 'υ', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'φ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'χ', a:0, d:.2, krn: {'127': 0.0556}, tclass: 'greek'}, + // 20 - 2F + {c: 'ψ', a:.1, d:.2, ic: 0.0359, krn: {'127': 0.111}, tclass: 'greek'}, + {c: 'ω', a:0, ic: 0.0359, tclass: 'greek'}, + {c: 'ε', a:0, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ϑ', krn: {'127': 0.0833}, tclass: 'lucida'}, + {c: 'ϖ', a:0, ic: 0.0278, tclass: 'lucida'}, + {c: 'ϱ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'lucida'}, + {c: 'ς', a:0, d:.2, ic: 0.0799, krn: {'127': 0.0833}, tclass: 'lucida'}, + {c: 'ϕ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'lucida'}, + {c: '↼', a:0, d:-.2, tclass: 'arrows'}, + {c: '↽', a:0, d:-.1, tclass: 'arrows'}, + {c: '⇀', a:0, d:-.2, tclass: 'arrows'}, + {c: '⇁', a:0, d:-.1, tclass: 'arrows'}, + {c: '˓', a:.1, tclass: 'symbol'}, + {c: '˒', a:.1, tclass: 'symbol'}, + {c: '▹', tclass: 'symbol'}, + {c: '◃', tclass: 'symbol'}, + // 30 - 3F + {c: '0', tclass: 'normal'}, + {c: '1', tclass: 'normal'}, + {c: '2', tclass: 'normal'}, + {c: '3', tclass: 'normal'}, + {c: '4', tclass: 'normal'}, + {c: '5', tclass: 'normal'}, + {c: '6', tclass: 'normal'}, + {c: '7', tclass: 'normal'}, + {c: '8', tclass: 'normal'}, + {c: '9', tclass: 'normal'}, + {c: '.', a:-.3, tclass: 'normal'}, + {c: ',', a:-.3, d:.2, tclass: 'normal'}, + {c: '<', a:.1, tclass: 'normal'}, + {c: '/', d:.1, krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}, tclass: 'normal'}, + {c: '>', a:.1, tclass: 'normal'}, + {c: '⋆', a:0, tclass: 'arial'}, + // 40 - 4F + {c: '∂', ic: 0.0556, krn: {'127': 0.0833}, tclass: 'normal'}, + {c: 'A', krn: {'127': 0.139}, tclass: 'italic'}, + {c: 'B', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'D', ic: 0.0278, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'E', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, + {c: 'G', krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 'I', ic: 0.0785, krn: {'127': 0.111}, tclass: 'italic'}, + {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}, tclass: 'italic'}, + {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 'L', krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'O', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'italic'}, + // 50 - 5F + {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, + {c: 'Q', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'R', ic: 0.00773, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}, tclass: 'italic'}, + {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: '♭', tclass: 'symbol'}, + {c: '♮', tclass: 'symbol'}, + {c: '♯', tclass: 'symbol'}, + {c: '', a:0, d:-.1, tclass: 'arial'}, + {c: '', a:0, d:-.1, tclass: 'arial'}, + // 60 - 6F + {c: 'ℓ', krn: {'127': 0.111}, tclass: 'italic'}, + {c: 'a', a:0, tclass: 'italic'}, + {c: 'b', tclass: 'italic'}, + {c: 'c', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}, tclass: 'italic'}, + {c: 'e', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}, tclass: 'italic'}, + {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'h', krn: {'127': -0.0278}, tclass: 'italic'}, + {c: 'i', tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'italic'}, + {c: 'k', ic: 0.0315, tclass: 'italic'}, + {c: 'l', ic: 0.0197, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'm', a:0, tclass: 'italic'}, + {c: 'n', a:0, tclass: 'italic'}, + {c: 'o', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 's', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 't', krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'u', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'x', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'ı', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'j', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: '℘', a:0, d:.2, krn: {'127': 0.111}, tclass: 'arial'}, + {c: '', ic: 0.154, tclass: 'symbol'}, + {c: '̑', ic: 0.399, tclass: 'normal'} + ], + + cmsy10: [ + // 00 - 0F + {c: '', a:.1, tclass: 'symbol'}, + {c: '·', a:0, d:-.2, tclass: 'normal'}, + {c: '×', a:0, tclass: 'normal'}, + {c: '*', a:0, tclass: 'normal'}, + {c: '÷', a:0, tclass: 'normal'}, + {c: '◊', tclass: 'symbol'}, + {c: '±', a:.1, tclass: 'normal'}, + {c: '∓', tclass: 'symbol'}, + {c: '⊕', tclass: 'symbol'}, + {c: '⊖', tclass: 'symbol'}, + {c: '⊗', tclass: 'symbol'}, + {c: '⊘', tclass: 'symbol'}, + {c: '⊙', tclass: 'symbol'}, + {c: '◯', tclass: 'arial'}, + {c: '∘', a:0, d:-.1, tclass: 'symbol2'}, + {c: '•', a:0, d:-.2, tclass: 'symbol'}, + // 10 - 1F + {c: '≍', a:.1, tclass: 'symbol2'}, + {c: '≡', a:.1, tclass: 'symbol2'}, + {c: '⊆', tclass: 'symbol'}, + {c: '⊇', tclass: 'symbol'}, + {c: '≤', tclass: 'symbol'}, + {c: '≥', tclass: 'symbol'}, + {c: '≼', tclass: 'symbol'}, + {c: '≽', tclass: 'symbol'}, + {c: '~', a:0, d: -.2, tclass: 'normal'}, + {c: '≈', a:.1, d:-.1, tclass: 'symbol'}, + {c: '⊂', tclass: 'symbol'}, + {c: '⊃', tclass: 'symbol'}, + {c: '≪', tclass: 'symbol'}, + {c: '≫', tclass: 'symbol'}, + {c: '≺', tclass: 'symbol'}, + {c: '≻', tclass: 'symbol'}, + // 20 - 2F + {c: '←', a:-.1, tclass: 'arrow1'}, + {c: '→', a:-.1, tclass: 'arrow1'}, + {c: '↑', a:.2, d:0, tclass: 'arrow1a'}, + {c: '↓', a:.2, d:0, tclass: 'arrow1a'}, + {c: '↔', a:-.1, tclass: 'arrow1'}, + {c: '↗', a:.1, tclass: 'arrows'}, + {c: '↘', a:.1, tclass: 'arrows'}, + {c: '≃', a: .1, tclass: 'symbol2'}, + {c: '⇐', a:-.1, tclass: 'arrow2'}, + {c: '⇒', a:-.1, tclass: 'arrow2'}, + {c: '⇑', a:.2, d:.1, tclass: 'arrow1a'}, + {c: '⇓', a:.2, d:.1, tclass: 'arrow1a'}, + {c: '⇔', a:-.1, tclass: 'arrow2'}, + {c: '↖', a:.1, tclass: 'arrows'}, + {c: '↙', a:.1, tclass: 'arrows'}, + {c: '∝', a:.1, tclass: 'normal'}, + // 30 - 3F + {c: '', a: 0, tclass: 'lucida'}, + {c: '∞', a:.1, tclass: 'symbol'}, + {c: '∈', tclass: 'symbol'}, + {c: '∋', tclass: 'symbol'}, + {c: '', tclass: 'symbol'}, + {c: '', tclass: 'symbol'}, + {c: '/', d:.2, tclass: 'normal'}, + {c: '', tclass: 'symbol'}, + {c: '∀', tclass: 'symbol'}, + {c: '∃', tclass: 'symbol'}, + {c: '¬', a:0, d:-.1, tclass: 'symbol'}, + {c: '∅', tclass: 'symbol'}, + {c: 'ℜ', tclass: 'symbol'}, + {c: 'ℑ', tclass: 'symbol'}, + {c: '⊤', tclass: 'symbol'}, + {c: '⊥', tclass: 'symbol'}, + // 40 - 4F + {c: 'ℵ', tclass: 'symbol'}, + {c: 'A', krn: {'48': 0.194}, tclass: 'cal'}, + {c: 'B', ic: 0.0304, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'C', ic: 0.0583, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'D', ic: 0.0278, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'E', ic: 0.0894, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'F', ic: 0.0993, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'G', d:.2, ic: 0.0593, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'H', ic: 0.00965, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'I', ic: 0.0738, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'J', d:.2, ic: 0.185, krn: {'48': 0.167}, tclass: 'cal'}, + {c: 'K', ic: 0.0144, krn: {'48': 0.0556}, tclass: 'cal'}, + {c: 'L', krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'M', krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'N', ic: 0.147, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'O', ic: 0.0278, krn: {'48': 0.111}, tclass: 'cal'}, + // 50 - 5F + {c: 'P', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'Q', d:.2, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'R', krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'S', ic: 0.075, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'T', ic: 0.254, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'U', ic: 0.0993, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'V', ic: 0.0822, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'W', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'X', ic: 0.146, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'Y', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'Z', ic: 0.0794, krn: {'48': 0.139}, tclass: 'cal'}, + {c: '⋃', tclass: 'symbol'}, + {c: '⋂', tclass: 'symbol'}, + {c: '⊎', tclass: 'symbol'}, + {c: '⋀', tclass: 'symbol'}, + {c: '⋁', tclass: 'symbol'}, + // 60 - 6F + {c: '⊢', tclass: 'symbol'}, + {c: '⊣', tclass: 'symbol'}, + {c: '⌊', a:.3, d:.2, tclass: 'lucida'}, + {c: '⌋', a:.3, d:.2, tclass: 'lucida'}, + {c: '⌈', a:.3, d:.2, tclass: 'lucida'}, + {c: '⌉', a:.3, d:.2, tclass: 'lucida'}, + {c: '{', d:.2, tclass: 'normal'}, + {c: '}', d:.2, tclass: 'normal'}, + {c: '〈', a:.3, d:.2, tclass: 'symbol'}, + {c: '〉', a:.3, d:.2, tclass: 'symbol'}, + {c: '∣', d:.1, tclass: 'symbol'}, + {c: '∥', d:.1, tclass: 'symbol'}, + {c: '↕', a:.2, d:0, tclass: 'arrow1a'}, + {c: '⇕', a:.3, d:0, tclass: 'arrow1a'}, + {c: '∖', a:.3, d:.1, tclass: 'symbol'}, + {c: '≀', tclass: 'symbol'}, + // 70 - 7F + {c: '', h:.04, d:.8, tclass: 'symbol'}, + {c: '∐', a:.4, tclass: 'symbol'}, + {c: '∇', tclass: 'symbol'}, + {c: '', a:.4, d:.1, ic: 0.111, tclass: 'lucida'}, + {c: '⊔', tclass: 'symbol'}, + {c: '⊓', tclass: 'symbol'}, + {c: '⊑', tclass: 'symbol'}, + {c: '⊒', tclass: 'symbol'}, + {c: '§', d:.1, tclass: 'normal'}, + {c: '†', d:.1, tclass: 'normal'}, + {c: '‡', d:.1, tclass: 'normal'}, + {c: '¶', a:.3, d:.1, tclass: 'lucida'}, + {c: '♣', tclass: 'arial'}, + {c: '♢', tclass: 'arial'}, + {c: '♡', tclass: 'arial'}, + {c: '♠', tclass: 'arial'} + ], + + cmex10: [ + // 00 - 0F + {c: '(', h: 0.04, d: 1.16, n: 16, tclass: 'delim1'}, + {c: ')', h: 0.04, d: 1.16, n: 17, tclass: 'delim1'}, + {c: '[', h: 0.04, d: 1.16, n: 104, tclass: 'delim1'}, + {c: ']', h: 0.04, d: 1.16, n: 105, tclass: 'delim1'}, + {c: '⌊', h: 0.04, d: 1.16, n: 106, tclass: 'delim1a'}, + {c: '⌋', h: 0.04, d: 1.16, n: 107, tclass: 'delim1a'}, + {c: '⌈', h: 0.04, d: 1.16, n: 108, tclass: 'delim1a'}, + {c: '⌉', h: 0.04, d: 1.16, n: 109, tclass: 'delim1a'}, + {c: '{', h: 0.04, d: 1.16, n: 110, tclass: 'delim1'}, + {c: '}', h: 0.04, d: 1.16, n: 111, tclass: 'delim1'}, + {c: '〈', h: 0.04, d: 1.16, n: 68, tclass: 'delim1b'}, + {c: '〉', h: 0.04, d: 1.16, n: 69, tclass: 'delim1b'}, + {c: '∣', h:.7, d:.1, delim: {rep: 12}, tclass: 'symbol'}, + {c: '∥', h:.7, d:.1, delim: {rep: 13}, tclass: 'symbol'}, + {c: '/', h: 0.04, d: 1.16, n: 46, tclass: 'delim1a'}, + {c: '∖', h: 0.04, d: 1.16, n: 47, tclass: 'delim1a'}, + // 10 - 1F + {c: '(', h: 0.04, d: 1.76, n: 18, tclass: 'delim2'}, + {c: ')', h: 0.04, d: 1.76, n: 19, tclass: 'delim2'}, + {c: '(', h: 0.04, d: 2.36, n: 32, tclass: 'delim3'}, + {c: ')', h: 0.04, d: 2.36, n: 33, tclass: 'delim3'}, + {c: '[', h: 0.04, d: 2.36, n: 34, tclass: 'delim3'}, + {c: ']', h: 0.04, d: 2.36, n: 35, tclass: 'delim3'}, + {c: '⌊', h: 0.04, d: 2.36, n: 36, tclass: 'delim3a'}, + {c: '⌋', h: 0.04, d: 2.36, n: 37, tclass: 'delim3a'}, + {c: '⌈', h: 0.04, d: 2.36, n: 38, tclass: 'delim3a'}, + {c: '⌉', h: 0.04, d: 2.36, n: 39, tclass: 'delim3a'}, + {c: '{', h: 0.04, d: 2.36, n: 40, tclass: 'delim3'}, + {c: '}', h: 0.04, d: 2.36, n: 41, tclass: 'delim3'}, + {c: '〈', h: 0.04, d: 2.36, n: 42, tclass: 'delim3b'}, + {c: '〉', h: 0.04, d: 2.36, n: 43, tclass: 'delim3b'}, + {c: '/', h: 0.04, d: 2.36, n: 44, tclass: 'delim3a'}, + {c: '∖', h: 0.04, d: 2.36, n: 45, tclass: 'delim3a'}, + // 20 - 2F + {c: '(', h: 0.04, d: 2.96, n: 48, tclass: 'delim4'}, + {c: ')', h: 0.04, d: 2.96, n: 49, tclass: 'delim4'}, + {c: '[', h: 0.04, d: 2.96, n: 50, tclass: 'delim4'}, + {c: ']', h: 0.04, d: 2.96, n: 51, tclass: 'delim4'}, + {c: '⌊', h: 0.04, d: 2.96, n: 52, tclass: 'delim4a'}, + {c: '⌋', h: 0.04, d: 2.96, n: 53, tclass: 'delim4a'}, + {c: '⌈', h: 0.04, d: 2.96, n: 54, tclass: 'delim4a'}, + {c: '⌉', h: 0.04, d: 2.96, n: 55, tclass: 'delim4a'}, + {c: '{', h: 0.04, d: 2.96, n: 56, tclass: 'delim4'}, + {c: '}', h: 0.04, d: 2.96, n: 57, tclass: 'delim4'}, + {c: '〈', h: 0.04, d: 2.96, tclass: 'delim4b'}, + {c: '〉', h: 0.04, d: 2.96, tclass: 'delim4b'}, + {c: '/', h: 0.04, d: 2.96, tclass: 'delim4a'}, + {c: '∖', h: 0.04, d: 2.96, tclass: 'delim4a'}, + {c: '/', h: 0.04, d: 1.76, n: 30, tclass: 'delim2a'}, + {c: '∖', h: 0.04, d: 1.76, n: 31, tclass: 'delim2a'}, + // 30 - 3F + {c: 'æ', h: 1, delim: {top: 48, bot: 64, rep: 66}, tclass: 'delimx'}, + {c: 'ö', h: 1, delim: {top: 49, bot: 65, rep: 67}, tclass: 'delimx'}, + {c: 'é', h: 1, delim: {top: 50, bot: 52, rep: 54}, tclass: 'delimx'}, + {c: 'ù', h: 1, delim: {top: 51, bot: 53, rep: 55}, tclass: 'delimx'}, + {c: 'ë', h: 1, delim: {bot: 52, rep: 54}, tclass: 'delimx'}, + {c: 'û', h: 1, delim: {bot: 53, rep: 55}, tclass: 'delimx'}, + {c: 'ê', h: 1, delim: {top: 50, rep: 54}, tclass: 'delimx'}, + {c: 'ú', h: 1, delim: {top: 51, rep: 55}, tclass: 'delimx'}, + {c: 'ì', h: 1, delim: {top: 56, mid: 60, bot: 58, rep: 62}, tclass: 'delimx'}, + {c: 'ü', h: 1, delim: {top: 57, mid: 61, bot: 59, rep: 62}, tclass: 'delimx'}, + {c: 'î', h: 1, delim: {top: 56, bot: 58, rep: 62}, tclass: 'delimx'}, + {c: 'þ', h: 1, delim: {top: 57, bot: 59, rep: 62}, tclass: 'delimx'}, + {c: 'í', h: 1, delim: {rep: 63}, tclass: 'delimx'}, + {c: 'ý', h: 1, delim: {rep: 119}, tclass: 'delimx'}, + {c: 'ï', h: 1, delim: {rep: 62}, tclass: 'delimx'}, + {c: '|', delim: {top: 120, bot: 121, rep: 63}, tclass: 'normal'}, + // 40 - 4F + {c: 'è', h: 1, delim: {top: 56, bot: 59, rep: 62}, tclass: 'delimx'}, + {c: 'ø', h: 1, delim: {top: 57, bot: 58, rep: 62}, tclass: 'delimx'}, + {c: 'ç', h: 1, delim: {rep: 66}, tclass: 'delimx'}, + {c: '÷', h: 1, delim: {rep: 67}, tclass: 'delimx'}, + {c: '〈', h: 0.04, d: 1.76, n: 28, tclass: 'delim2b'}, + {c: '〉', h: 0.04, d: 1.76, n: 29, tclass: 'delim2b'}, + {c: '⊔', h: 0, d: 1, n: 71, tclass: 'bigop1'}, + {c: '⊔', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '∮', h: 0, d: 1.11, ic: 0.095, n: 73, tclass: 'bigop1c'}, + {c: '∮', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, + {c: '⊙', h: 0, d: 1, n: 75, tclass: 'bigop1'}, + {c: '⊙', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '⊕', h: 0, d: 1, n: 77, tclass: 'bigop1'}, + {c: '⊕', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '⊗', h: 0, d: 1, n: 79, tclass: 'bigop1'}, + {c: '⊗', h: 0.1, d: 1.5, tclass: 'bigop2'}, + // 50 - 5F + {c: '∑', h: 0, d: 1, n: 88, tclass: 'bigop1a'}, + {c: '∏', h: 0, d: 1, n: 89, tclass: 'bigop1a'}, + {c: '∫', h: 0, d: 1.11, ic: 0.095, n: 90, tclass: 'bigop1c'}, + {c: '∪', h: 0, d: 1, n: 91, tclass: 'bigop1b'}, + {c: '∩', h: 0, d: 1, n: 92, tclass: 'bigop1b'}, + {c: '⊎', h: 0, d: 1, n: 93, tclass: 'bigop1b'}, + {c: '⋀', h: 0, d: 1, n: 94, tclass: 'bigop1'}, + {c: '⋁', h: 0, d: 1, n: 95, tclass: 'bigop1'}, + {c: '∑', h: 0.1, d: 1.6, tclass: 'bigop2a'}, + {c: '∏', h: 0.1, d: 1.5, tclass: 'bigop2a'}, + {c: '∫', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, + {c: '∪', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '∩', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '⊎', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '⋀', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '⋁', h: 0.1, d: 1.5, tclass: 'bigop2'}, + // 60 - 6F + {c: '∐', h: 0, d: 1, n: 97, tclass: 'bigop1a'}, + {c: '∐', h: 0.1, d: 1.5, tclass: 'bigop2a'}, + {c: '︿', h: 0.8, d:0, w: .65, n: 99, tclass: 'wide1'}, + {c: '︿', h: 0.85, w: 1.1, n: 100, tclass: 'wide2'}, + {c: '︿', h: 0.99, w: 1.65, tclass: 'wide3'}, + {c: '~', h: 1, w: .5, n: 102, tclass: 'wide1a'}, + {c: '~', h: 1, w: .8, n: 103, tclass: 'wide2a'}, + {c: '~', h: 0.99, w: 1.3, tclass: 'wide3a'}, + {c: '[', h: 0.04, d: 1.76, n: 20, tclass: 'delim2'}, + {c: ']', h: 0.04, d: 1.76, n: 21, tclass: 'delim2'}, + {c: '⌈', h: 0.04, d: 1.76, n: 22, tclass: 'delim2a'}, + {c: '⌉', h: 0.04, d: 1.76, n: 23, tclass: 'delim2a'}, + {c: '⌊', h: 0.04, d: 1.76, n: 24, tclass: 'delim2a'}, + {c: '⌋', h: 0.04, d: 1.76, n: 25, tclass: 'delim2a'}, + {c: '{', h: 0.04, d: 1.76, n: 26, tclass: 'delim2'}, + {c: '}', h: 0.04, d: 1.76, n: 27, tclass: 'delim2'}, + // 70 - 7F + {c: '', h: 0.04, d: 1.16, n: 113, tclass: 'root'}, + {c: '', h: 0.04, d: 1.76, n: 114, tclass: 'root'}, + {c: '', h: 0.06, d: 2.36, n: 115, tclass: 'root'}, + {c: '', h: 0.08, d: 2.96, n: 116, tclass: 'root'}, + {c: '', h: 0.1, d: 3.75, n: 117, tclass: 'root'}, + {c: '', h: .12, d: 4.5, n: 118, tclass: 'root'}, + {c: '', h: .14, d: 5.7, tclass: 'root'}, + {c: '||', delim: {top: 126, bot: 127, rep: 119}, tclass: 'normal'}, + {c: '↑', h:.7, d:0, delim: {top: 120, rep: 63}, tclass: 'arrow1a'}, + {c: '↓', h:.7, d:0, delim: {bot: 121, rep: 63}, tclass: 'arrow1a'}, + {c: '', h: 0.05, tclass: 'symbol'}, + {c: '', h: 0.05, tclass: 'symbol'}, + {c: '', h: 0.05, tclass: 'symbol'}, + {c: '', h: 0.05, tclass: 'symbol'}, + {c: '⇑', h: .65, d:0, delim: {top: 126, rep: 119}, tclass: 'arrow1a'}, + {c: '⇓', h: .65, d:0, delim: {bot: 127, rep: 119}, tclass: 'arrow1a'} + ], + + cmti10: [ + // 00 - 0F + {c: 'Γ', ic: 0.133, tclass: 'igreek'}, + {c: 'Δ', tclass: 'igreek'}, + {c: 'Θ', ic: 0.094, tclass: 'igreek'}, + {c: 'Λ', tclass: 'igreek'}, + {c: 'Ξ', ic: 0.153, tclass: 'igreek'}, + {c: 'Π', ic: 0.164, tclass: 'igreek'}, + {c: 'Σ', ic: 0.12, tclass: 'igreek'}, + {c: 'Υ', ic: 0.111, tclass: 'igreek'}, + {c: 'Φ', ic: 0.0599, tclass: 'igreek'}, + {c: 'Ψ', ic: 0.111, tclass: 'igreek'}, + {c: 'Ω', ic: 0.103, tclass: 'igreek'}, + {c: 'ff', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}, tclass: 'italic'}, + {c: 'fi', ic: 0.103, tclass: 'italic'}, + {c: 'fl', ic: 0.103, tclass: 'italic'}, + {c: 'ffi', ic: 0.103, tclass: 'italic'}, + {c: 'ffl', ic: 0.103, tclass: 'italic'}, + // 10 - 1F + {c: 'ı', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.0374, tclass: 'italic'}, + {c: 'ˋ', tclass: 'iaccent'}, + {c: 'ˊ', ic: 0.0969, tclass: 'iaccent'}, + {c: 'ˇ', ic: 0.083, tclass: 'iaccent'}, + {c: '˘', ic: 0.108, tclass: 'iaccent'}, + {c: 'ˉ', ic: 0.103, tclass: 'iaccent'}, + {c: '˚', tclass: 'iaccent'}, + {c: '?', d: 0.17, w: 0.46, tclass: 'italic'}, + {c: 'ß', ic: 0.105, tclass: 'italic'}, + {c: 'æ', a:0, ic: 0.0751, tclass: 'italic'}, + {c: 'œ', a:0, ic: 0.0751, tclass: 'italic'}, + {c: 'ø', ic: 0.0919, tclass: 'italic'}, + {c: 'Æ', ic: 0.12, tclass: 'italic'}, + {c: 'Œ', ic: 0.12, tclass: 'italic'}, + {c: 'Ø', ic: 0.094, tclass: 'italic'}, + // 20 - 2F + {c: '?', krn: {'108': -0.256, '76': -0.321}, tclass: 'italic'}, + {c: '!', ic: 0.124, lig: {'96': 60}, tclass: 'italic'}, + {c: '”', ic: 0.0696, tclass: 'italic'}, + {c: '#', ic: 0.0662, tclass: 'italic'}, + {c: '$', tclass: 'italic'}, + {c: '%', ic: 0.136, tclass: 'italic'}, + {c: '&', ic: 0.0969, tclass: 'italic'}, + {c: '’', ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}, tclass: 'italic'}, + {c: '(', d:.2, ic: 0.162, tclass: 'italic'}, + {c: ')', d:.2, ic: 0.0369, tclass: 'italic'}, + {c: '*', ic: 0.149, tclass: 'italic'}, + {c: '+', a:.1, ic: 0.0369, tclass: 'italic'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'italic'}, + {c: '-', a:0, ic: 0.0283, lig: {'45': 123}, tclass: 'italic'}, + {c: '.', a:-.25, tclass: 'italic'}, + {c: '/', ic: 0.162, tclass: 'italic'}, + // 30 - 3F + {c: '0', ic: 0.136, tclass: 'italic'}, + {c: '1', ic: 0.136, tclass: 'italic'}, + {c: '2', ic: 0.136, tclass: 'italic'}, + {c: '3', ic: 0.136, tclass: 'italic'}, + {c: '4', ic: 0.136, tclass: 'italic'}, + {c: '5', ic: 0.136, tclass: 'italic'}, + {c: '6', ic: 0.136, tclass: 'italic'}, + {c: '7', ic: 0.136, tclass: 'italic'}, + {c: '8', ic: 0.136, tclass: 'italic'}, + {c: '9', ic: 0.136, tclass: 'italic'}, + {c: ':', ic: 0.0582, tclass: 'italic'}, + {c: ';', ic: 0.0582, tclass: 'italic'}, + {c: '¡', ic: 0.0756, tclass: 'italic'}, + {c: '=', a:0, d:-.1, ic: 0.0662, tclass: 'italic'}, + {c: '¿', tclass: 'italic'}, + {c: '?', ic: 0.122, lig: {'96': 62}, tclass: 'italic'}, + // 40 - 4F + {c: '@', ic: 0.096, tclass: 'italic'}, + {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'B', ic: 0.103, tclass: 'italic'}, + {c: 'C', ic: 0.145, tclass: 'italic'}, + {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, + {c: 'E', ic: 0.12, tclass: 'italic'}, + {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'G', ic: 0.0872, tclass: 'italic'}, + {c: 'H', ic: 0.164, tclass: 'italic'}, + {c: 'I', ic: 0.158, tclass: 'italic'}, + {c: 'J', ic: 0.14, tclass: 'italic'}, + {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'M', ic: 0.164, tclass: 'italic'}, + {c: 'N', ic: 0.164, tclass: 'italic'}, + {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, + // 50 - 5F + {c: 'P', ic: 0.103, krn: {'65': -0.0767}, tclass: 'italic'}, + {c: 'Q', d:.2, ic: 0.094, tclass: 'italic'}, + {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'S', ic: 0.12, tclass: 'italic'}, + {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, + {c: 'U', ic: 0.164, tclass: 'italic'}, + {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'W', ic: 0.184, krn: {'65': -0.0767}, tclass: 'italic'}, + {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, + {c: 'Z', ic: 0.145, tclass: 'italic'}, + {c: '[', d:.1, ic: 0.188, tclass: 'italic'}, + {c: '“', ic: 0.169, tclass: 'italic'}, + {c: ']', d:.1, ic: 0.105, tclass: 'italic'}, + {c: 'ˆ', ic: 0.0665, tclass: 'iaccent'}, + {c: '˙', ic: 0.118, tclass: 'iaccent'}, + // 60 - 6F + {c: '‘', ic: 0.124, lig: {'96': 92}, tclass: 'italic'}, + {c: 'a', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'd', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'italic'}, + {c: 'g', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'h', ic: 0.0767, tclass: 'italic'}, + {c: 'i', ic: 0.102, tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.145, tclass: 'italic'}, + {c: 'k', ic: 0.108, tclass: 'italic'}, + {c: 'l', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'm', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}, tclass: 'italic'}, + {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + // 70 - 7F + {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'q', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 's', a:0, ic: 0.0821, tclass: 'italic'}, + {c: 't', ic: 0.0949, tclass: 'italic'}, + {c: 'u', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'v', a:0, ic: 0.108, tclass: 'italic'}, + {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'x', a:0, ic: 0.12, tclass: 'italic'}, + {c: 'y', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'z', a:0, ic: 0.123, tclass: 'italic'}, + {c: '–', a:.1, ic: 0.0921, lig: {'45': 124}, tclass: 'italic'}, + {c: '—', a:.1, ic: 0.0921, tclass: 'italic'}, + {c: '˝', ic: 0.122, tclass: 'iaccent'}, + {c: '˜', ic: 0.116, tclass: 'iaccent'}, + {c: '¨', tclass: 'iaccent'} + ], + + cmbx10: [ + // 00 - 0F + {c: 'Γ', tclass: 'bgreek'}, + {c: 'Δ', tclass: 'bgreek'}, + {c: 'Θ', tclass: 'bgreek'}, + {c: 'Λ', tclass: 'bgreek'}, + {c: 'Ξ', tclass: 'bgreek'}, + {c: 'Π', tclass: 'bgreek'}, + {c: 'Σ', tclass: 'bgreek'}, + {c: 'Υ', tclass: 'bgreek'}, + {c: 'Φ', tclass: 'bgreek'}, + {c: 'Ψ', tclass: 'bgreek'}, + {c: 'Ω', tclass: 'bgreek'}, + {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'bold'}, + {c: 'fi', tclass: 'bold'}, + {c: 'fl', tclass: 'bold'}, + {c: 'ffi', tclass: 'bold'}, + {c: 'ffl', tclass: 'bold'}, + // 10 - 1F + {c: 'ı', a:0, tclass: 'bold'}, + {c: 'j', d:.2, tclass: 'bold'}, + {c: 'ˋ', tclass: 'baccent'}, + {c: 'ˊ', tclass: 'baccent'}, + {c: 'ˇ', tclass: 'baccent'}, + {c: '˘', tclass: 'baccent'}, + {c: 'ˉ', tclass: 'baccent'}, + {c: '˚', tclass: 'baccent'}, + {c: '?', tclass: 'bold'}, + {c: 'ß', tclass: 'bold'}, + {c: 'æ', a:0, tclass: 'bold'}, + {c: 'œ', a:0, tclass: 'bold'}, + {c: 'ø', tclass: 'bold'}, + {c: 'Æ', tclass: 'bold'}, + {c: 'Œ', tclass: 'bold'}, + {c: 'Ø', tclass: 'bold'}, + // 20 - 2F + {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'bold'}, + {c: '!', lig: {'96': 60}, tclass: 'bold'}, + {c: '”', tclass: 'bold'}, + {c: '#', tclass: 'bold'}, + {c: '$', tclass: 'bold'}, + {c: '%', tclass: 'bold'}, + {c: '&', tclass: 'bold'}, + {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'bold'}, + {c: '(', d:.2, tclass: 'bold'}, + {c: ')', d:.2, tclass: 'bold'}, + {c: '*', tclass: 'bold'}, + {c: '+', a:.1, tclass: 'bold'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'bold'}, + {c: '-', a:0, lig: {'45': 123}, tclass: 'bold'}, + {c: '.', a:-.25, tclass: 'bold'}, + {c: '/', tclass: 'bold'}, + // 30 - 3F + {c: '0', tclass: 'bold'}, + {c: '1', tclass: 'bold'}, + {c: '2', tclass: 'bold'}, + {c: '3', tclass: 'bold'}, + {c: '4', tclass: 'bold'}, + {c: '5', tclass: 'bold'}, + {c: '6', tclass: 'bold'}, + {c: '7', tclass: 'bold'}, + {c: '8', tclass: 'bold'}, + {c: '9', tclass: 'bold'}, + {c: ':', tclass: 'bold'}, + {c: ';', tclass: 'bold'}, + {c: '¡', tclass: 'bold'}, + {c: '=', a:0, d:-.1, tclass: 'bold'}, + {c: '¿', tclass: 'bold'}, + {c: '?', lig: {'96': 62}, tclass: 'bold'}, + // 40 - 4F + {c: '@', tclass: 'bold'}, + {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'B', tclass: 'bold'}, + {c: 'C', tclass: 'bold'}, + {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, + {c: 'E', tclass: 'bold'}, + {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'G', tclass: 'bold'}, + {c: 'H', tclass: 'bold'}, + {c: 'I', krn: {'73': 0.0278}, tclass: 'bold'}, + {c: 'J', tclass: 'bold'}, + {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'M', tclass: 'bold'}, + {c: 'N', tclass: 'bold'}, + {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, + // 50 - 5F + {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, + {c: 'Q', d:.2, tclass: 'bold'}, + {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'S', tclass: 'bold'}, + {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, + {c: 'U', tclass: 'bold'}, + {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, + {c: 'Z', tclass: 'bold'}, + {c: '[', d:.1, tclass: 'bold'}, + {c: '“', tclass: 'bold'}, + {c: ']', d:.1, tclass: 'bold'}, + {c: 'ˆ', tclass: 'baccent'}, + {c: '˙', tclass: 'baccent'}, + // 60 - 6F + {c: '‘', lig: {'96': 92}, tclass: 'bold'}, + {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'bold'}, + {c: 'd', tclass: 'bold'}, + {c: 'e', a:0, tclass: 'bold'}, + {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'bold'}, + {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'bold'}, + {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'i', tclass: 'bold'}, + {c: 'j', d:.2, tclass: 'bold'}, + {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'l', tclass: 'bold'}, + {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'q', a:0, d:.2, tclass: 'bold'}, + {c: 'r', a:0, tclass: 'bold'}, + {c: 's', a:0, tclass: 'bold'}, + {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'bold'}, + {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'x', a:0, tclass: 'bold'}, + {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, + {c: 'z', a:0, tclass: 'bold'}, + {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'bold'}, + {c: '—', a:.1, ic: 0.0278, tclass: 'bold'}, + {c: '˝', tclass: 'baccent'}, + {c: '˜', tclass: 'baccent'}, + {c: '¨', tclass: 'baccent'} + ] +}); + + +jsMath.Setup.Styles({ + '.typeset .cmr10': "font-family: serif", + '.typeset .italic': "font-style: italic", + '.typeset .bold': "font-weight: bold", + '.typeset .lucida': "font-family: 'lucida sans unicode'", + '.typeset .arial': "font-family: 'Arial unicode MS'", + '.typeset .cal': "font-family: 'Script MT', 'Script MT Bold', cursive", + '.typeset .arrows': "font-family: 'Arial unicode MS'", + '.typeset .arrow1': "font-family: 'Arial unicode MS'", + '.typeset .arrow1a': "font-family: 'Arial unicode MS'; position:relative; top:.05em;left:-.15em; margin-right:-.15em; display:inline-block", + '.typeset .arrow2': "font-family: 'Arial unicode MS'; position:relative; top:-.1em; display:inline-block;", + '.typeset .arrow3': "font-family: 'Arial unicode MS'; margin:.1em", + '.typeset .symbol': "font-family: 'Arial unicode MS'", + '.typeset .symbol2': "font-family: 'Arial unicode MS'", + '.typeset .delim1': "font-family: 'Times New Roman'; font-size: 133%; position:relative; top:.7em; display:inline-block", + '.typeset .delim1a': "font-family: 'Lucida sans unicode'; font-size: 133%; position:relative; top:.8em; display:inline-block", + '.typeset .delim1b': "font-family: 'Arial unicode MS'; font-size: 133%; position:relative; top:.7em; display:inline-block", + '.typeset .delim2': "font-family: 'Times New Roman'; font-size: 180%; position:relative; top:.75em; display:inline-block", + '.typeset .delim2a': "font-family: 'Lucida sans unicode'; font-size: 180%; position:relative; top:.8em; display:inline-block", + '.typeset .delim2b': "font-family: 'Arial unicode MS'; font-size: 180%; position:relative; top:.7em; display:inline-block", + '.typeset .delim3': "font-family: 'Times New Roman'; font-size: 250%; position:relative; top:.725em; display:inline-block", + '.typeset .delim3a': "font-family: 'Lucida sans unicode'; font-size: 250%; position:relative; top:.775em; display:inline-block", + '.typeset .delim3b': "font-family: 'Arial unicode MS'; font-size: 250%; position:relative; top:.7em; display:inline-block", + '.typeset .delim4': "font-family: 'Times New Roman'; font-size: 325%; position:relative; top:.7em; display:inline-block", + '.typeset .delim4a': "font-family: 'Lucida sans unicode'; font-size: 325%; position:relative; top:.775em; display:inline-block", + '.typeset .delim4b': "font-family: 'Arial unicode MS'; font-size: 325%; position:relative; top:.7em; display:inline-block", + '.typeset .delimx': "font-family: Symbol", + '.typeset .greek': "font-family: 'Times New Roman'", + '.typeset .igreek': "font-family: 'Times New Roman'; font-style:italic", + '.typeset .bgreek': "font-family: 'Times New Roman'; font-weight:bold", + '.typeset .bigop1': "font-family: 'Arial unicode MS'; font-size: 130%; position: relative; top: .7em; margin:-.05em; display:inline-block", + '.typeset .bigop1a': "font-family: 'Arial unicode MS'; font-size: 110%; position: relative; top: .85em; display:inline-block;", + '.typeset .bigop1b': "font-family: 'Arial unicode MS'; font-size: 180%; position: relative; top: .6em; display:inline-block", + '.typeset .bigop1c': "font-family: 'Arial unicode MS'; font-size: 85%; position: relative; top: 1em; display:inline-block", + '.typeset .bigop2': "font-family: 'Arial unicode MS'; font-size: 230%; position: relative; top: .6em; margin:-.05em; display:inline-block", + '.typeset .bigop2a': "font-family: 'Arial unicode MS'; font-size: 185%; position: relative; top: .75em; display:inline-block", + '.typeset .bigop2b': "font-family: 'Arial unicode MS'; font-size: 275%; position: relative; top: .55em; display:inline-block", + '.typeset .bigop2c': "font-family: 'Arial unicode MS'; font-size: 185%; position: relative; top: 1em; margin-right:-.1em; display:inline-block", + '.typeset .wide1': "font-family: 'Arial unicode MS'; font-size: 67%; position: relative; top:-.75em; display:inline-block;", + '.typeset .wide2': "font-family: 'Arial unicode MS'; font-size: 110%; position: relative; top:-.4em; display:inline-block;", + '.typeset .wide3': "font-family: 'Arial unicode MS'; font-size: 175%; position: relative; top:-.25em; display:inline-block", + '.typeset .wide1a': "font-family: 'Times New Roman'; font-size: 75%; position: relative; top:-.5em; display:inline-block", + '.typeset .wide2a': "font-family: 'Times New Roman'; font-size: 133%; position: relative; top:-.2em; display:inline-block", + '.typeset .wide3a': "font-family: 'Times New Roman'; font-size: 200%; position: relative; top:-.1em; display:inline-block", + '.typeset .root': "font-family: 'Arial unicode MS'; margin-right:-.075em; display:inline-block", + '.typeset .accent': "font-family: 'Arial unicode MS'; position:relative; top:.05em; left:.15em; display:inline-block", + '.typeset .iaccent': "font-family: 'Arial unicode MS'; position:relative; top:.05em; left:.15em; font-style:italic; display:inline-block", + '.typeset .baccent': "font-family: 'Arial unicode MS'; position:relative; top:.05em; left:.15em; font-weight:bold; display:inline-block" +}); + +// +// adjust for Mozilla +// +if (jsMath.browser == 'Mozilla') { + jsMath.Update.TeXfonts({ + cmex10: { + '48': {c: ''}, + '49': {c: ''}, + '50': {c: ''}, + '51': {c: ''}, + '52': {c: ''}, + '53': {c: ''}, + '54': {c: ''}, + '55': {c: ''}, + '56': {c: ''}, + '57': {c: ''}, + '58': {c: ''}, + '59': {c: ''}, + '60': {c: ''}, + '61': {c: ''}, + '62': {c: ''}, + '64': {c: ''}, + '65': {c: ''}, + '66': {c: ''}, + '67': {c: ''} + } + }); + jsMath.Setup.Styles({ + '.typeset .accent': 'font-family: Arial unicode MS; position:relative; top:.05em; left:.05em' + }); +} + +// +// adjust for MSIE +// +if (jsMath.browser == "MSIE") { + jsMath.Browser.msieFontBug = 1; +} + +/* + * No access to TeX "not" character, so fake this + * Also ajust the bowtie spacing + */ +jsMath.Macro('not','\\mathrel{\\rlap{\\kern 3mu/}}'); +jsMath.Macro('bowtie','\\mathrel\\triangleright\\kern-6mu\\mathrel\\triangleleft'); + +jsMath.Box.defaultH = 0.8; diff --git a/jsMath/uncompressed/jsMath-fallback-symbols.js b/jsMath/uncompressed/jsMath-fallback-symbols.js new file mode 100644 index 00000000..05e56e65 --- /dev/null +++ b/jsMath/uncompressed/jsMath-fallback-symbols.js @@ -0,0 +1,415 @@ +/* + * jsMath-fallback-symbols.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed to use image fonts for symbols + * but standard native fonts for letters and numbers. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +jsMath.Add(jsMath.Img,{ + UpdateTeXFonts: function (change) { + for (var font in change) { + for (var code in change[font]) { + jsMath.TeX[font][code] = change[font][code]; + jsMath.TeX[font][code].tclass = 'i' + font; + } + } + } +}); + + +jsMath.Img.UpdateTeXFonts({ + cmr10: { + '33': {c: '!', lig: {'96': 60}}, + '35': {c: '#'}, + '36': {c: '$'}, + '37': {c: '%'}, + '38': {c: '&'}, + '40': {c: '(', d:.2}, + '41': {c: ')', d:.2}, + '42': {c: '*', d:-.3}, + '43': {c: '+', a:.1}, + '44': {c: ',', a:-.3}, + '45': {c: '-', a:0, lig: {'45': 123}}, + '46': {c: '.', a:-.25}, + '47': {c: '/'}, + '48': {c: '0'}, + '49': {c: '1'}, + '50': {c: '2'}, + '51': {c: '3'}, + '52': {c: '4'}, + '53': {c: '5'}, + '54': {c: '6'}, + '55': {c: '7'}, + '56': {c: '8'}, + '57': {c: '9'}, + '58': {c: ':'}, + '59': {c: ';'}, + '61': {c: '=', a:0, d:-.1}, + '63': {c: '?', lig: {'96': 62}}, + '64': {c: '@'}, + '65': {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, + '66': {c: 'B'}, + '67': {c: 'C'}, + '68': {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, + '69': {c: 'E'}, + '70': {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '71': {c: 'G'}, + '72': {c: 'H'}, + '73': {c: 'I', krn: {'73': 0.0278}}, + '74': {c: 'J'}, + '75': {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '76': {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, + '77': {c: 'M'}, + '78': {c: 'N'}, + '79': {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, + '80': {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, + '81': {c: 'Q', d: 1}, + '82': {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, + '83': {c: 'S'}, + '84': {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, + '85': {c: 'U'}, + '86': {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '87': {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '88': {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '89': {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, + '90': {c: 'Z'}, + '91': {c: '[', d:.1}, + '93': {c: ']', d:.1}, + '97': {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '98': {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '99': {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}}, + '100': {c: 'd'}, + '101': {c: 'e', a:0}, + '102': {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}}, + '103': {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}}, + '104': {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, + '105': {c: 'i'}, + '106': {c: 'j', d:1}, + '107': {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, + '108': {c: 'l'}, + '109': {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, + '110': {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, + '111': {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '112': {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '113': {c: 'q', a:0, d:1}, + '114': {c: 'r', a:0}, + '115': {c: 's', a:0}, + '116': {c: 't', krn: {'121': -0.0278, '119': -0.0278}}, + '117': {c: 'u', a:0, krn: {'119': -0.0278}}, + '118': {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, + '119': {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, + '120': {c: 'x', a:0}, + '121': {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, + '122': {c: 'z', a:0} + }, + cmmi10: { + '65': {c: 'A', krn: {'127': 0.139}}, + '66': {c: 'B', ic: 0.0502, krn: {'127': 0.0833}}, + '67': {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, + '68': {c: 'D', ic: 0.0278, krn: {'127': 0.0556}}, + '69': {c: 'E', ic: 0.0576, krn: {'127': 0.0833}}, + '70': {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}, + '71': {c: 'G', krn: {'127': 0.0833}}, + '72': {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}, + '73': {c: 'I', ic: 0.0785, krn: {'127': 0.111}}, + '74': {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}}, + '75': {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}, + '76': {c: 'L', krn: {'127': 0.0278}}, + '77': {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, + '78': {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, + '79': {c: 'O', ic: 0.0278, krn: {'127': 0.0833}}, + '80': {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}, + '81': {c: 'Q', d:.2, krn: {'127': 0.0833}}, + '82': {c: 'R', ic: 0.00773, krn: {'127': 0.0833}}, + '83': {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, + '84': {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, + '85': {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}}, + '86': {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}, + '87': {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}, + '88': {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, + '89': {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}, + '90': {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, + '97': {c: 'a', a:0}, + '98': {c: 'b'}, + '99': {c: 'c', a:0, krn: {'127': 0.0556}}, + '100': {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}}, + '101': {c: 'e', a:0, krn: {'127': 0.0556}}, + '102': {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}}, + '103': {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}}, + '104': {c: 'h', krn: {'127': -0.0278}}, + '105': {c: 'i'}, + '106': {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}}, + '107': {c: 'k', ic: 0.0315}, + '108': {c: 'l', ic: 0.0197, krn: {'127': 0.0833}}, + '109': {c: 'm', a:0}, + '110': {c: 'n', a:0}, + '111': {c: 'o', a:0, krn: {'127': 0.0556}}, + '112': {c: 'p', a:0, d:.2, krn: {'127': 0.0833}}, + '113': {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}}, + '114': {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}}, + '115': {c: 's', a:0, krn: {'127': 0.0556}}, + '116': {c: 't', krn: {'127': 0.0833}}, + '117': {c: 'u', a:0, krn: {'127': 0.0278}}, + '118': {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}}, + '119': {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}}, + '120': {c: 'x', a:0, krn: {'127': 0.0278}}, + '121': {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}}, + '122': {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}} + }, + cmsy10: { + '0': {c:'−', a:.1} + }, + cmti10: { + '33': {c: '!', lig: {'96': 60}}, + '35': {c: '#', ic: 0.0662}, + '37': {c: '%', ic: 0.136}, + '38': {c: '&', ic: 0.0969}, + '40': {c: '(', d:.2, ic: 0.162}, + '41': {c: ')', d:.2, ic: 0.0369}, + '42': {c: '*', ic: 0.149}, + '43': {c: '+', a:.1, ic: 0.0369}, + '44': {c: ',', a:-.3, d:.2, w: 0.278}, + '45': {c: '-', a:0, ic: 0.0283, lig: {'45': 123}}, + '46': {c: '.', a:-.25}, + '47': {c: '/', ic: 0.162}, + '48': {c: '0', ic: 0.136}, + '49': {c: '1', ic: 0.136}, + '50': {c: '2', ic: 0.136}, + '51': {c: '3', ic: 0.136}, + '52': {c: '4', ic: 0.136}, + '53': {c: '5', ic: 0.136}, + '54': {c: '6', ic: 0.136}, + '55': {c: '7', ic: 0.136}, + '56': {c: '8', ic: 0.136}, + '57': {c: '9', ic: 0.136}, + '58': {c: ':', ic: 0.0582}, + '59': {c: ';', ic: 0.0582}, + '61': {c: '=', a:0, d:-.1, ic: 0.0662}, + '63': {c: '?', ic: 0.122, lig: {'96': 62}}, + '64': {c: '@', ic: 0.096}, + '65': {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '66': {c: 'B', ic: 0.103}, + '67': {c: 'C', ic: 0.145}, + '68': {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}, + '69': {c: 'E', ic: 0.12}, + '70': {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, + '71': {c: 'G', ic: 0.0872}, + '72': {c: 'H', ic: 0.164}, + '73': {c: 'I', ic: 0.158}, + '74': {c: 'J', ic: 0.14}, + '75': {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, + '76': {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '77': {c: 'M', ic: 0.164}, + '78': {c: 'N', ic: 0.164}, + '79': {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}, + '80': {c: 'P', ic: 0.103, krn: {'65': -0.0767}}, + '81': {c: 'Q', d:.2, ic: 0.094}, + '82': {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '83': {c: 'S', ic: 0.12}, + '84': {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}, + '85': {c: 'U', ic: 0.164}, + '86': {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, + '87': {c: 'W', ic: 0.184, krn: {'65': -0.0767}}, + '88': {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, + '89': {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}, + '90': {c: 'Z', ic: 0.145}, + '91': {c: '[', d:.1, ic: 0.188}, + '93': {c: ']', d:.1, ic: 0.105}, + '97': {c: 'a', a:0, ic: 0.0767}, + '98': {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '99': {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '100': {c: 'd', ic: 0.103, krn: {'108': 0.0511}}, + '101': {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '102': {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}}, + '103': {c: 'g', a:0, d:.2, ic: 0.0885}, + '104': {c: 'h', ic: 0.0767}, + '105': {c: 'i', ic: 0.102}, + '106': {c: 'j', d:.2, ic: 0.145}, + '107': {c: 'k', ic: 0.108}, + '108': {c: 'l', ic: 0.103, krn: {'108': 0.0511}}, + '109': {c: 'm', a:0, ic: 0.0767}, + '110': {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}}, + '111': {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '112': {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '113': {c: 'q', a:0, d:.2, ic: 0.0885}, + '114': {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, + '115': {c: 's', a:0, ic: 0.0821}, + '116': {c: 't', ic: 0.0949}, + '117': {c: 'u', a:0, ic: 0.0767}, + '118': {c: 'v', a:0, ic: 0.108}, + '119': {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}}, + '120': {c: 'x', a:0, ic: 0.12}, + '121': {c: 'y', a:0, d:.2, ic: 0.0885}, + '122': {c: 'z', a:0, ic: 0.123} + }, + cmbx10: { + '33': {c: '!', lig: {'96': 60}}, + '35': {c: '#'}, + '36': {c: '$'}, + '37': {c: '%'}, + '38': {c: '&'}, + '40': {c: '(', d:.2}, + '41': {c: ')', d:.2}, + '42': {c: '*'}, + '43': {c: '+', a:.1}, + '44': {c: ',', a:-.3, d:.2, w: 0.278}, + '45': {c: '-', a:0, lig: {'45': 123}}, + '46': {c: '.', a:-.25}, + '47': {c: '/'}, + '48': {c: '0'}, + '49': {c: '1'}, + '50': {c: '2'}, + '51': {c: '3'}, + '52': {c: '4'}, + '53': {c: '5'}, + '54': {c: '6'}, + '55': {c: '7'}, + '56': {c: '8'}, + '57': {c: '9'}, + '58': {c: ':'}, + '59': {c: ';'}, + '61': {c: '=', a:0, d:-.1}, + '63': {c: '?', lig: {'96': 62}}, + '64': {c: '@'}, + '65': {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, + '66': {c: 'B'}, + '67': {c: 'C'}, + '68': {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, + '69': {c: 'E'}, + '70': {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '71': {c: 'G'}, + '72': {c: 'H'}, + '73': {c: 'I', krn: {'73': 0.0278}}, + '74': {c: 'J'}, + '75': {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '76': {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, + '77': {c: 'M'}, + '78': {c: 'N'}, + '79': {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, + '80': {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, + '81': {c: 'Q', d: 1}, + '82': {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, + '83': {c: 'S'}, + '84': {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, + '85': {c: 'U'}, + '86': {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '87': {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '88': {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, + '89': {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, + '90': {c: 'Z'}, + '91': {c: '[', d:.1}, + '93': {c: ']', d:.1}, + '97': {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '98': {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '99': {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}}, + '100': {c: 'd'}, + '101': {c: 'e', a:0}, + '102': {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}}, + '103': {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}}, + '104': {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, + '105': {c: 'i'}, + '106': {c: 'j', d:1}, + '107': {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, + '108': {c: 'l'}, + '109': {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, + '110': {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, + '111': {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '112': {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, + '113': {c: 'q', a:0, d:1}, + '114': {c: 'r', a:0}, + '115': {c: 's', a:0}, + '116': {c: 't', krn: {'121': -0.0278, '119': -0.0278}}, + '117': {c: 'u', a:0, krn: {'119': -0.0278}}, + '118': {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, + '119': {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, + '120': {c: 'x', a:0}, + '121': {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, + '122': {c: 'z', a:0} + } +}); + + +if (jsMath.browser == 'MSIE' && jsMath.platform == 'mac') { + jsMath.Setup.Styles({ + '.typeset .math': 'font-style: normal', + '.typeset .typeset': 'font-style: normal', + '.typeset .icmr10': 'font-family: Times', + '.typeset .icmmi10': 'font-family: Times; font-style: italic', + '.typeset .icmbx10': 'font-family: Times; font-weight: bold', + '.typeset .icmti10': 'font-family: Times; font-style: italic' + }); +} else { + jsMath.Setup.Styles({ + '.typeset .math': 'font-style: normal', + '.typeset .typeset': 'font-style: normal', + '.typeset .icmr10': 'font-family: serif', + '.typeset .icmmi10': 'font-family: serif; font-style: italic', + '.typeset .icmbx10': 'font-family: serif; font-weight: bold', + '.typeset .icmti10': 'font-family: serif; font-style: italic' + }); +} + + +jsMath.Add(jsMath.Img,{ + symbols: [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 34, 39, + 60, 62, + + 92, 94, 95, + 96, + 123,124,125,126,127 + ] +}); + +/* + * for now, use images for everything + */ +jsMath.Img.SetFont({ + cmr10: jsMath.Img.symbols, + cmmi10: [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, + 91, 92, 93, 94, 95, + 96, + 123,124,125,126,127 + ], + cmsy10: [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103, 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127 + ], + cmex10: ['all'], + cmti10: jsMath.Img.symbols.concat(36), + cmbx10: jsMath.Img.symbols +}); + +jsMath.Img.LoadFont('cm-fonts'); + diff --git a/jsMath/uncompressed/jsMath-fallback-unix.js b/jsMath/uncompressed/jsMath-fallback-unix.js new file mode 100644 index 00000000..63e7856a --- /dev/null +++ b/jsMath/uncompressed/jsMath-fallback-unix.js @@ -0,0 +1,935 @@ +/* + * jsMath-fallback-mac.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes changes needed for when the TeX fonts are not available + * with a browser on the Mac. + * + * --------------------------------------------------------------------- + * + * Copyright 2004-2006 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +/******************************************************************** + * + * Here we replace the TeX character mappings by equivalent unicode + * points when possible, and adjust the character dimensions + * based on the fonts we hope we get them from (the styles are set + * to try to use the best characters available in the standard + * fonts). + */ + +jsMath.Add(jsMath.TeX,{ + + cmr10: [ + // 00 - 0F + {c: 'Γ', tclass: 'greek'}, + {c: 'Δ', tclass: 'greek'}, + {c: 'Θ', tclass: 'greek'}, + {c: 'Λ', tclass: 'greek'}, + {c: 'Ξ', tclass: 'greek'}, + {c: 'Π', tclass: 'greek'}, + {c: 'Σ', tclass: 'greek'}, + {c: 'Υ', tclass: 'greek'}, + {c: 'Φ', tclass: 'greek'}, + {c: 'Ψ', tclass: 'greek'}, + {c: 'Ω', tclass: 'greek'}, + {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'normal'}, + {c: 'fi', tclass: 'normal'}, + {c: 'fl', tclass: 'normal'}, + {c: 'ffi', tclass: 'normal'}, + {c: 'ffl', tclass: 'normal'}, + // 10 - 1F + {c: 'ı', a:0, tclass: 'normal'}, + {c: 'j', d:.2, tclass: 'normal'}, + {c: '`', tclass: 'accent'}, + {c: '´', tclass: 'accent'}, + {c: 'ˇ', tclass: 'accent'}, + {c: '˘', tclass: 'accent'}, + {c: 'ˉ', tclass: 'accent'}, + {c: '˚', tclass: 'accent'}, + {c: '̧', tclass: 'normal'}, + {c: 'ß', tclass: 'normal'}, + {c: 'æ', a:0, tclass: 'normal'}, + {c: 'œ', a:0, tclass: 'normal'}, + {c: 'ø', tclass: 'normal'}, + {c: 'Æ', tclass: 'normal'}, + {c: 'Œ', tclass: 'normal'}, + {c: 'Ø', tclass: 'normal'}, + // 20 - 2F + {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'normal'}, + {c: '!', lig: {'96': 60}, tclass: 'normal'}, + {c: '”', tclass: 'normal'}, + {c: '#', tclass: 'normal'}, + {c: '$', tclass: 'normal'}, + {c: '%', tclass: 'normal'}, + {c: '&', tclass: 'normal'}, + {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'normal'}, + {c: '(', d:.2, tclass: 'normal'}, + {c: ')', d:.2, tclass: 'normal'}, + {c: '*', tclass: 'normal'}, + {c: '+', a:.1, tclass: 'normal'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'normal'}, + {c: '-', a:0, lig: {'45': 123}, tclass: 'normal'}, + {c: '.', a:-.25, tclass: 'normal'}, + {c: '/', tclass: 'normal'}, + // 30 - 3F + {c: '0', tclass: 'normal'}, + {c: '1', tclass: 'normal'}, + {c: '2', tclass: 'normal'}, + {c: '3', tclass: 'normal'}, + {c: '4', tclass: 'normal'}, + {c: '5', tclass: 'normal'}, + {c: '6', tclass: 'normal'}, + {c: '7', tclass: 'normal'}, + {c: '8', tclass: 'normal'}, + {c: '9', tclass: 'normal'}, + {c: ':', tclass: 'normal'}, + {c: ';', tclass: 'normal'}, + {c: '¡', tclass: 'normal'}, + {c: '=', a:0, d:-.1, tclass: 'normal'}, + {c: '¿', tclass: 'normal'}, + {c: '?', lig: {'96': 62}, tclass: 'normal'}, + // 40 - 4F + {c: '@', tclass: 'normal'}, + {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'B', tclass: 'normal'}, + {c: 'C', tclass: 'normal'}, + {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, + {c: 'E', tclass: 'normal'}, + {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'G', tclass: 'normal'}, + {c: 'H', tclass: 'normal'}, + {c: 'I', krn: {'73': 0.0278}, tclass: 'normal'}, + {c: 'J', tclass: 'normal'}, + {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'M', tclass: 'normal'}, + {c: 'N', tclass: 'normal'}, + {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, + // 50 - 5F + {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, + {c: 'Q', d: 1, tclass: 'normal'}, + {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, + {c: 'S', tclass: 'normal'}, + {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, + {c: 'U', tclass: 'normal'}, + {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, + {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, + {c: 'Z', tclass: 'normal'}, + {c: '[', d:.1, tclass: 'normal'}, + {c: '“', tclass: 'normal'}, + {c: ']', d:.1, tclass: 'normal'}, + {c: 'ˆ', tclass: 'accent'}, + {c: '˙', tclass: 'accent'}, + // 60 - 6F + {c: '‘', lig: {'96': 92}, tclass: 'normal'}, + {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'normal'}, + {c: 'd', tclass: 'normal'}, + {c: 'e', a:0, tclass: 'normal'}, + {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'normal'}, + {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'normal'}, + {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'i', tclass: 'normal'}, + {c: 'j', d:.2, tclass: 'normal'}, + {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'l', tclass: 'normal'}, + {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'q', a:0, d:.2, tclass: 'normal'}, + {c: 'r', a:0, tclass: 'normal'}, + {c: 's', a:0, tclass: 'normal'}, + {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'normal'}, + {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'normal'}, + {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, + {c: 'x', a:0, tclass: 'normal'}, + {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, + {c: 'z', a:0, tclass: 'normal'}, + {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'normal'}, + {c: '—', a:.1, ic: 0.0278, tclass: 'normal'}, + {c: '˝', tclass: 'accent'}, + {c: '˜', tclass: 'accent'}, + {c: '¨', tclass: 'accent'} + ], + + cmmi10: [ + // 00 - 0F + {c: 'Γ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'igreek'}, + {c: 'Δ', krn: {'127': 0.167}, tclass: 'igreek'}, + {c: 'Θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Λ', krn: {'127': 0.167}, tclass: 'igreek'}, + {c: 'Ξ', ic: 0.0757, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Π', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Σ', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Υ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Φ', krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'Ψ', ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, + {c: 'Ω', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'igreek'}, + {c: 'α', a:0, ic: 0.0037, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'β', d:.2, ic: 0.0528, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'γ', a:0, d:.2, ic: 0.0556, tclass: 'greek'}, + {c: 'δ', ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'greek'}, + {c: 'ε', a:0, krn: {'127': 0.0556}, tclass: 'symbol'}, + // 10 - 1F + {c: 'ζ', d:.2, ic: 0.0738, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'η', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'greek'}, + {c: 'θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ι', a:0, krn: {'127': 0.0556}, tclass: 'greek'}, + {c: 'κ', a:0, tclass: 'greek'}, + {c: 'λ', tclass: 'greek'}, + {c: 'μ', a:0, d:.2, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'ν', a:0, ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, + {c: 'ξ', d:.2, ic: 0.046, krn: {'127': 0.111}, tclass: 'greek'}, + {c: 'π', a:0, ic: 0.0359, tclass: 'greek'}, + {c: 'ρ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'σ', a:0, ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'greek'}, + {c: 'τ', a:0, ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, + {c: 'υ', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'greek'}, + {c: 'φ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'χ', a:0, d:.2, krn: {'127': 0.0556}, tclass: 'greek'}, + // 20 - 2F + {c: 'ψ', a:.1, d:.2, ic: 0.0359, krn: {'127': 0.111}, tclass: 'greek'}, + {c: 'ω', a:0, ic: 0.0359, tclass: 'greek'}, + {c: 'ε', a:0, krn: {'127': 0.0833}, tclass: 'greek'}, + {c: 'ϑ', krn: {'127': 0.0833}, tclass: 'normal'}, + {c: 'ϖ', a:0, ic: 0.0278, tclass: 'normal'}, + {c: 'ϱ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'normal'}, + {c: 'ς', a:0, d:.2, ic: 0.0799, krn: {'127': 0.0833}, tclass: 'normal'}, + {c: 'ϕ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'normal'}, + {c: '↼', a:0, d:-.2, tclass: 'harpoon'}, + {c: '↽', a:0, d:-.1, tclass: 'harpoon'}, + {c: '⇀', a:0, d:-.2, tclass: 'harpoon'}, + {c: '⇁', a:0, d:-.1, tclass: 'harpoon'}, + {c: '˓', a:.1, tclass: 'symbol'}, + {c: '˒', a:.1, tclass: 'symbol'}, + {c: '', tclass: 'symbol'}, + {c: '', tclass: 'symbol'}, + // 30 - 3F + {c: '0', tclass: 'normal'}, + {c: '1', tclass: 'normal'}, + {c: '2', tclass: 'normal'}, + {c: '3', tclass: 'normal'}, + {c: '4', tclass: 'normal'}, + {c: '5', tclass: 'normal'}, + {c: '6', tclass: 'normal'}, + {c: '7', tclass: 'normal'}, + {c: '8', tclass: 'normal'}, + {c: '9', tclass: 'normal'}, + {c: '.', a:-.3, tclass: 'normal'}, + {c: ',', a:-.3, d:.2, tclass: 'normal'}, + {c: '<', a:.1, tclass: 'normal'}, + {c: '/', krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}, tclass: 'normal'}, + {c: '>', a:.1, tclass: 'normal'}, + {c: '', a:0, tclass: 'symbol'}, + // 40 - 4F + {c: '∂', ic: 0.0556, krn: {'127': 0.0833}, tclass: 'normal'}, + {c: 'A', krn: {'127': 0.139}, tclass: 'italic'}, + {c: 'B', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'D', ic: 0.0278, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'E', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, + {c: 'G', krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 'I', ic: 0.0785, krn: {'127': 0.111}, tclass: 'italic'}, + {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}, tclass: 'italic'}, + {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 'L', krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'O', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'italic'}, + // 50 - 5F + {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, + {c: 'Q', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'R', ic: 0.00773, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}, tclass: 'italic'}, + {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, + {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, + {c: '♭', tclass: 'symbol2'}, + {c: '♮', tclass: 'symbol2'}, + {c: '♯', tclass: 'symbol2'}, + {c: '⌣', a:0, d:-.1, tclass: 'normal'}, + {c: '⌢', a:0, d:-.1, tclass: 'normal'}, + // 60 - 6F + {c: 'ℓ', krn: {'127': 0.111}, tclass: 'symbol'}, + {c: 'a', a:0, tclass: 'italic'}, + {c: 'b', tclass: 'italic'}, + {c: 'c', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}, tclass: 'italic'}, + {c: 'e', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}, tclass: 'italic'}, + {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'h', krn: {'127': -0.0278}, tclass: 'italic'}, + {c: 'i', tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'italic'}, + {c: 'k', ic: 0.0315, tclass: 'italic'}, + {c: 'l', ic: 0.0197, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'm', a:0, tclass: 'italic'}, + {c: 'n', a:0, tclass: 'italic'}, + {c: 'o', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, + {c: 's', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 't', krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'u', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: 'x', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}, tclass: 'italic'}, + {c: 'ı', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, + {c: 'j', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, + {c: '℘', a:0, d:.2, krn: {'127': 0.111}, tclass: 'normal'}, + {c: '', ic: 0.154, tclass: 'symbol'}, + {c: '̑', ic: 0.399, tclass: 'normal'} + ], + + cmsy10: [ + // 00 - 0F + {c: '−', a:.1, tclass: 'symbol'}, + {c: '·', a:0, d:-.2, tclass: 'symbol'}, + {c: '×', a:0, tclass: 'symbol'}, + {c: '*', a:0, tclass: 'symbol'}, + {c: '÷', a:0, tclass: 'symbol'}, + {c: '◊', tclass: 'symbol'}, + {c: '±', a:.1, tclass: 'symbol'}, + {c: '∓', tclass: 'symbol'}, + {c: '⊕', tclass: 'symbol'}, + {c: '⊖', tclass: 'symbol'}, + {c: '⊗', tclass: 'symbol'}, + {c: '⊘', tclass: 'symbol'}, + {c: '⊙', tclass: 'symbol'}, + {c: '◯', tclass: 'symbol'}, + {c: '°', a:0, d:-.1, tclass: 'symbol'}, + {c: '•', a:0, d:-.2, tclass: 'symbol'}, + // 10 - 1F + {c: '≍', a:.1, tclass: 'symbol'}, + {c: '≡', a:.1, tclass: 'symbol'}, + {c: '⊆', tclass: 'symbol'}, + {c: '⊇', tclass: 'symbol'}, + {c: '≤', tclass: 'symbol'}, + {c: '≥', tclass: 'symbol'}, + {c: '≼', tclass: 'symbol'}, + {c: '≽', tclass: 'symbol'}, + {c: '~', a:0, d: -.2, tclass: 'normal'}, + {c: '≈', a:.1, d:-.1, tclass: 'symbol'}, + {c: '⊂', tclass: 'symbol'}, + {c: '⊃', tclass: 'symbol'}, + {c: '≪', tclass: 'symbol'}, + {c: '≫', tclass: 'symbol'}, + {c: '≺', tclass: 'symbol'}, + {c: '≻', tclass: 'symbol'}, + // 20 - 2F + {c: '←', a:0, d:-.15, tclass: 'arrows'}, + {c: '→', a:0, d:-.15, tclass: 'arrows'}, + {c: '↑', h:1, tclass: 'arrows'}, + {c: '↓', h:1, tclass: 'arrows'}, + {c: '↔', a:0, tclass: 'arrows'}, + {c: '↗', h:1, tclass: 'arrows'}, + {c: '↘', h:1, tclass: 'arrows'}, + {c: '≃', a: .1, tclass: 'symbol'}, + {c: '⇐', a:.1, tclass: 'arrows'}, + {c: '⇒', a:.1, tclass: 'arrows'}, + {c: '⇑', h:.9, d:.1, tclass: 'arrows'}, + {c: '⇓', h:.9, d:.1, tclass: 'arrows'}, + {c: '⇔', a:.1, tclass: 'arrows'}, + {c: '↖', h:1, tclass: 'arrows'}, + {c: '↙', h:1, tclass: 'arrows'}, + {c: '∝', a:.1, tclass: 'symbol'}, + // 30 - 3F + {c: '', a: 0, tclass: 'symbol'}, + {c: '∞', a:.1, tclass: 'symbol'}, + {c: '∈', tclass: 'symbol'}, + {c: '∋', tclass: 'symbol'}, + {c: '△', tclass: 'symbol'}, + {c: '▽', tclass: 'symbol'}, + {c: '/', tclass: 'symbol'}, + {c: '|', a:0, tclass: 'normal'}, + {c: '∀', tclass: 'symbol'}, + {c: '∃', tclass: 'symbol'}, + {c: '¬', a:0, d:-.1, tclass: 'symbol1'}, + {c: '∅', tclass: 'symbol'}, + {c: 'ℜ', tclass: 'symbol'}, + {c: 'ℑ', tclass: 'symbol'}, + {c: '⊤', tclass: 'symbol'}, + {c: '⊥', tclass: 'symbol'}, + // 40 - 4F + {c: 'ℵ', tclass: 'symbol'}, + {c: 'A', krn: {'48': 0.194}, tclass: 'cal'}, + {c: 'B', ic: 0.0304, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'C', ic: 0.0583, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'D', ic: 0.0278, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'E', ic: 0.0894, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'F', ic: 0.0993, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'G', d:.2, ic: 0.0593, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'H', ic: 0.00965, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'I', ic: 0.0738, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'J', d:.2, ic: 0.185, krn: {'48': 0.167}, tclass: 'cal'}, + {c: 'K', ic: 0.0144, krn: {'48': 0.0556}, tclass: 'cal'}, + {c: 'L', krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'M', krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'N', ic: 0.147, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'O', ic: 0.0278, krn: {'48': 0.111}, tclass: 'cal'}, + // 50 - 5F + {c: 'P', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'Q', d:.2, krn: {'48': 0.111}, tclass: 'cal'}, + {c: 'R', krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'S', ic: 0.075, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'T', ic: 0.254, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'U', ic: 0.0993, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'V', ic: 0.0822, krn: {'48': 0.0278}, tclass: 'cal'}, + {c: 'W', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'X', ic: 0.146, krn: {'48': 0.139}, tclass: 'cal'}, + {c: 'Y', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, + {c: 'Z', ic: 0.0794, krn: {'48': 0.139}, tclass: 'cal'}, + {c: '⋃', tclass: 'symbol'}, + {c: '⋂', tclass: 'symbol'}, + {c: '⊎', tclass: 'symbol'}, + {c: '⋀', tclass: 'symbol'}, + {c: '⋁', tclass: 'symbol'}, + // 60 - 6F + {c: '⊢', tclass: 'symbol'}, + {c: '⊣', tclass: 'symbol2'}, + {c: '', a:.3, d:.2, tclass: 'normal'}, + {c: '', a:.3, d:.2, tclass: 'normal'}, + {c: '', a:.3, d:.2, tclass: 'normal'}, + {c: '', a:.3, d:.2, tclass: 'normal'}, + {c: '{', d:.2, tclass: 'normal'}, + {c: '}', d:.2, tclass: 'normal'}, + {c: '〈', a:.3, d:.2, tclass: 'normal'}, + {c: '〉', a:.3, d:.2, tclass: 'normal'}, + {c: '|', d:.1, tclass: 'vertical'}, + {c: '||', d:0, tclass: 'vertical'}, + {c: '↕', h:1, d:.15, tclass: 'arrows'}, + {c: '⇕', a:.2, d:.1, tclass: 'arrows'}, + {c: '∖', a:.3, d:.1, tclass: 'normal'}, + {c: '≀', tclass: 'symbol'}, + // 70 - 7F + {c: '', h:.04, d:.9, tclass: 'normal'}, + {c: '∐', a:.4, tclass: 'symbol'}, + {c: '∇', tclass: 'symbol'}, + {c: '∫', h:1, d:.1, ic: 0.111, tclass: 'root'}, + {c: '⊔', tclass: 'symbol'}, + {c: '⊓', tclass: 'symbol'}, + {c: '⊑', tclass: 'symbol'}, + {c: '⊒', tclass: 'symbol'}, + {c: '§', d:.1, tclass: 'normal'}, + {c: '†', d:.1, tclass: 'normal'}, + {c: '‡', d:.1, tclass: 'normal'}, + {c: '¶', a:.3, d:.1, tclass: 'normal'}, + {c: '♣', tclass: 'symbol'}, + {c: '♦', tclass: 'symbol'}, + {c: '♥', tclass: 'symbol'}, + {c: '♠', tclass: 'symbol'} + ], + + cmex10: [ + // 00 - 0F + {c: '(', h: 0.04, d: 1.16, n: 16, tclass: 'delim1'}, + {c: ')', h: 0.04, d: 1.16, n: 17, tclass: 'delim1'}, + {c: '[', h: 0.04, d: 1.16, n: 104, tclass: 'delim1'}, + {c: ']', h: 0.04, d: 1.16, n: 105, tclass: 'delim1'}, + {c: '', h: 0.04, d: 1.16, n: 106, tclass: 'delim1'}, + {c: '', h: 0.04, d: 1.16, n: 107, tclass: 'delim1'}, + {c: '', h: 0.04, d: 1.16, n: 108, tclass: 'delim1'}, + {c: '', h: 0.04, d: 1.16, n: 109, tclass: 'delim1'}, + {c: '{', h: 0.04, d: 1.16, n: 110, tclass: 'delim1'}, + {c: '}', h: 0.04, d: 1.16, n: 111, tclass: 'delim1'}, + {c: '〈', h: 0.04, d: 1.16, n: 68, tclass: 'delim1c'}, + {c: '〉', h: 0.04, d: 1.16, n: 69, tclass: 'delim1c'}, + {c: '|', h:.7, d:0, delim: {rep: 12}, tclass: 'vertical'}, + {c: '||', h:.7, d:0, delim: {rep: 13}, tclass: 'vertical'}, + {c: '/', h: 0.04, d: 1.16, n: 46, tclass: 'delim1b'}, + {c: '∖', h: 0.04, d: 1.16, n: 47, tclass: 'delim1b'}, + // 10 - 1F + {c: '(', h: 0.04, d: 1.76, n: 18, tclass: 'delim2'}, + {c: ')', h: 0.04, d: 1.76, n: 19, tclass: 'delim2'}, + {c: '(', h: 0.04, d: 2.36, n: 32, tclass: 'delim3'}, + {c: ')', h: 0.04, d: 2.36, n: 33, tclass: 'delim3'}, + {c: '[', h: 0.04, d: 2.36, n: 34, tclass: 'delim3'}, + {c: ']', h: 0.04, d: 2.36, n: 35, tclass: 'delim3'}, + {c: '', h: 0.04, d: 2.36, n: 36, tclass: 'delim3'}, + {c: '', h: 0.04, d: 2.36, n: 37, tclass: 'delim3'}, + {c: '', h: 0.04, d: 2.36, n: 38, tclass: 'delim3'}, + {c: '', h: 0.04, d: 2.36, n: 39, tclass: 'delim3'}, + {c: '{', h: 0.04, d: 2.36, n: 40, tclass: 'delim3'}, + {c: '}', h: 0.04, d: 2.36, n: 41, tclass: 'delim3'}, + {c: '〈', h: 0.04, d: 2.36, n: 42, tclass: 'delim3c'}, + {c: '〉', h: 0.04, d: 2.36, n: 43, tclass: 'delim3c'}, + {c: '/', h: 0.04, d: 2.36, n: 44, tclass: 'delim3b'}, + {c: '∖', h: 0.04, d: 2.36, n: 45, tclass: 'delim3b'}, + // 20 - 2F + {c: '(', h: 0.04, d: 2.96, n: 48, tclass: 'delim4'}, + {c: ')', h: 0.04, d: 2.96, n: 49, tclass: 'delim4'}, + {c: '[', h: 0.04, d: 2.96, n: 50, tclass: 'delim4'}, + {c: ']', h: 0.04, d: 2.96, n: 51, tclass: 'delim4'}, + {c: '', h: 0.04, d: 2.96, n: 52, tclass: 'delim4'}, + {c: '', h: 0.04, d: 2.96, n: 53, tclass: 'delim4'}, + {c: '', h: 0.04, d: 2.96, n: 54, tclass: 'delim4'}, + {c: '', h: 0.04, d: 2.96, n: 55, tclass: 'delim4'}, + {c: '{', h: 0.04, d: 2.96, n: 56, tclass: 'delim4'}, + {c: '}', h: 0.04, d: 2.96, n: 57, tclass: 'delim4'}, + {c: '〈', h: 0.04, d: 2.96, tclass: 'delim4c'}, + {c: '〉', h: 0.04, d: 2.96, tclass: 'delim4c'}, + {c: '/', h: 0.04, d: 2.96, tclass: 'delim4b'}, + {c: '∖', h: 0.04, d: 2.96, tclass: 'delim4b'}, + {c: '/', h: 0.04, d: 1.76, n: 30, tclass: 'delim2b'}, + {c: '∖', h: 0.04, d: 1.76, n: 31, tclass: 'delim2b'}, + // 30 - 3F + {c: '', h: .8, d: .15, delim: {top: 48, bot: 64, rep: 66}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 49, bot: 65, rep: 67}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 50, bot: 52, rep: 54}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 51, bot: 53, rep: 55}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {bot: 52, rep: 54}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {bot: 53, rep: 55}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 50, rep: 54}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 51, rep: 55}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 56, mid: 60, bot: 58, rep: 62}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 57, mid: 61, bot: 59, rep: 62}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 56, bot: 58, rep: 62}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 57, bot: 59, rep: 62}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {rep: 63}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {rep: 119}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {rep: 62}, tclass: 'delim'}, + {c: '|', h: .65, d: 0, delim: {top: 120, bot: 121, rep: 63}, tclass: 'vertical'}, + // 40 - 4F + {c: '', h: .8, d: .15, delim: {top: 56, bot: 59, rep: 62}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {top: 57, bot: 58, rep: 62}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {rep: 66}, tclass: 'delim'}, + {c: '', h: .8, d: .15, delim: {rep: 67}, tclass: 'delim'}, + {c: '〈', h: 0.04, d: 1.76, n: 28, tclass: 'delim2c'}, + {c: '〉', h: 0.04, d: 1.76, n: 29, tclass: 'delim2c'}, + {c: '⊔', h: 0, d: 1, n: 71, tclass: 'bigop1'}, + {c: '⊔', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '∮', h: 0, d: 1.11, ic: 0.095, n: 73, tclass: 'bigop1c'}, + {c: '∮', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, + {c: '⊙', h: 0, d: 1, n: 75, tclass: 'bigop1'}, + {c: '⊙', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '⊕', h: 0, d: 1, n: 77, tclass: 'bigop1'}, + {c: '⊕', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '⊗', h: 0, d: 1, n: 79, tclass: 'bigop1'}, + {c: '⊗', h: 0.1, d: 1.5, tclass: 'bigop2'}, + // 50 - 5F + {c: '∑', h: 0, d: 1, n: 88, tclass: 'bigop1a'}, + {c: '∏', h: 0, d: 1, n: 89, tclass: 'bigop1a'}, + {c: '∫', h: 0, d: 1.11, ic: 0.095, n: 90, tclass: 'bigop1c'}, + {c: '∪', h: 0, d: 1, n: 91, tclass: 'bigop1b'}, + {c: '∩', h: 0, d: 1, n: 92, tclass: 'bigop1b'}, + {c: '⊎', h: 0, d: 1, n: 93, tclass: 'bigop1b'}, + {c: '∧', h: 0, d: 1, n: 94, tclass: 'bigop1'}, + {c: '∨', h: 0, d: 1, n: 95, tclass: 'bigop1'}, + {c: '∑', h: 0.1, d: 1.6, tclass: 'bigop2a'}, + {c: '∏', h: 0.1, d: 1.5, tclass: 'bigop2a'}, + {c: '∫', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, + {c: '∪', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '∩', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '⊎', h: 0.1, d: 1.5, tclass: 'bigop2b'}, + {c: '∧', h: 0.1, d: 1.5, tclass: 'bigop2'}, + {c: '∨', h: 0.1, d: 1.5, tclass: 'bigop2'}, + // 60 - 6F + {c: '∐', h: 0, d: 1, n: 97, tclass: 'bigop1a'}, + {c: '∐', h: 0.1, d: 1.5, tclass: 'bigop2a'}, + {c: '︿', h: 0.722, w: .65, n: 99, tclass: 'wide1'}, + {c: '︿', h: 0.85, w: 1.1, n: 100, tclass: 'wide2'}, + {c: '︿', h: 0.99, w: 1.65, tclass: 'wide3'}, + {c: '⁓', h: 0.722, w: .75, n: 102, tclass: 'wide1a'}, + {c: '⁓', h: 0.8, w: 1.35, n: 103, tclass: 'wide2a'}, + {c: '⁓', h: 0.99, w: 2, tclass: 'wide3a'}, + {c: '[', h: 0.04, d: 1.76, n: 20, tclass: 'delim2'}, + {c: ']', h: 0.04, d: 1.76, n: 21, tclass: 'delim2'}, + {c: '', h: 0.04, d: 1.76, n: 22, tclass: 'delim2'}, + {c: '', h: 0.04, d: 1.76, n: 23, tclass: 'delim2'}, + {c: '', h: 0.04, d: 1.76, n: 24, tclass: 'delim2'}, + {c: '', h: 0.04, d: 1.76, n: 25, tclass: 'delim2'}, + {c: '{', h: 0.04, d: 1.76, n: 26, tclass: 'delim2'}, + {c: '}', h: 0.04, d: 1.76, n: 27, tclass: 'delim2'}, + // 70 - 7F + {c: '', h: 0.04, d: 1.16, n: 113, tclass: 'root'}, + {c: '', h: 0.04, d: 1.76, n: 114, tclass: 'root'}, + {c: '', h: 0.06, d: 2.36, n: 115, tclass: 'root'}, + {c: '', h: 0.08, d: 2.96, n: 116, tclass: 'root'}, + {c: '', h: 0.1, d: 3.75, n: 117, tclass: 'root'}, + {c: '', h: .12, d: 4.5, n: 118, tclass: 'root'}, + {c: '', h: .14, d: 5.7, tclass: 'root'}, + {c: '||', h:.65, d:0, delim: {top: 126, bot: 127, rep: 119}, tclass: 'vertical'}, + {c: '▵', h:.45, delim: {top: 120, rep: 63}, tclass: 'arrow1'}, + {c: '▿', h:.45, delim: {bot: 121, rep: 63}, tclass: 'arrow1'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '', h:.1, tclass: 'symbol'}, + {c: '▵', h:.5, delim: {top: 126, rep: 119}, tclass: 'arrow2'}, + {c: '▿', h:.5, delim: {bot: 127, rep: 119}, tclass: 'arrow2'} + ], + + cmti10: [ + // 00 - 0F + {c: 'Γ', ic: 0.133, tclass: 'igreek'}, + {c: 'Δ', tclass: 'igreek'}, + {c: 'Θ', ic: 0.094, tclass: 'igreek'}, + {c: 'Λ', tclass: 'igreek'}, + {c: 'Ξ', ic: 0.153, tclass: 'igreek'}, + {c: 'Π', ic: 0.164, tclass: 'igreek'}, + {c: 'Σ', ic: 0.12, tclass: 'igreek'}, + {c: 'Υ', ic: 0.111, tclass: 'igreek'}, + {c: 'Φ', ic: 0.0599, tclass: 'igreek'}, + {c: 'Ψ', ic: 0.111, tclass: 'igreek'}, + {c: 'Ω', ic: 0.103, tclass: 'igreek'}, + {c: 'ff', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}, tclass: 'italic'}, + {c: 'fi', ic: 0.103, tclass: 'italic'}, + {c: 'fl', ic: 0.103, tclass: 'italic'}, + {c: 'ffi', ic: 0.103, tclass: 'italic'}, + {c: 'ffl', ic: 0.103, tclass: 'italic'}, + // 10 - 1F + {c: 'ı', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.0374, tclass: 'italic'}, + {c: '`', tclass: 'iaccent'}, + {c: '´', ic: 0.0969, tclass: 'iaccent'}, + {c: 'ˇ', ic: 0.083, tclass: 'iaccent'}, + {c: '˘', ic: 0.108, tclass: 'iaccent'}, + {c: 'ˉ', ic: 0.103, tclass: 'iaccent'}, + {c: '˚', tclass: 'iaccent'}, + {c: '?', d: 0.17, w: 0.46, tclass: 'italic'}, + {c: 'ß', ic: 0.105, tclass: 'italic'}, + {c: 'æ', a:0, ic: 0.0751, tclass: 'italic'}, + {c: 'œ', a:0, ic: 0.0751, tclass: 'italic'}, + {c: 'ø', ic: 0.0919, tclass: 'italic'}, + {c: 'Æ', ic: 0.12, tclass: 'italic'}, + {c: 'Œ', ic: 0.12, tclass: 'italic'}, + {c: 'Ø', ic: 0.094, tclass: 'italic'}, + // 20 - 2F + {c: '?', krn: {'108': -0.256, '76': -0.321}, tclass: 'italic'}, + {c: '!', ic: 0.124, lig: {'96': 60}, tclass: 'italic'}, + {c: '”', ic: 0.0696, tclass: 'italic'}, + {c: '#', ic: 0.0662, tclass: 'italic'}, + {c: '$', tclass: 'italic'}, + {c: '%', ic: 0.136, tclass: 'italic'}, + {c: '&', ic: 0.0969, tclass: 'italic'}, + {c: '’', ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}, tclass: 'italic'}, + {c: '(', d:.2, ic: 0.162, tclass: 'italic'}, + {c: ')', d:.2, ic: 0.0369, tclass: 'italic'}, + {c: '*', ic: 0.149, tclass: 'italic'}, + {c: '+', a:.1, ic: 0.0369, tclass: 'italic'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'italic'}, + {c: '-', a:0, ic: 0.0283, lig: {'45': 123}, tclass: 'italic'}, + {c: '.', a:-.25, tclass: 'italic'}, + {c: '/', ic: 0.162, tclass: 'italic'}, + // 30 - 3F + {c: '0', ic: 0.136, tclass: 'italic'}, + {c: '1', ic: 0.136, tclass: 'italic'}, + {c: '2', ic: 0.136, tclass: 'italic'}, + {c: '3', ic: 0.136, tclass: 'italic'}, + {c: '4', ic: 0.136, tclass: 'italic'}, + {c: '5', ic: 0.136, tclass: 'italic'}, + {c: '6', ic: 0.136, tclass: 'italic'}, + {c: '7', ic: 0.136, tclass: 'italic'}, + {c: '8', ic: 0.136, tclass: 'italic'}, + {c: '9', ic: 0.136, tclass: 'italic'}, + {c: ':', ic: 0.0582, tclass: 'italic'}, + {c: ';', ic: 0.0582, tclass: 'italic'}, + {c: '¡', ic: 0.0756, tclass: 'italic'}, + {c: '=', a:0, d:-.1, ic: 0.0662, tclass: 'italic'}, + {c: '¿', tclass: 'italic'}, + {c: '?', ic: 0.122, lig: {'96': 62}, tclass: 'italic'}, + // 40 - 4F + {c: '@', ic: 0.096, tclass: 'italic'}, + {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'B', ic: 0.103, tclass: 'italic'}, + {c: 'C', ic: 0.145, tclass: 'italic'}, + {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, + {c: 'E', ic: 0.12, tclass: 'italic'}, + {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'G', ic: 0.0872, tclass: 'italic'}, + {c: 'H', ic: 0.164, tclass: 'italic'}, + {c: 'I', ic: 0.158, tclass: 'italic'}, + {c: 'J', ic: 0.14, tclass: 'italic'}, + {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'M', ic: 0.164, tclass: 'italic'}, + {c: 'N', ic: 0.164, tclass: 'italic'}, + {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, + // 50 - 5F + {c: 'P', ic: 0.103, krn: {'65': -0.0767}, tclass: 'italic'}, + {c: 'Q', d: 1, ic: 0.094, tclass: 'italic'}, + {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'S', ic: 0.12, tclass: 'italic'}, + {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, + {c: 'U', ic: 0.164, tclass: 'italic'}, + {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'W', ic: 0.184, krn: {'65': -0.0767}, tclass: 'italic'}, + {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, + {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, + {c: 'Z', ic: 0.145, tclass: 'italic'}, + {c: '[', d:.1, ic: 0.188, tclass: 'italic'}, + {c: '“', ic: 0.169, tclass: 'italic'}, + {c: ']', d:.1, ic: 0.105, tclass: 'italic'}, + {c: 'ˆ', ic: 0.0665, tclass: 'iaccent'}, + {c: '˙', ic: 0.118, tclass: 'iaccent'}, + // 60 - 6F + {c: '‘', ic: 0.124, lig: {'96': 92}, tclass: 'italic'}, + {c: 'a', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'd', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'italic'}, + {c: 'g', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'h', ic: 0.0767, tclass: 'italic'}, + {c: 'i', ic: 0.102, tclass: 'italic'}, + {c: 'j', d:.2, ic: 0.145, tclass: 'italic'}, + {c: 'k', ic: 0.108, tclass: 'italic'}, + {c: 'l', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'm', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}, tclass: 'italic'}, + {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + // 70 - 7F + {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 'q', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, + {c: 's', a:0, ic: 0.0821, tclass: 'italic'}, + {c: 't', ic: 0.0949, tclass: 'italic'}, + {c: 'u', a:0, ic: 0.0767, tclass: 'italic'}, + {c: 'v', a:0, ic: 0.108, tclass: 'italic'}, + {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}, tclass: 'italic'}, + {c: 'x', a:0, ic: 0.12, tclass: 'italic'}, + {c: 'y', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, + {c: 'z', a:0, ic: 0.123, tclass: 'italic'}, + {c: '–', a:.1, ic: 0.0921, lig: {'45': 124}, tclass: 'italic'}, + {c: '—', a:.1, ic: 0.0921, tclass: 'italic'}, + {c: '˝', ic: 0.122, tclass: 'iaccent'}, + {c: '˜', ic: 0.116, tclass: 'iaccent'}, + {c: '¨', tclass: 'iaccent'} + ], + + cmbx10: [ + // 00 - 0F + {c: 'Γ', tclass: 'bgreek'}, + {c: 'Δ', tclass: 'bgreek'}, + {c: 'Θ', tclass: 'bgreek'}, + {c: 'Λ', tclass: 'bgreek'}, + {c: 'Ξ', tclass: 'bgreek'}, + {c: 'Π', tclass: 'bgreek'}, + {c: 'Σ', tclass: 'bgreek'}, + {c: 'Υ', tclass: 'bgreek'}, + {c: 'Φ', tclass: 'bgreek'}, + {c: 'Ψ', tclass: 'bgreek'}, + {c: 'Ω', tclass: 'bgreek'}, + {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'bold'}, + {c: 'fi', tclass: 'bold'}, + {c: 'fl', tclass: 'bold'}, + {c: 'ffi', tclass: 'bold'}, + {c: 'ffl', tclass: 'bold'}, + // 10 - 1F + {c: 'ı', a:0, tclass: 'bold'}, + {c: 'j', d:.2, tclass: 'bold'}, + {c: '`', tclass: 'baccent'}, + {c: '´', tclass: 'baccent'}, + {c: 'ˇ', tclass: 'baccent'}, + {c: '˘', tclass: 'baccent'}, + {c: 'ˉ', tclass: 'baccent'}, + {c: '˚', tclass: 'baccent'}, + {c: '?', tclass: 'bold'}, + {c: 'ß', tclass: 'bold'}, + {c: 'æ', a:0, tclass: 'bold'}, + {c: 'œ', a:0, tclass: 'bold'}, + {c: 'ø', tclass: 'bold'}, + {c: 'Æ', tclass: 'bold'}, + {c: 'Œ', tclass: 'bold'}, + {c: 'Ø', tclass: 'bold'}, + // 20 - 2F + {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'bold'}, + {c: '!', lig: {'96': 60}, tclass: 'bold'}, + {c: '”', tclass: 'bold'}, + {c: '#', tclass: 'bold'}, + {c: '$', tclass: 'bold'}, + {c: '%', tclass: 'bold'}, + {c: '&', tclass: 'bold'}, + {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'bold'}, + {c: '(', d:.2, tclass: 'bold'}, + {c: ')', d:.2, tclass: 'bold'}, + {c: '*', tclass: 'bold'}, + {c: '+', a:.1, tclass: 'bold'}, + {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'bold'}, + {c: '-', a:0, lig: {'45': 123}, tclass: 'bold'}, + {c: '.', a:-.25, tclass: 'bold'}, + {c: '/', tclass: 'bold'}, + // 30 - 3F + {c: '0', tclass: 'bold'}, + {c: '1', tclass: 'bold'}, + {c: '2', tclass: 'bold'}, + {c: '3', tclass: 'bold'}, + {c: '4', tclass: 'bold'}, + {c: '5', tclass: 'bold'}, + {c: '6', tclass: 'bold'}, + {c: '7', tclass: 'bold'}, + {c: '8', tclass: 'bold'}, + {c: '9', tclass: 'bold'}, + {c: ':', tclass: 'bold'}, + {c: ';', tclass: 'bold'}, + {c: '¡', tclass: 'bold'}, + {c: '=', a:0, d:-.1, tclass: 'bold'}, + {c: '¿', tclass: 'bold'}, + {c: '?', lig: {'96': 62}, tclass: 'bold'}, + // 40 - 4F + {c: '@', tclass: 'bold'}, + {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'B', tclass: 'bold'}, + {c: 'C', tclass: 'bold'}, + {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, + {c: 'E', tclass: 'bold'}, + {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'G', tclass: 'bold'}, + {c: 'H', tclass: 'bold'}, + {c: 'I', krn: {'73': 0.0278}, tclass: 'bold'}, + {c: 'J', tclass: 'bold'}, + {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'M', tclass: 'bold'}, + {c: 'N', tclass: 'bold'}, + {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, + // 50 - 5F + {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, + {c: 'Q', d: 1, tclass: 'bold'}, + {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, + {c: 'S', tclass: 'bold'}, + {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, + {c: 'U', tclass: 'bold'}, + {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, + {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, + {c: 'Z', tclass: 'bold'}, + {c: '[', d:.1, tclass: 'bold'}, + {c: '“', tclass: 'bold'}, + {c: ']', d:.1, tclass: 'bold'}, + {c: 'ˆ', tclass: 'baccent'}, + {c: '˙', tclass: 'baccent'}, + // 60 - 6F + {c: '‘', lig: {'96': 92}, tclass: 'bold'}, + {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'bold'}, + {c: 'd', tclass: 'bold'}, + {c: 'e', a:0, tclass: 'bold'}, + {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'bold'}, + {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'bold'}, + {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'i', tclass: 'bold'}, + {c: 'j', d:.2, tclass: 'bold'}, + {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'l', tclass: 'bold'}, + {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + // 70 - 7F + {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'q', a:0, d:.2, tclass: 'bold'}, + {c: 'r', a:0, tclass: 'bold'}, + {c: 's', a:0, tclass: 'bold'}, + {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'bold'}, + {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'bold'}, + {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, + {c: 'x', a:0, tclass: 'bold'}, + {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, + {c: 'z', a:0, tclass: 'bold'}, + {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'bold'}, + {c: '—', a:.1, ic: 0.0278, tclass: 'bold'}, + {c: '˝', tclass: 'baccent'}, + {c: '˜', tclass: 'baccent'}, + {c: '¨', tclass: 'baccent'} + ] +}); + +jsMath.Setup.Styles({ + '.typeset .math': 'font-style: normal', + '.typeset .italic': 'font-style: italic', + '.typeset .bold': 'font-weight: bold', + '.typeset .cmr10': 'font-family: serif', + '.typeset .cal': 'font-family: cursive', + '.typeset .arrows': '', + '.typeset .arrow1': '', + '.typeset .arrow2': '', + '.typeset .harpoon': 'font-size: 125%', + '.typeset .symbol': '', + '.typeset .symbol2': '', + '.typeset .delim1': 'font-size: 133%; position:relative; top:.75em', + '.typeset .delim1b': 'font-size: 133%; position:relative; top:.8em; margin: -.1em', + '.typeset .delim1c': 'font-size: 120%; position:relative; top:.8em;', + '.typeset .delim2': 'font-size: 180%; position:relative; top:.75em', + '.typeset .delim2b': 'font-size: 190%; position:relative; top:.8em; margin: -.1em', + '.typeset .delim2c': 'font-size: 167%; position:relative; top:.8em;', + '.typeset .delim3': 'font-size: 250%; position:relative; top:.725em', + '.typeset .delim3b': 'font-size: 250%; position:relative; top:.8em; margin: -.1em', + '.typeset .delim3c': 'font-size: 240%; position:relative; top:.775em;', + '.typeset .delim4': 'font-size: 325%; position:relative; top:.7em', + '.typeset .delim4b': 'font-size: 325%; position:relative; top:.8em; margin: -.1em', + '.typeset .delim4c': 'font-size: 300%; position:relative; top:.8em;', + '.typeset .delim': '', + '.typeset .vertical': '', + '.typeset .greek': '', + '.typeset .igreek': 'font-style: italic', + '.typeset .bgreek': 'font-weight: bold', + '.typeset .bigop1': 'font-size: 133%; position: relative; top: .85em; margin:-.05em', + '.typeset .bigop1a': 'font-size: 100%; position: relative; top: .775em;', + '.typeset .bigop1b': 'font-size: 160%; position: relative; top: .7em; margin:-.1em', + '.typeset .bigop1c': 'font-size: 125%; position: relative; top: .75em; margin:-.1em;', + '.typeset .bigop2': 'font-size: 200%; position: relative; top: .8em; margin:-.07em', + '.typeset .bigop2a': 'font-size: 175%; position: relative; top: .7em;', + '.typeset .bigop2b': 'font-size: 270%; position: relative; top: .62em; margin:-.1em', + '.typeset .bigop2c': 'font-size: 250%; position: relative; top: .7em; margin:-.17em;', + '.typeset .wide1': 'font-size: 67%; position: relative; top:-.8em', + '.typeset .wide2': 'font-size: 110%; position: relative; top:-.5em', + '.typeset .wide3': 'font-size: 175%; position: relative; top:-.32em', + '.typeset .wide1a': 'font-size: 75%; position: relative; top:-.5em', + '.typeset .wide2a': 'font-size: 133%; position: relative; top: -.15em', + '.typeset .wide3a': 'font-size: 200%; position: relative; top: -.05em', + '.typeset .root': '', + '.typeset .accent': 'position: relative; top: .02em', + '.typeset .iaccent': 'position: relative; top: .02em; font-style: italic', + '.typeset .baccent': 'position: relative; top: .02em; font-weight: bold' +}); + + +jsMath.Setup.Styles(); + +/* + * No access to TeX "not" character, so fake this + */ +jsMath.Macro('not','\\mathrel{\\rlap{\\kern 4mu/}}'); +jsMath.Macro('joinrel','\\mathrel{\\kern-2mu}'); + + +jsMath.Box.DelimExtend = jsMath.Box.DelimExtendRelative; + +jsMath.Box.defaultH = 0.8; diff --git a/jsMath/uncompressed/jsMath.js b/jsMath/uncompressed/jsMath.js new file mode 100644 index 00000000..3080cea6 --- /dev/null +++ b/jsMath/uncompressed/jsMath.js @@ -0,0 +1,6577 @@ +/***************************************************************************** + * + * jsMath: Mathematics on the Web + * + * This jsMath package makes it possible to display mathematics in HTML pages + * that are viewable by a wide range of browsers on both the Mac and the IBM PC, + * including browsers that don't process MathML. See + * + * http://www.math.union.edu/locate/jsMath + * + * for the latest version, and for documentation on how to use jsMath. + * + * Copyright 2004-2010 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *****************************************************************************/ + +/* + * Prevent running everything again if this file is loaded twice + */ +if (!window.jsMath || !window.jsMath.loaded) { + +var jsMath_old = window.jsMath; // save user customizations + +// +// debugging routine +// +/* + * function ShowObject (obj,spaces) { + * var s = ''; if (!spaces) {spaces = ""} + * for (var i in obj) { + * if (obj[i] != null) { + * if (typeof(obj[i]) == "object") { + * s += spaces + i + ": {\n" + * + ShowObject(obj[i],spaces + ' ') + * + spaces + "}\n"; + * } else if (typeof(obj[i]) != "function") { + * s += spaces + i + ': ' + obj[i] + "\n"; + * } + * } + * } + * return s; + * } + */ + +/***************************************************************************/ +// +// Check for DOM support +// +if (!document.getElementById || !document.childNodes || !document.createElement) { + alert('The mathematics on this page requires W3C DOM support in its JavaScript. ' + + 'Unfortunately, your browser doesn\'t seem to have this.'); +} else { + +/***************************************************************************/ + +window.jsMath = { + + version: "3.6e", // change this if you edit the file, but don't edit this file + + document: document, // the document loading jsMath + window: window, // the window of the of loading document + + platform: (navigator.platform.match(/Mac/) ? "mac" : + navigator.platform.match(/Win/) ? "pc" : "unix"), + + // Font sizes for \tiny, \small, etc. (must match styles below) + sizes: [50, 60, 70, 85, 100, 120, 144, 173, 207, 249], + + // + // The styles needed for the TeX fonts and other jsMath elements + // + styles: { + '.math': { // unprocessed mathematics + 'font-family': 'serif', + 'font-style': 'normal', + 'font-weight': 'normal' + }, + + '.typeset': { // final typeset mathematics + 'font-family': 'serif', + 'font-style': 'normal', + 'font-weight': 'normal', + 'line-height': 'normal', + 'text-indent': '0px', + 'white-space': 'normal' + }, + + '.typeset .normal': { // \hbox contents style + 'font-family': 'serif', + 'font-style': 'normal', + 'font-weight': 'normal' + }, + + 'div.typeset': { // display mathematics + 'text-align': 'center', + margin: '1em 0px' + }, + + 'span.typeset': { // in-line mathematics + 'text-align': 'left' + }, + + '.typeset span': { // prevent outside CSS from setting these + 'text-align': 'left', + border: '0px', + margin: '0px', + padding: '0px' + }, + + 'a .typeset img, .typeset a img': { // links in image mode + border: '0px', + 'border-bottom': '1px solid blue;' + }, + + // Font sizes + '.typeset .size0': {'font-size': '50%'}, // tiny (\scriptscriptsize) + '.typeset .size1': {'font-size': '60%'}, // (50% of \large for consistency) + '.typeset .size2': {'font-size': '70%'}, // scriptsize + '.typeset .size3': {'font-size': '85%'}, // small (70% of \large for consistency) + '.typeset .size4': {'font-size': '100%'}, // normalsize + '.typeset .size5': {'font-size': '120%'}, // large + '.typeset .size6': {'font-size': '144%'}, // Large + '.typeset .size7': {'font-size': '173%'}, // LARGE + '.typeset .size8': {'font-size': '207%'}, // huge + '.typeset .size9': {'font-size': '249%'}, // Huge + + // TeX fonts + '.typeset .cmr10': {'font-family': 'jsMath-cmr10, serif'}, + '.typeset .cmbx10': {'font-family': 'jsMath-cmbx10, jsMath-cmr10'}, + '.typeset .cmti10': {'font-family': 'jsMath-cmti10, jsMath-cmr10'}, + '.typeset .cmmi10': {'font-family': 'jsMath-cmmi10'}, + '.typeset .cmsy10': {'font-family': 'jsMath-cmsy10'}, + '.typeset .cmex10': {'font-family': 'jsMath-cmex10'}, + + '.typeset .textit': {'font-family': 'serif', 'font-style': 'italic'}, + '.typeset .textbf': {'font-family': 'serif', 'font-weight': 'bold'}, + + '.typeset .link': {'text-decoration': 'none'}, // links in mathematics + + '.typeset .error': { // in-line error messages + 'font-size': '90%', + 'font-style': 'italic', + 'background-color': '#FFFFCC', + padding: '1px', + border: '1px solid #CC0000' + }, + + '.typeset .blank': { // internal use + display: 'inline-block', + overflow: 'hidden', + border: '0px none', + width: '0px', + height: '0px' + }, + '.typeset .spacer': { // internal use + display: 'inline-block' + }, + + '#jsMath_hiddenSpan': { // used for measuring BBoxes + visibility: 'hidden', + position: 'absolute', + top: '0px', + left: '0px', + 'line-height': 'normal', + 'text-indent': '0px' + }, + + '#jsMath_message': { // percentage complete message + position: 'fixed', + bottom: '1px', + left: '2px', + 'background-color': '#E6E6E6', + border: 'solid 1px #959595', + margin: '0px', + padding: '1px 8px', + 'z-index': '102', + color: 'black', + 'font-size': 'small', + width: 'auto' + }, + + '#jsMath_panel': { // control panel + position: 'fixed', + bottom: '1.75em', + right: '1.5em', + padding: '.8em 1.6em', + 'background-color': '#DDDDDD', + border: 'outset 2px', + 'z-index': '103', + width: 'auto', + color: 'black', + 'font-size': '10pt', + 'font-style': 'normal' + }, + '#jsMath_panel .disabled': {color: '#888888'}, // disabled items in the panel + '#jsMath_panel .infoLink': {'font-size': '85%'}, // links to web pages + + // avoid CSS polution from outside the panel + '#jsMath_panel *': { + 'font-size': 'inherit', + 'font-style': 'inherit', + 'font-family': 'inherit', + 'line-height': 'normal' + }, + '#jsMath_panel div': {'background-color': 'inherit', color: 'inherit'}, + '#jsMath_panel span': {'background-color': 'inherit', color: 'inherit'}, + '#jsMath_panel td': { + border: '0px', padding: '0px', margin: '0px', + 'background-color': 'inherit', color: 'inherit' + }, + '#jsMath_panel tr': { + border: '0px', padding: '0px', margin: '0px', + 'background-color': 'inherit', color: 'inherit' + }, + '#jsMath_panel table': { + border: '0px', padding: '0px', margin: '0px', + 'background-color': 'inherit', color: 'inherit', + height: 'auto', width: 'auto' + }, + + '#jsMath_button': { // the jsMath floating button (to open control panel) + position: 'fixed', + bottom: '1px', + right: '2px', + 'background-color': 'white', + border: 'solid 1px #959595', + margin: '0px', + padding: '0px 3px 1px 3px', + 'z-index': '102', + color: 'black', + 'text-decoration': 'none', + 'font-size': 'x-small', + width: 'auto', + cursor: 'hand' + }, + '#jsMath_button *': { + padding: '0px', border: '0px', margin: '0px', 'line-height': 'normal', + 'font-size': 'inherit', 'font-style': 'inherit', 'font-family': 'inherit' + }, + + '#jsMath_global': {'font-style': 'italic'}, // 'global' in jsMath button + + '#jsMath_noFont .message': { // missing font message window + 'text-align': 'center', + padding: '.8em 1.6em', + border: '3px solid #DD0000', + 'background-color': '#FFF8F8', + color: '#AA0000', + 'font-size': 'small', + width: 'auto' + }, + '#jsMath_noFont .link': { + padding: '0px 5px 2px 5px', + border: '2px outset', + 'background-color': '#E8E8E8', + color: 'black', + 'font-size': '80%', + width: 'auto', + cursor: 'hand' + }, + + '#jsMath_PrintWarning .message': { // warning on print pages + 'text-align': 'center', + padding: '.8em 1.6em', + border: '3px solid #DD0000', + 'background-color': '#FFF8F8', + color: '#AA0000', + 'font-size': 'x-small', + width: 'auto' + }, + + '@media print': { + '#jsMath_button': {display: 'none'}, + '#jsMath_Warning': {display: 'none'} + }, + + '@media screen': { + '#jsMath_PrintWarning': {display:'none'} + } + + }, + + + /***************************************************************************/ + + /* + * Get a jsMath DOM element + */ + Element: function (name) {return jsMath.document.getElementById('jsMath_'+name)}, + + /* + * Get the width and height (in pixels) of an HTML string + */ + BBoxFor: function (s) { + this.hidden.innerHTML = + ''+s+''; + var math = (jsMath.Browser.msieBBoxBug ? this.hidden.firstChild.firstChild : this.hidden); + var bbox = {w: math.offsetWidth, h: this.hidden.offsetHeight}; + this.hidden.innerHTML = ''; + return bbox; + }, + + /* + * Get the width and height (in ems) of an HTML string. + * Check the cache first to see if we've already measured it. + */ + EmBoxFor: function (s) { + var cache = jsMath.Global.cache.R; + if (!cache[this.em]) {cache[this.em] = {}} + if (!cache[this.em][s]) { + var bbox = this.BBoxFor(s); + cache[this.em][s] = {w: bbox.w/this.em, h: bbox.h/this.em}; + } + return cache[this.em][s]; + }, + + /* + * Initialize jsMath. This determines the em size, and a variety + * of other parameters used throughout jsMath. + */ + Init: function () { + if (jsMath.Setup.inited != 1) { + if (!jsMath.Setup.inited) {jsMath.Setup.Body()} + if (jsMath.Setup.inited != 1) { + if (jsMath.Setup.inited == -100) return; + alert("It looks like jsMath failed to set up properly (error code " + + jsMath.Setup.inited + "). " + + "I will try to keep going, but it could get ugly."); + jsMath.Setup.inited = 1; + } + } + this.em = this.CurrentEm(); + var cache = jsMath.Global.cache.B; + if (!cache[this.em]) { + cache[this.em] = {}; + cache[this.em].bb = this.BBoxFor('x'); var hh = cache[this.em].bb.h; + cache[this.em].d = this.BBoxFor('x'+jsMath.HTML.Strut(hh/this.em)).h - hh; + } + jsMath.Browser.italicCorrection = cache[this.em].ic; + var bb = cache[this.em].bb; var h = bb.h; var d = cache[this.em].d + this.h = (h-d)/this.em; this.d = d/this.em; + this.hd = this.h + this.d; + + this.Setup.TeXfonts(); + + var x_height = this.EmBoxFor('M').w/2; + this.TeX.M_height = x_height*(26/14); + this.TeX.h = this.h; this.TeX.d = this.d; this.TeX.hd = this.hd; + + this.Img.Scale(); + if (!this.initialized) { + this.Setup.Sizes(); + this.Img.UpdateFonts(); + } + + // factor for \big and its brethren + this.p_height = (this.TeX.cmex10[0].h + this.TeX.cmex10[0].d) / .85; + + this.initialized = 1; + }, + + /* + * Get the x size and if it has changed, reinitialize the sizes + */ + ReInit: function () { + if (this.em != this.CurrentEm()) {this.Init()} + }, + + /* + * Find the em size in effect at the current text location + */ + CurrentEm: function () { + var em = this.BBoxFor('').w/27; + if (em > 0) {return em} + // handle older browsers + return this.BBoxFor('').w/13; + }, + + /* + * Mark jsMath as loaded and copy any user-provided overrides + */ + Loaded: function () { + if (jsMath_old) { + var override = ['Process', 'ProcessBeforeShowing','ProcessElement', + 'ConvertTeX','ConvertTeX2','ConvertLaTeX','ConvertCustom', + 'CustomSearch', 'Synchronize', 'Macro', 'document']; + for (var i = 0; i < override.length; i++) { + if (jsMath_old[override[i]]) {delete jsMath_old[override[i]]} + } + } + if (jsMath_old) {this.Insert(jsMath,jsMath_old)} + jsMath_old = null; + jsMath.loaded = 1; + }, + + /* + * Manage JavaScript objects: + * + * Add: add/replace items in an object + * Insert: add items to an object + * Package: add items to an object prototype + */ + Add: function (dst,src) {for (var id in src) {dst[id] = src[id]}}, + Insert: function (dst,src) { + for (var id in src) { + if (dst[id] && typeof(src[id]) == 'object' + && (typeof(dst[id]) == 'object' + || typeof(dst[id]) == 'function')) { + this.Insert(dst[id],src[id]); + } else { + dst[id] = src[id]; + } + } + }, + Package: function (obj,def) {this.Insert(obj.prototype,def)} + +}; + + +/***************************************************************************/ + + /* + * Implements items associated with the global cache. + * + * This object will be replaced by a global version when + * (and if) jsMath-global.html is loaded. + */ +jsMath.Global = { + isLocal: 1, // a local copy if jsMath-global.html hasn't been loaded + cache: {T: {}, D: {}, R: {}, B: {}}, + + /* + * Clear the global (or local) cache + */ + ClearCache: function () {jsMath.Global.cache = {T: {}, D: {}, R: {}, B: {}}}, + + /* + * Initiate global mode + */ + GoGlobal: function (cookie) { + var url = String(jsMath.window.location); + var c = (jsMath.isCHMmode ? '#' : '?'); + if (cookie) {url = url.replace(/\?.*/,'') + '?' + cookie} + jsMath.Controls.Reload(jsMath.root + "jsMath-global.html" + c +escape(url)); + }, + + /* + * Check if we need to go to global mode + */ + Init: function () { + if (jsMath.Controls.cookie.global == "always" && !jsMath.noGoGlobal) { + if (navigator.accentColorName) return; // OmniWeb crashes on GoGlobal + if (!jsMath.window) {jsMath.window = window} + jsMath.Controls.loaded = 1; + jsMath.Controls.defaults.hiddenGlobal = null; + this.GoGlobal(jsMath.Controls.SetCookie(2)); + } + }, + + /* + * Try to register with a global.html window that contains us + */ + Register: function () { + var parent = jsMath.window.parent; + if (!jsMath.isCHMmode) + {jsMath.isCHMmode = (jsMath.window.location.protocol == 'mk:')} + try { + if (!jsMath.isCHMmode) this.Domain(); + if (parent.jsMath && parent.jsMath.isGlobal) + {parent.jsMath.Register(jsMath.window)} + } catch (err) {jsMath.noGoGlobal = 1} + }, + + /* + * If we're not the parent window, try to set the domain to + * match the parent's domain (so we can use the Global data + * if the surrounding frame is a Global frame). + */ + Domain: function () { + // MSIE/Mac can't do domain changes, so don't bother trying + if (navigator.appName == 'Microsoft Internet Explorer' && + jsMath.platform == 'mac' && navigator.userProfile != null) return; + // MSIE/PC can do domain change, but gets mixed up if we don't + // find a domain that works, and then can't look in window.location + // any longer. So don't try, since we can't afford to leave it confused. + if (jsMath.document.all && !jsMath.window.opera) return; + + if (window == parent) return; + var oldDomain = jsMath.document.domain; + try { + while (true) { + try {if (parent.document.title != null) return} catch (err) {} + if (!document.domain.match(/\..*\./)) break; + jsMath.document.domain = jsMath.document.domain.replace(/^[^.]*\./,''); + } + } catch (err) {} + jsMath.document.domain = oldDomain; + } + +}; + + + +/***************************************************************************/ + +/* + * + * Implement loading of remote scripts using XMLHttpRequest, if + * possible, otherwise use a hidden IFRAME and fake it. That + * method runs asynchronously, which causes lots of headaches. + * Solve these using Push command, which queues actions + * until files have loaded. + */ + +jsMath.Script = { + + request: null, // the XMLHttpRequest object + + /* + * Create the XMLHttpRequest object, if we can. + * Otherwise, use the iframe-based fallback method. + */ + Init: function () { + if (!(jsMath.Controls.cookie.asynch && jsMath.Controls.cookie.progress)) { + if (window.XMLHttpRequest) { + try {this.request = new XMLHttpRequest} catch (err) {} + // MSIE and FireFox3 can't use xmlRequest on local files, + // but we don't have jsMath.browser yet to tell, so use this check + if (this.request && jsMath.root.match(/^file:\/\//)) { + try { + this.request.open("GET",jsMath.root+"jsMath.js",false); + this.request.send(null); + } catch (err) { + this.request = null; + // Firefox3 has window.postMessage for inter-window communication. + // It can be used to handle the new file:// security model, + // so set up the listener. + if (window.postMessage && window.addEventListener) { + this.mustPost = 1; + jsMath.window.addEventListener("message",jsMath.Post.Listener,false); + } + } + } + } + if (!this.request && window.ActiveXObject && !this.mustPost) { + var xml = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0", + "MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; + for (var i = 0; i < xml.length && !this.request; i++) { + try {this.request = new ActiveXObject(xml[i])} catch (err) {} + } + } + } + // + // Use the delayed-script fallback for MSIE/Mac and old versions + // of several browsers (Opera 7.5, OmniWeb 4.5). + // + if (!this.request || jsMath.Setup.domainChanged) + {this.Load = this.delayedLoad; this.needsBody = 1} + }, + + /* + * Load a script and evaluate it in the window's context + */ + Load: function (url,show) { + if (show) { + jsMath.Message.Set("Loading "+url); + jsMath.Script.Delay(1); + jsMath.Script.Push(this,'xmlRequest',url); + jsMath.Script.Push(jsMath.Message,'Clear'); + } else { + jsMath.Script.Push(this,'xmlRequest',url); + } + }, + + /* + * Load a URL and run the contents of the file + */ + xmlRequest: function (url) { + this.blocking = 1; +// this.debug('xmlRequest: '+url); + try { + this.request.open("GET",url,false); + this.request.send(null); + } catch (err) { + this.blocking = 0; + if (jsMath.Translate.restart && jsMath.Translate.asynchronous) {return ""} + throw Error("jsMath can't load the file '"+url+"'\n" + + "Message: "+err.message); + } + if (this.request.status != null && (this.request.status >= 400 || this.request.status < 0)) { + // Do we need to deal with redirected links? + this.blocking = 0; + if (jsMath.Translate.restart && jsMath.Translate.asynchronous) {return ""} + throw Error("jsMath can't load the file '"+url+"'\n" + + "Error status: "+this.request.status); + } + if (!url.match(/\.js$/)) {return(this.request.responseText)} + var tmpQueue = this.queue; this.queue = []; +// this.debug('xml Eval ['+tmpQueue.length+']'); + jsMath.window.eval(this.request.responseText); +// this.debug('xml Done ['+this.queue.length+' + '+tmpQueue.length+']'); + this.blocking = 0; this.queue = this.queue.concat(tmpQueue); + this.Process(); + return ""; + }, + + /******************************************************************** + * + * Implement asynchronous loading and execution of scripts + * (via hidden IFRAME) interleved with other JavaScript commands + * that must be synchronized with the file loading. (Basically, this + * is for MSIE/Mac and Opera 7.5, which don't have XMLHttpRequest.) + */ + + cancelTimeout: 30*1000, // delay for canceling load (30 sec) + + blocking: 0, // true when an asynchronous action is being performed + cancelTimer: null, // timer to cancel load if it takes too long + needsBody: 0, // true if loading files requires BODY to be present + + queue: [], // the stack of pending actions + + /* + * Provide mechanism for synchronizing with the asynchronous jsMath + * file-loading mechanism. 'code' can be a string or a function. + */ + Synchronize: function (code,data) { + if (typeof(code) != 'string') {jsMath.Script.Push(null,code,data)} + else {jsMath.Script.Push(jsMath.window,'eval',code)} + }, + + /* + * Queue a function to be processed. + * If nothing is being loaded, do the pending commands. + */ + Push: function (object,method,data) { +// this.debug('Pushing: '+method+' at '+this.queue.length); // debug + this.queue[this.queue.length] = [object,method,data]; + if (!(this.blocking || (this.needsBody && !jsMath.document.body))) this.Process(); + }, + + /* + * Do any pending functions (stopping if a file load is started) + */ + Process: function () { + while (this.queue.length && !this.blocking) { + var call = this.queue[0]; this.queue = this.queue.slice(1); + var savedQueue = this.SaveQueue(); + var object = call[0]; var method = call[1]; var data = call[2]; +// this.debug('Calling: '+method+' ['+savedQueue.length+']'); // debug + if (object) {object[method](data)} else if (method) {method(data)} +// this.debug('Done: '+method+' ['+this.queue.length+' + '+savedQueue.length+'] ('+this.blocking+')'); // debug + this.RestoreQueue(savedQueue); + } + }, + + /* + * Allows pushes to occur at the FRONT of the queue + * (so a command acts as a single unit, including anything + * that it pushes on to the command stack) + */ + SaveQueue: function () { + var queue = this.queue; + this.queue = []; + return queue; + }, + RestoreQueue: function (queue) { + this.queue = this.queue.concat(queue); + }, + + /* + * Handle loading of scripts that run asynchronously + */ + delayedLoad: function (url) { +// this.debug('Loading: '+url); + this.Push(this,'startLoad',url); + }, + startLoad: function (url) { + var iframe = jsMath.document.createElement('iframe'); + iframe.style.visibility = 'hidden'; + iframe.style.position = 'absolute'; + iframe.style.width = '0px'; + iframe.style.height = '0px'; + if (jsMath.document.body.firstChild) { + jsMath.document.body.insertBefore(iframe,jsMath.document.body.firstChild); + } else { + jsMath.document.body.appendChild(iframe); + } + this.blocking = 1; this.url = url; + if (url.substr(0,jsMath.root.length) == jsMath.root) + {url = url.substr(jsMath.root.length)} + jsMath.Message.Set("Loading "+url); + this.cancelTimer = setTimeout('jsMath.Script.cancelLoad()',this.cancelTimeout); + if (this.mustPost) {iframe.src = jsMath.Post.startLoad(url,iframe)} + else if (url.match(/\.js$/)) {iframe.src = jsMath.root+"jsMath-loader.html"} + else {iframe.src = this.url} + }, + endLoad: function (action) { + if (this.cancelTimer) {clearTimeout(this.cancelTimer); this.cancelTimer = null} + jsMath.Post.endLoad(); + jsMath.Message.Clear(); + if (action != 'cancel') {this.blocking = 0; this.Process()} + }, + + Start: function () { +// this.debug('Starting: ['+this.queue.length+'] '+this.url); + this.tmpQueue = this.queue; this.queue = []; + }, + End: function () { +// this.debug('Ending: ['+this.queue.length+' + '+this.tmpQueue.length+'] '+this.url); + this.queue = this.queue.concat(this.tmpQueue); delete this.tmpQueue; + }, + + /* + * If the loading takes too long, cancel it and end the load. + */ + cancelLoad: function (message,delay) { + if (this.cancelTimer) {clearTimeout(this.cancelTimer); this.cancelTimer = null} + if (message == null) {message = "Can't load file"} + if (delay == null) {delay = 2000} + jsMath.Message.Set(message); + setTimeout('jsMath.Script.endLoad("cancel")',delay); + }, + + /* + * Perform a delay (to let the browser catch up) + */ + Delay: function (time) { + this.blocking = 1; + setTimeout('jsMath.Script.endDelay()',time); + }, + endDelay: function () { +// this.debug('endDelay'); + this.blocking = 0; + this.Process(); + }, + + /* + * Load an image and wait for it + * (so MSIE won't load extra copies of it) + */ + imageCount: 0, + WaitForImage: function (file) { + this.blocking = 1; this.imageCount++; + if (this.img == null) {this.img = []} + var img = new Image(); this.img[this.img.length] = img; + img.onload = function () {if (--jsMath.Script.imageCount == 0) jsMath.Script.endDelay()} + img.onerror = img.onload; img.onabort = img.onload; + img.src = file; + }, + + /* + * The code uncompressor + */ + Uncompress: function (data) { + for (var k = 0; k < data.length; k++) { + var d = data[k]; var n = d.length; + for (var i = 0; i < n; i++) {if (typeof(d[i]) == 'number') {d[i] = d[d[i]]}} + data[k] = d.join(''); + } + window.eval(data.join('')); + } + + /* + * for debugging the event queue + */ + /* + * ,debug: function (message) { + * if (jsMath.document.body && jsMath.window.debug) {jsMath.window.debug(message)} + * else {alert(message)} + * } + */ + +}; + +/***************************************************************************/ + +/* + * Handle window.postMessage() events in Firefox3 + */ + +jsMath.Post = { + window: null, // iframe we are listening to + + Listener: function (event) { + if (event.source != jsMath.Post.window) return; + var domain = event.origin.replace(/^file:\/\//,''); + var ddomain = document.domain.replace(/^file:\/\//,''); + if (domain == null || domain == "" || domain == "null") {domain = "localhost"} + if (ddomain == null || ddomain == "" || ddomain == "null") {ddomain = "localhost"} + if (domain != ddomain || !event.data.substr(0,6).match(/jsM(CP|LD|AL):/)) return; + var type = event.data.substr(6,3).replace(/ /g,''); + var message = event.data.substr(10); + if (jsMath.Post.Commands[type]) (jsMath.Post.Commands[type])(message); + // cancel event? + }, + + /* + * Commands that can be performed by the listener + */ + Commands: { + SCR: function (message) {jsMath.window.eval(message)}, + ERR: function (message) {jsMath.Script.cancelLoad(message,3000)}, + BGN: function (message) {jsMath.Script.Start()}, + END: function (message) {if (message) jsMath.Script.End(); jsMath.Script.endLoad()} + }, + + startLoad: function (url,iframe) { + this.window = iframe.contentWindow; + if (!url.match(/\.js$/)) {return jsMath.root+url} + return jsMath.root+"jsMath-loader-post.html?"+url; + }, + endLoad: function () {this.window = null} +}; + +/***************************************************************************/ + +/* + * Message and screen blanking facility + */ + +jsMath.Message = { + + blank: null, // the div to blank out the screen + message: null, // the div for the messages + text: null, // the text node for messages + clear: null, // timer for clearing message + + /* + * Create the elements needed for the message box + */ + Init: function () { + if (!jsMath.document.body || !jsMath.Controls.cookie.progress) return; + this.message = jsMath.Element('message'); + if (!this.message) { + if (jsMath.Setup.stylesReady) { + this.message = jsMath.Setup.DIV('message',{visibility:'hidden'},jsMath.fixedDiv); + } else { + this.message = jsMath.Setup.DIV('message',{ + visibility:'hidden', position:'absolute', bottom:'1px', left:'2px', + backgroundColor:'#E6E6E6', border:'solid 1px #959595', + margin:'0px', padding:'1px 8px', zIndex:102, + color:'black', fontSize:'small', width:'auto' + },jsMath.fixedDiv); + } + } + this.text = jsMath.document.createTextNode(''); + this.message.appendChild(this.text); + this.message.onmousedown = jsMath.Translate.Cancel; + }, + + /* + * Set the contents of the message box, or use the window status line + */ + Set: function (text,canCancel) { + if (this.clear) {clearTimeout(this.clear); this.clear = null} + if (jsMath.Controls.cookie.progress) { + if (!this.text) {this.Init(); if (!this.text) return} + if (jsMath.Browser.textNodeBug) {this.message.innerHTML = text} + else {this.text.nodeValue = text} + this.message.style.visibility = 'visible'; + if (canCancel) { + this.message.style.cursor = 'pointer'; + if (!this.message.style.cursor) {this.message.style.cursor = 'hand'} + this.message.title = ' Cancel Processing of Math '; + } else { + this.message.style.cursor = ''; + this.message.title = ''; + } + } else { + if (text.substr(0,8) != "Loading ") {jsMath.window.status = text} + } + }, + + /* + * Clear the message box or status line + */ + Clear: function () { + if (this.clear) {clearTimeout(this.clear)} + this.clear = setTimeout("jsMath.Message.doClear()",1000); + }, + doClear: function () { + if (this.clear) { + this.clear = null; + jsMath.window.status = ''; + if (this.text) {this.text.nodeValue = ''} + if (this.message) {this.message.style.visibility = 'hidden'} + } + }, + + + /* + * Put up a DIV that covers the window so that the + * "flicker" of processing the mathematics will not be visible + */ + Blank: function () { + if (this.blank || !jsMath.document.body) return; + this.blank = jsMath.Setup.DIV("blank",{ + position:(jsMath.Browser.msiePositionFixedBug? 'absolute': 'fixed'), + top:'0px', left:'0px', bottom:'0px', right:'0px', + zIndex:101, backgroundColor:'white' + },jsMath.fixedDiv); + if (jsMath.Browser.msieBlankBug) { + this.blank.innerHTML = ' '; + this.blank.style.width = "110%"; + this.blank.style.height = "110%"; + } + }, + + UnBlank: function () { + if (this.blank) {jsMath.document.body.removeChild(this.blank)} + this.blank = null; + } +}; + + +/***************************************************************************/ + +/* + * Miscellaneous setup and initialization + */ +jsMath.Setup = { + + loaded: [], // array of files already loaded + + /* + * Insert a DIV at the top of the page with given ID, + * attributes, and style settings + */ + DIV: function (id,styles,parent) { + if (parent == null) {parent = jsMath.document.body} + var div = jsMath.document.createElement('div'); + div.id = 'jsMath_'+id; + for (var i in styles) {div.style[i]= styles[i]} + if (!parent.hasChildNodes) {parent.appendChild(div)} + else {parent.insertBefore(div,parent.firstChild)} + return div; + }, + + /* + * Source a jsMath JavaScript file (only load any given file once) + */ + Script: function (file,show) { + if (this.loaded[file]) {return} else {this.loaded[file] = 1} + if (!file.match('^([a-zA-Z]+:/?)?/')) {file = jsMath.root + file} + jsMath.Script.Load(file,show); + }, + + /* + * Use a hidden
for measuring the BBoxes of things + */ + Hidden: function () { + jsMath.hidden = this.DIV("Hidden",{ + visibility: 'hidden', position:"absolute", + top:0, left:0, border:0, padding:0, margin:0 + }); + jsMath.hiddenTop = jsMath.hidden; + return; + }, + + /* + * Find the root URL for the jsMath files (so we can load + * the other .js and .gif files) + */ + Source: function () { + if (jsMath.Autoload && jsMath.Autoload.root) { + jsMath.root = jsMath.Autoload.root; + } else { + jsMath.root = ''; + var script = jsMath.document.getElementsByTagName('script'); + if (script) { + for (var i = 0; i < script.length; i++) { + var src = script[i].src; + if (src && src.match('(^|/|\\\\)jsMath.js$')) { + jsMath.root = src.replace(/jsMath.js$/,''); + break; + } + } + } + } + if (jsMath.root.charAt(0) == '\\') {jsMath.root = jsMath.root.replace(/\\/g,'/')} + if (jsMath.root.charAt(0) == '/') { + if (jsMath.root.charAt(1) != '/') + {jsMath.root = '//' + jsMath.document.location.host + jsMath.root} + jsMath.root = jsMath.document.location.protocol + jsMath.root; + } else if (!jsMath.root.match(/^[a-z]+:/i)) { + var src = new String(jsMath.document.location); + var pattern = new RegExp('/[^/]*/\\.\\./') + jsMath.root = src.replace(new RegExp('[^/]*$'),'') + jsMath.root; + while (jsMath.root.match(pattern)) + {jsMath.root = jsMath.root.replace(pattern,'/')} + } + jsMath.Img.root = jsMath.root + "fonts/"; + jsMath.blank = jsMath.root + "blank.gif"; + this.Domain(); + }, + + /* + * Find the most restricted common domain for the main + * page and jsMath. Report an error if jsMath is outside + * the domain of the calling page. + */ + Domain: function () { + try {jsMath.document.domain} catch (err) {return} + var jsDomain = ''; var pageDomain = jsMath.document.domain; + if (jsMath.root.match('://([^/]*)/')) {jsDomain = RegExp.$1} + jsDomain = jsDomain.replace(/:\d+$/,''); + if (jsDomain == "" || jsDomain == pageDomain) return; + // + // MSIE on the Mac can't change jsMath.document.domain and 'try' won't + // catch the error (Grrr!), so exit for them. + // + if (navigator.appName == 'Microsoft Internet Explorer' && + jsMath.platform == 'mac' && navigator.onLine && + navigator.userProfile && jsMath.document.all) return; + jsDomain = jsDomain.split(/\./); pageDomain = pageDomain.split(/\./); + if (jsDomain.length < 2 || pageDomain.length < 2 || + jsDomain[jsDomain.length-1] != pageDomain[pageDomain.length-1] || + jsDomain[jsDomain.length-2] != pageDomain[pageDomain.length-2]) { + this.DomainWarning(); + return; + } + var domain = jsDomain[jsDomain.length-2] + '.' + jsDomain[jsDomain.length-1]; + for (var i = 3; i <= jsDomain.length && i <= pageDomain.length; i++) { + if (jsDomain[jsDomain.length-i] != pageDomain[pageDomain.length-i]) break; + domain = jsDomain[jsDomain.length-i] + '.' + domain; + } + jsMath.document.domain = domain; + this.domainChanged = 1; + }, + + DomainWarning: function () { + alert("In order for jsMath to be able to load the additional " + + "components that it may need, the jsMath.js file must be " + + "loaded from a server in the same domain as the page that " + + "contains it. Because that is not the case for this page, " + + "the mathematics displayed here may not appear correctly."); + }, + + /* + * Initialize a font's encoding array + */ + EncodeFont: function (name) { + var font = jsMath.TeX[name]; + if (font[0].c != null) return; + for (var k = 0; k < 128; k++) { + var data = font[k]; font[k] = data[3]; + if (font[k] == null) {font[k] = {}}; + font[k].w = data[0]; font[k].h = data[1]; + if (data[2] != null) {font[k].d = data[2]} + font[k].c = jsMath.TeX.encoding[k]; + } + }, + + /* + * Initialize the encodings for all fonts + */ + Fonts: function () { + for (var i = 0; i < jsMath.TeX.fam.length; i++) { + var name = jsMath.TeX.fam[i]; + if (name) {this.EncodeFont(name)} + } + }, + + /* + * Look up the default height and depth for a TeX font + * and set the skewchar + */ + TeXfont: function (name) { + var font = jsMath.TeX[name]; if (font == null) return; + font.hd = jsMath.EmBoxFor(''+font[65].c+'').h; + font.d = jsMath.EmBoxFor(''+font[65].c+jsMath.HTML.Strut(font.hd)+'').h - font.hd; + font.h = font.hd - font.d; + if (name == 'cmmi10') {font.skewchar = 0177} + else if (name == 'cmsy10') {font.skewchar = 060} + }, + + /* + * Init all the TeX fonts + */ + TeXfonts: function () { + for (var i = 0; i < jsMath.TeX.fam.length; i++) + {if (jsMath.TeX.fam[i]) {this.TeXfont(jsMath.TeX.fam[i])}} + }, + + /* + * Compute font parameters for various sizes + */ + Sizes: function () { + jsMath.TeXparams = []; var i; var j; + for (j=0; j < jsMath.sizes.length; j++) {jsMath.TeXparams[j] = {}} + for (i in jsMath.TeX) { + if (typeof(jsMath.TeX[i]) != 'object') { + for (j=0; j < jsMath.sizes.length; j++) { + jsMath.TeXparams[j][i] = jsMath.sizes[j]*jsMath.TeX[i]/100; + } + } + } + }, + + /* + * Send the style definitions to the browser (these may be adjusted + * by the browser-specific code) + */ + Styles: function (styles) { + if (!styles) { + styles = jsMath.styles; + styles['.typeset .scale'] = {'font-size': jsMath.Controls.cookie.scale+'%'}; + this.stylesReady = 1; + } + jsMath.Script.Push(this,'AddStyleSheet',styles); + if (jsMath.Browser.styleChangeDelay) {jsMath.Script.Push(jsMath.Script,'Delay',1)} + }, + + /* + * Make a style string from a hash of style definitions, which are + * either strings themselves or hashes of style settings. + */ + StyleString: function (styles) { + var styleString = {}, id; + for (id in styles) { + if (typeof styles[id] === 'string') { + styleString[id] = styles[id]; + } else if (id.substr(0,1) === '@') { + styleString[id] = this.StyleString(styles[id]); + } else if (styles[id] != null) { + var style = []; + for (var name in styles[id]) { + if (styles[id][name] != null) + {style[style.length] = name + ': ' + styles[id][name]} + } + styleString[id] = style.join('; '); + } + } + var string = ''; + for (id in styleString) {string += id + " {"+styleString[id]+"}\n"} + return string; + }, + + AddStyleSheet: function (styles) { + var head = jsMath.document.getElementsByTagName('head')[0]; + if (head) { + var string = this.StyleString(styles); + if (jsMath.document.createStyleSheet) {// check for MSIE + head.insertAdjacentHTML('beforeEnd', + 'x' // MSIE needs this for some reason + + ''); + } else { + var style = jsMath.document.createElement('style'); style.type = "text/css"; + style.appendChild(jsMath.document.createTextNode(string)); + head.appendChild(style); + } + } else if (!jsMath.noHEAD) { + jsMath.noHEAD = 1; + alert("Document is missing its section. Style sheet can't be created without it."); + } + }, + + /* + * Do the initialization that requires the to be in place. + */ + Body: function () { + if (this.inited) return; + + this.inited = -1; + + jsMath.Setup.Hidden(); this.inited = -2; + jsMath.Browser.Init(); this.inited = -3; + + // blank screen if necessary + if (jsMath.Controls.cookie.blank) {jsMath.Message.Blank()}; this.inited = -4; + + jsMath.Setup.Styles(); this.inited = -5; + jsMath.Controls.Init(); this.inited = -6; + + // do user-specific initialization + jsMath.Script.Push(jsMath.Setup,'User','pre-font'); this.inited = -7; + + // make sure browser-specific loads are done before this + jsMath.Script.Push(jsMath.Font,'Check'); + if (jsMath.Font.register.length) + {jsMath.Script.Push(jsMath.Font,'LoadRegistered')} + + this.inited = 1; + }, + + /* + * Web page author can override the entries to the UserEvent hash + * functions that will be run at various times during jsMath's setup + * process. + */ + User: function (when) { + if (jsMath.Setup.UserEvent[when]) {(jsMath.Setup.UserEvent[when])()} + }, + + UserEvent: { + "pre-font": null, // after browser is set up but before fonts are tested + "onload": null // after jsMath.js is loaded and finished running + } + +}; + +jsMath.Update = { + + /* + * Update specific parameters for a limited number of font entries + */ + TeXfonts: function (change) { + for (var font in change) { + for (var code in change[font]) { + for (var id in change[font][code]) { + jsMath.TeX[font][code][id] = change[font][code][id]; + } + } + } + }, + + /* + * Update the character code for every character in a list + * of fonts + */ + TeXfontCodes: function (change) { + for (var font in change) { + for (var i = 0; i < change[font].length; i++) { + jsMath.TeX[font][i].c = change[font][i]; + } + } + } + +}; + +/***************************************************************************/ + +/* + * Implement browser-specific checks + */ + +jsMath.Browser = { + + allowAbsolute: 1, // tells if browser can nest absolutely positioned + // SPANs inside relative SPANs + allowAbsoluteDelim: 0, // OK to use absolute placement for building delims? + separateSkips: 0, // MSIE doesn't do negative left margins, and + // Netscape doesn't combine skips well + + valignBug: 0, // Konqueror doesn't nest vertical-align + operaHiddenFix: '', // for Opera to fix bug with math in tables + msieCenterBugFix: '', // for MSIE centering bug with image fonts + msieInlineBlockFix: '', // for MSIE alignment bug in non-quirks mode + msieSpaceFix: '', // for MSIE to avoid dropping empty spans + imgScale: 1, // MSI scales images for 120dpi screens, so compensate + + renameOK: 1, // tells if brower will find a tag whose name + // has been set via setAttributes + styleChangeDelay: 0, // true if style changes need a delay in order + // for them to be available + + delay: 1, // delay for asynchronous math processing + processAtOnce: 16, // number of math elements to process before screen update + + version: 0, // browser version number (when needed) + + /* + * Determine if the "top" of a is always at the same height + * or varies with the height of the rest of the line (MSIE). + */ + TestSpanHeight: function () { + jsMath.hidden.innerHTML = 'x'; + var span = jsMath.hidden.firstChild; + var img = span.firstChild; + this.spanHeightVaries = (span.offsetHeight >= img.offsetHeight && span.offsetHeight > 0); + this.spanHeightTooBig = (span.offsetHeight > img.offsetHeight); + jsMath.hidden.innerHTML = ''; + }, + + /* + * Determine if an inline-block with 0 width is OK or not + * and decide whether to use spans or images for spacing + */ + TestInlineBlock: function () { + this.block = "display:-moz-inline-box"; + this.hasInlineBlock = jsMath.BBoxFor('').w > 0; + if (this.hasInlineBlock) { + jsMath.styles['.typeset .blank'].display = '-moz-inline-box'; + delete jsMath.styles['.typeset .spacer'].display; + } else { + this.block = "display:inline-block"; + this.hasInlineBlock = jsMath.BBoxFor('').w > 0; + if (!this.hasInlineBlock) return; + } + this.block += ';overflow:hidden'; + var h = jsMath.BBoxFor('x').h; + this.mozInlineBlockBug = jsMath.BBoxFor( + 'x'+ + '').h > 2*h; + this.widthAddsBorder = jsMath.BBoxFor('').w > 10; + var h1 = jsMath.BBoxFor('x').h, + h2 = jsMath.BBoxFor('x').h, + h3 = jsMath.BBoxFor('').h; + this.msieBlockDepthBug = (h1 == h); + this.msieRuleDepthBug = (h2 == h); + this.blankWidthBug = (h3 == 0); + }, + + /* + * Determine if the NAME attribute of a tag can be changed + * using the setAttribute function, and then be properly + * returned by getElementByName. + */ + TestRenameOK: function () { + jsMath.hidden.innerHTML = ''; + var test = jsMath.hidden.firstChild; + test.setAttribute('name','jsMath_test'); + this.renameOK = (jsMath.document.getElementsByName('jsMath_test').length > 0); + jsMath.hidden.innerHTML = ''; + }, + + /* + * See if style changes occur immediately, or if we need to delay + * in order to let them take effect. + */ + TestStyleChange: function () { + jsMath.hidden.innerHTML = 'x'; + var span = jsMath.hidden.firstChild; + var w = span.offsetWidth; + jsMath.Setup.AddStyleSheet({'#jsMath_test': 'font-size:200%'}); + this.styleChangeDelay = (span.offsetWidth == w); + jsMath.hidden.innerHTML = ''; + }, + + /* + * Perform a version check on a standard version string + */ + VersionAtLeast: function (v) { + var bv = new String(this.version).split('.'); + v = new String(v).split('.'); if (v[1] == null) {v[1] = '0'} + return bv[0] > v[0] || (bv[0] == v[0] && bv[1] >= v[1]); + }, + + /* + * Test for browser characteristics, and adjust things + * to overcome specific browser bugs + */ + Init: function () { + jsMath.browser = 'unknown'; + this.TestInlineBlock(); + this.TestSpanHeight(); + this.TestRenameOK(); + this.TestStyleChange(); + + this.MSIE(); + this.Mozilla(); + this.Opera(); + this.OmniWeb(); + this.Safari(); + this.Konqueror(); + + // + // Change some routines depending on the browser + // + if (this.allowAbsoluteDelim) { + jsMath.Box.DelimExtend = jsMath.Box.DelimExtendAbsolute; + jsMath.Box.Layout = jsMath.Box.LayoutAbsolute; + } else { + jsMath.Box.DelimExtend = jsMath.Box.DelimExtendRelative; + jsMath.Box.Layout = jsMath.Box.LayoutRelative; + } + + if (this.separateSkips) { + jsMath.HTML.Place = jsMath.HTML.PlaceSeparateSkips; + jsMath.Typeset.prototype.Place = jsMath.Typeset.prototype.PlaceSeparateSkips; + } + }, + + // + // Handle bug-filled Internet Explorer + // + MSIE: function () { + if (jsMath.BBoxFor("").w) { + jsMath.browser = 'MSIE'; + if (jsMath.platform == 'pc') { + this.IE7 = (window.XMLHttpRequest != null); + this.IE8 = (jsMath.BBoxFor("").w > 0); + this.isReallyIE8 = (jsMath.document.documentMode != null); + this.quirks = (jsMath.document.compatMode == "BackCompat"); + this.msieMode = (jsMath.document.documentMode || (this.quirks ? 5 : 7)); + this.msieStandard6 = !this.quirks && !this.IE7; + this.allowAbsoluteDelim = 1; this.separateSkips = 1; + this.buttonCheck = 1; this.msieBlankBug = 1; + this.msieAccentBug = 1; this.msieRelativeClipBug = 1; + this.msieDivWidthBug = 1; this.msiePositionFixedBug = 1; + this.msieIntegralBug = 1; this.waitForImages = 1; + this.msieAlphaBug = !this.IE7; this.alphaPrintBug = !this.IE7; + this.msieCenterBugFix = 'position:relative; '; + this.msieInlineBlockFix = ' display:inline-block;'; + this.msie8HeightBug = this.msieBBoxBug = (this.msieMode == 8); + this.blankWidthBug = (this.msieMode != 8); + this.msieSpaceFix = (this.isReallyIE8 ? + '' : + ''); + jsMath.Macro('joinrel','\\mathrel{\\kern-5mu}'), + jsMath.Parser.prototype.mathchardef.mapstocharOrig = jsMath.Parser.prototype.mathchardef.mapstochar; + delete jsMath.Parser.prototype.mathchardef.mapstochar; + jsMath.Macro('mapstochar','\\rlap{\\mapstocharOrig\\,}\\kern1mu'), + jsMath.styles['.typeset .arial'] = {'font-family': "'Arial unicode MS'"}; + if (!this.IE7 || this.quirks) { + // MSIE doesn't implement fixed positioning, so use absolute + jsMath.styles['#jsMath_message'].position = 'absolute'; + delete jsMath.styles['#jsMath_message'].width; + jsMath.styles['#jsMath_panel'].position = 'absolute'; + delete jsMath.styles['#jsMath_panel'].width; + jsMath.styles['#jsMath_button'].width = '1px'; + jsMath.styles['#jsMath_button'].position = 'absolute' + delete jsMath.styles['#jsMath_button'].width; + jsMath.fixedDiv = jsMath.Setup.DIV("fixedDiv",{position:'absolute', zIndex: 101}); + jsMath.window.attachEvent("onscroll",jsMath.Controls.MoveButton); + jsMath.window.attachEvent("onresize",jsMath.Controls.MoveButton); + jsMath.Controls.MoveButton(); + } + // Make MSIE put borders around the whole button + jsMath.styles['#jsMath_noFont .link'].display = "inline-block"; + // MSIE needs this NOT to be inline-block + delete jsMath.styles['.typeset .spacer'].display; + // MSIE can't insert DIV's into text nodes, so tex2math must use SPAN's to fake DIV's + jsMath.styles['.tex2math_div'] = {}; jsMath.Add(jsMath.styles['.tex2math_div'],jsMath.styles['div.typeset']); + jsMath.styles['.tex2math_div'].width = '100%'; + jsMath.styles['.tex2math_div'].display = 'inline-block'; + // Reduce occurrance of zoom bug in IE7 + jsMath.styles['.typeset']['letter-spacing'] = '0'; + // MSIE will rescale images if the DPIs differ + if (screen.deviceXDPI && screen.logicalXDPI + && screen.deviceXDPI != screen.logicalXDPI) { + this.imgScale *= screen.logicalXDPI/screen.deviceXDPI; + jsMath.Controls.cookie.alpha = 0; + } + // IE8 doesn't puts ALL boxes at the bottom rather than on the baseline + if (this.msieRuleDepthBug) {jsMath.HTML.Strut = jsMath.HTML.msieStrut} + } else if (jsMath.platform == 'mac') { + this.msieAbsoluteBug = 1; this.msieButtonBug = 1; + this.msieDivWidthBug = 1; this.msieBlankBug = 1; + this.quirks = 1; + jsMath.Setup.Script('jsMath-msie-mac.js'); + jsMath.Parser.prototype.macros.angle = ['Replace','ord','','normal']; + jsMath.styles['#jsMath_panel'].width = '42em'; + jsMath.Controls.cookie.printwarn = 0; // MSIE/Mac doesn't handle '@media screen' + } + this.processAtOnce = Math.max(Math.floor((this.processAtOnce+1)/2),1); + jsMath.Macro('not','\\mathrel{\\rlap{\\kern3mu/}}'); + jsMath.Macro('angle','\\raise1.84pt{\\kern2.5mu\\rlap{\\scriptstyle/}\\kern.5pt\\rule{.4em}{-1.5pt}{1.84pt}\\kern2.5mu}'); + } + }, + + // + // Handle Netscape/Mozilla (any flavor) + // + Mozilla: function () { + if (jsMath.hidden.ATTRIBUTE_NODE && jsMath.window.directories) { + jsMath.browser = 'Mozilla'; + if (jsMath.platform == 'pc') {this.alphaPrintBug = 1} + this.allowAbsoluteDelim = 1; + jsMath.styles['#jsMath_button'].cursor = jsMath.styles['#jsMath_noFont .link'].cursor = 'pointer', + jsMath.Macro('not','\\mathrel{\\rlap{\\kern3mu/}}'); + jsMath.Macro('angle','\\raise1.34pt{\\kern2.5mu\\rlap{\\scriptstyle/}\\rule{.4em}{-1pt}{1.34pt}\\kern2.5mu}'); + if (navigator.vendor == 'Firefox') { + this.version = navigator.vendorSub; + } else if (navigator.userAgent.match(' Firefox/([0-9.]+)([a-z ]|$)')) { + this.version = RegExp.$1; + } + if (this.VersionAtLeast("3.0")) {this.mozImageSizeBug = this.lineBreakBug = 1} + } + }, + + // + // Handle OmniWeb + // + OmniWeb: function () { + if (navigator.accentColorName) { + jsMath.browser = 'OmniWeb'; + this.allowAbsolute = this.hasInlineBlock; + this.allowAbsoluteDelim = this.allowAbsolute; + this.valignBug = !this.allowAbsolute; + this.buttonCheck = 1; this.textNodeBug = 1; + jsMath.noChangeGlobal = 1; // OmniWeb craches on GoGlobal + if (!this.hasInlineBlock) {jsMath.Setup.Script('jsMath-old-browsers.js')} + } + }, + + // + // Handle Opera + // + Opera: function () { + if (this.spanHeightTooBig) { + jsMath.browser = 'Opera'; + var isOld = navigator.userAgent.match("Opera 7"); + this.allowAbsolute = 0; + this.delay = 10; + this.operaHiddenFix = '[Processing]'; + if (isOld) {jsMath.Setup.Script('jsMath-old-browsers.js')} + var version = navigator.appVersion.match(/^(\d+\.\d+)/); + if (version) {this.version = version[1]} else {this.vesion = 0} + this.operaAbsoluteWidthBug = this.operaLineHeightBug = (version[1] >= 9.5 && version[1] < 9.6); + } + }, + + // + // Handle Safari + // + Safari: function () { + if (navigator.appVersion.match(/Safari\//)) { + jsMath.browser = 'Safari'; + if (navigator.vendor.match(/Google/)) {jsMath.browser = 'Chrome'} + var version = navigator.userAgent.match("Safari/([0-9]+)"); + version = (version)? version[1] : 400; this.version = version; + jsMath.TeX.axis_height += .05; + this.allowAbsoluteDelim = version >= 125; + this.safariIFRAMEbug = version >= 312 && version < 412; + this.safariButtonBug = version < 412; + this.safariImgBug = 1; this.textNodeBug = 1; + this.lineBreakBug = version >= 526; + this.buttonCheck = version < 500; + this.styleChangeDelay = 1; + jsMath.Macro('not','\\mathrel{\\rlap{\\kern3.25mu/}}'); + } + }, + + // + // Handle Konqueror + // + Konqueror: function () { + if (navigator.product && navigator.product.match("Konqueror")) { + jsMath.browser = 'Konqueror'; + this.allowAbsolute = 0; + this.allowAbsoluteDelim = 0; + if (navigator.userAgent.match(/Konqueror\/(\d+)\.(\d+)/)) { + if (RegExp.$1 < 3 || (RegExp.$1 == 3 && RegExp.$2 < 3)) { + this.separateSkips = 1; + this.valignBug = 1; + jsMath.Setup.Script('jsMath-old-browsers.js'); + } + } + // Apparently, Konqueror wants the names without the hyphen + jsMath.Add(jsMath.styles,{ + '.typeset .cmr10': 'font-family: jsMath-cmr10, jsMath cmr10, serif', + '.typeset .cmbx10': 'font-family: jsMath-cmbx10, jsMath cmbx10, jsMath-cmr10, jsMath cmr10', + '.typeset .cmti10': 'font-family: jsMath-cmti10, jsMath cmti10, jsMath-cmr10, jsMath cmr10', + '.typeset .cmmi10': 'font-family: jsMath-cmmi10, jsMath cmmi10', + '.typeset .cmsy10': 'font-family: jsMath-cmsy10, jsMath cmsy10', + '.typeset .cmex10': 'font-family: jsMath-cmex10, jsMath cmex10' + }); + jsMath.Font.testFont = "jsMath-cmex10, jsMath cmex10"; + } + } + +}; + +/***************************************************************************/ + +/* + * Implement font check and messages + */ +jsMath.Font = { + + testFont: "jsMath-cmex10", + fallback: "symbol", // the default fallback method + register: [], // list of fonts registered before jsMath.Init() + + // the HTML for the missing font message + message: + 'No jsMath TeX fonts found -- using image fonts instead.
\n' + + 'These may be slow and might not print well.
\n' + + 'Use the jsMath control panel to get additional information.', + + extra_message: + 'Extra TeX fonts not found:
' + + 'Using image fonts instead. This may be slow and might not print well.
\n' + + 'Use the jsMath control panel to get additional information.', + + print_message: + 'To print higher-resolution math symbols, click the
\n' + + 'Hi-Res Fonts for Printing button on the jsMath control panel.
\n', + + alpha_message: + 'If the math symbols print as black boxes, turn off image alpha channels
\n' + + 'using the Options pane of the jsMath control panel.
\n', + + /* + * Look to see if a font is found. + * Check the character in a given position, and see if it is + * wider than the usual one in that position. + */ + Test1: function (name,n,factor,prefix) { + if (n == null) {n = 0x7C}; if (factor == null) {factor = 2}; if (prefix == null) {prefix = ''} + var wh1 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); + var wh2 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); + //alert([wh1.w,wh2.w,wh1.h,factor*wh2.w]); + return (wh1.w > factor*wh2.w && wh1.h != 0); + }, + + Test2: function (name,n,factor,prefix) { + if (n == null) {n = 0x7C}; if (factor == null) {factor = 2}; if (prefix == null) {prefix = ''} + var wh1 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); + var wh2 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); + //alert([wh2.w,wh1.w,wh1.h,factor*wh1.w]); + return (wh2.w > factor*wh1.w && wh1.h != 0); + }, + + /* + * Check for the new jsMath versions of the fonts (blacker with + * different encoding) and if not found, look for old-style fonts. + * If they are found, load the BaKoMa encoding information. + */ + CheckTeX: function () { + var wh = jsMath.BBoxFor(''+jsMath.TeX.cmex10[1].c+''); + jsMath.nofonts = ((wh.w*3 > wh.h || wh.h == 0) && !this.Test1('cmr10',null,null,'jsMath-')); + if (!jsMath.nofonts) return; + /* + * if (jsMath.browser != 'Mozilla' || + * (jsMath.platform == "mac" && + * (!jsMath.Browser.VersionAtLeast(1.5) || jsMath.Browser.VersionAtLeast(3.0))) || + * (jsMath.platform != "mac" && !jsMath.Browser.VersionAtLeast(3.0))) { + * wh = jsMath.BBoxFor(''+jsMath.TeX.cmex10[1].c+''); + * jsMath.nofonts = ((wh.w*3 > wh.h || wh.h == 0) && !this.Test1('cmr10')); + * if (!jsMath.nofonts) {jsMath.Setup.Script("jsMath-BaKoMa-fonts.js")} + * } + */ + }, + + /* + * Check for the availability of TeX fonts. We do this by looking at + * the width and height of a character in the cmex10 font. The cmex10 + * font has depth considerably greater than most characters' widths (the + * whole font has the depth of the character with greatest depth). This + * is not the case for most fonts, so if we can access cmex10, the + * height of a character should be much bigger than the width. + * Otherwise, if we don't have cmex10, we'll get a character in another + * font with normal height and width. In this case, we insert a message + * pointing the user to the jsMath site, and load one of the fallback + * definitions. + * + */ + Check: function () { + var cookie = jsMath.Controls.cookie; + this.CheckTeX(); + if (jsMath.nofonts) { + if (cookie.autofont || cookie.font == 'tex') { + cookie.font = this.fallback; + if (cookie.warn) { + jsMath.nofontMessage = 1; + cookie.warn = 0; jsMath.Controls.SetCookie(0); + if (jsMath.window.NoFontMessage) {jsMath.window.NoFontMessage()} + else {this.Message(this.message)} + } + } + } else { + if (cookie.autofont) {cookie.font = 'tex'} + if (cookie.font == 'tex') return; + } + if (jsMath.noImgFonts) {cookie.font = 'unicode'} + if (cookie.font == 'unicode') { + jsMath.Setup.Script('jsMath-fallback-'+jsMath.platform+'.js'); + jsMath.Box.TeXnonfallback = jsMath.Box.TeX; + jsMath.Box.TeX = jsMath.Box.TeXfallback; + return; + } + if (!cookie.print && cookie.printwarn) { + this.PrintMessage( + (jsMath.Browser.alphaPrintBug && jsMath.Controls.cookie.alpha) ? + this.print_message + this.alpha_message : this.print_message); + } + if (jsMath.Browser.waitForImages) { + jsMath.Script.Push(jsMath.Script,"WaitForImage",jsMath.blank); + } + if (cookie.font == 'symbol') { + jsMath.Setup.Script('jsMath-fallback-symbols.js'); + jsMath.Box.TeXnonfallback = jsMath.Box.TeX; + jsMath.Box.TeX = jsMath.Box.TeXfallback; + return; + } + jsMath.Img.SetFont({ + cmr10: ['all'], cmmi10: ['all'], cmsy10: ['all'], + cmex10: ['all'], cmbx10: ['all'], cmti10: ['all'] + }); + jsMath.Img.LoadFont('cm-fonts'); + }, + + /* + * The message for when no TeX fonts. You can eliminate this message + * by including + * + * + * + * in your HTML file, before loading jsMath.js, if you want. But this + * means the user may not know that he or she can get a better version + * of your page. + */ + Message: function (message) { + if (jsMath.Element("Warning")) return; + var div = jsMath.Setup.DIV("Warning",{}); + div.innerHTML = + '
' + + '
' + message + + '
' + + 'jsMath Control Panel' + + '' + + 'Hide this Message' + + '

' + + '
' + + '

'; + }, + + HideMessage: function () { + var message = jsMath.Element("Warning"); + if (message) {message.style.display = "none"} + }, + + PrintMessage: function (message) { + if (jsMath.Element("PrintWarning")) return; + var div = jsMath.Setup.DIV("PrintWarning",{}); + div.innerHTML = + '
' + + '
' + message + '
' + + '
' + + '

'; + }, + + /* + * Register an extra font so jsMath knows about it + */ + Register: function (data,force) { + if (typeof(data) == 'string') {data = {name: data}} + if (!jsMath.Setup.inited && !force) { + this.register[this.register.length] = data; + return; + } + var fontname = data.name; var name = fontname.replace(/10$/,''); + var fontfam = jsMath.TeX.fam.length; + if (data.prefix == null) {data.prefix = ""} + if (!data.style) {data.style = "font-family: "+data.prefix+fontname+", serif"} + if (!data.styles) {data.styles = {}} + if (!data.macros) {data.macros = {}} + /* + * Register font family + */ + jsMath.TeX.fam[fontfam] = fontname; + jsMath.TeX.famName[fontname] = fontfam; + data.macros[name] = ['HandleFont',fontfam]; + jsMath.Add(jsMath.Parser.prototype.macros,data.macros); + /* + * Set up styles + */ + data.styles['.typeset .'+fontname] = data.style; + jsMath.Setup.Styles(data.styles); + if (jsMath.initialized) {jsMath.Script.Push(jsMath.Setup,'TeXfont',fontname)} + /* + * Check for font and give message if missing + */ + var cookie = jsMath.Controls.cookie; + var hasTeXfont = !jsMath.nofonts && + data.test(fontname,data.testChar,data.testFactor,data.prefix); + if (hasTeXfont && cookie.font == 'tex') { + if (data.tex) {data.tex(fontname,fontfam,data)} + return; + } + if (!hasTeXfont && cookie.warn && cookie.font == 'tex' && !jsMath.nofonts) { + if (!cookie.fonts.match("/"+fontname+"/")) { + cookie.fonts += fontname + "/"; jsMath.Controls.SetCookie(0); + if (!jsMath.Element("Warning")) this.Message(this.extra_message); + var extra = jsMath.Element("ExtraFonts"); + if (extra) { + if (extra.innerHTML != "") {extra.innerHTML += ','} + extra.innerHTML += " " + data.prefix+fontname; + } + } + } + if (cookie.font == 'unicode' || jsMath.noImgFonts) { + if (data.fallback) {data.fallback(fontname,fontfam,data)} + return; + } + // Image fonts + var font = {}; + if (cookie.font == 'symbol' && data.symbol != null) { + font[fontname] = data.symbol(fontname,fontfam,data); + } else { + font[fontname] = ['all']; + } + jsMath.Img.SetFont(font); + jsMath.Img.LoadFont(fontname); + if (jsMath.initialized) { + jsMath.Script.Push(jsMath.Img,'Scale'); + jsMath.Script.Push(jsMath.Img,'UpdateFonts'); + } + }, + /* + * If fonts are registered before jsMath.Init() is called, jsMath.em + * will not be available, so they need to be delayed. + */ + LoadRegistered: function () { + var i = 0; + while (i < this.register.length) {this.Register(this.register[i++],1)} + this.register = []; + }, + + /* + * Load a font + */ + Load: function (name) {jsMath.Setup.Script(this.URL(name))}, + URL: function (name) {return jsMath.Img.root+name+'/def.js'} + +}; + +/***************************************************************************/ + +/* + * Implements the jsMath control panel. + * Much of the code is in jsMath-controls.html, which is + * loaded into a hidden IFRAME on demand + */ +jsMath.Controls = { + + // Data stored in the jsMath cookie + cookie: { + scale: 100, + font: 'tex', autofont: 1, scaleImg: 0, alpha: 1, + warn: 1, fonts: '/', printwarn: 1, stayhires: 0, + button: 1, progress: 1, asynch: 0, blank: 0, + print: 0, keep: '0D', global: 'auto', hiddenGlobal: 1 + }, + + cookiePath: '/', // can also set cookieDomain + noCookiePattern: /^(file|mk):$/, // pattern for handling cookies locally + + + /* + * Create the HTML needed for control panel + */ + Init: function () { + this.panel = jsMath.Setup.DIV("panel",{display:'none'},jsMath.fixedDiv); + if (!jsMath.Browser.msieButtonBug) {this.Button()} + else {setTimeout("jsMath.Controls.Button()",500)} + }, + + /* + * Load the control panel + */ + Panel: function () { + jsMath.Translate.Cancel(); + if (this.loaded) {this.Main()} + else {jsMath.Script.delayedLoad(jsMath.root+"jsMath-controls.html")} + }, + + /* + * Create the control panel button + */ + Button: function () { + var button = jsMath.Setup.DIV("button",{},jsMath.fixedDiv); + button.title = ' Open jsMath Control Panel '; + button.innerHTML = + 'jsMath'; + if (!jsMath.Global.isLocal && !jsMath.noShowGlobal) { + button.innerHTML += + 'Global '; + } + if (button.offsetWidth < 30) {button.style.width = "auto"} + if (!this.cookie.button) {button.style.display = "none"} + }, + + /* + * Since MSIE doesn't handle position:float, we need to have the + * window repositioned every time the window scrolls. We do that + * putting the floating elements into a window-sized DIV, but + * absolutely positioned, and then move the DIV. + */ + MoveButton: function () { + var body = (jsMath.Browser.quirks ? document.body : document.documentElement); + jsMath.fixedDiv.style.left = body.scrollLeft + 'px'; + jsMath.fixedDiv.style.top = body.scrollTop + body.clientHeight + 'px'; + jsMath.fixedDiv.style.width = body.clientWidth + 'px'; +// jsMath.fixedDiv.style.top = body.scrollTop + 'px'; +// jsMath.fixedDiv.style.height = body.clientHeight + 'px'; + }, + + /* + * Get the cookie data from the browser + * (for file: references, use url '?' syntax) + */ + GetCookie: function () { + // save the current cookie settings as the defaults + if (this.defaults == null) {this.defaults = {}} + jsMath.Add(this.defaults,this.cookie); this.userSet = {}; + // get the browser's cookie data + var cookies = jsMath.document.cookie; + if (jsMath.window.location.protocol.match(this.noCookiePattern)) { + cookies = this.localGetCookie(); + this.isLocalCookie = 1; + } + if (cookies.match(/jsMath=([^;]+)/)) { + var data = unescape(RegExp.$1).split(/,/); + for (var i = 0; i < data.length; i++) { + var x = data[i].match(/(.*):(.*)/); + if (x[2].match(/^\d+$/)) {x[2] = 1*x[2]} // convert from string + this.cookie[x[1]] = x[2]; + this.userSet[x[1]] = 1; + } + } + }, + localGetCookie: function () { + return jsMath.window.location.search.substr(1); + }, + + /* + * Save the cookie data in the browser + * (for file: urls, append data like CGI reference) + */ + SetCookie: function (warn) { + var cookie = []; + for (var id in this.cookie) { + if (this.defaults[id] == null || this.cookie[id] != this.defaults[id]) + {cookie[cookie.length] = id + ':' + this.cookie[id]} + } + cookie = cookie.join(','); + if (this.isLocalCookie) { + if (warn == 2) {return 'jsMath='+escape(cookie)} + this.localSetCookie(cookie,warn); + } else { + cookie = escape(cookie); + if (cookie == '') {warn = 0} + if (this.cookiePath) {cookie += '; path='+this.cookiePath} + if (this.cookieDomain) {cookie += '; domain='+this.cookieDomain} + if (this.cookie.keep != '0D') { + var ms = { + D: 1000*60*60*24, + W: 1000*60*60*24*7, + M: 1000*60*60*24*30, + Y: 1000*60*60*24*365 + }; + var exp = new Date; + exp.setTime(exp.getTime() + + this.cookie.keep.substr(0,1) * ms[this.cookie.keep.substr(1,1)]); + cookie += '; expires=' + exp.toGMTString(); + } + if (cookie != '') { + jsMath.document.cookie = 'jsMath='+cookie; + var cookies = jsMath.document.cookie; + if (warn && !cookies.match(/jsMath=/)) + {alert("Cookies must be enabled in order to save jsMath options")} + } + } + return null; + }, + localSetCookie: function (cookie,warn) { + if (!warn) return; + var href = String(jsMath.window.location).replace(/\?.*/,""); + if (cookie != '') {href += '?jsMath=' + escape(cookie)} + if (href != jsMath.window.location.href) {this.Reload(href)} + }, + + /* + * Reload the page (with the given URL) + */ + Reload: function (url) { + if (!this.loaded) return; + this.loaded = 0; jsMath.Setup.inited = -100; + jsMath.Global.ClearCache(); + if (url) {jsMath.window.location.replace(url)} + else {jsMath.window.location.reload()} + } + +}; + +/***************************************************************************/ + +/* + * Implements the actions for clicking and double-clicking + * on math formulas + */ +jsMath.Click = { + + /* + * Handle clicking on math to get control panel + */ + CheckClick: function (event) { + if (!event) {event = jsMath.window.event} + if (event.altKey) jsMath.Controls.Panel(); + }, + + /* + * Handle double-click for seeing TeX code + */ + + CheckDblClick: function (event) { + if (!event) {event = jsMath.window.event} + if (!jsMath.Click.DblClick) { + jsMath.Extension.Require('double-click',1); + // Firefox clears the event, so copy it + var tmpEvent = event; event = {}; + for (var id in tmpEvent) {event[id] = tmpEvent[id]} + } + jsMath.Script.Push(jsMath.Click,'DblClick',[event,this.alt]); + } + +}; + +/***************************************************************************/ + +/* + * The TeX font information + */ +jsMath.TeX = { + + // + // The TeX font parameters + // + thinmuskip: 3/18, + medmuskip: 4/18, + thickmuskip: 5/18, + + x_height: .430554, + quad: 1, + num1: .676508, + num2: .393732, + num3: .44373, + denom1: .685951, + denom2: .344841, + sup1: .412892, + sup2: .362892, + sup3: .288888, + sub1: .15, + sub2: .247217, + sup_drop: .386108, + sub_drop: .05, + delim1: 2.39, + delim2: 1.0, + axis_height: .25, + default_rule_thickness: .06, + big_op_spacing1: .111111, + big_op_spacing2: .166666, + big_op_spacing3: .2, + big_op_spacing4: .6, + big_op_spacing5: .1, + + integer: 6553.6, // conversion of em's to TeX internal integer + scriptspace: .05, + nulldelimiterspace: .12, + delimiterfactor: 901, + delimitershortfall: .5, + scale: 1, // scaling factor for font dimensions + + // The TeX math atom types (see Appendix G of the TeXbook) + atom: ['ord', 'op', 'bin', 'rel', 'open', 'close', 'punct', 'ord'], + + // The TeX font families + fam: ['cmr10','cmmi10','cmsy10','cmex10','cmti10','','cmbx10',''], + famName: {cmr10:0, cmmi10:1, cmsy10:2, cmex10:3, cmti10:4, cmbx10:6}, + + // Encoding used by jsMath fonts + encoding: [ + 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', + 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', + + '°', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '·', + 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'µ', '¶', 'ß', + + 'ï', '!', '"', '#', '$', '%', '&', ''', + '(', ')', '*', '+', ',', '-', '.', '/', + + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\', ']', '^', '_', + + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', 'ÿ' + ], + + /* + * The following are the TeX font mappings and metrics. The metric + * information comes directly from the TeX .tfm files. Browser-specific + * adjustments are made to these tables in the Browser.Init() routine + */ + cmr10: [ + [0.625,0.683], [0.833,0.683], [0.778,0.683], [0.694,0.683], + [0.667,0.683], [0.75,0.683], [0.722,0.683], [0.778,0.683], + [0.722,0.683], [0.778,0.683], [0.722,0.683], + [0.583,0.694,0,{ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}}], + [0.556,0.694], [0.556,0.694], [0.833,0.694], [0.833,0.694], + + [0.278,0.431], [0.306,0.431,0.194], [0.5,0.694], [0.5,0.694], + [0.5,0.628], [0.5,0.694], [0.5,0.568], [0.75,0.694], + [0.444,0,0.17], [0.5,0.694], [0.722,0.431], [0.778,0.431], + [0.5,0.528,0.0972], [0.903,0.683], [1.01,0.683], [0.778,0.732,0.0486], + + [0.278,0.431,0,{krn: {'108': -0.278, '76': -0.319}}], + [0.278,0.694,0,{lig: {'96': 60}}], + [0.5,0.694], [0.833,0.694,0.194], [0.5,0.75,0.0556], + [0.833,0.75,0.0556], [0.778,0.694], + [0.278,0.694,0,{krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}}], + [0.389,0.75,0.25], [0.389,0.75,0.25], [0.5,0.75], + [0.778,0.583,0.0833], [0.278,0.106,0.194], + [0.333,0.431,0,{lig: {'45': 123}}], + [0.278,0.106], [0.5,0.75,0.25], + + [0.5,0.644], [0.5,0.644], [0.5,0.644], [0.5,0.644], + [0.5,0.644], [0.5,0.644], [0.5,0.644], [0.5,0.644], + [0.5,0.644], [0.5,0.644], [0.278,0.431], [0.278,0.431,0.194], + [0.278,0.5,0.194], [0.778,0.367,-0.133], [0.472,0.5,0.194], + [0.472,0.694,0,{lig: {'96': 62}}], + + [0.778,0.694], + [0.75,0.683,0,{krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}], + [0.708,0.683], [0.722,0.683], + [0.764,0.683,0,{krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}], + [0.681,0.683], + [0.653,0.683,0,{krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], + [0.785,0.683], [0.75,0.683], [0.361,0.683,0,{krn: {'73': 0.0278}}], + [0.514,0.683], + [0.778,0.683,0,{krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], + [0.625,0.683,0,{krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}], + [0.917,0.683], [0.75,0.683], + [0.778,0.683,0,{krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}], + + [0.681,0.683,0,{krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}], + [0.778,0.683,0.194], + [0.736,0.683,0,{krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}], + [0.556,0.683], + [0.722,0.683,0,{krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}], + [0.75,0.683], + [0.75,0.683,0,{ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], + [1.03,0.683,0,{ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], + [0.75,0.683,0,{krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], + [0.75,0.683,0,{ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}], + [0.611,0.683], [0.278,0.75,0.25], [0.5,0.694], + [0.278,0.75,0.25], [0.5,0.694], [0.278,0.668], + + [0.278,0.694,0,{lig: {'96': 92}}], + [0.5,0.431,0,{krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], + [0.556,0.694,0,{krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], + [0.444,0.431,0,{krn: {'104': -0.0278, '107': -0.0278}}], + [0.556,0.694], [0.444,0.431], + [0.306,0.694,0,{ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}}], + [0.5,0.431,0.194,{ic: 0.0139, krn: {'106': 0.0278}}], + [0.556,0.694,0,{krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}], + [0.278,0.668], [0.306,0.668,0.194], + [0.528,0.694,0,{krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}], + [0.278,0.694], + [0.833,0.431,0,{krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}], + [0.556,0.431,0,{krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}], + [0.5,0.431,0,{krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], + + [0.556,0.431,0.194,{krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], + [0.528,0.431,0.194], [0.392,0.431], [0.394,0.431], + [0.389,0.615,0,{krn: {'121': -0.0278, '119': -0.0278}}], + [0.556,0.431,0,{krn: {'119': -0.0278}}], + [0.528,0.431,0,{ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}], + [0.722,0.431,0,{ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}], + [0.528,0.431], + [0.528,0.431,0.194,{ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}], + [0.444,0.431], [0.5,0.431,0,{ic: 0.0278, lig: {'45': 124}}], + [1,0.431,0,{ic: 0.0278}], [0.5,0.694], [0.5,0.668], [0.5,0.668] + ], + + cmmi10: [ + [0.615,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}], + [0.833,0.683,0,{krn: {'127': 0.167}}], + [0.763,0.683,0,{ic: 0.0278, krn: {'127': 0.0833}}], + [0.694,0.683,0,{krn: {'127': 0.167}}], + [0.742,0.683,0,{ic: 0.0757, krn: {'127': 0.0833}}], + [0.831,0.683,0,{ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], + [0.78,0.683,0,{ic: 0.0576, krn: {'127': 0.0833}}], + [0.583,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}}], + [0.667,0.683,0,{krn: {'127': 0.0833}}], + [0.612,0.683,0,{ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], + [0.772,0.683,0,{ic: 0.0502, krn: {'127': 0.0833}}], + [0.64,0.431,0,{ic: 0.0037, krn: {'127': 0.0278}}], + [0.566,0.694,0.194,{ic: 0.0528, krn: {'127': 0.0833}}], + [0.518,0.431,0.194,{ic: 0.0556}], + [0.444,0.694,0,{ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}}], + [0.406,0.431,0,{krn: {'127': 0.0556}}], + + [0.438,0.694,0.194,{ic: 0.0738, krn: {'127': 0.0833}}], + [0.497,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0556}}], + [0.469,0.694,0,{ic: 0.0278, krn: {'127': 0.0833}}], + [0.354,0.431,0,{krn: {'127': 0.0556}}], + [0.576,0.431], [0.583,0.694], + [0.603,0.431,0.194,{krn: {'127': 0.0278}}], + [0.494,0.431,0,{ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}}], + [0.438,0.694,0.194,{ic: 0.046, krn: {'127': 0.111}}], + [0.57,0.431,0,{ic: 0.0359}], + [0.517,0.431,0.194,{krn: {'127': 0.0833}}], + [0.571,0.431,0,{ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}}], + [0.437,0.431,0,{ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}}], + [0.54,0.431,0,{ic: 0.0359, krn: {'127': 0.0278}}], + [0.596,0.694,0.194,{krn: {'127': 0.0833}}], + [0.626,0.431,0.194,{krn: {'127': 0.0556}}], + + [0.651,0.694,0.194,{ic: 0.0359, krn: {'127': 0.111}}], + [0.622,0.431,0,{ic: 0.0359}], + [0.466,0.431,0,{krn: {'127': 0.0833}}], + [0.591,0.694,0,{krn: {'127': 0.0833}}], + [0.828,0.431,0,{ic: 0.0278}], + [0.517,0.431,0.194,{krn: {'127': 0.0833}}], + [0.363,0.431,0.0972,{ic: 0.0799, krn: {'127': 0.0833}}], + [0.654,0.431,0.194,{krn: {'127': 0.0833}}], + [1,0.367,-0.133], [1,0.367,-0.133], [1,0.367,-0.133], [1,0.367,-0.133], + [0.278,0.464,-0.0363], [0.278,0.464,-0.0363], [0.5,0.465,-0.0347], [0.5,0.465,-0.0347], + + [0.5,0.431], [0.5,0.431], [0.5,0.431], [0.5,0.431,0.194], + [0.5,0.431,0.194], [0.5,0.431,0.194], [0.5,0.644], [0.5,0.431,0.194], + [0.5,0.644], [0.5,0.431,0.194], [0.278,0.106], [0.278,0.106,0.194], + [0.778,0.539,0.0391], + [0.5,0.75,0.25,{krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}}], + [0.778,0.539,0.0391], [0.5,0.465,-0.0347], + + [0.531,0.694,0,{ic: 0.0556, krn: {'127': 0.0833}}], + [0.75,0.683,0,{krn: {'127': 0.139}}], + [0.759,0.683,0,{ic: 0.0502, krn: {'127': 0.0833}}], + [0.715,0.683,0,{ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], + [0.828,0.683,0,{ic: 0.0278, krn: {'127': 0.0556}}], + [0.738,0.683,0,{ic: 0.0576, krn: {'127': 0.0833}}], + [0.643,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}], + [0.786,0.683,0,{krn: {'127': 0.0833}}], + [0.831,0.683,0,{ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], + [0.44,0.683,0,{ic: 0.0785, krn: {'127': 0.111}}], + [0.555,0.683,0,{ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}}], + [0.849,0.683,0,{ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], + [0.681,0.683,0,{krn: {'127': 0.0278}}], + [0.97,0.683,0,{ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], + [0.803,0.683,0,{ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], + [0.763,0.683,0,{ic: 0.0278, krn: {'127': 0.0833}}], + + [0.642,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}], + [0.791,0.683,0.194,{krn: {'127': 0.0833}}], + [0.759,0.683,0,{ic: 0.00773, krn: {'127': 0.0833}}], + [0.613,0.683,0,{ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], + [0.584,0.683,0,{ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], + [0.683,0.683,0,{ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}}], + [0.583,0.683,0,{ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}], + [0.944,0.683,0,{ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}], + [0.828,0.683,0,{ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], + [0.581,0.683,0,{ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}], + [0.683,0.683,0,{ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], + [0.389,0.75], [0.389,0.694,0.194], [0.389,0.694,0.194], + [1,0.358,-0.142], [1,0.358,-0.142], + + [0.417,0.694,0,{krn: {'127': 0.111}}], + [0.529,0.431], [0.429,0.694], [0.433,0.431,0,{krn: {'127': 0.0556}}], + [0.52,0.694,0,{krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}}], + [0.466,0.431,0,{krn: {'127': 0.0556}}], + [0.49,0.694,0.194,{ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}}], + [0.477,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0278}}], + [0.576,0.694,0,{krn: {'127': -0.0278}}], [0.345,0.66], + [0.412,0.66,0.194,{ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}}], + [0.521,0.694,0,{ic: 0.0315}], [0.298,0.694,0,{ic: 0.0197, krn: {'127': 0.0833}}], + [0.878,0.431], [0.6,0.431], [0.485,0.431,0,{krn: {'127': 0.0556}}], + + [0.503,0.431,0.194,{krn: {'127': 0.0833}}], + [0.446,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0833}}], + [0.451,0.431,0,{ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}}], + [0.469,0.431,0,{krn: {'127': 0.0556}}], [0.361,0.615,0,{krn: {'127': 0.0833}}], + [0.572,0.431,0,{krn: {'127': 0.0278}}], + [0.485,0.431,0,{ic: 0.0359, krn: {'127': 0.0278}}], + [0.716,0.431,0,{ic: 0.0269, krn: {'127': 0.0833}}], + [0.572,0.431,0,{krn: {'127': 0.0278}}], + [0.49,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0556}}], + [0.465,0.431,0,{ic: 0.044, krn: {'127': 0.0556}}], + [0.322,0.431,0,{krn: {'127': 0.0278}}], + [0.384,0.431,0.194,{krn: {'127': 0.0833}}], + [0.636,0.431,0.194,{krn: {'127': 0.111}}], + [0.5,0.714,0,{ic: 0.154}], [0.278,0.694,0,{ic: 0.399}] + ], + + cmsy10: [ + [0.778,0.583,0.0833], [0.278,0.444,-0.0556], [0.778,0.583,0.0833], + [0.5,0.465,-0.0347], [0.778,0.583,0.0833], [0.5,0.444,-0.0556], + [0.778,0.583,0.0833], [0.778,0.583,0.0833], [0.778,0.583,0.0833], + [0.778,0.583,0.0833], [0.778,0.583,0.0833], [0.778,0.583,0.0833], + [0.778,0.583,0.0833], [1,0.694,0.194], [0.5,0.444,-0.0556], [0.5,0.444,-0.0556], + + [0.778,0.464,-0.0363], [0.778,0.464,-0.0363], [0.778,0.636,0.136], + [0.778,0.636,0.136], [0.778,0.636,0.136], [0.778,0.636,0.136], + [0.778,0.636,0.136], [0.778,0.636,0.136], [0.778,0.367,-0.133], + [0.778,0.483,-0.0169], [0.778,0.539,0.0391], [0.778,0.539,0.0391], + [1,0.539,0.0391], [1,0.539,0.0391], [0.778,0.539,0.0391], [0.778,0.539,0.0391], + + [1,0.367,-0.133], [1,0.367,-0.133], [0.5,0.694,0.194], [0.5,0.694,0.194], + [1,0.367,-0.133], [1,0.694,0.194], [1,0.694,0.194], [0.778,0.464,-0.0363], + [1,0.367,-0.133], [1,0.367,-0.133], [0.611,0.694,0.194], [0.611,0.694,0.194], + [1,0.367,-0.133], [1,0.694,0.194], [1,0.694,0.194], [0.778,0.431], + + [0.275,0.556], [1,0.431], [0.667,0.539,0.0391], [0.667,0.539,0.0391], + [0.889,0.694,0.194], [0.889,0.694,0.194], [0,0.694,0.194], [0,0.367,-0.133], + [0.556,0.694], [0.556,0.694], [0.667,0.431], [0.5,0.75,0.0556], + [0.722,0.694], [0.722,0.694], [0.778,0.694], [0.778,0.694], + + [0.611,0.694], [0.798,0.683,0,{krn: {'48': 0.194}}], + [0.657,0.683,0,{ic: 0.0304, krn: {'48': 0.139}}], + [0.527,0.683,0,{ic: 0.0583, krn: {'48': 0.139}}], + [0.771,0.683,0,{ic: 0.0278, krn: {'48': 0.0833}}], + [0.528,0.683,0,{ic: 0.0894, krn: {'48': 0.111}}], + [0.719,0.683,0,{ic: 0.0993, krn: {'48': 0.111}}], + [0.595,0.683,0.0972,{ic: 0.0593, krn: {'48': 0.111}}], + [0.845,0.683,0,{ic: 0.00965, krn: {'48': 0.111}}], + [0.545,0.683,0,{ic: 0.0738, krn: {'48': 0.0278}}], + [0.678,0.683,0.0972,{ic: 0.185, krn: {'48': 0.167}}], + [0.762,0.683,0,{ic: 0.0144, krn: {'48': 0.0556}}], + [0.69,0.683,0,{krn: {'48': 0.139}}], [1.2,0.683,0,{krn: {'48': 0.139}}], + [0.82,0.683,0,{ic: 0.147, krn: {'48': 0.0833}}], + [0.796,0.683,0,{ic: 0.0278, krn: {'48': 0.111}}], + + [0.696,0.683,0,{ic: 0.0822, krn: {'48': 0.0833}}], + [0.817,0.683,0.0972,{krn: {'48': 0.111}}], + [0.848,0.683,0,{krn: {'48': 0.0833}}], + [0.606,0.683,0,{ic: 0.075, krn: {'48': 0.139}}], + [0.545,0.683,0,{ic: 0.254, krn: {'48': 0.0278}}], + [0.626,0.683,0,{ic: 0.0993, krn: {'48': 0.0833}}], + [0.613,0.683,0,{ic: 0.0822, krn: {'48': 0.0278}}], + [0.988,0.683,0,{ic: 0.0822, krn: {'48': 0.0833}}], + [0.713,0.683,0,{ic: 0.146, krn: {'48': 0.139}}], + [0.668,0.683,0.0972,{ic: 0.0822, krn: {'48': 0.0833}}], + [0.725,0.683,0,{ic: 0.0794, krn: {'48': 0.139}}], + [0.667,0.556], [0.667,0.556], [0.667,0.556], [0.667,0.556], [0.667,0.556], + + [0.611,0.694], [0.611,0.694], [0.444,0.75,0.25], [0.444,0.75,0.25], + [0.444,0.75,0.25], [0.444,0.75,0.25], [0.5,0.75,0.25], [0.5,0.75,0.25], + [0.389,0.75,0.25], [0.389,0.75,0.25], [0.278,0.75,0.25], [0.5,0.75,0.25], + [0.5,0.75,0.25], [0.611,0.75,0.25], [0.5,0.75,0.25], [0.278,0.694,0.194], + + [0.833,0.04,0.96], [0.75,0.683], [0.833,0.683], [0.417,0.694,0.194,{ic: 0.111}], + [0.667,0.556], [0.667,0.556], [0.778,0.636,0.136], [0.778,0.636,0.136], + [0.444,0.694,0.194], [0.444,0.694,0.194], [0.444,0.694,0.194], + [0.611,0.694,0.194], [0.778,0.694,0.13], [0.778,0.694,0.13], + [0.778,0.694,0.13], [0.778,0.694,0.13] + ], + + cmex10: [ + [0.458,0.04,1.16,{n: 16}], [0.458,0.04,1.16,{n: 17}], + [0.417,0.04,1.16,{n: 104}], [0.417,0.04,1.16,{n: 105}], + [0.472,0.04,1.16,{n: 106}], [0.472,0.04,1.16,{n: 107}], + [0.472,0.04,1.16,{n: 108}], [0.472,0.04,1.16,{n: 109}], + [0.583,0.04,1.16,{n: 110}], [0.583,0.04,1.16,{n: 111}], + [0.472,0.04,1.16,{n: 68}], [0.472,0.04,1.16,{n: 69}], + [0.333,0,0.6,{delim: {rep: 12}}], [0.556,0,0.6,{delim: {rep: 13}}], + [0.578,0.04,1.16,{n: 46}], [0.578,0.04,1.16,{n: 47}], + + [0.597,0.04,1.76,{n: 18}], [0.597,0.04,1.76,{n: 19}], + [0.736,0.04,2.36,{n: 32}], [0.736,0.04,2.36,{n: 33}], + [0.528,0.04,2.36,{n: 34}], [0.528,0.04,2.36,{n: 35}], + [0.583,0.04,2.36,{n: 36}], [0.583,0.04,2.36,{n: 37}], + [0.583,0.04,2.36,{n: 38}], [0.583,0.04,2.36,{n: 39}], + [0.75,0.04,2.36,{n: 40}], [0.75,0.04,2.36,{n: 41}], + [0.75,0.04,2.36,{n: 42}], [0.75,0.04,2.36,{n: 43}], + [1.04,0.04,2.36,{n: 44}], [1.04,0.04,2.36,{n: 45}], + + [0.792,0.04,2.96,{n: 48}], [0.792,0.04,2.96,{n: 49}], + [0.583,0.04,2.96,{n: 50}], [0.583,0.04,2.96,{n: 51}], + [0.639,0.04,2.96,{n: 52}], [0.639,0.04,2.96,{n: 53}], + [0.639,0.04,2.96,{n: 54}], [0.639,0.04,2.96,{n: 55}], + [0.806,0.04,2.96,{n: 56}], [0.806,0.04,2.96,{n: 57}], + [0.806,0.04,2.96], [0.806,0.04,2.96], + [1.28,0.04,2.96], [1.28,0.04,2.96], + [0.811,0.04,1.76,{n: 30}], [0.811,0.04,1.76,{n: 31}], + + [0.875,0.04,1.76,{delim: {top: 48, bot: 64, rep: 66}}], + [0.875,0.04,1.76,{delim: {top: 49, bot: 65, rep: 67}}], + [0.667,0.04,1.76,{delim: {top: 50, bot: 52, rep: 54}}], + [0.667,0.04,1.76,{delim: {top: 51, bot: 53, rep: 55}}], + [0.667,0.04,1.76,{delim: {bot: 52, rep: 54}}], + [0.667,0.04,1.76,{delim: {bot: 53, rep: 55}}], + [0.667,0,0.6,{delim: {top: 50, rep: 54}}], + [0.667,0,0.6,{delim: {top: 51, rep: 55}}], + [0.889,0,0.9,{delim: {top: 56, mid: 60, bot: 58, rep: 62}}], + [0.889,0,0.9,{delim: {top: 57, mid: 61, bot: 59, rep: 62}}], + [0.889,0,0.9,{delim: {top: 56, bot: 58, rep: 62}}], + [0.889,0,0.9,{delim: {top: 57, bot: 59, rep: 62}}], + [0.889,0,1.8,{delim: {rep: 63}}], + [0.889,0,1.8,{delim: {rep: 119}}], + [0.889,0,0.3,{delim: {rep: 62}}], + [0.667,0,0.6,{delim: {top: 120, bot: 121, rep: 63}}], + + [0.875,0.04,1.76,{delim: {top: 56, bot: 59, rep: 62}}], + [0.875,0.04,1.76,{delim: {top: 57, bot: 58, rep: 62}}], + [0.875,0,0.6,{delim: {rep: 66}}], [0.875,0,0.6,{delim: {rep: 67}}], + [0.611,0.04,1.76,{n: 28}], [0.611,0.04,1.76,{n: 29}], + [0.833,0,1,{n: 71}], [1.11,0.1,1.5], [0.472,0,1.11,{ic: 0.194, n: 73}], + [0.556,0,2.22,{ic: 0.444}], [1.11,0,1,{n: 75}], [1.51,0.1,1.5], + [1.11,0,1,{n: 77}], [1.51,0.1,1.5], [1.11,0,1,{n: 79}], [1.51,0.1,1.5], + + [1.06,0,1,{n: 88}], [0.944,0,1,{n: 89}], [0.472,0,1.11,{ic: 0.194, n: 90}], + [0.833,0,1,{n: 91}], [0.833,0,1,{n: 92}], [0.833,0,1,{n: 93}], + [0.833,0,1,{n: 94}], [0.833,0,1,{n: 95}], [1.44,0.1,1.5], + [1.28,0.1,1.5], [0.556,0,2.22,{ic: 0.444}], [1.11,0.1,1.5], + [1.11,0.1,1.5], [1.11,0.1,1.5], [1.11,0.1,1.5], [1.11,0.1,1.5], + + [0.944,0,1,{n: 97}], [1.28,0.1,1.5], [0.556,0.722,0,{n: 99}], + [1,0.75,0,{n: 100}], [1.44,0.75], [0.556,0.722,0,{n: 102}], + [1,0.75,0,{n: 103}], [1.44,0.75], [0.472,0.04,1.76,{n: 20}], + [0.472,0.04,1.76,{n: 21}], [0.528,0.04,1.76,{n: 22}], + [0.528,0.04,1.76,{n: 23}], [0.528,0.04,1.76,{n: 24}], + [0.528,0.04,1.76,{n: 25}], [0.667,0.04,1.76,{n: 26}], + [0.667,0.04,1.76,{n: 27}], + + [1,0.04,1.16,{n: 113}], [1,0.04,1.76,{n: 114}], [1,0.04,2.36,{n: 115}], + [1,0.04,2.96,{n: 116}], [1.06,0,1.8,{delim: {top: 118, bot: 116, rep: 117}}], + [1.06,0,0.6], [1.06,0.04,0.56], + [0.778,0,0.6,{delim: {top: 126, bot: 127, rep: 119}}], + [0.667,0,0.6,{delim: {top: 120, rep: 63}}], + [0.667,0,0.6,{delim: {bot: 121, rep: 63}}], + [0.45,0.12], [0.45,0.12], [0.45,0.12], [0.45,0.12], + [0.778,0,0.6,{delim: {top: 126, rep: 119}}], + [0.778,0,0.6,{delim: {bot: 127, rep: 119}}] + ], + + cmti10: [ + [0.627,0.683,0,{ic: 0.133}], [0.818,0.683], [0.767,0.683,0,{ic: 0.094}], + [0.692,0.683], [0.664,0.683,0,{ic: 0.153}], [0.743,0.683,0,{ic: 0.164}], + [0.716,0.683,0,{ic: 0.12}], [0.767,0.683,0,{ic: 0.111}], + [0.716,0.683,0,{ic: 0.0599}], [0.767,0.683,0,{ic: 0.111}], + [0.716,0.683,0,{ic: 0.103}], + [0.613,0.694,0.194,{ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}}], + [0.562,0.694,0.194,{ic: 0.103}], [0.588,0.694,0.194,{ic: 0.103}], + [0.882,0.694,0.194,{ic: 0.103}], [0.894,0.694,0.194,{ic: 0.103}], + + [0.307,0.431,0,{ic: 0.0767}], [0.332,0.431,0.194,{ic: 0.0374}], + [0.511,0.694], [0.511,0.694,0,{ic: 0.0969}], [0.511,0.628,0,{ic: 0.083}], + [0.511,0.694,0,{ic: 0.108}], [0.511,0.562,0,{ic: 0.103}], [0.831,0.694], + [0.46,0,0.17], [0.537,0.694,0.194,{ic: 0.105}], [0.716,0.431,0,{ic: 0.0751}], + [0.716,0.431,0,{ic: 0.0751}], [0.511,0.528,0.0972,{ic: 0.0919}], + [0.883,0.683,0,{ic: 0.12}], [0.985,0.683,0,{ic: 0.12}], + [0.767,0.732,0.0486,{ic: 0.094}], + + [0.256,0.431,0,{krn: {'108': -0.256, '76': -0.321}}], + [0.307,0.694,0,{ic: 0.124, lig: {'96': 60}}], + [0.514,0.694,0,{ic: 0.0696}], [0.818,0.694,0.194,{ic: 0.0662}], + [0.769,0.694], [0.818,0.75,0.0556,{ic: 0.136}], + [0.767,0.694,0,{ic: 0.0969}], + [0.307,0.694,0,{ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}}], + [0.409,0.75,0.25,{ic: 0.162}], [0.409,0.75,0.25,{ic: 0.0369}], + [0.511,0.75,0,{ic: 0.149}], [0.767,0.562,0.0567,{ic: 0.0369}], + [0.307,0.106,0.194], [0.358,0.431,0,{ic: 0.0283, lig: {'45': 123}}], + [0.307,0.106], [0.511,0.75,0.25,{ic: 0.162}], + + [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], + [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], + [0.511,0.644,0.194,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], + [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0.194,{ic: 0.136}], + [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], + [0.307,0.431,0,{ic: 0.0582}], [0.307,0.431,0.194,{ic: 0.0582}], + [0.307,0.5,0.194,{ic: 0.0756}], [0.767,0.367,-0.133,{ic: 0.0662}], + [0.511,0.5,0.194], [0.511,0.694,0,{ic: 0.122, lig: {'96': 62}}], + + [0.767,0.694,0,{ic: 0.096}], + [0.743,0.683,0,{krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.704,0.683,0,{ic: 0.103}], [0.716,0.683,0,{ic: 0.145}], + [0.755,0.683,0,{ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}], + [0.678,0.683,0,{ic: 0.12}], + [0.653,0.683,0,{ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], + [0.774,0.683,0,{ic: 0.0872}], [0.743,0.683,0,{ic: 0.164}], + [0.386,0.683,0,{ic: 0.158}], [0.525,0.683,0,{ic: 0.14}], + [0.769,0.683,0,{ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], + [0.627,0.683,0,{krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.897,0.683,0,{ic: 0.164}], [0.743,0.683,0,{ic: 0.164}], + [0.767,0.683,0,{ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}], + + [0.678,0.683,0,{ic: 0.103, krn: {'65': -0.0767}}], + [0.767,0.683,0.194,{ic: 0.094}], + [0.729,0.683,0,{ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.562,0.683,0,{ic: 0.12}], + [0.716,0.683,0,{ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}], + [0.743,0.683,0,{ic: 0.164}], + [0.743,0.683,0,{ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], + [0.999,0.683,0,{ic: 0.184, krn: {'65': -0.0767}}], + [0.743,0.683,0,{ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], + [0.743,0.683,0,{ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}], + [0.613,0.683,0,{ic: 0.145}], [0.307,0.75,0.25,{ic: 0.188}], + [0.514,0.694,0,{ic: 0.169}], [0.307,0.75,0.25,{ic: 0.105}], + [0.511,0.694,0,{ic: 0.0665}], [0.307,0.668,0,{ic: 0.118}], + + [0.307,0.694,0,{ic: 0.124, lig: {'96': 92}}], [0.511,0.431,0,{ic: 0.0767}], + [0.46,0.694,0,{ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.46,0.431,0,{ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.511,0.694,0,{ic: 0.103, krn: {'108': 0.0511}}], + [0.46,0.431,0,{ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.307,0.694,0.194,{ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}}], + [0.46,0.431,0.194,{ic: 0.0885}], [0.511,0.694,0,{ic: 0.0767}], + [0.307,0.655,0,{ic: 0.102}], [0.307,0.655,0.194,{ic: 0.145}], + [0.46,0.694,0,{ic: 0.108}], [0.256,0.694,0,{ic: 0.103, krn: {'108': 0.0511}}], + [0.818,0.431,0,{ic: 0.0767}], [0.562,0.431,0,{ic: 0.0767, krn: {'39': -0.102}}], + [0.511,0.431,0,{ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + + [0.511,0.431,0.194,{ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.46,0.431,0.194,{ic: 0.0885}], + [0.422,0.431,0,{ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], + [0.409,0.431,0,{ic: 0.0821}], [0.332,0.615,0,{ic: 0.0949}], + [0.537,0.431,0,{ic: 0.0767}], [0.46,0.431,0,{ic: 0.108}], + [0.664,0.431,0,{ic: 0.108, krn: {'108': 0.0511}}], + [0.464,0.431,0,{ic: 0.12}], [0.486,0.431,0.194,{ic: 0.0885}], + [0.409,0.431,0,{ic: 0.123}], [0.511,0.431,0,{ic: 0.0921, lig: {'45': 124}}], + [1.02,0.431,0,{ic: 0.0921}], [0.511,0.694,0,{ic: 0.122}], + [0.511,0.668,0,{ic: 0.116}], [0.511,0.668,0,{ic: 0.105}] + ], + + cmbx10: [ + [0.692,0.686], [0.958,0.686], [0.894,0.686], [0.806,0.686], + [0.767,0.686], [0.9,0.686], [0.831,0.686], [0.894,0.686], + [0.831,0.686], [0.894,0.686], [0.831,0.686], + [0.671,0.694,0,{ic: 0.109, krn: {'39': 0.109, '63': 0.109, '33': 0.109, '41': 0.109, '93': 0.109}, lig: {'105': 14, '108': 15}}], + [0.639,0.694], [0.639,0.694], [0.958,0.694], [0.958,0.694], + + [0.319,0.444], [0.351,0.444,0.194], [0.575,0.694], [0.575,0.694], + [0.575,0.632], [0.575,0.694], [0.575,0.596], [0.869,0.694], + [0.511,0,0.17], [0.597,0.694], [0.831,0.444], [0.894,0.444], + [0.575,0.542,0.0972], [1.04,0.686], [1.17,0.686], [0.894,0.735,0.0486], + + [0.319,0.444,0,{krn: {'108': -0.319, '76': -0.378}}], + [0.35,0.694,0,{lig: {'96': 60}}], [0.603,0.694], [0.958,0.694,0.194], + [0.575,0.75,0.0556], [0.958,0.75,0.0556], [0.894,0.694], + [0.319,0.694,0,{krn: {'63': 0.128, '33': 0.128}, lig: {'39': 34}}], + [0.447,0.75,0.25], [0.447,0.75,0.25], [0.575,0.75], [0.894,0.633,0.133], + [0.319,0.156,0.194], [0.383,0.444,0,{lig: {'45': 123}}], + [0.319,0.156], [0.575,0.75,0.25], + + [0.575,0.644], [0.575,0.644], [0.575,0.644], [0.575,0.644], + [0.575,0.644], [0.575,0.644], [0.575,0.644], [0.575,0.644], + [0.575,0.644], [0.575,0.644], [0.319,0.444], [0.319,0.444,0.194], + [0.35,0.5,0.194], [0.894,0.391,-0.109], [0.543,0.5,0.194], + [0.543,0.694,0,{lig: {'96': 62}}], + + [0.894,0.694], + [0.869,0.686,0,{krn: {'116': -0.0319, '67': -0.0319, '79': -0.0319, '71': -0.0319, '85': -0.0319, '81': -0.0319, '84': -0.0958, '89': -0.0958, '86': -0.128, '87': -0.128}}], + [0.818,0.686], [0.831,0.686], + [0.882,0.686,0,{krn: {'88': -0.0319, '87': -0.0319, '65': -0.0319, '86': -0.0319, '89': -0.0319}}], + [0.756,0.686], + [0.724,0.686,0,{krn: {'111': -0.0958, '101': -0.0958, '117': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.128, '79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], + [0.904,0.686], [0.9,0.686], [0.436,0.686,0,{krn: {'73': 0.0319}}], + [0.594,0.686], + [0.901,0.686,0,{krn: {'79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], + [0.692,0.686,0,{krn: {'84': -0.0958, '89': -0.0958, '86': -0.128, '87': -0.128}}], + [1.09,0.686], [0.9,0.686], + [0.864,0.686,0,{krn: {'88': -0.0319, '87': -0.0319, '65': -0.0319, '86': -0.0319, '89': -0.0319}}], + + [0.786,0.686,0,{krn: {'65': -0.0958, '111': -0.0319, '101': -0.0319, '97': -0.0319, '46': -0.0958, '44': -0.0958}}], + [0.864,0.686,0.194], + [0.862,0.686,0,{krn: {'116': -0.0319, '67': -0.0319, '79': -0.0319, '71': -0.0319, '85': -0.0319, '81': -0.0319, '84': -0.0958, '89': -0.0958, '86': -0.128, '87': -0.128}}], + [0.639,0.686], + [0.8,0.686,0,{krn: {'121': -0.0319, '101': -0.0958, '111': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.0958, '117': -0.0958}}], + [0.885,0.686], + [0.869,0.686,0,{ic: 0.016, krn: {'111': -0.0958, '101': -0.0958, '117': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.128, '79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], + [1.19,0.686,0,{ic: 0.016, krn: {'111': -0.0958, '101': -0.0958, '117': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.128, '79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], + [0.869,0.686,0,{krn: {'79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], + [0.869,0.686,0,{ic: 0.0287, krn: {'101': -0.0958, '111': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.0958, '117': -0.0958}}], + [0.703,0.686], [0.319,0.75,0.25], [0.603,0.694], [0.319,0.75,0.25], + [0.575,0.694], [0.319,0.694], + + [0.319,0.694,0,{lig: {'96': 92}}], + [0.559,0.444,0,{krn: {'118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], + [0.639,0.694,0,{krn: {'101': 0.0319, '111': 0.0319, '120': -0.0319, '100': 0.0319, '99': 0.0319, '113': 0.0319, '118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], + [0.511,0.444,0,{krn: {'104': -0.0319, '107': -0.0319}}], + [0.639,0.694], [0.527,0.444], + [0.351,0.694,0,{ic: 0.109, krn: {'39': 0.109, '63': 0.109, '33': 0.109, '41': 0.109, '93': 0.109}, lig: {'105': 12, '102': 11, '108': 13}}], + [0.575,0.444,0.194,{ic: 0.016, krn: {'106': 0.0319}}], + [0.639,0.694,0,{krn: {'116': -0.0319, '117': -0.0319, '98': -0.0319, '121': -0.0319, '118': -0.0319, '119': -0.0319}}], + [0.319,0.694], [0.351,0.694,0.194], + [0.607,0.694,0,{krn: {'97': -0.0639, '101': -0.0319, '97': -0.0319, '111': -0.0319, '99': -0.0319}}], + [0.319,0.694], + [0.958,0.444,0,{krn: {'116': -0.0319, '117': -0.0319, '98': -0.0319, '121': -0.0319, '118': -0.0319, '119': -0.0319}}], + [0.639,0.444,0,{krn: {'116': -0.0319, '117': -0.0319, '98': -0.0319, '121': -0.0319, '118': -0.0319, '119': -0.0319}}], + [0.575,0.444,0,{krn: {'101': 0.0319, '111': 0.0319, '120': -0.0319, '100': 0.0319, '99': 0.0319, '113': 0.0319, '118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], + + [0.639,0.444,0.194,{krn: {'101': 0.0319, '111': 0.0319, '120': -0.0319, '100': 0.0319, '99': 0.0319, '113': 0.0319, '118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], + [0.607,0.444,0.194], [0.474,0.444], [0.454,0.444], + [0.447,0.635,0,{krn: {'121': -0.0319, '119': -0.0319}}], + [0.639,0.444,0,{krn: {'119': -0.0319}}], + [0.607,0.444,0,{ic: 0.016, krn: {'97': -0.0639, '101': -0.0319, '97': -0.0319, '111': -0.0319, '99': -0.0319}}], + [0.831,0.444,0,{ic: 0.016, krn: {'101': -0.0319, '97': -0.0319, '111': -0.0319, '99': -0.0319}}], + [0.607,0.444], + [0.607,0.444,0.194,{ic: 0.016, krn: {'111': -0.0319, '101': -0.0319, '97': -0.0319, '46': -0.0958, '44': -0.0958}}], + [0.511,0.444], [0.575,0.444,0,{ic: 0.0319, lig: {'45': 124}}], + [1.15,0.444,0,{ic: 0.0319}], [0.575,0.694], [0.575,0.694], [0.575,0.694] + ] +}; + +/***************************************************************************/ + +/* + * Implement image-based fonts for fallback method + */ +jsMath.Img = { + + // font sizes available + fonts: [50, 60, 70, 85, 100, 120, 144, 173, 207, 249, 298, 358, 430], + + // em widths for the various font size directories + w: {'50': 6.9, '60': 8.3, '70': 9.7, '85': 11.8, '100': 13.9, + '120': 16.7, '144': 20.0, '173': 24.0, '207': 28.8, '249': 34.6, + '298': 41.4, '358': 49.8, '430': 59.8}, + + best: 4, // index of best font size in the fonts list + update: {}, // fonts to update (see UpdateFonts below) + factor: 1, // factor by which to shrink images (for better printing) + loaded: 0, // image fonts are loaded + + // add characters to be drawn using images + SetFont: function (change) { + for (var font in change) { + if (!this.update[font]) {this.update[font] = []} + this.update[font] = this.update[font].concat(change[font]); + } + }, + + /* + * Called by the exta-font definition files to add an image font + * into the mix + */ + AddFont: function (size,def) { + if (!jsMath.Img[size]) {jsMath.Img[size] = {}}; + jsMath.Add(jsMath.Img[size],def); + }, + + /* + * Update font(s) to use image data rather than native fonts + * It looks in the jsMath.Img.update array to find the names + * of the fonts to udpate, and the arrays of character codes + * to set (or 'all' to change every character); + */ + UpdateFonts: function () { + var change = this.update; if (!this.loaded) return; + for (var font in change) { + for (var i = 0; i < change[font].length; i++) { + var c = change[font][i]; + if (c == 'all') {for (c in jsMath.TeX[font]) {jsMath.TeX[font][c].img = {}}} + else {jsMath.TeX[font][c].img = {}} + } + } + this.update = {}; + }, + + /* + * Find the font size that best fits our current font + * (this is the directory name for the img files used + * in some fallback modes). + */ + BestSize: function () { + var w = jsMath.em * this.factor; + var m = this.w[this.fonts[0]]; + for (var i = 1; i < this.fonts.length; i++) { + if (w < (this.w[this.fonts[i]] + 2*m) / 3) {return i-1} + m = this.w[this.fonts[i]]; + } + return i-1; + }, + + /* + * Get the scaling factor for the image fonts + */ + Scale: function () { + if (!this.loaded) return; + this.best = this.BestSize(); + this.em = jsMath.Img.w[this.fonts[this.best]]; + this.scale = (jsMath.em/this.em); + if (Math.abs(this.scale - 1) < .12) {this.scale = 1} + }, + + /* + * Get URL to directory for given font and size, based on the + * user's alpha/plain setting + */ + URL: function (name,size,C) { + var type = (jsMath.Controls.cookie.alpha) ? '/alpha/': '/plain/'; + if (C == null) {C = "def.js"} else {C = 'char'+C+'.png'} + if (size != "") {size += '/'} + return this.root+name+type+size+C; + }, + + /* + * Laod the data for an image font + */ + LoadFont: function (name) { + if (!this.loaded) this.Init(); + jsMath.Setup.Script(this.URL(name,"")); + }, + + /* + * Setup for print mode, and create the hex code table + */ + Init: function () { + if (jsMath.Controls.cookie.print || jsMath.Controls.cookie.stayhires) { + jsMath.Controls.cookie.print = jsMath.Controls.cookie.stayhires; + this.factor *= 3; + if (!jsMath.Controls.isLocalCookie || !jsMath.Global.isLocal) {jsMath.Controls.SetCookie(0)} + if (jsMath.Browser.alphaPrintBug) {jsMath.Controls.cookie.alpha = 0} + } + var codes = '0123456789ABCDEF'; + this.HexCode = []; + for (var i = 0; i < 128; i++) { + var h = Math.floor(i/16); var l = i - 16*h; + this.HexCode[i] = codes.charAt(h)+codes.charAt(l); + } + this.loaded = 1; + } + +}; + +/***************************************************************************/ + +/* + * jsMath.HTML handles creation of most of the HTML needed for + * presenting mathematics in HTML pages. + */ + +jsMath.HTML = { + + /* + * Produce a string version of a measurement in ems, + * showing only a limited number of digits, and + * using 0 when the value is near zero. + */ + Em: function (m) { + if (Math.abs(m) < .000001) {m = 0} + var s = String(m); s = s.replace(/(\.\d\d\d).+/,'$1'); + return s+'em' + }, + + /* + * Create a horizontal space of width w + */ + Spacer: function (w) { + if (w == 0) {return ''}; + return jsMath.Browser.msieSpaceFix+''; + }, + + /* + * Create a blank rectangle of the given size + * If the height is small, it is converted to pixels so that it + * will not disappear at small font sizes. + */ + + Blank: function (w,h,d,isRule) { + var backspace = ''; var style = '' + if (isRule) { + style += 'border-left:'+this.Em(w)+' solid;'; + if (jsMath.Browser.widthAddsBorder) {w = 0}; + } + if (w == 0) { + if (jsMath.Browser.blankWidthBug) { + if (jsMath.Browser.quirks) { + style += 'width:1px;'; + backspace = '' + } else if (!isRule) { + style += 'width:1px;margin-right:-1px;'; + } + } + } else {style += 'width:'+this.Em(w)+';'} + if (d == null) {d = 0} + if (h) { + var H = this.Em(h+d); + if (isRule && h*jsMath.em <= 1.5) {H = "1.5px"; h = 1.5/jsMath.em} + style += 'height:'+H+';'; + } + if (jsMath.Browser.mozInlineBlockBug) {d = -h} + if (jsMath.Browser.msieBlockDepthBug && !isRule) {d -= jsMath.d} + if (d) {style += 'vertical-align:'+this.Em(-d)} + return backspace+''; + }, + + /* + * Create a rule line for fractions, etc. + */ + Rule: function (w,h) { + if (h == null) {h = jsMath.TeX.default_rule_thickness} + return this.Blank(w,h,0,1); + }, + + /* + * Create a strut for measuring position of baseline + */ + Strut: function (h) {return this.Blank(1,h,0,1)}, + msieStrut: function (h) { + return '' + }, + + /* + * Add a tag to activate a specific CSS class + */ + Class: function (tclass,html) { + return ''+html+''; + }, + + /* + * Use a to place some HTML at a specific position. + * (This can be replaced by the ones below to overcome + * some browser-specific bugs.) + */ + Place: function (html,x,y) { + if (Math.abs(x) < .0001) {x = 0} + if (Math.abs(y) < .0001) {y = 0} + if (x || y) { + var span = '' + html + ''; + } + return html; + }, + + /* + * For MSIE on Windows, backspacing must be done in a separate + * , otherwise the contents will be clipped. Netscape + * also doesn't combine vertical and horizontal spacing well. + * Here the x and y positioning are done in separate tags + */ + PlaceSeparateSkips: function (html,x,y,mw,Mw,w) { + if (Math.abs(x) < .0001) {x = 0} + if (Math.abs(y) < .0001) {y = 0} + if (y) { + var lw = 0; var rw = 0; var width = ""; + if (mw != null) { + rw = Mw - w; lw = mw; + width = ' width:'+this.Em(Mw-mw)+';'; + } + html = + this.Spacer(lw-rw) + + '' + + this.Spacer(-lw) + + html + + this.Spacer(rw) + + '' + } + if (x) {html = this.Spacer(x) + html} + return html; + }, + + /* + * Place a SPAN with absolute coordinates + */ + PlaceAbsolute: function (html,x,y,mw,Mw,w) { + if (Math.abs(x) < .0001) {x = 0} + if (Math.abs(y) < .0001) {y = 0} + var leftSpace = ""; var rightSpace = ""; var width = ""; + if (jsMath.Browser.msieRelativeClipBug && mw != null) { + leftSpace = this.Spacer(-mw); x += mw; + rightSpace = this.Spacer(Mw-w); + } + if (jsMath.Browser.operaAbsoluteWidthBug) {width = " width: "+this.Em(w+2)} + html = + '' + + leftSpace + html + rightSpace + + ' ' + // space normalizes line height in script styles + ''; + return html; + }, + + Absolute: function(html,w,h,d,y) { + if (y != "none") { + if (Math.abs(y) < .0001) {y = 0} + html = '' + + html + ' ' // space normalizes line height in script styles + + ''; + } + if (d == "none") {d = 0} + html += this.Blank((jsMath.Browser.lineBreakBug ? 0 : w),h-d,d); + if (jsMath.Browser.msieAbsoluteBug) { // for MSIE (Mac) + html = '' + html + ''; + } + html = '' + html + ''; + if (jsMath.Browser.lineBreakBug) + {html = ''+html+''} + return html; + } + +}; + + +/***************************************************************************/ + +/* + * jsMath.Box handles TeX's math boxes and jsMath's equivalent of hboxes. + */ + +jsMath.Box = function (format,text,w,h,d) { + if (d == null) {d = jsMath.d} + this.type = 'typeset'; + this.w = w; this.h = h; this.d = d; this.bh = h; this.bd = d; + this.x = 0; this.y = 0; this.mw = 0; this.Mw = w; + this.html = text; this.format = format; +}; + + +jsMath.Add(jsMath.Box,{ + + defaultH: 0, // default height for characters with none specified + + /* + * An empty box + */ + Null: function () {return new jsMath.Box('null','',0,0,0)}, + + /* + * A box containing only text whose class and style haven't been added + * yet (so that we can combine ones with the same styles). It gets + * the text dimensions, if needed. (In general, this has been + * replaced by TeX() below, but is still used in fallback mode.) + */ + Text: function (text,tclass,style,size,a,d) { + var html = jsMath.Typeset.AddClass(tclass,text); + html = jsMath.Typeset.AddStyle(style,size,html); + var BB = jsMath.EmBoxFor(html); var TeX = jsMath.Typeset.TeX(style,size); + var bd = ((tclass == 'cmsy10' || tclass == 'cmex10')? BB.h-TeX.h: TeX.d*BB.h/TeX.hd); + var box = new jsMath.Box('text',text,BB.w,BB.h-bd,bd); + box.style = style; box.size = size; box.tclass = tclass; + if (d != null) {box.d = d*TeX.scale} else {box.d = 0} + if (a == null || a == 1) {box.h = .9*TeX.M_height} + else {box.h = 1.1*TeX.x_height + TeX.scale*a} + return box; + }, + + /* + * Produce a box containing a given TeX character from a given font. + * The box is a text box (like the ones above), so that characters from + * the same font can be combined. + */ + TeX: function (C,font,style,size) { + var c = jsMath.TeX[font][C]; + if (c.d == null) {c.d = 0}; if (c.h == null) {c.h = 0} + if (c.img != null && c.c != '') this.TeXIMG(font,C,jsMath.Typeset.StyleSize(style,size)); + var scale = jsMath.Typeset.TeX(style,size).scale; + var box = new jsMath.Box('text',c.c,c.w*scale,c.h*scale,c.d*scale); + box.style = style; box.size = size; + if (c.tclass) { + box.tclass = c.tclass; + if (c.img) {box.bh = c.img.bh; box.bd = c.img.bd} + else {box.bh = scale*jsMath.h; box.bd = scale*jsMath.d} + } else { + box.tclass = font; + box.bh = scale*jsMath.TeX[font].h; + box.bd = scale*jsMath.TeX[font].d; + if (jsMath.Browser.msieFontBug && box.html.match(/&#/)) { + // hack to avoid font changing back to the default + // font when a unicode reference is not followed + // by a letter or number + box.html += 'x'; + } + } + return box; + }, + + /* + * In fallback modes, handle the fact that we don't have the + * sizes of the characters precomputed + */ + TeXfallback: function (C,font,style,size) { + var c = jsMath.TeX[font][C]; if (!c.tclass) {c.tclass = font} + if (c.img != null) {return this.TeXnonfallback(C,font,style,size)} + if (c.h != null && c.a == null) {c.a = c.h-1.1*jsMath.TeX.x_height} + var a = c.a; var d = c.d; // avoid Firefox warnings + var box = this.Text(c.c,c.tclass,style,size,a,d); + var scale = jsMath.Typeset.TeX(style,size).scale; + if (c.bh != null) { + box.bh = c.bh*scale; + box.bd = c.bd*scale; + } else { + var h = box.bd+box.bh; + var html = jsMath.Typeset.AddClass(box.tclass,box.html); + html = jsMath.Typeset.AddStyle(style,size,html); + box.bd = jsMath.EmBoxFor(html + jsMath.HTML.Strut(h)).h - h; + box.bh = h - box.bd; + if (scale == 1) {c.bh = box.bh; c.bd = box.bd} + } + if (jsMath.msieFontBug && box.html.match(/&#/)) + {box.html += 'x'} + return box; + }, + + /* + * Set the character's string to the appropriate image file + */ + TeXIMG: function (font,C,size) { + var c = jsMath.TeX[font][C]; + if (c.img.size != null && c.img.size == size && + c.img.best != null && c.img.best == jsMath.Img.best) return; + var mustScale = (jsMath.Img.scale != 1); + var id = jsMath.Img.best + size - 4; + if (id < 0) {id = 0; mustScale = 1} else + if (id >= jsMath.Img.fonts.length) {id = jsMath.Img.fonts.length-1; mustScale = 1} + var imgFont = jsMath.Img[jsMath.Img.fonts[id]]; + var img = imgFont[font][C]; + var scale = 1/jsMath.Img.w[jsMath.Img.fonts[id]]; + if (id != jsMath.Img.best + size - 4) { + if (c.w != null) {scale = c.w/img[0]} else { + scale *= jsMath.Img.fonts[size]/jsMath.Img.fonts[4] + * jsMath.Img.fonts[jsMath.Img.best]/jsMath.Img.fonts[id]; + } + } + var w = img[0]*scale; var h = img[1]*scale; var d = -img[2]*scale; var v; + var wadjust = (c.w == null || Math.abs(c.w-w) < .01)? "" : " margin-right:"+jsMath.HTML.Em(c.w-w)+';'; + var resize = ""; C = jsMath.Img.HexCode[C]; + if (!mustScale && !jsMath.Controls.cookie.scaleImg) { + if (jsMath.Browser.mozImageSizeBug || 2*w < h || + (jsMath.Browser.msieAlphaBug && jsMath.Controls.cookie.alpha)) + {resize = "height:"+(img[1]*jsMath.Browser.imgScale)+'px;'} + resize += " width:"+(img[0]*jsMath.Browser.imgScale)+'px;' + v = -img[2]+'px'; + } else { + if (jsMath.Browser.mozImageSizeBug || 2*w < h || + (jsMath.Browser.msieAlphaBug && jsMath.Controls.cookie.alpha)) + {resize = "height:"+jsMath.HTML.Em(h*jsMath.Browser.imgScale)+';'} + resize += " width:"+jsMath.HTML.Em(w*jsMath.Browser.imgScale)+';' + v = jsMath.HTML.Em(d); + } + var vadjust = (Math.abs(d) < .01 && !jsMath.Browser.valignBug)? + "": " vertical-align:"+v+';'; + var URL = jsMath.Img.URL(font,jsMath.Img.fonts[id],C); + if (jsMath.Browser.msieAlphaBug && jsMath.Controls.cookie.alpha) { + c.c = ''; + } else { + c.c = ''; + } + c.tclass = "normal"; + c.img.bh = h+d; c.img.bd = -d; + c.img.size = size; c.img.best = jsMath.Img.best; + }, + + /* + * A box containing a spacer of a specific width + */ + Space: function (w) { + return new jsMath.Box('html',jsMath.HTML.Spacer(w),w,0,0); + }, + + /* + * A box containing a horizontal rule + */ + Rule: function (w,h) { + if (h == null) {h = jsMath.TeX.default_rule_thickness} + var html = jsMath.HTML.Rule(w,h); + return new jsMath.Box('html',html,w,h,0); + }, + + /* + * Get a character from a TeX font, and make sure that it has + * its metrics specified. + */ + GetChar: function (code,font) { + var c = jsMath.TeX[font][code]; + if (c.img != null) {this.TeXIMG(font,code,4)} + if (c.tclass == null) {c.tclass = font} + if (!c.computedW) { + c.w = jsMath.EmBoxFor(jsMath.Typeset.AddClass(c.tclass,c.c)).w; + if (c.h == null) {c.h = jsMath.Box.defaultH}; if (c.d == null) {c.d = 0} + c.computedW = 1; + } + return c; + }, + + /* + * Locate the TeX delimiter character that matches a given height. + * Return the character, font, style and actual height used. + */ + DelimBestFit: function (H,c,font,style) { + if (c == 0 && font == 0) return null; + var C; var h; font = jsMath.TeX.fam[font]; + var isSS = (style.charAt(1) == 'S'); + var isS = (style.charAt(0) == 'S'); + while (c != null) { + C = jsMath.TeX[font][c]; + if (C.h == null) {C.h = jsMath.Box.defaultH}; if (C.d == null) {C.d = 0} + h = C.h+C.d; + if (C.delim) {return [c,font,'',H]} + if (isSS && .5*h >= H) {return [c,font,'SS',.5*h]} + if (isS && .7*h >= H) {return [c,font,'S',.7*h]} + if (h >= H || C.n == null) {return [c,font,'T',h]} + c = C.n; + } + return null; + }, + + /* + * Create the HTML needed for a stretchable delimiter of a given height, + * either centered or not. This version uses relative placement (i.e., + * backspaces, not line-breaks). This works with more browsers, but + * if the font size changes, the backspacing may not be right, so the + * delimiters may become jagged. + */ + DelimExtendRelative: function (H,c,font,a,nocenter) { + var C = jsMath.TeX[font][c]; + var top = this.GetChar(C.delim.top? C.delim.top: C.delim.rep,font); + var rep = this.GetChar(C.delim.rep,font); + var bot = this.GetChar(C.delim.bot? C.delim.bot: C.delim.rep,font); + var ext = jsMath.Typeset.AddClass(rep.tclass,rep.c); + var w = rep.w; var h = rep.h+rep.d + var y; var Y; var html; var dx; var i; var n; + if (C.delim.mid) {// braces + var mid = this.GetChar(C.delim.mid,font); + n = Math.ceil((H-(top.h+top.d)-(mid.h+mid.d)-(bot.h+bot.d))/(2*(rep.h+rep.d))); + H = 2*n*(rep.h+rep.d) + (top.h+top.d) + (mid.h+mid.d) + (bot.h+bot.d); + if (nocenter) {y = 0} else {y = H/2+a}; Y = y; + html = jsMath.HTML.Place(jsMath.Typeset.AddClass(top.tclass,top.c),0,y-top.h) + + jsMath.HTML.Place(jsMath.Typeset.AddClass(bot.tclass,bot.c),-(top.w+bot.w)/2,y-(H-bot.d)) + + jsMath.HTML.Place(jsMath.Typeset.AddClass(mid.tclass,mid.c),-(bot.w+mid.w)/2,y-(H+mid.h-mid.d)/2); + dx = (w-mid.w)/2; if (Math.abs(dx) < .0001) {dx = 0} + if (dx) {html += jsMath.HTML.Spacer(dx)} + y -= top.h+top.d + rep.h; + for (i = 0; i < n; i++) {html += jsMath.HTML.Place(ext,-w,y-i*h)} + y -= H/2 - rep.h/2; + for (i = 0; i < n; i++) {html += jsMath.HTML.Place(ext,-w,y-i*h)} + } else {// everything else + n = Math.ceil((H - (top.h+top.d) - (bot.h+bot.d))/(rep.h+rep.d)); + // make sure two-headed arrows have an extender + if (top.h+top.d < .9*(rep.h+rep.d)) {n = Math.max(1,n)} + H = n*(rep.h+rep.d) + (top.h+top.d) + (bot.h+bot.d); + if (nocenter) {y = 0} else {y = H/2+a}; Y = y; + html = jsMath.HTML.Place(jsMath.Typeset.AddClass(top.tclass,top.c),0,y-top.h) + dx = (w-top.w)/2; if (Math.abs(dx) < .0001) {dx = 0} + if (dx) {html += jsMath.HTML.Spacer(dx)} + y -= top.h+top.d + rep.h; + for (i = 0; i < n; i++) {html += jsMath.HTML.Place(ext,-w,y-i*h)} + html += jsMath.HTML.Place(jsMath.Typeset.AddClass(bot.tclass,bot.c),-(w+bot.w)/2,Y-(H-bot.d)); + } + if (nocenter) {h = top.h} else {h = H/2+a} + var box = new jsMath.Box('html',html,rep.w,h,H-h); + box.bh = jsMath.TeX[font].h; box.bd = jsMath.TeX[font].d; + return box; + }, + + /* + * Create the HTML needed for a stretchable delimiter of a given height, + * either centered or not. This version uses absolute placement (i.e., + * line-breaks, not backspacing). This gives more reliable results, + * but doesn't work with all browsers. + */ + DelimExtendAbsolute: function (H,c,font,a,nocenter) { + var Font = jsMath.TeX[font]; + var C = Font[c]; var html; + var top = this.GetChar(C.delim.top? C.delim.top: C.delim.rep,font); + var rep = this.GetChar(C.delim.rep,font); + var bot = this.GetChar(C.delim.bot? C.delim.bot: C.delim.rep,font); + var n; var h; var y; var ext; var i; + + if (C.delim.mid) {// braces + var mid = this.GetChar(C.delim.mid,font); + n = Math.ceil((H-(top.h+top.d)-(mid.h+mid.d-.05)-(bot.h+bot.d-.05))/(2*(rep.h+rep.d-.05))); + H = 2*n*(rep.h+rep.d-.05) + (top.h+top.d) + (mid.h+mid.d-.05) + (bot.h+bot.d-.05); + + html = jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(top.tclass,top.c),0,0); + h = rep.h+rep.d - .05; y = top.d-.05 + rep.h; + ext = jsMath.Typeset.AddClass(rep.tclass,rep.c) + for (i = 0; i < n; i++) {html += jsMath.HTML.PlaceAbsolute(ext,0,y+i*h)} + html += jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(mid.tclass,mid.c),0,y+n*h-rep.h+mid.h); + y += n*h + mid.h+mid.d - .05; + for (i = 0; i < n; i++) {html += jsMath.HTML.PlaceAbsolute(ext,0,y+i*h)} + html += jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(bot.tclass,bot.c),0,y+n*h-rep.h+bot.h); + } else {// all others + n = Math.ceil((H - (top.h+top.d) - (bot.h+bot.d-.05))/(rep.h+rep.d-.05)); + H = n*(rep.h+rep.d-.05) + (top.h+top.d) + (bot.h+bot.d-.05); + + html = jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(top.tclass,top.c),0,0); + h = rep.h+rep.d-.05; y = top.d-.05 + rep.h; + ext = jsMath.Typeset.AddClass(rep.tclass,rep.c); + for (i = 0; i < n; i++) {html += jsMath.HTML.PlaceAbsolute(ext,0,y+i*h)} + html += jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(bot.tclass,bot.c),0,y+n*h-rep.h+bot.h); + } + + var w = top.w; + if (nocenter) {h = top.h; y = 0} else {h = H/2 + a; y = h - top.h} + if (jsMath.Controls.cookie.font === "unicode") { + if (jsMath.Browser.msie8HeightBug) {y -= jsMath.hd} + else if (jsMath.Browser.msieBlockDepthBug) {y += jsMath.d} + } + html = jsMath.HTML.Absolute(html,w,Font.h,"none",-y); + var box = new jsMath.Box('html',html,rep.w,h,H-h); + box.bh = jsMath.TeX[font].h; box.bd = jsMath.TeX[font].d; + return box; + }, + + /* + * Get the HTML for a given delimiter of a given height. + * It will return either a single character, if one exists, or the + * more complex HTML needed for a stretchable delimiter. + */ + Delimiter: function (H,delim,style,nocenter) { + var size = 4; //### pass this? + var TeX = jsMath.Typeset.TeX(style,size); + if (!delim) {return this.Space(TeX.nulldelimiterspace)} + var CFSH = this.DelimBestFit(H,delim[2],delim[1],style); + if (CFSH == null || CFSH[3] < H) + {CFSH = this.DelimBestFit(H,delim[4],delim[3],style)} + if (CFSH == null) {return this.Space(TeX.nulldelimiterspace)} + if (CFSH[2] == '') + {return this.DelimExtend(H,CFSH[0],CFSH[1],TeX.axis_height,nocenter)} + var box = jsMath.Box.TeX(CFSH[0],CFSH[1],CFSH[2],size).Styled(); + if (!nocenter) {box.y = -((box.h+box.d)/2 - box.d - TeX.axis_height)} + if (Math.abs(box.y) < .0001) {box.y = 0} + if (box.y) {box = jsMath.Box.SetList([box],CFSH[2],size)} + return box; + }, + + /* + * Get a character by its TeX charcode, and make sure its width + * is specified. + */ + GetCharCode: function (code) { + var font = jsMath.TeX.fam[code[0]]; + var Font = jsMath.TeX[font]; + var c = Font[code[1]]; + if (c.img != null) {this.TeXIMG(font,code[1],4)} + if (c.w == null) {c.w = jsMath.EmBoxFor(jsMath.Typeset.AddClass(c.tclass,c.c)).w} + if (c.font == null) {c.font = font} + return c; + }, + + /* + * Add the class to the html, and use the font if there isn't one + * specified already + */ + + AddClass: function (tclass,html,font) { + if (tclass == null) {tclass = font} + return jsMath.Typeset.AddClass(tclass,html); + }, + + /* + * Create the HTML for an alignment (e.g., array or matrix) + * Since the widths are not really accurate (they are based on pixel + * widths not the sub-pixel widths of the actual characters), there + * is some drift involved. We lay out the table column by column + * to help reduce the problem. + * + * ### still need to allow users to specify row and column attributes, + * and do things like \span and \multispan ### + */ + LayoutRelative: function (size,table,align,cspacing,rspacing,vspace,useStrut,addWidth) { + if (align == null) {align = []} + if (cspacing == null) {cspacing = []} + if (rspacing == null) {rspacing = []} + if (useStrut == null) {useStrut = 1} + if (addWidth == null) {addWidth = 1} + + // get row and column maximum dimensions + var scale = jsMath.sizes[size]/100; + var W = []; var H = []; var D = []; + var unset = -1000; var bh = unset; var bd = unset; + var i; var j; var row; + for (i = 0; i < table.length; i++) { + if (rspacing[i] == null) {rspacing[i] = 0} + row = table[i]; + H[i] = useStrut*jsMath.h*scale; D[i] = useStrut*jsMath.d*scale; + for (j = 0; j < row.length; j++) { + row[j] = row[j].Remeasured(); + if (row[j].h > H[i]) {H[i] = row[j].h} + if (row[j].d > D[i]) {D[i] = row[j].d} + if (j >= W.length) {W[j] = row[j].w} + else if (row[j].w > W[j]) {W[j] = row[j].w} + if (row[j].bh > bh) {bh = row[j].bh} + if (row[j].bd > bd) {bd = row[j].bd} + } + } + if (rspacing[table.length] == null) {rspacing[table.length] = 0} + if (bh == unset) {bh = 0}; if (bd == unset) {bd = 0} + + // lay out the columns + var HD = useStrut*(jsMath.hd-.01)*scale; + var dy = (vspace || 1) * scale/6; + var html = ''; var pW = 0; var cW = 0; + var w; var h; var y; + var box; var mlist; var entry; + for (j = 0; j < W.length; j++) { + mlist = []; y = -H[0]-rspacing[0]; pW = 0; + for (i = 0; i < table.length; i++) { + entry = table[i][j]; + if (entry && entry.format != 'null') { + if (align[j] == 'l') {w = 0} else + if (align[j] == 'r') {w = W[j] - entry.w} else + {w = (W[j] - entry.w)/2} + entry.x = w - pW; pW = entry.w + w; entry.y = y; + mlist[mlist.length] = entry; + } + if (i+1 < table.length) {y -= Math.max(HD,D[i]+H[i+1]) + dy + rspacing[i+1]} + } + if (cspacing[j] == null) cspacing[j] = scale; + if (mlist.length > 0) { + box = jsMath.Box.SetList(mlist,'T',size); + html += jsMath.HTML.Place(box.html,cW,0); + cW = W[j] - box.w + cspacing[j]; + } else {cW += cspacing[j]} + } + + // get the full width and height + w = -cspacing[W.length-1]; y = (H.length-1)*dy + rspacing[0]; + for (i = 0; i < W.length; i++) {w += W[i] + cspacing[i]} + for (i = 0; i < H.length; i++) {y += Math.max(HD,H[i]+D[i]) + rspacing[i+1]} + h = y/2 + jsMath.TeX.axis_height; var d = y-h; + + // adjust the final row width, and vcenter the table + // (add 1/6em at each side for the \,) + html += jsMath.HTML.Spacer(cW-cspacing[W.length-1] + addWidth*scale/6); + html = jsMath.HTML.Place(html,addWidth*scale/6,h); + box = new jsMath.Box('html',html,w+addWidth*scale/3,h,d); + box.bh = bh; box.bd = bd; + return box; + }, + + /* + * Create the HTML for an alignment (e.g., array or matrix) + * Use absolute position for elements in the array. + * + * ### still need to allow users to specify row and column attributes, + * and do things like \span and \multispan ### + */ + LayoutAbsolute: function (size,table,align,cspacing,rspacing,vspace,useStrut,addWidth) { + if (align == null) {align = []} + if (cspacing == null) {cspacing = []} + if (rspacing == null) {rspacing = []} + if (useStrut == null) {useStrut = 1} + if (addWidth == null) {addWidth = 1} + // get row and column maximum dimensions + var scale = jsMath.sizes[size]/100; + var HD = useStrut*(jsMath.hd-.01)*scale; + var dy = (vspace || 1) * scale/6; + var W = []; var H = []; var D = []; + var w = 0; var h; var x; var y; + var i; var j; var row; + for (i = 0; i < table.length; i++) { + if (rspacing[i] == null) {rspacing[i] = 0} + row = table[i]; + H[i] = useStrut*jsMath.h*scale; D[i] = useStrut*jsMath.d*scale; + for (j = 0; j < row.length; j++) { + row[j] = row[j].Remeasured(); + if (row[j].h > H[i]) {H[i] = row[j].h} + if (row[j].d > D[i]) {D[i] = row[j].d} + if (j >= W.length) {W[j] = row[j].w} + else if (row[j].w > W[j]) {W[j] = row[j].w} + } + } + if (rspacing[table.length] == null) {rspacing[table.length] = 0} + + // get the height and depth of the centered table + y = (H.length-1)*dy + rspacing[0]; + for (i = 0; i < H.length; i++) {y += Math.max(HD,H[i]+D[i]) + rspacing[i+1]} + h = y/2 + jsMath.TeX.axis_height; var d = y - h; + + // lay out the columns + var html = ''; var entry; w = addWidth*scale/6; + for (j = 0; j < W.length; j++) { + y = H[0]-h + rspacing[0]; + for (i = 0; i < table.length; i++) { + entry = table[i][j]; + if (entry && entry.format != 'null') { + if (align[j] && align[j] == 'l') {x = 0} else + if (align[j] && align[j] == 'r') {x = W[j] - entry.w} else + {x = (W[j] - entry.w)/2} + html += jsMath.HTML.PlaceAbsolute(entry.html,w+x, + y-Math.max(0,entry.bh-jsMath.h*scale), + entry.mw,entry.Mw,entry.w); + } + if (i+1 < table.length) {y += Math.max(HD,D[i]+H[i+1]) + dy + rspacing[i+1]} + } + if (cspacing[j] == null) cspacing[j] = scale; + w += W[j] + cspacing[j]; + } + + // get the full width + w = -cspacing[W.length-1]+addWidth*scale/3; + for (i = 0; i < W.length; i++) {w += W[i] + cspacing[i]} + + html = jsMath.HTML.Spacer(addWidth*scale/6)+html+jsMath.HTML.Spacer(addWidth*scale/6); + if (jsMath.Browser.spanHeightVaries) {y = h-jsMath.h} else {y = 0} + if (jsMath.Browser.msie8HeightBug) {y = d-jsMath.d} + html = jsMath.HTML.Absolute(html,w,h+d,d,y); + var box = new jsMath.Box('html',html,w+addWidth*scale/3,h,d); + return box; + }, + + /* + * Look for math within \hbox and other non-math text + */ + InternalMath: function (text,size) { + if (!jsMath.safeHBoxes) {text = text.replace(/@\(([^)]*)\)/g,'<$1>')} + if (!text.match(/\$|\\\(/)) + {return this.Text(this.safeHTML(text),'normal','T',size).Styled()} + + var i = 0; var k = 0; var c; var match = ''; + var mlist = []; var parse, s; + while (i < text.length) { + c = text.charAt(i++); + if (c == '$') { + if (match == '$') { + parse = jsMath.Parse(text.slice(k,i-1),null,size); + if (parse.error) { + mlist[mlist.length] = this.Text(parse.error,'error','T',size,1,.2); + } else { + parse.Atomize(); + mlist[mlist.length] = parse.mlist.Typeset('T',size).Styled(); + } + match = ''; k = i; + } else { + s = this.safeHTML(text.slice(k,i-1)); + mlist[mlist.length] = this.Text(s,'normal','T',size,1,.2); + match = '$'; k = i; + } + } else if (c == '\\') { + c = text.charAt(i++); + if (c == '(' && match == '') { + s = this.safeHTML(text.slice(k,i-2)); + mlist[mlist.length] = this.Text(s,'normal','T',size,1,.2); + match = ')'; k = i; + } else if (c == ')' && match == ')') { + parse = jsMath.Parse(text.slice(k,i-2),null,size); + if (parse.error) { + mlist[mlist.length] = this.Text(parse.error,'error','T',size,1,.2); + } else { + parse.Atomize(); + mlist[mlist.length] = parse.mlist.Typeset('T',size).Styled(); + } + match = ''; k = i; + } + } + } + s = this.safeHTML(text.slice(k)); + mlist[mlist.length] = this.Text(s,'normal','T',size,1,.2); + return this.SetList(mlist,'T',size); + }, + + /* + * Quote HTML characters if we are in safe mode + */ + safeHTML: function (s) { + if (jsMath.safeHBoxes) { + s = s.replace(/&/g,'&') + .replace(//g,'>'); + } + return s; + }, + + /* + * Convert an abitrary box to a typeset box. I.e., make an + * HTML version of the contents of the box, at its desired (x,y) + * position. + */ + Set: function (box,style,size,addstyle) { + if (box && box.type) { + if (box.type == 'typeset') {return box} + if (box.type == 'mlist') { + box.mlist.Atomize(style,size); + return box.mlist.Typeset(style,size); + } + if (box.type == 'text') { + box = this.Text(box.text,box.tclass,style,size,box.ascend||null,box.descend||null); + if (addstyle != 0) {box.Styled()} + return box; + } + box = this.TeX(box.c,box.font,style,size); + if (addstyle != 0) {box.Styled()} + return box; + } + return jsMath.Box.Null(); + }, + + /* + * Convert a list of boxes to a single typeset box. I.e., finalize + * the HTML for the list of boxes, properly spaced and positioned. + */ + SetList: function (boxes,style,size) { + var mlist = []; var box; + for (var i = 0; i < boxes.length; i++) { + box = boxes[i]; + if (box.type == 'typeset') {box = jsMath.mItem.Typeset(box)} + mlist[mlist.length] = box; + } + var typeset = new jsMath.Typeset(mlist); + return typeset.Typeset(style,size); + } + +}); + + +jsMath.Package(jsMath.Box,{ + + /* + * Add the class and style to a text box (i.e., finalize the + * unpositioned HTML for the box). + */ + Styled: function () { + if (this.format == 'text') { + this.html = jsMath.Typeset.AddClass(this.tclass,this.html); + this.html = jsMath.Typeset.AddStyle(this.style,this.size,this.html); + delete this.tclass; delete this.style; + this.format = 'html'; + } + return this; + }, + + /* + * Recompute the box width to make it more accurate. + */ + Remeasured: function () { + if (this.w > 0) { + var w = this.w; this.w = jsMath.EmBoxFor(this.html).w; + if (this.w > this.Mw) {this.Mw = this.w} + w = this.w/w; if (Math.abs(w-1) > .05) {this.h *= w; this.d *= w} + } + return this; + } + +}); + + +/***************************************************************************/ + +/* + * mItems are the building blocks of mLists (math lists) used to + * store the information about a mathematical expression. These are + * basically the items listed in the TeXbook in Appendix G (plus some + * minor extensions). + */ +jsMath.mItem = function (type,def) { + this.type = type; + jsMath.Add(this,def); +} + +jsMath.Add(jsMath.mItem,{ + + /* + * A general atom (given a nucleus for the atom) + */ + Atom: function (type,nucleus) { + return new jsMath.mItem(type,{atom: 1, nuc: nucleus}); + }, + + /* + * An atom whose nucleus is a piece of text, in a given + * class, with a given additional height and depth + */ + TextAtom: function (type,text,tclass,a,d) { + var atom = new jsMath.mItem(type,{ + atom: 1, + nuc: { + type: 'text', + text: text, + tclass: tclass + } + }); + if (a != null) {atom.nuc.ascend = a} + if (d != null) {atom.nuc.descend = d} + return atom; + }, + + /* + * An atom whose nucleus is a TeX character in a specific font + */ + TeXAtom: function (type,c,font) { + return new jsMath.mItem(type,{ + atom: 1, + nuc: { + type: 'TeX', + c: c, + font: font + } + }); + }, + + /* + * A generalized fraction atom, with given delimiters, rule + * thickness, and a numerator and denominator. + */ + Fraction: function (name,num,den,thickness,left,right) { + return new jsMath.mItem('fraction',{ + from: name, num: num, den: den, + thickness: thickness, left: left, right: right + }); + }, + + /* + * An atom that inserts some glue + */ + Space: function (w) {return new jsMath.mItem('space',{w: w})}, + + /* + * An atom that contains a typeset box (like an hbox or vbox) + */ + Typeset: function (box) {return new jsMath.mItem('ord',{atom:1, nuc: box})}, + + /* + * An atom that contains some finished HTML (acts like a typeset box) + */ + HTML: function (html) {return new jsMath.mItem('html',{html: html})} + +}); + +/***************************************************************************/ + +/* + * mLists are lists of mItems, and encode the contents of + * mathematical expressions and sub-expressions. They act as + * the expression "stack" as the mathematics is parsed, and + * contain some state information, like the position of the + * most recent open paren and \over command, and the current font. + */ +jsMath.mList = function (list,font,size,style) { + if (list) {this.mlist = list} else {this.mlist = []} + if (style == null) {style = 'T'}; if (size == null) {size = 4} + this.data = {openI: null, overI: null, overF: null, + font: font, size: size, style: style}; + this.init = {size: size, style: style}; +} + +jsMath.Package(jsMath.mList,{ + + /* + * Add an mItem to the list + */ + Add: function (box) {return (this.mlist[this.mlist.length] = box)}, + + /* + * Get the i-th mItem from the list + */ + Get: function (i) {return this.mlist[i]}, + + /* + * Get the length of the list + */ + Length: function() {return this.mlist.length}, + + /* + * Get the tail mItem of the list + */ + Last: function () { + if (this.mlist.length == 0) {return null} + return this.mlist[this.mlist.length-1] + }, + + /* + * Get a sublist of an mList + */ + Range: function (i,j) { + if (j == null) {j = this.mlist.length} + return new jsMath.mList(this.mlist.slice(i,j+1)); + }, + + /* + * Remove a range of mItems from the list. + */ + Delete: function (i,j) { + if (j == null) {j = i} + if (this.mlist.splice) {this.mlist.splice(i,j-i+1)} else { + var mlist = []; + for (var k = 0; k < this.mlist.length; k++) + {if (k < i || k > j) {mlist[mlist.length] = this.mlist[k]}} + this.mlist = mlist; + } + }, + + /* + * Add an open brace and maintain the stack information + * about the previous open brace so we can recover it + * when this one os closed. + */ + Open: function (left) { + var box = this.Add(new jsMath.mItem('boundary',{data: this.data})); + var olddata = this.data; + this.data = {}; for (var i in olddata) {this.data[i] = olddata[i]} + delete this.data.overI; delete this.data.overF; + this.data.openI = this.mlist.length-1; + if (left != null) {box.left = left} + return box; + }, + + /* + * Attempt to close a brace. Recover the stack information + * about previous open braces and \over commands. If there was an + * \over (or \above, etc) in this set of braces, create a fraction + * atom from the two halves, otherwise create an inner or ord + * from the contents of the braces. + * Remove the braced material from the list and add the newly + * created atom (the fraction, inner or ord). + */ + Close: function (right) { + if (right != null) {right = new jsMath.mItem('boundary',{right: right})} + var atom; var open = this.data.openI; + var over = this.data.overI; var from = this.data.overF; + this.data = this.mlist[open].data; + if (over) { + atom = jsMath.mItem.Fraction(from.name, + {type: 'mlist', mlist: this.Range(open+1,over-1)}, + {type: 'mlist', mlist: this.Range(over)}, + from.thickness,from.left,from.right); + if (right) { + var mlist = new jsMath.mList([this.mlist[open],atom,right]); + atom = jsMath.mItem.Atom('inner',{type: 'mlist', mlist: mlist}); + } + } else { + var openI = open+1; if (right) {this.Add(right); openI--} + atom = jsMath.mItem.Atom((right)?'inner':'ord', + {type: 'mlist', mlist: this.Range(openI)}); + } + this.Delete(open,this.Length()); + return this.Add(atom); + }, + + /* + * Create a generalized fraction from an mlist that + * contains an \over (or \above, etc). + */ + Over: function () { + var over = this.data.overI; var from = this.data.overF; + var atom = jsMath.mItem.Fraction(from.name, + {type: 'mlist', mlist: this.Range(open+1,over-1)}, + {type: 'mlist', mlist: this.Range(over)}, + from.thickness,from.left,from.right); + this.mlist = [atom]; + }, + + /* + * Take a raw mList (that has been produced by parsing some TeX + * expression), and perform the modifications outlined in + * Appendix G of the TeXbook. + */ + Atomize: function (style,size) { + var mitem; var prev = ''; + this.style = style; this.size = size; + for (var i = 0; i < this.mlist.length; i++) { + mitem = this.mlist[i]; mitem.delta = 0; + if (mitem.type == 'choice') + {this.mlist = this.Atomize.choice(this.style,mitem,i,this.mlist); i--} + else if (this.Atomize[mitem.type]) { + var f = this.Atomize[mitem.type]; // Opera needs separate name + f(this.style,this.size,mitem,prev,this,i); + } + prev = mitem; + } + if (mitem && mitem.type == 'bin') {mitem.type = 'ord'} + if (this.mlist.length >= 2 && mitem.type == 'boundary' && + this.mlist[0].type == 'boundary') {this.AddDelimiters(style,size)} + }, + + /* + * For a list that has boundary delimiters as its first and last + * entries, we replace the boundary atoms by open and close + * atoms whose nuclii are the specified delimiters properly sized + * for the contents of the list. (Rule 19) + */ + AddDelimiters: function(style,size) { + var unset = -10000; var h = unset; var d = unset; + for (var i = 0; i < this.mlist.length; i++) { + var mitem = this.mlist[i]; + if (mitem.atom || mitem.type == 'box') { + h = Math.max(h,mitem.nuc.h+mitem.nuc.y); + d = Math.max(d,mitem.nuc.d-mitem.nuc.y); + } + } + var TeX = jsMath.TeX; var a = jsMath.Typeset.TeX(style,size).axis_height; + var delta = Math.max(h-a,d+a); + var H = Math.max(Math.floor(TeX.integer*delta/500)*TeX.delimiterfactor, + TeX.integer*(2*delta-TeX.delimitershortfall))/TeX.integer; + var left = this.mlist[0]; var right = this.mlist[this.mlist.length-1]; + left.nuc = jsMath.Box.Delimiter(H,left.left,style); + right.nuc = jsMath.Box.Delimiter(H,right.right,style); + left.type = 'open'; left.atom = 1; delete left.left; + right.type = 'close'; right.atom = 1; delete right.right; + }, + + /* + * Typeset a math list to produce final HTML for the list. + */ + Typeset: function (style,size) { + var typeset = new jsMath.Typeset(this.mlist); + return typeset.Typeset(style,size); + } + +}); + + +/* + * These routines implement the main rules given in Appendix G of the + * TeXbook + */ + +jsMath.Add(jsMath.mList.prototype.Atomize,{ + + /* + * Handle \displaystyle, \textstyle, etc. + */ + style: function (style,size,mitem,prev,mlist) { + mlist.style = mitem.style; + }, + + /* + * Handle \tiny, \small, etc. + */ + size: function (style,size,mitem,prev,mlist) { + mlist.size = mitem.size; + }, + + /* + * Create empty boxes of the proper sizes for the various + * phantom-type commands + */ + phantom: function (style,size,mitem) { + var box = mitem.nuc = jsMath.Box.Set(mitem.phantom,style,size); + if (mitem.h) {box.Remeasured(); box.html = jsMath.HTML.Spacer(box.w)} + else {box.html = '', box.w = box.Mw = box.mw = 0;} + if (!mitem.v) {box.h = box.d = 0} + box.bd = box.bh = 0; + delete mitem.phantom; + mitem.type = 'box'; + }, + + /* + * Create a box of zero height and depth containing the + * contents of the atom + */ + smash: function (style,size,mitem) { + var box = mitem.nuc = jsMath.Box.Set(mitem.smash,style,size).Remeasured(); + box.h = box.d = 0; + delete mitem.smash; + mitem.type = 'box'; + }, + + /* + * Move a box up or down vertically + */ + raise: function (style,size,mitem) { + mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size); + var y = mitem.raise; + mitem.nuc.html = + jsMath.HTML.Place(mitem.nuc.html,0,y,mitem.nuc.mw,mitem.nuc.Mw,mitem.nuc.w); + mitem.nuc.h += y; mitem.nuc.d -= y; + mitem.type = 'ord'; mitem.atom = 1; + }, + + /* + * Hide the size of a box so that it laps to the left or right, or + * up or down. + */ + lap: function (style,size,mitem) { + var box = jsMath.Box.Set(mitem.nuc,style,size).Remeasured(); + var mlist = [box]; + if (mitem.lap == 'llap') {box.x = -box.w} else + if (mitem.lap == 'rlap') {mlist[1] = jsMath.mItem.Space(-box.w)} else + if (mitem.lap == 'ulap') {box.y = box.d; box.h = box.d = 0} else + if (mitem.lap == 'dlap') {box.y = -box.h; box.h = box.d = 0} + mitem.nuc = jsMath.Box.SetList(mlist,style,size); + if (mitem.lap == 'ulap' || mitem.lap == 'dlap') {mitem.nuc.h = mitem.nuc.d = 0} + mitem.type = 'box'; delete mitem.atom; + }, + + /* + * Handle a Bin atom. (Rule 5) + */ + bin: function (style,size,mitem,prev) { + if (prev && prev.type) { + var type = prev.type; + if (type == 'bin' || type == 'op' || type == 'rel' || + type == 'open' || type == 'punct' || type == '' || + (type == 'boundary' && prev.left != '')) {mitem.type = 'ord'} + } else {mitem.type = 'ord'} + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle a Rel atom. (Rule 6) + */ + rel: function (style,size,mitem,prev) { + if (prev.type && prev.type == 'bin') {prev.type = 'ord'} + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle a Close atom. (Rule 6) + */ + close: function (style,size,mitem,prev) { + if (prev.type && prev.type == 'bin') {prev.type = 'ord'} + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle a Punct atom. (Rule 6) + */ + punct: function (style,size,mitem,prev) { + if (prev.type && prev.type == 'bin') {prev.type = 'ord'} + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle an Open atom. (Rule 7) + */ + open: function (style,size,mitem) { + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle an Inner atom. (Rule 7) + */ + inner: function (style,size,mitem) { + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle a Vcent atom. (Rule 8) + */ + vcenter: function (style,size,mitem) { + var box = jsMath.Box.Set(mitem.nuc,style,size); + var TeX = jsMath.Typeset.TeX(style,size); + box.y = TeX.axis_height - (box.h-box.d)/2; + mitem.nuc = box; mitem.type = 'ord'; + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle an Over atom. (Rule 9) + */ + overline: function (style,size,mitem) { + var TeX = jsMath.Typeset.TeX(style,size); + var box = jsMath.Box.Set(mitem.nuc,jsMath.Typeset.PrimeStyle(style),size).Remeasured(); + var t = TeX.default_rule_thickness; + var rule = jsMath.Box.Rule(box.w,t); + rule.x = -rule.w; rule.y = box.h + 3*t; + mitem.nuc = jsMath.Box.SetList([box,rule],style,size); + mitem.nuc.h += t; + mitem.type = 'ord'; + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle an Under atom. (Rule 10) + */ + underline: function (style,size,mitem) { + var TeX = jsMath.Typeset.TeX(style,size); + var box = jsMath.Box.Set(mitem.nuc,jsMath.Typeset.PrimeStyle(style),size).Remeasured(); + var t = TeX.default_rule_thickness; + var rule = jsMath.Box.Rule(box.w,t); + rule.x = -rule.w; rule.y = -box.d - 3*t - t; + mitem.nuc = jsMath.Box.SetList([box,rule],style,size); + mitem.nuc.d += t; + mitem.type = 'ord'; + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle a Rad atom. (Rule 11 plus stuff for \root..\of) + */ + radical: function (style,size,mitem) { + var TeX = jsMath.Typeset.TeX(style,size); + var Cp = jsMath.Typeset.PrimeStyle(style); + var box = jsMath.Box.Set(mitem.nuc,Cp,size).Remeasured(); + var t = TeX.default_rule_thickness; + var p = t; if (style == 'D' || style == "D'") {p = TeX.x_height} + var r = t + p/4; + var surd = jsMath.Box.Delimiter(box.h+box.d+r+t,[0,2,0x70,3,0x70],style,1); +// if (surd.h > 0) {t = surd.h} // thickness of rule is height of surd character + if (surd.d > box.h+box.d+r) {r = (r+surd.d-box.h-box.d)/2} + surd.y = box.h+r; + var rule = jsMath.Box.Rule(box.w,t); + rule.y = surd.y-t/2; rule.h += 3*t/2; box.x = -box.w; + var Cr = jsMath.Typeset.UpStyle(jsMath.Typeset.UpStyle(style)); + var root = jsMath.Box.Set(mitem.root || null,Cr,size).Remeasured(); + if (mitem.root) { + root.y = .55*(box.h+box.d+3*t+r)-box.d; + surd.x = Math.max(root.w-(11/18)*surd.w,0); + rule.x = (7/18)*surd.w; + root.x = -(root.w+rule.x); + } + mitem.nuc = jsMath.Box.SetList([surd,root,rule,box],style,size); + mitem.type = 'ord'; + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle an Acc atom. (Rule 12) + */ + accent: function (style,size,mitem) { + var TeX = jsMath.Typeset.TeX(style,size); + var Cp = jsMath.Typeset.PrimeStyle(style); + var box = jsMath.Box.Set(mitem.nuc,Cp,size); + var u = box.w; var s; var Font; var ic = 0; + if (mitem.nuc.type == 'TeX') { + Font = jsMath.TeX[mitem.nuc.font]; + if (Font[mitem.nuc.c].krn && Font.skewchar) + {s = Font[mitem.nuc.c].krn[Font.skewchar]} + ic = Font[mitem.nuc.c].ic; if (ic == null) {ic = 0} + } + if (s == null) {s = 0} + + var c = mitem.accent[2]; + var font = jsMath.TeX.fam[mitem.accent[1]]; Font = jsMath.TeX[font]; + while (Font[c].n && Font[Font[c].n].w <= u) {c = Font[c].n} + + var delta = Math.min(box.h,TeX.x_height); + if (mitem.nuc.type == 'TeX') { + var nitem = jsMath.mItem.Atom('ord',mitem.nuc); + nitem.sup = mitem.sup; nitem.sub = mitem.sub; nitem.delta = 0; + jsMath.mList.prototype.Atomize.SupSub(style,size,nitem); + delta += (nitem.nuc.h - box.h); + box = mitem.nuc = nitem.nuc; + delete mitem.sup; delete mitem.sub; + } + var acc = jsMath.Box.TeX(c,font,style,size); + acc.y = box.h - delta; acc.x = -box.w + s + (u-acc.w)/2; + if (jsMath.Browser.msieAccentBug) + {acc.html += jsMath.HTML.Spacer(.1); acc.w += .1; acc.Mw += .1} + if (Font[c].ic || ic) {acc.x += (ic - (Font[c].ic||0)) * TeX.scale} + + mitem.nuc = jsMath.Box.SetList([box,acc],style,size); + if (mitem.nuc.w != box.w) { + var space = jsMath.mItem.Space(box.w-mitem.nuc.w); + mitem.nuc = jsMath.Box.SetList([mitem.nuc,space],style,size); + } + mitem.type = 'ord'; + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle an Op atom. (Rules 13 and 13a) + */ + op: function (style,size,mitem) { + var TeX = jsMath.Typeset.TeX(style,size); var box; + mitem.delta = 0; var isD = (style.charAt(0) == 'D'); + if (mitem.limits == null && isD) {mitem.limits = 1} + + if (mitem.nuc.type == 'TeX') { + var C = jsMath.TeX[mitem.nuc.font][mitem.nuc.c]; + if (isD && C.n) {mitem.nuc.c = C.n; C = jsMath.TeX[mitem.nuc.font][C.n]} + box = mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size); + if (C.ic) { + mitem.delta = C.ic * TeX.scale; + if (mitem.limits || !mitem.sub || jsMath.Browser.msieIntegralBug) { + box = mitem.nuc = jsMath.Box.SetList([box,jsMath.mItem.Space(mitem.delta)],style,size); + } + } + box.y = -((box.h+box.d)/2 - box.d - TeX.axis_height); + if (Math.abs(box.y) < .0001) {box.y = 0} + } + + if (!box) {box = mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size).Remeasured()} + if (mitem.limits) { + var W = box.w; var x = box.w; + var mlist = [box]; var dh = 0; var dd = 0; + if (mitem.sup) { + var sup = jsMath.Box.Set(mitem.sup,jsMath.Typeset.UpStyle(style),size).Remeasured(); + sup.x = ((box.w-sup.w)/2 + mitem.delta/2) - x; dh = TeX.big_op_spacing5; + W = Math.max(W,sup.w); x += sup.x + sup.w; + sup.y = box.h+sup.d + box.y + + Math.max(TeX.big_op_spacing1,TeX.big_op_spacing3-sup.d); + mlist[mlist.length] = sup; delete mitem.sup; + } + if (mitem.sub) { + var sub = jsMath.Box.Set(mitem.sub,jsMath.Typeset.DownStyle(style),size).Remeasured(); + sub.x = ((box.w-sub.w)/2 - mitem.delta/2) - x; dd = TeX.big_op_spacing5; + W = Math.max(W,sub.w); x += sub.x + sub.w; + sub.y = -box.d-sub.h + box.y - + Math.max(TeX.big_op_spacing2,TeX.big_op_spacing4-sub.h); + mlist[mlist.length] = sub; delete mitem.sub; + } + if (W > box.w) {box.x = (W-box.w)/2; x += box.x} + if (x < W) {mlist[mlist.length] = jsMath.mItem.Space(W-x)} + mitem.nuc = jsMath.Box.SetList(mlist,style,size); + mitem.nuc.h += dh; mitem.nuc.d += dd; + } else { + if (jsMath.Browser.msieIntegralBug && mitem.sub && C && C.ic) + {mitem.nuc = jsMath.Box.SetList([box,jsMath.Box.Space(-C.ic*TeX.scale)],style,size)} + else if (box.y) {mitem.nuc = jsMath.Box.SetList([box],style,size)} + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + } + }, + + /* + * Handle an Ord atom. (Rule 14) + */ + ord: function (style,size,mitem,prev,mList,i) { + if (mitem.nuc.type == 'TeX' && !mitem.sup && !mitem.sub) { + var nitem = mList.mlist[i+1]; + if (nitem && nitem.atom && nitem.type && + (nitem.type == 'ord' || nitem.type == 'op' || nitem.type == 'bin' || + nitem.type == 'rel' || nitem.type == 'open' || + nitem.type == 'close' || nitem.type == 'punct')) { + if (nitem.nuc.type == 'TeX' && nitem.nuc.font == mitem.nuc.font) { + mitem.textsymbol = 1; + var krn = jsMath.TeX[mitem.nuc.font][mitem.nuc.c].krn; + krn *= jsMath.Typeset.TeX(style,size).scale; + if (krn && krn[nitem.nuc.c]) { + for (var k = mList.mlist.length-1; k > i; k--) + {mList.mlist[k+1] = mList.mlist[k]} + mList.mlist[i+1] = jsMath.mItem.Space(krn[nitem.nuc.c]); + } + } + } + } + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Handle a generalized fraction. (Rules 15 to 15e) + */ + fraction: function (style,size,mitem) { + var TeX = jsMath.Typeset.TeX(style,size); var t = 0; + if (mitem.thickness != null) {t = mitem.thickness} + else if (mitem.from.match(/over/)) {t = TeX.default_rule_thickness} + var isD = (style.charAt(0) == 'D'); + var Cn = (style == 'D')? 'T': (style == "D'")? "T'": jsMath.Typeset.UpStyle(style); + var Cd = (isD)? "T'": jsMath.Typeset.DownStyle(style); + var num = jsMath.Box.Set(mitem.num,Cn,size).Remeasured(); + var den = jsMath.Box.Set(mitem.den,Cd,size).Remeasured(); + + var u; var v; var w; var p; var r; + var H = (isD)? TeX.delim1 : TeX.delim2; + var mlist = [jsMath.Box.Delimiter(H,mitem.left,style)] + var right = jsMath.Box.Delimiter(H,mitem.right,style); + + if (num.w < den.w) { + num.x = (den.w-num.w)/2; + den.x = -(num.w + num.x); + w = den.w; mlist[1] = num; mlist[2] = den; + } else { + den.x = (num.w-den.w)/2; + num.x = -(den.w + den.x); + w = num.w; mlist[1] = den; mlist[2] = num; + } + if (isD) {u = TeX.num1; v = TeX.denom1} else { + u = (t != 0)? TeX.num2: TeX.num3; + v = TeX.denom2; + } + if (t == 0) {// atop + p = (isD)? 7*TeX.default_rule_thickness: 3*TeX.default_rule_thickness; + r = (u - num.d) - (den.h - v); + if (r < p) {u += (p-r)/2; v += (p-r)/2} + } else {// over + p = (isD)? 3*t: t; var a = TeX.axis_height; + r = (u-num.d)-(a+t/2); if (r < p) {u += p-r} + r = (a-t/2)-(den.h-v); if (r < p) {v += p-r} + var rule = jsMath.Box.Rule(w,t); rule.x = -w; rule.y = a - t/2; + mlist[mlist.length] = rule; + } + num.y = u; den.y = -v; + + mlist[mlist.length] = right; + mitem.nuc = jsMath.Box.SetList(mlist,style,size); + mitem.type = 'ord'; mitem.atom = 1; + delete mitem.num; delete mitem.den; + jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); + }, + + /* + * Add subscripts and superscripts. (Rules 17-18f) + */ + SupSub: function (style,size,mitem) { + var TeX = jsMath.Typeset.TeX(style,size); + var nuc = mitem.nuc; + var box = mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size,0); + if (box.format == 'null') + {box = mitem.nuc = jsMath.Box.Text('','normal',style,size)} + + if (nuc.type == 'TeX') { + if (!mitem.textsymbol) { + var C = jsMath.TeX[nuc.font][nuc.c]; + if (C.ic) { + mitem.delta = C.ic * TeX.scale; + if (!mitem.sub) { + box = mitem.nuc = jsMath.Box.SetList([box,jsMath.Box.Space(mitem.delta)],style,size); + mitem.delta = 0; + } + } + } else {mitem.delta = 0} + } + + if (!mitem.sup && !mitem.sub) return; + mitem.nuc.Styled(); + + var Cd = jsMath.Typeset.DownStyle(style); + var Cu = jsMath.Typeset.UpStyle(style); + var q = jsMath.Typeset.TeX(Cu,size).sup_drop; + var r = jsMath.Typeset.TeX(Cd,size).sub_drop; + var u = 0; var v = 0; var p; + if (nuc.type && nuc.type != 'text' && nuc.type != 'TeX' && nuc.type != 'null') + {u = box.h - q; v = box.d + r} + + if (mitem.sub) { + var sub = jsMath.Box.Set(mitem.sub,Cd,size); + sub = jsMath.Box.SetList([sub,jsMath.mItem.Space(TeX.scriptspace)],style,size); + } + + if (!mitem.sup) { + sub.y = -Math.max(v,TeX.sub1,sub.h-(4/5)*jsMath.Typeset.TeX(Cd,size).x_height); + mitem.nuc = jsMath.Box.SetList([box,sub],style,size).Styled(); delete mitem.sub; + return; + } + + var sup = jsMath.Box.Set(mitem.sup,Cu,size); + sup = jsMath.Box.SetList([sup,jsMath.mItem.Space(TeX.scriptspace)],style,size); + if (style == 'D') {p = TeX.sup1} + else if (style.charAt(style.length-1) == "'") {p = TeX.sup3} + else {p = TeX.sup2} + u = Math.max(u,p,sup.d+jsMath.Typeset.TeX(Cu,size).x_height/4); + + if (!mitem.sub) { + sup.y = u; + mitem.nuc = jsMath.Box.SetList([box,sup],style,size); delete mitem.sup; + return; + } + + v = Math.max(v,jsMath.Typeset.TeX(Cd,size).sub2); + var t = TeX.default_rule_thickness; + if ((u-sup.d) - (sub.h -v) < 4*t) { + v = 4*t + sub.h - (u-sup.d); + p = (4/5)*TeX.x_height - (u-sup.d); + if (p > 0) {u += p; v -= p} + } + sup.Remeasured(); sub.Remeasured(); + sup.y = u; sub.y = -v; sup.x = mitem.delta; + if (sup.w+sup.x > sub.w) + {sup.x -= sub.w; mitem.nuc = jsMath.Box.SetList([box,sub,sup],style,size)} else + {sub.x -= (sup.w+sup.x); mitem.nuc = jsMath.Box.SetList([box,sup,sub],style,size)} + + delete mitem.sup; delete mitem.sub; + } + +}); + + +/***************************************************************************/ + +/* + * The Typeset object handles most of the TeX-specific processing + */ + +jsMath.Typeset = function (mlist) { + this.type = 'typeset'; + this.mlist = mlist; +} + +jsMath.Add(jsMath.Typeset,{ + + /* + * The "C-uparrow" style table (TeXbook, p. 441) + */ + upStyle: { + D: "S", T: "S", "D'": "S'", "T'": "S'", + S: "SS", SS: "SS", "S'": "SS'", "SS'": "SS'" + }, + + /* + * The "C-downarrow" style table (TeXbook, p. 441) + */ + downStyle: { + D: "S'", T: "S'", "D'": "S'", "T'": "S'", + S: "SS'", SS: "SS'", "S'": "SS'", "SS'": "SS'" + }, + + /* + * Get the various styles given the current style + * (see TeXbook, p. 441) + */ + UpStyle: function (style) {return this.upStyle[style]}, + DownStyle: function (style) {return this.downStyle[style]}, + PrimeStyle: function (style) { + if (style.charAt(style.length-1) == "'") {return style} + return style + "'" + }, + + /* + * A value scaled to the appropriate size for scripts + */ + StyleValue: function (style,v) { + if (style == "S" || style == "S'") {return .7*v} + if (style == "SS" || style == "SS'") {return .5*v} + return v; + }, + + /* + * Return the size associated with a given style and size + */ + StyleSize: function (style,size) { + if (style == "S" || style == "S'") {size = Math.max(0,size-2)} + else if (style == "SS" || style == "SS'") {size = Math.max(0,size-4)} + return size; + }, + + /* + * Return the font parameter table for the given style + */ + TeX: function (style,size) { + if (style == "S" || style == "S'") {size = Math.max(0,size-2)} + else if (style == "SS" || style == "SS'") {size = Math.max(0,size-4)} + return jsMath.TeXparams[size]; + }, + + + /* + * Add the CSS class for the given TeX style + */ + AddStyle: function (style,size,html) { + if (style == "S" || style == "S'") {size = Math.max(0,size-2)} + else if (style == "SS" || style == "SS'") {size = Math.max(0,size-4)} + if (size != 4) {html = '' + html + ''} + return html; + }, + + /* + * Add the font class, if needed + */ + AddClass: function (tclass,html) { + if (tclass != '' && tclass != 'normal') {html = jsMath.HTML.Class(tclass,html)} + return html; + } + +}); + + +jsMath.Package(jsMath.Typeset,{ + + /* + * The spacing tables for inter-atom spacing + * (See rule 20, and Chapter 18, p 170) + */ + DTsep: { + ord: {op: 1, bin: 2, rel: 3, inner: 1}, + op: {ord: 1, op: 1, rel: 3, inner: 1}, + bin: {ord: 2, op: 2, open: 2, inner: 2}, + rel: {ord: 3, op: 3, open: 3, inner: 3}, + open: {}, + close: {op: 1, bin:2, rel: 3, inner: 1}, + punct: {ord: 1, op: 1, rel: 1, open: 1, close: 1, punct: 1, inner: 1}, + inner: {ord: 1, op: 1, bin: 2, rel: 3, open: 1, punct: 1, inner: 1} + }, + + SSsep: { + ord: {op: 1}, + op: {ord: 1, op: 1}, + bin: {}, + rel: {}, + open: {}, + close: {op: 1}, + punct: {}, + inner: {op: 1} + }, + + /* + * The sizes used in the tables above + */ + sepW: ['','thinmuskip','medmuskip','thickmuskip'], + + + /* + * Find the amount of separation to use between two adjacent + * atoms in the given style + */ + GetSeparation: function (l,r,style) { + if (l && l.atom && r.atom) { + var table = this.DTsep; if (style.charAt(0) == "S") {table = this.SSsep} + var row = table[l.type]; + if (row && row[r.type] != null) {return jsMath.TeX[this.sepW[row[r.type]]]} + } + return 0; + }, + + /* + * Typeset an mlist (i.e., turn it into HTML). + * Here, text items of the same class and style are combined + * to reduce the number of tags used (though it is still + * huge). Spaces are combined, when possible. + * ### More needs to be done with that. ### + * The width of the final box is recomputed at the end, since + * the final width is not necessarily the sum of the widths of + * the individual parts (widths are in pixels, but the browsers + * puts pieces together using sub-pixel accuracy). + */ + Typeset: function (style,size) { + this.style = style; this.size = size; var unset = -10000 + this.w = 0; this.mw = 0; this.Mw = 0; + this.h = unset; this.d = unset; + this.bh = this.h; this.bd = this.d; + this.tbuf = ''; this.tx = 0; this.tclass = ''; + this.cbuf = ''; this.hbuf = ''; this.hx = 0; + var mitem = null; var prev; this.x = 0; this.dx = 0; + + for (var i = 0; i < this.mlist.length; i++) { + prev = mitem; mitem = this.mlist[i]; + switch (mitem.type) { + + case 'size': + this.FlushClassed(); + this.size = mitem.size; + mitem = prev; // hide this from TeX + break; + + case 'style': + this.FlushClassed(); + if (this.style.charAt(this.style.length-1) == "'") + {this.style = mitem.style + "'"} else {this.style = mitem.style} + mitem = prev; // hide this from TeX + break; + + case 'space': + if (typeof(mitem.w) == 'object') { + if (this.style.charAt(1) == 'S') {mitem.w = .5*mitem.w[0]/18} + else if (this.style.charAt(0) == 'S') {mitem.w = .7*mitem.w[0]/18} + else {mitem.w = mitem.w[0]/18} + } + this.dx += mitem.w-0; // mitem.w is sometimes a string? + mitem = prev; // hide this from TeX + break; + + case 'html': + this.FlushClassed(); + if (this.hbuf == '') {this.hx = this.x} + this.hbuf += mitem.html; + mitem = prev; // hide this from TeX + break; + + default: // atom + if (!mitem.atom && mitem.type != 'box') break; + mitem.nuc.x += this.dx + this.GetSeparation(prev,mitem,this.style); + if (mitem.nuc.x || mitem.nuc.y) mitem.nuc.Styled(); + this.dx = 0; this.x = this.x + this.w; + if (this.x + mitem.nuc.x + mitem.nuc.mw < this.mw) + {this.mw = this.x + mitem.nuc.x + mitem.nuc.mw} + if (this.w + mitem.nuc.x + mitem.nuc.Mw > this.Mw) + {this.Mw = this.w + mitem.nuc.x + mitem.nuc.Mw} + this.w += mitem.nuc.w + mitem.nuc.x; + if (mitem.nuc.format == 'text') { + if (this.tclass != mitem.nuc.tclass && this.tclass != '') this.FlushText(); + if (this.tbuf == '' && this.cbuf == '') {this.tx = this.x} + this.tbuf += mitem.nuc.html; this.tclass = mitem.nuc.tclass; + } else { + this.FlushClassed(); + if (mitem.nuc.x || mitem.nuc.y) this.Place(mitem.nuc); + if (this.hbuf == '') {this.hx = this.x} + this.hbuf += mitem.nuc.html; + } + this.h = Math.max(this.h,mitem.nuc.h+mitem.nuc.y); this.bh = Math.max(this.bh,mitem.nuc.bh); + this.d = Math.max(this.d,mitem.nuc.d-mitem.nuc.y); this.bd = Math.max(this.bd,mitem.nuc.bd); + break; + } + } + + this.FlushClassed(); // make sure scaling is included + if (this.dx) { + this.hbuf += jsMath.HTML.Spacer(this.dx); this.w += this.dx; + if (this.w > this.Mw) {this.Mw = this.w} + if (this.w < this.mw) {this.mw = this.w} + } + if (this.hbuf == '') {return jsMath.Box.Null()} + if (this.h == unset) {this.h = 0} + if (this.d == unset) {this.d = 0} + var box = new jsMath.Box('html',this.hbuf,this.w,this.h,this.d); + box.bh = this.bh; box.bd = this.bd; + box.mw = this.mw; box.Mw = this.Mw; + return box; + }, + + /* + * Add the font to the buffered text and move it to the + * classed-text buffer. + */ + FlushText: function () { + if (this.tbuf == '') return; + this.cbuf += jsMath.Typeset.AddClass(this.tclass,this.tbuf); + this.tbuf = ''; this.tclass = ''; + }, + + /* + * Add the script or scriptscript style to the text and + * move it to the HTML buffer + */ + FlushClassed: function () { + this.FlushText(); + if (this.cbuf == '') return; + if (this.hbuf == '') {this.hx = this.tx} + this.hbuf += jsMath.Typeset.AddStyle(this.style,this.size,this.cbuf); + this.cbuf = ''; + }, + + /* + * Add a to position an item's HTML, and + * adjust the item's height and depth. + * (This may be replaced buy one of the following browser-specific + * versions by Browser.Init().) + */ + Place: function (item) { + var html = '' + item.html + ''; + item.h += item.y; item.d -= item.y; + item.x = 0; item.y = 0; + }, + + /* + * For MSIE on Windows, backspacing must be done in a separate + * , otherwise the contents will be clipped. Netscape + * also doesn't combine vertical and horizontal spacing well. + * Here, the horizontal and vertical spacing are done separately. + */ + + PlaceSeparateSkips: function (item) { + if (item.y) { + var rw = item.Mw - item.w; var lw = item.mw; + var W = item.Mw - item.mw; + item.html = + jsMath.HTML.Spacer(lw-rw) + + '' + + jsMath.HTML.Spacer(-lw) + + item.html + + jsMath.HTML.Spacer(rw) + + '' + } + if (item.x) {item.html = jsMath.HTML.Spacer(item.x) + item.html} + item.h += item.y; item.d -= item.y; + item.x = 0; item.y = 0; + } + +}); + + + +/***************************************************************************/ + +/* + * The Parse object handles the parsing of the TeX input string, and creates + * the mList to be typeset by the Typeset object above. + */ + +jsMath.Parse = function (s,font,size,style) { + var parse = new jsMath.Parser(s,font,size,style); + parse.Parse(); + return parse; +} + +jsMath.Parser = function (s,font,size,style) { + this.string = s; this.i = 0; + this.mlist = new jsMath.mList(null,font,size,style); +} + +jsMath.Package(jsMath.Parser,{ + + // special characters + cmd: '\\', + open: '{', + close: '}', + + // patterns for letters and numbers + letter: /[a-z]/i, + number: /[0-9]/, + // pattern for macros to ^ and _ that should be read with arguments + scriptargs: /^((math|text)..|mathcal|[hm]box)$/, + + // the \mathchar definitions (see Appendix B of the TeXbook). + mathchar: { + '!': [5,0,0x21], + '(': [4,0,0x28], + ')': [5,0,0x29], + '*': [2,2,0x03], // \ast + '+': [2,0,0x2B], + ',': [6,1,0x3B], + '-': [2,2,0x00], + '.': [0,1,0x3A], + '/': [0,1,0x3D], + ':': [3,0,0x3A], + ';': [6,0,0x3B], + '<': [3,1,0x3C], + '=': [3,0,0x3D], + '>': [3,1,0x3E], + '?': [5,0,0x3F], + '[': [4,0,0x5B], + ']': [5,0,0x5D], +// '{': [4,2,0x66], +// '}': [5,2,0x67], + '|': [0,2,0x6A] + }, + + // handle special \catcode characters + special: { + '~': 'Tilde', + '^': 'HandleSuperscript', + '_': 'HandleSubscript', + ' ': 'Space', + '\01': 'Space', + "\t": 'Space', + "\r": 'Space', + "\n": 'Space', + "'": 'Prime', + '%': 'HandleComment', + '&': 'HandleEntry', + '#': 'Hash' + }, + + // the \mathchardef table (see Appendix B of the TeXbook). + mathchardef: { + // brace parts + braceld: [0,3,0x7A], + bracerd: [0,3,0x7B], + bracelu: [0,3,0x7C], + braceru: [0,3,0x7D], + + // Greek letters + alpha: [0,1,0x0B], + beta: [0,1,0x0C], + gamma: [0,1,0x0D], + delta: [0,1,0x0E], + epsilon: [0,1,0x0F], + zeta: [0,1,0x10], + eta: [0,1,0x11], + theta: [0,1,0x12], + iota: [0,1,0x13], + kappa: [0,1,0x14], + lambda: [0,1,0x15], + mu: [0,1,0x16], + nu: [0,1,0x17], + xi: [0,1,0x18], + pi: [0,1,0x19], + rho: [0,1,0x1A], + sigma: [0,1,0x1B], + tau: [0,1,0x1C], + upsilon: [0,1,0x1D], + phi: [0,1,0x1E], + chi: [0,1,0x1F], + psi: [0,1,0x20], + omega: [0,1,0x21], + varepsilon: [0,1,0x22], + vartheta: [0,1,0x23], + varpi: [0,1,0x24], + varrho: [0,1,0x25], + varsigma: [0,1,0x26], + varphi: [0,1,0x27], + + Gamma: [7,0,0x00], + Delta: [7,0,0x01], + Theta: [7,0,0x02], + Lambda: [7,0,0x03], + Xi: [7,0,0x04], + Pi: [7,0,0x05], + Sigma: [7,0,0x06], + Upsilon: [7,0,0x07], + Phi: [7,0,0x08], + Psi: [7,0,0x09], + Omega: [7,0,0x0A], + + // Ord symbols + aleph: [0,2,0x40], + imath: [0,1,0x7B], + jmath: [0,1,0x7C], + ell: [0,1,0x60], + wp: [0,1,0x7D], + Re: [0,2,0x3C], + Im: [0,2,0x3D], + partial: [0,1,0x40], + infty: [0,2,0x31], + prime: [0,2,0x30], + emptyset: [0,2,0x3B], + nabla: [0,2,0x72], + surd: [1,2,0x70], + top: [0,2,0x3E], + bot: [0,2,0x3F], + triangle: [0,2,0x34], + forall: [0,2,0x38], + exists: [0,2,0x39], + neg: [0,2,0x3A], + lnot: [0,2,0x3A], + flat: [0,1,0x5B], + natural: [0,1,0x5C], + sharp: [0,1,0x5D], + clubsuit: [0,2,0x7C], + diamondsuit: [0,2,0x7D], + heartsuit: [0,2,0x7E], + spadesuit: [0,2,0x7F], + + // big ops + coprod: [1,3,0x60], + bigvee: [1,3,0x57], + bigwedge: [1,3,0x56], + biguplus: [1,3,0x55], + bigcap: [1,3,0x54], + bigcup: [1,3,0x53], + intop: [1,3,0x52], + prod: [1,3,0x51], + sum: [1,3,0x50], + bigotimes: [1,3,0x4E], + bigoplus: [1,3,0x4C], + bigodot: [1,3,0x4A], + ointop: [1,3,0x48], + bigsqcup: [1,3,0x46], + smallint: [1,2,0x73], + + // binary operations + triangleleft: [2,1,0x2F], + triangleright: [2,1,0x2E], + bigtriangleup: [2,2,0x34], + bigtriangledown: [2,2,0x35], + wedge: [2,2,0x5E], + land: [2,2,0x5E], + vee: [2,2,0x5F], + lor: [2,2,0x5F], + cap: [2,2,0x5C], + cup: [2,2,0x5B], + ddagger: [2,2,0x7A], + dagger: [2,2,0x79], + sqcap: [2,2,0x75], + sqcup: [2,2,0x74], + uplus: [2,2,0x5D], + amalg: [2,2,0x71], + diamond: [2,2,0x05], + bullet: [2,2,0x0F], + wr: [2,2,0x6F], + div: [2,2,0x04], + odot: [2,2,0x0C], + oslash: [2,2,0x0B], + otimes: [2,2,0x0A], + ominus: [2,2,0x09], + oplus: [2,2,0x08], + mp: [2,2,0x07], + pm: [2,2,0x06], + circ: [2,2,0x0E], + bigcirc: [2,2,0x0D], + setminus: [2,2,0x6E], // for set difference A\setminus B + cdot: [2,2,0x01], + ast: [2,2,0x03], + times: [2,2,0x02], + star: [2,1,0x3F], + + // Relations + propto: [3,2,0x2F], + sqsubseteq: [3,2,0x76], + sqsupseteq: [3,2,0x77], + parallel: [3,2,0x6B], + mid: [3,2,0x6A], + dashv: [3,2,0x61], + vdash: [3,2,0x60], + leq: [3,2,0x14], + le: [3,2,0x14], + geq: [3,2,0x15], + ge: [3,2,0x15], + lt: [3,1,0x3C], // extra since < and > are hard + gt: [3,1,0x3E], // to get in HTML + succ: [3,2,0x1F], + prec: [3,2,0x1E], + approx: [3,2,0x19], + succeq: [3,2,0x17], + preceq: [3,2,0x16], + supset: [3,2,0x1B], + subset: [3,2,0x1A], + supseteq: [3,2,0x13], + subseteq: [3,2,0x12], + 'in': [3,2,0x32], + ni: [3,2,0x33], + owns: [3,2,0x33], + gg: [3,2,0x1D], + ll: [3,2,0x1C], + not: [3,2,0x36], + sim: [3,2,0x18], + simeq: [3,2,0x27], + perp: [3,2,0x3F], + equiv: [3,2,0x11], + asymp: [3,2,0x10], + smile: [3,1,0x5E], + frown: [3,1,0x5F], + + // Arrows + Leftrightarrow: [3,2,0x2C], + Leftarrow: [3,2,0x28], + Rightarrow: [3,2,0x29], + leftrightarrow: [3,2,0x24], + leftarrow: [3,2,0x20], + gets: [3,2,0x20], + rightarrow: [3,2,0x21], + to: [3,2,0x21], + mapstochar: [3,2,0x37], + leftharpoonup: [3,1,0x28], + leftharpoondown: [3,1,0x29], + rightharpoonup: [3,1,0x2A], + rightharpoondown: [3,1,0x2B], + nearrow: [3,2,0x25], + searrow: [3,2,0x26], + nwarrow: [3,2,0x2D], + swarrow: [3,2,0x2E], + + minuschar: [3,2,0x00], // for longmapsto + hbarchar: [0,0,0x16], // for \hbar + lhook: [3,1,0x2C], + rhook: [3,1,0x2D], + + ldotp: [6,1,0x3A], // ldot as a punctuation mark + cdotp: [6,2,0x01], // cdot as a punctuation mark + colon: [6,0,0x3A], // colon as a punctuation mark + + '#': [7,0,0x23], + '$': [7,0,0x24], + '%': [7,0,0x25], + '&': [7,0,0x26] + }, + + // The delimiter table (see Appendix B of the TeXbook) + delimiter: { + '(': [0,0,0x28,3,0x00], + ')': [0,0,0x29,3,0x01], + '[': [0,0,0x5B,3,0x02], + ']': [0,0,0x5D,3,0x03], + '<': [0,2,0x68,3,0x0A], + '>': [0,2,0x69,3,0x0B], + '\\lt': [0,2,0x68,3,0x0A], // extra since < and > are + '\\gt': [0,2,0x69,3,0x0B], // hard to get in HTML + '/': [0,0,0x2F,3,0x0E], + '|': [0,2,0x6A,3,0x0C], + '.': [0,0,0x00,0,0x00], + '\\': [0,2,0x6E,3,0x0F], + '\\lmoustache': [4,3,0x7A,3,0x40], // top from (, bottom from ) + '\\rmoustache': [5,3,0x7B,3,0x41], // top from ), bottom from ( + '\\lgroup': [4,6,0x28,3,0x3A], // extensible ( with sharper tips + '\\rgroup': [5,6,0x29,3,0x3B], // extensible ) with sharper tips + '\\arrowvert': [0,2,0x6A,3,0x3C], // arrow without arrowheads + '\\Arrowvert': [0,2,0x6B,3,0x3D], // double arrow without arrowheads +// '\\bracevert': [0,7,0x7C,3,0x3E], // the vertical bar that extends braces + '\\bracevert': [0,2,0x6A,3,0x3E], // we don't load tt, so use | instead + '\\Vert': [0,2,0x6B,3,0x0D], + '\\|': [0,2,0x6B,3,0x0D], + '\\vert': [0,2,0x6A,3,0x0C], + '\\uparrow': [3,2,0x22,3,0x78], + '\\downarrow': [3,2,0x23,3,0x79], + '\\updownarrow': [3,2,0x6C,3,0x3F], + '\\Uparrow': [3,2,0x2A,3,0x7E], + '\\Downarrow': [3,2,0x2B,3,0x7F], + '\\Updownarrow': [3,2,0x6D,3,0x77], + '\\backslash': [0,2,0x6E,3,0x0F], // for double coset G\backslash H + '\\rangle': [5,2,0x69,3,0x0B], + '\\langle': [4,2,0x68,3,0x0A], + '\\rbrace': [5,2,0x67,3,0x09], + '\\lbrace': [4,2,0x66,3,0x08], + '\\}': [5,2,0x67,3,0x09], + '\\{': [4,2,0x66,3,0x08], + '\\rceil': [5,2,0x65,3,0x07], + '\\lceil': [4,2,0x64,3,0x06], + '\\rfloor': [5,2,0x63,3,0x05], + '\\lfloor': [4,2,0x62,3,0x04], + '\\lbrack': [0,0,0x5B,3,0x02], + '\\rbrack': [0,0,0x5D,3,0x03] + }, + + /* + * The basic macros for plain TeX. + * + * When the control sequence on the left is called, the JavaScript + * funtion on the right is called, with the name of the control sequence + * as its first parameter (this way, the same function can be called by + * several different control sequences to do similar actions, and the + * function can still tell which TeX command was issued). If the right + * is an array, the first entry is the routine to call, and the + * remaining entries in the array are parameters to pass to the function + * as the second parameter (they are in an array reference). + * + * Note: TeX macros as defined by the user are discussed below. + */ + macros: { + displaystyle: ['HandleStyle','D'], + textstyle: ['HandleStyle','T'], + scriptstyle: ['HandleStyle','S'], + scriptscriptstyle: ['HandleStyle','SS'], + + rm: ['HandleFont',0], + mit: ['HandleFont',1], + oldstyle: ['HandleFont',1], + cal: ['HandleFont',2], + it: ['HandleFont',4], + bf: ['HandleFont',6], + + font: ['Extension','font'], + + left: 'HandleLeft', + right: 'HandleRight', + + arcsin: ['NamedOp',0], + arccos: ['NamedOp',0], + arctan: ['NamedOp',0], + arg: ['NamedOp',0], + cos: ['NamedOp',0], + cosh: ['NamedOp',0], + cot: ['NamedOp',0], + coth: ['NamedOp',0], + csc: ['NamedOp',0], + deg: ['NamedOp',0], + det: 'NamedOp', + dim: ['NamedOp',0], + exp: ['NamedOp',0], + gcd: 'NamedOp', + hom: ['NamedOp',0], + inf: 'NamedOp', + ker: ['NamedOp',0], + lg: ['NamedOp',0], + lim: 'NamedOp', + liminf: ['NamedOp',null,'liminf'], + limsup: ['NamedOp',null,'limsup'], + ln: ['NamedOp',0], + log: ['NamedOp',0], + max: 'NamedOp', + min: 'NamedOp', + Pr: 'NamedOp', + sec: ['NamedOp',0], + sin: ['NamedOp',0], + sinh: ['NamedOp',0], + sup: 'NamedOp', + tan: ['NamedOp',0], + tanh: ['NamedOp',0], + + vcenter: ['HandleAtom','vcenter'], + overline: ['HandleAtom','overline'], + underline: ['HandleAtom','underline'], + over: 'HandleOver', + overwithdelims: 'HandleOver', + atop: 'HandleOver', + atopwithdelims: 'HandleOver', + above: 'HandleOver', + abovewithdelims: 'HandleOver', + brace: ['HandleOver','\\{','\\}'], + brack: ['HandleOver','[',']'], + choose: ['HandleOver','(',')'], + + overbrace: ['Extension','leaders'], + underbrace: ['Extension','leaders'], + overrightarrow: ['Extension','leaders'], + underrightarrow: ['Extension','leaders'], + overleftarrow: ['Extension','leaders'], + underleftarrow: ['Extension','leaders'], + overleftrightarrow: ['Extension','leaders'], + underleftrightarrow: ['Extension','leaders'], + overset: ['Extension','underset-overset'], + underset: ['Extension','underset-overset'], + + llap: 'HandleLap', + rlap: 'HandleLap', + ulap: 'HandleLap', + dlap: 'HandleLap', + raise: 'RaiseLower', + lower: 'RaiseLower', + moveleft: 'MoveLeftRight', + moveright: 'MoveLeftRight', + + frac: 'Frac', + root: 'Root', + sqrt: 'Sqrt', + + // TeX substitution macros + hbar: ['Macro','\\hbarchar\\kern-.5em h'], + ne: ['Macro','\\not='], + neq: ['Macro','\\not='], + notin: ['Macro','\\mathrel{\\rlap{\\kern2mu/}}\\in'], + cong: ['Macro','\\mathrel{\\lower2mu{\\mathrel{{\\rlap{=}\\raise6mu\\sim}}}}'], + bmod: ['Macro','\\mathbin{\\rm mod}'], + pmod: ['Macro','\\kern 18mu ({\\rm mod}\\,\\,#1)',1], + 'int': ['Macro','\\intop\\nolimits'], + oint: ['Macro','\\ointop\\nolimits'], + doteq: ['Macro','\\buildrel\\textstyle.\\over='], + ldots: ['Macro','\\mathinner{\\ldotp\\ldotp\\ldotp}'], + cdots: ['Macro','\\mathinner{\\cdotp\\cdotp\\cdotp}'], + vdots: ['Macro','\\mathinner{\\rlap{\\raise8pt{.\\rule 0pt 6pt 0pt}}\\rlap{\\raise4pt{.}}.}'], + ddots: ['Macro','\\mathinner{\\kern1mu\\raise7pt{\\rule 0pt 7pt 0pt .}\\kern2mu\\raise4pt{.}\\kern2mu\\raise1pt{.}\\kern1mu}'], + joinrel: ['Macro','\\mathrel{\\kern-4mu}'], + relbar: ['Macro','\\mathrel{\\smash-}'], // \smash, because - has the same height as + + Relbar: ['Macro','\\mathrel='], + bowtie: ['Macro','\\mathrel\\triangleright\\joinrel\\mathrel\\triangleleft'], + models: ['Macro','\\mathrel|\\joinrel='], + mapsto: ['Macro','\\mathrel{\\mapstochar\\rightarrow}'], + rightleftharpoons: ['Macro','\\vcenter{\\mathrel{\\rlap{\\raise3mu{\\rightharpoonup}}}\\leftharpoondown}'], + hookrightarrow: ['Macro','\\lhook\\joinrel\\rightarrow'], + hookleftarrow: ['Macro','\\leftarrow\\joinrel\\rhook'], + Longrightarrow: ['Macro','\\Relbar\\joinrel\\Rightarrow'], + longrightarrow: ['Macro','\\relbar\\joinrel\\rightarrow'], + longleftarrow: ['Macro','\\leftarrow\\joinrel\\relbar'], + Longleftarrow: ['Macro','\\Leftarrow\\joinrel\\Relbar'], + longmapsto: ['Macro','\\mathrel{\\mapstochar\\minuschar\\joinrel\\rightarrow}'], + longleftrightarrow: ['Macro','\\leftarrow\\joinrel\\rightarrow'], + Longleftrightarrow: ['Macro','\\Leftarrow\\joinrel\\Rightarrow'], + iff: ['Macro','\\;\\Longleftrightarrow\\;'], + mathcal: ['Macro','{\\cal #1}',1], + mathrm: ['Macro','{\\rm #1}',1], + mathbf: ['Macro','{\\bf #1}',1], + mathbb: ['Macro','{\\bf #1}',1], + mathit: ['Macro','{\\it #1}',1], + textrm: ['Macro','\\mathord{\\hbox{#1}}',1], + textit: ['Macro','\\mathord{\\class{textit}{\\hbox{#1}}}',1], + textbf: ['Macro','\\mathord{\\class{textbf}{\\hbox{#1}}}',1], + pmb: ['Macro','\\rlap{#1}\\kern1px{#1}',1], + + TeX: ['Macro','T\\kern-.1667em\\lower.5ex{E}\\kern-.125em X'], + + limits: ['Limits',1], + nolimits: ['Limits',0], + + ',': ['Spacer',1/6], + ':': ['Spacer',1/6], // for LaTeX + '>': ['Spacer',2/9], + ';': ['Spacer',5/18], + '!': ['Spacer',-1/6], + enspace: ['Spacer',1/2], + quad: ['Spacer',1], + qquad: ['Spacer',2], + thinspace: ['Spacer',1/6], + negthinspace: ['Spacer',-1/6], + + hskip: 'Hskip', + kern: 'Hskip', + rule: ['Rule','colored'], + space: ['Rule','blank'], + + big: ['MakeBig','ord',0.85], + Big: ['MakeBig','ord',1.15], + bigg: ['MakeBig','ord',1.45], + Bigg: ['MakeBig','ord',1.75], + bigl: ['MakeBig','open',0.85], + Bigl: ['MakeBig','open',1.15], + biggl: ['MakeBig','open',1.45], + Biggl: ['MakeBig','open',1.75], + bigr: ['MakeBig','close',0.85], + Bigr: ['MakeBig','close',1.15], + biggr: ['MakeBig','close',1.45], + Biggr: ['MakeBig','close',1.75], + bigm: ['MakeBig','rel',0.85], + Bigm: ['MakeBig','rel',1.15], + biggm: ['MakeBig','rel',1.45], + Biggm: ['MakeBig','rel',1.75], + + mathord: ['HandleAtom','ord'], + mathop: ['HandleAtom','op'], + mathopen: ['HandleAtom','open'], + mathclose: ['HandleAtom','close'], + mathbin: ['HandleAtom','bin'], + mathrel: ['HandleAtom','rel'], + mathpunct: ['HandleAtom','punct'], + mathinner: ['HandleAtom','inner'], + + mathchoice: ['Extension','mathchoice'], + buildrel: 'BuildRel', + + hbox: 'HBox', + text: 'HBox', + mbox: 'HBox', + fbox: ['Extension','fbox'], + + strut: 'Strut', + mathstrut: ['Macro','\\vphantom{(}'], + phantom: ['Phantom',1,1], + vphantom: ['Phantom',1,0], + hphantom: ['Phantom',0,1], + smash: 'Smash', + + acute: ['MathAccent', [7,0,0x13]], + grave: ['MathAccent', [7,0,0x12]], + ddot: ['MathAccent', [7,0,0x7F]], + tilde: ['MathAccent', [7,0,0x7E]], + bar: ['MathAccent', [7,0,0x16]], + breve: ['MathAccent', [7,0,0x15]], + check: ['MathAccent', [7,0,0x14]], + hat: ['MathAccent', [7,0,0x5E]], + vec: ['MathAccent', [0,1,0x7E]], + dot: ['MathAccent', [7,0,0x5F]], + widetilde: ['MathAccent', [0,3,0x65]], + widehat: ['MathAccent', [0,3,0x62]], + + '_': ['Replace','ord','_','normal',-.4,.1], + ' ': ['Replace','ord',' ','normal'], +// angle: ['Replace','ord','∠','normal'], + angle: ['Macro','\\kern2.5mu\\raise1.54pt{\\rlap{\\scriptstyle \\char{cmsy10}{54}}\\kern1pt\\rule{.45em}{-1.2pt}{1.54pt}\\kern2.5mu}'], + + matrix: 'Matrix', + array: 'Matrix', // ### still need to do alignment options ### + pmatrix: ['Matrix','(',')','c'], + cases: ['Matrix','\\{','.',['l','l'],null,2], + eqalign: ['Matrix',null,null,['r','l'],[5/18],3,'D'], + displaylines: ['Matrix',null,null,['c'],null,3,'D'], + cr: 'HandleRow', + '\\': 'HandleRow', + newline: 'HandleRow', + noalign: 'HandleNoAlign', + eqalignno: ['Matrix',null,null,['r','l','r'],[5/8,3],3,'D'], + leqalignno: ['Matrix',null,null,['r','l','r'],[5/8,3],3,'D'], + + // LaTeX + begin: 'Begin', + end: 'End', + tiny: ['HandleSize',0], + Tiny: ['HandleSize',1], // non-standard + scriptsize: ['HandleSize',2], + small: ['HandleSize',3], + normalsize: ['HandleSize',4], + large: ['HandleSize',5], + Large: ['HandleSize',6], + LARGE: ['HandleSize',7], + huge: ['HandleSize',8], + Huge: ['HandleSize',9], + dots: ['Macro','\\ldots'], + + newcommand: ['Extension','newcommand'], + newenvironment: ['Extension','newcommand'], + def: ['Extension','newcommand'], + + // Extensions to TeX + color: ['Extension','HTML'], + href: ['Extension','HTML'], + 'class': ['Extension','HTML'], + style: ['Extension','HTML'], + cssId: ['Extension','HTML'], + unicode: ['Extension','HTML'], + bbox: ['Extension','bbox'], + + require: 'Require', + + // debugging and test routines + 'char': 'Char' + }, + + /* + * LaTeX environments + */ + environments: { + array: 'Array', + matrix: ['Array',null,null,'c'], + pmatrix: ['Array','(',')','c'], + bmatrix: ['Array','[',']','c'], + Bmatrix: ['Array','\\{','\\}','c'], + vmatrix: ['Array','\\vert','\\vert','c'], + Vmatrix: ['Array','\\Vert','\\Vert','c'], + cases: ['Array','\\{','.','ll',null,2], + eqnarray: ['Array',null,null,'rcl',[5/18,5/18],3,'D'], + 'eqnarray*': ['Array',null,null,'rcl',[5/18,5/18],3,'D'], + equation: 'Equation', + 'equation*': 'Equation', + + align: ['Extension','AMSmath'], + 'align*': ['Extension','AMSmath'], + aligned: ['Extension','AMSmath'], + multline: ['Extension','AMSmath'], + 'multline*': ['Extension','AMSmath'], + split: ['Extension','AMSmath'], + gather: ['Extension','AMSmath'], + 'gather*': ['Extension','AMSmath'], + gathered: ['Extension','AMSmath'] + }, + + + /***************************************************************************/ + + /* + * Add special characters to list above. (This makes it possible + * to define them in a variable that the user can change.) + */ + AddSpecial: function (obj) { + for (var id in obj) { + jsMath.Parser.prototype.special[jsMath.Parser.prototype[id]] = obj[id]; + } + }, + + /* + * Throw an error + */ + Error: function (s) { + this.i = this.string.length; + if (s.error) {this.error = s.error} else { + if (!this.error) {this.error = s} + } + }, + + /***************************************************************************/ + + /* + * Check if the next character is a space + */ + nextIsSpace: function () { + return this.string.charAt(this.i).match(/[ \n\r\t]/); + }, + + /* + * Trim spaces from a string + */ + trimSpaces: function (text) { + if (typeof(text) != 'string') {return text} + return text.replace(/^\s+|\s+$/g,''); + }, + + /* + * Parse a substring to get its mList, and return it. + * Check that no errors occured + */ + Process: function (arg) { + var data = this.mlist.data; + arg = jsMath.Parse(arg,data.font,data.size,data.style); + if (arg.error) {this.Error(arg); return null} + if (arg.mlist.Length() == 0) {return null} + if (arg.mlist.Length() == 1) { + var atom = arg.mlist.Last(); + if (atom.atom && atom.type == 'ord' && atom.nuc && + !atom.sub && !atom.sup && (atom.nuc.type == 'text' || atom.nuc.type == 'TeX')) + {return atom.nuc} + } + return {type: 'mlist', mlist: arg.mlist}; + }, + + /* + * Get and return a control-sequence name from the TeX string + */ + GetCommand: function () { + var letter = /^([a-z]+|.) ?/i; + var cmd = letter.exec(this.string.slice(this.i)); + if (cmd) {this.i += cmd[1].length; return cmd[1]} + this.i++; return " "; + }, + + /* + * Get and return a TeX argument (either a single character or control sequence, + * or the contents of the next set of braces). + */ + GetArgument: function (name,noneOK) { + while (this.nextIsSpace()) {this.i++} + if (this.i >= this.string.length) {if (!noneOK) this.Error("Missing argument for "+name); return null} + if (this.string.charAt(this.i) == this.close) {if (!noneOK) this.Error("Extra close brace"); return null} + if (this.string.charAt(this.i) == this.cmd) {this.i++; return this.cmd+this.GetCommand()} + if (this.string.charAt(this.i) != this.open) {return this.string.charAt(this.i++)} + var j = ++this.i; var pcount = 1; var c = ''; + while (this.i < this.string.length) { + c = this.string.charAt(this.i++); + if (c == this.cmd) {this.i++} + else if (c == this.open) {pcount++} + else if (c == this.close) { + if (pcount == 0) {this.Error("Extra close brace"); return null} + if (--pcount == 0) {return this.string.slice(j,this.i-1)} + } + } + this.Error("Missing close brace"); + return null; + }, + + /* + * Get an argument and process it into an mList + */ + ProcessArg: function (name) { + var arg = this.GetArgument(name); if (this.error) {return null} + return this.Process(arg); + }, + + /* + * Get and process an argument for a super- or subscript. + * (read extra args for \frac, \sqrt, \mathrm, etc.) + * This handles these macros as special cases, so is really + * rather a hack. A more general method for indicating + * how to handle macros in scripts needs to be developed. + */ + ProcessScriptArg: function (name) { + var arg = this.GetArgument(name); if (this.error) {return null} + if (arg.charAt(0) == this.cmd) { + var csname = arg.substr(1); + if (csname == "frac") { + arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} + arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} + } else if (csname == "sqrt") { + arg += '['+this.GetBrackets(csname)+']'; if (this.error) {return null} + arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} + } else if (csname.match(this.scriptargs)) { + arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} + } + } + return this.Process(arg); + }, + + /* + * Get the name of a delimiter (check it in the delimiter list). + */ + GetDelimiter: function (name) { + while (this.nextIsSpace()) {this.i++} + var c = this.string.charAt(this.i); + if (this.i < this.string.length) { + this.i++; + if (c == this.cmd) {c = '\\'+this.GetCommand(name); if (this.error) return null} + if (this.delimiter[c] != null) {return this.delimiter[c]} + } + this.Error("Missing or unrecognized delimiter for "+name); + return null; + }, + + /* + * Get a dimension (including its units). + * Convert the dimen to em's, except for mu's, which must be + * converted when typeset. + */ + GetDimen: function (name,nomu) { + var rest; var advance = 0; + if (this.nextIsSpace()) {this.i++} + if (this.string.charAt(this.i) == '{') { + rest = this.GetArgument(name); + } else { + rest = this.string.slice(this.i); + advance = 1; + } + return this.ParseDimen(rest,name,advance,nomu); + }, + + ParseDimen: function (dimen,name,advance,nomu) { + var match = dimen.match(/^\s*([-+]?(\.\d+|\d+(\.\d*)?))(pt|em|ex|mu|px)/); + if (!match) {this.Error("Missing dimension or its units for "+name); return null} + if (advance) { + this.i += match[0].length; + if (this.nextIsSpace()) {this.i++} + } + var d = match[1]-0; + if (match[4] == 'px') {d /= jsMath.em} + else if (match[4] == 'pt') {d /= 10} + else if (match[4] == 'ex') {d *= jsMath.TeX.x_height} + else if (match[4] == 'mu') {if (nomu) {d = d/18} else {d = [d,'mu']}} + return d; + }, + + /* + * Get the next non-space character + */ + GetNext: function () { + while (this.nextIsSpace()) {this.i++} + return this.string.charAt(this.i); + }, + + /* + * Get an optional LaTeX argument in brackets + */ + GetBrackets: function (name) { + var c = this.GetNext(); if (c != '[') return ''; + var start = ++this.i; var pcount = 0; + while (this.i < this.string.length) { + c = this.string.charAt(this.i++); + if (c == '{') {pcount++} + else if (c == '}') { + if (pcount == 0) + {this.Error("Extra close brace while looking for ']'"); return null} + pcount --; + } else if (c == this.cmd) { + this.i++; + } else if (c == ']') { + if (pcount == 0) {return this.string.slice(start,this.i-1)} + } + } + this.Error("Couldn't find closing ']' for argument to "+this.cmd+name); + return null; + }, + + /* + * Get everything up to the given control sequence name (token) + */ + GetUpto: function (name,token) { + while (this.nextIsSpace()) {this.i++} + var start = this.i; var pcount = 0; + while (this.i < this.string.length) { + var c = this.string.charAt(this.i++); + if (c == '{') {pcount++} + else if (c == '}') { + if (pcount == 0) + {this.Error("Extra close brace while looking for "+this.cmd+token); return null} + pcount --; + } else if (c == this.cmd) { + // really need separate counter for begin/end + // and it should really be a stack (new pcount for each begin) + if (this.string.slice(this.i,this.i+5) == "begin") {pcount++; this.i+=4} + else if (this.string.slice(this.i,this.i+3) == "end") { + if (pcount > 0) {pcount--; this.i += 2} + } + if (pcount == 0) { + if (this.string.slice(this.i,this.i+token.length) == token) { + c = this.string.charAt(this.i+token.length); + if (c.match(/[^a-z]/i) || !token.match(/[a-z]/i)) { + var arg = this.string.slice(start,this.i-1); + this.i += token.length; + return arg; + } + } + } + this.i++; + } + } + this.Error("Couldn't find "+this.cmd+token+" for "+name); + return null; + }, + + /* + * Get a parameter delimited by a control sequence, and + * process it to get its mlist + */ + ProcessUpto: function (name,token) { + var arg = this.GetUpto(name,token); if (this.error) return null; + return this.Process(arg); + }, + + /* + * Get everything up to \end{env} + */ + GetEnd: function (env) { + var body = ''; var name = ''; + while (name != env) { + body += this.GetUpto('begin{'+env+'}','end'); if (this.error) return null; + name = this.GetArgument(this.cmd+'end'); if (this.error) return null; + } + return body; + }, + + + /***************************************************************************/ + + + /* + * Ignore spaces + */ + Space: function () {}, + + /* + * Collect together any primes and convert them to a superscript + */ + Prime: function (c) { + var base = this.mlist.Last(); + if (base == null || (!base.atom && base.type != 'box' && base.type != 'frac')) + {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} + if (base.sup) {this.Error("Prime causes double exponent: use braces to clarify"); return} + var sup = ''; + while (c == "'") {sup += this.cmd+'prime'; c = this.GetNext(); if (c == "'") {this.i++}} + base.sup = this.Process(sup); + base.sup.isPrime = 1; + }, + + /* + * Raise or lower its parameter by a given amount + * @@@ Note that this is different from TeX, which requires an \hbox @@@ + * ### make this work with mu's ### + */ + RaiseLower: function (name) { + var h = this.GetDimen(this.cmd+name,1); if (this.error) return; + var box = this.ProcessScriptArg(this.cmd+name); if (this.error) return; + if (name == 'lower') {h = -h} + this.mlist.Add(new jsMath.mItem('raise',{nuc: box, raise: h})); + }, + + /* + * Shift an expression to the right or left + * @@@ Note that this is different from TeX, which requires a \vbox @@@ + * ### make this work with mu's ### + */ + MoveLeftRight: function (name) { + var x = this.GetDimen(this.cmd+name,1); if (this.error) return; + var box = this.ProcessScriptArg(this.cmd+name); if (this.error) return; + if (name == 'moveleft') {x = -x} + this.mlist.Add(jsMath.mItem.Space(x)); + this.mlist.Add(jsMath.mItem.Atom('ord',box)); + this.mlist.Add(jsMath.mItem.Space(-x)); + }, + + /* + * Load an extension if it has not already been loaded + */ + Require: function (name) { + var file = this.GetArgument(this.cmd+name); if (this.error) return; + file = jsMath.Extension.URL(file); + if (jsMath.Setup.loaded[file]) return; + this.Extension(null,[file]); + }, + + /* + * Load an extension file and restart processing the math + */ + Extension: function (name,data) { + jsMath.Translate.restart = 1; + if (name != null) {delete jsMath.Parser.prototype[data[1]||'macros'][name]} + jsMath.Extension.Require(data[0],jsMath.Translate.asynchronous); + throw "restart"; + }, + + /* + * Implements \frac{num}{den} + */ + Frac: function (name) { + var num = this.ProcessArg(this.cmd+name); if (this.error) return; + var den = this.ProcessArg(this.cmd+name); if (this.error) return; + this.mlist.Add(jsMath.mItem.Fraction('over',num,den)); + }, + + /* + * Implements \sqrt[n]{...} + */ + Sqrt: function (name) { + var n = this.GetBrackets(this.cmd+name); if (this.error) return; + var arg = this.ProcessArg(this.cmd+name); if (this.error) return; + var box = jsMath.mItem.Atom('radical',arg); + if (n != '') {box.root = this.Process(n); if (this.error) return} + this.mlist.Add(box); + }, + + /* + * Implements \root...\of{...} + */ + Root: function (name) { + var n = this.ProcessUpto(this.cmd+name,'of'); if (this.error) return; + var arg = this.ProcessArg(this.cmd+name); if (this.error) return; + var box = jsMath.mItem.Atom('radical',arg); + box.root = n; this.mlist.Add(box); + }, + + + /* + * Implements \buildrel...\over{...} + */ + BuildRel: function (name) { + var top = this.ProcessUpto(this.cmd+name,'over'); if (this.error) return; + var bot = this.ProcessArg(this.cmd+name); if (this.error) return; + var op = jsMath.mItem.Atom('op',bot); + op.limits = 1; op.sup = top; + this.mlist.Add(op); + }, + + /* + * Create a delimiter of the type and size specified in the parameters + */ + MakeBig: function (name,data) { + var type = data[0]; var h = data[1] * jsMath.p_height; + var delim = this.GetDelimiter(this.cmd+name); if (this.error) return; + this.mlist.Add(jsMath.mItem.Atom(type,jsMath.Box.Delimiter(h,delim,'T'))); + }, + + /* + * Insert the specified character in the given font. + * (Try to load the font if it is not already available.) + */ + Char: function (name) { + var font = this.GetArgument(this.cmd+name); if (this.error) return; + var n = this.GetArgument(this.cmd+name); if (this.error) return; + if (!jsMath.TeX[font]) { + jsMath.TeX[font] = []; + this.Extension(null,[jsMath.Font.URL(font)]); + } else { + this.mlist.Add(jsMath.mItem.Typeset(jsMath.Box.TeX(n-0,font,this.mlist.data.style,this.mlist.data.size))); + } + }, + + /* + * Create an array or matrix. + */ + Matrix: function (name,delim) { + var data = this.mlist.data; + var arg = this.GetArgument(this.cmd+name); if (this.error) return; + var parse = new jsMath.Parser(arg+this.cmd+'\\',null,data.size,delim[5] || 'T'); + parse.matrix = name; parse.row = []; parse.table = []; parse.rspacing = []; + parse.Parse(); if (parse.error) {this.Error(parse); return} + parse.HandleRow(name,1); // be sure the last row is recorded + var box = jsMath.Box.Layout(data.size,parse.table,delim[2]||null,delim[3]||null,parse.rspacing,delim[4]||null); + // Add parentheses, if needed + if (delim[0] && delim[1]) { + var left = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[0]],'T'); + var right = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[1]],'T'); + box = jsMath.Box.SetList([left,box,right],data.style,data.size); + } + this.mlist.Add(jsMath.mItem.Atom((delim[0]? 'inner': 'ord'),box)); + }, + + /* + * When we see an '&', try to add a matrix entry to the row data. + * (Use all the data in the current mList, and then clear it) + */ + HandleEntry: function (name) { + if (!this.matrix) + {this.Error(name+" can only appear in a matrix or array"); return} + if (this.mlist.data.openI != null) { + var open = this.mlist.Get(this.mlist.data.openI); + if (open.left) {this.Error("Missing "+this.cmd+"right")} + else {this.Error("Missing close brace")} + } + if (this.mlist.data.overI != null) {this.mlist.Over()} + var data = this.mlist.data; + this.mlist.Atomize(data.style,data.size); + var box = this.mlist.Typeset(data.style,data.size); + box.entry = data.entry; delete data.entry; if (!box.entry) {box.entry = {}}; + this.row[this.row.length] = box; + this.mlist = new jsMath.mList(null,null,data.size,data.style); + }, + + /* + * When we see a \cr or \\, try to add a row to the table + */ + HandleRow: function (name,last) { + var dimen; + if (!this.matrix) {this.Error(this.cmd+name+" can only appear in a matrix or array"); return} + if (name == "\\") { + dimen = this.GetBrackets(this.cmd+name); if (this.error) return; + if (dimen) {dimen = this.ParseDimen(dimen,this.cmd+name,0,1)} + } + this.HandleEntry(name); + if (!last || this.row.length > 1 || this.row[0].format != 'null') + {this.table[this.table.length] = this.row} + if (dimen) {this.rspacing[this.table.length] = dimen} + this.row = []; + }, + + /* + * Look for \vskip or \vspace in \noalign parameters + */ + HandleNoAlign: function (name) { + var arg = this.GetArgument(this.cmd+name); if (this.error) return; + var skip = arg.replace(/^.*(vskip|vspace)([^a-z])/i,'$2'); + if (skip.length == arg.length) return; + var d = this.ParseDimen(skip,this.cmd+RegExp.$1,0,1); if (this.error) return; + this.rspacing[this.table.length] = (this.rspacing[this.table.length] || 0) + d; + }, + + /* + * LaTeX array environment + */ + Array: function (name,delim) { + var columns = delim[2]; var cspacing = delim[3]; + if (!columns) { + columns = this.GetArgument(this.cmd+'begin{'+name+'}'); + if (this.error) return; + } + columns = columns.replace(/[^clr]/g,''); + columns = columns.split(''); + var data = this.mlist.data; var style = delim[5] || 'T'; + var arg = this.GetEnd(name); if (this.error) return; + var parse = new jsMath.Parser(arg+this.cmd+'\\',null,data.size,style); + parse.matrix = name; parse.row = []; parse.table = []; parse.rspacing = []; + parse.Parse(); if (parse.error) {this.Error(parse); return} + parse.HandleRow(name,1); // be sure the last row is recorded + var box = jsMath.Box.Layout(data.size,parse.table,columns,cspacing,parse.rspacing,delim[4],delim[6],delim[7]); + // Add parentheses, if needed + if (delim[0] && delim[1]) { + var left = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[0]],'T'); + var right = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[1]],'T'); + box = jsMath.Box.SetList([left,box,right],data.style,data.size); + } + this.mlist.Add(jsMath.mItem.Atom((delim[0]? 'inner': 'ord'),box)); + }, + + /* + * LaTeX \begin{env} + */ + Begin: function (name) { + var env = this.GetArgument(this.cmd+name); if (this.error) return; + if (env.match(/[^a-z*]/i)) {this.Error('Invalid environment name "'+env+'"'); return} + if (!this.environments[env]) {this.Error('Unknown environment "'+env+'"'); return} + var cmd = this.environments[env]; + if (typeof(cmd) == "string") {cmd = [cmd]} + this[cmd[0]](env,cmd.slice(1)); + }, + + /* + * LaTeX \end{env} + */ + End: function (name) { + var env = this.GetArgument(this.cmd+name); if (this.error) return; + this.Error(this.cmd+name+'{'+env+'} without matching '+this.cmd+'begin'); + }, + + /* + * LaTeX equation environment (just remove the environment) + */ + Equation: function (name) { + var arg = this.GetEnd(name); if (this.error) return; + this.string = arg+this.string.slice(this.i); this.i = 0; + }, + + /* + * Add a fixed amount of horizontal space + */ + Spacer: function (name,w) { + this.mlist.Add(jsMath.mItem.Space(w-0)); + }, + + /* + * Add horizontal space given by the argument + */ + Hskip: function (name) { + var w = this.GetDimen(this.cmd+name); if (this.error) return; + this.mlist.Add(jsMath.mItem.Space(w)); + }, + + /* + * Typeset the argument as plain text rather than math. + */ + HBox: function (name) { + var text = this.GetArgument(this.cmd+name); if (this.error) return; + var box = jsMath.Box.InternalMath(text,this.mlist.data.size); + this.mlist.Add(jsMath.mItem.Typeset(box)); + }, + + /* + * Insert a rule of a particular width, height and depth + * This replaces \hrule and \vrule + * @@@ not a standard TeX command, and all three parameters must be given @@@ + */ + Rule: function (name,style) { + var w = this.GetDimen(this.cmd+name,1); if (this.error) return; + var h = this.GetDimen(this.cmd+name,1); if (this.error) return; + var d = this.GetDimen(this.cmd+name,1); if (this.error) return; + h += d; var html; + if (h != 0) {h = Math.max(1.05/jsMath.em,h)} + if (h == 0 || w == 0 || style == "blank") + {html = jsMath.HTML.Blank(w,h)} else {html = jsMath.HTML.Rule(w,h)} + if (d) { + html = '' + + html + ''; + } + this.mlist.Add(jsMath.mItem.Typeset(new jsMath.Box('html',html,w,h-d,d))); + }, + + /* + * Inserts an empty box of a specific height and depth + */ + Strut: function () { + var size = this.mlist.data.size; + var box = jsMath.Box.Text('','normal','T',size).Styled(); + box.bh = box.bd = 0; box.h = .8; box.d = .3; box.w = box.Mw = 0; + this.mlist.Add(jsMath.mItem.Typeset(box)); + }, + + /* + * Handles \phantom, \vphantom and \hphantom + */ + Phantom: function (name,data) { + var arg = this.ProcessArg(this.cmd+name); if (this.error) return; + this.mlist.Add(new jsMath.mItem('phantom',{phantom: arg, v: data[0], h: data[1]})); + }, + + /* + * Implements \smash + */ + Smash: function (name,data) { + var arg = this.ProcessArg(this.cmd+name); if (this.error) return; + this.mlist.Add(new jsMath.mItem('smash',{smash: arg})); + }, + + /* + * Puts an accent on the following argument + */ + MathAccent: function (name,accent) { + var c = this.ProcessArg(this.cmd+name); if (this.error) return; + var atom = jsMath.mItem.Atom('accent',c); atom.accent = accent[0]; + this.mlist.Add(atom); + }, + + /* + * Handles functions and operators like sin, cos, sum, etc. + */ + NamedOp: function (name,data) { + var a = (name.match(/[^acegm-su-z]/)) ? 1: 0; + var d = (name.match(/[gjpqy]/)) ? .2: 0; + if (data[1]) {name = data[1]} + var box = jsMath.mItem.TextAtom('op',name,jsMath.TeX.fam[0],a,d); + if (data[0] != null) {box.limits = data[0]} + this.mlist.Add(box); + }, + + /* + * Implements \limits + */ + Limits: function (name,data) { + var atom = this.mlist.Last(); + if (!atom || atom.type != 'op') + {this.Error(this.cmd+name+" is allowed only on operators"); return} + atom.limits = data[0]; + }, + + /* + * Implements macros like those created by \def. The named control + * sequence is replaced by the string given as the first data value. + * If there is a second data value, this specifies how many arguments + * the macro uses, and in this case, those arguments are substituted + * for #1, #2, etc. within the replacement string. + * + * See the jsMath.Macro() command below for more details. + * The "newcommand" extension implements \newcommand and \def + * and are loaded automatically if needed. + */ + Macro: function (name,data) { + var text = data[0]; + if (data[1]) { + var args = []; + for (var i = 0; i < data[1]; i++) + {args[args.length] = this.GetArgument(this.cmd+name); if (this.error) return} + text = this.SubstituteArgs(args,text); + } + this.string = this.AddArgs(text,this.string.slice(this.i)); + this.i = 0; + }, + + /* + * Replace macro paramters with their values + */ + SubstituteArgs: function (args,string) { + var text = ''; var newstring = ''; var c; var i = 0; + while (i < string.length) { + c = string.charAt(i++); + if (c == this.cmd) {text += c + string.charAt(i++)} + else if (c == '#') { + c = string.charAt(i++); + if (c == "#") {text += c} else { + if (!c.match(/[1-9]/) || c > args.length) + {this.Error("Illegal macro parameter reference"); return null} + newstring = this.AddArgs(this.AddArgs(newstring,text),args[c-1]); + text = ''; + } + } else {text += c} + } + return this.AddArgs(newstring,text); + }, + + /* + * Make sure that macros are followed by a space if their names + * could accidentally be continued into the following text. + */ + AddArgs: function (s1,s2) { + if (s2.match(/^[a-z]/i) && s1.match(/(^|[^\\])(\\\\)*\\[a-z]+$/i)) {s1 += ' '} + return s1+s2; + }, + + /* + * Replace the control sequence with the given text + */ + Replace: function (name,data) { + this.mlist.Add(jsMath.mItem.TextAtom(data[0],data[1],data[2],data[3])); + }, + + /* + * Error for # (must use \#) + */ + Hash: function (name) { + this.Error("You can't use 'macro parameter character #' in math mode"); + }, + + /* + * Insert space for ~ + */ + Tilde: function (name) { + this.mlist.Add(jsMath.mItem.TextAtom('ord',' ','normal')); + }, + + /* + * Implements \llap, \rlap, etc. + */ + HandleLap: function (name) { + var box = this.ProcessArg(); if (this.error) return; + box = this.mlist.Add(new jsMath.mItem('lap',{nuc: box, lap: name})); + }, + + /* + * Adds the argument as a specific type of atom (for commands like + * \overline, etc.) + */ + HandleAtom: function (name,data) { + var arg = this.ProcessArg(this.cmd+name); if (this.error) return; + this.mlist.Add(jsMath.mItem.Atom(data[0],arg)); + }, + + + /* + * Process the character associated with a specific \mathcharcode + */ + HandleMathCode: function (name,code) { + this.HandleTeXchar(code[0],code[1],code[2]); + }, + + /* + * Add a specific character from a TeX font (use the current + * font if the type is 7 (variable) or the font is not specified) + * Load the font if it is not already loaded. + */ + HandleTeXchar: function (type,font,code) { + if (type == 7 && this.mlist.data.font != null) {font = this.mlist.data.font} + font = jsMath.TeX.fam[font]; + if (!jsMath.TeX[font]) { + jsMath.TeX[font] = []; + this.Extension(null,[jsMath.Font.URL(font)]); + } else { + this.mlist.Add(jsMath.mItem.TeXAtom(jsMath.TeX.atom[type],code,font)); + } + }, + + /* + * Add a TeX variable character or number + */ + HandleVariable: function (c) {this.HandleTeXchar(7,1,c.charCodeAt(0))}, + HandleNumber: function (c) {this.HandleTeXchar(7,0,c.charCodeAt(0))}, + + /* + * For unmapped characters, just add them in as normal + * (non-TeX) characters + */ + HandleOther: function (c) { + this.mlist.Add(jsMath.mItem.TextAtom('ord',c,'normal')); + }, + + /* + * Ignore comments in TeX data + * ### Some browsers remove the newlines, so this might cause + * extra stuff to be ignored; look into this ### + */ + HandleComment: function () { + var c; + while (this.i < this.string.length) { + c = this.string.charAt(this.i++); + if (c == "\r" || c == "\n") return; + } + }, + + /* + * Add a style change (e.g., \displaystyle, etc) + */ + HandleStyle: function (name,style) { + this.mlist.data.style = style[0]; + this.mlist.Add(new jsMath.mItem('style',{style: style[0]})); + }, + + /* + * Implements \small, \large, etc. + */ + HandleSize: function (name,size) { + this.mlist.data.size = size[0]; + this.mlist.Add(new jsMath.mItem('size',{size: size[0]})); + }, + + /* + * Set the current font (e.g., \rm, etc) + */ + HandleFont: function (name,font) { + this.mlist.data.font = font[0]; + }, + + /* + * Look for and process a control sequence + */ + HandleCS: function () { + var cmd = this.GetCommand(); if (this.error) return; + if (this.macros[cmd]) { + var macro = this.macros[cmd]; + if (typeof(macro) == "string") {macro = [macro]} + this[macro[0]](cmd,macro.slice(1)); return; + } + if (this.mathchardef[cmd]) { + this.HandleMathCode(cmd,this.mathchardef[cmd]); + return; + } + if (this.delimiter[this.cmd+cmd]) { + this.HandleMathCode(cmd,this.delimiter[this.cmd+cmd].slice(0,3)) + return; + } + this.Error("Unknown control sequence '"+this.cmd+cmd+"'"); + }, + + /* + * Process open and close braces + */ + HandleOpen: function () {this.mlist.Open()}, + HandleClose: function () { + if (this.mlist.data.openI == null) {this.Error("Extra close brace"); return} + var open = this.mlist.Get(this.mlist.data.openI); + if (!open || open.left == null) {this.mlist.Close()} + else {this.Error("Extra close brace or missing "+this.cmd+"right"); return} + }, + + /* + * Implements \left + */ + HandleLeft: function (name) { + var left = this.GetDelimiter(this.cmd+name); if (this.error) return; + this.mlist.Open(left); + }, + + /* + * Implements \right + */ + HandleRight: function (name) { + var right = this.GetDelimiter(this.cmd+name); if (this.error) return; + var open = this.mlist.Get(this.mlist.data.openI); + if (open && open.left != null) {this.mlist.Close(right)} + else {this.Error("Extra open brace or missing "+this.cmd+"left");} + }, + + /* + * Implements generalized fractions (\over, \above, etc.) + */ + HandleOver: function (name,data) { + if (this.mlist.data.overI != null) + {this.Error('Ambiguous use of '+this.cmd+name); return} + this.mlist.data.overI = this.mlist.Length(); + this.mlist.data.overF = {name: name}; + if (data.length > 0) { + this.mlist.data.overF.left = this.delimiter[data[0]]; + this.mlist.data.overF.right = this.delimiter[data[1]]; + } else if (name.match(/withdelims$/)) { + this.mlist.data.overF.left = this.GetDelimiter(this.cmd+name); if (this.error) return; + this.mlist.data.overF.right = this.GetDelimiter(this.cmd+name); if (this.error) return; + } else { + this.mlist.data.overF.left = null; + this.mlist.data.overF.right = null; + } + if (name.match(/^above/)) { + this.mlist.data.overF.thickness = this.GetDimen(this.cmd+name,1); + if (this.error) return; + } else { + this.mlist.data.overF.thickness = null; + } + }, + + /* + * Add a superscript to the preceeding atom + */ + HandleSuperscript: function () { + var base = this.mlist.Last(); + if (this.mlist.data.overI == this.mlist.Length()) {base = null} + if (base == null || (!base.atom && base.type != 'box' && base.type != 'frac')) + {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} + if (base.sup) { + if (base.sup.isPrime) {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} + else {this.Error("Double exponent: use braces to clarify"); return} + } + base.sup = this.ProcessScriptArg('superscript'); if (this.error) return; + }, + + /* + * Add a subscript to the preceeding atom + */ + HandleSubscript: function () { + var base = this.mlist.Last(); + if (this.mlist.data.overI == this.mlist.Length()) {base = null} + if (base == null || (!base.atom && base.type != 'box' && base.type != 'frac')) + {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} + if (base.sub) {this.Error("Double subscripts: use braces to clarify"); return} + base.sub = this.ProcessScriptArg('subscript'); if (this.error) return; + }, + + /* + * Parse a TeX math string, handling macros, etc. + */ + Parse: function () { + var c; + while (this.i < this.string.length) { + c = this.string.charAt(this.i++); + if (this.mathchar[c]) {this.HandleMathCode(c,this.mathchar[c])} + else if (this.special[c]) {this[this.special[c]](c)} + else if (this.letter.test(c)) {this.HandleVariable(c)} + else if (this.number.test(c)) {this.HandleNumber(c)} + else {this.HandleOther(c)} + } + if (this.mlist.data.openI != null) { + var open = this.mlist.Get(this.mlist.data.openI); + if (open.left) {this.Error("Missing "+this.cmd+"right")} + else {this.Error("Missing close brace")} + } + if (this.mlist.data.overI != null) {this.mlist.Over()} + }, + + /* + * Perform the processing of Appendix G + */ + Atomize: function () { + var data = this.mlist.init; + if (!this.error) this.mlist.Atomize(data.style,data.size) + }, + + /* + * Produce the final HTML. + * + * We have to wrap the HTML it appropriate tags to hide its + * actual dimensions when these don't match the TeX dimensions of the + * results. We also include an image to force the results to take up + * the right amount of space. The results may need to be vertically + * adjusted to make the baseline appear in the correct place. + */ + Typeset: function () { + var data = this.mlist.init; + var box = this.typeset = this.mlist.Typeset(data.style,data.size); + if (this.error) {return ''+this.error+''} + if (box.format == 'null') {return ''}; + + box.Styled().Remeasured(); var isSmall = 0; var isBig = 0; + if (box.bh > box.h && box.bh > jsMath.h+.001) {isSmall = 1} + if (box.bd > box.d && box.bd > jsMath.d+.001) {isSmall = 1} + if (box.h > jsMath.h || box.d > jsMath.d) {isBig = 1} + + var html = box.html; + if (isSmall) {// hide the extra size + if (jsMath.Browser.allowAbsolute) { + var y = (box.bh > jsMath.h+.001 ? jsMath.h - box.bh : 0); + html = jsMath.HTML.Absolute(html,box.w,jsMath.h,0,y); + } else if (jsMath.Browser.valignBug) { + // remove line height + html = '' + + html + ''; + } else if (!jsMath.Browser.operaLineHeightBug) { + // remove line height and try to hide the depth + var dy = jsMath.HTML.Em(Math.max(0,box.bd-jsMath.hd)/3); + html = '' + html + ''; + } + isBig = 1; + } + if (isBig) { + // add height and depth to the line + // (force a little extra to separate lines if needed) + html += jsMath.HTML.Blank(0,box.h+.05,box.d+.05); + } + return ''+html+''; + } + +}); + +/* + * Make these characters special (and call the given routines) + */ +jsMath.Parser.prototype.AddSpecial({ + cmd: 'HandleCS', + open: 'HandleOpen', + close: 'HandleClose' +}); + + +/* + * The web-page author can call jsMath.Macro to create additional + * TeX macros for use within his or her mathematics. See the + * author's documentation for more details. + */ + +jsMath.Add(jsMath,{ + Macro: function (name) { + var macro = jsMath.Parser.prototype.macros; + macro[name] = ['Macro']; + for (var i = 1; i < arguments.length; i++) + {macro[name][macro[name].length] = arguments[i]} + } +}); + +/* + * Use these commands to create macros that load + * JavaScript files and reprocess the mathematics when + * the file is loaded. This lets you to have macros or + * LaTeX environments that autoload their own definitions + * only when they are needed, saving initial download time + * on pages where they are not used. See the author's + * documentation for more details. + * + */ + +jsMath.Extension = { + + safeRequire: 1, // disables access to files outside of jsMath/extensions + + Macro: function (name,file) { + var macro = jsMath.Parser.prototype.macros; + if (file == null) {file = name} + macro[name] = ['Extension',file]; + }, + + LaTeX: function (env,file) { + var latex = jsMath.Parser.prototype.environments; + latex[env] = ['Extension',file,'environments']; + }, + + Font: function (name,font) { + if (font == null) {font = name + "10"} + var macro = jsMath.Parser.prototype.macros; + macro[name] = ['Extension',jsMath.Font.URL(font)]; + }, + + MathChar: function (font,defs) { + var fam = jsMath.TeX.famName[font]; + if (fam == null) { + fam = jsMath.TeX.fam.length; + jsMath.TeX.fam[fam] = font; + jsMath.TeX.famName[font] = fam; + } + var mathchardef = jsMath.Parser.prototype.mathchardef; + for (var c in defs) {mathchardef[c] = [defs[c][0],fam,defs[c][1]]} + }, + + Require: function (file,show) { + if (this.safeRequire && (file.match(/\.\.\/|[^-a-z0-9.\/:_+=%~]/i) || + (file.match(/:/) && file.substr(0,jsMath.root.length) != jsMath.root))) { + jsMath.Setup.loaded[file] = 1; + return; + } + jsMath.Setup.Script(this.URL(file),show); + }, + + URL: function (file) { + file = file.replace(/^\s+|\s+$/g,''); + if (!file.match(/^([a-z]+:|\/|fonts|extensions\/)/i)) {file = 'extensions/'+file} + if (!file.match(/\.js$/)) {file += '.js'} + return file; + } +} + + +/***************************************************************************/ + +/* + * These routines look through the web page for math elements to process. + * There are two main entry points you can call: + * + * + * or + * + * + * The first will process the page asynchronously (so the user can start + * reading the top of the file while jsMath is still processing the bottom) + * while the second does not update until all the mathematics is typeset. + */ + +jsMath.Add(jsMath,{ + /* + * Call this at the bottom of your HTML page to have the + * mathematics typeset asynchronously. This lets the user + * start reading the mathematics while the rest of the page + * is being processed. + */ + Process: function (obj) { + jsMath.Setup.Body(); + jsMath.Script.Push(jsMath.Translate,'Asynchronous',obj); + }, + + /* + * Call this at the bottom of your HTML page to have the + * mathematics typeset before the page is displayed. + * This can take a long time, so the user could cancel the + * page before it is complete; use it with caution, and only + * when there is a relatively small amount of math on the page. + */ + ProcessBeforeShowing: function (obj) { + jsMath.Setup.Body(); + var method = (jsMath.Controls.cookie.asynch ? "Asynchronous": "Synchronous"); + jsMath.Script.Push(jsMath.Translate,method,obj); + }, + + /* + * Process the contents of a single element. It must be of + * class "math". + */ + ProcessElement: function (obj) { + jsMath.Setup.Body(); + jsMath.Script.Push(jsMath.Translate,'ProcessOne',obj); + } + +}); + +jsMath.Translate = { + + element: [], // the list of math elements on the page + cancel: 0, // set to 1 to cancel asynchronous processing + + /* + * Parse a TeX string in Text or Display mode and return + * the HTML for it (taking it from the cache, if available) + */ + Parse: function (style,s,noCache) { + var cache = jsMath.Global.cache[style]; + if (!cache[jsMath.em]) {cache[jsMath.em] = {}} + var HTML = cache[jsMath.em][s]; + if (!HTML || noCache) { + var parse = jsMath.Parse(s,null,null,style); + parse.Atomize(); HTML = parse.Typeset(); + if (!noCache) {cache[jsMath.em][s] = HTML} + } + return HTML; + }, + + TextMode: function (s,noCache) {this.Parse('T',s,noCache)}, + DisplayMode: function (s,noCache) {this.Parse('D',s,noCache)}, + + /* + * Return the text of a given DOM element + */ + GetElementText: function (element) { + if (element.childNodes.length == 1 && element.childNodes[0].nodeName === "#comment") { + var result = element.childNodes[0].nodeValue.match(/^\[CDATA\[(.*)\]\]$/); + if (result != null) {return result[1]}; + } + var text = this.recursiveElementText(element); + element.alt = text; + if (text.search('&') >= 0) { + text = text.replace(/</g,'<'); + text = text.replace(/>/g,'>'); + text = text.replace(/"/g,'"'); + text = text.replace(/&/g,'&'); + } + return text; + }, + recursiveElementText: function (element) { + if (element.nodeValue != null) { + if (element.nodeName !== "#comment") {return element.nodeValue} + return element.nodeValue.replace(/^\[CDATA\[((.|\n)*)\]\]$/,"$1"); + } + if (element.childNodes.length === 0) {return " "} + var text = ''; + for (var i = 0; i < element.childNodes.length; i++) + {text += this.recursiveElementText(element.childNodes[i])} + return text; + }, + + /* + * Move hidden to the location of the math element to be + * processed and reinitialize sizes for that location. + */ + ResetHidden: function (element) { + element.innerHTML = + '' + + jsMath.Browser.operaHiddenFix; // needed by Opera in tables + element.className = ''; + jsMath.hidden = element.firstChild; + if (!jsMath.BBoxFor("x").w) {jsMath.hidden = jsMath.hiddenTop} + jsMath.ReInit(); + }, + + + /* + * Typeset the contents of an element in \textstyle or \displaystyle + */ + ConvertMath: function (style,element,noCache) { + var text = this.GetElementText(element); + this.ResetHidden(element); + if (text.match(/^\s*\\nocache([^a-zA-Z])/)) + {noCache = true; text = text.replace(/\s*\\nocache/,'')} + text = this.Parse(style,text,noCache); + element.className = 'typeset'; + element.innerHTML = text; + }, + + /* + * Process a math element + */ + ProcessElement: function (element) { + this.restart = 0; + if (!element.className.match(/(^| )math( |$)/)) return; // don't reprocess elements + var noCache = (element.className.toLowerCase().match(/(^| )nocache( |$)/) != null); + try { + var style = (element.tagName.toLowerCase() == 'div' ? 'D' : 'T'); + this.ConvertMath(style,element,noCache); + element.onclick = jsMath.Click.CheckClick; + element.ondblclick = jsMath.Click.CheckDblClick; + } catch (err) { + if (element.alt) { + var tex = element.alt; + tex = tex.replace(/&/g,'&') + .replace(//g,'>'); + element.innerHTML = tex; + element.className = 'math'; + if (noCache) {element.className += ' nocache'} + } + jsMath.hidden = jsMath.hiddenTop; + } + }, + + /* + * Asynchronously process all the math elements starting with + * the k-th one. Do them in blocks of 8 (more efficient than one + * at a time, but still allows screen updates periodically). + */ + ProcessElements: function (k) { + jsMath.Script.blocking = 1; + for (var i = 0; i < jsMath.Browser.processAtOnce; i++, k++) { + if (k >= this.element.length || this.cancel) { + this.ProcessComplete(); + if (this.cancel) { + jsMath.Message.Set("Process Math: Canceled"); + jsMath.Message.Clear() + } + jsMath.Script.blocking = 0; + jsMath.Script.Process(); + return; + } else { + var savedQueue = jsMath.Script.SaveQueue(); + this.ProcessElement(this.element[k]); + if (this.restart) { + jsMath.Script.Push(this,'ProcessElements',k); + jsMath.Script.RestoreQueue(savedQueue); + jsMath.Script.blocking = 0; + setTimeout('jsMath.Script.Process()',jsMath.Browser.delay); + return; + } + } + } + jsMath.Script.RestoreQueue(savedQueue); + var p = Math.floor(100 * k / this.element.length); + jsMath.Message.Set('Processing Math: '+p+'%'); + setTimeout('jsMath.Translate.ProcessElements('+k+')',jsMath.Browser.delay); + }, + + /* + * Start the asynchronous processing of mathematics + */ + Asynchronous: function (obj) { + if (!jsMath.initialized) {jsMath.Init()} + this.element = this.GetMathElements(obj); + jsMath.Script.blocking = 1; + this.cancel = 0; this.asynchronous = 1; + jsMath.Message.Set('Processing Math: 0%',1); + setTimeout('jsMath.Translate.ProcessElements(0)',jsMath.Browser.delay); + }, + + /* + * Do synchronous processing of mathematics + */ + Synchronous: function (obj,i) { + if (i == null) { + if (!jsMath.initialized) {jsMath.Init()} + this.element = this.GetMathElements(obj); + i = 0; + } + this.asynchronous = 0; + while (i < this.element.length) { + this.ProcessElement(this.element[i]); + if (this.restart) { + jsMath.Synchronize('jsMath.Translate.Synchronous(null,'+i+')'); + jsMath.Script.Process(); + return; + } + i++; + } + this.ProcessComplete(1); + }, + + /* + * Synchronously process the contents of a single element + */ + ProcessOne: function (obj) { + if (!jsMath.initialized) {jsMath.Init()} + this.element = [obj]; + this.Synchronous(null,0); + }, + + /* + * Look up all the math elements on the page and + * put them in a list sorted from top to bottom of the page + */ + GetMathElements: function (obj) { + var element = []; var k; + if (!obj) {obj = jsMath.document} + if (typeof(obj) == 'string') {obj = jsMath.document.getElementById(obj)} + if (!obj.getElementsByTagName) return null; + var math = obj.getElementsByTagName('div'); + for (k = 0; k < math.length; k++) { + if (math[k].className && math[k].className.match(/(^| )math( |$)/)) { + if (jsMath.Browser.renameOK && obj.getElementsByName) + {math[k].setAttribute('name','_jsMath_')} + else {element[element.length] = math[k]} + } + } + math = obj.getElementsByTagName('span'); + for (k = 0; k < math.length; k++) { + if (math[k].className && math[k].className.match(/(^| )math( |$)/)) { + if (jsMath.Browser.renameOK && obj.getElementsByName) + {math[k].setAttribute('name','_jsMath_')} + else {element[element.length] = math[k]} + } + } + // this gets the SPAN and DIV elements interleaved in order + if (jsMath.Browser.renameOK && obj.getElementsByName) { + element = obj.getElementsByName('_jsMath_'); + } else if (jsMath.hidden.sourceIndex) { + element.sort(function (a,b) {return a.sourceIndex - b.sourceIndex}); + } + return element; + }, + + /* + * Remove the window message about processing math + * and clean up any marked or
tags + */ + ProcessComplete: function (noMessage) { + if (jsMath.Browser.renameOK) { + var element = jsMath.document.getElementsByName('_jsMath_'); + for (var i = element.length-1; i >= 0; i--) { + element[i].removeAttribute('name'); + } + } + jsMath.hidden = jsMath.hiddenTop; + this.element = []; this.restart = null; + if (!noMessage) { + jsMath.Message.Set('Processing Math: Done'); + jsMath.Message.Clear(); + } + jsMath.Message.UnBlank(); + if (jsMath.Browser.safariImgBug && + (jsMath.Controls.cookie.font == 'symbol' || + jsMath.Controls.cookie.font == 'image')) { + // + // For Safari, the images don't always finish + // updating, so nudge the window to cause a + // redraw. (Hack!) + // + if (this.timeout) {clearTimeout(this.timeout)} + this.timeout = setTimeout("jsMath.window.resizeBy(-1,0); " + + "jsMath.window.resizeBy(1,0); " + + "jsMath.Translate.timeout = null",2000); + } + }, + + /* + * Cancel procesing elements + */ + Cancel: function () { + jsMath.Translate.cancel = 1; + if (jsMath.Script.cancelTimer) {jsMath.Script.cancelLoad()} + } + +}; + +jsMath.Add(jsMath,{ + // + // Synchronize these with the loading of the tex2math plugin. + // + ConvertTeX: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertTeX',element)}, + ConvertTeX2: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertTeX2',element)}, + ConvertLaTeX: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertLaTeX',element)}, + ConvertCustom: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertCustom',element)}, + CustomSearch: function (om,cm,od,cd) {jsMath.Script.Push(null,function () {jsMath.tex2math.CustomSearch(om,cm,od,cd)})}, + tex2math: { + ConvertTeX: function () {}, + ConvertTeX2: function () {}, + ConvertLaTeX: function () {}, + ConvertCustom: function () {}, + CustomSearch: function () {} + } +}); +jsMath.Synchronize = jsMath.Script.Synchronize; + +/***************************************************************************/ + + +/* + * Initialize things + */ +try { + if (window.parent != window && window.jsMathAutoload) { + window.parent.jsMath = jsMath; + jsMath.document = window.parent.document; + jsMath.window = window.parent; + } +} catch (err) {} + + +jsMath.Global.Register(); +jsMath.Loaded(); +jsMath.Controls.GetCookie(); +jsMath.Setup.Source(); +jsMath.Global.Init(); +jsMath.Script.Init(); +jsMath.Setup.Fonts(); +if (jsMath.document.body) {jsMath.Setup.Body()} +jsMath.Setup.User("onload"); + +}} diff --git a/templates/page-jsmath.tmpl b/templates/page-jsmath.tmpl new file mode 100644 index 00000000..8d330fa6 --- /dev/null +++ b/templates/page-jsmath.tmpl @@ -0,0 +1,205 @@ + + + + + + + + + + + + +<TMPL_VAR TITLE> + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ +
+ +
+ + + +
+ + + + +
Comments on this page are closed.
+
+
+
+
+ + + +
+ + + + + + + +
+ +License: +
+
+ +
+Last edited + +
+ + + + + +
+ + + + + diff --git a/templates/page-latexmathml.tmpl b/templates/page-latexmathml.tmpl new file mode 100644 index 00000000..04944d15 --- /dev/null +++ b/templates/page-latexmathml.tmpl @@ -0,0 +1,206 @@ + + + + + + + + + + + + +<TMPL_VAR TITLE> + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ +
+ + + +
+ + + + +
Comments on this page are closed.
+
+
+
+
+ + + +
+ + + + + + + +
+ +License: +
+
+ +
+Last edited + +
+ + + + + +
+ +
+ + + diff --git a/templates/page-mathjax.tmpl b/templates/page-mathjax.tmpl new file mode 100644 index 00000000..6f19a604 --- /dev/null +++ b/templates/page-mathjax.tmpl @@ -0,0 +1,205 @@ + + + + + + + + + + + + +<TMPL_VAR TITLE> + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ +
+ + + +
+ + + + +
Comments on this page are closed.
+
+
+
+
+ + + +
+ + + + + + + +
+ +License: +
+
+ +
+Last edited + +
+ + + + + +
+ +
+ + + diff --git a/templates/page.tmpl b/templates/page-mathml.tmpl similarity index 98% rename from templates/page.tmpl rename to templates/page-mathml.tmpl index 8659018a..6aed9952 100644 --- a/templates/page.tmpl +++ b/templates/page-mathml.tmpl @@ -27,6 +27,7 @@ +