Külső LaTeX-csomagok és osztályok betöltése Java-ban
Bővítse a LaTeX-dokumentumok fordítási lehetőségeit külső makrócsomagok (.sty) és egyéni dokumentumosztályok (.cls) beépítésével az Aspose.TeX for Java használatával. Oldja fel dinamikusan a csomagfüggőségeket helyi fájlrendszer-könyvtárakból, tömörített ZIP-archívumokból vagy egyéni memóriastream-ekből anélkül, hogy teljes TeX Live- vagy MiKTeX-telepítésre lenne szükség.
A \usepackage{custompackage} vagy \documentclass{customclass} parancsokat tartalmazó LaTeX-dokumentumok fordításakor a motor a konfigurált IInputWorkingDirectory példányok segítségével megkeresi a megfelelő .sty vagy .cls fájlokat.
Az alábbiakban a csomagfeloldás következő forrásai találhatók:
- A helyi mappákban tárolt vállalati szabványú sablonfájlok (
.sty/.cls) betöltéséhez használja a Helyi könyvtár lehetőséget csomagszolgáltatóként és azInputFileSystemDirectoryosztályt. - Az összes szükséges csomagfüggőséget a fő TeX-fájlok mellett tartalmazó egyfájlos terjesztéshez használja a ZIP-archívum lehetőséget csomagszolgáltatóként és az
InputZipDirectoryosztályt. - A nagy teljesítményű végrehajtáshoz, előre betöltött, gyakran használt,
.fmtfájlba beépített csomagkészletekkel használja az Előre lefordított formátum lehetőséget csomagszolgáltatóként és aTeXConfig.customFormat()beállítást.
Külső csomagok betöltése helyi mappából
Adjon meg bemeneti munkakönyvtárként egy helyi könyvtárat, amely egyéni stílusfájlokat (.sty) vagy osztálydefiníciókat (.cls) tartalmaz a csomagkereséshez.
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.");
}
}Csomagok és osztályok betöltése tömörített ZIP-archívumból
Csomagolja a .tex forrásfájlokat, az egyéni .sty csomagokat és a képeket egy .zip archívumba, majd utasítsa az Aspose.TeX-et, hogy közvetlenül a tömörített archívumból oldja fel a csomagfüggőségeket.
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.");
}
}Hiányzó vagy szabványos TeX-csomagok kezelése
Az Aspose.TeX for Java népszerű alapvető LaTeX-csomagok (például graphicx, amsmath, amsfonts, color és geometry) beépített implementációit tartalmazza. Nem szabványos vagy harmadik féltől származó csomagok esetén gondoskodjon arról, hogy a megfelelő .sty fájlok az aktív IInputWorkingDirectory könyvtárban legyenek.
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.");
}
}Telepítés és beállítás
Integrálja az Aspose.TeX for Java-t a projektjébe a Maven használatával:
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>
Gyakran ismételt kérdések
1. Hogyan találja meg az Aspose.TeX a külső .sty és .cls fájlokat?
Amikor a LaTeX-motor a \usepackage{name} vagy a \documentclass{name} paranccsal találkozik, a name.sty vagy name.cls fájlt a TeXOptions.setInputWorkingDirectory() számára megadott könyvtárban keresi.
2. Használhatok összetett makrócsomagokat, például a TikZ-et vagy a PSTricks-et?
Az Aspose.TeX a makrókiértékelési funkciók széles körét támogatja. A natív ObjectTeX-kiterjesztésekre vagy támogatott rajzolási primitívekre támaszkodó csomagokat közvetlenül kiértékeli; önálló ábra kimenetéhez a PngFigureRenderer vagy a SvgFigureRenderer is használható.
3. Előre betölthetek nagyméretű csomagokat a kötegelt dokumentumfeldolgozás felgyorsításához?
Igen. Létrehozhat egy egyéni TeX-formátumfájlt (.fmt), amely előre lefordított makrócsomagokat tartalmaz, majd betöltheti azt a TeXConfig.customFormat() segítségével, hogy jelentősen csökkentse a dokumentumonkénti végrehajtási többletterhelést.