TeX
TeX: Algunas sugerencias y trucos
- ¿Qué es TeX? ¿Dónde hay información?, ¿dónde lo consigo?
- Eplain: Una extensión del Plain TeX
- TeXsis/tables: Un paquete que simplifica la construcción de tablas
- Castellano: Algunos problemas que aparecen cuando una escribe en castellano: silabeo y teclado español (Obsoleto)
- Insertando gráficos Paquetes y algunos trucos para insertar gráficos.
Qué es TeX
El TeX es un sistema de composición de textos de alta calidad, en particular para aquellos que contienen una gran cantidad de expresiones matemáticas creado por Donald Knuth. No debe pensarse en el TeX como un procesador de palabras del tipo WYSIWYG, un archivo tex es un archivo ASCII donde está el texto que deseamos imprimir junto con determinadas intrucciones que debe ser procesado por un compilador (el programa TeX). Este devuelve un archivo que es portable a cualquier plataforma que es el que finalmente se imprimirá.
Si desean una descripción más detallada, pueden visitar CervanTeX, la página de usuarios de TeX en español o TUG, el sitio del TeX Users Group. En CTAN (Comprehensive TeX Archive Network) van a poder encontrar casi todo lo que puedan querer de TeX, implementaciones para distintas platarformas, fonts, paquetes de macros, manuales de introducción
Además del compilador, suele entenderse por TeX al conjunto de unas 300 instrucciones que forman un lenguaje de macros. Estos se combinan y dan origen a distintos ``formatos'' siendo los dos mas usados el LaTeX (creado originalmente por L. Lamport) y el Plain TeX (desarrollado por el propio Knuth). Probablemente el más usado sea el LaTeX: Este se basa en el concepto de clases y una vez que uno seleccionó la clase que va a usar, solo tiene que procuparse por el texto en sí de lo que desea escribir; del formato (tamaño de la letra, numeración de las secciones, generación de tablas de contenido etc. se ocupa el programa). La parte negativa es que es muy rígido, hacer un cambio mayor en una clase puede ser una tarea muy dura. Por otra parte el Plain es mucho más flexible pero carece de la guía de las clases. Otra diferencia es que es totalmente estable en lo que a cambios drásticos se refiere.
Eplain
En lo personal, prefiero el Plain TeX; me resulta más divertido, aunque supongo que cometo muchos ``desastres'' desde el punto de vista del diseño gráfico del texto. Lo malo es que hay muchos más paquetes de macros escritos para LaTeX que para Plain, así que tuve que ir viendo como conseguir lo que sí me gusta del LaTeX si tener que caer en sus clases. Desde este punto de vista lo primero que recomiendo es el Eplain de Karl Berry. Este paquete provee una serie de extensiones la Plain como ser referecias cruzadas, numeración automática de ecuaciones, generación de tablas de contenidos, de índices (usando makeindex), de biblografía (usando BibTeX), texto en multiples columnas y más. Otro lugar donde puede conseguirse es en CTAN
Tablas
Algo que es bastante complicado en Plain es hacer tablas. Esta tarea se simplifica notablemente con el paquete TeXsis (en realidad no hace falta todo el paquete, sólo tables , que es la parte que se encarga del diseño de las tablas)
Problemas que suergen al escribir en castellano
Ahora llega la parte de los problemas. A decir verdad no se si son problemas de todos; en todo caso lo fueron para mí. Por las dudas cuento como los salí de ellos, tal vez sea de utilidad a otros. Es posible que haya otras maneras, tal vez más eficientes, de hacer lo que hice estas son las que se me ocurrieron a mí. Antes de empezar creo que es conveniente comenzar por algunas aclarciones: la distribución de TeX que uso es teTeX para Linux y en general las soluciones que doy son soluciones probadas en esta plataforma. De todas manera en la actualidad también tuve que vermelas con la distribucón MikTeX para W'9* y esto es parte del origen de mis problemas en lo que hace a los acentos.
En general pueden aparecer dos problemas cuando uno escribe un archivo en castellano: cuando el TeX tiene que separar en sílabas una palabra porque no entra en el renglón lo hace mal y cuando uno escribe en un teclado español palabras como ñandú, no aparece ningún mensaje de error durante la compilación, pero después en el dvi solo tenemos ``and''
Automatizar el separado en sílabas
Lo que tenemos que hacer es generar el formato cargando el patrón de separación en sílabas en castallano. Esto podemos hacerlo de la siguiente manera (el path lo doy relativo a texmf, depende de cada distribución donde reside este directorio, por ejemplo en RedHat 5.2 está en /usr/share/texmf)-
Editen el archivo texmf/tex/generic/config/laguange.dat
Borren el % que esta la principio de la linea spanish. Si mal no recuerdo viene preparado con silabeo en alemán, si no lo quieren pongan un % adelante. También viene predefinido inglés (o alguna de sus variantes, por ejemplo american) hasta donde sé este tiene que estar definido así que no lo saquen.
En caso de tener el MikTeX, la operanción es la misma, pero el archivo laguange.dat está en texmf/tex/generic/hyphen/local
Por default, cuando el intex crea el formato, carga el archivo hyphen.tex que contiene las reglas de silabeo en inglés. Como no queremos esto, hay que renombrar el archivo (por ejemplo lo cambiamos a hyphen.tex.orig) y en su lugar copiamos, o hacemos un link, hyphen.cfg, entonces
cp texmf/tex/config/babel/hyphen.cfg texmf/tex/generic/hyphen/hypen.tex
(para los usuarios de MikTeX, los archivos están en texmf/generic/hyphen/hyphen.cfg y texmf/generic/hyphen/hyphen.tex)
Y ya está. Compilen haciendo initex plain. Cuando aparece el * tipeen \dump y den enter. Con eso tienen el archivo plain.fmt; reemplacenlo donde tengan el original y listo. (Si quieren, cuando aparece * tipeen \input eplain y después cuando vuelve a aparecer * hagan la parte de \dump, así tiene un formato con eplain y no tienen que estar poniéndolo con \input).
Cuando quieran usar el silabeo en castellano, agreguen en el archivo, al principio, una linea que diga \language1
Escribir con un teclado español
Este es un problema que no se presenta en LaTeX, basta incluir en el archivo las lineas:\usepackage[latin1]{inputenc}
\usepackage[spanish,activeacute]{babel}
De esta manera se puede escribir indistintamente á o \'a, (gracias a al primer paquete por otra parte, el paquete babel activa la separación en sílabas en castellano y se encarga de que aparezca Capítulo I en lugar de Chapter I y demás. (La opción activeacute se permite escribir los acentos como 'a, 'i, etc; es decir sin poner la barra de control \).
En lo que a mi respecta, el problema (como no podía ser de otra manera) proviene de Windows. Aunque uno tenga un teclado americano (sin ñ) es común que para usar el Word o Excel o cualquiera de esas cosas este configurado como tal, de modo que cuando uno tipea 'a aunque sea en el notepad lo que obtiene es á; así que si uno quisiera escribir \'a lo que tendría que tipear es \' a (o sea, tipeamos ``espacio'' entre ' y a.). Lo lógico entonces es trabajar con los fonts ec (creo que el nombre formal es fonts de Cork). Esto a su vez trae otro problema, la codificación no es la misma que en los fonts cm de Knuth, con lo cual hay problemas si uno le pasa el archivo a otra persona que no trabaja con W'9* y tipea \'a.
Para solucionar este problema en Plain TeX, escribí una series de definiciones, que se encuentran en una serie de tres archivos: ec.tex, 12puntos.tex y 14puntos.tex. Brevemente, el modo de usarlo es el siguiente:
Si queremos que el tamaño de las letras del cuerpo de nuestro texto sea de 12pt, ponemos
\input 12puntos (esto carga las definicione s y también carga el archivo ec.tex)
\docept (esto activa los fonts en 12pt)
El archivo ec.tex provee los fonts en 10pt, y además contiene las definiciones necesarias para que todo funcione. Dado que está cargado, uno puede pasar de los fonts en 12pt a fonts en 10pt y volver a 12pt; por ejemplo
\docept Esto está en doce puntos \diezpt Ahora esto esá en diez puntos \docept Y volvemos a doce
Hace lo que dice. Si quieren más información, pueden ver el Leeme; si quieren bajar los archivos hagan click aquí (tarball) o aquí (zipeado)
Insertando gráficos EPS
Puedo dar dos maneras de instertar gráficos eps (Postscript encapsulado) en un documento TeX. La primera es usando en las definciones que provee epsf que es una macro que en general se distribuye junto con el dvips (y que funciona además el LaTeX). Su uso es sencillo. Supongamos que tenemos un gráfico en el archivo grafico.eps que queremos insertar en un documento que estamos escribiendo; lo que hacemos
Antes de donde va el gráfico, por ejemplo al principio del documento, ponemos
\input espf
Donde queremos insertar el gráfico ponemos
\epsffile{grafico.eps} o bien \centerline{\epsffile{grafico.eps} si lo queremos centrado.
Es posible alterar las medidas del dibujo; para esto se usan las instrucciones \espfxsize y espfysize que nos dejan fijar las dimensiones en sentido horizontal o vertical (la otra se ajusta automáticamente para evitar deformaciones). Por ejemplo:
\espfxsize5cm\epsffile{grafico.eps} da al dibujo un ancho de cinco centímetros.
Para imprimirlo, conviene crear un archivo Postscript a partir de dvi con el dvips
El otro modo de incluir los gráficos es usando el paquete miniltx de David Carlisle. Este paquete consiste escencialmente de ports de algunos de los excelentes paquetes que tiene LaTeX para manipular gráficos. A mi me interesa esencialmente porque permite usar psfrag. La situación es la siguiente: Hemos creado un gráfico de alguna manera, por ejemplo con el Maple, o dibujandolo con xfig (otro excelente programa que viene en cualquier distribución de Linux; además también hay que bajar transfig) y queremos agregarle alguna ecuación. Con el Maple hasta donde sé no se puede hacer y en principio con el xfig tampoco (hay algo de mentira en esta afirmación, sobre todo desde el punto de vista de LaTeX)
Podemos resolver el problema de la siguiente manera:
Creamos la figura (o la editamos si fue generada por algún programa) y donde queremos que vaya la ecuación ponemos una ``etiqueta'', por ejemplo t1, digamos que tenemos algo así
Antes de compilar Después de compilar
En el documento donde queremos insertar el gráfico ponemos:
\input psfrag % carga psfrag para plain, en gral va al principio del documento.
\psfrag{t1}{$\displaystyle $x^2 + y^2 = 1$} % indica por que se debe reemplazar la etiqueta. \includegraphics[width=5cm]{grafico.eps} % incluye el gráfico con la etiqueta cambiada Y obtenemos Cabe aclarar que en el archivo dvi generado por el TeX, no se ve el gráfico de esta manera. Esto se logra después de convertir el dvi en Postscript. Todavía no probe este paquete intesivamente, pero aparentemente funciona como el de LaTeX, de hecho el manual que el autor indica es el que viene con LaTeX.
Para comentarios, correcciones, críticas, saludos etc. haga click aquí