Abril 14, 2004

Soluciones para un documento mejor
Lo confieso, el boletín de mi iglesia lo hago en Microsoft Word 97. Por favor no me lastimen. :)

Mi idea original desde un principio era hacerlo en LaTeX, Docbook o algo similar; pero la prisa de sacar el primer número me hizo tomar la primera opción funcional y disponible. Desde entonces he seguido usando Word pues era el camino de la menor resistencia.
TeX, LaTeX, Docbook, reStructuredText, Lout y similares son lenguajes de typesetting, donde uno usa un editor de texto común y corriente (léase: no Word sino el Bloc de Notas) para escribir el contenido de tu texto y con unos tags especiales (que varían entre lenguaje y lenguaje) defines la presentación del documento. Es decir: “esta parte es un título,” “esta parte va resaltada” en vez de “esta parte debe ir en negrita grandote para el título.”
Para los que saben HTML, es la diferencia entre <em> e <i>.

La ventaja de hacerlo así es que luego puedes definir que, por ejemplo, los textos marcados como “resaltados” van a ser ahora negrita con subrayado. Pop! Todos tus textos cambian. Sí, ya sé que Word puede hacer lo mismo, pero Word es Word. Quiero poder hacer el boletín enteramente en mi laptop en casa, que corre Linux. Openoffice ya está descartado también, gracias.
La desventaja es que tienes un documento dice @B{Esto está en negrita} en vez de ver directamente cómo va a quedar impreso. No es WSIWYG. Pero eso nunca ha sido un problema para mí.

Para imprimir el último número del boletín tuve una emergencia inesperada: se terminó la tinta de mi impresora, así que le pedí a Deyvi que lo imprimiese. Había un detalle importante, y es que la impresora que uso (una barata HP 656c) tiene una característica que me gusta mucho: puedes imprimir dos hojas o más en una sola hoja física. Aprovechando esta característica, el boletín es una hoja A4 que doblas a la mitad; pero el documento de Word no es una hoja en landscape de dos columnas, sino cuatro hojas completas que el driver de la impresora imprime en dos hojas.
Desafortunadamente, la impresora de Deyvi no tiene esta característica, así que tuve que cambiar las hojas a landscape, formatear dos columnas y luego poner las hojas en el orden físico que les corresponde (una hoja tiene que tener la página 4 y 1, la segunda hoja las páginas 2 y 3). No yay.

Cuando le pasé el documento a Deyvi olvidé otro detalle importante: las fuentes. Por algún extraño motivo, Deyvi no las pudo instalar en sus sistema (viva Windows!), así que acomodó el gráfico faltante (que era una fuente) y ajustó las páginas ya que en su sistema las páginas no cuadraban. No yay again.

Deyvi hizo un excelente trabajo emulando el gráfico y conservando el estilo del boletín, pero se veía diferente. Entonces recordé, pensé y llegué a la conclusión que si lo hubiera hecho en LaTeX o Docbook o groff o lo que sea, hubiera podido exportarlo a un PDF, cosa que imprimirlo era una trivialidad sin problemas de formato ni fuentes ni gráfico faltante ni nada. Yes yay.

Pero LaTeX y Docbook me parecen excesivamente complicados. Docbook es muy verbose para mi gusto (y por favor no empiecen con eso de “consíguete un buen editor de XML”). Con algo tipo podría aliviar teclear tanto a mano, pero Docbook está fuera de mi lista por el momento.

Hace tiempo me puse a investigar más sobre Postscript. Sabía que Postscript era un standard, pero no sabía que era un lenguaje de programación. Descargué documentos y un par de libros, pero no llegué muy lejos. Era igual de complicado (quizás más) que los otros, aunque muy potente. Debo decir que Postscript me gustó, pero iba a tardar demasiado aprendiéndolo. Me parece una solución muy poderosa para generar cualquier cosa impresa.

En mi búsqueda por el lenguaje de typesettings perfecto, encontré Lout — que no es perfecto, pero se ve decente. Es muy parecido a LaTeX, pero mucho más sencillo, y bota un fichero Postscript listo para impresión. Lastimosamente sólo bota Postscript y ascii plano, no HTML, no manpage, no nada más.

Pero hoy repentinamente, como en tantas otras ocasiones, me acordé de nuevo que “hey, pero yo sé programar!”

Consciente de que es inútil inventar otro lenguaje de typesetting, he decidido usar XML para definir mis propios tags y luego usar PHP (no porque sea la mejor herramienta (que probablemente sería Perl o Python), sino porque la conozco más) para hacer las veces de un XSLT (no quiero aprender ooootra sintaxis que es todavía más verbose que Docbook y encima horrible).

En español: escribo un documento en una sintaxis XML inventada por mí, y luego lo convierto a la sinxtaxis de Lout, LaTeX, Docbook o el lenguaje du jour del año. Como es mi sintaxis puedo extenderla, reducirla, cambiarla, etc. No tengo que ajustarme a ella, sino ella se va a ajustar a mí — um, lo cual no siempre es tan bueno como suena. Si en un futuro Lout me parece muy limitado o aprendo Postscript o Antonio dice “vamos a documentar con Docbook,” pues yo podría seguir usando mi sintaxis XML. Ahora que Deyvi quiere poner los boletines en la web (oops, tengo que pasarle los números pasados) puedo exportarlo a HTML desde mis fuentes XML. O a Linuxdoc. O a un documento de Staroffice (que son XMLs comprimidos, pero ok, ya estoy exagerando).
He reinventado MetaL pero con typesetting. Esta solución es fascinante, pues es prácticamente ilimitada.

Pero hay chamba por hacer. Tengo que aprender todo lo necesario de Lout para hacer el conversor. Preveo que necesitaré cosas que entonces tendré que implementar al vuelo cuando me hagan falta, que de repente el lenguaje destino no soporte lo que quiero hacer, que voy a tener una gran rascada de cabeza con las tablas, etc. pero es una buena idea, y creo que vale la pena.

Ah… so much to do, so little time.

3 Replies to “Abril 14, 2004”

  1. Wtf? porque no lo escribiste en OpenOffice y lo grabaste en formato RTF? o al final en formato .DOC, no hay excusa para usar MS-word :P

    Y si, Latex sera cool y todo lo que quieras pero es quemado :P

  2. La idea desde un inicio era usar un lenguaje de typesetting. Usar OOo es como usar Word, en este aspecto.
    OOo está descartado no porque no sea potente ni comparable con Word, sino porque no es lo que busco.

    Y LaTeX es quemado, eso sí. :D

Comments are closed.