Rendern Sie LaTeX-Mathematikformeln und -gleichungen in Java

Wir können Formeln und mathematische Gleichungen in die Datei TeX einbetten. LaTeX verwendet die TeX-Datei als Quelldokument, das eine Reihe von Befehlen enthält. Diese Befehle geben das Format des Dokuments an, einschließlich Text, Symbole, mathematische Ausdrücke und Grafiken. Wir können jede Art von Gleichungen und mathematischen Formeln programmgesteuert schreiben und rendern, ohne LaTeX zu verwenden. In diesem Artikel erfahren Sie, wie Sie mathematische Formeln und Gleichungen aus LaTeX in Java rendern.

Folgende Themen sollen in diesem Artikel behandelt werden:

Java-API zum Rendern von LaTeX-Mathematikformeln und -gleichungen

Zum Rendern von LaTeX-Mathematikformeln verwenden wir die Aspose.TeX for Java-API. Es stellt die PngMathRendererOptions-Klasse bereit, um die Rendering-Optionen anzugeben, um die mathematische Formel als PNG zu speichern. In ähnlicher Weise stellt es auch die Klasse „SvgMathRendererOptions“ zum Festlegen der Rendering-Optionen zum Speichern der mathematischen Formel als SVG bereit. Darüber hinaus stellt es für die Darstellung mathematischer Formeln die Klassen PngMathRenderer und SvgMathRenderer bereit, die von der Klasse MathRenderer abgeleitet sind. Die Methode render() dieser Klasse rendert die bereitgestellte mathematische Formel. Darüber hinaus ermöglicht die API auch das Setzen von TeX-Dateien in verschiedene Dateiformate wie PDF, XPS oder Bilder.

Bitte laden Sie die JAR-Datei der API herunter oder fügen Sie die folgende pom.xml-Konfiguration in einer Maven-basierten Java-Anwendung hinzu.

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

Rendern Sie mathematische LaTeX-Formeln als PNG mit Java

Wir können einfache mathematische Formeln oder Gleichungen rendern, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der Klasse PngMathRendererOptions.
  2. Geben Sie als Nächstes das Bild Auflösungen an, z. B. 150 DPI.
  3. Geben Sie dann die Präambel des LaTeX-Dokuments an.
  4. Legen Sie optional verschiedene Eigenschaften wie Scale, TextColor, BackgroundColor usw. fest.
  5. Erstellen Sie danach den Ausgabestream für das Formelbild.
  6. Rufen Sie schließlich die Methode render() auf, um die Formel zu rendern. Als Argumente werden Formelstring, Stream, Rendering-Optionen und die Ausgabebildgröße verwendet.

Das folgende Codebeispiel zeigt, wie eine mathematische Formel mithilfe von Java programmgesteuert als PNG gerendert wird.

// Dieses Codebeispiel zeigt, wie mathematische Formeln und Gleichungen als PNG gerendert werden
// Erstellen Sie PNG-Rendering-Optionen
PngMathRendererOptions options = new PngMathRendererOptions();

// Geben Sie als Bildauflösung 150 dpi an
options.setResolution(150);

// Geben Sie die Präambel an.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Geben Sie den Skalierungsfaktor 300 % an.
options.setScale(3000);

// Legen Sie die Vordergrundfarbe fest.
options.setTextColor(Color.BLACK);

// Geben Sie die Hintergrundfarbe an.
options.setBackgroundColor(Color.WHITE);

// Geben Sie den Ausgabestream für die Protokolldatei an.
options.setLogStream(new ByteArrayOutputStream());

// Geben Sie an, ob die Terminalausgabe auf der Konsole angezeigt werden soll oder nicht.
options.showTerminal(true);

// Die Variable, in die die Abmessungen des resultierenden Bildes geschrieben werden.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Erstellen Sie den Ausgabestream für das Formelbild.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

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

// Andere Ergebnisse anzeigen.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Rendern Sie mathematische LaTeX-Formeln als PNG mit Java.

Rendern Sie mathematische LaTeX-Formeln als PNG mit Java

Rendern Sie komplexe Gleichungen mit Java

Wir können alle komplexen Gleichungen oder Formeln rendern, indem wir die zuvor erwähnten Schritte befolgen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

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);
Rendern Sie komplexe Gleichungen mit Java

Rendern Sie komplexe Gleichungen mit Java

Zeigen Sie lange Gleichungen mit Java an

Wir können lange Gleichungen in mehreren Zeilen anzeigen, indem wir die zuvor erwähnten Schritte befolgen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

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); 
Zeigen Sie lange Gleichungen mit Java an.

Zeigen Sie lange Gleichungen mit Java an.

Richten Sie mehrere Gleichungen mit Java aus

