¿Existe un sistema para generar documentos ODT a partir de un lenguaje similar al marcado?

Me gustaría (bueno, mi entorno de trabajo me obliga) a crear documentos ODT (realmente documentos de MS Word, pero podemos llegar allí desde ODT). Sin embargo, no me gusta el paradigma de creación de documentos WYSIWYG. Me gusta el control adecuado sobre mis estilos y la estructura del documento. Soy un usuario de LaTeX, pero aunque LaTeX→ODT es posible, es difícil y frágil, y no espero que las herramientas para hacer esto maduren pronto.

Por lo tanto, me gustaría saber si existe un entorno similar a un script para generar documentos ODT, que sea similar en principio al flujo de trabajo de LaTeX y le permita controlar fácilmente el estilo y el formato de los documentos (por ejemplo, para que coincida con un documento de la empresa modelo)?

Idealmente, el sistema tendrá soporte para:

  • Escribir ecuaciones bien formateadas
  • Controlar firmemente la estructura del documento
  • Control del estilo del documento, como las fuentes, el formato de los encabezados en diferentes niveles, las secciones de encabezado y pie de página de las páginas, etc., es decir, todo lo que constituye un documento de procesamiento de texto normal.
  • Inserción de figuras e imágenes
puede probar Pandoc ( johnmacfarlane.net/pandoc/index.html )
Conozco Pandoc, pero ¿hace lo que pido?
Está solicitando DOCX, pero aceptaría una solución a través de ODT. Por lo tanto, Pandoc puede crear ODT, pero Pandoc también puede crear directamente DOCX a partir del texto fuente de Markdown, y la salida puede diseñarse directamente con los mismos estilos que un --reference-docx=mydocxarchivo al que hace referencia en la línea de comando. ¡Eso es lo mejor que puede obtener, antes de cambiar a 'DOCX-from-dictation'!

Respuestas (2)

pandocya se ha mencionado... también es mi herramienta favorita para este tipo de tareas.

Pero faltaba en la respuesta anterior el siguiente hecho importante sobre Pandoc:

  • parámetro de línea de comando: por ejemplo:--reference-odt=...
    --reference-odt=myref.odt

Pandoc leerá los estilos definidos myref.odty los aplicará al documento de salida ODT que genera.

Puede que no funcione a la perfección, o que no funcione bien para estilos de empresa personalizados muy, muy, muy raros. Pero ayuda mucho cuando se trata de obtener fácilmente estilos que son diferentes de los predeterminados en sus documentos ODT de salida.

El OP escribió en un comentario: "Conozco Pandoc, pero ¿hace lo que pido?"

Sí lo hace:

  • "¿Escribir ecuaciones bien formateadas?"
    Sí, simplemente inserte la ecuación de LaTeX en las fuentes de Markdown entre $caracteres sin espacios, así:
    $\cos (2\theta) = \cos^2 \theta - \sin^2 \theta$.

  • "¿Controlando firmemente la estructura del documento?"
    Sí, lo hace. (Bueno, realmente no entendí completamente qué quieres decir exactamente con esto, ¡pero lo confirmaré de todos modos! :)

  • "¿Control del estilo del documento...?"
    Sí, consulte --reference-odt=myref.odtel parámetro anterior explicado anteriormente.

  • "¿Insertar figuras e imágenes?"
    ¡Sí! -- Inserte una imagen como esta (en una línea propia, separada por líneas en blanco):

    ![image description](./path/to/image.png)
    
