Representación de fórmulas matemáticas LaTeX | .NET

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

La sección de referencia de API relacionada con este tema está aquí. De hecho, la forma más sencilla de demostrar la función Representación de fórmulas matemáticas de LaTeX es comenzar con el ejemplo. Aquí lo tienes:

 1// Create rendering options setting the image resolution to 150 dpi.
 2PngMathRendererOptions options = new PngMathRendererOptions();
 3options.Resolution = 150;
 4// Specify the preamble.
 5options.Preamble = @"\usepackage{amsmath}
 6\usepackage{amsfonts}
 7\usepackage{amssymb}
 8\usepackage{color}";
 9// Specify the scaling factor 300%.
10options.Scale = 3000;
11// Specify the foreground color.
12options.TextColor = System.Drawing.Color.Black;
13// Specify the background color.
14options.BackgroundColor = System.Drawing.Color.White;
15// Specify the output stream for the log file.
16options.LogStream = new System.IO.MemoryStream();
17// Specify whether to show the terminal output on the console or not.
18options.ShowTerminal = true;
19
20// Create the output stream for the formula image.
21using (System.IO.Stream stream = System.IO.File.Open(
22    System.IO.Path.Combine(RunExamples.OutputDirectory, "math-formula.png"), System.IO.FileMode.Create))
23{
24    // Run rendering.
25    System.Drawing.SizeF size = new PngMathRenderer().Render(@"\begin{equation*}
26e^x = x^{\color{red}0} + x^{\color{red}1} + \frac{x^{\color{red}2}}{2} + \frac{x^{\color{red}3}}{6} + \cdots = \sum_{n\geq 0} \frac{x^{\color{red}n}}{n!}
27\end{equation*}", stream, options);
28    
29    // Show other results.
30    System.Console.Out.WriteLine(options.ErrorReport);
31    System.Console.Out.WriteLine();
32    System.Console.Out.WriteLine("Size: " + size); // Dimensions of the resulting image.
33}

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 siguientes dos opciones definen los colores de primer plano y de fondo. Aquellas partes de la fórmula que no estén cubiertas (“coloreadas”) por el resaltado personalizado se mostrarán en el color “TextColor”.

La siguiente línea del ejemplo no tiene mucho sentido. Simplemente demuestra que puede dirigir la salida del registro a alguna secuencia.

Y la última opción ShowTerminal le permite alternar la escritura de la salida del terminal en la consola.

El método que realmente realiza la renderización es MathRenderer.Render(). Devuelve el tamaño de la fórmula en puntos.

El método acepta la secuencia donde se escribirá la imagen como segundo argumento. Creamos la secuencia a continuación.

Y finalmente, llamamos al método MathRenderer.Render(), pasando opciones como tercer argumento. El código LaTeX de la fórmula se pasa como primer argumento.

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 fórmula matemática LaTeX a PNG

Este es el caso de uso más general para la función 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 en Aspose.TeX para .NET API.

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// Create rendering options.
 2MathRendererOptions options = new SvgMathRendererOptions();
 3// Specify the preamble.
 4options.Preamble = @"\usepackage{amsmath}
 5\usepackage{amsfonts}
 6\usepackage{amssymb}
 7\usepackage{color}";
 8// Specify the scaling factor 300%.
 9options.Scale = 3000;
10// Specify the foreground color.
11options.TextColor = System.Drawing.Color.Black;
12// Specify the background color.
13options.BackgroundColor = System.Drawing.Color.White;
14// Specify the output stream for the log file.
15options.LogStream = new System.IO.MemoryStream();
16// Specify whether to show the terminal output on the console or not.
17options.ShowTerminal = true;
18
19// Create the output stream for the formula image.
20using (System.IO.Stream stream = System.IO.File.Open(
21    System.IO.Path.Combine(RunExamples.OutputDirectory, "math-formula.svg"), System.IO.FileMode.Create))
22{
23    // Run rendering.
24    System.Drawing.SizeF size = new SvgMathRenderer().Render(@"\begin{equation*}
25e^x = x^{\color{red}0} + x^{\color{red}1} + \frac{x^{\color{red}2}}{2} + \frac{x^{\color{red}3}}{6} + \cdots = \sum_{n\geq 0} \frac{x^{\color{red}n}}{n!}
26\end{equation*}", stream, options);
27    
28    // Show other results.
29    System.Console.Out.WriteLine(options.ErrorReport);
30    System.Console.Out.WriteLine();
31    System.Console.Out.WriteLine("Size: " + size); // Dimensions of the resulting image.
32}

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.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.