Rendu des formules mathématiques LaTeX | .NET

Comment restituer une formule mathématique LaTeX au format PNG

La section de référence de l’API liée à ce sujet est ici. En fait, le moyen le plus simple de démontrer la fonctionnalité de rendu de formule mathématique LaTeX est de commencer par l’exemple. C’est ici:

 1// Create rendering options setting the image resolution to 150 dpi.
 2PngMathRendererOptions options = new PngMathRendererOptions();
 3options.Resolution = 150;
 4// Specify the preamble.
 5options.Preamble = @"\usepackage{amsmath}
 6\usepackage{amsfonts}
 7\usepackage{amssymb}
 8\usepackage{color}";
 9// Specify the scaling factor 300%.
10options.Scale = 3000;
11// Specify the foreground color.
12options.TextColor = System.Drawing.Color.Black;
13// Specify the background color.
14options.BackgroundColor = System.Drawing.Color.White;
15// Specify the output stream for the log file.
16options.LogStream = new System.IO.MemoryStream();
17// Specify whether to show the terminal output on the console or not.
18options.ShowTerminal = true;
19
20// Create the output stream for the formula image.
21using (System.IO.Stream stream = System.IO.File.Open(
22    System.IO.Path.Combine(RunExamples.OutputDirectory, "math-formula.png"), System.IO.FileMode.Create))
23{
24    // Run rendering.
25    System.Drawing.SizeF size = new PngMathRenderer().Render(@"\begin{equation*}
26e^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!}
27\end{equation*}", stream, options);
28    
29    // Show other results.
30    System.Console.Out.WriteLine(options.ErrorReport);
31    System.Console.Out.WriteLine();
32    System.Console.Out.WriteLine("Size: " + size); // Dimensions of the resulting image.
33}

Passons aux détails. Tout d’abord, nous créons une instance options de rendu, similaire à la composition TeX/LaTeX. Nous le faisons ici simultanément en spécifiant la résolution de l’image de sortie.

Ensuite, nous précisons le préambule. Le préambule par défaut est :

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

qui fournit une prise en charge des formules mathématiques légèrement plus avancée que LaTeX de base. Vous pouvez, par exemple, ajouter le package color si vous souhaitez utiliser votre propre surlignage dans la formule, comme nous l’avons montré dans l’exemple de code.

Ensuite, nous demandons au moteur de rendu de mettre à l’échelle la sortie de 300 %.

Les deux options suivantes définissent les couleurs de premier plan et d’arrière-plan. Les parties de la formule qui ne sont pas couvertes (« colorées ») par la surbrillance personnalisée seront affichées dans la couleur « TextColor ».

La ligne suivante de l’exemple n’a pas beaucoup de sens. Cela démontre simplement que vous pouvez diriger la sortie du journal vers un flux.

Et la dernière option « ShowTerminal » vous permet d’écrire la sortie du terminal sur la console.

La méthode qui effectue réellement le rendu est MathRenderer.Render(). Il renvoie la taille de la formule en points.

Le flux dans lequel l’image doit être écrite est accepté par la méthode comme deuxième argument. Nous créons ensuite le flux.

Et enfin, nous appelons la méthode MathRenderer.Render() elle-même, en passant les options comme troisième argument. Le code LaTeX de la formule est passé en premier argument.

Les dernières lignes de l’exemple impriment deux artefacts de rendu de formule mathématique : la taille de la formule et le bref rapport d’erreur (en cas d’erreurs).

Voici le résultat du rendu.

Rendu de formule mathématique LaTeX au format PNG

Il s’agit du cas d’utilisation le plus général de la fonctionnalité de rendu de formule mathématique LaTeX.

Vous pouvez également consulter l’ application Web gratuite créée sur la base de la fonctionnalité implémentée dans Aspose.TeX for .NET API.

Comment rendre une formule mathématique LaTeX en SVG

De la même manière, nous pouvons restituer une formule mathématique LaTeX au format SVG.

 1// Create rendering options.
 2MathRendererOptions options = new SvgMathRendererOptions();
 3// Specify the preamble.
 4options.Preamble = @"\usepackage{amsmath}
 5\usepackage{amsfonts}
 6\usepackage{amssymb}
 7\usepackage{color}";
 8// Specify the scaling factor 300%.
 9options.Scale = 3000;
10// Specify the foreground color.
11options.TextColor = System.Drawing.Color.Black;
12// Specify the background color.
13options.BackgroundColor = System.Drawing.Color.White;
14// Specify the output stream for the log file.
15options.LogStream = new System.IO.MemoryStream();
16// Specify whether to show the terminal output on the console or not.
17options.ShowTerminal = true;
18
19// Create the output stream for the formula image.
20using (System.IO.Stream stream = System.IO.File.Open(
21    System.IO.Path.Combine(RunExamples.OutputDirectory, "math-formula.svg"), System.IO.FileMode.Create))
22{
23    // Run rendering.
24    System.Drawing.SizeF size = new SvgMathRenderer().Render(@"\begin{equation*}
25e^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!}
26\end{equation*}", stream, options);
27    
28    // Show other results.
29    System.Console.Out.WriteLine(options.ErrorReport);
30    System.Console.Out.WriteLine();
31    System.Console.Out.WriteLine("Size: " + size); // Dimensions of the resulting image.
32}

Les différences sont :

Voici le résultat :

Rendu de formule mathématique LaTeX en SVG Vous pouvez également consulter l’ application Web gratuite construite sur la base de la fonctionnalité implémentée dans Aspose.TeX pour l’API .NET.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.