Java’da harici LaTeX paketlerini ve sınıflarını yükleme

Aspose.TeX for Java kullanarak harici makro paketlerini (.sty) ve özel belge sınıflarını (.cls) dahil ederek LaTeX belge derleme yeteneklerini genişletin. Tam bir TeX Live veya MiKTeX kurulumu gerektirmeden paket bağımlılıklarını yerel dosya sistemi dizinlerinden, sıkıştırılmış ZIP arşivlerinden veya özel bellek akışlarından dinamik olarak çözümleyin.

 

\usepackage{custompackage} veya \documentclass{customclass} gibi komutları içeren LaTeX belgelerini derlerken motor, yapılandırılmış IInputWorkingDirectory örneklerini kullanarak karşılık gelen .sty veya .cls dosyalarını arar.

İşte sonraki paket çözümleme kaynakları:

  • Yerel klasörlerde depolanan şirket standartlarındaki şablon dosyalarını (.sty/.cls) yüklemek için paket sağlayıcısı olarak Yerel Dizin ve InputFileSystemDirectory Sınıfını kullanın.
  • Ana TeX dosyalarını gerekli tüm paket bağımlılıklarıyla birlikte içeren tek dosyalık dağıtım için paket sağlayıcısı olarak ZIP Arşivi ve InputZipDirectory Sınıfını kullanın.
  • .fmt dosyasına yerleşik, önceden yüklenmiş ve sık kullanılan paket kümeleriyle yüksek performanslı yürütme için paket sağlayıcısı olarak Önceden derlenmiş Format ve TeXConfig.customFormat() kullanın.

Harici paketleri yerel bir klasörden yükleme

Özel stil dosyalarını (.sty) veya sınıf tanımlarını (.cls) içeren yerel bir dizini, paket araması için giriş çalışma dizini olarak belirtin.

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

Paketleri ve sınıfları sıkıştırılmış bir ZIP arşivinden yükleme

Paket .tex kaynak dosyalarını, özel .sty paketlerini ve görselleri bir .zip arşivine ekleyin ve Aspose.TeX’i paket bağımlılıklarını doğrudan sıkıştırılmış arşivden çözümleyecek şekilde yapılandırın.

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

Eksik veya standart TeX paketlerini işleme

Aspose.TeX for Java, popüler temel LaTeX paketlerinin (örneğin graphicx, amsmath, amsfonts, color ve geometry) yerleşik uygulamalarını içerir. Standart olmayan veya üçüncü taraf paketler için ilgili .sty dosyalarının etkin IInputWorkingDirectory içinde bulunduğundan emin olun.

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

Kurulum ve Ayarlar

Maven kullanarak Aspose.TeX for Java’yı projenize entegre edin:

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. Aspose.TeX harici .sty ve .cls dosyalarını nasıl bulur?

LaTeX motoru \usepackage{name} veya \documentclass{name} ile karşılaştığında, TeXOptions.setInputWorkingDirectory() içinde belirtilen dizinde name.sty veya name.cls dosyalarını arar.

2. TikZ veya PSTricks gibi karmaşık makro paketlerini kullanabilir miyim?

Aspose.TeX, çok çeşitli makro değerlendirme özelliklerini destekler. Yerel ObjectTeX uzantılarına veya desteklenen çizim primitive’lerine dayanan paketler doğrudan değerlendirilir; bağımsız şekil çıktısı için PngFigureRenderer veya SvgFigureRenderer da kullanılabilir.

3. Toplu belge işlemeyi hızlandırmak için ağır paketleri önceden yükleyebilir miyim?

Evet. Önceden derlenmiş makro paketlerini içeren özel bir TeX format dosyası (.fmt) oluşturabilir ve belge başına çalışma yükünü önemli ölçüde azaltmak için bunu TeXConfig.customFormat() aracılığıyla yükleyebilirsiniz.