Podemos incorporar fórmulas e equações matemáticas no arquivo TeX. O LaTeX usa o arquivo TeX como um documento fonte que contém um conjunto de comandos. Esses comandos especificam o formato do documento, incluindo texto, símbolos, expressões matemáticas e gráficos. Podemos escrever e renderizar qualquer tipo de equações e fórmulas matemáticas programaticamente sem usar LaTeX. Neste artigo, aprenderemos como renderizar fórmulas e equações matemáticas LaTeX em Java.
Os seguintes tópicos serão abordados neste artigo:
- API Java para renderizar fórmulas e equações matemáticas LaTeX
- Renderize Fórmulas Matemáticas LaTeX como PNG
- Renderizar equações complexas
- Exibir equações longas
- Alinhar várias equações
- Equações de Grupo e Centro
- Renderizar parênteses e colchetes
- Matrizes em LaTeX
- Renderizar frações e binômios
- Operadores matemáticos em LaTeX
- Renderize fórmulas matemáticas do LaTeX como SVG
API Java para renderizar fórmulas e equações matemáticas LaTeX
Para renderizar fórmulas matemáticas em LaTeX, usaremos a API Aspose.TeX for Java. Ele fornece a classe PngMathRendererOptions para especificar as opções de renderização para salvar a fórmula matemática como PNG. Da mesma forma, ele também fornece a classe SvgMathRendererOptions para especificar as opções de renderização para salvar a fórmula matemática como um SVG. Além disso, para renderização de fórmulas matemáticas, ele fornece classes PngMathRenderer e SvgMathRenderer derivadas da classe MathRenderer. O método render() desta classe renderiza a fórmula matemática fornecida. Além disso, a API também permite a composição de arquivos TeX para diferentes formatos de arquivo como PDF, XPS ou imagens.
Faça o download do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em 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>
Renderize fórmulas matemáticas LaTeX como PNG usando Java
Podemos renderizar fórmulas ou equações matemáticas em linha simples seguindo as etapas abaixo:
- Primeiramente, crie uma instância da classe PngMathRendererOptions.
- Em seguida, especifique a imagem resoluções, como 150 DPI.
- Em seguida, especifique o preâmbulo do documento LaTeX.
- Opcionalmente, defina várias propriedades, como Escala, TextColor, BackgroundColor, etc.
- Depois disso, crie o fluxo de saída para a imagem da fórmula.
- Por fim, chame o método render() para renderizar a fórmula. Ele usa a sequência de fórmulas, fluxo, opções de renderização e o tamanho da imagem de saída como argumentos.
O exemplo de código a seguir mostra como renderizar uma fórmula matemática como PNG programaticamente usando Java.
// Este exemplo de código demonstra como renderizar fórmulas e equações matemáticas como PNG
// Criar opções de renderização PNG
PngMathRendererOptions options = new PngMathRendererOptions();
// Especifique a resolução da imagem 150 dpi
options.setResolution(150);
// Especifique o preâmbulo.
options.setPreamble("\\usepackage{amsmath}\n"
+ "\\usepackage{amsfonts}\n"
+ "\\usepackage{amssymb}\n"
+ "\\usepackage{color}");
// Especifique o fator de escala 300%.
options.setScale(3000);
// Especifique a cor do primeiro plano.
options.setTextColor(Color.BLACK);
// Especifique a cor de fundo.
options.setBackgroundColor(Color.WHITE);
// Especifique o fluxo de saída para o arquivo de log.
options.setLogStream(new ByteArrayOutputStream());
// Especifique se deseja mostrar a saída do terminal no console ou não.
options.showTerminal(true);
// A variável na qual as dimensões da imagem resultante serão gravadas.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();
// Crie o fluxo de saída para a imagem da 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 outros resultados.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Renderize equações complexas usando Java
Podemos renderizar quaisquer equações ou fórmulas complexas seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
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);
Exibir equações longas usando Java
Podemos exibir equações longas em várias linhas seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
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);
Alinhar várias equações usando Java
Também podemos alinhar e renderizar várias equações ou fórmulas de uma só vez seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
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);
Equações de grupo e centro usando Java
Podemos agrupar e centralizar várias equações durante a renderização seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
mathRenderer.render("\\begin{gather*}"
+ "2x - 5y = 8 \\\\"
+ "3x^2 + 9y = 3a + c\\\\"
+ "(a-b) = a^2 + b^2 -2ab"
+ "\\end{gather*}", stream, options, size);
Renderizar parênteses e colchetes usando Java
Também podemos renderizar parênteses e colchetes seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
mathRenderer.render("\\begin{document}"
+ "\["
+ " \\left[ \\frac{ N } { \\left( \\frac{L}{p} \\right) - (m+n) } \\right]"
+ "\]"
+ "\\end{document}", stream, options, size);
Matrizes em LaTeX usando Java
Da mesma forma, podemos renderizar matrizes seguindo os passos mencionados anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
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);
Renderize frações e binômios usando Java
Também podemos renderizar frações e binômios seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
mathRenderer.render("\\begin{document}"
+ "\["
+ "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
+ "\]"
+ "\\end{document}", stream, options, size);
Operadores matemáticos em LaTeX usando Java
Os símbolos dos operadores matemáticos representam várias funções matemáticas como log, cos, sin, etc. Podemos renderizar funções trigonométricas e logaritmos em LaTeX seguindo os passos mencionados anteriormente. No entanto, só precisamos definir a string da fórmula na etapa 5, conforme mostrado abaixo:
mathRenderer.render("\\begin{document}"
+ "\["
+ "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
+ "\]"
+ "\\end{document}", stream, options, size);
Renderize fórmulas matemáticas LaTeX em SVG usando Java
Também podemos salvar as fórmulas ou equações matemáticas renderizadas no formato de imagem SVG seguindo as etapas abaixo:
- Primeiramente, crie uma instância da classe SvgMathRendererOptions.
- Em seguida, especifique o preâmbulo do documento LaTeX.
- Opcionalmente, defina várias propriedades, como Escala, TextColor, BackgroundColor, etc.
- Depois disso, crie o fluxo de saída para a imagem da fórmula.
- Por fim, chame o método render() para renderizar a fórmula. Ele usa a sequência de fórmulas, fluxo, opções de renderização e o tamanho da imagem de saída como argumentos.
O exemplo de código a seguir mostra como renderizar uma fórmula matemática em uma imagem SVG usando Java.
// Este exemplo de código demonstra como renderizar fórmulas e equações matemáticas como SVG
// Criar opções de renderização SVG
SvgMathRendererOptions options = new SvgMathRendererOptions();
// Especifique o preâmbulo.
options.setPreamble("\\usepackage{amsmath}\n"
+ "\\usepackage{amsfonts}\n"
+ "\\usepackage{amssymb}\n"
+ "\\usepackage{color}");
// Especifique o fator de escala 300%.
options.setScale(3000);
// Especifique a cor do primeiro plano.
options.setTextColor(Color.BLACK);
// Especifique a cor de fundo.
options.setBackgroundColor(Color.WHITE);
// Especifique o fluxo de saída para o arquivo de log.
options.setLogStream(new ByteArrayOutputStream());
// Especifique se deseja mostrar a saída do terminal no console ou não.
options.showTerminal(true);
// A variável na qual as dimensões da imagem resultante serão gravadas.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();
// Crie o fluxo de saída para a imagem da 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 outros resultados.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.
Conclusão
Neste artigo, aprendemos como:
- renderizar fórmulas e equações matemáticas simples e complexas em Java;
- alinhar e agrupar equações programaticamente;
- renderizar matrizes, parênteses, colchetes, frações e binômios;
- salve as imagens da fórmula renderizada em PNG ou SVG usando Java.
Além disso, você pode aprender mais sobre o Aspose.TeX for Java API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.