Formule matematiche in LaTeX rendering | Python
Rendering una formula matematica in LaTeX a PNG
Se necessario, dai un’occhiata alla sezione di riferimento API per questo argomento. In effetti, il modo migliore per dimostrare la funzione di rendering della formula matematica ** Latex è iniziare con un esempio. Ecco qui:
1# Create rendering options setting the image resolution to 150 dpi.
2options = PngMathRendererOptions()
3options.resolution = 150 # Specify the preamble.
4options.preamble = r"""\usepackage{amsmath}
5\usepackage{amsfonts}
6\usepackage{amssymb}
7\usepackage{color}"""
8# Specify the scaling factor 300%.
9options.scale = 3000
10# Specify the foreground color.
11options.text_color = Color.black
12# Specify the background color.
13options.background_color = Color.white
14# Specify the output stream for the log file.
15options.log_stream = BytesIO()
16# Specify whether to show the terminal output on the console or not.
17options.show_terminal = True
18
19# Create the output stream for the formula image.
20with open(path.join(Util.output_directory, "math-formula.png"), "wb") as stream:
21 # Run rendering.
22 size = PngMathRenderer().render(r"""\begin{equation*}
23e^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!}
24\end{equation*}""", stream, options)
25
26# Show other results.
27print(options.error_report)
28print()
29print(f"Size: {size.width}x{size.height}")
Arriviamo ai dettagli. In primo luogo, iniziamo un oggetto Opzioni di rendering, simile alla composizione Tex/LaTex, che include le specifiche per la risoluzione dell’immagine di output desiderata.
Successivamente, specifichiamo il preambolo. Il preambolo predefinito è:
1\usepackage{amsmath}
2\usepackage{amsfonts}
3\usepackage{amssymb}
che offre un supporto migliorato per le formule matematiche rispetto al LaTeX standard. Ad esempio, è possibile includere il pacchetto Color
per personalizzare l’evidenziazione nella formula, come dimostrato nell’esempio del codice fornito.
Quindi istruiamo il rendering di ridimensionare l’output del 300%.
Le due opzioni successive determinano il primo piano e i colori di sfondo. Tutte le parti della formula che non sono interessate dall’evidenziazione personalizzata verranno visualizzate nel colore TextColor
.
La riga seguente nell’esempio funge da illustrazione che hai la possibilità di reindirizzare l’output del registro su un flusso specifico.
Infine, l’opzione “Showterminal” consente di controllare se l’output del terminale deve essere visualizzato nella console.
Il processo di rendering effettivo viene effettuato dal metodo MathRender.Render(), che restituisce le dimensioni della formula in punti.
Il metodo accetta il flusso in cui l’immagine verrà scritta come secondo argomento. Successivamente, procediamo a creare il flusso.
E infine, il metodo MathRender.Render()
viene invocato, con le opzioni superate come terzo argomento. Il codice LaTeX della formula è fornito come primo argomento.
Le righe finali dell’esempio visualizzano due output del processo di rendering della formula matematica: la dimensione della formula e un rapporto di errore conciso, se si verificano errori.
Ecco il risultato del rendering.
Ciò rappresenta l’applicazione più comune e ampia della formula della formula matematica Latex.
Puoi anche esplorare la app Web gratuita, che utilizza la funzione implementata dell’API Aspose.TeX per .NET.
Rendering una formula matematica in LaTeX a SVG
Allo stesso modo, possiamo convertire una formula matematica in LaTeX in formato SVG usando lo stesso approccio.
1# Create rendering options.
2options = SvgMathRendererOptions()
3# Specify the preamble.
4options.preamble = r"""\usepackage{amsmath}
5\usepackage{amsfonts}
6\usepackage{amssymb}
7\usepackage{color}"""
8# Specify the scaling factor 300%.
9options.scale = 3000
10# Specify the foreground color.
11options.text_color = Color.black
12# Specify the background color.
13options.background_color = Color.white
14# Specify the output stream for the log file.
15options.log_stream = BytesIO()
16# Specify whether to show the terminal output on the console or not.
17options.show_terminal = True
18
19# Create the output stream for the formula image.
20with open(path.join(Util.output_directory, "math-formula.svg"), "wb") as stream:
21 # Run rendering.
22 size = SvgMathRenderer().render(r"""\begin{equation*}
23e^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!}
24\end{equation*}""", stream, options)
25
26# Show other results.
27print(options.error_report)
28print()
29print(f"Size: {size.width}x{size.height}")
Le differenze sono:
- Invece di usare la classe pngmathrendereroptions, utilizziamo la classe svgmathrendereroptions.
- Non specifichiamo la risoluzione.
- Invece di usare la classe pngmathrender, utilizziamo la classe svgmathrender.
Ecco il risultato:
Puoi anche esplorare la app Web gratuita, che utilizza la funzione implementata dell’API Aspose.TeX per .NET.