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.
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:
- Em vez de usar a classe pngmathrenderoptions, utilizamos a classe svgmathrenderoptions.
- Não especificamos resolução.
- Em vez de usar a classe pngmathrenderer, usamos a classe svgmathrenderer.
Aqui está o resultado:
Você também pode explorar o [aplicativo web] gratuito (12), que utiliza o recurso implementado do Aspose.TeX para .NET API.