corny-phoenix / tex-tools
PHP 库用于 (La)TeX 抽象
0.3
2016-07-04 15:22 UTC
Requires
- php: >=5.5
- symfony/process: ~2.6|~3.0
Requires (Dev)
- codeclimate/php-test-reporter: 0.2.*
- phpunit/phpunit: ~4.2
This package is not auto-updated.
Last update: 2024-09-28 14:48:04 UTC
README
PHP 库用于 (La)TeX 抽象
安装
将以下内容添加到您的 composer.json
"require": { "corny-phoenix/tex-tools": "dev-master" }
支持的 TeX 命令
以下 TeX 命令受支持
使用方法
创建一个基本的 PdfLaTeX 作业并运行它
use CornyPhoenix\Tex\Repositories\TemporaryRepository; $job = (new TemporaryRepository())->createJob( /* TeX source */ ); $job->runPdfLaTex(); $job->hasErrors(); // False if everything went fine
您也可以链式调用 LaTeX
use CornyPhoenix\Tex\Repositories\TemporaryRepository; use CornyPhoenix\Tex\Exceptions\CompilationException; $job = (new TemporaryRepository())->createJob( /* TeX source */ ); $job->runPdfLaTex() ->runBibTex() ->runMakeIndex() ->runPdfLaTex() ->runPdfLaTex();
有一个处理错误的优雅界面
use CornyPhoenix\Tex\Repositories\TemporaryRepository; use CornyPhoenix\Tex\Exceptions\CompilationException; $job = (new TemporaryRepository())->createJob( /* TeX source */ ); try { $job->runPdfLaTex() ->runBibTex() ->runMakeIndex() ->runPdfLaTex() ->runPdfLaTex(); } catch (CompilationException $e) { $format = 'Error in %s, line %d: %s'; $log = $job->createLog(); foreach ($log->getErrors() as $error) { echo sprintf( $format, $error->getFilename(), $error->getLine(), $error->getMessage() ); // handle error ... } }
此外,还有一个安全的 clean
方法,它将清理工作目录,而不会删除输入文件或任何 TeX 所不知的文件
use CornyPhoenix\Tex\Repositories\TemporaryRepository; $repo = new TemporaryRepository(); touch($repo->getDirectory() . '/file.unknown.to.tex'); $repo->clean(); assert(file_exists($repo->getDirectory() . '/file.unknown.to.tex')); // True