// 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 fontChar(f,c){ return ""+String.fromCharCode(c)+""}
var ichapter=0;
var isubchapter=0;
var isubsubchapter=0;
var itemize="itemize";
var enumerate="enumerate"
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 atBigBig= mat31(atUP,atMIDDLE+"
"+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 agBigBigBig= mat31(agUP,atMIDDLE+"
"+agMIDDLE+"
"+atMIDDLE,atBOTTOM)
var cgBig = mat31(cgUP,cgMIDDLE,cgBOTTOM)
// **********************************************
function pow(a,b){ return a+""+b+"" }
function w(x){document.writeln(tex(x))}
function wnotex(x){document.writeln(x)}
function wln(x){w(x+"
")}
// FUNZIONI A NUMERO DI ARGOMENTI VARIABILE
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 ""
}
function mat31left(a,b,c){ // restituisce 3 dati incolonnati
return ""
}
function red(){return compattaABvC("","",arguments,"")}
function ww(){w(compattaABvC("","",arguments,""))}// stampa tutte le stringhe-argomenti passate
function wwnotex(){wnotex(compattaABvC("","",arguments,""))}// stampa tutte le stringhe-argomenti passate
function join(){ return(compattaABvC("","",arguments,""))}// stampa tutte le stringhe-argomenti
function wl(){w(l(arguments))}; // idem ma forzatamente in linea
function wlc(){w(lc(arguments))};// idem ma centrata (utile per le frazioni)
function l(){return compattaABvC("")} //restituisce in linea
function lc(){return compattaABvC("")}// idem centrata
var at="(";
var ct=")";
var p="+";
var t="*";
var m="-";
var d=":";
var x="x";
var y="y";
var z="z";
var a="a";
var b="b";c="c",e="e",o="o";A="A",B="B",C="C"; // 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
m="-";
slash="/"
var AA =fontChar("Tahoma",197);
var aa =fontChar("Tahoma",229);
var Abar =fontChar("Arial",256);
var ac ="
"; // a capo
var addcontentsline ="t";
var AE =fontChar("Tahoma",198);
var ae =fontChar("Tahoma",230);
//var agBig ="agBig";
//var aleph =fontChar("Tahoma",0x05D0);
var aleph =fontChar("Symbol",192);
var alpha =fontChar("Symbol",97);
var amalg ="t";
var and ="t";
var angle =fontChar("Symbol",208);
var appendix ="t";
var approx =fontChar("Symbol",187);
//var aq ="aq";
//var aqBig ="aqBig";
var arccos ="arccos";
var arcsin ="arcsin";
var arctan ="arctan";
var arg ="arg";
var ast =fontChar("Symbol",42);
var asymp ="t";
//var atBig ="atBig";
var author ="t";
var backslash ="\\";
function begin(x){
if(x==itemize){return('')}
if(x==enumerate){return('')}
return "";
}
var beta =fontChar("Symbol",98);
var bfseries ="t";
var bibitem ="t";
var bibliography="t";
var bibliographystyle ="t";
var bigcup ="t";
var bigcirc ="t";
var bigcup ="t";
var bigodot ="t";
var bigotimes ="t";
var bigskip ="t";
var bigsqcup ="t";
var bigtriangledown =fontChar("Symbol",209);
var bigtriangleup="t";
var biguplus ="t";
var bigvee ="t";
var bigwedge ="t";
var biimp =fontChar("Symbol",219);
var bmod ="t";
var bot ="t";
var bowtie ="t";
var Box ="t";
var br ="
"
var bullet =fontChar("Symbol",83);
var cap =fontChar("Symbol",199);
var caption ="t";
var cdot =fontChar("Symbol",215);
var cdots ="t";
//var cgBig ="cgBig";
function chapter(){
var x=compatta(arguments);
ichapter++;
isubchapter=0;
isubsubchapter=0;
return (''+ ichapter+sp+x+'
')
}
function subchapter(){
var x=compatta(arguments);
isubchapter++;
isubsubchapter=0;
return ('   '+ ichapter+'.'+isubchapter+sp+x+'
')
}
var chi =fontChar("Symbol",99);
var circ =fontChar("Symbol",176);
var cite ="t";
var clearpage ="t";
var cline ="t";
var clubsuite =fontChar("Symbol",167);
var cong =fontChar("Symbol",64);
var coprod ="t";
var copypright ="t";
var cos ="cos";
var cosh ="t";
var cot ="t";
var coth ="t";
//var cq ="cq";
//var cqBig ="cqBig";
var cross =fontChar("Symbol",180);
var csc ="t";
//var ctBig ="ctBig";
var cup =fontChar("Symbol",200);
var dag ="t";
var dagger ="t";
var dashv ="t";
var date ="t";
var ddag ="t";
var ddagger ="t";
var ddots ="t";
var deg ="t";
var Delta =fontChar("Symbol",68);
var delta =fontChar("Symbol",100);
var det ="t";
var Diamond ="t";
var diamond =fontChar("Symbol",224);
var diamondsuit ="t";
var dim ="t";
var displaystyle="t";
var div =fontChar("Symbol",184);
var documentstyle="t";
var dot =fontChar("Symbol",215);
var doteq =fontChar("Symbol",215);
var Downarrow ="t";
var downarrow ="t";
var ell ="t";
var emph ="t";
var empty =fontChar("Symbol",198);
var emptyset =fontChar("Symbol",198);
function end(x){
if(x==itemize){ww('
')}
if(x==enumerate){ww('')}
return "";
}
var epsilon =fontChar("Symbol",101);
var eq ="=";
var eqnarray ="t";
var equation ="t";
var equiv ="t";
var eta =fontChar("Symbol",104);
var exists =fontChar("Symbol",36);
var exp ="t";
var flat ="t";
var footnote ="t";
var footnotesize="t";
var forall =fontChar("Symbol",34);
function frac(num,den){ return mat31(num,"
",den)} // frazione
var frown ="t";
var Gamma =fontChar("Symbol",71);
var gamma =fontChar("Symbol",103);
var gcd ="t";
var geq ="t";
var gg ="t";
var gt =">";
var hbar ="t";
var heartsuit ="t";
var hline ="t";
var hom ="t";
var hookleftarrow="t";
var hookrightarrow="t";
var hr ="
";
var hspace ="t";
var Huge ="t";
var huge ="t";
var i ="t";
var Im ="t";
var imath ="t";
var inset ="t";
var includegraphics ="t";
var index ="t";
var inf ="t";
var infty =fontChar("Symbol",165);
var inset =fontChar("Symbol",206);
function int() {return fontChar("",0x222B)+" "+compatta(arguments)};
function intdef(a,b,c) {return mat31left('   '+b
+'',' '+fontChar("symbol",242)+c,''+a+'') };
var iota =fontChar("Symbol",105);
function item(){
return ''+compatta(arguments)+''
}
var itshape ="t";
var j ="t";
var jmath ="t";
var Join ="t";
var kappa =fontChar("Symbol",107);
var ker ="t";
var kill ="t";
var L ="t";
var label ="t";
var label ="t";
var Lambda =fontChar("Symbol",76);
var lambda =fontChar("Symbol",108);
var langle ="t";
var LARGE ="t";
var Large ="t";
var large ="t";
var lceil ="t";
var ldots ="t";
var leadsto ="t";
var left ="t";
var LeftArrow =fontChar("Symbol",220);
var leftarrow =fontChar("Symbol",172);
var leftharpoondown ="t";
var leftharpoondown ="t";
var Leftrightarrow ="t";
var leftrightarrow ="t";
var leq =fontChar("Symbol",163);
var lfloor ="t";
var lg ="t";
var lhd ="t";
var lim ="t";
var liminf ="t";
var limsup ="t";
var listoffigures ="t";
var listoftables="t";
var ll ="t";
var ln ="t";
var log ="t";
var Longleftarrow="t";
var longleftarrow="t";
var Longleftrightarrow="t";
var longleftrightarrow="t";
var longmapsto ="t";
var Longrightarrow="t";
var longrightarrow="t";
var m = "-";
var makeindex ="t";
var maketitle ="t";
var mapsto ="t";
var marginpar ="t";
var mathbf ="t";
var mathcal ="t";
var mathit ="t";
var mathrm ="t";
var mathsf ="t";
var mathtt ="t";
var max ="t";
var mbox ="t";
var mdseries ="t";
var medskip ="t";
var mho ="t";
var mid =fontChar("Symbol",239);
var min ="t";
var models ="t";
var mp =fontChar("Symbol",177);
var mu =fontChar("Symbol",109);
var multicolumn ="t";
var nabla =fontChar("Symbol",209);
var natural ="t";
var nearrow ="t";
var neq =fontChar("Symbol",185);
var newcommand ="t";
var newenviroment ="t";
var newline ="t";
var newpage ="t";
var newtheorem ="t";
var ni ="t";
var nocite ="t";
var nonumber ="t";
var normalsize ="t";
var notinset =fontChar("Symbol",207);
var znot ="t";
var nu =fontChar("Symbol",110);
var nwarrow ="t";
var O =fontChar("Symbol",198);
var o ="t";
var odot ="t";
var OE ="t";
var oe ="t";
var oint ="t";
var Omega =fontChar("Symbol",87);
var omega =fontChar("Symbol",119);
var ominus ="t";
var oplus ="t";
var oslash ="t";
var otimes ="t";
var overbrace ="t";
var hbox ="t";
function overline(){
return ""+
"
"+
" |
"+
compatta(arguments)+" |
"
}
var overrightarrow ="t";
var P ="t";
var pageref ="t";
var parallel ="t";
var part ="t";
var partial ="t";
var pc =".
"; // punto e a capo
var perp ="t";
var Phi =fontChar("Symbol",70);
var phi =fontChar("Symbol",106);
var Pi =fontChar("Symbol",80);
var pi =fontChar("Symbol",112);
var pm =fontChar("Symbol",177);
var pmod ="t";
var pounds ="t";
function pow(a,b){ return a+""+b+"" }
var pp =".
"; // punto e a capo
var Pr ="t";
var prec ="t";
var preceq ="t";
var prime ="t";
var printindex ="t";
var prod ="t";
var propto ="t";
var Psi =fontChar("Symbol",89);
var psi =fontChar("Symbol",102);
var rangle ="t";
var rceil ="t";
var Re =fontChar("Symbol",194);
var ref ="t";
var rflor ="t";
var rhd ="t";
var rho =fontChar("Symbol",114);
var right ="t";
var Rightarrow =fontChar("Symbol",222);
var rightarrow =fontChar("Symbol",174);
var rightharpoondown ="t";
var rightharpoonup ="t";
var rightleftharpoon ="t";
var root =fontChar("Symbol",214);
var rmfamily ="t";
var S ="t";
var scriptscriptstyle ="t";
var scriptsize ="t";
var scriptstyle ="t";
var scshape ="t";
var searrow ="t";
var sec ="t";
var setminus ="t";
var sffamily ="t";
var sharp =fontChar("Symbol",35);
var Sigma =fontChar("Symbol",115);
var sigma =fontChar("Symbol",115);
var sim ="t";
var simeq ="t";
var sin ="t";
var sinh ="t";
var slash = "/"
var slshape ="t";
var small ="t";
var smallskip ="t";
var smile =fontChar("",0x263A);
var spadesuit ="t";
var sq =fontChar("Tahoma",178);
var sqcap ="t";
var sqcup ="t";
function sqrt(){
return l('  |
' ,join('',root,''),'',frac('',compatta(arguments)),'
')
}
var sqsubset ="t";
var sqsupset ="t";
var sqsupseteq ="t";
var ss ="t";
var stackrel ="t";
var star =fontChar("Symbol",42);
var subsection ="t";
var subset =fontChar("Symbol",204);
var subseteq =fontChar("Symbol",205);
var subsubsection="t";
var succ ="t";
var succeq ="t";
var sum =fontChar("Symbol",229);
function sumdef(a,b,c) {return mat31left('  '+b
+'',' '+fontChar("Symbol",229)+c,''+a+'') };
var sup ="t";
var supset ="t";
var subseteq =fontChar("Symbol",205);
var surd ="t";
var swarrow ="t";
var t =fontChar("Symbol",215);
var tableofcontents ="t";
var tan ="t";
var tanh ="t";
var tau =fontChar("Symbol",116);
function textbf() {return ""+compatta(arguments)+"" };
function textit() {return ""+compatta(arguments)+"" };
var textmd ="t";
var textrm ="t";
var textsc ="t";
var textsf ="t";
var textstyle ="t";
var texttt ="t";
var textup ="t";
var thanks ="t";
var Theta =fontChar("Symbol",81);
var theta =fontChar("Symbol",113);
var times =fontChar("Symbol",180);
var tiny ="t";
var title ="t";
var top ="t";
var triangle ="t";
var triangleleft="t";
var triangleright="t";
var ttfamily ="t";
var underbrace ="t";
var underline ="t";
var unlhd ="t";
var unrhd ="t";
var Uparrow ="t";
var uparrow ="t";
var Updownarrow ="t";
var updownarrow ="t";
var uplus ="t";
var upshape ="t";
var Upsilon =fontChar("Symbol",161);
var upsilon =fontChar("Symbol",117);
var varepsilon =fontChar("Symbol",101);
var varphi =fontChar("Symbol",106);
var varpi =fontChar("Symbol",118);
var varrho =fontChar("Symbol",114);
var varsigma ="t";
var vartheta ="t";
var vdash ="t";
var vdots ="t";
var vee =fontChar("Symbol",218);
var vspace ="t";
var wedge =fontChar("Symbol",217);
var widehat ="t";
var widetilde ="t";
var wp ="t";
var wr ="t";
var Xi =fontChar("Symbol",88);
var xi =fontChar("Symbol",121);
var zeta =fontChar("Symbol",86);
function tex(x){
while(x.match(/(!overline{)([^}]*)(})/)){x=x.replace(/(!overline{)([^}]*)(})/g,"")}
while(x.match(/(!frac{)([^}]*)(}{)([^}]*)(})/)){x=x.replace(/(!frac{)([^}]*)(}{)([^}]*)(})/g,"")}
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,alpha);
x=x.replace(/!beta/g,beta);
x=x.replace(/!cap/g,cap);
x=x.replace(/!chi/g,chi);
x=x.replace(/!delta/g,delta);
x=x.replace(/!epsilon/g,epsilon);
x=x.replace(/!gamma/g,gamma);
x=x.replace(/!eta/g,eta);
x=x.replace(/!iota/g,iota);
x=x.replace(/!phi/g,phi);
x=x.replace(/!kappa/g,kappa);
x=x.replace(/!lambda/g,lambda);
x=x.replace(/!mu/g,mu);
x=x.replace(/!nu/g,nu);
x=x.replace(/!pi/g,pi);
x=x.replace(/!psi/g,psi);
x=x.replace(/!theta/g,theta);
x=x.replace(/!rho/g,rho);
x=x.replace(/!sigma/g,sigma);
x=x.replace(/!tau/g,tau);
x=x.replace(/!omega/g,omega);
// simboli matematici
x=x.replace(/!biimp/g,biimp);
x=x.replace(/!cong/g,cong);
x=x.replace(/!cross/g,cross);
x=x.replace(/!cup/g,cup);
x=x.replace(/!empty/g,empty);
x=x.replace(/!forall/g,forall);
x=x.replace(/!exists/g,exists);
x=x.replace(/!notinset/g,notinset);
x=x.replace(/!inset/g,inset);
x=x.replace(/!leq/g,leq);
x=x.replace(/!neq/g,neq);
x=x.replace(/!root/g,root);
x=x.replace(/!subset/g,subset);
x=x.replace(/!subseteq/g,subseteq);
x=x.replace(/!wedge/g,wedge);
x=x.replace(/!dot/g,dot);
return(x);
}