Rendern von LaTeX-Matheformeln | C++

Der API-Referenzabschnitt zu diesem Thema ist hier. Tatsächlich lässt sich die LaTeX-Funktion zum Rendern mathematischer Formeln am einfachsten demonstrieren, indem man mit dem Beispiel beginnt. Hier ist es:

 1    // Create rendering options 
 2    System::SharedPtr<PngMathRendererOptions> options = System::MakeObject<PngMathRendererOptions>();
 3    // Sspecify the image resolution 150 dpi
 4    options->set_Resolution(150);
 5    // Specify the preamble.
 6    options->set_Preamble(u"\\usepackage{amsmath}\r\n\\usepackage{amsfonts}\r\n\\usepackage{amssymb}\r\n\\usepackage{color}");
 7    // Specify the scaling factor 300%.
 8    options->set_Scale(3000);
 9    // Specify the foreground color.
10    options->set_TextColor(System::Drawing::Color::get_Black());
11    // Specify the background color.
12    options->set_BackgroundColor(System::Drawing::Color::get_White());
13    // Specify the output stream for the log file.
14    options->set_LogStream(System::MakeObject<System::IO::MemoryStream>());
15    // Specify whether to show the terminal output on the console or not.
16    options->set_ShowTerminal(true);
17    
18    // Create the output stream for the formula image.
19    {
20        System::SharedPtr<System::IO::Stream> stream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"math-formula.png"), System::IO::FileMode::Create);
21        // Clearing resources under 'using' statement
22        System::Details::DisposeGuard<1> __dispose_guard_0({ stream});
23        // ------------------------------------------
24        try
25        {
26            System::Drawing::SizeF size = System::MakeObject<Features::PngMathRenderer>()->Render(u"\\begin{equation*}\r\ne^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!}\r\n\\end{equation*}", stream, options, size);
27            
28            // Show other results.
29            System::Console::get_Out()->WriteLine(options->get_ErrorReport());
30            System::Console::get_Out()->WriteLine();
31            System::Console::get_Out()->WriteLine(System::String(u"Size: ") + size);
32        }
33        catch(...)
34        {
35            __dispose_guard_0.SetCurrentException(std::current_exception());
36        }
37    }

Kommen wir zu den Details. Zunächst erstellen wir eine rendering options-Instanz, ähnlich dem TeX/LaTeX-Schriftsatz. Wir tun dies hier und geben gleichzeitig die Ausgabebildauflösung an.

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

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

Dies bietet etwas erweiterte Unterstützung für mathematische Formeln als einfaches LaTeX. Sie können beispielsweise das Paket „color“ hinzufügen, wenn Sie Ihre eigene Hervorhebung in der Formel verwenden möchten, wie wir im Codebeispiel gezeigt haben.

Dann weisen wir den Renderer an, die Ausgabe um 300 % zu skalieren.

Die nächsten beiden Optionen definieren die Vordergrund- und Hintergrundfarben. Die Teile der Formel, die nicht durch die benutzerdefinierte Hervorhebung abgedeckt („eingefärbt“) werden, werden in der Farbe „TextColor“ angezeigt.

Die nächste Zeile des Beispiels ergibt wenig Sinn. Es zeigt lediglich, dass Sie die Protokollausgabe an einen Stream weiterleiten können.

Und mit der letzten Option „ShowTerminal“ können Sie das Schreiben der Terminalausgabe in die Konsole umschalten.

Die Methode, die das Rendern tatsächlich durchführt, ist MathRenderer.Render(). Es gibt die Größe der Formel in Punkten zurück.

Der Stream, in den das Bild geschrieben werden soll, wird von der Methode als zweites Argument verwendet. Als nächstes erstellen wir den Stream.

Und schließlich rufen wir die Methode „MathRenderer.Render()“ selbst auf und übergeben Optionen als drittes Argument. Der LaTeX-Code der Formel wird als String über das erste Argument übergeben.

Die letzten Zeilen des Beispiels geben zwei Artefakte der mathematischen Formeldarstellung aus – die Größe der Formel und den kurzen Fehlerbericht (für den Fall, dass Fehler aufgetreten sind).

Dies ist der allgemeinste Anwendungsfall für die Darstellung mathematischer Formeln in LaTeX.

Sie können sich auch die kostenlose Web-App ansehen, die auf der in Aspose.TeX for C++ API implementierten Funktion basiert.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.