Trabajar con formatos TeX personalizados en Java
Amplíe las capacidades de compilación de documentos creando, cargando y ejecutando archivos de formato TeX personalizados (.fmt) mediante Aspose.TeX for Java. Además de las configuraciones estándar preconfiguradas (como Plain TeX u ObjectLaTeX), Aspose.TeX permite a los desarrolladores crear volcados de formato personalizados con paquetes de macros precargados para acelerar significativamente las tareas repetitivas de composición tipográfica y admitir dialectos TeX especializados.
En el ecosistema TeX, un archivo de formato (.fmt) es un volcado binario del estado de la memoria de TeX después de cargar un conjunto específico de paquetes de macros y definiciones de comandos (como LaTeX o AMS-TeX). El uso de archivos de formato permite al motor TeX omitir el análisis de grandes bibliotecas de macros durante cada ejecución, lo que acelera considerablemente la compilación de documentos.
Aspose.TeX for Java admite tanto formatos integrados como formatos personalizados definidos por el usuario y creados mediante programación. Tipos de directorios de salida compatibles:
- El motor ObjectLaTeX es un formato LaTeX estándar basado en la extensión del motor ObjectTeX, utilizado para la compilación general de documentos LaTeX (artículos, informes y libros).
- El motor ObjectTeX es un formato TeX ampliado con las funciones de
ObjectTeX, utilizado para la composición tipográfica TeX ligera y sin macros. - El motor Custom Format (.fmt) es un formato binario creado por el desarrollador que contiene macros/paquetes precompilados y que se utiliza para la compilación por lotes de alto rendimiento con conjuntos de macros personalizados precargados.
Crear un archivo de formato TeX personalizado (.fmt)
Genere un volcado de formato personalizado a partir de un archivo de inicialización .tex (que contiene definiciones de macros como \font, \catcode o \dump) mediante 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.");
}
}Compilar documentos con un formato TeX personalizado
Cargue y ejecute un archivo .fmt existente o recién generado para procesar documentos TeX de entrada.
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.");
}
}Usar motores y formatos integrados
Para el procesamiento estándar de documentos, utilice las configuraciones integradas proporcionadas por 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.");
}
}Instalación y configuración
Integre Aspose.TeX for Java en su proyecto mediante 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>
Preguntas frecuentes
1. ¿Cuál es la ventaja de utilizar un archivo de formato personalizado (.fmt)?
La creación de un formato personalizado precarga los paquetes de macros en formato binario. Esto elimina la sobrecarga de análisis en cada ejecución, acelerando significativamente las canalizaciones de procesamiento de documentos de gran volumen.
2. ¿Qué comando debe incluirse en el archivo fuente para crear un archivo .fmt?
El archivo TeX de origen debe terminar con el comando TeX nativo \dump, que indica al motor que cree la instantánea del formato binario.
3. ¿Puedo cargar archivos de formato almacenados dentro de un archivo ZIP?
Sí. Pase una instancia de InputZipDirectory como parámetro del directorio del proveedor de formatos en TeXConfig.customFormat().