Rendu des formules et équations mathématiques LaTeX en Java

Nous pouvons intégrer des formules et des équations mathématiques dans le fichier TeX. LaTeX utilise le fichier TeX comme document source contenant un ensemble de commandes. Ces commandes spécifient le format du document, y compris le texte, les symboles, les expressions mathématiques et les graphiques. Nous pouvons écrire et rendre n’importe quel type d’équations et de formules mathématiques par programme sans utiliser LaTeX. Dans cet article, nous apprendrons à rendre des formules et des équations mathématiques LaTeX en Java.

Les sujets suivants seront traités dans cet article :

API Java pour le rendu des formules et équations mathématiques LaTeX

Pour le rendu des formules mathématiques LaTeX, nous utiliserons l’API Aspose.TeX for Java. Il fournit la classe PngMathRendererOptions pour spécifier les options de rendu pour enregistrer la formule Math au format PNG. De même, il fournit également la classe SvgMathRendererOptions pour spécifier les options de rendu pour enregistrer la formule Math en tant que SVG. De plus, pour le rendu des formules mathématiques, il fournit les classes PngMathRenderer et SvgMathRenderer dérivées de la classe MathRenderer. La méthode render() de cette classe restitue la formule mathématique fournie. De plus, l’API permet également de composer des fichiers TeX dans différents formats de fichiers tels que PDF, XPS ou des images.

Veuillez soit télécharger le JAR de l’API ou ajouter la configuration pom.xml suivante dans une application Java basée sur 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>

Rendu des formules mathématiques LaTeX au format PNG à l’aide de Java

Nous pouvons rendre de simples formules ou équations mathématiques en ligne en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe PngMathRendererOptions.
  2. Ensuite, spécifiez l’image résolutions, par exemple 150 DPI.
  3. Ensuite, spécifiez le préambule du document LaTeX.
  4. Définissez éventuellement diverses propriétés telles que Scale, TextColor, BackgroundColor, etc.
  5. Après cela, créez le flux de sortie pour l’image de la formule.
  6. Enfin, appelez la méthode render() pour afficher la formule. Il prend la chaîne de formule, le flux, les options de rendu et la taille de l’image de sortie comme arguments.

L’exemple de code suivant montre comment restituer une formule mathématique au format PNG par programmation à l’aide de Java.

// Cet exemple de code montre comment afficher des formules et des équations mathématiques au format PNG
// Créer des options de rendu PNG
PngMathRendererOptions options = new PngMathRendererOptions();

// Spécifiez la résolution de l'image 150 dpi
options.setResolution(150);

// Précisez le préambule.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Spécifiez le facteur d'échelle 300 %.
options.setScale(3000);

// Spécifiez la couleur de premier plan.
options.setTextColor(Color.BLACK);

// Spécifiez la couleur d'arrière-plan.
options.setBackgroundColor(Color.WHITE);

// Spécifiez le flux de sortie pour le fichier journal.
options.setLogStream(new ByteArrayOutputStream());

// Spécifiez si vous souhaitez afficher ou non la sortie du terminal sur la console.
options.showTerminal(true);

// La variable dans laquelle les dimensions de l'image résultante seront écrites.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Créez le flux de sortie pour l'image de la formule.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

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

// Afficher d'autres résultats.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Rendez les formules mathématiques LaTeX au format PNG à l'aide de Java.

Rendu des formules mathématiques LaTeX au format PNG à l’aide de Java

Rendre des équations complexes à l’aide de Java

Nous pouvons rendre toutes les équations ou formules complexes en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

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);
Rendre des équations complexes à l'aide de Java

Rendre des équations complexes à l’aide de Java

Afficher les équations longues à l’aide de Java

Nous pouvons afficher de longues équations sur plusieurs lignes en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

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); 
Afficher les équations longues à l'aide de Java.

Afficher les équations longues à l’aide de Java.

Aligner plusieurs équations à l’aide de Java

Nous pouvons également aligner et rendre plusieurs équations ou formules à la fois en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

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);
Alignez plusieurs équations à l'aide de Java.

Alignez plusieurs équations à l’aide de Java.

Regrouper et centrer les équations à l’aide de Java

Nous pouvons regrouper et centrer plusieurs équations lors du rendu en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Équations de groupe et de centre à l'aide de Java.

Équations de groupe et de centre à l’aide de Java.

Rendu des parenthèses et des crochets à l’aide de Java

Nous pouvons également rendre les parenthèses et les crochets en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Rendre les parenthèses et les crochets à l'aide de Java.

Rendre les parenthèses et les crochets à l’aide de Java.

Matrices en LaTeX avec Java

De même, nous pouvons rendre les matrices en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

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);
Matrices en LaTeX utilisant Java.

Matrices en LaTeX utilisant Java.

Rendre des fractions et des binômes à l’aide de Java

Nous pouvons également rendre des fractions et des binômes en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Rendre des fractions et des binômes à l'aide de Java.

Rendre des fractions et des binômes à l’aide de Java.

Opérateurs mathématiques en LaTeX utilisant Java

Les symboles des opérateurs mathématiques représentent diverses fonctions mathématiques telles que log, cos, sin, etc. Nous pouvons rendre des fonctions trigonométriques et des logarithmes dans LaTeX en suivant les étapes mentionnées précédemment. Cependant, il nous suffit de définir la chaîne de formule à l’étape 5, comme indiqué ci-dessous :

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Opérateurs mathématiques en LaTeX utilisant Java.

Opérateurs mathématiques en LaTeX utilisant Java.

Rendu des formules mathématiques LaTeX en SVG à l’aide de Java

Nous pouvons également enregistrer les formules ou équations mathématiques rendues au format d’image SVG en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe SvgMathRendererOptions.
  2. Ensuite, spécifiez le préambule du document LaTeX.
  3. Définissez éventuellement diverses propriétés telles que Scale, TextColor, BackgroundColor, etc.
  4. Après cela, créez le flux de sortie pour l’image de la formule.
  5. Enfin, appelez la méthode render() pour afficher la formule. Il prend la chaîne de formule, le flux, les options de rendu et la taille de l’image de sortie comme arguments.

L’exemple de code suivant montre comment afficher une formule mathématique dans une image SVG à l’aide de Java.

// Cet exemple de code montre comment rendre des formules et des équations mathématiques au format SVG
// Créer des options de rendu SVG
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Précisez le préambule.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Spécifiez le facteur d'échelle 300 %.
options.setScale(3000);

// Spécifiez la couleur de premier plan.
options.setTextColor(Color.BLACK);

// Spécifiez la couleur d'arrière-plan.
options.setBackgroundColor(Color.WHITE);

// Spécifiez le flux de sortie pour le fichier journal.
options.setLogStream(new ByteArrayOutputStream());

// Spécifiez si vous souhaitez afficher ou non la sortie du terminal sur la console.
options.showTerminal(true);

// La variable dans laquelle les dimensions de l'image résultante seront écrites.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Créez le flux de sortie pour l'image de la formule.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Rendre au format 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);

// Afficher d'autres résultats.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Rendu des formules mathématiques LaTeX en SVG à l'aide de Java.

Rendu des formules mathématiques LaTeX en SVG à l’aide de Java.

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitation d’évaluation.

Conclusion

Dans cet article, nous avons appris à :

  • rendre des formules et des équations mathématiques simples et complexes en Java ;
  • aligner et regrouper les équations par programmation ;
  • rendre les matrices, les parenthèses, les parenthèses, les fractions et les binômes ;
  • enregistrez les images de formule rendues au format PNG ou SVG à l’aide de Java.

En outre, vous pouvez en savoir plus sur l’API Aspose.TeX for Java en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également