Rendern von LaTeX-Matheformeln | Python

Rendern einer LaTeX-Matheformel in PNG

Werfen Sie bei Bedarf einen Blick auf den API-Referenzabschnitt für dieses Thema. Tatsächlich lässt sich die Renderfunktion für LaTeX-Matheformeln am besten demonstrieren, indem man mit einem Beispiel beginnt. Hier ist es:

Setzen Sie ASPOSE_TEX_OUTPUT_DIR auf Ihr Ausgabeverzeichnis oder verwenden Sie den Standardordner output. Der LaTeX-Code ist vollständig in den Beispielen enthalten; externe Eingabedateien sind nicht erforderlich. Wenden Sie zuerst eine Lizenz an. Lizenzierung.

 1# Render a highlighted LaTeX math formula to PNG.
 2import os
 3from pathlib import Path
 4from aspose.pydrawing import Color
 5from aspose.tex.features import PngMathRenderer, PngMathRendererOptions
 6
 7# Set an output directory, or use the default output folder.
 8output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
 9output_dir.mkdir(parents=True, exist_ok=True)
10
11# Create rendering options setting the image resolution to 150 dpi.
12options = PngMathRendererOptions()
13options.resolution = 150
14# Specify the preamble.
15options.preamble = r"""\usepackage{amsmath}
16\usepackage{amsfonts}
17\usepackage{amssymb}
18\usepackage{color}"""
19# Specify the scaling factor 300%.
20options.scale = 3000
21# Leave space around the rendered fragment.
22options.margin = 5
23# Specify the foreground color.
24options.text_color = Color.black
25# Specify the background color.
26options.background_color = Color.white
27# Specify whether to show the terminal output on the console or not.
28options.show_terminal = False
29
30# Create binary streams for the rendering log and formula image.
31with (output_dir / "math-formula.png.log").open("wb") as log_stream, \
32        (output_dir / "math-formula.png").open("wb") as stream:
33    options.log_stream = log_stream
34    # Run rendering.
35    size = PngMathRenderer().render(r"""\begin{equation*}
36e^x = x^{\color{red}0} + x^{\color{red}1} + \frac{x^{\color{red}2}}{2} + \frac{x^{\color{red}3}}{6} + \cdots = \sum_{n\geq 0} \frac{x^{\color{red}n}}{n!}
37\end{equation*}""", stream, options)
38
39# Show other results.
40print(options.error_report or "No rendering errors.")
41print()
42print(f"Size: {size.width}x{size.height}")

Kommen wir zu den Details. Zuerst initiieren wir ein rendering options-Objekt, ähnlich dem TeX/LaTeX-Schriftsatz, das die Spezifikation für die gewünschte Ausgabebildauflösung enthält.

Als nächstes spezifizieren wir die Präambel. Die Standardpräambel lautet:

1\usepackage{amsmath}
2\usepackage{amsfonts}
3\usepackage{amssymb}

das im Vergleich zum Standard-LaTeX eine verbesserte Unterstützung für mathematische Formeln bietet. Sie können beispielsweise das Paket „color“ einschließen, um die Hervorhebung in der Formel anzupassen, wie im bereitgestellten Codebeispiel gezeigt.

Mit scale = 3000 wird die Ausgabe auf 300 % skaliert; margin = 5 lässt Platz um das Fragment. Das PNG-Beispiel verwendet resolution = 150 DPI.

Die nächsten beiden Optionen bestimmen die Vordergrund- und Hintergrundfarben. Alle Teile der Formel, die von der benutzerdefinierten Hervorhebung nicht betroffen sind, werden in der Farbe „text_color“ angezeigt.

Das Beispiel weist log_stream einen binären Dateistream zu und speichert das Protokoll als math-formula.png.log neben math-formula.png. Die with-Anweisung schließt beide Streams automatisch.

show_terminal steuert die Terminalausgabe in der Konsole. Die Beispiele setzen diese Option auf False; das Protokoll wird weiterhin in die Datei geschrieben.

Der eigentliche Rendervorgang wird von der Methode MathRenderer.render() durchgeführt, die die Größe der Formel in Punkten zurückgibt.

Das zweite Argument ist der binäre Ausgabestream für das Bild. Das dritte Argument enthält die Rendering-Optionen.

Und schließlich wird die Methode „MathRenderer.render()“ aufgerufen, wobei die Optionen als drittes Argument übergeben werden. Als erstes Argument wird der LaTeX-Code der Formel bereitgestellt.

Die letzten Zeilen geben den Fehlerbericht oder bei leerem Bericht No rendering errors. aus, gefolgt von Breite und Höhe in Punkten.

Hier ist das Ergebnis des Renderings.

LaTeX-Mathe-Formel-Rendering in PNG

Dies stellt die häufigste und umfassendste Anwendung der LaTeX-Funktion zum Rendern mathematischer Formeln dar.

Sie können auch die kostenlose Web-App erkunden, die die implementierte Funktion der Aspose.TeX für .NET API nutzt.

Rendern einer LaTeX-Matheformel in SVG

Ebenso können wir mit dem gleichen Ansatz eine LaTeX-Matheformel in das SVG-Format konvertieren.

 1# Render a highlighted LaTeX math formula to SVG.
 2import os
 3from pathlib import Path
 4from aspose.pydrawing import Color
 5from aspose.tex.features import SvgMathRenderer, SvgMathRendererOptions
 6
 7# Set an output directory, or use the default output folder.
 8output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
 9output_dir.mkdir(parents=True, exist_ok=True)
10
11# Create rendering options.
12options = SvgMathRendererOptions()
13# Specify the preamble.
14options.preamble = r"""\usepackage{amsmath}
15\usepackage{amsfonts}
16\usepackage{amssymb}
17\usepackage{color}"""
18# Specify the scaling factor 300%.
19options.scale = 3000
20# Leave space around the rendered fragment.
21options.margin = 5
22# Specify the foreground color.
23options.text_color = Color.black
24# Specify the background color.
25options.background_color = Color.white
26# Specify whether to show the terminal output on the console or not.
27options.show_terminal = False
28
29# Create binary streams for the rendering log and formula image.
30with (output_dir / "math-formula.svg.log").open("wb") as log_stream, \
31        (output_dir / "math-formula.svg").open("wb") as stream:
32    options.log_stream = log_stream
33    # Run rendering.
34    size = SvgMathRenderer().render(r"""\begin{equation*}
35e^x = x^{\color{red}0} + x^{\color{red}1} + \frac{x^{\color{red}2}}{2} + \frac{x^{\color{red}3}}{6} + \cdots = \sum_{n\geq 0} \frac{x^{\color{red}n}}{n!}
36\end{equation*}""", stream, options)
37
38# Show other results.
39print(options.error_report or "No rendering errors.")
40print()
41print(f"Size: {size.width}x{size.height}")

Dieses Beispiel erstellt math-formula.svg und das Protokoll math-formula.svg.log im selben Ausgabeverzeichnis.

Die Unterschiede sind:

Hier ist das Ergebnis:

LaTeX-Mathe-Formel-Rendering in SVG

Sie können auch die kostenlose Web-App erkunden, die die implementierte Funktion der Aspose.TeX für .NET API nutzt.