Comment convertir un fichier .tex en fichier .odt?


43

Je souhaite convertir un fichier .tex en un fichier .odt.
Pouvez-vous suggérer une bonne solution étape par étape?


3
@Naruto: Je suppose que c'est un document LaTeX.
Nathan Osman

4
Notez que pour toutes les réponses ci-dessous: votre taux de réussite dépendra des packages latex utilisés, et les mathématiques ne seront jamais aussi bien composées que dans latex.
David LeBauer

Réponses:


20

Croyez-le ou non, avec des documents complexes et de nombreux packages inclus, j'ai obtenu de bien meilleurs résultats avec LaTeX2HTML qu'avec LaTeX2RTF, Pandoc ou TeX4ht.

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

Cela générera un dossier du même texfilenom, vous pourrez donc convertir le code HTML généré en ODT:

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

Cela produira un index.odtfichier. Jetez un coup d'œil à cette réponse pour savoir comment utiliser les filtres de conversion de LibreOffice.

Modifier de la discussion de commentaire:

Bien que la méthode ci-dessus fonctionne, il est très décevant que la seule façon pour moi de générer un document réellement fiable consiste à utiliser la sortie PDF de LaTeX sur Adobe Acrobat Pro.


1
LaTeX2HTML échoue pour les documents complexes comportant de nombreux packages, fichiers et commandes supplémentaires. J'essaie de convertir ma thèse en HTML et ensuite en ODT afin de la transmettre à quelqu'un pour commentaires et corrections, qui n'est pas familier avec LaTeX. Même sans commandes personnalisées, cet outil échoue. Le paquet Tikz pour une raison quelconque est l’un des principaux coupables.
rbaleksandar

Il n'y a pas de solution idéale @rbaleksandar, spécialement en fonction des packages que vous utilisez. Je suggérerais Pandoc pour vous. Il ne conservera pas tous les formats, mais il est capable d'ignorer certaines structures et de construire un document final, au moins.
vmassuchetto

Ne fonctionne pas avec les sauts de page.
Hi-Angel

Les documents ne sont jamais parfaits avec les solutions présentées dans cette question. Il est très décevant que la seule façon pour moi de générer un document parfait consiste à utiliser la sortie PDF de LaTeX avec Adobe Acrobat Pro.
vmassuchetto

Cette commande m'a donné un HTML non-sens, et un non-sens ODT. Pandoc était beaucoup mieux.
jdpipe

25

Il existe un outil dans les référentiels qui modifie LaTeX en format XML d'openoffice.org: tex4ht Installez tex4ht

TeX4ht est un système de création basé sur TeX hautement configurable pour la production d'hypertexte. Il interagit avec les applications basées sur TeX via des fichiers de style et des post-processeurs, laissant le traitement des fichiers source au compilateur TeX natif. Par conséquent, TeX4ht peut gérer les fonctionnalités des systèmes basés sur TeX en général, et de LaTeX en particulier.

TeX4ht peut être utilisé à la fois pour créer du HTML à l'aide de fichiers d'entrée TeX / LaTeX ou pour convertir des fichiers d'entrée TeX existants (dans n'importe quel format) en HTML, avec (en général) des modifications mineures. D'autres variétés d'hypertexte peuvent également être produites, notamment XML, XHTML, MathML et le format XML Openoffice.org.

Ligne de commande...

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

Devrait se retrouver avec un fichier compatible openoffice.org/libreoffice.


2
Merci. BTW, il semble que le principal responsable du paquet est malheureusement décédé il y a deux ans.
Tal Galili

2
putain c'est dommage :(
Rinzwind

Je suis d'accord - je souhaite qu'une communauté plus active se soit engagée à poursuivre ce travail ...
Tal Galili

+1 pour un exemple de ligne de commande. Je n’ai pas eu le temps de lire la documentation, mais l’exemple ci-dessus est assez facile à suivre.
Antmw1361

Ne fonctionne pas avec les sauts de page.
Bonjour Angel

18

Une autre solution est fournie par le paquet pandoc Installer pandoc

A titre d'exemple, vous pouvez faire:

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

Si le fichier d'entrée est latin1codé, comme mes fichiers tex, la solution est:

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

Je rapporte une partie de la description du paquet:

Pandoc est une bibliothèque Haskell pour la conversion d'un format de balisage en un autre, ainsi qu'un outil de ligne de commande qui utilise cette bibliothèque. Il peut lire

  • démarque et
  • des sous-ensembles de
    • reStructuredText,
    • HTML et
    • Latex

et il peut écrire

  • texte brut,
  • réduction,
  • reStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT ,
  • GNU Texinfo,
  • Balise MediaWiki,
  • EPUB,
  • Textile,
  • pages de manuel groff,
  • Emacs Org-mode, et
  • Glissant ou
  • Diaporamas HTML S5.

Au moins la version 1.14.0.4 ne fonctionne pas avec les sauts de page.
Bonjour Angel

Celui-ci a plutôt bien fonctionné pour moi ... J'ai des chiffres, des en-têtes mais pas de bibliographie, et des équations / symboles diversement mélangés. Mais au moins, j’ai rapidement obtenu un texte que je pourrais commencer à nettoyer manuellement.
jdpipe

8

Cela peut être fait en 2 étapes. Rendez-vous sur http://latex2rtf.sourceforge.net/ et utilisez les outils fournis pour convertir tout d'abord Latex en RTF, puis de RTF en ODT.

J'espère que ça aide.


Ne fonctionne pas du tout 😂 Avec l'exemple minimal, il était suspendu pendant une minute avec une utilisation du processeur à 100%. Je ne pense pas que cela finirait jamais le travail, alors je l'ai interrompu.
Hi-Angel

OK, j’ai réussi à le faire fonctionner - peut-être que cela ne fonctionne pas bien avec les macros - et j’ai constaté que cela ne fonctionnait pas non plus, par exemple, avec une table des matières. Donc non, pas une option.
Hi-Angel

6

Si le paquet tex4ht est Installez tex4ht installé, la commande oolatex filenameconvertit le fichier .tex en fichier .odt (pour plus d'informations sur tex4ht, voir ici ).

Une autre solution serait le package latex2rtf Installez latex2rtf , utilisant RTF comme format intermédiaire.


oh - désolé, je n'ai pas vu les autres réponses ...
tohuwawohu

Pas de problème depuis que vous avez ajouté un lien vers latex2rtf et qui ne figurait dans aucune des 2 autres réponses;)
Rinzwind
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.