تحميل حزم وفئات LaTeX الخارجية في Java

وسّع إمكانات تجميع مستندات LaTeX من خلال دمج حزم الماكرو الخارجية (.sty) وفئات المستندات المخصصة (.cls) باستخدام Aspose.TeX for Java. قم بحل تبعيات الحزم بشكل ديناميكي من أدلة نظام الملفات المحلي أو أرشيفات ZIP المضغوطة أو تدفقات الذاكرة المخصصة، دون الحاجة إلى تثبيت TeX Live أو MiKTeX بالكامل.

 

عند تجميع مستندات LaTeX التي تحتوي على أوامر مثل \usepackage{custompackage} أو \documentclass{customclass}، يبحث المحرك عن ملفات .sty أو .cls المطابقة باستخدام مثيلات IInputWorkingDirectory المُكوّنة.

فيما يلي مصادر حل الحزم التالية:

  • لتحميل ملفات قوالب خاصة بالشركة (.sty/.cls) مخزنة في مجلدات محلية، استخدم الدليل المحلي كمزوّد للحزم وفئة InputFileSystemDirectory.
  • لتوزيع ملف واحد يحتوي على ملفات TeX الرئيسية إلى جانب جميع تبعيات الحزم الضرورية، استخدم أرشيف ZIP كمزوّد للحزم وفئة InputZipDirectory.
  • للتنفيذ عالي الأداء مع مجموعات الحزم المحمّلة مسبقًا والمستخدمة بكثرة والمدمجة في ملف .fmt، استخدم التنسيق المُجمّع مسبقًا كمزوّد للحزم وTeXConfig.customFormat().

تحميل الحزم الخارجية من مجلد محلي

حدّد مجلدًا محليًا يحتوي على ملفات الأنماط المخصصة (.sty) أو تعريفات الفئات (.cls) باعتباره دليل العمل للإدخال للبحث عن الحزم.

import com.aspose.tex.*;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;

public class LoadExternalPackagesFromFileSystem {
    public static void main(String[] args) throws Exception {
        // Step 1: LaTeX source referencing a custom package 'companylayout.sty'
        String latexCode = "\\documentclass{article}\n" +
                           "\\usepackage{companylayout}\n" + // Custom external package
                           "\\begin{document}\n" +
                           "\\customHeader{Monthly Financial Report}\n" +
                           "Document compiled using external style package.\n" +
                           "\\end{document}";

        ByteArrayInputStream inputStream = new ByteArrayInputStream(latexCode.getBytes(StandardCharsets.UTF_8));

        // Step 2: Initialize LaTeX conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Step 3: Set input working directory pointing to folder where 'companylayout.sty' resides
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/CustomPackages/"));

        // Step 4: Set output working directory for compiled PDF
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Step 5: Run compilation job
        TeXJob job = new TeXJob(inputStream, new PdfDevice(), options);
        job.run();

        System.out.println("LaTeX document compiled successfully using external .sty package.");
    }
}

تحميل الحزم والفئات من أرشيف ZIP مضغوط

ضع ملفات مصدر .tex وحزم .sty المخصصة والصور في أرشيف .zip، ووجّه Aspose.TeX لحل تبعيات الحزم مباشرةً من الأرشيف المضغوط.

import com.aspose.tex.*;
import java.io.FileInputStream;

public class LoadExternalPackagesFromZip {
    public static void main(String[] args) throws Exception {
        // Step 1: Initialize options for LaTeX format
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Step 2: Open ZIP archive containing 'main.tex' and dependent '.sty'/'.cls' files
        FileInputStream zipStream = new FileInputStream("C:/TeXProject/TemplateBundle.zip");
        options.setInputWorkingDirectory(new InputZipDirectory(zipStream, "packages_subfolder"));

        // Step 3: Configure output working directory
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Step 4: Execute compilation job
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        zipStream.close();
        System.out.println("LaTeX document and external packages loaded from ZIP archive successfully.");
    }
}

التعامل مع حزم TeX المفقودة أو القياسية

يتضمن Aspose.TeX for Java تطبيقات مدمجة لحزم LaTeX الأساسية الشائعة (مثل graphicx وamsmath وamsfonts وcolor وgeometry). بالنسبة إلى الحزم غير القياسية أو التابعة لجهات خارجية، تأكد من وضع ملفات .sty المطابقة داخل IInputWorkingDirectory النشط.

import com.aspose.tex.*;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;

public class StandardLaTeXPackagesDemo {
    public static void main(String[] args) throws Exception {
        // Standard packages like amsmath and graphicx are processed natively
        String latexCode = "\\documentclass{article}\n" +
                           "\\usepackage{amsmath}\n" +
                           "\\usepackage{graphicx}\n" +
                           "\\begin{document}\n" +
                           "\\equation: e^{i\\pi} + 1 = 0\n" +
                           "\\end{document}";

        ByteArrayInputStream inputStream = new ByteArrayInputStream(latexCode.getBytes(StandardCharsets.UTF_8));

        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        TeXJob job = new TeXJob(inputStream, new PdfDevice(), options);
        job.run();

        System.out.println("Document with standard LaTeX packages rendered successfully.");
    }
}

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

ادمج 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>

{{i18n.feature5.title}}

  • {{i18n.feature5.item1}}
  • {{i18n.feature5.item2}}
  • {{i18n.feature5.item3}}

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

1. كيف يعثر Aspose.TeX على ملفات .sty و.cls الخارجية؟

عندما يواجه محرك LaTeX \usepackage{name} أو \documentclass{name}، فإنه يبحث عن name.sty أو name.cls في الدليل المقدم إلى TeXOptions.setInputWorkingDirectory().

2. هل يمكنني استخدام حزم ماكرو معقدة مثل TikZ أو PSTricks؟

يدعم Aspose.TeX مجموعة واسعة من ميزات تقييم الماكرو. ويتم تقييم الحزم التي تعتمد على امتدادات ObjectTeX الأصلية أو بدائيات الرسم المدعومة مباشرةً؛ وبالنسبة لإخراج الأشكال المستقلة، يمكن أيضًا استخدام PngFigureRenderer أو SvgFigureRenderer.

3. هل يمكنني تحميل الحزم الكبيرة مسبقًا لتسريع معالجة المستندات على دفعات؟

نعم. يمكنك إنشاء ملف تنسيق TeX مخصص (.fmt) يحتوي على حزم ماكرو مجمعة مسبقًا وتحميله عبر TeXConfig.customFormat() لتقليل النفقات التشغيلية لكل مستند بشكل كبير.