Jak przekonwertować .tex na .odt?

43

Chcę przekonwertować plik .tex na plik .odt.
Czy możesz zasugerować dobre rozwiązanie krok po kroku?

Tal Galili
źródło
3
@ Naruto: Zakładam, że jest to dokument LaTeX.
Nathan Osman
4
Zauważ, że dla wszystkich odpowiedzi poniżej: twój wskaźnik sukcesu będzie zależeć od użytych pakietów lateksu, a matematyka nigdy nie będzie tak ładnie składana jak w lateksie.
David LeBauer

Odpowiedzi:

20

Wierzcie lub nie, ale ze złożonymi dokumentami i dużą ilością pakietów, uzyskałem znacznie lepsze wyniki z LaTeX2HTML niż z LaTeX2RTF, Pandoc lub TeX4ht.

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

Spowoduje to wygenerowanie folderu o tej samej texfilenazwie, dzięki czemu będziesz mógł przekonwertować wygenerowany kod HTML na format ODT:

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

Spowoduje to utworzenie index.odtpliku. Spójrz na tę odpowiedź, aby sprawdzić, jak korzystać z filtrów konwersji LibreOffice.

Edytuj z dyskusji na komentarzach:

Chociaż powyższa metoda działa, to jest bardzo rozczarowujące, że jedynym sposobem, w jaki udało mi się wygenerować prawdziwie niezawodny dokument, jest użycie pliku wyjściowego PDF z LaTeX na Adobe Acrobat Pro.

vmassuchetto
źródło
1
W przypadku złożonych dokumentów z dużą ilością dodatkowych pakietów, plików i poleceń LaTeX2HTML zawodzi. Próbuję przekonwertować moją tezę na HTML, a następnie na ODT, aby przekazać ją komuś do komentowania i korekty, który nie zna LaTeXa. Nawet bez niestandardowych poleceń to narzędzie zawiedzie. Pakiet Tikz z jakiegoś powodu jest jednym z głównych winowajców.
rbaleksandar
Nie ma idealnego rozwiązania @rbaleksandar, szczególnie w zależności od używanych pakietów. Proponuję dla ciebie Pandoc. Nie zachowa wszystkich formatów, ale jest w stanie zignorować niektóre struktury i zbudować przynajmniej końcowy dokument.
vmassuchetto
Nie działa z łamami stron.
Hi-Angel,
Dokumenty nigdy nie są idealne z przedstawionymi rozwiązaniami w tym pytaniu. To bardzo rozczarowujące, że jedynym sposobem, w jaki udało mi się wygenerować idealny dokument, jest użycie pliku PDF z LaTeX-a z Adobe Acrobat Pro.
vmassuchetto,
To polecenie dało mi nonsensowny HTML i nonsensowny ODT. Pandoc był znacznie lepszy.
jdpipe,
25

W repozytoriach znajduje się narzędzie, które zmienia LaTeX na format XML openoffice.org: tex4ht Zainstaluj tex4ht

TeX4ht to wysoce konfigurowalny system tworzenia treści oparty na TeXie do tworzenia hipertekstu. Współdziała z aplikacjami opartymi na TeXie poprzez pliki stylów i postprocesory, pozostawiając przetwarzanie plików źródłowych natywnemu kompilatorowi TeX. W konsekwencji TeX4ht może obsługiwać funkcje systemów opartych na TeX w ogóle, a zwłaszcza LaTeX.

TeX4ht może być używany zarówno do tworzenia HTML przy użyciu plików wejściowych TeX / LaTeX, jak i do konwertowania istniejących plików wejściowych TeX (w dowolnym formacie) na HTML, z (zwykle) jedynie niewielkimi modyfikacjami. Można również tworzyć inne odmiany hipertekstu, w tym XML, XHTML, MathML i format XML Openoffice.org.

Wiersz poleceń...

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

Powinien skończyć się plikiem kompatybilnym z openoffice.org/libreoffice.

Rinzwind
źródło
2
Dziękuję Ci. BTW, wygląda na to, że główny opiekun pakietu zmarł niestety dwa lata temu.
Tal Galili,
2
cholera, szkoda :(
Rinzwind,
Zgadzam się - chciałbym, aby bardziej aktywna społeczność podjęła się kontynuowania tej pracy ...
Tal Galili
+1 dla przykładu wiersza poleceń. Nie miałem czasu na zapoznanie się z dokumentacją, ale powyższy przykład jest dość łatwy do naśladowania.
antmw1361
Nie działa z łamami stron.
Cześć Angel
18

Innym rozwiązaniem jest pakiet pandoc Zainstaluj pandoc

Jako przykład możesz wykonać:

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

Jeśli plik wejściowy jest latin1zakodowany, podobnie jak moje pliki tex, rozwiązaniem jest:

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

Zgłaszam część opisu pakietu:

Pandoc to biblioteka Haskell do konwersji z jednego formatu znaczników na inny oraz narzędzie wiersza poleceń, które korzysta z tej biblioteki. Potrafi czytać

  • obniżka i
  • podzbiory z
    • reStructuredText,
    • HTML i
    • Lateks

i umie pisać

  • zwykły tekst,
  • obniżka cen,
  • reStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT ,
  • GNU Texinfo,
  • Znaczniki MediaWiki,
  • EPUB,
  • Włókienniczy,
  • strony man groffa,
  • Emacs Org-mode i
  • Slidy lub
  • Pokazy slajdów S5 HTML.
enzotib
źródło
Przynajmniej wersja 1.14.0.4 nie działa z łamami stron.
Hi-Angel,
Ten działał dla mnie całkiem nieźle ... Mam rysunki, nagłówki, ale nie mam bibliografii i różnie pomieszane równania / symbole. Ale przynajmniej szybko dostałem trochę tekstu, który mógłbym zacząć czyścić ręcznie.
jdpipe
8

Można to zrobić w 2 krokach. Wejdź na http://latex2rtf.sourceforge.net/ i użyj dostarczonych narzędzi do konwersji najpierw z Latex na RTF, a następnie z RTF na ODT.

Mam nadzieję, że to pomoże.

Cormite
źródło
W ogóle nie działa 😂 Przy minimalnym przykładzie wisiał przez minutę przy 100% zużyciu procesora. Nie sądzę, żeby to kiedykolwiek zakończyło pracę, więc przerwałam.
Hi-Angel,
Ok, udało mi się to działać - być może nie działa dobrze z makrami - i odkryłem, że nie działa również np. Ze spisem treści. Więc nie, nie ma opcji.
Hi-Angel,
6

Jeśli masz zainstalowany pakiet tex4ht Zainstaluj tex4ht , polecenie oolatex filenamekonwertuje .tex na .odt (więcej na temat tex4ht, patrz tutaj ).

Innym sposobem byłby pakiet latex2rtf Zainstaluj latex2rtf , wykorzystujący RTF jako format pośredni.

tohuwawohu
źródło
och - przepraszam, nie widziałem innych odpowiedzi ...
tohuwawohu,
Nie ma problemu, ponieważ dodałeś link do latex2rtf i nie było to w żadnej z pozostałych 2 odpowiedzi;)
Rinzwind