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 rendera LaTeX Math formler och ekvationer
- Återge LaTeX Math-formler som PNG
- Gör komplexa ekvationer
- Visa långa ekvationer
- Justera flera ekvationer
- Grupp- och centrumekvationer
- Gör parentes och parenteser
- Matriser i LaTeX
- Återge bråk och binomialer
- Matematiska operatorer i LaTeX
- Återge LaTeX Math-formler som SVG
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:
- Skapa först en instans av klassen PngMathRendererOptions.
- Ange sedan bilden upplösningar, till exempel 150 DPI.
- Ange sedan LaTeX-dokumentets inledning.
- Alternativt kan du ställa in olika egenskaper som Skala, Textfärg, Bakgrundsfärg, etc.
- Efter det skapar du utdataströmmen för formelbilden.
- 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 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);
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);
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);
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);
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);
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);
Å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);
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);
Å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:
- Skapa först en instans av klassen SvgMathRendererOptions.
- Ange sedan LaTeX-dokumentets inledning.
- Alternativt kan du ställa in olika egenskaper som Skala, Textfärg, Bakgrundsfärg, etc.
- Efter det skapar du utdataströmmen för formelbilden.
- 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());
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.