//global $dirfonts,$dirimg,$symboles,$fontesmath; // choose the type of the declaration according to your server settings (some servers don't accept the dirname(__FILE__) command for security reasons). // NEW in 0.3 version : no more / at the end of $dirfonts and $dirimg // absolute path to the fonts directory class GlobalVar { public static $dirfonts; public static $dirimg; public static $symboles; public static $fontesmath; } GlobalVar::$dirfonts = __DIR__ . "/fonts"; // absolute path to the images directory GlobalVar::$dirimg = __DIR__ . "/img"; //****************************************************************** GlobalVar::$symboles = array('~' => ' ', 'alpha' => '®', 'beta' => '¯', 'gamma' => '°', 'delta' => '±', 'epsilon' => '²', 'varepsilon' => '"', 'zeta' => '³', 'eta' => '´', 'theta' => 'µ', 'vartheta' => '#', 'iota' => '¶', 'kappa' => '·', 'lambda' => '¸', 'mu' => '¹', 'nu' => 'º', 'xi' => '»', 'pi' => '¼', 'varpi' => '$', 'rho' => '½', 'varrho' => '%', 'sigma' => '¾', 'varsigma' => '&', 'tau' => '¿', 'upsilon' => 'À', 'phi' => 'Á', 'varphi' => ''', 'chi' => 'Â', 'psi' => 'Ã', 'omega' => '!', 'Gamma' => '¡', 'Lambda' => '¤', 'Sigma' => '§', 'Psi' => 'ª', 'Delta' => '¢', 'Xi' => '¥', 'Upsilon' => '¨', 'Omega' => '­', 'Theta' => '£', 'Pi' => '¦', 'Phi' => '©', 'infty' => '∞', 'ne' => '≠', '*' => '×', 'in' => '∈', 'notin' => '∉', 'forall' => '∀', 'exists' => '∃', 'notexists' => '∄', 'partial' => '∂', 'approx' => '≈', 'left' => '←', 'right' => '→', 'leftright' => '↔', 'doubleleft' => '⇐', 'doubleright' => '⇒', 'doubleleftright' => '⇔', 'nearrow' => '↗', 'searrow' => '↙', 'pm' => '±', 'bbR' => 'ℝ', 'bbN' => 'ℕ', 'bbZ' => 'ℤ', 'bbC' => 'ℂ', 'inter' => '⋂', 'union' => '⋃', 'ortho' => '⊥', 'parallel' => '∥', 'backslash' => '\', 'prime' => ''', 'wedge' => '⋀', 'vert' => '∥', 'subset' => '⊂', 'notsubset' => '⊄', 'circ' => '∘', 'varnothing' => 'ø', 'cdots' => '⋯', 'vdots' => '⋮', 'ddots' => '⋱', 'le' => '6', 'ge' => '>', '<' => '<', '>' => '>', '(' => '³', ')' => '´', '[' => 'h', ']' => 'i', 'lbrace' => '(', 'rbrace' => ')', '_hat' => 'c', '_racine' => 'q', '_integrale' => 'R', '_dintegrale' => '∬', '_tintegrale' => '∭', '_ointegrale' => 'H', '_produit' => 'Q', '_somme' => 'P', '_intersection' => 'T', '_reunion' => 'S', '_lim' => 'lim', 'arccos' => 'arccos', 'ker' => 'ker', 'arcsin' => 'arcsin', 'lg' => 'lg', 'arctan' => 'arctan', 'arg' => 'arg', 'cos' => 'cos', 'cosh' => 'cosh', 'ln' => 'ln', 'cot' => 'cot', 'log' => 'log', 'coth' => 'coth', 'max' => 'max', 'csc' => 'csc', 'min' => 'min', 'deg' => 'deg', 'det' => 'det', 'sec' => 'sec', 'dim' => 'dim', 'sin' => 'sin', 'exp' => 'exp', 'sinh' => 'sinh', 'gcd' => 'gcd', 'sup' => 'sup', 'hom' => 'hom', 'tan' => 'tan', 'inf' => 'inf', 'tanh' => 'tanh'); GlobalVar::$fontesmath = array('~' => 'FreeSerif', 'alpha' => 'cmmi10', 'beta' => 'cmmi10', 'gamma' => 'cmmi10', 'delta' => 'cmmi10', 'epsilon' => 'cmmi10', 'varepsilon' => 'cmmi10', 'zeta' => 'cmmi10', 'eta' => 'cmmi10', 'theta' => 'cmmi10', 'vartheta' => 'cmmi10', 'iota' => 'cmmi10', 'kappa' => 'cmmi10', 'lambda' => 'cmmi10', 'mu' => 'cmmi10', 'nu' => 'cmmi10', 'xi' => 'cmmi10', 'pi' => 'cmmi10', 'varpi' => 'cmmi10', 'rho' => 'cmmi10', 'varrho' => 'cmmi10', 'sigma' => 'cmmi10', 'varsigma' => 'cmmi10', 'tau' => 'cmmi10', 'upsilon' => 'cmmi10', 'phi' => 'cmmi10', 'varphi' => 'cmmi10', 'chi' => 'cmmi10', 'psi' => 'cmmi10', 'omega' => 'cmmi10', 'Gamma' => 'cmr10', 'Lambda' => 'cmr10', 'Sigma' => 'cmr10', 'Psi' => 'cmr10', 'Delta' => 'cmr10', 'Xi' => 'cmr10', 'Upsilon' => 'cmr10', 'Omega' => 'cmr10', 'Theta' => 'cmr10', 'Pi' => 'cmr10', 'Phi' => 'cmr10', 'infty' => 'FreeSerif', 'ne' => 'FreeSerif', '*' => 'FreeSerif', 'in' => 'FreeSerif', 'notin' => 'FreeSerif', 'forall' => 'FreeSerif', 'exists' => 'FreeSerif', 'notexists' => 'FreeSerif', 'partial' => 'FreeSerif', 'approx' => 'FreeSerif', 'left' => 'FreeSerif', 'right' => 'FreeSerif', 'leftright' => 'FreeSerif', 'doubleleft' => 'FreeSerif', 'doubleright' => 'FreeSerif', 'doubleleftright' => 'FreeSerif', 'nearrow' => 'FreeSerif', 'searrow' => 'FreeSerif', 'pm' => 'FreeSerif', 'bbR' => 'FreeSerif', 'bbN' => 'FreeSerif', 'bbZ' => 'FreeSerif', 'bbC' => 'FreeSerif', 'inter' => 'FreeSerif', 'union' => 'FreeSerif', 'ortho' => 'FreeSerif', 'parallel' => 'FreeSerif', 'backslash' => 'FreeSerif', 'prime' => 'FreeSerif', 'wedge' => 'FreeSerif', 'vert' => 'FreeSerif', 'subset' => 'FreeSerif', 'notsubset' => 'FreeSerif', 'circ' => 'FreeSerif', 'varnothing' => 'FreeSerif', 'cdots' => 'FreeSerif', 'vdots' => 'FreeSerif', 'ddots' => 'FreeSerif', 'le' => 'msam10', 'ge' => 'msam10', '<' => 'cmmi10', '>' => 'cmmi10', '(' => 'cmex10', ')' => 'cmex10', '[' => 'cmex10', ']' => 'cmex10', 'lbrace' => 'cmex10', 'rbrace' => 'cmex10', '_hat' => 'cmex10', '_racine' => 'cmex10', '_integrale' => 'cmex10', '_dintegrale' => 'FreeSerif', '_tintegrale' => 'FreeSerif', '_ointegrale' => 'cmex10', '_produit' => 'cmex10', '_somme' => 'cmex10', '_intersection' => 'cmex10', '_reunion' => 'cmex10', '_lim' => 'cmr10', 'arccos' => 'cmr10', 'ker' => 'cmr10', 'arcsin' => 'cmr10', 'lg' => 'cmr10', 'arctan' => 'cmr10', 'arg' => 'cmr10', 'cos' => 'cmr10', 'cosh' => 'cmr10', 'ln' => 'cmr10', 'cot' => 'cmr10', 'log' => 'cmr10', 'coth' => 'cmr10', 'max' => 'cmr10', 'csc' => 'cmr10', 'min' => 'cmr10', 'deg' => 'cmr10', 'det' => 'cmr10', 'sec' => 'cmr10', 'dim' => 'cmr10', 'sin' => 'cmr10', 'exp' => 'cmr10', 'sinh' => 'cmr10', 'gcd' => 'cmr10', 'sup' => 'cmr10', 'hom' => 'cmr10', 'tan' => 'cmr10', 'inf' => 'cmr10', 'tanh' => 'cmr10'); function est_nombre($str) { return preg_match("/^[0-9]/", $str); } function tableau_expression($expression) { $e = str_replace('_', ' _ ', $expression); $e = str_replace('{(}', '{ }', $e); $e = str_replace('{)}', '{ }', $e); $t = token_get_all("<?php \$formula={$e} ?" . ">"); $extraits = array(); $result = array(); //stupid code but token_get_all bug in some php versions $d = 0;