Fórmulas de matemática de LaTeX Renderização | Python

Renderizando uma fórmula de matemática de LaTeX para png

Se necessário, dê uma olhada na seção de referência da API para este tópico. De fato, a melhor maneira de demonstrar o recurso de fórmula de matemática ** é começar com um exemplo. Aqui está:

 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}")

Vamos até os detalhes. Em primeiro lugar, iniciamos um objeto Opções de renderização, semelhante ao TypeTting Tex/Latex, que inclui a especificação para a resolução de imagem de saída desejada.

Em seguida, especificamos o preâmbulo. O preâmbulo padrão é:

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

que oferece suporte aprimorado para fórmulas matemáticas em comparação com o LaTeX padrão. Por exemplo, você pode incluir o pacote color para personalizar o destaque na fórmula, conforme demonstrado no exemplo de código fornecido.

Em seguida, instruímos o renderizador a escalar a saída em 300%.

As próximas duas opções determinam as cores de primeiro plano e plano de fundo. Qualquer parte da fórmula que não seja afetada pelo destaque personalizada será exibida na cor textColor.

A linha a seguir no exemplo serve como uma ilustração de que você tem a opção de redirecionar a saída do log para um fluxo específico.

E, finalmente, a opção showterminal permite controlar se a saída do terminal deve ser exibida no console.

O processo de renderização real é realizado pelo método MathRenderer.render(), que retorna o tamanho da fórmula em pontos.

O método aceita o fluxo em que a imagem será escrita como seu segundo argumento. Posteriormente, passamos a criar o fluxo.

E, finalmente, o método MathRenderer.render() é invocado, com as opções sendo aprovadas como o terceiro argumento. O código do LATEX da fórmula é fornecido como o primeiro argumento.

As linhas finais do exemplo exibem duas saídas do processo de renderização da fórmula matemática - o tamanho da fórmula e um relatório de erro conciso, se ocorrerem erros.

Aqui está o resultado da renderização.

Fórmula de matemática de LaTeX renderização para PNG

Isso representa a aplicação mais comum e ampla da funcionalidade FORMULAÇÃO DE FORMULAÇÃO DE MATHA DE LATEX.

Você também pode explorar o [aplicativo web] gratuito (5), que utiliza o recurso implementado do Aspose.TeX para .NET API.

Renderizando uma fórmula de matemática de LaTeX para SVG

Da mesma forma, podemos converter uma fórmula matemática de LaTeX em formato SVG usando a mesma abordagem.

 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}")

As diferenças são:

Aqui está o resultado:

Fórmula de matemática de LaTeX renderização para SVG

Você também pode explorar o [aplicativo web] gratuito (12), que utiliza o recurso implementado do 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.