Fórmulas de matemática de LaTeX Renderização | Java

Como renderizar uma fórmula de matemática de LaTeX para png

De fato, a maneira mais fácil de demonstrar o recurso de renderização de fórmula de matemática ** é começar com o exemplo. Aqui está:

 1// Create rendering options setting the image resolution 150 dpi.
 2PngMathRendererOptions options = new PngMathRendererOptions();
 3options.setResolution(150);
 4// Specify the preamble.
 5options.setPreamble("\\usepackage{amsmath}\r\n\\usepackage{amsfonts}\r\n\\usepackage{amssymb}\r\n\\usepackage{color}");
 6// Specify the scaling factor 300%.
 7options.setScale(3000);
 8// Specify the foreground color.
 9options.setTextColor(Color.BLACK);
10// Specify the background color.
11options.setBackgroundColor(Color.WHITE);
12// Specify the output stream for the log file.
13options.setLogStream(new ByteArrayOutputStream());
14// Specify whether to show the terminal output on the console or not.
15options.showTerminal(true);
16
17// Create the output stream for the formula image.
18final OutputStream stream = new FileOutputStream(Utils.getOutputDirectory() + "math-formula.png");
19try {
20    // Run rendering.
21    com.aspose.tex.Size2D size = MathRenderer.render("\\begin{equation*}\r\n" +
22       "e^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!}\r\n" +
23       "\\end{equation*}", stream, options);
24
25    // Show other results.
26    System.out.println(options.getErrorReport());
27    System.out.println();
28    System.out.println("Size: " + size.getWidth() + "x" + size.getHeight()); // Dimensions of the resulting image.
29} finally {
30    if (stream != null)
31        stream.close();
32}

Vamos até os detalhes. Primeiro de tudo, criamos uma instância de renderização, semelhante à digitação Tex/LaTex. Fazemos isso aqui especificando simultaneamente a resolução da imagem de saída.

Em seguida, especificamos o preâmbulo. O preâmbulo padrão é:

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

que fornece suporte a fórmula matemática um pouco mais avançado do que o LaTeX básico. Você pode, por exemplo, adicionar o pacote color se quiser usar seu próprio destaque na fórmula, como mostramos no exemplo do código.

Em seguida, instruímos o renderizador a escalar a saída em 300%.

As próximas duas opções definem as cores de primeiro plano e fundo. As partes da fórmula que não são cobertas (“coloridas”) pelo destaque personalizado serão exibidas na cor textColor.

A próxima linha do exemplo não faz muito sentido. Ele apenas demonstra que você pode direcionar a saída de log para algum fluxo.

E a última opção showterminal permite alternar a gravação da saída do terminal no console.

O método que realmente executa a renderização é MathRenderer.render(). Ele retorna o tamanho da fórmula em pontos.

O fluxo em que a imagem deve ser escrito é aceito pelo método como o segundo argumento. Criamos o fluxo a seguir.

E, finalmente, chamamos o próprio método de MathRenderer.render(), passando as opções como o terceiro argumento. O código do LATEX da fórmula é aprovado como o primeiro argumento.

As últimas linhas do exemplo imprimem dois artefatos de renderização de fórmula matemática - o tamanho da fórmula e o breve relatório de erro (caso haja erros).

Aqui está o resultado da renderização.

Figura de LaTeX renderização para png

Este é o caso de uso mais geral para fórmula de matemática de LaTeX renderização.

Você também pode conferir o [aplicativo da web] gratuito (4) construído com base no recurso implementado no Aspose.TeX para .NET API. Aqui é a página da versão Java.

Como renderizar uma fórmula de matemática de LaTeX para SVG

Da mesma maneira, podemos renderizar uma fórmula matemática de LaTeX ao formato SVG.

 1// Create rendering options.
 2MathRendererOptions options = new SvgMathRendererOptions();
 3// Specify the preamble.
 4options.setPreamble("\\usepackage{amsmath}\r\n\\usepackage{amsfonts}\r\n\\usepackage{amssymb}\r\n\\usepackage{color}");
 5// Specify the scaling factor 300%.
 6options.setScale(3000);
 7// Specify the foreground color.
 8options.setTextColor(Color.BLACK);
 9// Specify the background color.
10options.setBackgroundColor(Color.WHITE);
11// Specify the output stream for the log file.
12options.setLogStream(new ByteArrayOutputStream());
13// Specify whether to show the terminal output on the console or not.
14options.showTerminal(true);
15
16// Create the output stream for the formula image.
17final OutputStream stream = new FileOutputStream(Utils.getOutputDirectory() + "math-formula.svg");
18try {
19    // Run rendering.
20    com.aspose.tex.Size2D size = new SvgMathRenderer().render("\\begin{equation*}\r\n" +
21        "e^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!}\r\n" +
22        "\\end{equation*}", stream, options, size);
23    
24    // Show other results.
25    System.out.println(options.getErrorReport());
26    System.out.println();
27    System.out.println("Size: " + size.getWidth() + "x" + size.getHeight()); // Dimensions of the resulting image.
28} finally {
29    if (stream != null)
30        stream.close();
31}

As diferenças são:

Aqui está o resultado:

Fórmula de matemática de LaTeX renderização para SVG

Você também pode conferir o [aplicativo web] gratuito (12) construído com base no recurso implementado em 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.