Tratamiento Profesional de Tex(to) con LyX

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

Applications

AuthorImage:[Here we need a little image from you]

this is me

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Gerrit Renker

en to es Javier Fdez. Retenaga

AboutTheAuthor:[A small biography about the author]

Licenciado en 2001 en redes de computadores. Varios empleos antes y, si el código libre no sobrevive, varios empleos después.

Abstract:[Here you write a little summary]

Este artículo va dirigido a personas que tienen que editar/dar formato a una gran cantidad de texto y están fundamentalmente interesadas en obtener rápidamente un texto bien formateado de manera rápida y confiable sin necesidad de (a) grandes habilidades para el procesamiento de textos o (b) un conocimiento muy avanzado de LateX. La herramienta principal que describe este artículo es LyX, una interfaz para LATEX extremadamente robusta y poderosa, basada en una arquitectura cliente-servidor.

Este artículo no busca ofrecer una panorámica de la aplicación, sino que más bien se centra en el proceso de escritura, resumiendo las experiencias de cinco años utilizando LyX a diario. Se tratarán también otros asuntos, como las versiones o los gráficos a utilizar, así como algunas herramientas adicionales que son útiles para la preparación de documentos.

ArticleIllustration:[One image that will end up at the top of the article]

[Illustration]

ArticleBody:[The main part of the article]

Motivación

Imagine que tiene que manejar dos textos y tenerlos listos para una fecha muy cercana, un informe que describa los progresos de su trabajo reciente y un pequeño manual de uso para una pieza de software que acaba de alcanzar un estado avanzado de desarrollo. No tiene necesidad de hacer una presentación atractiva o utilizar tipos de letra llamativos; en realidad, eso no le preocupa. Lo que quiere es acabar de redactar el texto; una vez terminado podrá adornar un poco la presentación, pero eso no es lo más importante.

Habitualmente tiene dos opciones: o bien utiliza un procesador de textos basado en una interfaz gráfica o bien recurre a la edición de código fuente en LATEX. La primera tiene la ventaja de que se controla directamente el proceso de presentación: en realidad, se trata más bien de un programa de presentación que de una herramienta de edición, lo que dio lugar al acrónimo WYSIWYG (what you see is what you get - lo que ves es lo que obtienes). La segunda es un software muy robusto con una muy alta calidad de impresión. Sigue sin embargo un paradigma diferente, WYSIS (what you see is source - lo que ves es el código fuente) y tiene algunas dificultades de aprendizaje, sobre todo para los neófitos. Como al escribir el texto no le preocupa hacer bonitos encabezamientos, probablemente no le entusiasmará la idea de complicarse trabajando en código fuente, ya que el foco de interés es el propio texto, no los adornos y etiquetas. Me encontré precisamente en esa situación hace cuatro años: no sabía nada de LATEX, pero en una mañana día estuve ya preparado para comenzar y en poco tiempo tuve listo un extenso documento con montones de ilustraciones y referencias, todo gracias a LyX.

LyX se encuentra exactamente en el medio de los dos paradigmas señalados más arriba, se le llama WYSIWYM (what you see is what you mean - lo que ves es lo que quieres decir), Citando a sus desarrolladores1:

"LyX es un programa que proporciona un modo moderno de abordar la escritura de documentos con el ordenador, utilizando un modelo de lenguaje de marcas, un procedimiento que rompe con la obsoleta tradición del "concepto mecanográfico". Está diseñado para autores que quieren obtener un resultado profesional con el mínimo esfuerzo, sin necesidad de convertirse en expertos tipógrafos. De lo relativo a la tipografía se ocupa fundamentalmente el ordenador, no el autor. Con LyX el autor puede centrarse en el contenido de su escrito."

La edición en LyX se realiza en un entorno gráfico, no se precisa de código fuente (si bien puede insertarse en bloques adicionales cuando sea necesario). Este gráfico le muestra el texto del presente artículo en su estado inicial.



