Rendu des formules mathématiques LaTeX | Python via .NET

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:

Définissez ASPOSE_TEX_OUTPUT_DIR sur votre répertoire de sortie ou utilisez le dossier par défaut output. Le code LaTeX est entièrement inclus dans les exemples ; aucun fichier d’entrée externe n’est nécessaire. Appliquez d’abord une licence. Licences.

 1# Render a highlighted LaTeX math formula to PNG.
 2import os
 3from pathlib import Path
 4from aspose.pydrawing import Color
 5from aspose.tex.features import PngMathRenderer, PngMathRendererOptions
 6
 7# Set an output directory, or use the default output folder.
 8output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
 9output_dir.mkdir(parents=True, exist_ok=True)
10
11# Create rendering options setting the image resolution to 150 dpi.
12options = PngMathRendererOptions()
13options.resolution = 150
14# Specify the preamble.
15options.preamble = r"""\usepackage{amsmath}
16\usepackage{amsfonts}
17\usepackage{amssymb}
18\usepackage{color}"""
19# Specify the scaling factor 300%.
20options.scale = 3000
21# Leave space around the rendered fragment.
22options.margin = 5
23# Specify the foreground color.
24options.text_color = Color.black
25# Specify the background color.
26options.background_color = Color.white
27# Specify whether to show the terminal output on the console or not.
28options.show_terminal = False
29
30# Create binary streams for the rendering log and formula image.
31with (output_dir / "math-formula.png.log").open("wb") as log_stream, \
32        (output_dir / "math-formula.png").open("wb") as stream:
33    options.log_stream = log_stream
34    # Run rendering.
35    size = PngMathRenderer().render(r"""\begin{equation*}
36e^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!}
37\end{equation*}""", stream, options)
38
39# Show other results.
40print(options.error_report or "No rendering errors.")
41print()
42print(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.

Nous définissons scale = 3000 pour une échelle de 300 % et margin = 5 pour laisser de l’espace autour du fragment. L’exemple PNG utilise resolution = 150 DPI.

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 « text_color ».

L’exemple affecte un flux de fichier binaire à log_stream et enregistre le journal dans math-formula.png.log, à côté de math-formula.png. L’instruction with ferme automatiquement les deux flux.

show_terminal contrôle la sortie du terminal dans la console. Les exemples le définissent sur False ; le journal est toujours écrit dans le fichier.

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

Le deuxième argument est le flux de sortie binaire ouvert pour l’image. Le troisième fournit les options de rendu.

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 affichent le rapport d’erreurs, ou No rendering errors. s’il est vide, puis la largeur et la hauteur en points.

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, 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# Render a highlighted LaTeX math formula to SVG.
 2import os
 3from pathlib import Path
 4from aspose.pydrawing import Color
 5from aspose.tex.features import SvgMathRenderer, SvgMathRendererOptions
 6
 7# Set an output directory, or use the default output folder.
 8output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
 9output_dir.mkdir(parents=True, exist_ok=True)
10
11# Create rendering options.
12options = SvgMathRendererOptions()
13# Specify the preamble.
14options.preamble = r"""\usepackage{amsmath}
15\usepackage{amsfonts}
16\usepackage{amssymb}
17\usepackage{color}"""
18# Specify the scaling factor 300%.
19options.scale = 3000
20# Leave space around the rendered fragment.
21options.margin = 5
22# Specify the foreground color.
23options.text_color = Color.black
24# Specify the background color.
25options.background_color = Color.white
26# Specify whether to show the terminal output on the console or not.
27options.show_terminal = False
28
29# Create binary streams for the rendering log and formula image.
30with (output_dir / "math-formula.svg.log").open("wb") as log_stream, \
31        (output_dir / "math-formula.svg").open("wb") as stream:
32    options.log_stream = log_stream
33    # Run rendering.
34    size = SvgMathRenderer().render(r"""\begin{equation*}
35e^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!}
36\end{equation*}""", stream, options)
37
38# Show other results.
39print(options.error_report or "No rendering errors.")
40print()
41print(f"Size: {size.width}x{size.height}")

Cet exemple crée math-formula.svg et son journal math-formula.svg.log dans le même répertoire de sortie.

Les différences sont :

Voici le résultat :

Rendu de formule mathématique LaTeX en SVG

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