العمل مع تنسيقات TeX المخصصة في Java

وسّع إمكانات تجميع المستندات من خلال إنشاء ملفات تنسيق TeX مخصصة (.fmt) وتحميلها وتنفيذها باستخدام Aspose.TeX for Java. بالإضافة إلى التكوينات القياسية المُعدّة مسبقًا (مثل Plain TeX أو ObjectLaTeX)، يتيح Aspose.TeX للمطورين إنشاء ملفات تنسيق مخصصة تتضمن حزم وحدات الماكرو المحمّلة مسبقًا، مما يسرّع بشكل كبير مهام تنضيد النصوص المتكررة ويدعم لهجات TeX المتخصصة.

 

في منظومة TeX، يكون ملف التنسيق (.fmt) عبارة عن تفريغ ثنائي لحالة ذاكرة TeX بعد تحميل مجموعة محددة من حزم وحدات الماكرو وتعريفات الأوامر (مثل LaTeX أو AMS-TeX). يتيح استخدام ملفات التنسيق لمحرك TeX تخطي تحليل مكتبات وحدات الماكرو الكبيرة في كل عملية تشغيل، مما يسرّع عملية تجميع المستندات بشكل كبير.

يدعم Aspose.TeX for Java كلاً من التنسيقات المضمنة والتنسيقات المخصصة التي يعرّفها المستخدم ويتم إنشاؤها برمجيًا. أنواع أدلة الإخراج المدعومة:

  • المحرك ObjectLaTeX هو تنسيق LaTeX قياسي يستند إلى امتداد محرك ObjectTeX، ويُستخدم لتجميع مستندات LaTeX العامة (المقالات والتقارير والكتب).
  • المحرك ObjectTeX هو تنسيق TeX موسّع بميزات ObjectTeX، ويُستخدم للتنضيد الخفيف لـ TeX بدون وحدات ماكرو.
  • المحرك Custom Format (.fmt) هو تنسيق ثنائي ينشئه المطور، ويحتوي على وحدات ماكرو وحزم مجمّعة مسبقًا، ويُستخدم للتجميع عالي الأداء على دفعات مع مجموعات وحدات ماكرو مخصصة محمّلة مسبقًا.

إنشاء ملف تنسيق TeX مخصص (.fmt)

إنشاء تفريغ تنسيق مخصص من ملف تهيئة .tex (يحتوي على تعريفات وحدات الماكرو مثل \font و\catcode أو \dump) باستخدام 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.");
    }
}

تجميع المستندات باستخدام تنسيق 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.");
    }
}

التثبيت والإعداد

ادمج Aspose.TeX for Java في مشروعك باستخدام 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>

الأسئلة الشائعة

1. ما فائدة استخدام ملف تنسيق مخصص (.fmt

يؤدي إنشاء تنسيق مخصص إلى تحميل حزم الماكرو مسبقًا في تنسيق ثنائي. وهذا يلغي النفقات الإضافية لتحليلها في كل تشغيل، مما يسرّع بشكل كبير عمليات عرض المستندات ذات الحجم الكبير.

2. ما الأمر الذي يجب تضمينه في الملف المصدر لإنشاء ملف .fmt؟

يجب أن ينتهي ملف TeX المصدر بأمر TeX الأصلي \dump، الذي يوجّه المحرك إلى إنشاء لقطة للتنسيق الثنائي.

3. هل يمكنني تحميل ملفات التنسيق المخزنة داخل أرشيف ZIP؟

نعم. مرّر مثيلًا من InputZipDirectory باعتباره معلمة دليل موفر التنسيق في TeXConfig.customFormat().