// LIBRERIA DI FUNZIONI E COSTANTI PER USARE SIMBOLOGIA MATEMATICA // IN UNA PAGINA WEB. // a cura di Giovanni Nicco // USO: // la funzione ww() ammette un numero qualsiasi di stringhe-argomento // esempio ww("ciao"," come ", "stai?"); viene stampato "ciao come stai?" // al fine di usare particolari caratteri, questi sono stati memorizzati in alcune // variabili il cui nome si richiama vagamente al linguaggio latex // es. ww(exist,"x",inset,"A",bar,"x",ge,"1") // consente di scrivere : simbolo di esistenza x incluso in A tale che x >= 1 // in particolare per risparmiare virgolette, simboli quali x,y,z,a,b,c con // relative maiuscole sono state dichiarate con un valore uguale al loro // nome in modo che si puo' anche scrivere: // es. ww(exist,x,inset,A,bar,x,ge,1) // wlc() ha uso analogo ma forza la scrittura in una unica linea (necessaria a // causa del rimando a capo automatico che html impone all'apertura di una tabella // usata per costruzioni grafiche come le frazioni. // esempio la somma di due frazioni: // wlc(frac(1,2),frac(1,3)) // wl() è simile ma forza l'allineamento in basso (utile per le potenze) // es wl(pow("a+b",2),eq,pow(a,2),p,2,a,b,p,pow(b,2)) // // Le funzioni l, lc non stampano ma costruiscono una stringa in linea contenente gli // argomenti: possono servire nel caso si vada costruendo una espressione che solo // alla fine andrà stampata. // es ww(l(agBig,mat31(lc(x,p,y,eq,frac(1,3),p,frac(2,3))," ",lc(x,m,y,eq,frac(1,3),t,frac(2,3)) ) function ww(){w(compattaABvC("","",arguments,""))}// stampa tutte le stringhe-argomenti passate function wl(){w(l(arguments))}; // idem ma forzatamente in linea function wlc(){w(lc(arguments))}; // idem ma centrata (utile per le frazioni) function w(x){document.writeln(x)} // stampa semplice function l(){return compattaABvC("","
",arguments,"
")} //restituisce in linea function lc(){return compattaABvC("","
",arguments,"
")}// idem centrata verticalmente function fontChar(f,c){ return ""+String.fromCharCode(c)+""} var p="+",t="*",m="-",d=":"; // operatori aritmetici var x="x",y="y",z="z",a="a",b="b",c="c",d="d";e="e",o="o";A="A",B="B",C="C",D="D"; // variabili var sx=" x ",sy=" y ",sz=" z ",sa=" a ",sb=" b ",sc=" c ",se=" e ",so=" o ";sA=" A ",sB=" B ",sC=" C "; // variabili con spazio var comma=",";eq="=";bar="|"; // simboli comunque accessibili da tastiera var ag="{",cg="}",aq="[",cq="]",at="(",ct=")"; // parentesi (a)perte e (c)hiuse var s=" ",sp=s+s;spa=s+s+s;spac=s+s+s+s;space=s+s+s+s+s; // spazi più o meno lunghi // abbreviazioni di comandi html var hr="
";var br="
" var pp=".
"; // punto e a capo var pc=".
"; // punto e a capo var ac="
"; // a capo var phi =fontChar("Symbol",106); // LETTERE GRECHE MINUSCOLE***************** var alpha =fontChar("Symbol",97); var beta =fontChar("Symbol",98); var gamma =fontChar("Symbol",103); var delta =fontChar("Symbol",100); var epsilon =fontChar("Symbol",101); var varepsilon =fontChar("Symbol",101); var zeta =fontChar("Symbol",86); var eta =fontChar("Symbol",104); var theta =fontChar("Symbol",113); var vartheta =fontChar("Symbol",74); var iota =fontChar("Symbol",105); var kappa =fontChar("Symbol",107); var lambda =fontChar("Symbol",108); var mu =fontChar("Symbol",109); var nu =fontChar("Symbol",110); var xi =fontChar("Symbol",121); var pi =fontChar("Symbol",112); var varpi =fontChar("Symbol",118); var rho =fontChar("Symbol",114); var varrho =fontChar("Symbol",114); var sigma =fontChar("Symbol",115); var tau =fontChar("Symbol",116); var upsilon =fontChar("Symbol",117); var phi =fontChar("Symbol",102); var varphi =fontChar("Symbol",106); var chi =fontChar("Symbol",99); var psi =fontChar("Symbol",102); var omega =fontChar("Symbol",119); // LETTERE GRECHE MAIUSCOLE***************** var Gamma =fontChar("Symbol",71); var Delta =fontChar("Symbol",68); var Theta =fontChar("Symbol",81); var Lambda =fontChar("Symbol",76); var Xi =fontChar("Symbol",88); var Pi =fontChar("Symbol",80); var Sigma =fontChar("Symbol",115); var Upsilon =fontChar("Symbol",161); var Phi =fontChar("Symbol",70); var Psi =fontChar("Symbol",89); var Omega =fontChar("Symbol",87); // SIMBOLI MATEMATICI ********************** var ast =fontChar("Symbol",42); var biimp =fontChar("Symbol",219); var bigtriangledown =fontChar("Symbol",209); var bullet =fontChar("Symbol",83); var cap =fontChar("Symbol",199); var cdot =fontChar("Symbol",215); var circ =fontChar("Symbol",176); var cong =fontChar("Symbol",64); var cross =fontChar("Symbol",180); var cup =fontChar("Symbol",200); var diamond =fontChar("Symbol",224); var div =fontChar("Symbol",184); var dot =fontChar("Symbol",215); var exists =fontChar("Symbol",36); var empty =fontChar("Symbol",198); var forall =fontChar("Symbol",34); var inset =fontChar("Symbol",206); var leq =fontChar("Symbol",163); var mid =fontChar("Symbol",239); var mp =fontChar("Symbol",177); var nabla =fontChar("Symbol",209); var neq =fontChar("Symbol",185); var notinset =fontChar("Symbol",207); var pm =fontChar("Symbol",177); var root =fontChar("Symbol",214); var star =fontChar("Symbol",42); var subset =fontChar("Symbol",204); var subseteq =fontChar("Symbol",205); var sum =fontChar("Symbol",229); var t =fontChar("Symbol",215); var times =fontChar("Symbol",180); var vee =fontChar("Symbol",218); var wedge =fontChar("Symbol",217); // PARENTESI GRANDI ************** var atUP = fontChar("Symbol",230);var atMIDDLE = fontChar("Symbol",231); var atBOTTOM = fontChar("Symbol",232);var ctUP = fontChar("Symbol",246); var ctMIDDLE = fontChar("Symbol",247);var ctBOTTOM = fontChar("Symbol",248); var atBig= mat31(atUP,atMIDDLE,atBOTTOM) var ctBig= mat31(ctUP,ctMIDDLE,ctBOTTOM) var aqUP = fontChar("Symbol",233);var aqMIDDLE = fontChar("Symbol",234); var aqBOTTOM = fontChar("Symbol",235);var cqUP = fontChar("Symbol",249); var cqMIDDLE = fontChar("Symbol",250);var cqBOTTOM = fontChar("Symbol",251); var aqBig = mat31(aqUP,aqMIDDLE,aqBOTTOM) var cqBig = mat31(cqUP,cqMIDDLE,cqBOTTOM) var agUP = fontChar("Symbol",236);var agMIDDLE = fontChar("Symbol",237); var agBOTTOM = fontChar("Symbol",238);var cgUP = fontChar("Symbol",252); var cgMIDDLE = fontChar("Symbol",253);var cgBOTTOM = fontChar("Symbol",254); var agBig = mat31(agUP,agMIDDLE,agBOTTOM) var cgBig = mat31(cgUP,cgMIDDLE,cgBOTTOM) var intUP = fontChar("Symbol",243);var agMIDDLE = fontChar("Symbol",237); var intOTTOM = fontChar("Symbol",244);var cgUP = fontChar("Symbol",252); var intMIDDLE = fontChar("Symbol",245);var cgBOTTOM = fontChar("Symbol",254); var intBig = mat31(agUP,agMIDDLE,agBOTTOM) var intLittle = fontChar("Symbol",242);var agMIDDLE = fontChar("Symbol",237); // ********************************************** function pow(a,b){ return a+""+b+"" } // FUNZIONI A NUMERO DI ARGOMENTI VARIABILE function toVett(){return arguments} function compatta(x){var s="";for(var i=0;i","",arguments,"")} // compatta con prefisso, infisso e suffisso function mat31(a,b,c){ // restituisce 3 dati incolonnati return "
"+a+ "
"+b+ "
"+c+"
" } function red(){return compattaABvC("","",arguments,"")} function frac(num,den){ return mat31(num,"
",den)} // frazione function overline(x){ return ""+ ""+ "

