(grobe) Konvertierung zu OpenDocument/RTF/...

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

(grobe) Konvertierung zu OpenDocument/RTF/...

Beitrag von MoonKid »

Das Thema hatte ich in ähnlicher Form schon mal angesprochen und bisher keine akzeptable Lösung gefunden. Daher möchte ich mein Problem hier nochmal darstellen und bitte um eure eigenen Erfahrungsberichte.
Vermutlich bin ich ja nicht der erste und einzige, der vor so einer Aufgabe steht. Oder doch?!

Ich möchte ein *TeX-Dokument in ein Format überführen, mit dem auch Word-User/DAUs etwas anfangen können. Mir schwebt hier RTF als kleinste Untermenge vor. ODT wäre auch geil. Ggf. liese sich ja ein RTF mit LibreOffice in ODT konvertieren.

Es geht nur um den Inhalt, nicht um Layout! Tabellen, Grafiken, Literatur und sonstiges Gedöns kann ignoriert werden bzw. befindet sich gar nicht im Dokument. Stellt euch einfach nur Fließtext und ein paar \section Makros vor.

Ein einfaches Copy&Paste funktioniert nicht, weil dabei die Zeilenumbrüche in der tex-Datei als Absatzmarken in LibreOffice interpretiert werden.
Auch Lösungen mit Pandoc arbeiten nicht nachvollziehbar in dieser stupiden Form. Jede TeX-Zeile wird hier zu einem eigenen Absatz in einem RTF/ODT Dokument.

Dieser Zeilenumbruch ist das Hauptproblem.

Wie geht hier mit solchen Situationen um?[/b]
XeLaTeX, TeX Live, vim-latexsuite

Noch so einer

Beitrag von Noch so einer »

tex4ht oder latex2html. Ersteres kann nicht nur HTML, sondern u. a. auch OpenDocument oder DocBook. Seit es Grundlage für tex4ebook ist, wird es auch wieder aktiv weiterentwickelt und der Maintainer (von beiden) reagiert auch sehr freundlich bei qualifizierten Support-Anfragen.

Beide Programme haben nur mit allzu trickreichem LaTeX-Code ein Problem. Normale, sauber gebaute LaTeX-Dokumente können beide umwandeln, insbesondere, wenn kein Wert auf Form, Tabellen etc. gelegt wird.

Wenn ich nur den Text brauche, dann kopiere ich allerdings normalerweise einfach den Text aus dem Editor. Die paar Befehle sind mit Suchen/Ersetzen oder notfalls detex meist leicht zu entfernen.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Noch so einer hat geschrieben:tex4ht
Laut CTAN obsolete und ich finde in der Doku auch nix zu OpenDocument. Hab ich was falsch verstanden?
Noch so einer hat geschrieben:Wenn ich nur den Text brauche, dann kopiere ich allerdings normalerweise einfach den Text aus dem Editor. Die paar Befehle sind mit Suchen/Ersetzen oder notfalls detex meist leicht zu entfernen.
Was machst du mit den Zeilenumbrüchen? Suchen und Ersetzen? Wo bleiben die Absätze?

Definitiv zuviel Arbeit! Das ist simple Logik, welche auch die Maschiene machen könnte. Ok, ist halt ne Einstellungssache. ;)
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

detex behandelt auch keine Zeilenumbrüche korrekt.
XeLaTeX, TeX Live, vim-latexsuite

Noch so einer

Beitrag von Noch so einer »

MoonKid hat geschrieben:
Noch so einer hat geschrieben:tex4ht
Laut CTAN obsolete und ich finde in der Doku auch nix zu OpenDocument. Hab ich was falsch verstanden?
Die Version auf CTAN ist nicht mehr aktuell und deshalb obsolete. Die Version in TeX Live ist beispielsweise deutlich neuer. Eine aktuelle Version findet sich unter http://svn.gnu.org.ua/viewvc/tex4ht/trunk/.

Aber auch mit der Version von TeX Live 2016 bekommt man beispielsweise aus dem Minimalbeispiel:
\documentclass{article}

\usepackage{mwe}

\begin{document}
\blinddocument

\blindtext

\blindtext
\end{document}
mit dem in der Anleitung (siehe texdoc tex4ht) dokumentierten Befehl: mk4ht oolatex test.tex, ein einwandfreies test.odt mit korrekten Absätzen.

AFAIR gab es schon vor Jahren einen DTK-Artikel dazu.
MoonKid hat geschrieben:detex behandelt auch keine Zeilenumbrüche korrekt.
Fragt sich, wer die Zeilenumbrüche nicht korrekt behandelt. Wenn nur Leerzeilen zu Absätzen werden sollen, dann schreib Dir doch ein kurzes perl-Skript, das alle einzelnen Zeilenumbrüche durch einzelne Leerzeichen ersetzt und nur Mehrfachzeilenumbrüche als einzelnen Zeilenumbruch erhält. Statt perl geht das vermutlich auch mit awk oder sed. Es wäre eventuell auch die Gelegenheit in Lua einzusteigen. Das bekommt man in Form von texlua ja quasi als kostenlose Beigabe zu jeder TeX-Distribution.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Ich werde es mir sparen BugReports zum Thema usability und schlechter Doku zu schreiben - wird eh immer abgeschmettert.
Noch so einer hat geschrieben:Die Version auf CTAN ist nicht mehr aktuell und deshalb obsolete. Die Version in TeX Live ist beispielsweise deutlich neuer. Eine aktuelle Version findet sich unter http://svn.gnu.org.ua/viewvc/tex4ht/trunk/.
...
mit dem in der Anleitung (siehe texdoc tex4ht) dokumentierten Befehl: mk4ht oolatex test.tex, ein
Nach meinen Infos basiert TeXLive auf CTAN. Mir war nicht bewusst, dass es (abgesehen von git-repositories) etwas "frischeres" als CTAN geben kann.

