Fórmulas de matemática de LaTeX Renderização | Aspose.TeX para 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á:

Defina outputFile como um java.nio.file.Path em uma pasta existente, por exemplo Paths.get(outputDirectory, "math-formula.png") para PNG ou Paths.get(outputDirectory, "math-formula.svg") para SVG. Importe as classes de renderizador, opções e Size2D de Aspose.TeX usadas, além de java.awt.Color, java.io.ByteArrayOutputStream, java.io.OutputStream, java.nio.file.Files, java.nio.file.Path, java.nio.file.Paths. O método que faz a chamada deve tratar ou declarar as exceções. Aplique uma licença conforme o guia de licenciamento para evitar as restrições de avaliação.

 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}

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 duas opções definem as cores de primeiro plano e fundo. As partes da fórmula sem destaque personalizado usam a cor definida por setTextColor().

O exemplo direciona os logs de renderização a um ByteArrayOutputStream com setLogStream(). Os fluxos do log e da imagem são fechados automaticamente após a renderização.

showTerminal() controla a saída do terminal no console. Os exemplos usam false; defina true para exibi-la.

MathRenderer.render() é chamado em uma instância de PngMathRenderer ou SvgMathRenderer e retorna as dimensões da fórmula em pontos como um Size2D.

O método aceita o fluxo de saída da imagem como segundo argumento. O exemplo o abre em um bloco try-with-resources, que o fecha após a renderização.

Por fim, chamamos render() na instância do renderizador: a fórmula LaTeX é o primeiro argumento, o fluxo da imagem o segundo e as opções de renderização o terceiro.

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 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// 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}

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.