"+ x+"
" } function tex(x){ while(x.match(/(!overline{)([^}]*)(})/)){x=x.replace(/(!overline{)([^}]*)(})/g,""+ "

$2
")} while(x.match(/(!frac{)([^}]*)(}{)([^}]*)(})/)){x=x.replace(/(!frac{)([^}]*)(}{)([^}]*)(})/g,"
$2

$4
")} while(x.match(/([^\^])(\^)(\{)(\w*)(\})/)!=null){x=x.replace(/([^\^])(\^)(\{)(\w*)(\})/,"$1$4")}//exp{}{} while(x.match(/([^\^])(\^)(\w*)/)!=null) {x=x.replace(/([^\^])(\^)(\w*)/,"$1$3")}//exp 1 chr while(x.match(/([^\_])(\_)(\{)(\w*)(\})/)!=null){x=x.replace(/([^\_])(\_)(\{)(\w+)(\})/,"$1$4")}//ped {}{} while(x.match(/([^\_])(\_)(\w)([^\{])/)!=null){x=x.replace(/([^\_])(\_)(\w)([^\{])/,"$1 $3 $4")}// ped 1 chr x=x.replace(/\/\//g,"
");// "//" break line x=x.replace(/!Abar/g,""+String.fromCharCode(256)+""); x=x.replace(/!alpha/g,""+String.fromCharCode(97)+""); x=x.replace(/!beta/g,""+String.fromCharCode(98)+""); x=x.replace(/!chi/g,""+String.fromCharCode(99)+""); x=x.replace(/!delta/g,""+String.fromCharCode(100)+""); x=x.replace(/!epsilon/g,""+String.fromCharCode(101)+""); x=x.replace(/!psi/g,""+String.fromCharCode(102)+""); x=x.replace(/!gamma/g,""+String.fromCharCode(103)+""); x=x.replace(/!eta/g,""+String.fromCharCode(104)+""); x=x.replace(/!iota/g,""+String.fromCharCode(105)+""); x=x.replace(/!phi/g,""+String.fromCharCode(106)+""); x=x.replace(/!kappa/g,""+String.fromCharCode(107)+""); x=x.replace(/!lambda/g,""+String.fromCharCode(108)+""); x=x.replace(/!mu/g,""+String.fromCharCode(109)+""); x=x.replace(/!nu/g,""+String.fromCharCode(110)+""); x=x.replace(/!pi/g,""+String.fromCharCode(112)+""); x=x.replace(/!theta/g,""+String.fromCharCode(113)+""); x=x.replace(/!rho/g,""+String.fromCharCode(114)+""); x=x.replace(/!sigma/g,""+String.fromCharCode(114)+""); x=x.replace(/!tau/g,""+String.fromCharCode(116)+""); x=x.replace(/!omega/g,""+String.fromCharCode(119)+""); // simboli matematici x=x.replace(/!biimp/g,""+String.fromCharCode(219)+""); x=x.replace(/!cap/g,""+String.fromCharCode(199)+""); x=x.replace(/!cong/g,""+String.fromCharCode(64)+""); x=x.replace(/!cross/g,""+String.fromCharCode(180)+""); x=x.replace(/!cup/g,""+String.fromCharCode(200)+""); x=x.replace(/!empty/g,""+String.fromCharCode(198)+""); x=x.replace(/!integral/g,""+String.fromCharCode(0x222B)+""); x=x.replace(/!forall/g,""+String.fromCharCode(34)+""); x=x.replace(/!exists/g,""+String.fromCharCode(36)+""); x=x.replace(/!notinset/g,""+String.fromCharCode(207)+""); x=x.replace(/!inset/g,""+String.fromCharCode(206)+""); x=x.replace(/!leq/g,""+String.fromCharCode(163)+""); x=x.replace(/!root/g,""+String.fromCharCode(214)+""); x=x.replace(/!subset/g,""+String.fromCharCode(204)+""); x=x.replace(/!subseteq/g,""+String.fromCharCode(205)+""); x=x.replace(/!wedge/g,""+String.fromCharCode(217)+""); x=x.replace(/!dot/g,""+String.fromCharCode(215)+""); return(x); } //function tex2html(x){ // var vett=x.split("\n"); // var result=""; // for(var i=0;i<=vett.length-1;i++){ // if(vett[i].match(/(@)(\w*)/)){ // vett[i]=vett[i].replace(/(@)(\w*)/,"$2"); // eval(vett[i]) // } // else{ // result+=tex(vett[i]); // document.f1.compiled.value=result; // } // } // w(result); //}