El cuadro gris que aparece ahí es una referencia cruzada, puede pinchar en él y editar la referencia. No hay que confundir la ventana de edición con el resultado, LyX genera un archivo de texto que luego puede convertirse en LATEX. Puede ver el resultado completo pulsando ALT-d, lo que abrirá una ventana DVI (DVI=device-independent-format, formato independiente del dispositivo, un archivo intermedio utilizado por LATEX); ALT-t hace lo mismo en postscript. Las mayúsculas ALT-D, ALT-T se emplean para actualizar los cambios hechos en la ventana de edición.

El proceso es pues similar al típico de edición en LATEX, con la ventaja de que tiene frente a sí la estructura del texto, sin que le confundan las etiquetas de código fuente. De forma similar a como sucede con los procesadores de texto, con la edición en puro LATEX a menudo se tiene la tentación de incrementar un tamaño de fuente por aquí, las especificaciones del entorno por allá...; en definitiva, un montón de cosas muy poco relevantes para el texto en sí.

Resumiendo, si necesita una herramienta digna de confianza para el tratamiento de textos y quiere centrase en el texto mismo, Lyx es lo que está buscando. Sus puntos fuertes son el manejo de grandes documentos (que pueden separarse en partes), su integración con otros programas detallados más adelante y su increible robustez. Dado que en el ciclo de actualización del resultado actual se usa poca memoria principal, cuando se editan documentos grandes el sistema se ralentiza muy poco. Hay procesadores de texto que se cuelgan con documentos grandes (produciendo archivos binarios irrecuperables). LyX está basado en texto, y cuando se cierra de manera forzada (por pérdida de corriente, p. e.) guarda un archivo de emergencia; ni siquera con las especificaciones más extrañas y textos enormemente largos he advertido un funcionamiento peor. Lo he utilizado durante los últimos cinco años casi a diario, elaborando cerca de 800 páginas, y no he perdido más de medio párrafo. Además, cuenta con el extra de que el código LATEX puede convertirse a LyX mediante el script reLyX(1).

Si en realidad prefiere editar LATEX a nivel de código fuente, puede interesarle echar un vistazo a kile, un editor de KDE especial para LATEX, con algunas características adicionales.

Comencemos

Este artículo se diferencia del anterior de marzo de 1998 (artículo 31) en que en este la introducción general es más breve. Lo que haré es indicar dónde obtener esa información. En lugar de presentar aquí una guía gráfica (como estaba inicialmente previsto), si nunca antes ha visto LyX le recomiendo vivamente que siga primero la guía siguiente, que describe de una bonita manera cómo ponerse manos a la obra con el primer documento: http://www.lyx.org/LGT/

Prerrequisitos

Lo primero que hay que hacer es comprobar que LATEX está ya perfectamente instalado en su sistema. En sistemas  RedHat/Fedora es posible hacerlo cómodamente mediante el instalador gráfico de paquetes, que posee una sola casilla para toda la distribución de LATEX. También puede hacerlo manualmente:

rpm -qa | grep tex

que debería ofrecerle un listado con los siguientes paquetes (suponiendo que tiene la implementación TeTEX de LaTeX):

Este último es muy útil si quiere obtener información sobre diferentes paquetes; dicha documentación se encuentra en /usr/share/texmf/doc/index.html. Como requisitos complementarios, compruebe que dispone de aiksaurus (un thesaurus que se utiliza durante la edición) y, más importante, del revisor ortográfico aspell. Aspell tiene paquetes para varios idiomas además del inglés. En LyX este revisor ortográfico se activa por medio de F7 ( captura de pantalla).

Instalación

Actualmente hay dos variedades de LyX, la antigua x-forms (cuya construcción era a veces un poco complicada) y la variante moderna Qt, que yo diría es preferible. Se dispone de RPMs para ambas variedades. En Debian la instalación es tan sencilla como:

apt-get install     lyx  lyx-common  lyx-qt         ## o lyx-xforms si lo prefiere

Si quiere instalar a partir de los fuentes, estos se encuentran en www.lyx.org. Podría serle útil el siguiente script (build-lyx.sh). LyX es una pequeña obra maestra de codificación, todo está escrito en C++ y compilado a partir de cero, y el proceso de construción le llevará más tiempo que compilar un kernel.

Configuración

