// var info_versione="20121227 (libreria proformule - Giampaolo Bottoni)"; // // Libreria per la scrittura di formule matematiche in HTML. // Variante della libreria convenzioni-proformule.txt posta in rete // all'indirizzo http://www.elegio.it/mc2/convenzioni-proformule.txt // In questa versione non si fa uso del carattere .lt. che causa problemi // di incompatibilitā se usato in HTML. // Per il resto si usano le stesse regole esposte in: // http://www.elegio.it/mc2/convenzioni-proformule.html // //"; var yix10=xlt+"/i>"; var xsupx10=xlt+"sup>"; var ysupx10=xlt+"/sup>"; var xsubx10=xlt+"sub style='color:magenta'>"; var ysubx10=xlt+"/sub>"; var xsubux10=xlt+"sub>"+xlt+"u style='color:blue'>"; var ysubux10=xlt+"/u>"+xlt+"/sub>"; var xbx10=xlt+"b>"; var ybx10=xlt+"/b>"; var xsmallx10=xlt+"small>"; var ysmallx10=xlt+"/small>"; var ximpostatox10=-123456; var t45_57x10=new Array(128); var t48_57x10=new Array(128); var t65_90x10=new Array(128); var t97_123x10=new Array(128); var t48_123x10=new Array(128); // // La libreria č facilmente modificabile in modo che vengano // visualizzati i caratteri latini standard ma qualsiasi tipo // di carattere unicode o qualsiasi stringa. Indici e pedici // possono servire solo da soprannomi delle stringhe che si // desidera visualizzare. // var knorx10=[ "?","?","?","?","?","?","?","?","?","?", "?","?","?","?","?","?","?","?","?","?", "?","?","?","?","?","?","?","?","?","?", "?","?"," ","!",'"',"#","$","%","&","'", "(",")","*","+",",","−",".","/","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","{","?","}","~","?"]; var ksupx10=new Array(128); var ksubx10=new Array(128); var dksupx10=new Array(128); var dksubx10=new Array(128); var Dksupx10=new Array(128); var Dksubx10=new Array(128); // // Per vedere come trasforma le formule usare la vedohtmlformule() // function vedohtmlformule(){ if(xlt.charCodeAt(0)==60)xlt="<"; else xlt=String.fromCharCode(60); xix10=xlt+"i>"; yix10=xlt+"/i>"; xsupx10=xlt+"sup>"; ysupx10=xlt+"/sup>"; xsubx10=xlt+"sub style='color:magenta'>"; ysubx10=xlt+"/sub>"; xsubux10=xlt+"sub>"+xlt+"u style='color:blue'>"; ysubux10=xlt+"/u>"+xlt+"/sub>"; xbx10=xlt+"b>"; ybx10=xlt+"/b>"; xsmallx10=xlt+"small>"; ysmallx10=xlt+"/small>"; ximpostatox10=-123456; } // // Variante con uso di virgolette come delimitatori. // function vedohtmlformule_2(){ if(xlt.charCodeAt(0)==60){xlt="\u00ab"; xgt="\u00bb"} else { xlt=String.fromCharCode(60);xgt=String.fromCharCode(62);} xix10=xlt+"i"+xgt; yix10=xlt+"/i"+xgt; xsupx10=xlt+"sup"+xgt; ysupx10=xlt+"/sup"+xgt; xsubx10=xlt+"sub style='color:magenta'"+xgt; ysubx10=xlt+"/sub"+xgt; xsubux10=xlt+"sub"+xgt+xlt+"u style='color:blue'"+xgt; ysubux10=xlt+"/u"+xgt+xlt+"/sub"+xgt; xbx10=xlt+"b"+xgt; ybx10=xlt+"/b"+xgt; xsmallx10=xlt+"small"+xgt; ysmallx10=xlt+"/small"+xgt; ximpostatox10=-123456; } // function impostatox10(regola){ var j,d,D; d=xbx10+"/"+ybx10; D=xbx10+":"+ybx10; for(j=0;128>j;j++){ t48_57x10[j]=false; t45_57x10[j]=false; t65_90x10[j]=false; t97_123x10[j]=false; t48_123x10[j]=false; ksupx10[j]=String.fromCharCode(j); ksubx10[j]=String.fromCharCode(j); dksupx10[j]=String.fromCharCode(j); dksubx10[j]=String.fromCharCode(j); Dksupx10[j]=String.fromCharCode(j); Dksubx10[j]=String.fromCharCode(j); } if(regola==0){ for(j=0;128>j;j++){ ksupx10[j]=xsupx10+ksupx10[j]+ysupx10; ksubx10[j]=xsubx10+ksubx10[j]+ysubx10; dksupx10[j]=xsupx10+d+dksupx10[j]+ysupx10; dksubx10[j]=xsubx10+d+dksubx10[j]+ysubx10; Dksupx10[j]=xsupx10+D+Dksupx10[j]+ysupx10; Dksubx10[j]=xsubx10+D+Dksubx10[j]+ysubx10; } } else { for(j=0;128>j;j++){ ksupx10[j]=xsubx10+ksupx10[j]+ysubx10; ksubx10[j]=xsubux10+ksubx10[j]+ysubux10; dksupx10[j]=xsubx10+d+dksupx10[j]+ysubx10; dksubx10[j]=xsubux10+d+dksubx10[j]+ysubux10; Dksupx10[j]=xsubx10+D+Dksupx10[j]+ysubx10; Dksubx10[j]=xsubux10+D+Dksubx10[j]+ysubux10; } } t45_57x10[45]=true; t45_57x10[46]=true; t45_57x10[47]=true; for(j=48;58>j;j++){t48_57x10[j]=true; t45_57x10[j]=true; t48_123x10[j]=true;} for(j=65;91>j;j++){t65_90x10[j]=true; t48_123x10[j]=true;} for(j=97;124>j;j++){t97_123x10[j]=true;t48_123x10[j]=true;} ximpostatox10=regola; } // function convertox10(da,ad){ var j,p,r,s,o,ns,regola=0; dimax10=ax10.length; // alert(convertox10.arguments.length); if(convertox10.arguments.length > 2) regola=1; if(regola!=ximpostatox10) impostatox10(regola); for(j=0;dimax10>j;j++)ax10[j]=""; risax10=""; o=document.getElementById(da); s=o.innerHTML; ns=s.length; p=0; for(j=0;ns>j;j++){ risax10+=ax10[p]; ax10[p]=s.charAt(j); switch(ax10[p]){ case "_": p=elaboro1x10(p); break; case "!": p=elaboro2x10(p); break; case "°": p=elaboro3x10(p); break; case "\u005c": p=elaboro3x10(p); break; case "§": p=elaboro4x10(p); break; case "|": p=elaboro4x10(p); break; case "^": p=elaboro5x10(p); break; default: p++;p=p%dimax10; } } for(j=p;p+dimax10>j;j++) risax10+=ax10[j%dimax10]; o=document.getElementById(ad); o.innerHTML=risax10; } // function elaboro1x10(p){ // "_" var j,p0,p1,p2,ns,ns0,ss0; p1=p-1+dimax10; p1=p1%dimax10; p2=(p+1)%dimax10; p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0); // Se il carattere č preceduto da # usa il greco. if(ns0==35 ) { switch(ax10[p1]){ case "*": p2=sostituiscox10(xix10+yix10,p0,p); break; case "-": p2=sostituiscox10("−",p0,p); break; case "a": p2=sostituiscox10("α",p0,p); break; // alfa case "b": p2=sostituiscox10("β",p0,p); break; // beta case "c": p2=sostituiscox10("γ",p0,p); break; // gamma case "d": p2=sostituiscox10("δ",p0,p); break; // delta case "e": p2=sostituiscox10("ε",p0,p); break; // epsilon case "f": p2=sostituiscox10("ζ",p0,p); break; // zeta case "g": p2=sostituiscox10("η",p0,p); break; // eta case "h": p2=sostituiscox10("θ",p0,p); break; // theta case "i": p2=sostituiscox10("ι",p0,p); break; // iota case "j": p2=sostituiscox10("κ",p0,p); break; // kappa case "k": p2=sostituiscox10("λ",p0,p); break; // lambda case "l": p2=sostituiscox10("μ",p0,p); break; // mu case "m": p2=sostituiscox10("ν",p0,p); break; // nu case "n": p2=sostituiscox10("ξ",p0,p); break; // xi case "o": p2=sostituiscox10("ο",p0,p); break; // omicron case "p": p2=sostituiscox10("π",p0,p); break; // pi case "q": p2=sostituiscox10("ρ",p0,p); break; // rho case "r": p2=sostituiscox10("ς",p0,p); break; // sigmaf case "s": p2=sostituiscox10("σ",p0,p); break; // sigma case "t": p2=sostituiscox10("τ",p0,p); break; // tau case "u": p2=sostituiscox10("υ",p0,p); break; // upsilon case "v": p2=sostituiscox10("φ",p0,p); break; // phi case "w": p2=sostituiscox10("χ",p0,p); break; // chi case "x": p2=sostituiscox10("ψ",p0,p); break; // psi case "y": p2=sostituiscox10("ω",p0,p); break; // omega case "z": p2=sostituiscox10(xlt+"em title='part'>∂"+ xlt+"/em>",p0,p); break; case "A": p2=sostituiscox10("Α",p0,p); break; case "B": p2=sostituiscox10("Β",p0,p); break; case "C": p2=sostituiscox10("Γ",p0,p); break; case "D": p2=sostituiscox10("Δ",p0,p); break; case "E": p2=sostituiscox10("Ε",p0,p); break; case "F": p2=sostituiscox10("Ζ",p0,p); break; case "G": p2=sostituiscox10("Η",p0,p); break; case "H": p2=sostituiscox10("Θ",p0,p); break; case "I": p2=sostituiscox10("Ι",p0,p); break; case "J": p2=sostituiscox10("Κ",p0,p); break; case "K": p2=sostituiscox10("Λ",p0,p); break; case "L": p2=sostituiscox10("Μ",p0,p); break; case "M": p2=sostituiscox10("Ν",p0,p); break; case "N": p2=sostituiscox10("Ξ",p0,p); break; case "O": p2=sostituiscox10("Ο",p0,p); break; case "P": p2=sostituiscox10("Π",p0,p); break; case "Q": p2=sostituiscox10("Ρ",p0,p); break; case "R": p2=sostituiscox10("∑",p0,p); break; // simbolo di Sommatoria case "S": p2=sostituiscox10("Σ",p0,p); break; case "T": p2=sostituiscox10("Τ",p0,p); break; case "U": p2=sostituiscox10("Υ",p0,p); break; case "V": p2=sostituiscox10("Φ",p0,p); break; case "W": p2=sostituiscox10("Χ",p0,p); break; case "X": p2=sostituiscox10("Ψ",p0,p); break; case "Y": p2=sostituiscox10("Ω",p0,p); break; case "Z": p2=sostituiscox10(xlt+"em title='nabla'>∇"+ xlt+"/em>",p0,p); break; case "#": p2=sostituiscox10("_",p1,p); } } else { // scrive il carattere in corsivo. switch(ax10[p1]){ case "*": p2=sostituiscox10("·",p1,p); break; case "-": p2=sostituiscox10("−",p1,p); break; case "#": p2=sostituiscox10("_",p1,p); break; default : { ns= ax10[p1].charCodeAt(0)%128; if( t48_123x10[ns] ){ ss=ax10[p1]; p0=p1; for(j=0;dimax10>j;j++){ p0=p0-1+dimax10;p0=p0%dimax10; ss0=ax10[p0]; ns0=ss0.charCodeAt(0)%128; if( t48_123x10[ns0] ) { ss = ax10[p0]+ss; p1=p0;} else break; } p2=sostituiscox10(xix10+ss+yix10,p1,p); } } } } return p2; } // function elaboro2x10(p){ // "!" var p0,p1,p2,ss,ns,ns0; p1=p-1+dimax10; p1=p1%dimax10; p2=(p+1)%dimax10; ss=ax10[p1]; ns=ss.charCodeAt(0)%128; if(t48_57x10[ns] ) { p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0)%128; // Se la cifra č preceduta da # la scrive in alto if(ns0==35 ) p2=sostituiscox10(ksupx10[ns],p0,p); else p2=sostituiscox10(ksubx10[ns],p1,p); } else if(t65_90x10[ns]) { p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0)%128; // Se la maiuscola č preceduta da # la scrive in basso if(ns0==35 ) p2=sostituiscox10(ksubx10[ns],p0,p); else p2=sostituiscox10(ksupx10[ns+32],p1,p); } else if( t97_123x10[ns]) p2=sostituiscox10(ksubx10[ns],p1,p); else if( ns==35) p2=sostituiscox10("!",p1,p); return p2; } // function elaboro3x10(p){ // "°" oppure "\" var p0,p1,p2,ss,ns,ns0; p1=p-1+dimax10; p1=p1%dimax10; p2=(p+1)%dimax10; ss=ax10[p1]; ns=ss.charCodeAt(0)%128; if(t48_57x10[ns]) { p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0)%128; // Se la cifra č preceduta da # la scrive in alto if(ns0==35 ) p2=sostituiscox10(dksupx10[ns],p0,p); else p2=sostituiscox10(dksubx10[ns],p1,p); } else if(t65_90x10[ns]) { p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0)%128; // Se la maiuscola č preceduta da # la scrive in basso if(ns0==35 ) p2=sostituiscox10(dksubx10[ns],p0,p); else p2=sostituiscox10(dksupx10[ns+32],p1,p); } else if( t97_123x10[ns]) p2=sostituiscox10(dksubx10[ns],p1,p); else if( ns==35) p2=sostituiscox10("°",p1,p); return p2; } // function elaboro4x10(p){ // "§" oppure "|" var p0,p1,p2,ss,ns,ns0; p1=p-1+dimax10; p1=p1%dimax10; p2=(p+1)%dimax10; ss=ax10[p1]; ns=ss.charCodeAt(0)%128; if(t48_57x10[ns]) { p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0)%128; // Se la cifra č preceduta da # la scrive in alto if(ns0==35 ) p2=sostituiscox10(Dksupx10[ns],p0,p); else p2=sostituiscox10(Dksubx10[ns],p1,p); } else if(t65_90x10[ns]) { p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0)%128; // Se la maiuscola č preceduta da # la scrive in basso if(ns0==35 ) p2=sostituiscox10(Dksubx10[ns],p0,p); else p2=sostituiscox10(Dksupx10[ns+32],p1,p); } else if( t97_123x10[ns] ) p2=sostituiscox10(Dksubx10[ns],p1,p); else if( ns==35) p2=sostituiscox10("§",p1,p); return p2; } // function elaboro5x10(p){ // "^" var j,p0,p1,p2,ss,ns,ss0,ns0; p2=(p+1)%dimax10; p1=p-1+dimax10; p1=p1%dimax10; ns=ax10[p1].charCodeAt(0)%128; ss=knorx10[ns]; if(t48_57x10[ns]) { p0=p1; for(j=0;dimax10>j;j++){ p0=p0-1+dimax10;p0=p0%dimax10; ss0=ax10[p0]; ns0=ss0.charCodeAt(0)%128; if(t45_57x10[ns0] ) { ss = knorx10[ns0]+ss; p1=p0;} else { if(ns0==35) p1=p0; break; } } p2=sostituiscox10(xsupx10+xsmallx10+" "+ysmallx10+ss+ysupx10,p1,p); } else if(t65_90x10[ns]) { p0=p1-1+dimax10;p0=p0%dimax10; ns0=ax10[p0].charCodeAt(0)%128; // Se la maiuscola č preceduta da # la scrive in alto if(ns0==35 ) p2=sostituiscox10(xsupx10+xsmallx10+ " "+ysmallx10+ss+ysupx10,p0,p); else p2=sostituiscox10(xsubx10+xsmallx10+" "+ ysmallx10+knorx10[ns+32]+ysubx10,p1,p); } else if( t97_123x10[ns] ) p2=sostituiscox10(xsupx10+ xsmallx10+" "+ysmallx10+ss+ysupx10,p1,p); else if( ns==35) p2=sostituiscox10("^",p1,p); return p2; } // function sostituiscox10(s,p1,p){ var j,r,pp,ns=s.length; pp=p1; for(j=0;dimax10>j;j++){ ax10[pp]=""; pp++;pp=pp%dimax10; if(pp==p) break; } ax10[p]=""; pp=p1; for(j=0;ns>j;j++){ risax10+=ax10[pp]; ax10[pp]=s.charAt(j); pp++;pp=pp%dimax10; } return pp; } // // Fine della libreria per la realizzazione di formule. // Trascrivere questa libreria in altri documenti quando appunto si // desidera realizzare formule scrivendo in modo veloce. // // ]]>_______________________________________________________________