Rendering di formule ed equazioni matematiche LaTeX in Java

Possiamo incorporare formule ed equazioni matematiche nel file TeX. LaTeX usa il file TeX come documento sorgente che contiene una serie di comandi. Questi comandi specificano il formato del documento, inclusi testo, simboli, espressioni matematiche e grafica. Possiamo scrivere e renderizzare qualsiasi tipo di equazioni e formule matematiche in modo programmatico senza usare LaTeX. In questo articolo imparerai come eseguire il rendering di formule ed equazioni matematiche LaTeX in Java.

In questo articolo verranno trattati i seguenti argomenti:

API Java per il rendering di formule ed equazioni matematiche LaTeX

Per il rendering di formule matematiche LaTeX, utilizzeremo l’API Aspose.TeX for Java. Fornisce la classe PngMathRendererOptions per specificare le opzioni di rendering per salvare la formula Math come PNG. Allo stesso modo, fornisce anche la classe SvgMathRendererOptions per specificare le opzioni di rendering per salvare la formula matematica come SVG. Inoltre, per il rendering di formule matematiche, fornisce le classi PngMathRenderer e SvgMathRenderer derivate dalla classe MathRenderer. Il metodo render() di questa classe esegue il rendering della formula matematica fornita. Inoltre, l’API consente anche di comporre i file TeX in diversi formati di file come PDF, XPS o immagini.

Si prega di scaricare il JAR dell’API o aggiungere la seguente configurazione pom.xml in un’applicazione Java basata su Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>22.4</version>
    <type>jar</type>
</dependency>

Rendering di formule matematiche LaTeX come PNG utilizzando Java

Possiamo rendere semplici formule o equazioni matematiche in linea seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe PngMathRendererOptions.
  2. Quindi, specifica l’immagine risoluzione, ad esempio 150 DPI.
  3. Quindi, specifica il preambolo del documento LaTeX.
  4. Facoltativamente, imposta varie proprietà come Scale, TextColor, BackgroundColor, ecc.
  5. Successivamente, crea il flusso di output per l’immagine della formula.
  6. Infine, chiama il metodo render() per eseguire il rendering della formula. Prende come argomenti la stringa della formula, lo stream, le opzioni di rendering e la dimensione dell’immagine di output.

L’esempio di codice seguente mostra come eseguire il rendering di una formula matematica come PNG a livello di codice utilizzando Java.

// Questo esempio di codice mostra come eseguire il rendering di formule ed equazioni matematiche come PNG
// Crea opzioni di rendering PNG
PngMathRendererOptions options = new PngMathRendererOptions();

// Specificare la risoluzione dell'immagine 150 dpi
options.setResolution(150);

// Specificare il preambolo.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Specificare il fattore di scala 300%.
options.setScale(3000);

// Specificare il colore di primo piano.
options.setTextColor(Color.BLACK);

// Specificare il colore di sfondo.
options.setBackgroundColor(Color.WHITE);

// Specificare il flusso di output per il file di registro.
options.setLogStream(new ByteArrayOutputStream());

// Specificare se mostrare o meno l'output del terminale sulla console.
options.showTerminal(true);

// La variabile in cui verranno scritte le dimensioni dell'immagine risultante.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Crea il flusso di output per l'immagine della formula.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

// Rendering come PNG
PngMathRenderer mathRenderer = new PngMathRenderer();
mathRenderer.render("This is a sample formula $f(x) = x^2$ example.", stream, options, size);

// Mostra altri risultati.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Rendering di formule matematiche LaTeX come PNG utilizzando Java.

Rendering di formule matematiche LaTeX come PNG utilizzando Java

Rendering di equazioni complesse utilizzando Java

Possiamo eseguire il rendering di equazioni o formule complesse seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{equation*}"
		+ "(1+x)^n = 1 + nx + \\frac{n(n-1)}{2!}x^{\\color{red}2}"
		+ "+ \\frac{n(n-1)(n-2)}{3!}x^{\\color{red}3}"
                + "+ \\frac{n(n-1)(n-2)(n-3)}{4!}x^{\\color{red}4}" 
                + "+ \\cdots"
                + "\\end{equation*}", stream, options, size);
Rendering di equazioni complesse utilizzando Java

Rendering di equazioni complesse utilizzando Java

Visualizza equazioni lunghe utilizzando Java

Possiamo visualizzare equazioni lunghe su più righe seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{multline*}"
		+ "p(x) = 3x^6 + 14x^5y + 590x^4y^2 + 19x^3y^3\\\\"
		+ "- 12x^2y^4 - 12xy^5 + 2y^6 - a^3b^3"
		+ "\\end{multline*}", stream, options, size); 
