Alternative Methoden zur Bereitstellung der Haupt-TeX-Eingabedatei | Python

Bereitstellung der Haupteingabedatei für die TeX-Engine mithilfe eines Streams

Bisher haben wir nur gelernt, wie man der TeX-Engine die Haupteingabedatei als Dateinamen bereitstellt, sei es in vollständiger Form oder in verkürzter Form, mit oder ohne Erweiterung. Allerdings gibt es in der Klasse TeXJob einen anderen Konstruktor, der einen Stream als erstes Argument akzeptiert. Dies ist nützlich, wenn die Haupteingabedatei aus irgendeinem Grund nicht in Form einer Datei im Dateisystem der Festplatte vorliegt. Hier ein Beispiel, wie es umgesetzt werden kann:

1# Create conversion options instance.
2...
3# Create some device.
4...
5# Run LaTeX to XPS conversion.
6TeXJob(BytesIO(r"\documentclass{article} \begin{document} Hello, World! \end{document}".encode("ascii")),
7      XpsDevice(), options).run()

Beachten Sie, dass alle Ausgabedateien den Namen „texput“ erhalten. Dies liegt daran, dass die Engine keinen Zugriff auf einen anderen Namen hat. „texput“ ist der Standard-Jobname. Ausführlichere Informationen zu Jobnamen finden Sie in den Absätzen TeX-Ausgabe und So legen Sie den Jobnamen fest.

Eingabe der Haupt-TeX-Eingabedatei über das Terminal

In der Klasse TeXJob ist ein weiterer Konstruktor verfügbar, der es uns nicht erlaubt, die Eingabe überhaupt anzugeben. Sie fragen sich vielleicht, was ein solcher TeX-Job verarbeiten würde. In diesem Fall müssten wir ein Eingabeterminal verwenden. Die TeX-Engine fordert uns auf, den Dateinamen vom Terminal aus einzugeben.

Hier ist der Code:

1# Create conversion options instance.
2...
3# Run LaTeX to XPS conversion. When prompted, enter the /-separated path to the LaTeX file.
4TeXJob(XpsDevice(), options).run()

Sobald es ausgeführt wird, hält die Engine an und wartet darauf, dass wir den Dateinamen eingeben (mit oder ohne Pfad und mit oder ohne Erweiterung):

Terminalfenster

Und so würde es auf dem Ausgabeterminal (Konsole) aussehen:

 1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
 2entering extended mode
 3**<path_to_the_file>/hello-world.ltx
 4(<path_to_the_file>/hello-world.ltx
 5LaTeX2e <2011/06/27>
 6(article.cls
 7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
 8(size10.clo))
 9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.xps (1 page).
13Transcript written on hello-world.log.
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.