En primer lugar LyX necesita verificar su instalación. Antes de la primera edición pulse Edición -> Volver a configurar, lo que actualizará la base de datos interna. Cada vez que cambie algo en su instalación de LATEX, deberá repetir ese paso. Puede revisar cómodamente los resultados de esa acción por medio de Ayuda -> Configuración de LATEX, que también le dirá dónde obtener los paquetes que puedan faltar. Merece la pena habilitar la copia de seguridad automática en Edición -> Preferencias->Interfaz del usuario->Documentos, no cuesta nada y es una opción muy útil. El visor por defecto es xdvi; es muy recomendable cambiar esta opción por kdvi, como se muestra en esta captura de pantalla. Esto le proporcionará un visor muy fácil de usar. Los cambios no se aplican hasta que pulse Modificar.

Edición y producción de un archivo de salida

Escribir requiere (i) inspiración (creatividad) y (ii) transpiración (trabajo manual). Descubrí que verdaderamente merece la pena el esfuerzo de aprender a escribir con los diez dedos. Hay libros baratos con ejercicios, y en dos o tres semanas ya se es capaz de escribir sin tener que estar buscando las teclas con dos dedos. Para hacer de esa pesada tarea un juego entretenido, eche un vistazo a ktouch, que está hecho precisamente para aprender a mecanografiar. Como las consolas, comienza con un nivel fácil y usted puede continuar con niveles cada vez más altos. Está muy bien hecho. Viene dentro del paquete kdeedu, o puede obtenerse en http://ktouch.sourceforge.net/.

Por lo que se refiere a la inspiración (tener en mente la estructura antes de comenzar la tarea) hay un artículo muy útil acerca de  los esquemas y la estructuración de ideas en [2(ver notas)].

Edición básica

No hay mucho que decir aquí, ya que la interfaz se explica por sí misma. Si se atasca, eche un vistazo a la guía gráfica mencionada más arriba. Supongamos que tiene unas notas preliminares en algún archivo de texto creado con su ordenador de bolsillo favorito. Puede importarlo mediante Archivo -> Importar (línea a línea o como bloque), con lo que obtendrá una estructura en bruto. Ahora puede convertirlo en segmentos de texto. La lista disponible en la caja de herramientas presenta las opciones posibles para el estilo de documento elegido. Normalmente, puede seleccionar el estilo Normal (estándar), mediante ALT-p s y los encabezamientos mediante ALT-p n, donde n es un número de 1 a 6 (cuanto menor el número, mayor el encabezamiento). Para todo aquello que no desea que aparezca en el archivo de salida, puede utilizar notas mediante ALT-i n, como se muestra en el siguiente gráfico en azul.


Una vez el texto esté listo, puede pulsar Ver para revisar el resultado, o exportarlo (Latex, PDF, Ascii, HTML (V. notas más abajo), ...) por medio de Archivo->Exportar.

Referencias

Lo divertido de LATEX comienza con las numerosas posibilidades de sección, subsección, página, imagen, tabla, referencias cruzadas, así como datos bibliográficos externos. Para poder referenciar algo en el texto, primero hace falta crear una etiqueta mediante ALT-i e. Para etiquetar puede usarse un texto cualquiera, pero hay que evitar los espacios. Una vez hecho esto, la etiqueta puede ser referenciada en cualquier parte (más atrás o más adelante), simplemente insertándola por medio de ALT-i z, lo que le permitirá elegir el modo de referencia. Para citar URLs dentro del texto, utilice ALT-i u.



Con respecto a las referencias bibliográficas hay dos posibilidades:

  1. Crear una sección bibliográfica manualmente al final del documento seleccionando 'Bibliografía' en el selector de estilo.
  2. Utilizar una base de datos BiBteX externa, que se referencia indicándola en Insertar->Listas e índices->Referencia BibTEX (tantas como quiera, puestas al final del texto).
