Создание фигур документов с помощью LaTeX
Рендеринг текста, таблиц и графики LaTeX в формате PNG или SVG с использованием C++.
LaTeX, известная как система набора текста, выделяется как высоко ценимый инструмент для создания рисунков, предназначенных для публикаций. Его особенности и преимущества делают его оптимальным выбором для подобных задач, и вот почему:
- Высококачественная типографика: LaTeX обеспечивает точный контроль над шрифтами, межсимвольным интервалом, разрывами строк и общим макетом, гарантируя, что полученные фигуры будут иметь высококачественный вид.
- Математический набор. Эта система, изначально разработанная для математического набора текста, превосходно справляется с эффективной работой со сложными математическими уравнениями и символами.
- LaTeX в первую очередь работает с векторной графикой, обеспечивая масштабируемость ваших рисунков без ущерба для качества. Такая графика не зависит от разрешения, что особенно полезно для научных или технических иллюстраций.
- Согласованность с документом. Поскольку LaTeX — это система подготовки документов, вы можете без труда поддерживать единый стиль и форматирование всех рисунков, обеспечивая целостный вид всего документа.
Таким образом, LaTeX предлагает надежную основу для создания рисунков, обеспечивая исключительную типографику, математический набор текста, масштабируемость, согласованность в масштабах всего документа, воспроизводимость, контроль версий, интеграцию с пакетами и возможности автоматизации.
В решении Aspose.TeX API, помимо других функций, имеется возможность обрезать и отображать любой фрагмент LaTeX, представляющий фигуру в формате PNG или SVG. Ниже вы найдете фрагмент кода, демонстрирующий эти операции, а результат сохраняется в формате PNG. Дополнительные примеры кода можно найти здесь.
Для запуска примеров нам понадобится:
- API Aspose.TeX for C++ — многофункциональный, мощный и простой в использовании API обработки и преобразования документов для платформы C++.
- Откройте диспетчер пакетов NuGet, найдите Aspose.TeX и установите его. Вы также можете использовать следующую команду из консоли диспетчера пакетов:
Package Manager Console Command
PM> Install-Package Aspose.TeX
Действия по рендерингу фигур LaTeX в SVG C++
Фрагмент кода демонстрирует, как использовать API рендеринга фигур Aspose.TeX для создания изображения математической диаграммы. Вот порядок:
- Создайте экземпляр класса 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 может предоставить вам множество расширенных функций для создания таблиц, включения графики, написания математических уравнений, различных формул и т. д. Все эти функции доступны в так называемых пакетах.