Renderizar fórmulas y ecuaciones matemáticas de LaTeX en Java

Podemos incrustar fórmulas y ecuaciones matemáticas en el archivo TeX. LaTeX usa el archivo TeX como un documento fuente que contiene un conjunto de comandos. Estos comandos especifican el formato del documento, incluidos texto, símbolos, expresiones matemáticas y gráficos. Podemos escribir y representar cualquier tipo de ecuaciones y fórmulas matemáticas mediante programación sin usar LaTeX. En este artículo, aprenderá cómo representar fórmulas y ecuaciones matemáticas de LaTeX en Java.

En este artículo se tratarán los siguientes temas:

API de Java para renderizar fórmulas y ecuaciones matemáticas de LaTeX

Para renderizar fórmulas matemáticas de LaTeX, usaremos la API Aspose.TeX for Java. Proporciona la clase PngMathRendererOptions para especificar las opciones de representación para guardar la fórmula matemática como PNG. De manera similar, también proporciona la clase SvgMathRendererOptions para especificar las opciones de representación para guardar la fórmula matemática como SVG. Además, para la representación de fórmulas matemáticas, proporciona clases PngMathRenderer y SvgMathRenderer derivadas de la clase MathRenderer. El método render() de esta clase representa la fórmula matemática provista. Además, la API también permite la composición tipográfica de archivos TeX en diferentes formatos de archivo como PDF, XPS o imágenes.

Descargue el JAR de la API o agregue la siguiente configuración pom.xml en una aplicación Java basada en 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>

Renderizar fórmulas matemáticas de LaTeX como PNG usando Java

Podemos representar fórmulas o ecuaciones matemáticas sencillas en línea siguiendo los pasos que se indican a continuación:

  1. En primer lugar, cree una instancia de la clase PngMathRendererOptions.
  2. A continuación, especifique las resoluciones de la imagen, como 150 DPI.
  3. Luego, especifique el preámbulo del documento LaTeX.
  4. Opcionalmente, establezca varias propiedades como Scale, TextColor, BackgroundColor, etc.
  5. Después de eso, cree el flujo de salida para la imagen de la fórmula.
  6. Finalmente, llama al método render() para representar la fórmula. Toma la cadena de fórmula, la secuencia, las opciones de representación y el tamaño de la imagen de salida como argumentos.

El siguiente ejemplo de código muestra cómo representar una fórmula matemática como PNG mediante programación usando Java.

// Este ejemplo de código demuestra cómo representar fórmulas y ecuaciones matemáticas como PNG
// Crear opciones de representación PNG
PngMathRendererOptions options = new PngMathRendererOptions();

// Especifique la resolución de la imagen 150 ppp
options.setResolution(150);

// Especifique el preámbulo.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Especifique el factor de escala 300%.
options.setScale(3000);

// Especifique el color de primer plano.
options.setTextColor(Color.BLACK);

// Especifique el color de fondo.
options.setBackgroundColor(Color.WHITE);

// Especifique el flujo de salida para el archivo de registro.
options.setLogStream(new ByteArrayOutputStream());

// Especifique si desea mostrar la salida del terminal en la consola o no.
options.showTerminal(true);

// La variable en la que se escribirán las dimensiones de la imagen resultante.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Cree el flujo de salida para la imagen de la fórmula.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

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

// Mostrar otros resultados.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Renderice fórmulas matemáticas de LaTeX como PNG usando Java.

Renderizar fórmulas matemáticas de LaTeX como PNG usando Java

Renderizar ecuaciones complejas usando Java

Podemos representar cualquier ecuación o fórmula compleja siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

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);
Renderizar ecuaciones complejas usando Java

Renderizar ecuaciones complejas usando Java

Mostrar ecuaciones largas usando Java

Podemos mostrar ecuaciones largas en varias líneas siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

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); 
Mostrar ecuaciones largas usando Java.

Mostrar ecuaciones largas usando Java.

Alinear varias ecuaciones usando Java

También podemos alinear y representar varias ecuaciones o fórmulas a la vez siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

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);
Alinear Varias Ecuaciones usando Java.

Alinear Varias Ecuaciones usando Java.

Ecuaciones de grupo y centro usando Java

Podemos agrupar y centrar múltiples ecuaciones mientras renderizamos siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Ecuaciones de grupo y centro usando Java.

Ecuaciones de grupo y centro usando Java.

Renderizar paréntesis y corchetes usando Java

También podemos generar paréntesis y corchetes siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Renderice paréntesis y corchetes usando Java.

Renderice paréntesis y corchetes usando Java.

Matrices en LaTeX usando Java

De manera similar, podemos renderizar matrices siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

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 usando Java.

Matrices en LaTeX usando Java.

Renderizar fracciones y binomios usando Java

También podemos representar fracciones y binomios siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Representar fracciones y binomios usando Java.

Representar fracciones y binomios usando Java.

Operadores Matemáticos en LaTeX usando Java

Los símbolos de los operadores matemáticos representan varias funciones matemáticas como log, cos, sen, etc. Podemos representar funciones trigonométricas y logaritmos en LaTeX siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer la cadena de fórmula en el paso 5, como se muestra a continuación:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Operadores Matemáticos en LaTeX usando Java.

Operadores Matemáticos en LaTeX usando Java.

Renderizar fórmulas matemáticas de LaTeX en SVG usando Java

También podemos guardar las fórmulas o ecuaciones matemáticas renderizadas en formato de imagen SVG siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase SvgMathRendererOptions.
  2. A continuación, especifique el preámbulo del documento LaTeX.
  3. Opcionalmente, establezca varias propiedades como Scale, TextColor, BackgroundColor, etc.
  4. Después de eso, cree el flujo de salida para la imagen de la fórmula.
  5. Finalmente, llama al método render() para representar la fórmula. Toma la cadena de fórmula, la secuencia, las opciones de representación y el tamaño de la imagen de salida como argumentos.

El siguiente ejemplo de código muestra cómo representar una fórmula matemática en una imagen SVG usando Java.

// Este ejemplo de código demuestra cómo representar fórmulas y ecuaciones matemáticas como SVG
// Crear opciones de renderizado SVG
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Especifique el preámbulo.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Especifique el factor de escala 300%.
options.setScale(3000);

// Especifique el color de primer plano.
options.setTextColor(Color.BLACK);

// Especifique el color de fondo.
options.setBackgroundColor(Color.WHITE);

// Especifique el flujo de salida para el archivo de registro.
options.setLogStream(new ByteArrayOutputStream());

// Especifique si desea mostrar la salida del terminal en la consola o no.
options.showTerminal(true);

// La variable en la que se escribirán las dimensiones de la imagen resultante.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Cree el flujo de salida para la imagen de la fórmula.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Renderizar como 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);

// Mostrar otros resultados.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Renderice fórmulas matemáticas de LaTeX en SVG usando Java.

Renderice fórmulas matemáticas de LaTeX en SVG usando Java.

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido a:

  • renderizar fórmulas y ecuaciones matemáticas simples y complejas en Java;
  • alinear y agrupar ecuaciones programáticamente;
  • representar matrices, paréntesis, corchetes, fracciones y binomios;
  • guarde las imágenes de fórmula renderizadas en PNG o SVG usando Java.

Además, puede obtener más información sobre Aspose.TeX for Java API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también