Para la primera opción, a modo de ejemplo puede ver la primera versión de este artículo aquí (lyx_article.lyx). Si nunca antes ha visto una base de datos BibTeX, aquí tiene un archivo ejemplo (example_bibtex_database.bib). Como ve, no es más que  un texto de marcas estandarizado para datos bibliográficos. Y no es necesario enredar en él, ya que existe una magnífica herramienta de bases de datos llamada pybliographer, que permite la total administración de tales bases de datos, incluyendo  la búsqueda incremental de texto con múltiples atributos y la conversión a otros formatos, p. e., HTML. Aquí tiene una captura de pantalla que muestra una búsqueda incremental:

pybliographer
Cuando haya establecido una de las dos alternativas, puede utilizar las referencias bibliográficas en cualquier lugar del texto mediante ALT-i c (de cita), V. aquí. Pero existe una forma todavía más elegante, que muestra la flexibilidad de LyX. Pybliographer, al igual que algunas otras herramientas, puede interactuar con el servidor de LyX. Esto sucede mediante las tuberías $HOME/.lyx/lyxpipe.in (y lyxpipe.out). El protocolo del servidor se describe detalladamente en la documentación de LyX, aquí basta con decir que puede simplemente pulsar 'Cita' en pybliographer para insertar la referencia que acaba de encontrar como resultado de una búsqueda incremental en la base de datos. Para otras aplicaciones este protocolo de comunicación abre posibilidades tales como la generación automática de texto a partir de scripts... y lo que usted quiera.

Control de versiones

Esto es especialmente útil cuando el texto es largo y se modifica unas cuantas veces. LyX viene ya preparado para el RCS, es fácil activarlo.

  1. cree un directorio llamado RCS en el mismo directorio que contiene los fuentes de LyX,
  2. edite el archivo LyX  y vaya a Archivo -> Control de versiones -> Registrar ( diálogo de texto),
  3. La siguiente vez que abra el archivo obtendrá un diálogo como este
Puede utilizar todas las opciones habituales de RCS desde la línea de órdenes (man rcs o rcsintro). Normalmente yo sólo uso rcs -l para cerrar la versión, co -l cuando quiero poner al día las versiones cerradas y rcsclean para borrar todos los archivos no modificados. Si usted es el único autor, deshabilite el cierre estricto mediante rcs -U <archivo>, lo que simplifica considerablemente el proceso.

Fórmulas matemáticas

Si necesita editar muchas fórmulas, LyX/LATEX le ofrece las mayores facilidades para este propósito. Para ver el modo matemático, pulse ALT-m m (sí, dos veces). Así puede ya elegir cualquier símbolo en Insertar->Ecuación->Panel de ecuaciones. LyX reconoce las opciones matemáticas de LaTeX: pruebe por ejemplo con ALT-m m, después la secuencia \mathcal P, luego espacio y finalmente \frac (n-1) TAB 2.

Gráficos

Se pueden usar gran variedad de formatos de gráficos. El postscript encapsulado (.eps) es a menudo la mejor opción cuando se quiere un archivo de salida PS, pero .png, .jpg y .gif también funcionan. Puede insertar imágenes directamente por medio de ALT-i g (gráficos), pero para su presentación es mejor utilizar los llamados flotantes, que son sólo un envoltorio y permiten varias opciones de colocación así como la inserción de un texto explicativo. Para crear un flotante utilice ALT-i a y después 'Figura'; cuando pulse con el botón derecho del ratón en el marco externo podrá modificar la posición (hasta cierto punto, esto es LaTeX, no un programa de presentación).

Especificaciones del documento y formatos de presentación

No he hablado mucho del formato de presentación del documento, que se elige por medio de Formato->Documento. Dependiendo de lo que LyX haya encontrado al examinar el texto, normalmente hay una selección estándar de formatos tales como artículo, informe, carta, libro etc. Al elegir uno de ellos cambia el formato de todo el documento. Esto afecta directamente a la lista de estilos disponible a la izquierda del menú. Internamente, estas posibilidades son estilos de formato que emplea LyX como "envoltorio" de las clases de documentos de LaTeX. Más adelante expongo un pequeño ejemplo de cómo modificar esos formatos (lo que no es muy complicado). Pero para la mayoría de los casos bastará con uno de los formatos dados, ya que pueden complementarse con características adicionales a elegir.

