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:

 1from aspose.tex.features import *
 2from aspose.pydrawing import Color
 3from util import Util
 4from io import BytesIO
 5from os import path
 6###############################################
 7###### Class and Method declaration here ######
 8###############################################
 9
10# Create rendering options setting the image resolution to 150 dpi.
11options = PngMathRendererOptions() 
12options.resolution = 150             # Specify the preamble.
13options.preamble = r"""\usepackage{amsmath}
14\usepackage{amsfonts}
15\usepackage{amssymb}
16\usepackage{color}"""
17# Specify the scaling factor 300%.
18options.scale = 3000
19# Specify the foreground color.
20options.text_color = Color.black
21# Specify the background color.
22options.background_color = Color.white
23# Specify the output stream for the log file.
24options.log_stream = BytesIO()
25# Specify whether to show the terminal output on the console or not.
26options.show_terminal = True
27
28# Create the output stream for the formula image.
29with open(path.join(Util.output_directory, "math-formula.png"), "wb") as stream:
30    # Run rendering.
31    size = PngMathRenderer().render(r"""\begin{equation*}
32e^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!}
33\end{equation*}""", stream, options)
34
35# Show other results.
36print(options.error_report)
37print()
38print(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.

Luego le indicamos al renderizador que escale la salida en un 300%.

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 “TextColor”.

La siguiente línea del ejemplo sirve como ilustración de que tiene la opción de redirigir la salida del registro a una secuencia específica.

Y finalmente, la opción ShowTerminal le permite controlar si la salida del terminal debe mostrarse en la consola.

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 método acepta la secuencia donde se escribirá la imagen como segundo argumento. Posteriormente, procedemos a crear el stream.

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 líneas finales del ejemplo muestran dos resultados del proceso de representación de fórmulas matemáticas: el tamaño de la fórmula y un informe de error conciso, si se produce algún error.

Aquí está el resultado del renderizado.

Representación de fórmulas matemáticas de LaTeX a PNG

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.

 1from aspose.tex.features import *
 2from aspose.pydrawing import Color
 3from util import Util
 4from io import BytesIO
 5from os import path
 6###############################################
 7###### Class and Method declaration here ######
 8###############################################
 9
10# Create rendering options.
11options = SvgMathRendererOptions()
12# Specify the preamble.
13options.preamble = r"""\usepackage{amsmath}
14\usepackage{amsfonts}
15\usepackage{amssymb}
16\usepackage{color}"""
17# Specify the scaling factor 300%.
18options.scale = 3000
19# Specify the foreground color.
20options.text_color = Color.black
21# Specify the background color.
22options.background_color = Color.white
23# Specify the output stream for the log file.
24options.log_stream = BytesIO()
25# Specify whether to show the terminal output on the console or not.
26options.show_terminal = True
27
28# Create the output stream for the formula image.
29with open(path.join(Util.output_directory, "math-formula.svg"), "wb") as stream:
30    # Run rendering.
31    size = SvgMathRenderer().render(r"""\begin{equation*}
32e^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!}
33\end{equation*}""", stream, options)
34
35# Show other results.
36print(options.error_report)
37print()
38print(f"Size: {size.width}x{size.height}")

Las diferencias son:

Aquí está el resultado:

Representación de fórmula matemática LaTeX a SVG

También puede explorar la aplicación web gratuita, que utiliza la función implementada de Aspose.TeX para .NET API.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.