¿Cómo convertir .tex a .odt?


43

Deseo convertir un archivo .tex en un archivo .odt.
¿Me puede sugerir una buena solución paso a paso?


3
@Naruto: supongo que es un documento de LaTeX.
Nathan Osman el

44
Tenga en cuenta que para todas las respuestas a continuación: su tasa de éxito dependerá de los paquetes de látex utilizados, y las matemáticas nunca se compondrán tan bien como en el látex.
David LeBauer

Respuestas:


20

Lo creas o no, con documentos complejos y muchos paquetes incluidos, obtuve resultados mucho mejores con LaTeX2HTML que con LaTeX2RTF, Pandoc o TeX4ht.

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

Esto generará una carpeta con el mismo texfilenombre, por lo que podrá convertir el HTML generado a ODT:

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

Esto producirá un index.odtarchivo. Eche un vistazo a esta respuesta para ver cómo usar los filtros de conversión de LibreOffice.

Editar de la discusión de comentarios:

Aunque el método anterior funciona, es muy decepcionante que la única forma que encontré para generar un documento verdaderamente confiable es usando la salida en PDF de LaTeX en Adobe Acrobat Pro.


1
Para documentos complejos con muchos paquetes adicionales, archivos y comandos, LaTeX2HTML falla. Estoy tratando de convertir mi tesis a HTML y luego a ODT para dársela a alguien para que haga comentarios y corrija, que no está familiarizado con LaTeX. Incluso sin comandos personalizados, esta herramienta falla. El paquete Tikz por alguna razón es uno de los principales culpables.
rbaleksandar

No existe una solución ideal @rbaleksandar, especialmente dependiendo de los paquetes que esté utilizando. Te sugeriría Pandoc para ti. No conservará todos los formatos, pero es capaz de ignorar algunas estructuras y crear un documento final, al menos.
vmassuchetto

No funciona con saltos de página.
Hola Ángel

Los documentos nunca son perfectos con las soluciones presentadas en esta pregunta. Es muy decepcionante que la única forma que encontré para generar un documento perfecto es usando la salida en PDF de LaTeX con Adobe Acrobat Pro.
vmassuchetto

Este comando me dio HTML sin sentido y ODT sin sentido. Pandoc estaba mucho mejor.
jdpipe

25

Hay una herramienta en los repositorios que cambia LaTeX al formato XML de openoffice.org: tex4ht Instalar tex4ht

TeX4ht es un sistema de autoría altamente configurable basado en TeX para producir hipertexto. Interactúa con aplicaciones basadas en TeX a través de archivos de estilo y postprocesadores, dejando el procesamiento de los archivos fuente al compilador nativo de TeX. En consecuencia, TeX4ht puede manejar las características de los sistemas basados ​​en TeX en general, y de LaTeX en particular.

TeX4ht se puede usar tanto para crear HTML usando archivos de entrada TeX / LaTeX, como para convertir archivos de entrada TeX existentes (en cualquier formato) a HTML, con (generalmente) solo modificaciones menores. También se pueden producir otras variedades de hipertexto, incluidos XML, XHTML, MathML y ​​el formato Openoffice.org de XML.

Línea de comando...

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

Debería terminar con un archivo compatible con openoffice.org/libreoffice.


2
Gracias. Por cierto, parece que el principal mantenedor del paquete ha muerto tristemente hace dos años.
Tal Galili

2
maldición, es una pena :(
Rinzwind

Estoy de acuerdo - Desearía que una comunidad más activa se hubiera encargado de continuar este trabajo ...
Tal Galili

+1 para ejemplo de línea de comando. No tuve tiempo de leer la documentación, pero el ejemplo anterior es bastante fácil de seguir.
antmw1361

No funciona con saltos de página.
Hola Angel

18

Se proporciona otra solución desde el paquete pandoc Instalar pandoc

Como ejemplo, puedes hacer:

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

Si el archivo de entrada está latin1codificado, como mis archivos tex, la solución es:

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

Reporto parte de la descripción del paquete:

Pandoc es una biblioteca de Haskell para convertir de un formato de marcado a otro, y una herramienta de línea de comandos que utiliza esta biblioteca. Puede leer

  • rebaja y
  • subconjuntos de
    • reStructuredText,
    • HTML y
    • Látex

y puede escribir

  • Texto sin formato,
  • reducción,
  • reStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT ,
  • GNU Texinfo,
  • Marcado de MediaWiki,
  • EPUB,
  • Textil,
  • páginas de manual de groff,
  • Emacs Org-mode, y
  • Resbaladizo o
  • Presentaciones de diapositivas HTML S5.

Al menos la versión 1.14.0.4 no funciona con saltos de página.
Hola Ángel

Este funcionó bastante bien para mí ... Obtuve figuras, encabezados pero no bibliografía, y ecuaciones / símbolos mezclados. Pero al menos rápidamente recibí un texto que podría comenzar a limpiar manualmente.
jdpipe

8

Se puede hacer en 2 pasos. Vaya a http://latex2rtf.sourceforge.net/ y use las herramientas proporcionadas para convertir primero de Latex a RTF y luego de RTF a ODT.

Espero eso ayude.


No funciona en absoluto 😂 Con el ejemplo mínimo, se colgó por un minuto con un uso del 100% de la CPU. No creo que alguna vez termine el trabajo, así que lo interrumpí.
Hola Angel

De acuerdo, logré que funcione, tal vez no funciona bien con macros, y descubrí que tampoco funciona, por ejemplo, con una tabla de contenido. Entonces no, no es una opción.
Hola Ángel

6

Si tiene Instalar tex4ht instalado el paquete tex4ht , el comando oolatex filenameconvierte el .tex en .odt (para obtener más información sobre tex4ht, consulte aquí ).

Otra forma sería el paquete latex2rtf Instalar latex2rtf , utilizando RTF como formato intermedio.


oh - lo siento, no he visto las otras respuestas ...
tohuwawohu

No es un problema ya que agregaste un enlace a latex2rtf y eso no estaba en ninguna de las otras 2 respuestas;)
Rinzwind
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.