Rendu des formules mathématiques LaTeX | C++

La section de référence de l’API liée à ce sujet est ici. En fait, le moyen le plus simple de démontrer la fonctionnalité de rendu des formules mathématiques LaTeX est de commencer par l’exemple. C’est ici:

 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    }

Passons aux détails. Tout d’abord, nous créons une instance options de rendu, similaire à la composition TeX/LaTeX. Nous le faisons ici simultanément en spécifiant la résolution de l’image de sortie.

Ensuite, nous précisons le préambule. Le préambule par défaut est :

 1\usepackage{amsmath}
 2\usepackage{amsfonts}
 3\usepackage{amssymb}
 4``
 5qui fournit une prise en charge des formules mathématiques légèrement plus avancée que LaTeX de base. Vous pouvez, par exemple, ajouter le package `color` si vous souhaitez utiliser votre propre surlignage dans la formule, comme nous l'avons montré dans l'exemple de code.
 6
 7Ensuite, nous demandons au moteur de rendu de mettre à l'échelle la sortie de 300 %.
 8
 9Les deux options suivantes définissent les couleurs de premier plan et d'arrière-plan. Les parties de la formule qui ne sont pas couvertes (« colorées ») par la surbrillance personnalisée seront affichées dans la couleur « TextColor ».
10
11La ligne suivante de l'exemple n'a pas beaucoup de sens. Cela démontre simplement que vous pouvez diriger la sortie du journal vers un flux.
12
13Et la dernière option « ShowTerminal » vous permet d'écrire la sortie du terminal sur la console.
14
15La méthode qui effectue réellement le rendu est [MathRenderer.Render()](https://reference.aspose.com/tex/cpp/aspose.tex.features/mathrenderer/render). Il renvoie la taille de la formule en points.
16
17Le flux dans lequel limage doit être écrite est pris par la méthode comme deuxième argument. Nous créons ensuite le flux.
18
19Et enfin, nous appelons la méthode `MathRenderer.Render()` elle-même, en passant les options comme troisième argument. Le code LaTeX de la formule est transmis sous forme de chaîne via le premier argument.
20
21Les dernières lignes de l'exemple impriment deux artefacts de rendu de formule mathématique : la taille de la formule et le bref rapport d'erreur (au cas où il y aurait des erreurs).
22
23Il sagit du cas dutilisation le plus général du rendu de formules mathématiques LaTeX.
24
25**Vous pouvez également consulter l'[application Web](https://products.aspose.app/tex/mathrenderer) gratuite construite sur la base de la fonctionnalité implémentée dans [Aspose.TeX pour l'API C++](https://products.aspose.com/tex/cpp/).**
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.