LaTeXで文書図を作成する
C++ を使用して LaTeX テキスト、表、グラフィックを PNG または SVG でレンダリングします。
LaTeX は写植システムとして有名ですが、出版物用の図を作成するためのツールとして高く評価されています。その機能と利点により、このようなタスクに最適な選択肢として位置づけられています。その理由は次のとおりです。
- 高品質のタイポグラフィ: LaTeX は、フォント、文字間隔、改行、全体のレイアウトを正確に制御し、結果として得られる図が高品質な外観を実現することを保証します。
- 数学的組版: もともと数学的組版用に設計されたこのシステムは、複雑な数式や記号を効果的に処理することに優れています。
- LaTeX は主にベクトル グラフィックスを扱い、品質を損なうことなく図のスケーラビリティを維持します。このようなグラフィックスは解像度に依存しないため、科学的または技術的なイラストに特に有利です。
- 文書との一貫性: LaTeX は文書作成システムであるため、すべての図にわたって均一なスタイルと書式設定を簡単に維持でき、文書全体の一貫した外観を確保できます。
要約すると、LaTeX は図を作成するための信頼できる基盤を提供し、優れたタイポグラフィ、数学的組版、拡張性、文書全体の一貫性、再現性、バージョン管理、パッケージとの統合、および自動化機能を提供します。
Aspose.TeX API ソリューションには、特に、PNG または SVG の図を表す LaTeX フラグメントを切り取ってレンダリングする機能があります。以下に、これらの操作を示すコード スニペットと、結果を PNG ファイルとして保存します。その他の コード例 はここにあります。
サンプルを実行するには以下が必要です。
- Aspose.TeX for C++ API - 機能が豊富で強力で使いやすい、C++ プラットフォーム用のドキュメント処理および変換 API。
- NuGet パッケージ マネージャーを開き、Aspose.TeX を検索してインストールします。パッケージ マネージャー コンソールから次のコマンドを使用することもできます。
Package Manager Console Command
PM> Install-Package Aspose.TeX
LaTeX 図を SVG C++ でレンダリングする手順
このコード スニペットは、Aspose.TeX の図レンダリング API を使用して数学的図のイメージを生成する方法を示しています。順序は次のとおりです。
- SvgFigureRendererOptions クラスのインスタンスを作成します。
- オプション オブジェクトの Preamble プロパティを指定します。
- 倍率と背景色を設定します。
- レンダリング プロセスで生成されたログ出力をキャプチャするように MemoryStream オブジェクトを構成します。このストリームを LogStream プロパティに割り当てます。 Show Terminal プロパティが true に設定されている場合、ターミナル出力がコンソールに表示されます。
- System.Drawing.SizeF クラスのオブジェクトを使用して、結果のイメージの寸法を保存します。次に、出力イメージを保存するためのファイル ストリームを作成します。
- SvgFigureRenderer クラスをインスタンス化し、Render() メソッドを呼び出してレンダリング プロセスを実行します。
- エラーレポートと出力画像のサイズを取得します。
// Create rendering options.
System::SharedPtr<Features::SvgMathRendererOptions> options = System::MakeObject<Features::SvgMathRendererOptions>();
// Specify the preamble.
options->set_Preamble("\usepackage{pict2e}");
// Specify the background color.
options->set_BackgroundColor(System::Drawing::Color:get_White());
// Specify the output stream for the log file.
options.set_LogStream(new System::IO::MemoryStream());
// Specify whether to show the terminal output on the console or not.
options.set_ShowTerminal(true);
// Create the output stream for the formula image.
System::SharedPtr<System::IO::Stream> stream = System::IO::File::Open(
System::IO::Path::Combine(RunExamples::OutputDirectory, u"math-formula.png"), System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ stream });
try
{
// Run rendering.
System::MakeObject<Features::SvgFigureRenderer>()->Render(
"\setlength{\unitlength}{0.8cm}\r\n" +
"\begin{picture}(6,5)\r\n" +
"\thicklines\r\n" +
"\put(1,0.5){\line(2,1){3}} \put(4,2){\line(-2,1){2}} \put(2,3){\line(-2,-5){1}}\r\n" +
"\put(0.7,0.3){$A$} \put(4.05,1.9){$B$} \put(1.7,2.95){$C$}\r\n" +
"\put(3.1,2.5){$a$} \put(1.3,1.7){$b$} \put(2.5,1.05){$c$}\r\n" +
"\put(0.3,4){$F=\sqrt{s(s-a)(s-b)(s-c)}$} \put(3.5,0.4){$\displaystyle s:=\frac{a+b+c}{2}$}\r\n" +
"\end{picture}",
stream, options);
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
// Show other results.
System::Console::get_Out()->WriteLine(options->get_ErrorReport());
System::Console::get_Out()->WriteLine();
System::Console::get_Out()->WriteLine(System::String(u"Size: ") + size);
LaTeX LaTeX ファイル形式とは
LaTeX は簡単に言えば TeX 形式です。 LaTeX ファイルは、独自のマークアップ言語で記述された ASCII エンコーディングのプレーン テキスト ファイルです。画像や他の LaTeX ファイルなどの他のデータを含める必要がある場合があります。 LaTeX は、表を作成したり、グラフィックスを含めたり、数式を書いたり、さまざまな式を作成したりするための高度な機能を多数提供する場合があります。これらの機能はすべて、いわゆるパケットで利用できます。