Rendu des formules mathématiques LaTeX | Python

Rendu d’une formule mathématique LaTeX au format PNG

Si nécessaire, jetez un œil à la section de référence API pour ce sujet. En fait, la meilleure façon de démontrer la fonctionnalité de rendu de la formule mathématique LaTeX est de commencer par un exemple. C’est ici:

 1# Create rendering options setting the image resolution to 150 dpi.
 2options = PngMathRendererOptions() 
 3options.resolution = 150             # Specify the preamble.
 4options.preamble = r"""\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.text_color = Color.black
12# Specify the background color.
13options.background_color = Color.white
14# Specify the output stream for the log file.
15options.log_stream = BytesIO()
16# Specify whether to show the terminal output on the console or not.
17options.show_terminal = True
18
19# Create the output stream for the formula image.
20with open(path.join(Util.output_directory, "math-formula.png"), "wb") as stream:
21    # Run rendering.
22    size = PngMathRenderer().render(r"""\begin{equation*}
23e^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!}
24\end{equation*}""", stream, options)
25
26# Show other results.
27print(options.error_report)
28print()
29print(f"Size: {size.width}x{size.height}")

Passons aux détails. Tout d’abord, nous lançons un objet options de rendu, similaire à la composition TeX/LaTeX, qui inclut la spécification de la résolution de l’image de sortie souhaitée.

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

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

qui offre une prise en charge améliorée des formules mathématiques par rapport au LaTeX standard. Par exemple, vous pouvez inclure le package « color » pour personnaliser la mise en évidence dans la formule, comme démontré dans l’exemple de code fourni.

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

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

La ligne suivante de l’exemple illustre que vous avez la possibilité de rediriger la sortie du journal vers un flux spécifique.

Et enfin, l’option ShowTerminal vous permet de contrôler si la sortie du terminal doit être affichée dans la console.

Le processus de rendu proprement dit est effectué par la méthode MathRenderer.render(), qui renvoie la taille de la formule en points.

La méthode accepte le flux dans lequel l’image sera écrite comme deuxième argument. Par la suite, nous procédons à la création du flux.

Et enfin, la méthode MathRenderer.render() est invoquée, les options étant passées comme troisième argument. Le code LaTeX de la formule est fourni comme premier argument.

Les dernières lignes de l’exemple affichent deux résultats du processus de rendu de formule mathématique : la taille de la formule et un rapport d’erreur concis, si des erreurs se produisent.

Voici le résultat du rendu.

Rendu de formule mathématique LaTeX au format PNG

Il s’agit de l’application la plus courante et la plus large de la fonctionnalité de rendu de formule mathématique LaTeX.

Vous pouvez également explorer l’[application Web] gratuite(5), qui utilise la fonctionnalité implémentée de l’ API Aspose.TeX pour .NET.

Rendu d’une formule mathématique LaTeX en SVG

De même, nous pouvons convertir une formule mathématique LaTeX au format SVG en utilisant la même approche.

 1# Create rendering options.
 2options = SvgMathRendererOptions()
 3# Specify the preamble.
 4options.preamble = r"""\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.text_color = Color.black
12# Specify the background color.
13options.background_color = Color.white
14# Specify the output stream for the log file.
15options.log_stream = BytesIO()
16# Specify whether to show the terminal output on the console or not.
17options.show_terminal = True
18
19# Create the output stream for the formula image.
20with open(path.join(Util.output_directory, "math-formula.svg"), "wb") as stream:
21    # Run rendering.
22    size = SvgMathRenderer().render(r"""\begin{equation*}
23e^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!}
24\end{equation*}""", stream, options)
25
26# Show other results.
27print(options.error_report)
28print()
29print(f"Size: {size.width}x{size.height}")

Les différences sont :

Voici le résultat :

Rendu de formule mathématique LaTeX en SVG

Vous pouvez également explorer l’[application Web] gratuite(12), qui utilise la fonctionnalité implémentée de l’ API Aspose.TeX pour .NET.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.