Template:Technion HS Israel4/Technion HS Israel LaTeX

/*

  • LaTeX IT - JavaScript to Convert Latex within an HTML page into Equations
  • Copyright (C) 2009 William Bateman, 2008 Waipot Ngamsaad
  • 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 3 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 for more details.
  • You should have received a copy of the GNU General Public License
  • along with this program. If not, see <http://www.gnu.org/licenses/>.
  • /

var LatexIT = { mode : 'gif', imgnum : 0, isFirefox:false, init : function() { // We need to review the support for SVG. Latest released versions are not supporting this as they should

 //  if(document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"))

// this.mode='svg';

   // browser name

// svg support in FireFox is not allowing two images to occur currently on the same line.

var ua = navigator.userAgent.toLowerCase(); if(ua.indexOf("firefox")!=-1) {

     // this.isFirefox = true;

}

 },

pre : function(txt) { if ( !txt.match(/<img.*?>/i) ) { //Clean code txt=txt.replace(/
/mgi,""); txt=txt.replace(/
/mgi,""); //Create img tag // txt = " <img src=\"http://latex.codecogs.com/"+this.mode+".latex?"+ txt +"\" /> "; // txt = " <object type=\"image/svg+xml\" width=\"20\" data=\"http://latex.codecogs.com/"+this.mode+".latex?"+ txt +"\" /> ";

if(this.mode=='svg') { // Best for Firefox if(this.isFirefox)

 		   	txt = " <object type=\"image/svg+xml\" data=\"http://latex.codecogs.com/"+this.mode+".latex?"+ txt +"\" class=\"latex\" style=\"margin:0; padding:0; border:0\" /> ";

else // Best for Chrome

 		   //	txt = " <object type=\"image/svg+xml\" data=\"http://latex.codecogs.com/"+this.mode+".latex?"+ txt +"\" class=\"latex\" /> ";

txt = " <img src=\"http://latex.codecogs.com/"+this.mode+".latex?"+ txt +"\" alt=\""+ txt +"\" title=\""+ txt +"\" border=\"0\" class=\"latex\" /> "; } else txt = " <img src=\"http://latex.codecogs.com/"+this.mode+".latex?"+ txt +"\" alt=\""+txt+"\" border=\"0\" class=\"latex\" /> "; } return txt; },

latex : function(txt) { var html, htmlinline; if(this.isFirefox) { html=" <object type=\"image/svg+xml\" data=\"http://latex.codecogs.com/"+this.mode+".latex?$2\" class=\"latex\" /> "; htmlinline=" <object type=\"image/svg+xml\" data=\"http://latex.codecogs.com/"+this.mode+".latex?\\inline $2\" class=\"latex\" /> "; } else { html=" <img src=\"http://latex.codecogs.com/"+this.mode+".latex?$2\" border=\"0\" class=\"latex\" /> "; htmlinline=" <img src=\"http://latex.codecogs.com/"+this.mode+".latex?\\inline $2\" border=\"0\" class=\"latex\" /> "; }


txt=txt.replace(/(^\$|[^\\]\$)(.*?[^\\])\$/gm, htmlinline); txt=txt.replace(/(^\\|[^\\]\\)\[(.*?[^\\])\\\]/mg,"
"+html+"
"); txt=txt.replace(/\\\$/mg,"\$"); txt=txt.replace(/\\\\(\[|\])/mg,"$1");

return txt; },

render : function(tag, latexmode) { var eqn = window.document.getElementsByTagName(tag); for (var i=0; i<eqn.length; i++) { if(latexmode) eqn[i].innerHTML = LatexIT.latex(eqn[i].innerHTML); else if (eqn[i].getAttribute("lang") == "latex" || eqn[i].getAttribute("xml:lang") == "latex") eqn[i].innerHTML = LatexIT.pre(eqn[i].innerHTML); } },

 add : function(tag, latexmode)

{ if(typeof(latexmode)=='undefined') latexmode=false; if(window.addEventListener) window.addEventListener('load', new Function('LatexIT.render("'+tag+'", '+latexmode+')'),false); else window.attachEvent('onload', new Function('LatexIT.render("'+tag+'", '+latexmode+')') ); },

scale : function(e,scale) { e.width =(e.width*scale); e.height=(e.height*scale); } };

LatexIT.init(); LatexIT.add('*');