Formule matematiche in LaTeX rendering | .NET
Come eseguire il rendering di una formula matematica LaTeX in PNG
La sezione di riferimento API relativa a questo argomento è qui. In effetti, il modo più semplice per dimostrare la funzione LaTeX Math Rendering è iniziare con l’esempio. Ecco qui:
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 }Arriviamo ai dettagli. Prima di tutto, creiamo un’istanza di opzioni di rendering, simile alla composizione TeX/LaTeX. Lo facciamo qui contemporaneamente specificando la risoluzione dell’immagine di output.
Successivamente, specifichiamo il preambolo. Il preambolo predefinito è:
1\usepackage{amsmath}
2\usepackage{amsfonts}
3\usepackage{amssymb}che fornisce supporto per la formula matematica leggermente più avanzata rispetto al LaTeX di base. Ad esempio, puoi aggiungere il pacchetto Color se si desidera utilizzare il tuo evidenziazione nella formula, come abbiamo mostrato nell’esempio del codice.
Quindi istruiamo il rendering di ridimensionare l’output del 300%.
Le prossime due opzioni definiscono il primo piano e i colori di sfondo. Quelle parti della formula che non sono coperte (“colorate”) dall’evidenziazione personalizzata verranno visualizzate nel colore TextColor.
La riga successiva dell’esempio non ha molto senso. Dimostra solo che è possibile indirizzare l’output del registro su un flusso.
E l’ultima opzione showterminal consente di attivare la scrittura dell’output del terminale sulla console.
Il metodo che esegue effettivamente il rendering è MathRenderer.Render(). Restituisce le dimensioni della formula in punti.
Il flusso in cui l’immagine deve essere scritta è accettato dal metodo come secondo argomento. Creiamo il flusso dopo.
E infine, chiamiamo il metodo mathrenderer.render(), passando le opzioni come terzo argomento. Il codice LaTeX della formula viene approvato come primo argomento.
Le ultime righe dell’esempio stampano due artefatti del rendering della formula matematica: le dimensioni della formula e il breve rapporto di errore (nel caso in cui vi siano errori).
Ecco il risultato del rendering.
Questo è il caso d’uso più generale per la funzione Latex Math Rendering.
È inoltre possibile controllare la app Web gratuita in base alla funzionalità implementata in Aspose.TeX per API .NET.
Come eseguire il rendering di una formula matematica LaTeX in SVG
Allo stesso modo, possiamo rendere una formula matematica in LaTeX al 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 }Le differenze sono:
- Utilizziamo la classe SvgMathRendererOptions invece di PngMathRendererOptions.
- Non specifichiamo la risoluzione.
- Utilizziamo la classe SvgMathRenderer invece di PngMathRenderer.
Ecco il risultato:
Creazione di un agente AI per il rendering di formule matematiche LaTeX con Aspose.TeX
Per gli sviluppatori che desiderano incapsulare questa funzionalità in un agente AI conversazionale o programmatico, la sfida ingegneristica principale si sposta dalla semplice esecuzione del codice al riconoscimento delle intenzioni, al controllo della struttura e alla gestione degli errori in fase di esecuzione.
Di seguito viene proposta l’architettura del flusso di lavoro di produzione per un agente AI che interpreta le richieste dell’utente, genera una sintassi LaTeX valida e restituisce componenti visivi completamente renderizzati.

Come si può vedere, un agente AI per il rendering di formule matematiche dovrebbe operare come un ciclo di feedback chiuso composto da tre micro-livelli:
Acquisizione di input e sintassi (Livello LLM) L’utente digita espressioni in linguaggio naturale o sintassi parziale (ad esempio, “Mostrami la derivata di un’equazione di moltiplicazione di matrici”). 1. L’agente trasforma questi prompt in strutture matematiche LaTeX valide all’interno di un payload JSON strutturato, evitando wrapper Markdown come ````latex`.
Validazione e sanificazione dell’AST (Livello di validazione) Prima di instradare le stringhe direttamente alle pipeline di esecuzione, l’agente software convalida i pattern dei token per prevenire iniezioni di sicurezza o interruzioni nelle catene di esecuzione.
Pipeline di esecuzione API (Motore Aspose.TeX) L’agente passa il token sanificato direttamente al framework di elaborazione backend utilizzando le regole di esecuzione programmatiche.
L’agente istanzia SvgMathRendererOptions o PngMathRendererOptions a seconda del contesto del client (ad esempio, se l’utente si trova su un dispositivo mobile o sul web, utilizza SVG per una nitidezza ottimale).
- Se la compilazione di Aspose.TeX fallisce o rileva avvisi di sintassi, invia i dati diagnostici standard del log direttamente a un flusso di errori di runtime.
Puoi anche controllare la app Web gratuita in base alla funzionalità implementata all’interno di Aspose.TeX per API .NET.
