Andere TeX-Konvertierungsausgabeformate | C++

Es ist höchst unwahrscheinlich, dass Sie derzeit eine TeX-Datei konvertieren möchten, die in einem anderen Format als LaTeX geschrieben ist. Dies ist jedoch aus irgendeinem Grund möglich, wenn Sie die TeX-Sprache und/oder Interna studieren. Wie auch immer, Aspose.TeX für C++ ermöglicht Ihnen die Konvertierung von Dateien, die im einfachen TeX-Format geschrieben wurden. Sie können damit auch benutzerdefinierte Formate erstellen und in diesen Formaten gestaltete Dokumente setzen.

Wir beginnen mit der Erstellung eines benutzerdefinierten Formats.

Erstellen eines benutzerdefinierten Formats

Denken Sie daran, dass die Formatdatei ein binärer Speicherauszug des internen Zustands der TeX-Engine ist.

 1// Create typesetting options for no format on ObjectTeX engine extension.
 2System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::get_ObjectIniTeX());
 3// Specify a file system working directory for input.
 4options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(RunExamples::InputDirectory));
 5// Specify a file system working directory for output.
 6options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));
 7    
 8// Run format creation.
 9Aspose::TeX::TeXJob::CreateFormat(u"customtex", options);
10    
11// For further output to look write.
12options->get_TerminalOut()->get_Writer()->WriteLine();

Wie Sie sehen, ähnelt der Code dem Code zum Konvertieren einer TeX-Datei. Aber es gibt ein paar Unterschiede.

Zunächst verwenden wir hier die Jobkonfiguration TeXConfig.ObjectIniTeX. Dies ist eine spezielle Konfiguration, die den Zustand der Engine „unberührt“ belässt, d. h. die internen Parameter haben ihre Standardwerte und der Satz von Steuersequenzen stimmt mit dem Satz von Grundelementen überein. In unserem Beispiel wird die Menge der Grundelemente in dem hier erwähnten Sinne erweitert.

Als nächstes richten wir wie gewohnt die Eingabe- und Ausgabearbeitsverzeichnisse ein. Das Eingabearbeitsverzeichnis muss die Hauptformatquelldatei und alle ihre Abhängigkeiten enthalten.

Und der zweite wesentliche Unterschied ist die Art und Weise, wie wir den Job ausführen. Dieses Mal verwenden wir die statische Methode CreateFormat(), die zusammen mit den Optionen den Namen der Hauptquelldatei übernimmt, der mit dem Formatnamen identisch sein muss.

Textsatz einer TeX-Datei in Ihrem benutzerdefinierten Format

Da wir nun über unser eigenes TeX-Format verfügen, möchten wir eine in diesem Format geschriebene TeX-Datei setzen. Hier ist der Code:

 1// Create typesetting options for a custom format on ObjectTeX engine extension.
 2System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
 3options->set_JobName(u"typeset-with-custom-format");
 4// Specify the input working directory.
 5options->set_InputWorkingDirectory(wd);
 6// Specify a file system working directory for output.
 7options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));
 8            
 9// Run typesetting.
10System::MakeObject<Aspose::TeX::TeXJob>(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<XpsDevice>(), options)->Run();
11            
12// For further output to look write.
13options->get_TerminalOut()->get_Writer()->WriteLine();

Natürlich müssen wir das Format irgendwie festlegen. Zunächst müssen wir eine Instanz der Klasse FormatProvider erstellen. Dann verwenden wir im Optionskonstruktor die Konfiguration TeXConfig.ObjectTeX(), die unseren Formatanbieter als Argument verwendet und das Format über den „jungfräulichen“ Zustand der Engine lädt.

Der Rest des Codes sollte Ihnen bekannt sein. Es nutzt die zuvor in diesem Leitfaden besprochenen Funktionen.

Textsatz einer TeX-Datei im Plain-TeX-Format

Wenn wir den Formatanbieter aus dem gerade gezeigten Code weglassen, lädt die Engine das Standardformat, das im vierten Sinne Object TeX ist. Wenn Sie also eine TeX-Datei im einfachen TeX-Format geschrieben haben, können Sie sie auf diese Weise in jedes unterstützte Zielformat konvertieren.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.