Wie konvertiere ich .tex in .odt?

43

Ich möchte eine .tex-Datei in eine .odt-Datei konvertieren.
Können Sie eine gute schrittweise Lösung vorschlagen?

Tal Galili
quelle
3
@ Naruto: Ich nehme an, es ist ein LaTeX-Dokument.
Nathan Osman
4
Beachten Sie Folgendes für alle Antworten: Ihre Erfolgsquote hängt von den verwendeten Latex-Paketen ab, und Mathematik wird niemals so gut geschrieben wie in Latex.
David LeBauer

Antworten:

20

Ob Sie es glauben oder nicht, mit komplexen Dokumenten und vielen enthaltenen Paketen habe ich mit LaTeX2HTML viel bessere Ergebnisse erzielt als mit LaTeX2RTF, Pandoc oder TeX4ht.

latex2html texfile.tex -split 0 -no_navigation -info "" -address "" -html_version 4.0,unicode

Dadurch wird ein Ordner mit demselben texfileNamen generiert , sodass Sie den generierten HTML-Code in ODT konvertieren können:

libreoffice --headless --convert-to odt:"OpenDocument Text Flat XML" texfile/index.html

Dies erzeugt eine index.odtDatei. In dieser Antwort erfahren Sie, wie Sie die Konvertierungsfilter von LibreOffice verwenden.

Bearbeiten von Kommentardiskussion:

Obwohl die oben beschriebene Methode funktioniert, ist es sehr enttäuschend, dass ich nur mit der PDF-Ausgabe von LaTeX unter Adobe Acrobat Pro ein absolut zuverlässiges Dokument erstellen konnte.

vmassuchetto
quelle
1
Bei komplexen Dokumenten mit vielen zusätzlichen Paketen, Dateien und Befehlen schlägt LaTeX2HTML fehl. Ich versuche meine Arbeit in HTML und dann in ODT umzuwandeln, um sie jemandem zukommen zu lassen, der mit LaTeX nicht vertraut ist. Auch ohne benutzerdefinierte Befehle schlägt dieses Tool fehl. Tikz-Paket aus irgendeinem Grund ist einer der Hauptschuldigen.
rbaleksandar
Es gibt keine ideale Lösung @rbaleksandar, insbesondere abhängig von den Paketen, die Sie verwenden. Ich würde Pandoc für Sie vorschlagen. Es werden nicht alle Formate beibehalten, aber es kann zumindest einige Strukturen ignorieren und ein endgültiges Dokument erstellen.
Vmassuchetto
Funktioniert nicht mit Seitenumbrüchen.
Hallo-Engel
Dokumente sind mit den in dieser Frage vorgestellten Lösungen niemals perfekt. Es ist sehr enttäuschend, dass die einzige Möglichkeit, ein perfektes Dokument zu erstellen, die Verwendung der PDF-Ausgabe von LaTeX mit Adobe Acrobat Pro ist.
Vmassuchetto
Dieser Befehl gab mir Unsinn HTML und Unsinn ODT. Pandoc war viel besser.
Jdpipe
25

In den Repositories gibt es ein Tool, das LaTeX in das XML-Format von openoffice.org ändert: tex4ht Installieren Sie tex4ht

TeX4ht ist ein hoch konfigurierbares, auf TeX basierendes Autorensystem zur Erzeugung von Hypertext. Es interagiert mit TeX-basierten Anwendungen über Stildateien und Postprozessoren und überlässt die Verarbeitung der Quelldateien dem nativen TeX-Compiler. Folglich kann TeX4ht die Funktionen von TeX-basierten Systemen im Allgemeinen und von LaTeX im Besonderen verarbeiten.

TeX4ht kann sowohl zum Verfassen von HTML mit TeX / LaTeX-Eingabedateien als auch zum Konvertieren vorhandener TeX-Eingabedateien (in einem beliebigen Format) in HTML mit (normalerweise) nur geringfügigen Änderungen verwendet werden. Es können auch andere Arten von Hypertext erzeugt werden, einschließlich XML, XHTML, MathML und das Openoffice.org-Format von XML.

