Java에서 사용자 지정 TeX 형식 사용

Aspose.TeX for Java를 사용하여 사용자 지정 TeX 형식 파일(.fmt)을 만들고, 로드하고, 실행함으로써 문서 컴파일 기능을 확장할 수 있습니다. 표준 사전 구성 설정(예: Plain TeX 또는 ObjectLaTeX) 외에도 Aspose.TeX를 사용하면 개발자가 매크로 패키지가 미리 로드된 사용자 지정 형식 덤프를 만들 수 있습니다. 이를 통해 반복적인 조판 작업을 크게 가속화하고 특수한 TeX 방언을 지원할 수 있습니다.

 

TeX 생태계에서 형식 파일(.fmt)은 특정 매크로 패키지 및 명령 정의(예: LaTeX 또는 AMS-TeX)를 로드한 후의 TeX 메모리 상태를 바이너리 형태로 덤프한 파일입니다. 형식 파일을 사용하면 TeX 엔진이 실행될 때마다 대규모 매크로 라이브러리를 구문 분석하는 과정을 건너뛸 수 있으므로 문서 컴파일 속도를 크게 향상시킬 수 있습니다.

Aspose.TeX for Java는 기본 제공 형식과 프로그래밍 방식으로 생성된 사용자 정의 형식을 모두 지원합니다. 지원되는 출력 디렉터리 유형:

  • 엔진 ObjectLaTeX은 ObjectTeX 엔진 확장을 기반으로 하는 표준 LaTeX 형식으로, 일반적인 LaTeX 문서(논문, 보고서, 책)를 컴파일하는 데 사용됩니다.
  • 엔진 ObjectTeXObjectTeX 기능으로 확장된 TeX 형식으로, 가볍고 매크로를 사용하지 않는 TeX 조판에 사용됩니다.
  • 엔진 **Custom Format (.fmt)**은 개발자가 생성하는 바이너리 형식으로, 미리 컴파일된 매크로/패키지를 포함하며 사용자 지정 매크로 세트가 미리 로드된 고성능 일괄 컴파일에 사용됩니다.

사용자 지정 TeX 형식 파일(.fmt) 만들기

TeXFormatEngine을 사용하여 .tex 초기화 파일(\font, \catcode, \dump와 같은 매크로 정의 포함)에서 사용자 지정 형식 덤프를 생성합니다.

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

사용자 지정 TeX 형식을 사용하여 문서 컴파일

기존 또는 새로 생성된 .fmt 파일을 로드하고 실행하여 입력 TeX 문서를 처리합니다.

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

기본 제공 엔진 및 형식 사용

표준 문서 처리의 경우 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.");
    }
}

설치 및 설정

Maven을 사용하여 Aspose.TeX for Java를 프로젝트에 통합합니다:

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. 사용자 지정 포맷 파일(.fmt)을 사용하는 것의 장점은 무엇인가요?

사용자 지정 포맷을 생성하면 매크로 패키지가 바이너리 형식으로 미리 로드됩니다. 이를 통해 실행할 때마다 발생하는 구문 분석 오버헤드가 제거되어 대량 문서 렌더링 파이프라인의 속도를 크게 향상시킬 수 있습니다.

2. .fmt 파일을 생성하려면 소스 파일에 어떤 명령을 포함해야 하나요?

소스 TeX 파일은 네이티브 \dump TeX 명령으로 끝나야 하며, 이 명령은 엔진에 바이너리 포맷 스냅샷을 생성하도록 지시합니다.

3. ZIP 아카이브 내부에 저장된 포맷 파일을 로드할 수 있나요?

예. TeXConfig.customFormat()의 포맷 제공자 디렉터리 매개 변수로 InputZipDirectory 인스턴스를 전달합니다.