Autres formats de sortie de conversion TeX | C++

Il est très peu probable que vous souhaitiez actuellement convertir un fichier TeX écrit dans un autre format que LaTeX. Mais cela est possible si vous étudiez le langage TeX et/ou ses composants internes pour une raison quelconque. Quoi qu’il en soit, Aspose.TeX for C++ vous permet de convertir des fichiers écrits au format Plain TeX. Il vous permet également de créer des formats personnalisés et de composer des documents conçus dans ces formats.

Nous commencerons par créer un format personnalisé.

Création d’un format personnalisé

Rappelons que le fichier de format est un dump binaire de l’état interne du moteur TeX.

 1// Create typesetting options for no format on ObjectTeX engine extension.
 2System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::get_ObjectIniTeX());
 3// Specify a file system working directory for input.
 4options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(RunExamples::InputDirectory));
 5// Specify a file system working directory for output.
 6options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));
 7    
 8// Run format creation.
 9Aspose::TeX::TeXJob::CreateFormat(u"customtex", options);
10    
11// For further output to look write.
12options->get_TerminalOut()->get_Writer()->WriteLine();

Comme vous pouvez le voir, le code est similaire au code de conversion d’un fichier TeX. Mais il existe quelques différences.

Tout d’abord, nous utilisons ici la configuration du travail TeXConfig.ObjectIniTeX. Il s’agit d’une configuration spéciale qui laisse l’état du moteur « vierge », c’est-à-dire que les paramètres internes ont leurs valeurs par défaut et que l’ensemble des séquences de contrôle coïncide avec l’ensemble des primitives. Dans notre exemple, l’ensemble des primitives est étendu dans le sens mentionné ici.

Ensuite, nous configurons les répertoires de travail d’entrée et de sortie comme d’habitude. Le répertoire de travail d’entrée doit contenir le fichier source du format principal et toutes ses dépendances.

Et la deuxième différence clé réside dans la manière dont nous gérons le travail. Cette fois, nous utilisons la méthode statique CreateFormat(), qui, avec les options, prend le nom du fichier source principal, qui doit être le même que le nom du format.

Composition d’un fichier TeX dans votre format personnalisé

Maintenant que nous avons notre propre format TeX, nous souhaitons composer un fichier TeX écrit dans ce format. Voici le code :

 1// Create typesetting options for a custom format on ObjectTeX engine extension.
 2System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
 3options->set_JobName(u"typeset-with-custom-format");
 4// Specify the input working directory.
 5options->set_InputWorkingDirectory(wd);
 6// Specify a file system working directory for output.
 7options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));
 8            
 9// Run typesetting.
10System::MakeObject<Aspose::TeX::TeXJob>(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<XpsDevice>(), options)->Run();
11            
12// For further output to look write.
13options->get_TerminalOut()->get_Writer()->WriteLine();

Évidemment, nous devons préciser le format d’une manière ou d’une autre. Tout d’abord, nous devons créer une instance de la classe FormatProvider. Ensuite, dans le constructeur d’options, nous utilisons la configuration TeXConfig.ObjectTeX(), qui prend notre fournisseur de format comme argument et charge le format au-dessus de l’état “vierge” du moteur.

Le reste du code devrait vous être familier. Il utilise les fonctionnalités évoquées plus haut dans ce guide.

Composition d’un fichier TeX au format Plain TeX

Si nous supprimons le fournisseur de format du code que nous venons de démontrer, le moteur chargera le format par défaut, qui est Object TeX dans son quatrième sens. Ainsi, si vous disposez d’un fichier TeX écrit au format Plain TeX, vous pouvez ainsi le convertir dans n’importe quel format cible pris en charge.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.