ok, sí, pero la creación de un estilo no requiere que ya entiendas el formato de archivo ODT? No tengo tiempo para aprender esto, quiero que cosas como esta se especifiquen fácilmente en mi archivo de entrada. Al controlar firmemente la estructura del documento, me refiero a que los niveles de las secciones del documento están firmemente controlados por comandos o similares, en lugar de por el "estilo", como ocurre, por ejemplo, en LibreOffice. Markdown y LaTeX permiten un control firme sobre la estructura del documento, así que sí, Pandoc lo hace hasta cierto punto.
No, crear un documento de estilo para usar con el --reference-odtparámetro es diferente de crear una nueva plantilla para la salida ODT. Un documento de estilo solo requiere que comprenda la interfaz gráfica de usuario de LibreOffice u OpenOffice, sepa cómo crear, editar y cambiar estilos de documentos, párrafos y caracteres en el cuadro de diálogo "Estilos y formato" de LO/OO y guardar ese documento...
Los niveles de sección en Markdown se controlan al # comienzo de la línea para el encabezado de primer orden , ## para el encabezado de segundo orden, etc. Pandoc traduce eso al estilo Heading 1, Heading 2etc. Esto no es solo un estilo en LibreOffice, también es un estilo estructural. ¡elemento!
"¡Esto no es solo un estilo en LibreOffice, también es un elemento estructural!", sí, y eso es lo que no me gusta de LibreOffice/Word, etc., ¡quiero que el estilo esté lo más separado posible del contenido y la estructura! Entonces, si entiendo bien (mirando el ejemplo de docx en el sitio web de pandoc), sería --reference-odtsolo un documento de ejemplo mínimo con estilos Heading 1, Heading 2etc. definidos. ¿Hay una referencia en alguna parte para exactamente qué estilos se pueden definir?
@crobar: En cualquier caso, este no es el lugar para publicar un tutorial a gran escala sobre el uso de Pandoc, Markdown y/ --reference-odt=...o --reference-docx=...para la salida ODT y DOCX. Sin embargo, es asombroso cuánto estilo personalizado y preciso es posible con la salida ODT de Pandoc (y aún mejor ahora con DOCX) desde el simple Markdown. Piense en ello como similar a HTML/CSS. Ahí también tienes una "separación de contenido, estructura y estilo". ¿ Pero es una separación limpia ? ¿Qué sistema/formato tiene una separación realmente limpia? ¿Puedes decirme uno?
@crobar: he tenido bastante éxito en la definición y aplicación de mis propios estilos, incluso con nombres de estilos propios recién inventados usando varios trucos. Una de ellas es explotar la configuración de "siguiente estilo" para cualquier estilo estándar...
Tienes razón en que no existe un sistema que separe completamente estilo y contenido. Mi objetivo es que al menos las secciones, las referencias cruzadas, las citas y la numeración de todos se manejen automáticamente y de una manera que yo especifique claramente. Supongo que lo que realmente quiero es que el estilo y la estructura se especifiquen principalmente mediante comandos de texto claro que pueda ver y comprender, en lugar de la incertidumbre visual basada en un botón.

Creo que sería una buena idea echar un vistazo al uso de Markdown o ReStructuredText + Pandoc . Puede usar markdown/rst como lo hace en SO y luego convertirlo a cualquiera de los formatos de documentos, incluidos ODT y MS. .docx mientras que el descuento extendido es muy flexible y poderoso.

Formatos de entrada y salida de Pandoc:

Input formats:  docbook, haddock, html, json, latex, markdown, markdown_github,
                markdown_mmd, markdown_phpextra, markdown_strict, mediawiki,
                native, opml, org, rst, textile
Output formats: asciidoc, beamer, context, docbook, docx, dzslides, epub,
                epub3, fb2, html, html5, icml, json, latex, man, markdown,
                markdown_github, markdown_mmd, markdown_phpextra,
                markdown_strict, mediawiki, native, odt, opendocument, 
                opml,org, pdf*, plain, revealjs, rst, rtf, s5, slideous, 
                slidy, texinfo, textile
Habiendo visto Pandoc, no parece muy fácil modificar el estilo de su documento para que se ajuste a una plantilla de empresa. Parece que debe tener una buena comprensión del formato de archivo ODT y crear una plantilla en este formato. Esta es una limitación seria ya que no conozco el formato de archivo ODT y no tengo tiempo para aprenderlo.
@crobar: ¿Has visto el parámetro de línea de comando --reference-odt=myref.odt? Pandoc leerá los estilos definidos myref.odty los aplicará al documento de salida ODT que genera. Puede que no funcione a la perfección, o para estilos de empresa personalizados muy, muy, muy extraños, ¡pero ayuda mucho!
@crobar: Dame la plantilla de tu empresa con los estilos que necesitas, págame mi tarifa estándar (soy un profesional independiente) y te devolveré una línea de comando de Pandoc, una plantilla de ODT de Pandoc y un ODT de referencia de Pandoc que ¡puedo usar! ¿Acuerdo? :-)
@crobar: Dado que desea (finalmente) convertir a documentos de Word, también puedo hacerlo para Word, directamente utilizable para convertir Markdown a DOCX.