Formule matematiche in LaTeX rendering | Java

Come rendere una formula matematica in LaTeX a png

In effetti, il modo più semplice per dimostrare la funzione di rendering della formula di matematica ** Latex è iniziare con l’esempio. Ecco qui:

 1// Create rendering options setting the image resolution 150 dpi.
 2PngMathRendererOptions options = new PngMathRendererOptions();
 3options.setResolution(150);
 4// Specify the preamble.
 5options.setPreamble("\\usepackage{amsmath}\r\n\\usepackage{amsfonts}\r\n\\usepackage{amssymb}\r\n\\usepackage{color}");
 6// Specify the scaling factor 300%.
 7options.setScale(3000);
 8// Specify the foreground color.
 9options.setTextColor(Color.BLACK);
10// Specify the background color.
11options.setBackgroundColor(Color.WHITE);
12// Specify the output stream for the log file.
13options.setLogStream(new ByteArrayOutputStream());
14// Specify whether to show the terminal output on the console or not.
15options.showTerminal(true);
16
17// Create the output stream for the formula image.
18final OutputStream stream = new FileOutputStream(Utils.getOutputDirectory() + "math-formula.png");
19try {
20    // Run rendering.
21    com.aspose.tex.Size2D size = MathRenderer.render("\\begin{equation*}\r\n" +
22       "e^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!}\r\n" +
23       "\\end{equation*}", stream, options);
24
25    // Show other results.
26    System.out.println(options.getErrorReport());
27    System.out.println();
28    System.out.println("Size: " + size.getWidth() + "x" + size.getHeight()); // Dimensions of the resulting image.
29} finally {
30    if (stream != null)
31        stream.close();
32}

Arriviamo ai dettagli. Prima di tutto, creiamo un’istanza di rendering options, simile alla composizione Tex/Latex. Lo facciamo qui contemporaneamente specificando la risoluzione dell’immagine di output.

Successivamente, specifichiamo il preambolo. Il preambolo predefinito è:

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

che fornisce supporto per la formula matematica leggermente più avanzata rispetto al LaTeX di base. Ad esempio, puoi aggiungere il pacchetto Color se si desidera utilizzare il tuo evidenziazione nella formula, come abbiamo mostrato nell’esempio del codice.

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

Le prossime due opzioni definiscono il primo piano e i colori di sfondo. Quelle parti della formula che non sono coperte (“colorate”) dall’evidenziazione personalizzata verranno visualizzate nel colore TextColor.

La riga successiva dell’esempio non ha molto senso. Dimostra solo che è possibile indirizzare l’output del registro su un flusso.

E l’ultima opzione showterminal consente di attivare la scrittura dell’output del terminale sulla console.

Il metodo che esegue effettivamente il rendering è MathRender.Render(). Restituisce le dimensioni della formula in punti.

Il flusso in cui l’immagine deve essere scritta è accettato dal metodo come secondo argomento. Creiamo il flusso dopo.

E infine, chiamiamo il metodo mathrenderer.render(), passando le opzioni come terzo argomento. Il codice LaTeX della formula viene approvato come primo argomento.

Le ultime righe dell’esempio stampano due artefatti del rendering della formula matematica: le dimensioni della formula e il breve rapporto di errore (nel caso in cui vi fossero errori).

Ecco il risultato del rendering.

Figura in LaTeX rendering a png

Questo è il caso d’uso più generale per il rendering Latex Math Formula.

È inoltre possibile controllare la app Web gratuita in base alla funzionalità implementata all’interno dell’API Aspose.TeX per .NET. Qui è la pagina della versione Java.

Come rendere una formula matematica in LaTeX a SVG

Allo stesso modo, possiamo rendere una formula matematica in LaTeX al formato SVG.

 1// Create rendering options.
 2MathRendererOptions options = new SvgMathRendererOptions();
 3// Specify the preamble.
 4options.setPreamble("\\usepackage{amsmath}\r\n\\usepackage{amsfonts}\r\n\\usepackage{amssymb}\r\n\\usepackage{color}");
 5// Specify the scaling factor 300%.
 6options.setScale(3000);
 7// Specify the foreground color.
 8options.setTextColor(Color.BLACK);
 9// Specify the background color.
10options.setBackgroundColor(Color.WHITE);
11// Specify the output stream for the log file.
12options.setLogStream(new ByteArrayOutputStream());
13// Specify whether to show the terminal output on the console or not.
14options.showTerminal(true);
15
16// Create the output stream for the formula image.
17final OutputStream stream = new FileOutputStream(Utils.getOutputDirectory() + "math-formula.svg");
18try {
19    // Run rendering.
20    com.aspose.tex.Size2D size = new SvgMathRenderer().render("\\begin{equation*}\r\n" +
21        "e^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!}\r\n" +
22        "\\end{equation*}", stream, options, size);
23    
24    // Show other results.
25    System.out.println(options.getErrorReport());
26    System.out.println();
27    System.out.println("Size: " + size.getWidth() + "x" + size.getHeight()); // Dimensions of the resulting image.
28} finally {
29    if (stream != null)
30        stream.close();
31}

Le differenze sono:

Ecco il risultato:

Formula di matematica in LaTeX Rendering a SVG

Puoi anche controllare la app Web gratuita in base alla funzionalità implementata all’interno di Aspose.TeX per API .NET.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.