Створюйте геометричні фігури за допомогою LaTeX

Відтворюйте текст, таблиці та графіку LaTeX у PNG або SVG за допомогою C++

 

LaTeX, відомий як система верстки, виділяється як високоповажний інструмент для створення фігур, призначених для публікацій. Його особливості та переваги позиціонують його як оптимальний вибір для таких завдань, і ось чому:

  • Високоякісна типографіка: LaTeX забезпечує точне керування шрифтами, інтервалами між символами, розривами рядків і загальним макетом, гарантуючи, що отримані фігури виглядатимуть якісно.
  • Математичний набір: в першу чергу розроблена для математичного набору, ця система відмінно підходить для ефективної обробки складних математичних рівнянь і символів.
  • LaTeX насамперед працює з векторною графікою, гарантуючи, що ваші фігури зберігають масштабованість без шкоди для якості. Така графіка не залежить від роздільної здатності, що особливо вигідно для наукових або технічних ілюстрацій.
  • Узгодженість із документом: оскільки LaTeX — це система підготовки документів, ви можете без особливих зусиль підтримувати єдиний стиль і форматування для всіх малюнків, забезпечуючи цілісність у всьому документі.

Таким чином, LaTeX пропонує надійну основу для створення фігур, забезпечуючи виняткову типографіку, легке написання математичних формул, масштабованість, узгодженість у всьому документі, відтворюваність, контроль версій, інтеграцію з пакетами та можливості автоматизації.

Серед інших функцій рішення Aspose.TeX API містить можливість обрізати та відтворювати будь-який фрагмент LaTeX, що представляє фігуру у форматі PNG або SVG. Нижче ви знайдете фрагмент коду, який демонструє ці операції, а результат зберігається як файл PNG. Більше прикладів коду можна знайти тут.

Для запуску прикладів нам потрібно:

  • API Aspose.TeX для C++ - багатофункціональний, потужний і простий у використанні API для обробки та перетворення документів для платформи C++.
  • Відкрийте менеджер пакетів NuGet, знайдіть і встановіть Aspose.TeX. Ви також можете використати таку команду з консолі диспетчера пакетів:

Package Manager Console Command

PM> Install-Package Aspose.TeX

Кроки для відтворення фігур LaTeX у SVG C++

Фрагмент коду демонструє, як використовувати API візуалізації фігур Aspose.TeX для створення зображення математичної діаграми. Ось порядок:

  1. Створіть екземпляр класу SvgFigureRendererOptions .
  2. Вкажіть властивість Preamble об’єкта параметрів.
  3. Встановіть коефіцієнт масштабування та колір фону.
  4. Налаштуйте об’єкт MemoryStream для запису вихідних даних журналу, згенерованих у процесі візуалізації. Призначте цей потік властивості LogStream. Якщо для властивості ShowTerminal встановлено значення true, вихідні дані терміналу відображатимуться на консолі.
  5. Потім створіть потік файлів, щоб зберегти вихідне зображення.
  6. Створіть екземпляр класу SvgFigureRenderer і запустіть процес візуалізації, викликавши метод Render().
  7. Отримайте звіт про помилку та розмір вихідного зображення.
Приклад коду C++: рендеринг ілюстрації у форматі SVG
LaTeX Fragment
LaTeX Preamble
Output Format
Select the target format
                
// 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 What is LaTeX File Format

LaTeX — це формат TeX, якщо коротко. Файли LaTeX — це звичайні текстові файли, написані власною мовою розмітки. Вони можуть вимагати включення інших даних, таких як зображення та/або інші файли LaTeX. LaTeX надає вам багато розширених функцій для створення таблиць, додавання графіки, написання математичних рівнянь і формул тощо. Усі ці функції доступні в так званих пакетах.