Lavorare con formati TeX personalizzati in Java
Estendi le funzionalità di compilazione dei documenti creando, caricando ed eseguendo file di formato TeX personalizzati (.fmt) utilizzando Aspose.TeX for Java. Oltre alle configurazioni standard preconfigurate (come Plain TeX o ObjectLaTeX), Aspose.TeX consente agli sviluppatori di creare dump di formato personalizzati con pacchetti di macro precaricati, accelerando significativamente le attività ripetitive di composizione tipografica e supportando dialetti TeX specializzati.
Nell’ecosistema TeX, un file di formato (.fmt) è un dump binario dello stato della memoria di TeX dopo il caricamento di un insieme specifico di pacchetti di macro e definizioni di comandi (come LaTeX o AMS-TeX). L’utilizzo dei file di formato consente al motore TeX di evitare l’analisi di grandi librerie di macro durante ogni esecuzione, accelerando notevolmente la compilazione dei documenti.
Aspose.TeX for Java supporta sia i formati integrati sia i formati personalizzati definiti dall’utente e creati a livello programmatico. Tipi di directory di output supportati:
- Il motore ObjectLaTeX è un formato LaTeX standard basato sull’estensione del motore ObjectTeX, utilizzato per la compilazione generale di documenti LaTeX (articoli, relazioni e libri).
- Il motore ObjectTeX è un formato TeX esteso con le funzionalità di
ObjectTeX, utilizzato per la composizione tipografica TeX leggera e senza macro. - Il motore Custom Format (.fmt) è un formato binario creato dallo sviluppatore che contiene macro/pacchetti precompilati e viene utilizzato per la compilazione batch ad alte prestazioni con set di macro personalizzati precaricati.
Creazione di un file di formato TeX personalizzato (.fmt)
Genera un dump di formato personalizzato da un file di inizializzazione .tex (contenente definizioni di macro come \font, \catcode o \dump) utilizzando 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.");
}
}Compilazione di documenti con un formato TeX personalizzato
Carica ed esegui un file .fmt esistente o appena generato per elaborare i documenti TeX di input.
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.");
}
}Utilizzo di motori e formati integrati
Per l’elaborazione standard dei documenti, utilizza le configurazioni integrate fornite da 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.");
}
}Installazione e configurazione
Integra Aspose.TeX for Java nel tuo progetto utilizzando 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>
FAQ
1. Qual è il vantaggio di utilizzare un file di formato personalizzato (.fmt)?
La creazione di un formato personalizzato precarica i pacchetti di macro in formato binario. Ciò elimina l’overhead di analisi a ogni esecuzione, velocizzando significativamente le pipeline di rendering di documenti ad alto volume.
2. Quale comando deve essere incluso nel file sorgente per creare un file .fmt?
Il file TeX sorgente deve terminare con il comando TeX nativo \dump, che segnala al motore di creare lo snapshot del formato binario.
3. È possibile caricare file di formato archiviati all’interno di un archivio ZIP?
Sì. Passare un’istanza di InputZipDirectory come parametro della directory del provider del formato in TeXConfig.customFormat().