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:

Impostare outputFile su un java.nio.file.Path in una cartella esistente, ad esempio Paths.get(outputDirectory, "math-formula.png") per PNG o Paths.get(outputDirectory, "math-formula.svg") per SVG. Importare le classi Aspose.TeX del renderer, delle opzioni e Size2D utilizzate, oltre a java.awt.Color, java.io.ByteArrayOutputStream, java.io.OutputStream, java.nio.file.Files, java.nio.file.Path, java.nio.file.Paths. Il metodo chiamante deve gestire o dichiarare le eccezioni. Applicare una licenza secondo la guida alle licenze per evitare le limitazioni della versione di valutazione.

 1// Render a highlighted LaTeX math formula to PNG.
 2// outputFile is a java.nio.file.Path in an existing output folder.
 3PngMathRendererOptions options = new PngMathRendererOptions();
 4options.setResolution(150);
 5options.setPreamble("\\usepackage{amsmath}\n\\usepackage{amsfonts}\n"
 6        + "\\usepackage{amssymb}\n\\usepackage{color}");
 7options.setScale(3000); // 300%.
 8options.setTextColor(Color.BLACK);
 9options.setBackgroundColor(Color.WHITE);
10options.showTerminal(false);
11
12Size2D size;
13try (ByteArrayOutputStream log = new ByteArrayOutputStream();
14        OutputStream stream = Files.newOutputStream(outputFile)) {
15    options.setLogStream(log);
16    size = new PngMathRenderer().render("\\begin{equation*}\n"
17            + "e^x = x^{\\color{red}0} + x^{\\color{red}1} + \\frac{x^{\\color{red}2}}{2}"
18            + " + \\frac{x^{\\color{red}3}}{6} + \\cdots = \\sum_{n\\geq 0} \\frac{x^{\\color{red}n}}{n!}\n"
19            + "\\end{equation*}", stream, options);
20    System.out.println(options.getErrorReport());
21    System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
22}

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 due opzioni definiscono i colori di primo piano e sfondo. Le parti della formula senza evidenziazione personalizzata utilizzano il colore impostato con setTextColor().

L’esempio indirizza i log di rendering a un ByteArrayOutputStream con setLogStream(). I flussi del log e dell’immagine vengono chiusi automaticamente dopo il rendering.

showTerminal() controlla l’output del terminale sulla console. Gli esempi utilizzano false; impostare true per visualizzarlo.

MathRenderer.render() viene chiamato su un’istanza di PngMathRenderer o SvgMathRenderer e restituisce le dimensioni della formula in punti come Size2D.

Il metodo accetta il flusso di output dell’immagine come secondo argomento. L’esempio lo apre in un blocco try-with-resources, che lo chiude dopo il rendering.

Infine, chiamiamo render() sull’istanza del renderer: la formula LaTeX è il primo argomento, il flusso dell’immagine il secondo e le opzioni di rendering il terzo.

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// Render a highlighted LaTeX math formula to SVG.
 2// outputFile is a java.nio.file.Path in an existing output folder.
 3SvgMathRendererOptions options = new SvgMathRendererOptions();
 4options.setPreamble("\\usepackage{amsmath}\n\\usepackage{amsfonts}\n"
 5        + "\\usepackage{amssymb}\n\\usepackage{color}");
 6options.setScale(3000); // 300%.
 7options.setTextColor(Color.BLACK);
 8options.setBackgroundColor(Color.WHITE);
 9options.showTerminal(false);
10
11Size2D size;
12try (ByteArrayOutputStream log = new ByteArrayOutputStream();
13        OutputStream stream = Files.newOutputStream(outputFile)) {
14    options.setLogStream(log);
15    size = new SvgMathRenderer().render("\\begin{equation*}\n"
16            + "e^x = x^{\\color{red}0} + x^{\\color{red}1} + \\frac{x^{\\color{red}2}}{2}"
17            + " + \\frac{x^{\\color{red}3}}{6} + \\cdots = \\sum_{n\\geq 0} \\frac{x^{\\color{red}n}}{n!}\n"
18            + "\\end{equation*}", stream, options);
19    System.out.println(options.getErrorReport());
20    System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
21}

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.