Example #1
0
define('DVISVG_COMMAND', TEX_PATH . 'dvisvgm %s -n -e -s -v0 --scale=' . 1.00375 * OUTER_SCALE);
define('DVIPNG_COMMAND', TEX_PATH . 'dvipng -T tight %s -o %s.png -D ' . 96 * OUTER_SCALE);
define('SVGO', realpath(SVGO_PATH) . '/svgo -i %s');
define('GZIP', 'gzip -cn6 %1$s > %1$s.gz');
function error400($error = 'Invalid formula')
{
    header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request');
    include '400.php';
}
//ignore_user_abort();
ini_set('max_execution_time', 10);
header('X-Powered-By: S2 Latex Service');
$templater = new Templater(TPL_DIR);
$renderer = new Renderer($templater, TMP_DIR, LATEX_COMMAND, DVISVG_COMMAND, DVIPNG_COMMAND);
if (defined('LOG_DIR')) {
    $renderer->setLogDir(LOG_DIR);
}
$renderer->setDebug($isDebug);
$processor = new Processor($renderer, CACHE_SUCCESS_DIR, CACHE_FAIL_DIR);
$processor->addSVGCommand(SVGO);
$processor->addSVGCommand(GZIP);
try {
    $processor->parseURI(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
} catch (Exception $e) {
    error400($isDebug ? $e->getMessage() : 'Invalid formula');
    die;
}
if ($processor->prepareContent()) {
    $processor->echoContent();
} else {
    error400($isDebug ? $processor->getError() : 'Invalid formula');