Autres formats de sortie de conversion TeX | Python

Il est peu probable que vous ayez actuellement besoin de convertir un fichier TeX écrit dans un format autre que LaTeX. Cependant, si vous étudiez le langage TeX ou les composants internes de TeX pour une raison quelconque, cela est toujours possible. Dans tous les cas, Aspose.TeX for Python vous permet de convertir des fichiers écrits au format Plain TeX et vous permet également de créer des formats personnalisés et de composer des documents conçus dans ces formats.

Pour commencer, nous allons créer un format personnalisé.

Création d’un format personnalisé

Gardons à l’esprit que le fichier de format est une représentation binaire de l’état interne du moteur TeX.

 1# Create TeX engine options for no format upon ObjectTeX engine extension.
 2options = TeXOptions.console_app_options(TeXConfig.object_ini_tex)
 3# Specify a file system working directory for the input.
 4options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
 5# Specify a file system working directory for the output.
 6options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
 7
 8# Run format creation.
 9TeXJob.create_format("customtex", options)
10
11# For further output to look fine.
12options.terminal_out.writer.write_line()

Comme vous pouvez le constater, le code ressemble au code de conversion d’un fichier TeX. Il existe cependant quelques distinctions.

Tout d’abord, dans ce cas, nous utilisons la configuration du travail TeXConfig.object_ini_tex. Cette configuration garantit que l’état du moteur est « vierge », ce qui signifie que les paramètres internes ont leurs valeurs par défaut et que l’ensemble des séquences de contrôle s’aligne sur l’ensemble des primitives. Dans notre exemple, l’ensemble des primitives est développé dans l’article Aspose.TeX et Object TeX.

Ensuite, nous procédons à la configuration des répertoires de travail d’entrée et de sortie comme d’habitude. Le répertoire de travail d’entrée doit inclure le fichier source du format principal et toutes ses dépendances.

Et la deuxième différence majeure réside dans la méthode par laquelle nous exécutons le travail. Dans ce cas, nous utilisons la méthode statique create_format() qui, en conjonction avec les options, nécessite que le nom du fichier source principal soit identique au nom du format.

Composition d’un fichier TeX dans votre format personnalisé

Maintenant que nous avons créé notre propre format TeX, nous pouvons procéder à la composition d’un fichier TeX écrit dans ce format. Voici le code :

 1# Create the format provider using the file system input working directory.
 2# We use the project output directory as our custom format file is supposed to be located there.
 3with FormatProvider(InputFileSystemDirectory(Util.output_directory), "customtex") as format_provider:
 4    # Create conversion options for a custom format upon ObjectTeX engine extension.
 5    options = TeXOptions.console_app_options(TeXConfig.object_tex(format_provider))
 6    options.job_name = "typeset-with-custom-format"
 7    # Specify the input working directory. This is not required here as we are providing the main input as a stream.
 8    # But it is required when the main input has dependencies (e.g. images).
 9    options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
10    # Specify a file system working directory for the output.
11    options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
12
13    # Run the job.
14    TeXJob(BytesIO("Congratulations! You have successfully typeset this text with your own TeX format!\\end".encode('ascii')),
15           XpsDevice(), options).run()
16
17    # For further output to look fine.
18    options.terminal_out.writer.write_line()

Pour spécifier le format, nous devons créer une instance de la classe FormatProvider. Dans le constructeur d’options, nous utilisons la configuration TeXConfig.object_tex(), qui nécessite notre fournisseur de format comme argument et charge le format au-dessus de l’état “vierge” du moteur.

Le code restant devrait vous être familier, car il utilise les fonctionnalités évoquées plus tôt dans ce guide.

Composition d’un fichier TeX au format Plain TeX

Si nous supprimons le fournisseur de format du code ci-dessus, le moteur chargera le format par défaut, qui est Object TeX dans son quatrième sens. Par conséquent, si vous disposez d’un fichier TeX écrit au format Plain TeX, vous pouvez le convertir dans n’importe quel format cible pris en charge en utilisant cette approche.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.