Den Befehl, den du beschreibst, ist nicht dokumentiert. "mk4ht" wird nirgends erwähnt. "htlatex" existiert als eigenes binary und kann per bash aufgerufen werden. "oolatex" ist nicth existent. Das muss mit "mk4ht" aufgerufen werden, was aber nicht dokumentiert ist. Sehr verwirrend und inkonsistent!
Btw: "texdoc tex4ht" (auf gerade aktualiserten TexLive 2016) führt zu "file:///usr/local/texlive/2016/texmf-dist/doc/generic/tex4ht/mn.html".

Es scheint auch nicht mit XeTeX zu funktionieren, sondern nur mit LaTeX - daher für mich wertlos.

html2latex ist ein eine gute Lösung (in Relation zu Suchen&Ersetzen). Das HTML lässt sich dann simpel in LO importieren und konvertieren.
XeLaTeX, TeX Live, vim-latexsuite

Gast

Beitrag von Gast »

Hast du jemals pandoc ausprobiert? Vielleicht funktioniert ein
pandoc test.tex -o test.odt
.

Noch so einer

Beitrag von Noch so einer »

MoonKid hat geschrieben:Den Befehl, den du beschreibst, ist nicht dokumentiert. "mk4ht" wird nirgends erwähnt.
Gewöhn Dir bitte ab zu behaupten, dass andere lügen. Es ist dokumentiert¹ (letztes Beispiel im Abschnitt).

Es gibt zu TeX4ht übrigens auch einen frei verfügbaren, kurzen TugBoat-Artikel, der auf der TeX4ht-Seite verlinkt ist. Es gibt dort u. a.auch noch Detailed description of my tex4ht setup von Nasser M. Abassi. Und natürlich kann man auch mal »LaTeX to openoffice« bei Google eingeben.
MoonKid hat geschrieben:Ich werde es mir sparen BugReports zum Thema usability und schlechter Doku zu schreiben - wird eh immer abgeschmettert.
Wenn man in diesem Stil nur konsumiert und von der kostenlosen, freiwilligen Arbeit anderer profitieren will, dann sollte man sich eher wundern, wenn man überhaupt noch Reaktionen bekommt.
MoonKid hat geschrieben:Es scheint auch nicht mit XeTeX zu funktionieren
Wo stand in Deiner Anfrage, dass es mit XeTeX funktionieren muss? Und wozu muss es mit XeTeX funktionieren, wenn es doch nur um den Text geht? Nein, ich verrate Dir jetzt nicht, wie man bei vielen Dokumenten, die eigentlich für XeLaTeX gedacht sind, hin bekommt, dass es trotzdem geht. Recherchiere das einfach einmal selbst! Ich finde Dein Verhalten und Deinen Stil nämlich einfach nur unmöglich! Es ist nicht leicht, mich derart zum Platzen zu bekommen, aber Du schaffst das immer wieder und dieses Mal sollst Du das auch wissen!

1 Ich habe hier extra nicht die Version der Doku aus dem Repository, sondern die Version, die auch auch TeX Live beiliegt, gewählt.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Noch so einer hat geschrieben:
MoonKid hat geschrieben:Den Befehl, den du beschreibst, ist nicht dokumentiert. "mk4ht" wird nirgends erwähnt.
Gewöhn Dir bitte ab zu behaupten, dass andere lügen. Es ist dokumentiert¹ (letztes Beispiel im Abschnitt).
Das mit der "Lüge" ist deine Interpretation.
texdoc macht eine HTML-Seite auf, was an sich schon untypisch ist. Dort auf der Seite ist der IMO essentielle Aufruf nicht dokumentiert. Man müsste sich "durchklicken" - was Lebenszeitverschwendung wäre und respektlos gegenüber dem Anwender.

Eine vollständige PDF-Datei in der ich Textsuche machen könnte, hätte geholfen.

Ich kann immer wieder nur Koma und Tikz anbringen: Riesige komplexe und aufgeblähnte (im postiven Sinn!) Pakete. Die Doku dazu ist jedoch wunderschön, sehr strukturiert und holt jeden Typ von Anwender (vom Word-DAU bist zum tex-Kernel-Hacker) da ab, wo er steht. Zwei super Beispiele wie man auch den kompliziertesten Kram Oma-tauglich erklären kann.
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Anonymous hat geschrieben:Hast du jemals pandoc ausprobiert? Vielleicht funktioniert ein
pandoc test.tex -o test.odt
.
Jup, kannte ich schon. Respektiert wenigstens die Zeilenumbrüche bzw. bearbeitet diese korrekt. Kommt aber ins stolpern, wenn man eigenen Makros verwendet. Komplette sections werden ignoriert, bloss weil im ersten Absatz ein eigenes Makro drin steckt.
Es geht Text verloren, ohne Fehlermeldung oder Warnung.

Hier ist intensive Nacharbeit notwendig und Kontrolle.
XeLaTeX, TeX Live, vim-latexsuite

Antworten