Trabalhando com formatos TeX personalizados em Java

Amplie os recursos de compilação de documentos criando, carregando e executando arquivos de formato TeX personalizados (.fmt) usando o Aspose.TeX for Java. Além das configurações padrão pré-configuradas (como Plain TeX ou ObjectLaTeX), o Aspose.TeX permite que os desenvolvedores criem dumps de formato personalizados com pacotes de macros pré-carregados para acelerar significativamente tarefas repetitivas de composição tipográfica e oferecer suporte a dialetos TeX especializados.

 

No ecossistema TeX, um arquivo de formato (.fmt) é um dump binário do estado da memória do TeX após o carregamento de um conjunto específico de pacotes de macros e definições de comandos (como LaTeX ou AMS-TeX). O uso de arquivos de formato permite que o mecanismo TeX ignore a análise de grandes bibliotecas de macros durante cada execução, acelerando drasticamente a compilação de documentos.

O Aspose.TeX for Java oferece suporte a formatos integrados e formatos personalizados definidos pelo usuário e criados programaticamente. Tipos de diretórios de saída compatíveis:

  • O mecanismo ObjectLaTeX é um formato LaTeX padrão baseado na extensão do mecanismo ObjectTeX, usado para a compilação geral de documentos LaTeX (artigos, relatórios e livros).
  • O mecanismo ObjectTeX é um formato TeX estendido com recursos do ObjectTeX, usado para composição tipográfica TeX leve e sem macros.
  • O mecanismo Custom Format (.fmt) é um formato binário criado pelo desenvolvedor que contém macros/pacotes pré-compilados e é usado para compilação em lote de alto desempenho com conjuntos de macros personalizados pré-carregados.

Criar um arquivo de formato TeX personalizado (.fmt)

Gere um dump de formato personalizado a partir de um arquivo de inicialização .tex (contendo definições de macros como \font, \catcode ou \dump) usando o 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 com um formato TeX personalizado

Carregue e execute um arquivo .fmt existente ou recém-gerado para processar 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 mecanismos e formatos integrados

Para o processamento padrão de documentos, aproveite as configurações integradas fornecidas pelo 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.");
    }
}

Instalação e configuração

Integre o Aspose.TeX for Java ao seu projeto usando o 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 é a vantagem de usar um arquivo de formato personalizado (.fmt)?

A criação de um formato personalizado pré-carrega os pacotes de macros em formato binário. Isso elimina a sobrecarga de análise em cada execução, acelerando significativamente os pipelines de renderização de documentos de alto volume.

2. Qual comando deve ser incluído no arquivo de origem para criar um arquivo .fmt?

O arquivo TeX de origem deve terminar com o comando TeX nativo \dump, que sinaliza ao mecanismo para criar o snapshot do formato binário.

3. Posso carregar arquivos de formato armazenados dentro de um arquivo ZIP?

Sim. Passe uma instância de InputZipDirectory como parâmetro do diretório do provedor de formato em TeXConfig.customFormat().