Befehlszeile...

  1. latex filename.tex
  2. bibtex filename.aux
  3. mk4ht oolatex filename.tex

Sollte mit einer openoffice.org/libreoffice kompatiblen Datei enden.

Rinzwind
quelle
2
Danke. Übrigens scheint der Hauptbetreuer des Pakets vor zwei Jahren leider verstorben zu sein.
Tal Galili
2
verdammt, das ist schade :(
Rinzwind
Ich stimme zu - ich wünschte, eine aktivere Community hätte es sich zur Aufgabe gemacht, diese Arbeit fortzusetzen ...
Tal Galili,
+1 für Befehlszeilenbeispiel. Ich hatte keine Zeit, die Dokumentation zu lesen, aber das obige Beispiel ist recht einfach zu befolgen.
antmw1361
Funktioniert nicht mit Seitenumbrüchen.
Hallo-Engel
18

Eine weitere Lösung bietet das Paket pandoc Installieren Sie Pandoc

Als Beispiel können Sie Folgendes tun:

pandoc -f latex -t odt -o output.odt input.tex

Wenn die Eingabedatei latin1wie meine Tex-Dateien codiert ist, lautet die Lösung:

iconv -f ISO-8859-1 input.tex | pandoc -f latex -t odt -o output.odt

Ich melde einen Teil der Beschreibung des Pakets:

Pandoc ist eine Haskell-Bibliothek zum Konvertieren von einem Markup-Format in ein anderes und ein Befehlszeilentool, das diese Bibliothek verwendet. Es kann lesen

  • Abschlag und
  • Teilmengen von
    • reStructuredText,
    • HTML und
    • Latex

und es kann schreiben

  • einfacher text,
  • abschlag,
  • reStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT ,
  • GNU Texinfo,
  • MediaWiki-Markup,
  • EPUB,
  • Textil,
  • groff manpages,
  • Emacs Org-Modus und
  • Rutschig oder
  • S5 HTML-Diashows.
Enzotib
quelle
Mindestens Version 1.14.0.4 funktioniert nicht mit Seitenumbrüchen.
Hallo-Engel
Dieser funktionierte ziemlich gut für mich ... Ich habe Zahlen, Überschriften, aber keine Bibliographie und unterschiedlich verwechselte Gleichungen / Symbole. Aber zumindest bekam ich schnell einen Text, mit dem ich manuell aufräumen konnte.
Jdpipe
8

Dies kann in 2 Schritten erfolgen. Gehen Sie zu http://latex2rtf.sourceforge.net/ und verwenden Sie die bereitgestellten Tools, um zuerst von Latex nach RTF und dann von RTF nach ODT zu konvertieren.

Ich hoffe es hilft.

Cormite
quelle
Funktioniert überhaupt nicht 😂 Beim minimalen Beispiel hing es für eine Minute mit 100% CPU-Auslastung. Ich glaube nicht, dass es jemals die Arbeit beenden würde, also unterbrach ich es.
Hallo-Engel
Okay, ich habe es geschafft zu arbeiten - vielleicht funktioniert es nicht gut mit Makros - und festgestellt, dass es zB auch nicht mit einem Inhaltsverzeichnis funktioniert. Also nein, keine Option.
Hallo-Engel
6

Wenn Sie das Paket tex4ht Installieren Sie tex4ht installiert haben, oolatex filenamekonvertiert der Befehl die .tex in .odt (weitere Informationen zu tex4ht finden Sie hier ).

Eine andere Möglichkeit wäre das latex2rtf- Installiere latex2rtf Paket, das RTF als Zwischenformat verwendet.

tohuwawohu
quelle
Oh - Entschuldigung, habe die anderen Antworten nicht gesehen ...
tohuwawohu
Kein Problem, da Sie einen Link zu latex2rtf hinzugefügt haben und dieser in keiner der
beiden