Fórmulas de matemática de LaTeX Renderização | .NET

Como renderizar uma fórmula matemática LaTeX para PNG

A seção de referência da API relacionada a este tópico é aqui. De fato, a maneira mais fácil de demonstrar o recurso de renderização de fórmulas matemáticas LaTeX é começar com o exemplo. Aqui está:

 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            }

Vamos até os detalhes. Primeiro de tudo, criamos uma instância de opções de renderização, semelhante à composição TeX/LaTeX. Fazemos isso aqui especificando simultaneamente a resolução da imagem de saída.

Em seguida, especificamos o preâmbulo. O preâmbulo padrão é:

1\usepackage{amsmath}
2\usepackage{amsfonts}
3\usepackage{amssymb}

que fornece suporte a fórmula matemática um pouco mais avançado do que o LaTeX básico. Você pode, por exemplo, adicionar o pacote color se quiser usar seu próprio destaque na fórmula, como mostramos no exemplo do código.

Em seguida, instruímos o renderizador a escalar a saída em 300%.

As próximas duas opções definem as cores de primeiro plano e fundo. As partes da fórmula que não são cobertas (“coloridas”) pelo destaque personalizado serão exibidas na cor ’textColor`.

A próxima linha do exemplo não faz muito sentido. Ele apenas demonstra que você pode direcionar a saída de log para algum fluxo.

E a última opção showterminal permite alternar a gravação da saída do terminal no console.

O método que realmente executa a renderização é MathRenderer.Render(). Ele retorna o tamanho da fórmula em pontos.

O fluxo em que a imagem deve ser escrito é aceito pelo método como o segundo argumento. Criamos o fluxo a seguir.

E, finalmente, chamamos o próprio método MathRenderer.Render(), passando as opções como o terceiro argumento. O código LaTeX da fórmula é passado como o primeiro argumento.

As últimas linhas do exemplo imprimem dois artefatos de renderização de fórmula matemática - o tamanho da fórmula e o breve relatório de erro (caso haja erros).

Aqui está o resultado da renderização.

Fórmula de matemática de LaTeX renderização para PNG

Este é o caso de uso mais geral para o recurso de fórmula matemática.

Você também pode conferir o aplicativo web gratuito construído com base no recurso implementado em Aspose.TeX para .NET API.

Como renderizar uma fórmula de matemática de LaTeX para SVG

Da mesma maneira, podemos renderizar uma fórmula matemática de LaTeX ao formato 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            }

As diferenças são:

Aqui está o resultado:

Fórmula de matemática de LaTeX renderização para SVG

Criação de um Agente de IA para Renderização de Matemática LaTeX com Aspose.TeX

Para os programadores que pretendem encapsular esta funcionalidade num Agente de IA conversacional ou programático, o principal desafio de engenharia passa da simples execução de código para o reconhecimento de intenções, verificação de estrutura e processamento de loops de erro em tempo de execução.

Abaixo, segue uma sugestão de arquitetura de fluxo de trabalho de produção para um agente de IA que interpreta pedidos do utilizador, constrói sintaxe LaTeX válida e devolve componentes visuais totalmente renderizados.

Esquema de blocos para o workflow de renderização de matemática LaTeX com IA

Como pode ver, o Agente de IA para renderização de matemática deve operar como um ciclo de feedback fechado composto por três microcamadas:

  1. Recolha de entrada e sintaxe (LLM Layer) O utilizador digita em linguagem natural ou expressões de sintaxe parcial (por exemplo, “Mostra-me a derivada de uma equação de multiplicação de matrizes”). O agente transforma estes prompts em estruturas matemáticas LaTeX válidas dentro de uma carga útil JSON estruturada, evitando wrappers Markdown como ````latex`.

  2. Validação e Higienização da AST (Camada de Validação) Antes de encaminhar as strings diretamente para os pipelines de execução, o agente de software valida os padrões de tokens para evitar injeções de segurança ou quebras na cadeia de execução.

  3. Pipeline de Execução da API (Mecanismo Aspose.TeX) O agente passa o token higienizado diretamente para a estrutura de processamento de backend utilizando as regras de execução programáticas.

O agente instancia SvgMathRendererOptions ou PngMathRendererOptions dependendo do contexto do cliente (por exemplo, se o utilizador estiver num dispositivo móvel ou na web, utilize o SVG para obter a melhor nitidez).

  1. Se a compilação do Aspose.TeX falhar ou encontrar avisos de sintaxe, direciona os diagnósticos de registo padrão diretamente para um fluxo de erros em tempo de execução. Em vez de falhar silenciosamente ou causar falhas nas interfaces de utilizador, o agente interceta os dados do rastreio de pilha, constrói um loop de contexto e solicita ao LLM que reescreva a carga útil da equação.

Você também pode conferir o [aplicativo web] gratuito (12) construído com base no recurso implementado em Aspose.TeX para .NET API.