Utiliser des formats TeX personnalisés en Java

Étendez les capacités de compilation de documents en créant, chargeant et exécutant des fichiers de format TeX personnalisés (.fmt) à l’aide d’Aspose.TeX for Java. En plus des configurations standard préconfigurées (telles que Plain TeX ou ObjectLaTeX), Aspose.TeX permet aux développeurs de créer des dumps de format personnalisés avec des packages de macros préchargés afin d’accélérer considérablement les tâches de composition répétitives et de prendre en charge des dialectes TeX spécialisés.

 

Dans l’écosystème TeX, un fichier de format (.fmt) est un dump binaire de l’état de la mémoire de TeX après le chargement d’un ensemble spécifique de packages de macros et de définitions de commandes (telles que LaTeX ou AMS-TeX). L’utilisation de fichiers de format permet au moteur TeX d’éviter l’analyse de grandes bibliothèques de macros lors de chaque exécution, ce qui accélère considérablement la compilation des documents.

Aspose.TeX for Java prend en charge à la fois les formats intégrés et les formats personnalisés définis par l’utilisateur et créés par programmation. Types de répertoires de sortie pris en charge :

  • Le moteur ObjectLaTeX est un format LaTeX standard basé sur l’extension du moteur ObjectTeX, utilisé pour la compilation générale de documents LaTeX (articles, rapports et livres).
  • Le moteur ObjectTeX est un format TeX étendu avec les fonctionnalités de ObjectTeX, utilisé pour la composition TeX légère et sans macros.
  • Le moteur Custom Format (.fmt) est un format binaire créé par le développeur qui contient des macros/packages précompilés et qui est utilisé pour la compilation par lots haute performance avec des ensembles de macros personnalisés préchargés.

Créer un fichier de format TeX personnalisé (.fmt)

Générez un dump de format personnalisé à partir d’un fichier d’initialisation .tex (contenant des définitions de macros telles que \font, \catcode ou \dump) à l’aide de TeXFormatEngine.

import com.aspose.tex.*;
import java.io.IOException;

public class CreateCustomTeXFormat {
    public static void main(String[] args) throws IOException {
        // Set up options for creating a custom format using ObjectTeX
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectEngineOptions());

        // Define input and output working directories
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/CustomMacros/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Formats/"));

        // Run the format generation job on the custom macro source file (e.g., 'myformat.tex')
        // The source file must end with the \dump command
        TeXJob job = new TeXJob("myformat", new PdfDevice(), options);
        job.run();

        System.out.println("Custom TeX format created successfully.");
    }
}

Compiler des documents avec un format TeX personnalisé

Chargez et exécutez un fichier .fmt existant ou nouvellement généré pour traiter des documents TeX d’entrée.

import com.aspose.tex.*;
import java.io.IOException;

public class RunWithCustomTeXFormat {
    public static void main(String[] args) throws IOException {
        // Define working directory where the custom format file resides
        IInputWorkingDirectory formatDir = new InputFileSystemDirectory("C:/TeXProject/Formats/");

        // Initialize options using the custom format name ('myformat') and location
        TeXOptions options = TeXOptions.consoleAppOptions(
            TeXConfig.customFormat("myformat", formatDir)
        );

        // Set input/output directories for the target TeX document
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Compile the document using the pre-loaded custom format
        TeXJob job = new TeXJob("document", new PdfDevice(), options);
        job.run();

        System.out.println("Document compiled using custom TeX format successfully.");
    }
}

Utiliser les moteurs et formats intégrés

Pour le traitement standard des documents, utilisez les configurations intégrées fournies par TeXConfig.

import com.aspose.tex.*;

public class BuiltInTeXFormats {
    public static void main(String[] args) throws Exception {
        // Option A: Standard ObjectLaTeX (LaTeX document class support)
        TeXOptions latexOptions = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Option B: Plain ObjectTeX (Plain TeX primitives)
        TeXOptions plainTexOptions = TeXOptions.consoleAppOptions(TeXConfig.objectTeX());

        System.out.println("Built-in TeX format options initialized.");
    }
}

Installation et configuration

Intégrez Aspose.TeX for Java à votre projet à l’aide de Maven :

Package Manager Console Command

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>Latest</version>
</dependency>

Questions fréquentes

1. Quel est l’avantage d’utiliser un fichier de format personnalisé (.fmt) ?

La création d’un format personnalisé précharge les packages de macros dans un format binaire. Cela élimine le temps de traitement lié à l’analyse à chaque exécution et accélère considérablement les pipelines de rendu de documents à grand volume.

2. Quelle commande doit être incluse dans le fichier source pour créer un fichier .fmt ?

Le fichier TeX source doit se terminer par la commande TeX native \dump, qui indique au moteur de créer un instantané du format binaire.

3. Puis-je charger des fichiers de format stockés dans une archive ZIP ?

Oui. Passez une instance de InputZipDirectory en tant que paramètre de répertoire du fournisseur de format dans TeXConfig.customFormat().