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 veInputFileSystemDirectorySı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
InputZipDirectorySınıfını kullanın. .fmtdosyası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 veTeXConfig.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.