Andere TeX-Konvertierungsausgabeformate | Python
Es ist unwahrscheinlich, dass Sie derzeit eine TeX-Datei konvertieren müssen, die in einem anderen Format als LaTeX geschrieben ist. Wenn Sie jedoch aus irgendeinem Grund die TeX-Sprache oder die Interna von TeX studieren, ist dies immer noch möglich. In jedem Fall können Sie mit Aspose.TeX für Python Dateien konvertieren, die im Plain TeX-Format geschrieben wurden, und außerdem benutzerdefinierte Formate erstellen und Dokumente setzen, die in diesen Formaten entworfen wurden.
Zunächst erstellen wir ein benutzerdefiniertes Format.
Erstellen eines benutzerdefinierten Formats
Bedenken Sie, dass die Formatdatei eine binäre Darstellung des internen Zustands der TeX-Engine ist.
1# Create TeX engine options for no format upon ObjectTeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_ini_tex)
3# Specify a file system working directory for the input.
4options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
5# Specify a file system working directory for the output.
6options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
7
8# Run format creation.
9TeXJob.create_format("customtex", options)
10
11# For further output to look fine.
12options.terminal_out.writer.write_line()
Wie Sie sehen, ähnelt der Code dem Code zum Konvertieren einer TeX-Datei. Es gibt jedoch einige Unterschiede.
In diesem Fall verwenden wir zunächst die Jobkonfiguration TeXConfig.object_ini_tex. Diese Konfiguration stellt sicher, dass der Zustand der Engine „jungfräulich“ ist, was bedeutet, dass die internen Parameter ihre Standardwerte haben und der Satz von Steuersequenzen mit dem Satz von Grundelementen übereinstimmt. In unserem Beispiel wird der Satz von Grundelementen erweitert im Aspose.TeX- und Object TeX-Artikel.
Anschließend richten wir wie gewohnt die Eingabe- und Ausgabearbeitsverzeichnisse ein. Das Eingabearbeitsverzeichnis sollte die Quelldatei des Hauptformats und alle ihre Abhängigkeiten enthalten.
Und der zweite große Unterschied ist die Methode, mit der wir den Job ausführen. In diesem Fall verwenden wir die statische Methode create_format(), die in Verbindung mit den Optionen erfordert, dass der Name der Hauptquelldatei mit dem Formatnamen identisch ist.
Textsatz einer TeX-Datei in Ihrem benutzerdefinierten Format
Nachdem wir nun unser eigenes TeX-Format erstellt haben, können wir mit dem Satz einer in diesem Format geschriebenen TeX-Datei fortfahren. Hier ist der Code:
1# Create the format provider using the file system input working directory.
2# We use the project output directory as our custom format file is supposed to be located there.
3with FormatProvider(InputFileSystemDirectory(Util.output_directory), "customtex") as format_provider:
4 # Create conversion options for a custom format upon ObjectTeX engine extension.
5 options = TeXOptions.console_app_options(TeXConfig.object_tex(format_provider))
6 options.job_name = "typeset-with-custom-format"
7 # Specify the input working directory. This is not required here as we are providing the main input as a stream.
8 # But it is required when the main input has dependencies (e.g. images).
9 options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
10 # Specify a file system working directory for the output.
11 options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
12
13 # Run the job.
14 TeXJob(BytesIO("Congratulations! You have successfully typeset this text with your own TeX format!\\end".encode('ascii')),
15 XpsDevice(), options).run()
16
17 # For further output to look fine.
18 options.terminal_out.writer.write_line()
Um das Format anzugeben, müssen wir eine Instanz der Klasse FormatProvider erstellen. Im Optionskonstruktor verwenden wir die Konfiguration TeXConfig.object_tex(), die unseren Formatanbieter als Argument benötigt und das Format über den „jungfräulichen“ Zustand der Engine lädt.
Der verbleibende Code sollte Ihnen bekannt sein, da er die Funktionen nutzt, die zuvor in diesem Leitfaden besprochen wurden.
Textsatz einer TeX-Datei im Plain-TeX-Format
Wenn wir den Formatanbieter aus dem oben gezeigten Code entfernen, lädt die Engine das Standardformat, das im vierten Sinne Object TeX ist. Wenn Sie also eine TeX-Datei im Plain-TeX-Format geschrieben haben, können Sie sie mit diesem Ansatz in jedes unterstützte Zielformat konvertieren.