ZIP I/O を使用したタイプセット TeX
入力および出力として ZIP アーカイブを使用して、TeX を PDF に変換します。 C++ の API
TeX 言語は、フォーマットを気にせずに専門的な文書を作成するための組版ツールです。 Aspose.TeX は、TeX および LaTeX ファイルをタイプセットするための柔軟で使いやすいライブラリである C++ 用の API ソリューションを提供します。
TeX は強力で高度なシステムですが、そのネイティブ形式は学界や科学界以外では広く使用されていません。一方、PDF は移植可能な形式であり、ほとんどのデバイスで簡単に表示でき、より広く受け入れられています。 PDF を読み取る機能は、ほとんどの最新のブラウザーで、すべてのデバイスに存在します。 TeX を PDF に変換すると、ドキュメントをより多くのユーザーと共有できるようになり、専用のソフトウェアを持たないユーザーにとってよりアクセスしやすい形式が提供されます。さらに、PDF は TeX よりも優れたフォント レンダリング、対話機能のサポート、ページ サイズとレイアウトの管理の容易さなど、いくつかの利点を提供します。
この API は、入力ディレクトリと出力ディレクトリの分離を可能にし、ユーザーが出力をカスタマイズするための IOutputWorkingDirectory インターフェイスを提供します。独自の実装があります。このインターフェイスは IInputWorkingDirectory を拡張します。これは、エンジンがファイルを読み取る前にファイルに書き込む必要がある場合があるためです。インターフェイスの GetOutputFile() メソッドは、GetFile() によって提供される読み取りストリームではなく、書き込み用のストリームを返します。
Package Manager Console Command
PM> Install-Package Aspose.TeX.Cpp
以下のコードでは、入力ファイルを ZIP アーカイブに入れ、それを入力ディレクトリと見なしてファイル (またはストリーム) を作成し、TeX エンジンがそれを ZIP アーカイブとして使用して出力ファイルを保存できるようにします。ガイドラインに従ってください:
- 入力作業ディレクトリとして機能する ZIP アーカイブのストリームを開きます。
- ObjectTeX エンジン拡張機能で、デフォルトの ObjectTeX 形式の組版オプションを作成します。
- InputZipDirectory および OutputZipDirectory クラス。
- コンソールを出力端末として指定します。
- PdfSaveOptions クラスを使用して、保存オプションを作成および指定します。
- 変換を実行します。
- 出力を絞り込みます。
- 出力 ZIP アーカイブをファイナライズします。
TeX を ZIP 入出力で PDF に変換する C++ コード
using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;
// Open a stream on a ZIP archive that will serve as the input working directory.
System::SharedPtr<System::IO::Stream> inZipStream =
System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
// Clearing resources under the 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
try
{
System::SharedPtr<System::IO::Stream> outZipStream =
System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
// Clearing resources under the 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
try
{
// Create typesetting options for the default Object TeX format on the Object TeX engine extension.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Specify a ZIP archive working directory for the input.
options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
// Specify a ZIP archive working directory for the output.
options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
// Specify console as output terminal.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Create and specify saving options.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Run the typesetting job.
System::MakeObject<Aspose::TeX::TeXJob>(u"hello-world", System::MakeObject<PdfDevice>(), options)->Run();
// Finalize the output ZIP archive.
(System::DynamicCast<Aspose::TeX::IO::OutputZipDirectory>(options->get_OutputWorkingDirectory()))->Finish();
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch(...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
よくある質問
1. ZIP ファイルを入力として使用して TeX 文書をタイプセットできますか?
Aspose.TeX は、ZIP ファイルなどの圧縮アーカイブからの TeX ソース ファイルの読み取りをサポートします。 TeX ソース ファイル、画像、追加リソースなど、必要なすべてのファイルを ZIP アーカイブ内に含めて、その ZIP ファイルを LaTeX コンパイラへの入力として指定できます。これにより、特に複数の依存関係を持つ大規模または複雑なドキュメントを扱う場合に、LaTeX プロジェクトの整理と配布が便利になります。
2. TeX 文書の植字に ZIP ファイルを使用することに利点はありますか?
はい、TeX 文書の植字に ZIP ファイルを使用すると、いくつかの利点があります。まず、ZIP ファイルは、TeX ソース ファイル、参考文献、画像、スタイル ファイルなど、LaTeX プロジェクトに関連する複数のファイルを 1 つの圧縮アーカイブにパッケージ化して整理する便利な方法を提供します。これにより、特に他のユーザーと共同作業したりプロジェクトをオンラインで共有したりする場合に、LaTeX ドキュメントの配布と共有が簡素化されます。
3. TeX ファイルをタイプセットするにはどうすればよいですか?
Aspose.TeX API ソリューションを使用して TeX ファイルをタイプセットするには、Object TeX エンジン拡張機能に基づいて Object TeX または Object LaTeX 形式の変換オプションを作成する必要があります。次に、出力用のファイル システムの作業ディレクトリを指定します。最後に、TeXJob クラスのインスタンスを作成し、TeXJob.Run() メソッドを使用して植字プロセスを実行します。
TeX TeX ファイル形式とは
TeX は実際にはフォーマットではありません。プログラミング言語であると同時に、この言語を理解するインタープリター エンジンでもあります。 TeX ファイルは、LaTeX で作成されたドキュメントです。このドキュメントには、グラフィック、表、記号、リスト、数式、および方程式を含めることができます。