corny-phoenix/tex-tools
Composer 安装命令:
composer require corny-phoenix/tex-tools
包简介
PHP library for (La)TeX abstraction
README 文档
README
PHP library for (La)TeX abstraction
Installation
Add following to your composer.json:
"require": { "corny-phoenix/tex-tools": "dev-master" }
Supported TeX Commands
The following TeX commands are supported:
| Command | Required format | Provided formats |
|---|---|---|
| TeX | .tex |
.dvi, .log, .aux |
| PdfTeX | .tex |
.pdf, .log, .aux |
| LaTeX | .tex |
.dvi, .log, .aux |
| PdfLaTeX | .tex |
.pdf, .log, .aux |
| XeLaTeX | .tex |
.pdf, .log, .aux |
| LuaLaTeX | .tex |
.pdf, .log, .aux |
| BibTeX | .aux |
.bbl, .blg |
| BibTeX8 | .aux |
.bbl, .blg |
| MakeIndex | .idx |
.ind, .ilg |
| DviPs | .dvi |
.ps |
Usage
Create a basic PdfLaTeX job and run it:
use CornyPhoenix\Tex\Repositories\TemporaryRepository; $job = (new TemporaryRepository())->createJob( /* TeX source */ ); $job->runPdfLaTex(); $job->hasErrors(); // False if everything went fine
You can also chain LaTeX calls:
use CornyPhoenix\Tex\Repositories\TemporaryRepository; use CornyPhoenix\Tex\Exceptions\CompilationException; $job = (new TemporaryRepository())->createJob( /* TeX source */ ); $job->runPdfLaTex() ->runBibTex() ->runMakeIndex() ->runPdfLaTex() ->runPdfLaTex();
There is a lovely interface for handling errors:
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 ... } }
Also, there is a safe clean method which will clean up your working directory without deleting the input file or any files unknown to 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
统计信息
- 总下载量: 11.86k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-09-04