2012-04-08 6 views
7

Superficialmente, una pregunta fácil: ¿cómo obtengo un PDF de excelente aspecto a partir de mi documento XML? En realidad, mi entrada es un subconjunto de XHTML con algunos atributos personalizados agregados (para guardar información sobre fuentes de citas, etc.). He estado explorando algunas rutas y me gustaría obtener algunos comentarios si alguien ha intentado algo de esto antes.XML to TeX o cómo obtener un hermoso PDF de fuente similar a XHTML

Nota: Considero que XSL-FO genera archivos PDF, pero escuché que la calidad tipográfica de las herramientas de código abierto todavía se está quedando atrás de TeX. Supongo que el más avanzado es Apache FOP. Pero estoy realmente interesado en un formato PDF muy atractivo (de lo contrario podría usar el diálogo de impresión de mi navegador). ¿Alguna idea, actualizaciones sobre esto?

Así que he estado pensando en usar XSLT para convertir mi dialecto XML/XHTML personalizado a DocBook y pasar de allí (DocBook via XSLT al HTML correcto parece funcionar bastante bien, así que también podría usarlo para eso). ¿Pero cómo voy de DocBook a TeX? He encontrado una serie de soluciones.

  • dblatex Conjunto de hojas de estilos XSLT que generan LaTeX.
  • db2latex Comenzó como un clon de dblatex pero ahora ofrece una integración más estrecha con los paquetes de LaTex y proporciona una sola secuencia de comandos para generar PDF, lo que es bastante agradable.
  • passiveTex En lugar de XSLT usa un analizador XML escrito en TeX.
  • TeXML es esencialmente una serialización XML del lenguaje LaTeX que se puede utilizar como un formato intermedio y una herramienta complementaria de python que se transforma de ese formato XML a LaTeX/ConTeXt. Ellos claimed que esto evita los problemas de las soluciones existentes con símbolos especiales, la pérdida de algunos apoyos o espacios y soporte solo para codificación latin-1. (¿Sigue siendo así?)

Como mi XML de entrada puede contener bastantes caracteres especiales representados en Unicode, el último punto es especialmente importante para mí. También he estado pensando en utilizar XeTeX en lugar de pdfTeX para solucionar este problema. (Podría perder algo de calidad tipográfica, pero tal vez sea mejor que los actuales procesadores XSL-FO de código abierto?) Así que db2latex y TeXML parecen ser los favoritos. Entonces, ¿alguien puede comentar sobre la solidez de esos?

Alternativamente, podría tener más suerte al usar ConTeXt directamente, ya que parece que hay bastante interest in the ConTeXt community in XML. Especialmente, podría echar un vistazo más profundo al "My Way: Getting Web Content and pdf-Output from One Source" y "Dealing with XML in ConTeXt MkIV". Ambos documentos describen un enfoque usando ConTeXt combinado con LuaTeX. (DocBook In ConTeXt parece hacer sobre el mismo, pero la versión más reciente es de 2003.) La segunda señala el documento:

Usted puede preguntarse por qué hacemos estas manipulaciones en TEX y no utilizar XSLT en su lugar. La ventaja de de un enfoque integrado es que simplifica el uso. Considere no solo procesar el documento , sino también usar xml para administrar recursos en la misma ejecución. Un enfoque xslt es tan detallado (después de todo, aún necesita producir código TEX) y probablemente menos legible. En el caso de MkIV, el enfoque integrado también es más rápido y nos da la opción de manipular contenido en tiempo de ejecución utilizando Lua.

¿Qué opina sobre esto? Tenga en cuenta que tengo algo de experiencia con XSLT y TeX, pero nunca he profundizado demasiado en ninguno de ellos.Nunca había probado muchos diferentes paquetes de látex o alternativas como el contexto (o XeTeX/LuaTeX en lugar de pdfTeX) pero estoy dispuesto a aprender algunas cosas nuevas para conseguir mis hermosas archivos PDF al final;) ​​

Además, me tropecé con Pandoc pero no pudo encontrar ninguna información sobre cómo se compara con los otros enfoques mencionados. Y, por último, un enlace a una documentación bastante extensa en how to use TeXML with ConTeXt.