Visualizza equazioni lunghe utilizzando Java.

Visualizza equazioni lunghe utilizzando Java.

Allinea diverse equazioni usando Java

Possiamo anche allineare e rendere più equazioni o formule contemporaneamente seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{align}"
		+ "f(u) & =\\sum_{j=1}^{n} x_jf(u_j)\\\\"
		+ "& =\\sum_{j=1}^{n} x_j \\sum_{i=1}^{m} a_{ij}v_i\\\\"
		+ "& =\\sum_{j=1}^{n} \\sum_{i=1}^{m} a_{ij}x_jv_i"
		+ "\\end{align}", stream, options, size);
Allinea diverse equazioni usando Java.

Allinea diverse equazioni usando Java.

Raggruppa e centra le equazioni utilizzando Java

Possiamo raggruppare e centrare più equazioni durante il rendering seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Raggruppa e centra le equazioni utilizzando Java.

Raggruppa e centra le equazioni utilizzando Java.

Rendering di parentesi e parentesi usando Java

Possiamo anche rendere parentesi e parentesi seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Rendering di parentesi e parentesi usando Java.

Rendering di parentesi e parentesi usando Java.

Matrici in LaTeX usando Java

Allo stesso modo, possiamo eseguire il rendering di matrici seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\left \\{"
	            + "\\begin{tabular}{ccc}"
	            + "  1 & 4 & 7 \\\\"
	            + "  2 & 5 & 8 \\\\"
	            + "  3 & 6 & 9 "
	            + "\\end{tabular}"
	            + "\\right \\}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Matrici in LaTeX usando Java.

Matrici in LaTeX usando Java.

Rendering di frazioni e binomi usando Java

Possiamo anche rendere frazioni e binomi seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Rendering di frazioni e binomi usando Java.

Rendering di frazioni e binomi usando Java.

Operatori matematici in LaTeX utilizzando Java

I simboli degli operatori matematici rappresentano varie funzioni matematiche come log, cos, sin, ecc. Possiamo eseguire il rendering di funzioni trigonometriche e logaritmi in LaTeX seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la stringa della formula nel passaggio n. 5 come mostrato di seguito:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Operatori matematici in LaTeX utilizzando Java.

Operatori matematici in LaTeX utilizzando Java.

Rendering di formule matematiche LaTeX in SVG utilizzando Java

Possiamo anche salvare le formule o le equazioni matematiche renderizzate in formato immagine SVG seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe SvgMathRendererOptions.
  2. Quindi, specifica il preambolo del documento LaTeX.
  3. Facoltativamente, imposta varie proprietà come Scale, TextColor, BackgroundColor, ecc.
  4. Successivamente, crea il flusso di output per l’immagine della formula.
  5. Infine, chiama il metodo render() per eseguire il rendering della formula. Prende come argomenti la stringa della formula, lo stream, le opzioni di rendering e la dimensione dell’immagine di output.

L’esempio di codice seguente mostra come eseguire il rendering di una formula matematica in un’immagine SVG utilizzando Java.

// Questo esempio di codice mostra come eseguire il rendering di formule ed equazioni matematiche come SVG
// Crea opzioni di rendering SVG
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Specificare il preambolo.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Specificare il fattore di scala 300%.
options.setScale(3000);

// Specificare il colore di primo piano.
options.setTextColor(Color.BLACK);

// Specificare il colore di sfondo.
options.setBackgroundColor(Color.WHITE);

// Specificare il flusso di output per il file di registro.
options.setLogStream(new ByteArrayOutputStream());

// Specificare se mostrare o meno l'output del terminale sulla console.
options.showTerminal(true);

// La variabile in cui verranno scritte le dimensioni dell'immagine risultante.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Crea il flusso di output per l'immagine della formula.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Rendering come SVG
SvgMathRenderer mathRenderer = new SvgMathRenderer();
mathRenderer.render("\\begin{equation} \\label{eqn}"
    + "	E = {mc^2}"
    + "	\\end{equation}"
    + " The equation states mass equivalence relationship.", stream, options, size);

// Mostra altri risultati.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Rendering di formule matematiche LaTeX in SVG utilizzando Java.

Rendering di formule matematiche LaTeX in SVG utilizzando Java.

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato a:

  • rendere semplici e complesse formule ed equazioni matematiche in Java;
  • allineare e raggruppare le equazioni in modo programmatico;
  • renderizzare Matrici, Parentesi, Parentesi, Frazioni e Binomi;
  • salva le immagini della formula renderizzate in PNG o SVG utilizzando Java.

Inoltre, puoi saperne di più su Aspose.TeX per l’API Java usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche