Arbeiten mit benutzerdefinierten TeX-Formaten in Java

Erweitern Sie die Möglichkeiten zur Dokumentkompilierung, indem Sie mit Aspose.TeX for Java benutzerdefinierte TeX-Formatdateien (.fmt) erstellen, laden und ausführen. Neben standardmäßig vorkonfigurierten Konfigurationen (wie Plain TeX oder ObjectLaTeX) ermöglicht Aspose.TeX Entwicklern, benutzerdefinierte Format-Dumps mit vorab geladenen Makropaketen zu erstellen, um sich wiederholende Satzaufgaben erheblich zu beschleunigen und spezialisierte TeX-Dialekte zu unterstützen.

 

Im TeX-Ökosystem ist eine Formatdatei (.fmt) ein binärer Dump des TeX-Speicherzustands nach dem Laden einer bestimmten Gruppe von Makropaketen und Befehlsdefinitionen (wie LaTeX oder AMS-TeX). Durch die Verwendung von Formatdateien kann die TeX-Engine das Parsen umfangreicher Makrobibliotheken bei jeder Ausführung überspringen, wodurch die Dokumentkompilierung erheblich beschleunigt wird.

Aspose.TeX for Java unterstützt sowohl integrierte Formate als auch benutzerdefinierte Formate, die programmgesteuert erstellt werden. Unterstützte Ausgabeverzeichnistypen:

  • Die Engine ObjectLaTeX ist ein standardmäßiges LaTeX-Format, das auf der ObjectTeX-Engine-Erweiterung basiert und für die allgemeine LaTeX-Dokumentkompilierung (Artikel, Berichte, Bücher) verwendet wird.
  • Die Engine ObjectTeX ist ein um ObjectTeX-Funktionen erweitertes TeX-Format, das für leichtgewichtiges, makrofreies TeX-Setzen verwendet wird.
  • Die Engine Custom Format (.fmt) ist ein vom Entwickler erstelltes Binärformat, das vorkompilierte Makros/Pakete enthält und für die leistungsstarke Stapelkompilierung mit vorab geladenen benutzerdefinierten Makrosätzen verwendet wird.

Erstellen einer benutzerdefinierten TeX-Formatdatei (.fmt)

Erstellen Sie mit TeXFormatEngine einen benutzerdefinierten Format-Dump aus einer .tex-Initialisierungsdatei (die Makrodefinitionen wie \font, \catcode oder \dump enthält).

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.");
    }
}

Kompilieren von Dokumenten mit einem benutzerdefinierten TeX-Format

Laden und führen Sie eine vorhandene oder neu erstellte .fmt-Datei aus, um eingegebene TeX-Dokumente zu verarbeiten.

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.");
    }
}

Verwenden integrierter Engines und Formate

Nutzen Sie für die Standarddokumentverarbeitung die integrierten Konfigurationen, die von TeXConfig bereitgestellt werden.

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 und Einrichtung

Integrieren Sie Aspose.TeX for Java mithilfe von Maven in Ihr Projekt:

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>

Häufig gestellte Fragen

1. Was ist der Vorteil der Verwendung einer benutzerdefinierten Formatdatei (.fmt)?

Durch die Erstellung eines benutzerdefinierten Formats werden Makropakete vorab in ein Binärformat geladen. Dadurch entfällt der Parsing-Aufwand bei jedem Durchlauf, was Rendering-Pipelines für die Verarbeitung großer Dokumentmengen erheblich beschleunigt.

2. Welcher Befehl muss in der Quelldatei enthalten sein, um eine .fmt-Datei zu erstellen?

Die Quell-TeX-Datei muss mit dem nativen TeX-Befehl \dump enden, der die Engine anweist, den Snapshot des Binärformats zu erstellen.

3. Kann ich Formatdateien laden, die in einem ZIP-Archiv gespeichert sind?

Ja. Übergeben Sie eine Instanz von InputZipDirectory als Verzeichnisparameter des Formatproviders in TeXConfig.customFormat().