Wir können auch mehrere Gleichungen oder Formeln gleichzeitig ausrichten und rendern, indem wir die zuvor erwähnten Schritte befolgen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

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);
Richten Sie mehrere Gleichungen mit Java aus.

Richten Sie mehrere Gleichungen mit Java aus.

Gruppieren und zentrieren Sie Gleichungen mit Java

Wir können mehrere Gleichungen beim Rendern gruppieren und zentrieren, indem wir die zuvor erwähnten Schritte befolgen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Gruppieren und zentrieren Sie Gleichungen mit Java.

Gruppieren und zentrieren Sie Gleichungen mit Java.

Rendern von Klammern und Klammern mit Java

Wir können auch Klammern und Klammern rendern, indem wir die zuvor erwähnten Schritte ausführen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Rendern von Klammern und Klammern mit Java.

Rendern von Klammern und Klammern mit Java.

Matrizen in LaTeX mit Java

Auf ähnliche Weise können wir Matrizen rendern, indem wir die zuvor erwähnten Schritte ausführen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

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);
Matrizen in LaTeX mit Java.

Matrizen in LaTeX mit Java.

Rendern Sie Brüche und Binome mit Java

Wir können auch Brüche und Binome rendern, indem wir die zuvor erwähnten Schritte befolgen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Rendern Sie Brüche und Binome mit Java.

Rendern Sie Brüche und Binome mit Java.

Mathematische Operatoren in LaTeX mit Java

Die mathematischen Operatorsymbole repräsentieren verschiedene mathematische Funktionen wie log, cos, sin usw. Wir können trigonometrische Funktionen und Logarithmen in LaTeX rendern, indem wir die zuvor erwähnten Schritte befolgen. Wir müssen jedoch nur die Formelzeichenfolge in Schritt 5 wie unten gezeigt festlegen:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Mathematische Operatoren in LaTeX mit Java.

Mathematische Operatoren in LaTeX mit Java.

Rendern Sie mathematische LaTeX-Formeln in SVG mit Java

Wir können die gerenderten mathematischen Formeln oder Gleichungen auch im SVG-Bildformat speichern, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der Klasse SvgMathRendererOptions.
  2. Geben Sie als Nächstes die Präambel des LaTeX-Dokuments an.
  3. Legen Sie optional verschiedene Eigenschaften wie Scale, TextColor, BackgroundColor usw. fest.
  4. Erstellen Sie danach den Ausgabestream für das Formelbild.
  5. Rufen Sie schließlich die Methode render() auf, um die Formel zu rendern. Als Argumente werden Formelstring, Stream, Rendering-Optionen und die Ausgabebildgröße verwendet.

Das folgende Codebeispiel zeigt, wie eine mathematische Formel in einem SVG-Bild mit Java gerendert wird.

// Dieses Codebeispiel zeigt, wie mathematische Formeln und Gleichungen als SVG gerendert werden
// Erstellen Sie SVG-Rendering-Optionen
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Geben Sie die Präambel an.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Geben Sie den Skalierungsfaktor 300 % an.
options.setScale(3000);

// Legen Sie die Vordergrundfarbe fest.
options.setTextColor(Color.BLACK);

// Geben Sie die Hintergrundfarbe an.
options.setBackgroundColor(Color.WHITE);

// Geben Sie den Ausgabestream für die Protokolldatei an.
options.setLogStream(new ByteArrayOutputStream());

// Geben Sie an, ob die Terminalausgabe auf der Konsole angezeigt werden soll oder nicht.
options.showTerminal(true);

// Die Variable, in die die Abmessungen des resultierenden Bildes geschrieben werden.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Erstellen Sie den Ausgabestream für das Formelbild.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Als SVG rendern
SvgMathRenderer mathRenderer = new SvgMathRenderer();
mathRenderer.render("\\begin{equation} \\label{eqn}"
    + "	E = {mc^2}"
    + "	\\end{equation}"
    + " The equation states mass equivalence relationship.", stream, options, size);

// Andere Ergebnisse anzeigen.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Rendern Sie mathematische LaTeX-Formeln in SVG mit Java.

Rendern Sie mathematische LaTeX-Formeln in SVG mit Java.

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die Bibliothek ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir gelernt, wie man:

  • einfache und komplexe mathematische Formeln und Gleichungen in Java darstellen;
  • Gleichungen programmgesteuert ausrichten und gruppieren;
  • Rendern von Matrizen, Klammern, Klammern, Brüchen und Binomen;
  • Speichern Sie die gerenderten Formelbilder in PNG oder SVG mit Java.

Außerdem können Sie mithilfe der Dokumentation mehr über Aspose.TeX für die Java-API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch