Відтворення математичних формул LaTeX | .NET
Як відобразити математичну формулу LaTeX у форматі PNG
Довідковий розділ API, пов’язаний із цією темою, знаходиться тут. Насправді, найпростіший спосіб продемонструвати функцію відтворення математичних формул LaTeX — це почати з прикладу. Ось воно:
1 // Render LaTeX math formula to PNG image
2
3 // Create rendering options setting the image resolution to 150 dpi.
4 PngMathRendererOptions options = new PngMathRendererOptions();
5 options.Resolution = 150;
6
7 // Specify the preamble.
8 options.Preamble = @"\usepackage{amsmath}
9 \usepackage{amsfonts}
10 \usepackage{amssymb}
11 \usepackage{color}";
12
13 // Specify the scaling factor 300%.
14 options.Scale = 3000;
15
16 // Specify the foreground color.
17 options.TextColor = System.Drawing.Color.Black;
18
19 // Specify the background color.
20 options.BackgroundColor = System.Drawing.Color.White;
21
22 // Specify the output stream for the log file.
23 options.LogStream = new System.IO.MemoryStream();
24
25 // Specify whether to show the terminal output on the console or not.
26 options.ShowTerminal = true;
27
28 // Create the output stream for the formula image.
29 using (System.IO.Stream stream = System.IO.File.Open(
30 System.IO.Path.Combine(OutputDir, "math-formula.png"), System.IO.FileMode.Create))
31 {
32 // Run rendering.
33 System.Drawing.SizeF size = new PngMathRenderer().Render(@"\begin{equation*}
34e^x = x^{\color{red}0} + x^{\color{red}1} + \frac{x^{\color{red}2}}{2} + \frac{x^{\color{red}3}}{6} + \cdots = \sum_{n\geq 0} \frac{x^{\color{red}n}}{n!}
35\end{equation*}", stream, options);
36
37 // Show other results.
38 System.Console.Out.WriteLine(options.ErrorReport);
39 System.Console.Out.WriteLine();
40 System.Console.Out.WriteLine($"Size: {size}"); // Dimensions of the resulting image.
41 }Перейдемо до деталей. Перш за все, ми створюємо екземпляр параметри візуалізації, подібний до набору TeX/LaTeX. Ми робимо це тут, одночасно вказуючи роздільну здатність вихідного зображення.
Далі уточнюємо преамбулу. Типова преамбула:
1\usepackage{amsmath}
2\usepackage{amsfonts}
3\usepackage{amssymb}який забезпечує трохи розширенішу підтримку математичних формул, ніж базовий LaTeX. Ви можете, наприклад, додати пакет color, якщо хочете використовувати власне виділення у формулі, як ми показали у прикладі коду.
Потім ми наказуємо рендереру масштабувати вихід на 300%.
Наступні два параметри визначають кольори переднього плану та фону. Ті частини формули, які не охоплені («забарвлені») спеціальним виділенням, відображатимуться кольором «Колір тексту».
Наступний рядок прикладу не має особливого сенсу. Це просто демонструє, що ви можете спрямувати вихід журналу в якийсь потік.
І остання опція ShowTerminal дозволяє вам перемикати запис виводу терміналу на консоль.
Метод, який фактично виконує візуалізацію, це MathRenderer.Render(). Він повертає розмір формули в пунктах.
Потік, у який буде записано зображення, приймається методом як другий аргумент. Далі створюємо потік.
І, нарешті, ми викликаємо сам метод MathRenderer.Render(), передаючи параметри як третій аргумент. Код LaTeX формули передається як перший аргумент.
Останні рядки прикладу друкують два артефакти відтворення математичної формули - розмір формули та короткий звіт про помилку (якщо помилки є).
Ось результат візуалізації.
Це найзагальніший варіант використання функції відтворення математичних формул LaTeX.
Ви також можете переглянути безкоштовну веб-програму, створену на основі функції, реалізованої в Aspose.TeX для .NET API.
Як відобразити математичну формулу LaTeX у SVG
Приблизно так само ми можемо відобразити математичну формулу LaTeX у форматі SVG.
1 // Render LaTeX math formula to SVG image
2
3 // Create rendering options.
4 MathRendererOptions options = new SvgMathRendererOptions();
5
6 // Specify the preamble.
7 options.Preamble = @"\usepackage{amsmath}
8 \usepackage{amsfonts}
9 \usepackage{amssymb}
10 \usepackage{color}";
11
12 // Specify the scaling factor 300%.
13 options.Scale = 3000;
14
15 // Specify the foreground color.
16 options.TextColor = System.Drawing.Color.Black;
17
18 // Specify the background color.
19 options.BackgroundColor = System.Drawing.Color.White;
20
21 // Specify the output stream for the log file.
22 options.LogStream = new System.IO.MemoryStream();
23
24 // Specify whether to show the terminal output on the console or not.
25 options.ShowTerminal = true;
26
27 // Create the output stream for the formula image.
28 using (System.IO.Stream stream = System.IO.File.Open(
29 System.IO.Path.Combine(OutputDir, "math-formula.svg"), System.IO.FileMode.Create))
30 {
31 // Run rendering.
32 System.Drawing.SizeF size = new SvgMathRenderer().Render(@"\begin{equation*}
33e^x = x^{\color{red}0} + x^{\color{red}1} + \frac{x^{\color{red}2}}{2} + \frac{x^{\color{red}3}}{6} + \cdots = \sum_{n\geq 0} \frac{x^{\color{red}n}}{n!}
34\end{equation*}", stream, options);
35
36 // Show other results.
37 System.Console.Out.WriteLine(options.ErrorReport);
38 System.Console.Out.WriteLine();
39 System.Console.Out.WriteLine($"Size: {size}"); // Dimensions of the resulting image.
40 }Відмінності:
- Ми використовуємо клас SvgMathRendererOptions замість PngMathRendererOptions.
- Ми не вказуємо роздільну здатність.
- Ми використовуємо клас SvgMathRenderer замість PngMathRenderer.
Ось результат:
Створення агента штучного інтелекту для рендерингу математичних даних LaTeX за допомогою Aspose.TeX
Для розробників, які прагнуть інкапсулювати цю функціональність у розмовний або програмний агент штучного інтелекту, основна інженерна задача зміщується від простого виконання коду до розпізнавання намірів, перевірки структури та обробки циклів помилок під час виконання.
Нижче наведено пропозицію щодо архітектури робочого процесу для агента штучного інтелекту, який інтерпретує запити користувачів, створює дійсний синтаксис LaTeX та повертає повністю відрендерені візуальні компоненти.

Як бачите, агент штучного інтелекту для рендерингу математичних даних повинен працювати як замкнутий цикл зворотного зв’язку, що складається з трьох мікрорівнів:
Збір вводу та синтаксису (рівень LLM) Користувач вводить дані природною мовою або частковими синтаксичними виразами (наприклад, “Покажіть мені похідну рівняння множення матриць”). Агент перетворює ці запити на дійсні математичні структури LaTeX всередині структурованого корисного навантаження JSON, уникаючи обгорток розмітки, таких як `````latex`.
AST-валідація та санітарна обробка (рівень валідатора) Перш ніж спрямувати рядки безпосередньо до конвеєрів виконання, програмний агент перевіряє шаблони токенів, щоб запобігти впровадженню безпеки або розриву ланцюжків виконання.
Конвеєр виконання API (рушій Aspose.TeX) Агент передає санітарний токен безпосередньо до бекенд-фреймворку обробки, використовуючи правила програмного виконання. Агент створює екземпляр
SvgMathRendererOptionsабоPngMathRendererOptionsзалежно від контексту клієнта (наприклад, якщо користувач користується мобільним пристроєм або веб-сайтом, використовуйте SVG для оптимальної чіткості).Якщо компіляція Aspose.TeX завершується невдачею або виникає синтаксичне попередження, він передає стандартну діагностику журналу безпосередньо в потік помилок під час виконання. Замість того, щоб непомітно видавати збої або аварійно завершувати роботу інтерфейсів користувача, агент перехоплює дані трасування стека, створює контекстний цикл і пропонує LLM переписати корисне навантаження рівняння.
Ви також можете переглянути безкоштовну веб-програму, створену на основі функції, реалізованої в Aspose.TeX для .NET API.
