Representación de fórmulas matemáticas LaTeX | Python
Representar una fórmula matemática LaTeX a PNG
Si es necesario, consulte la sección de referencia de API para este tema. De hecho, la mejor manera de demostrar la función de representación de fórmula matemática LaTeX es comenzar con un ejemplo. Aquí lo tienes:
Establezca ASPOSE_TEX_OUTPUT_DIR en su directorio de salida o use la carpeta predeterminada output. Todo el código LaTeX está incluido en los ejemplos; no se necesitan archivos de entrada externos. Aplique primero una licencia.
Licencias.
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}")Vayamos a los detalles. En primer lugar, iniciamos un objeto opciones de renderizado, similar a la composición tipográfica TeX/LaTeX, que incluye la especificación para la resolución de imagen de salida deseada.
A continuación, especificamos el preámbulo. El preámbulo predeterminado es:
1\usepackage{amsmath}
2\usepackage{amsfonts}
3\usepackage{amssymb}que ofrece soporte mejorado para fórmulas matemáticas en comparación con el LaTeX estándar. Por ejemplo, puede incluir el paquete color para personalizar el resaltado en la fórmula, como se demuestra en el ejemplo de código proporcionado.
Se usa scale = 3000 para una escala del 300 % y margin = 5 para dejar espacio alrededor del fragmento. El ejemplo PNG utiliza resolution = 150 DPI.
Las siguientes dos opciones determinan los colores de primer plano y de fondo. Cualquier parte de la fórmula que no se vea afectada por el resaltado personalizado se mostrará en el color “text_color”.
El ejemplo asigna un flujo de archivo binario a log_stream y guarda el registro como math-formula.png.log junto a math-formula.png. La instrucción with cierra ambos flujos automáticamente.
show_terminal controla la salida del terminal en la consola. Los ejemplos lo establecen en False; el registro sigue escribiéndose en el archivo.
El proceso de renderizado real lo lleva a cabo el método MathRenderer.render(), que devuelve el tamaño de la fórmula en puntos.
El segundo argumento es el flujo de salida binario abierto para la imagen. El tercero proporciona las opciones de renderizado.
Y finalmente, se invoca el método MathRenderer.render(), pasando las opciones como tercer argumento. El código LaTeX de la fórmula se proporciona como primer argumento.
Las últimas líneas muestran el informe de errores, o No rendering errors. si está vacío, seguido del ancho y la altura en puntos.
Aquí está el resultado del renderizado.
Esto representa la aplicación más común y amplia de la funcionalidad representación de fórmulas matemáticas LaTeX.
También puede explorar la aplicación web gratuita, que utiliza la función implementada de Aspose.TeX para .NET API.
Representar una fórmula matemática LaTeX a SVG
De manera similar, podemos convertir una fórmula matemática LaTeX al formato SVG usando el mismo enfoque.
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}")Este ejemplo crea math-formula.svg y su registro math-formula.svg.log en el mismo directorio de salida.
Las diferencias son:
- En lugar de utilizar la clase PngMathRendererOptions, utilizamos la clase SvgMathRendererOptions.
- No especificamos resolución.
- En lugar de utilizar la clase PngMathRenderer, utilizamos la clase SvgMathRenderer.
Aquí está el resultado:
También puede explorar la aplicación web gratuita, que utiliza la función implementada de Aspose.TeX para .NET API.