+0

Esta pregunta parece ser más adecuada para http://tex.stackexchange.com/ –

+0

@DaveJarvis Estaba buscando explícitamente alternativas a TeX. – mb21

+0

ahhh, ¿no sería eso algo? Idealmente, un servicio web.Cargue un docbook lleno y obtenga un hermoso documento único listo para publicar y listo para leer;) –

Respuesta

1

Al final, he decidido ir con Pandoc, parece ser una base de código muy pulida y sólida. Un inconveniente potencial es que debe limitarse a la cantidad de características de marcado disponibles en la representación interna de Pandoc, que se asigna básicamente uno a uno a su extended markdown.

Porque no creo que la generación de rebajas de mi fuente similar a XHTML fuera una buena idea, logré iniciar una pandoc component that reads DocBook, que actualmente se encuentra en la rama principal del repositorio de desarrollo de Pandoc. Así que ahora tengo una hoja de estilo XSLT simple que convierte de mi dialecto XHTML a DocBook (que también es XML) y luego uso Pandoc para exportar a un polipasto de otros formatos, incluido PDF a través de ConTeXt.

1

Es posible que desee comprobar questions tagged with XML on TeX.sx, especialmente this uno. Sugiero que use ConTeXt; la versión actual no tiene problemas con Unicode y puede manejar OpenType perfectamente, y es programable en Lua. La alternativa más utilizada con LaTeX es XMLTeX, pero eso necesita mucho de TeX foo.

Si sus documentos pueden ser manejados por Pandoc, use eso: Usted tendrá múltiples opciones de salida, más que desde cualquier sistema basado en TeX.

+0

¡Gracias por los comentarios! He echado un vistazo más de cerca a Pandoc y parece realmente prometedor; la cantidad de formatos de salida sería una gran ventaja. Pero para notas a pie de página, etc. Probablemente tenga que escribir algo de XSLT (o algo así) para obtener mi XHTML-dialect para el Markdown ampliado de pandoc, que parece ser un gran dolor para generar (por ejemplo, tablas). – mb21

+0

Así que tal vez debería ir para el análisis directo con ConTeXt de todos modos. Y obtenga algunas hojas de estilo XSLT para los otros formatos de salida que me gustaría obtener. No puedo creer que no haya un formato estándar con muchas hojas de estilo robustas desde donde ...: -/Una vez pensé que se suponía que DocBook era eso, pero tal vez no ... – mb21

2

He hecho algo así en el pasado (es decir, mantener versiones maestras de documentos en XML, y querer producir salida LaTeX a partir de ellos).

He usado PassiveTeX en el pasado, pero creo que crear hojas de estilo es un trabajo duro, el resultado habitual de escribir dos idiomas a la vez. Lo hice funcionar, y el resultado se veía muy bien, pero probablemente era más esfuerzo de lo que valía. Dicho eso, si la cantidad de estilo que necesita agregar es small, entonces esta podría ser una buena ruta, porque es un solo paso.

La ruta más exitosa (lectura, flexibilidad y atractivo) fue usar XSLT para transformar el documento en LaTeX estructural, que coincide con la estructura prevista del documento resultante, pero que no intenta hacer más que un formato mínimo . Dependiendo de su documento, podría ser LaTeX de aspecto normal, o podría tener estructuras a medida. Luego, escriba o adapte una hoja de estilo LaTeX o un archivo de clase que formatea ese resultado en algo atractivo. De esta forma, está usando XSLT a sus puntos fuertes (y no va más allá de ellos, lo que rápidamente se vuelve muy frustrante), usando LaTeX a sus puntos fuertes, y no se confunde.

Es decir, esto más o menos coincide con el enfoque de sus dos primeras alternativas, y si las usa, o escribe/personaliza una hoja de estilo LaTeX con resultados personalizados, es una función de lo cómodo que se siente con LaTeX hojas de estilo, y la cantidad de formato complicado o especializado que necesita hacer.

Como dice que necesita manejar caracteres Unicode en la entrada, entonces sí, XeLaTeX sería una buena opción para la parte LaTeX de la canalización.

Cuestiones relacionadas