Rendering di figura in LaTeX | Aspose.TeX per Python

In determinate situazioni, potrebbe essere necessario estrarre contenuti specifici da un file LaTeX come pezzo reso autonomo, comunemente indicato come figur, senza alcuna connessione al layout della pagina. Ciò potrebbe essere utile, ad esempio, quando si creano illustrazioni per una pubblicazione online. La nostra API ti consente di raggiungere questo obiettivo. I formati target per le figure di rendering sono PNG e SVG, proprio come con la funzione di rendering della formula matematica in LaTeX. Vale la pena notare che il rendering di figura in LaTeX è una caratteristica più generale rispetto al rendering di formula matematica in LaTeX.

Rendere una figura in LaTeX a PNG

Se necessario, prima dai un’occhiata alla sezione di riferimento API per questo argomento. Simile al rendering della formula, inizieremo con un esempio. Ecco qui:

 1# Create rendering options setting the image resolution to 150 dpi.
 2options = PngFigureRendererOptions() 
 3options.resolution = 150             # Specify the preamble.
 4options.preamble = r"\usepackage{pict2e}"
 5# Specify the scaling factor 300%.
 6options.scale = 3000
 7# Specify the background color.
 8options.background_color = Color.white
 9# Specify the output stream for the log file.
10options.log_stream = BytesIO()
11# Specify whether to show the terminal output on the console or not.
12options.show_terminal = True
13
14# Create the output stream for the figure image.
15with open(path.join(Util.output_directory, "text-and-formula.png"), "wb") as stream:
16    # Run rendering.
17    size = PngFigureRenderer().render(r"""\setlength{\unitlength}{0.8cm}
18\begin{picture}(6,5)
19\thicklines
20\put(1,0.5){\line(2,1){3}} \put(4,2){\line(-2,1){2}} \put(2,3){\line(-2,-5){1}} \put(0.7,0.3){$A$} \put(4.05,1.9){$B$} \put(1.7,2.95){$C$}
21\put(3.1,2.5){$a$} \put(1.3,1.7){$b$} \put(2.5,1.05){$c$} \put(0.3,4){$F=\sqrt{s(s-a)(s-b)(s-c)}$} \put(3.5,0.4){$\displaystyle s:=\frac{a+b+c}{2}$}
22\end{picture}""", stream, options)
23
24# Show other results.
25print(options.error_report)
26print()
27print(f"Size: {size.width}x{size.height}")

Per iniziare, creiamo un’istanza della classe Opzioni di rendering di figura in LaTeX, in cui specifichiamo contemporaneamente la risoluzione dell’immagine di output.

Successivamente, dobbiamo specificare il preambolo. A differenza del rendering della formula matematica in LaTeX, non esiste un preambolo predefinito per il rendering delle figure in LaTeX. Pertanto, se hai intenzione di rendere la grafica creata utilizzando il pacchetto Pict2e Latex, ad esempio, dovrai specificarlo nel preambolo:

1\usepackage{pict2e}

Quindi istruiamo il rendering di ridimensionare l’output del 300%.

L’opzione successiva determina il colore di sfondo. A differenza del rendering della formula matematica, non abbiamo bisogno di specificare un colore in primo piano, poiché supponiamo che i colori siano interamente controllati dal codice LaTeX. Allo stesso modo, il colore di sfondo è anche controllato dal codice LaTeX, quindi questa opzione è semplicemente fornita per comodità.

La seguente riga nell’esempio potrebbe non essere particolarmente significativa. È semplicemente destinato a dimostrare che hai la possibilità di dirigere l’output del registro su un flusso specifico.

L’opzione finale, showterminal, consente di controllare se l’uscita del terminale deve essere visualizzata nella console.

Il metodo responsabile del rendering della figura è figurerender.render(). Restituisce le dimensioni della figura in punti.

Il metodo accetta un flusso come secondo argomento, che è il flusso in cui verrà scritto l’immagine. Creiamo il flusso nella riga successiva.

Infine, invochiamo il metodo figurerender.render(), passando le opzioni come terzo argomento. Il codice in LaTeX della figura è fornito come primo argomento.

Le ultime righe dell’esempio visualizzano due informazioni relative al rendering della figura: le dimensioni della figura e un breve rapporto di errore (se ci sono errori).

Ecco il risultato del rendering.

Figura in LaTeX rendering a png

Questo rappresenta il caso d’uso più generale per la funzione Figura Latex.

Rendere una figura in LaTeX a SVG

Allo stesso modo, possiamo anche rendere una figura in LaTeX in formato SVG.

 1# Create rendering options.
 2options = SvgFigureRendererOptions()
 3# Specify the preamble.
 4options.preamble = r"\usepackage{pict2e}"
 5# Specify the scaling factor 300%.
 6options.scale = 3000
 7# Specify the background color.
 8options.background_color = Color.white
 9# Specify the output stream for the log file.
10options.log_stream = BytesIO()
11# Specify whether to show the terminal output on the console or not.
12options.show_terminal = True
13
14# Create the output stream for the figure image.
15with open(path.join(Util.output_directory, "text-and-formula.svg"), "wb") as stream:
16    # Run rendering.
17    size = SvgFigureRenderer().render(r"""\setlength{\unitlength}{0.8cm}
18\begin{picture}(6,5)
19\thicklines
20\put(1,0.5){\line(2,1){3}} \put(4,2){\line(-2,1){2}} \put(2,3){\line(-2,-5){1}} \put(0.7,0.3){$A$} \put(4.05,1.9){$B$} \put(1.7,2.95){$C$}
21\put(3.1,2.5){$a$} \put(1.3,1.7){$b$} \put(2.5,1.05){$c$} \put(0.3,4){$F=\sqrt{s(s-a)(s-b)(s-c)}$} \put(3.5,0.4){$\displaystyle s:=\frac{a+b+c}{2}$}
22\end{picture}""", stream, options)
23
24# Show other results.
25print(options.error_report)
26print()
27print(f"Size: {size.width}x{size.height}")

Le differenze sono:

Ecco il risultato:

Figura in LaTeX Rendering a SVG

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.