Come convertire .tex in .odt?


43

Vorrei convertire un file .tex in un file .odt.
Puoi suggerire una buona soluzione passo-passo?


3
@Naruto: suppongo sia un documento LaTeX.
Nathan Osman,

4
Nota che per tutte le risposte di seguito: il tuo tasso di successo dipenderà dai pacchetti di lattice utilizzati e la matematica non sarà mai composta così bene come in lattice.
David LeBauer,

Risposte:


20

Che ci crediate o no, con documenti complessi e molti pacchetti inclusi, ho ottenuto risultati molto migliori con LaTeX2HTML che con LaTeX2RTF, Pandoc o TeX4ht.

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

Questo genererà una cartella con lo stesso texfilenome, quindi sarai in grado di convertire l'HTML generato in ODT:

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

Questo produrrà un index.odtfile. Dai un'occhiata a questa risposta per verificare come utilizzare i filtri di conversione di LibreOffice.

Modifica dalla discussione di commento:

Sebbene il metodo sopra descritto funzioni, è molto deludente che l'unico modo in cui ho scoperto di generare un documento veramente affidabile sia utilizzare l'output PDF di LaTeX su Adobe Acrobat Pro.


1
Per documenti complessi con molti pacchetti, file e comandi aggiuntivi LaTeX2HTML ha esito negativo. Sto cercando di convertire la mia tesi in HTML e non in ODT per darla a qualcuno per commenti e correzioni, che non ha familiarità con LaTeX. Anche senza comandi personalizzati questo strumento fallisce. Il pacchetto Tikz per qualche motivo è uno dei principali colpevoli.
rbaleksandar,

Non esiste una soluzione ideale @rbaleksandar, specialmente a seconda dei pacchetti che stai usando. Vorrei suggerire Pandoc per te. Non manterrà tutti i formati, ma è in grado di ignorare alcune strutture e costruire almeno un documento finale.
vmassuchetto,

Non funziona con le interruzioni di pagina.
Hi-Angel,

I documenti non sono mai perfetti con le soluzioni presentate in questa domanda. È molto deludente che l'unico modo in cui ho scoperto di generare un documento perfetto sia utilizzare l'output PDF di LaTeX con Adobe Acrobat Pro.
vmassuchetto,

Questo comando mi ha dato HTML senza senso e ODT senza senso. Pandoc era molto meglio.
jdpipe,

25

C'è uno strumento nei repository che cambia LaTeX nel formato XML di openoffice.org: tex4ht Installa tex4ht

TeX4ht è un sistema di authoring basato su TeX altamente configurabile per la produzione di ipertesti. Interagisce con le applicazioni basate su TeX tramite file di stile e postprocessor, lasciando l'elaborazione dei file di origine al compilatore TeX nativo. Di conseguenza, TeX4ht è in grado di gestire le funzionalità dei sistemi basati su TeX in generale e di LaTeX in particolare.

TeX4ht può essere utilizzato sia per la creazione di HTML mediante file di input TeX / LaTeX, sia per la conversione di file di input TeX esistenti (in qualsiasi formato) in HTML, con (di solito) solo modifiche minori. Altre varietà di ipertesto possono anche essere prodotte, tra cui XML, XHTML, MathML e il formato XML di Openoffice.org.

Riga di comando...

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

Dovrebbe finire con un file compatibile con openoffice.org/libreoffice.


2
Grazie. A proposito, sembra che il principale manutentore del pacchetto sia purtroppo morto due anni fa.
Tal Galili,

2
accidenti è un peccato :(
Rinzwind

Sono d'accordo - vorrei che una comunità più attiva si fosse presa la responsabilità di continuare questo lavoro ...
Tal Galili,

+1 per esempio da riga di comando. Non ho avuto il tempo di leggere la documentazione, ma l'esempio sopra è abbastanza facile da seguire.
antmw1361,

Non funziona con le interruzioni di pagina.
Hi-Angel,

18

Un'altra soluzione è fornita dal pacchetto pandoc Installa Pandand

Ad esempio, puoi fare:

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

Se il file di input è latin1codificato, come i miei file tex, la soluzione è:

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

Riporto parte della descrizione del pacchetto:

Pandoc è una libreria Haskell per la conversione da un formato di markup a un altro e uno strumento da riga di comando che utilizza questa libreria. Sa leggere

  • markdown e
  • sottoinsiemi di
    • reStructuredText,
    • HTML e
    • LaTeX

e sa scrivere

  • testo semplice,
  • markdown,
  • reStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT ,
  • GNU Texinfo,
  • Markup MediaWiki,
  • EPUB,
  • Tessile,
  • pagine man di groff,
  • Emacs Org-mode e
  • Slidy o
  • Presentazioni HTML S5.

Almeno la versione 1.14.0.4 non funziona con le interruzioni di pagina.
Hi-Angel,

Questo ha funzionato abbastanza bene per me ... Ho ottenuto cifre, titoli ma nessuna bibliografia e equazioni / simboli variamente confusi. Ma almeno ho ricevuto rapidamente del testo che potevo iniziare a ripulire manualmente.
jdpipe,

8

Può essere fatto in 2 passaggi. Vai su http://latex2rtf.sourceforge.net/ e usa gli strumenti forniti per convertire prima da Latex a RTF e poi da RTF a ODT.

Spero che sia d'aiuto.


Non funziona affatto 😂 Con l'esempio minimo è rimasto sospeso per un minuto con un utilizzo della CPU del 100%. Non penso che finirebbe mai il lavoro, quindi l'ho interrotto.
Hi-Angel,

Ok, sono riuscito a farlo funzionare - forse non funziona bene con le macro - e ho scoperto che non funziona, ad esempio, con un sommario. Quindi no, non un'opzione.
Hi-Angel,

6

Se hai installato il pacchetto tex4ht Installa tex4ht , il comando oolatex filenameconverte .tex in .odt (per ulteriori informazioni su tex4ht, vedi qui ).

Un altro modo sarebbe il pacchetto latex2rtf Installa latex2rtf , usando RTF come formato intermedio.


oh - scusa, non ho visto le altre risposte ...
tohuwawohu,

Non è un problema dato che hai aggiunto un link a latex2rtf e che non era presente in nessuna delle altre 2 risposte;)
Rinzwind
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.