Pensamientos y Libros

25 noviembre 2007

Utilizar Latex en documentos Docbook

Filed under: Computación,Edición,Linux,Matemáticas — Toni Cebrián @ 19:40

 

 

Instrucciones

El formato XML ha sido una gran idea. Un formato sencillo y fácilmente extensible utilizado para describir datos con multitud de aplicaciones. Yo por ejemplo lo utilizo para redactar estos artículos utilizando el esquema publicado de Docbook, luego los convierto a HTML utilizando unas hojas de estilo en formato XSL y finalmente las subo a esta web. Es una solución muy flexible y que me evita tener que andar pensando en formatos y tipos de letras, simplemente hay que escribir contenido. Sin embargo viene con un peaje a pagar, el tener que lidiar con una sintaxis farragosa cuando hay que escribir el XML “a pelo” situación que aparece a menudo cuando queremos escribir ecuaciones y fórmulas matemáticas para la web utilizando el formato MathML. En este artículo voy a explicar cómo podemos ahorrarnos parte de la farragosa tarea de escribir matemáticas en un documento Docbook utilizando el truco de escribir las matemáticas en Latex dentro del documento y utilizar un filtro que nos convierta ese Latex a MathML antes de hacer cualquier conversión.

 

 

Instalación

 

  • Lo primero es bajarse el software que nos hará la conversión de Latex a MathML desde la página de itexToMML. Existen versiones para Mac y para Linux. En lo que sigue del artículo me referiré a la instalación en Linux. Descomprimimos el tar.gz que contiene los binarios y los fuentes del programa.
  • El programa utiliza el flujo de entrada al programa y traduce todos los entornos matemáticos Latex a su equivalente MathML. Para ilustrarlo creamos el fichero Docbook de ejemplo que se muestra en el siguiente listado.
    <?xml version="1.0" encoding="UTF-8"?><section version="5.0" xmlns="http://docbook.org/ns/docbook"         xmlns:xlink="http://www.w3.org/1999/xlink"xmlns:xi="http://www.w3.org/2001/XInclude"
    
    xmlns:svg="http://www.w3.org/2000/svg"
    
    xmlns:mml="http://www.w3.org/1998/Math/MathML"
    
    xmlns:html="http://www.w3.org/1999/xhtml"
    
    xmlns:db="http://docbook.org/ns/docbook">
    
    <title>La función más famosa</title>
    
    <para>La función que aquí mostramos, $E=mc^2$, se ha convertido en un
    
    icono cultural aunque muy pocos comprendan su verdadero significado.</para>
    
    </section>
  • A continuación lo que hay que hacer es filtrar este flujo de texto con nuestro programa itex2MML para que convierta las funciones latex en su equivalente MathML. En línea de comandos hacemos:cat Ejemplo.xml | itex2MML > Exemplo-procesado.xmly el archivo original queda convertido en el que puede verse en el siguiente listado.
    <?xml version="1.0" encoding="UTF-8"?><section version="5.0" xmlns="http://docbook.org/ns/docbook"xmlns:xlink="http://www.w3.org/1999/xlink"
    
    xmlns:xi="http://www.w3.org/2001/XInclude"
    
    xmlns:svg="http://www.w3.org/2000/svg"
    
    xmlns:mml="http://www.w3.org/1998/Math/MathML"
    
    xmlns:html="http://www.w3.org/1999/xhtml"
    
    xmlns:db="http://docbook.org/ns/docbook">
    
    <title>La función más famosa</title>  <para>La función que aquí mostramos, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>E</mi><mo>=</mo><msup><mi>mc</mi> <mn>2 </mn></msup></math>, se ha convertido en un
    
    icono cultural aunque muy pocos comprendan su verdadero significado.</para>
    
    </section>
  • Una vez tenemos la fórmula convertida a MathML lo que tenemos es un documento Docbook bien formado y lo único que nos queda es aplicarle las hojas de estilo y las transformaciones necesarias para obtener nuestros PDFs o páginas html. El resultado puede verse en el siguiente párrafo.La función que aquí mostramos,
    E = mc 2 , se ha convertido en un icono cultural aunque muy pocos comprendan su verdadero significado.

 

Caution

Es importante que en las transformaciones a XHTML el fichero destino no tenga extensión .html pues en dicho caso las fórmulas no se muestran correctamente. Utilizar la extensión xhtml o xml para visualizar el contenido correctamente.

Sobre WordPress

WordPress elimina el contenido específico de MathML al guardar el post así que estoy tratando de pensar cómo rodear y solucionar este problema.

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: