使用 LaTeX 创建文档图形
使用 C++ 渲染 PNG 或 SVG 格式的 LaTeX 文本、表格和图形
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
在 SVG C++ 中渲染 LaTeX 图形的步骤
该代码片段演示了如何使用 Aspose.TeX 的图形渲染 API 生成数学图表的图像。这是顺序:
- 创建 SvgFigureRendererOptions 类的实例。
- 指定选项对象的 Preamble 属性。
- 设置缩放比例和背景颜色。
- 配置 MemoryStream 对象来捕获渲染过程中生成的日志输出。将此流分配给 LogStream 属性。如果 ShowTerminal 属性设置为 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 可能会为您提供一系列高级功能来创建表格、包括图形、编写数学方程式和不同的公式等。所有这些功能都可以在所谓的数据包中使用。