Representación de fórmulas matemáticas LaTeX | Aspose.TeX para Java

Cómo renderizar una fórmula matemática LaTeX a PNG

De hecho, la forma más sencilla de demostrar la función de representación de fórmula matemática LaTeX es comenzar con el ejemplo. Aquí lo tienes:

Establezca outputFile en un java.nio.file.Path dentro de una carpeta existente, por ejemplo Paths.get(outputDirectory, "math-formula.png") para PNG o Paths.get(outputDirectory, "math-formula.svg") para SVG. Importe las clases de renderizador, opciones y Size2D de Aspose.TeX utilizadas, además de java.awt.Color, java.io.ByteArrayOutputStream, java.io.OutputStream, java.nio.file.Files, java.nio.file.Path, java.nio.file.Paths. El método que realiza la llamada debe capturar o declarar las excepciones. Aplique una licencia según la guía de licencias para evitar las restricciones de evaluación.

 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}

Vayamos a los detalles. En primer lugar, creamos una instancia de opciones de renderizado, similar a la composición tipográfica TeX/LaTeX. Lo hacemos aquí especificando simultáneamente la resolución de la imagen de salida.

A continuación, especificamos el preámbulo. El preámbulo predeterminado es:

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

que proporciona un soporte de fórmulas matemáticas ligeramente más avanzado que el LaTeX básico. Puede, por ejemplo, agregar el paquete color si desea utilizar su propio resaltado en la fórmula, como mostramos en el ejemplo de código.

Luego le indicamos al renderizador que escale la salida en un 300%.

Las dos opciones definen los colores de primer plano y fondo. Las partes de la fórmula sin resaltado personalizado utilizan el color establecido por setTextColor().

El ejemplo dirige los registros de renderización a un ByteArrayOutputStream mediante setLogStream(). Los flujos del registro y de la imagen se cierran automáticamente después de renderizar.

showTerminal() controla la salida del terminal en la consola. Los ejemplos utilizan false; establezca true para mostrarla.

MathRenderer.render() se llama en una instancia de PngMathRenderer o SvgMathRenderer y devuelve las dimensiones de la fórmula en puntos como un Size2D.

El método acepta el flujo de salida de la imagen como segundo argumento. El ejemplo lo abre en un bloque try-with-resources, que lo cierra después de renderizar.

Finalmente, llamamos a render() en la instancia del renderizador: la fórmula LaTeX es el primer argumento, el flujo de la imagen el segundo y las opciones de renderización el tercero.

Las últimas líneas del ejemplo imprimen dos artefactos de la representación de fórmulas matemáticas: el tamaño de la fórmula y el breve informe de errores (en caso de que haya errores).

Aquí está el resultado del renderizado.

Representación de figuras LaTeX a PNG

Este es el caso de uso más general para la representación de fórmulas matemáticas LaTeX.

También puede consultar la aplicación web gratuita creada en función de la función implementada dentro de la API Aspose.TeX para .NET. Aquí es la página de la versión de Java.

Cómo renderizar una fórmula matemática LaTeX a SVG

De la misma manera, podemos representar una fórmula matemática de LaTeX en 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}

Las diferencias son:

Aquí está el resultado:

Representación de fórmula matemática LaTeX a SVG

También puede consultar la aplicación web gratuita creada en función de la función implementada en Aspose.TeX para .NET API.