Una opción interesante es el uso de plantillas, en particular la plantilla carta. Las plantillas no son más que archivos de texto que pueden ser modificados, p. e., para adaptarlos a su propio formato de carta. Pruebe Archivo -> Nuevo desde plantilla. Esto abrirá una ventana con las plantillas disponibles en /usr/share/lyx/templates. Una plantilla interesante es, por ejemplo, la del g-brief (en alemán ''Geschäftsbrief'' = carta comercial) que sirve para esos sobres que tienen una pequeña ventana transparente a la izquierda para la dirección. El texto coloreado de las plantillas es invisible en la salida, sólo sirve para indicar dónde insertar el texto.

Producción del documento final

LyX le mantiene al margen de las interioridades de la compilación de LATEX. Crea un directorio temporal en /tmp que puede encontrar en:

ls -l /tmp/lyx_tmpdir*/lyx_tmpbuf[0-9]/*

Es útil saberlo cuando se exporta a HTML. En el resto de formatos (PS, PDF, Ascii, LATEX, DVI), LyX simplemente crea el archivo deseado en el directorio actual. Cuando se trata de HTML, copia la página HTML, pero no las imágenes y los archivos de estilo que la acompañan y que son generados por latex2html; estos pueden copiarse del directorio temporal usado para la compilación. Por último, para producir el documento final ni siquiera necesita la interfaz gráfica: lyx(1) dispone de un buen número de opciones para la línea de órdenes. Por ejemplo, para generar un archivo PDF a partir de un archivo fuente dado, teclee simplemente:

lyx -e pdf my_lyx_source_file.lyx

Yo utilizo esto para un gran repositorio de documentación, donde los archivos PS y PDF son generados automáticamente  por un script, a partir de los archivos de entrada de LyX.

Trucos y consejos generales

Errores, el preámbulo y los hiperenlaces

Cuando la compilación de LaTeX falla, aparece una ventana de error como esta de la izquierda. Generalmente, la localización de errores dependiente del contexto es bastante buena, y puede saltar al error, marcado en su documento con una caja roja, mediante CTRL-g. Si esto no le ayuda, eche un vistazo a la salida estándar de error (suponiendo que haya arrancado LyX desde un terminal xterm) o pruebe Ver -> Archivo de registro de LaTeX. En algunos casos puede tener problemas porque un determinado estilo de documento no estaba incluido (p. e., 'package xyz not found'). Esto puede arreglarse fácilmente añadiéndolo en el preámbulo de Latex, que hace para los documentos de Latex la misma función que la sección <head> para el HTML, esto es, declarar los archivos de estilo, añadidos etc. Para acceder al preámbulo seleccione Formato -> Documento -> Preámbulo. Por ejemplo, puede añadir:

\usepackage{url}          %% para las URLs (también en Bibtex)
\usepackage{ae,aecompl} %% produce mejores archivos de salida PDF (tipos de letra mejores)
\usepackage{hyperref} %% mejor al final, produce PDF con hiperenlaces

Merece la pena comprobar que este último aparece ahí. Probablemente ha visto esos documentos en PDF que tienen enlaces coloreados sobre los que puede pulsar, y una sección de marcadores que le permite elegir la sección a la que quiere saltar. Tales documentos se crean utilizando el paquete hyperref. Asegúrese únicamente de colocarlo el último de la lista, ya que anula las especificaciones de los paquetes que se encuentran por debajo de él.

Directorios útiles

Aparte de las copias de seguridad de emergencia y los archivos que se guardan automáticamente, LyX guarda también una copia de cada archivo en $HOME/.lyx/backups. Si por accidente ha borrado un archivo de LyX, ahí podrá encontrar la última copia. Es donde se guardan también los archivos de estilo definidos por el usuario ($HOME/.lyx/layouts). Si crea uno o más archivos de estilo personales, guárdelos ahí mejor que en /usr/share/lyx/layouts, ya que los contenidos de ese directorio se borrarán cada vez que haga una nueva instalación o actualización de RPMs. Es una buena costumbre hacer regularmente copias de seguridad de $HOME/.lyx/.

Cómo añadir estilos de LATEX

Si necesita añadir nuevos archivos de estilo para LyX (y LaTeX), el proceso tiene dos pasos. Primeramente, hay que colocar el archivo de estilo en un directorio donde LaTeX pueda encontrarlo. Generalmente, puede utilizar cualquier subdirectorio de /usr/share/texmf/tex/latex/. Para evitar que una actualización de RPMs lo borre por accidente, es una buena idea crear un subdirectorio (p. e., mis_archivos_de_estilo) y hacer regularmente una copia de seguridad del mismo. Una vez el archivo de estilo se encuentre en ese directorio, la configuración de LaTeX debe ser actualizada, para lo que basta con escribir en un terminal:

texhash

(como root). Si es usted curioso, puede probar también 'texconfig'. En casi todos los casos podrá encontrar los archivos de estilo requeridos en CTAN. El segundo paso consiste en pulsar, dentro de LyX, Edición->Volver a configurar y reiniciar el programa.

Cómo crear sus propios formatos

Vale, este es un tutorial en 60 segundos para definir su propio estilo de documentos. Dado que estamos en Linux, podemos servirnos de las clásicas virtudes de la reutilización del software para hacer algo nuevo. Suponga que es un turista profesional y desea escribir un catálogo de experiencias vacacionales interesantes. Le gustaría tener algo que empezara cada nueva sección con palabras en negrita tales como ''mi excitante experiencia número ...'' LyX espera un archivo descriptivo del formato, que le diga (a) qué paquetes de Latex debe usar (aquí emplearemos simplemente el paquete estándar article) y (b) las especificaciones de entorno que desea para su documento. La primera cosa importante son las dos primeras líneas, que deberían ser algo así:

#% Do not delete the line below; configure depends on this
# \DeclareLaTeXClass[article]{artículo - acerca de mis vacaciones }

El argumento entre corchetes especifica los paquetes de LaTeX a utilizar; puede insertar varios, separados por comas. El segundo argumento indica a LyX cómo etiquetar este estilo. Una vez haya guardado el archivo en $HOME/.lyx/layouts y pulsado Edición->Volver a configurar, podrá leer la secuencia de caracteres ''artículo - acerca de mis vacaciones'' (o el nombre que haya elegido) en Formato -> Documento -> Formato -> Clase del documento. Pero aún no hemos acabado. Primero importamos un formato ya existente llamado article.layout (no es necesario indicar la ruta, LyX busca en su directorio de formatos o en $HOME/.lyx/layouts)

Input article.layout

A continuación creamos una orden adecuada para LaTeX, que ha de figurar en el preámbulo (cabecera del documento). Para poner algo en el preámbulo utilizamos el entorno Preámbulo.

Preamble
\newtheorem{vacaciones}{Mi experiencia divertida de vacaciones nº. }
EndPreamble
Por último, hemos de indicarle a LyX cómo usar esa orden:
Style Mis_Vacaciones
Margin First_Dynamic
LatexType Environment
LatexName holiday ## la orden para Latex
AlignPossible Block, Left
LabelType Static
LabelString "Experiencia de vacaciones #. " ## esto es lo que verá en el documento
End

Tras editar este archivo (un_modificado_article.layout), guárdelo en $HOME/.lyx/layouts, reconfigure, reinicie y ¡voilá!, ahora encontrará una clase de documento denominada ''Mis vacaciones'' en el selector de estilo del documento. Aquí tiene un documento ejemplo que utiliza el nuevo archivo de estilo (un_modificado_article.layout). Puede encontrar más información en [3(V. notas)]. 

Conclusión

Ciertamente, si sólo tiene que escribir la lista de la compra o apuntes de un par de párrafos, utilizar LyX es en cierto modo desmesurado. Pero si se trata de textos de más de 500 palabras con referencias cruzadas y que han de estar bien estructurados, LyX puede ahorrarle mucho trabajo.

Bibliografía

[1]''Introducción a LyX''; el equipo de LyX. Disponible en Ayuda -> Introducción.
[2]''Outliners and Mind Mapping"; Jimmy O'Regan. Linux Gazette Nr. 108, November 2004.
[3]''Customizing LyX: Features for the Advanced User''; el equipo de LyX. En Ayuda -> Personalización.