Gör LaTeX Math formler och ekvationer i Java

Vi kan bädda in formler och matematiska ekvationer i filen TeX. LaTeX använder TeX-filen som ett källdokument som innehåller en uppsättning kommandon. Dessa kommandon anger dokumentets format, inklusive text, symboler, matematiska uttryck och grafik. Vi kan skriva och återge alla typer av ekvationer och matematiska formler programmatiskt utan att använda LaTeX. I den här artikeln lär vi dig hur du renderar LaTeX matematiska formler och ekvationer i Java.

Följande ämnen ska behandlas i den här artikeln:

Java API för att återge LaTeX Math formler och ekvationer

För att rendera LaTeX matematiska formler kommer vi att använda Aspose.TeX for Java API. Den tillhandahåller klassen PngMathRendererOptions för att specificera renderingsalternativen för att spara Math-formeln som en PNG. På samma sätt tillhandahåller den också klassen SvgMathRendererOptions för att specificera renderingsalternativen för att spara Math-formeln som en SVG. Dessutom, för rendering av matematiska formler, tillhandahåller den PngMathRenderer- och SvgMathRenderer-klasser härledda från MathRenderer-klassen. Metoden render() för den här klassen återger den tillhandahållna matematiska formeln. Dessutom tillåter API:et även typsättning av TeX-filer till olika filformat som PDF, XPS eller bilder.

Vänligen antingen ladda ner JAR för API:t eller lägg till följande pom.xml-konfiguration i en Maven-baserad Java-applikation.

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

Gör LaTeX Math-formler som PNG med Java

Vi kan återge enkla inline matematiska formler eller ekvationer genom att följa stegen nedan:

  1. Skapa först en instans av klassen PngMathRendererOptions.
  2. Ange sedan bilden upplösningar, till exempel 150 DPI.
  3. Ange sedan LaTeX-dokumentets inledning.
  4. Alternativt kan du ställa in olika egenskaper som Skala, Textfärg, Bakgrundsfärg, etc.
  5. Efter det skapar du utdataströmmen för formelbilden.
  6. Till sist, anropa metoden render() för att rendera formeln. Det tar formelsträng, ström, renderingsalternativ och utdatabildstorleken som argument.

Följande kodexempel visar hur man renderar en matematisk formel som en PNG programmatiskt med Java.

// Det här kodexemplet visar hur man renderar matematiska formler och ekvationer som PNG
// Skapa PNG-renderingsalternativ
PngMathRendererOptions options = new PngMathRendererOptions();

// Ange bildupplösningen 150 dpi
options.setResolution(150);

// Specificera ingressen.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Ange skalfaktorn 300 %.
options.setScale(3000);

// Ange förgrundsfärgen.
options.setTextColor(Color.BLACK);

// Ange bakgrundsfärgen.
options.setBackgroundColor(Color.WHITE);

// Ange utdataströmmen för loggfilen.
options.setLogStream(new ByteArrayOutputStream());

// Ange om terminalutgången ska visas på konsolen eller inte.
options.showTerminal(true);

// Variabeln där dimensionerna för den resulterande bilden kommer att skrivas.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Skapa utdataströmmen för formelbilden.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

// Rendera som PNG
PngMathRenderer mathRenderer = new PngMathRenderer();
mathRenderer.render("This is a sample formula $f(x) = x^2$ example.", stream, options, size);

// Visa andra resultat.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Gör LaTeX Math-formler som PNG med Java.

Gör LaTeX Math-formler som PNG med Java

Gör komplexa ekvationer med Java

Vi kan återge alla komplexa ekvationer eller formler genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

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);
Gör komplexa ekvationer med Java

Gör komplexa ekvationer med Java

Visa långa ekvationer med Java

Vi kan visa långa ekvationer på flera linjer genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

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); 
Visa långa ekvationer med Java.

Visa långa ekvationer med Java.

Justera flera ekvationer med Java

Vi kan också ställa in och återge flera ekvationer eller formler samtidigt genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

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);
Justera flera ekvationer med Java.

Justera flera ekvationer med Java.

Grupp- och centerekvationer med Java

Vi kan gruppera och centrera flera ekvationer medan vi renderar genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Grupp- och centerekvationer med Java.

Grupp- och centerekvationer med Java.

Gör parenteser och parenteser med Java

Vi kan också göra parenteser och parenteser genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Gör parenteser och parenteser med Java.

Gör parenteser och parenteser med Java.

Matriser i LaTeX med Java

På liknande sätt kan vi rendera matriser genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

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);
Matriser i LaTeX med Java.

Matriser i LaTeX med Java.

Återge bråk och binomialer med Java

Vi kan också rendera bråk och binomialer genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Återge bråk och binomialer med Java.

Återge bråk och binomialer med Java.

Matematiska operatörer i LaTeX med Java

De matematiska operatorsymbolerna representerar olika matematiska funktioner som log, cos, sin, etc. Vi kan återge trigonometriska funktioner och logaritmer i LaTeX genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in formelsträngen i steg # 5 som visas nedan:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Matematiska operatörer i LaTeX med Java.

Matematiska operatörer i LaTeX med Java.

Återge LaTeX Math-formler i SVG med Java

Vi kan också spara de återgivna matematiska formlerna eller ekvationerna i SVG-bildformat genom att följa stegen nedan:

  1. Skapa först en instans av klassen SvgMathRendererOptions.
  2. Ange sedan LaTeX-dokumentets inledning.
  3. Alternativt kan du ställa in olika egenskaper som Skala, Textfärg, Bakgrundsfärg, etc.
  4. Efter det skapar du utdataströmmen för formelbilden.
  5. Till sist, anropa metoden render() för att rendera formeln. Det tar formelsträng, ström, renderingsalternativ och utdatabildstorleken som argument.

Följande kodexempel visar hur man renderar en matematisk formel i en SVG-bild med Java.

// Det här kodexemplet visar hur man renderar matematiska formler och ekvationer som SVG
// Skapa SVG-renderingsalternativ
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Specificera ingressen.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Ange skalfaktorn 300 %.
options.setScale(3000);

// Ange förgrundsfärgen.
options.setTextColor(Color.BLACK);

// Ange bakgrundsfärgen.
options.setBackgroundColor(Color.WHITE);

// Ange utdataströmmen för loggfilen.
options.setLogStream(new ByteArrayOutputStream());

// Ange om terminalutgången ska visas på konsolen eller inte.
options.showTerminal(true);

// Variabeln där dimensionerna för den resulterande bilden kommer att skrivas.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Skapa utdataströmmen för formelbilden.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Rendera som 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);

// Visa andra resultat.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Återge LaTeX Math-formler i SVG med Java.

Återge LaTeX Math-formler i SVG med Java.

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man:

  • återge enkla och komplexa matematiska formler och ekvationer i Java;
  • anpassa och gruppera ekvationer programmatiskt;
  • rendera matriser, parenteser, parenteser, bråk och binomialer;
  • spara de renderade formelbilderna i PNG eller SVG med Java.

Dessutom kan du lära dig mer om Aspose.TeX för Java API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forumet.

Se även