Página siguiente Página anterior Índice general

8. ¿Cómo hago ...?

8.1 ¿Cómo y dónde instalo nuevos paquetes o archivos de estilo?

Este proceso constará en general de los pasos que se describen a continuación: traer el nuevo paquete, extraer los ficheros de estilo si es necesario, colocarlos en el sitio apropiado y rehacer la base de datos.

Dónde buscar un paquete nuevo y qué traer

Normalmente los paquetes nuevos se encontrarán en el CTAN, aunque en ocasiones estarán en otros lugares. En general, se debe descargar el directorio completo del paquete o el archivo comprimido que lo contiene. Esto no es necesario cuando se quiere descargar un archivo de estilo de uno de los directorios misc, que tienen contribuciones al CTAN en forma de archivos de estilo individuales completos en sí mismos. En este caso bastaría con descargar el archivo individual correspondiente.

¿Qué es cada uno de los archivos que traigo?

Un paquete pequeño puede estar compuesto únicamente de un archivo de estilo .sty (por ejemplo paquete.sty) con las instrucciones de uso incluidas como comentarios en el mismo, en un archivo separado o bien en un archivo README.

Sin embargo, es más frecuente encontrar el paquete en forma de un par de archivos paquete.ins y paquete.dtx, escritos para ser utilizados con el sistema doc de LaTeX. Los archivos de estilo deben extraerse de éstos. Si hay un README adicional debe leerse éste previamente.

Extrayendo archivos de estilo de los .dtx y .ins

En el sistema doc el manual de usuario y el código del paquete documentado se encuentran en el archivo .dtx, mientras que el archivo .ins contiene instrucciones LaTeX acerca de la extracción del código del archvo .dtx. Para extraer los distintos archivos debe seguirse el siguiente procedimiento:

A veces se proporciona el manual de usuario separadamente del archivo .dtx. En este caso es recomendable procesarlo después de hacer lo anterior, ya que puede necesitar elementos del paquete que está describiendo.

¿Dónde colocar nuevos archivos de estilo?

En primer lugar TeX buscará archivos en el directorio actual. Salvo que se trate de una prueba o de archivos muy relacionados con el documento que se está preparando, es conveniente colocarlos en un lugar de acceso más general.

El lugar exacto en el que deben colocarse los nuevos archivos de estilo depende de la distribución TeX que se esté utilizando. Asumiendo que se utiliza una de las distribuciones modernas que son conformes al TDS (por ejemplo, teTeX, fpTeX o mikTeX) hay una serie de normas que deben tenerse en cuenta

  1. Instalar siempre los nuevos archivos personales en una rama texmf local del árbol global. De esta forma puede actualizarse el árbol oficial sin tocar los archivos locales personales. El directorio raíz local tendrá un nombre del tipo:
    teTeX:          /usr/share/texmf.local/
    fpTeX:          c:\fptex\texmf.local\
    mikTeX:         c:\localtexmf\
    
    que puede cambiar dependiendo de las opciones dadas durante la instalación. Por simplicidad le denominaremos $TEXMF en lo que sigue.
  2. En la rama local, reproducir la estructura de directorios de la rama principal. Estos son unos ejemplos de dónde deberían colocarse archivos de distintas extensiones:
    .sty, .cls o .fd: $TEXMF/tex/latex/<paquete>/
    .dvi, .ps o .pdf: $TEXMF/doc/latex/<paquete>/
    .tfm:  $TEXMF/fonts/tfm/<suministrador>/<fuente>/
    .vf:   $TEXMF/fonts/vf/<suministrador>/<fuente>/
    .afm:  $TEXMF/fonts/afm/<suministrador>/<fuente>/
    .pfb:  $TEXMF/fonts/type1/<suministrador>/<fuente>/
    .ttf:  $TEXMF/fonts/truetype/<suministrador>/<fuente>/
    
    donde paquete, fuente y suministrador dependen de cada archivo individual de cada paquete.
A menudo la rama local no está activada por omisión y es necesario hacerlo.

Activando ramas locales y personales del árbol de directorios LaTeX global

A menudo la rama local del árbol global no está activada por omisión y es necesario activarla:

teTeX y fpTeX;

En primer lugar es necesario localizar el archivo de configuración texmf.conf. Éste puede estar en /etc/texmf/texmf.conf, /etc/texmf.conf o /usr/share/texmf/web2c/texmf.conf, dependiendo de la distribución. Aunque no siempre es necesario, en la primera línea del archivo borrar la palabra "original".

Jugando adecuadamente con texmf.cnf, donde están los caminos de búsqueda, se configura sin problemas. Para activar una línea debe quitarse el carácter de comentario % al principio de la línea, para desactivarla añadir el carácter % al principio de la línea. Cuando se activa una línea debe desactivarse la que antes hacía esa función, si la había. Por ejemplo, si se tienen los archivos de la distribución bajo /usr/share/texmf/, archivos locales bajo /usr/share/local.texmf y archivos personales bajo ~/texmf, las líneas del texmf.cnf que lo harían son

TEXMFMAIN = /usr/share/texmf
para la rama principal, que viene activada por omisión. Para las ramas local y personal se añadiría (o se quitaría el comentario de la misma) una línea del tipo
TEXMFLOCAL = /usr/share/texmf.local
HOMETEXMF = $HOME/texmf
que normalmente vienen comentadas. Finalmente se seleccionaría
TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN}
que las junta todas. Como se ha dicho antes, en la estructura de las ramas local y personal debe clonarse la estructura de la rama principal y como se dice en la sección siguiente debe correrse texhash (o mktexlsr) después de hacer los cambios para rehacer la base de datos de archivos. Para la rama personal puede ser necesario rehacer la base de datos como usuario.

El fichero de configuración está extensamente comentado con explicaciones de la función de cada una de las posibles líneas.

Rehaciendo la base de datos de archivos instalados

El paso final consiste en decirle a LaTeX que hay una serie de nuevos archivos que debe ser capaz de encontrar. En la mayor parte de los sistemas LaTeX libres recientes se mantiene una base de datos de archivos instalados, para posibilitar una búsqueda más rápida. En estos sistemas es necesario actualizar esta base de datos cada vez que se instalan nuevos archivos, mediante los programas suministrados con este fin en la distribución.

teTeX, fpTeX

Correr

texhash

web2c

En cualquier distribución web2c reciente texhash debiera funcionar. Si no es así, probar con

mktexlsr

MikTeX

En una distribución MikTeX anterior a la v2.0, hacer con los menúes desplegables:

Start-> Programs-> MikTeX-> Maintenance-> Refresh filename database 
o en una ventana DOS
initexmf -update-fndb
En una distribución MikTeX mayor o igual que la v2.0, hacer con los menúes desplegables
Start-> Programs-> MikTeX 2-> MikTeX Options
y pulsar el botón "Update filename database".

¿Cómo verifico los directorios en los que TeX busca archivos de estilo?

La respuesta más general sería mirando los archivos de configuración, pero si se trata de un TeX que utiliza las rutinas kpathsearch de Karl Berry, es mucho más sencillo

% kpsepath tex
responderá con la lista de los directorios en los que busca. Una doble barra (//) indica que se busca recursivamente en los subdirectorios del que pone. Es decir, que si los paquetes particulares están en ~/texmf/tex/latex/lo-que-sea, o en ~/texmf/tex/mas-paquetes los encontrará.

8.2 ¿Cómo personalizo el aspecto del documento?

¿Cómo cambio la fuente de un documento?

Pues depende de la fuente que se quiera usar. Normalmente hay paquetes de estilo que lo hacen automáticamente. Por ejemplo, si pretendes usar la familia de Times, usa el paquete times poniendo en el preámbulo \usepackage{times}. Otra familia disponible es lucida-bright, que puedes cargar con el paquete lucidabr. Si miras estos archivos (times.sty o lucidabr.sty) puedes aprender la forma de usar una fuente, y copiarlo para otros tipos.

¿Cómo evito que salga la palabra capítulo en las cabeceras de capítulo?

Cuando se usa spanish-babel basta con poner en el preámbulo, después de haberse cargado babel

\addto{\captionsspanish}{\def\chaptername{}}
y queda eliminada la palabra Capítulo. Si no se usa babel basta con poner en el preámbulo \def\chaptername{}. Realmente esto es un caso particular de cambio de literales, que se trata en las secciones literales y sectnames

¿Cómo cambio la cabecera de capítulo por otra más a mi gusto?

Hay dos formas, redefiniendo las órdenes que hacen las cabeceras, o utilizando un paquete hecho que facilite el trabajo. Un paquete que permite hacer cosas muy elaboradas con las cabeceras de los capítulos es titlesec, disponible en CTAN/macros/latex/contrib/supported/titlesec

¿Cómo quito los encabezados que LaTeX pone automáticamente en las páginas blancas?

Si se quiere controlar cuando se quiere o no este comportamiento en cada página con este problema, se puede definir una nueva orden,

\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
y teclear \clearemptydoublepage cada vez que quieras continuar el texto en una pagina impar.

Cuando se quiere que esto ocurra automáticamente hay que redefinir la orden \cleardoublepage como sugiere la documentación del paquete fancyhdr,

\makeatletter
  \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
  \vspace*{\fill}
    \thispagestyle{empty}
    \newpage
    \if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother

Cuando se utiliza el paquete titlesec de Javier Bezos para definir formatos propios de cabeceras y pies de pagina, la opción de paquete clearempty ya hace el trabajo:

\usepackage[<tus_opciones>,clearempty]{titlesec}

¿Cómo hago que TeX no parta nunca las palabras?

Una forma de conseguir que TeX no corte casi nunca, (y así de paso se evita que corte mal) es poner:

\pretolerance=2000
\tolerance=3000
al principio. Si se quiere que ésto ocurra únicamente en un párrafo o en una región, debe encerrarse lo anterior y la región deseada entre llaves,
{\pretolerance=2000
\tolerance=3000
el párrafo o región
}

¿Cómo ajusto los márgenes de un documento LaTeX?

Quizás la forma más cómoda sea utilizar el paquete geometry, que se encuentra disponible en CTAN/macros/latex/contrib/supported/geometry. Por ejemplo

\documentclass[a4paper, 10pt]{article}
\usepackage[a4paper,left=3cm,right=2cm]{geometry}
crea una página A4 con margen de 3cm a la izquierda y 2cm a la derecha, sin más complicaciones.

Otra cosa mucho más complicada es cómo cambiar los márgenes dentro de un documento, en vez de hacerlo en el preámbulo como lo hace el paquete geometry. Un caso especial se tiene cuando se quiere alargar un poco una página para que quepa un poco más de texto y así evitar situaciones poco estéticas. Para ésto, LaTeX2e proporciona la orden \enlargethispage{distancia} donde se aumenta el tamaño vertical de la página en la distancia especificada.

A pesar de esa dificultad, puede utilizarse el paquete chngpage, que proporciona órdenes para cambiar el aspecto de la página en el medio de un documento (por ejemplo, hacerla más estrecha o más ancha, más corta o más larga, e incluso desplazarla horizontal o verticalmente), aunque no permite cambios dentro de un párrafo.

¿Cómo obtengo un documento apaisado?

Cuando se quiere sacar la totalidad del documento apaisada, hay que decirle a TeX que las dimensiones horizontal y vertical están cambiadas, comenzando el documento con la opción landscape, algo del tipo

\documentclass[landscape,a4]{article}
donde la clase de documento puede ser también cualquier otra como slides. Esto intercambia las distancias horizontal y vertical, pero no rota el documento final para que se ajuste a la posición de la hoja. Para ello se puede utilizar el dvips, por ejemplo en la forma siguiente
dvips -ta4 -tlandscape tu_archivo -o tu_archivo.ps
donde -tlandscape gira la salida. La opción -ta4 es a menudo conveniente si se utiliza papel a4, para que el giro se haga de forma adecuada.

¿Cómo ajusto el espaciado en el documento LaTeX?

Para ajustar el espaciado en un documento LaTeX2e se recomienda utilizar el paquete setspace, que se cargará en el preámbulo. Las órdenes \singlespacing, \onehalfspacing, y \doublespacing colocadas en el preámbulo establecen el espaciado global del documento. Pueden establecerse valores intermedios mediante la orden \setstretch{baselinestretch} en el preámbulo. El valor por omisión es espaciado simple. Asimismo se definen tres entornos con los mismos nombres que las órdenes anteriores para cambios del espaciado en regiones del documento (respecto del espaciado estándard en ese momento, doublespacing empezará un entorno de espaciado doble que el espaciado en ese momento, si es doble lo hará aún mayor).

Para un documento LaTeX209 puede utilizarse el paquete doublespace.

¿Cómo ajusto el espaciado en una lista?

La distancia entre los elementos es la suma de los valores de \parsep (que es también la distancia entre párrafos dentro de un mismo elemento) e \itemsep. Si sólo se quiere cambiar la distancia entre elementos pero no entre párrafos de un mismo elemento, basta con dar un nuevo valor a la distancia \itemsep.

Es un espacio elástico, es decir, además de con \setlength{\itemsep}{1cm} se puede definir con algo como

\itemsep= 4pt plus 2pt minus 1pt
donde 4pt sería el espacio normal, 2pt lo máximo que podría estirarse y 1pt lo máximo que podría encogerse. También pueden cambiarse para una única lista delimitando mediante llaves el rango de aplicación, por ejemplo
 
{\topsep=-15pt  \parsep=-15pt  \partopsep=-15pt
    \begin{enumerate}\itemsep=-5pt
        \item{ Pruebas de interespaciado} 
        \item{ Pruebas de interpaginado} 
        \item{ Pruebas de espaciado}
    \end{enumerate}}

8.3 Referencias cruzadas, índices y bibliografías.

¿Hay alguna herramienta de gestión de bases de datos bibliográficas en BibTeX?

Sí, existen varias, por ejemplo

bibtex.el

Modo BibTeX para emacs. Normalmente viene incluido con emacs, pero también se puede obtener de su página principal http://www.ida.ing.tu-bs.de/people/dirk/bibtex/

Winbibdb y bibdb

ambos excelentes y disponibles en CTAN/support/bibdb con su página base en http://www.mackichan.com/BibDB/default.htm

bibtool

disponible en CTAN/bibtex/utils/bibtool/ con su página principal en http://bibtool.sourceforge.net/

¿Cómo introduzco la bibliografía o el índice en la tabla de materias?

La forma más cómoda es utilizar el paquete tocbibind, que se encuentra disponible en CTAN/macros/latex/contrib/supported/tocbibind y en la mayor parte de las distribuciones, pero también puede hacerse a mano con por ejemplo \addcontentsline{toc}{chapter}{\bibname} en la definición correspondiente.

¿Cómo pongo el índice con su contenido al principio de cada capítulo?

Con el paquete minitoc

¿Cómo añado bibliografía al final de cada capítulo en LaTeX?

Puede hacerse usando el paquete chapterbib. Para hacerlo de esta forma debe estructurarse el documento en un archivo raíz desde el que se incluyen las distintas secciones que están en archivos separados del raíz, incluir al final de cada uno de éstos las órdenes de bibliografía y procesar con bibtex los .aux de cada una de estas partes. Si además se quiere que no haya un salto de página al comenzar la bibliografía en cada capítulo, debe utilizarse la opción sectionbib.

Otro paquete que permite una cosa similar es bibunits.sty

¿Cómo divido la bibliografía por temas en LaTeX?

Los paquetes multibib.sty y bibtopic.sty permiten dividir una bibliografía global en partes separadas para los distintos temas. el primero requiere el uso de órdenes específicas para las citas bibliográficas, mientras que el segundo requiere dividir el archivo de bibliografía.

¿Cómo cito una página de una referencia bibliográfica?

Mediante algo del tipo

\cite[pág.~29]{gar98}
donde gar98 sería la etiqueta BibTeX para la cita deseada.

¿Cómo cito una url con BibTeX?

En los estilos bibliográficos estándar de BibTeX no hay un tipo para las url, aunque es posible que en una futura versión de BibTeX sí lo haya.

En tanto esa versión aparece la forma más sencilla consiste en utilizar el campo howpublished del tipo misc. Una entrada de ese tipo tendría la forma

  @misc{...,
    ...,
    howpublished = "\url{http://...}"
  }
También puede ocurrir que un artículo, informe o incluso libro se encuentre disponible también en la web. En este caso se podría hacer algo del tipo
  @techreport{...,
    ...,
    note = "También disponible como \url{http://...}"
  }
donde se supone que se ha utilizado el paquete url, disponible en CTAN/macros/latex/contrib/other/misc/url.sty/, lo que es muy recomendable para estas referencias por diversas razones.

¿Cómo colapso una serie de citas consecutivas?

O ¿cómo puedo hacer que aparezca una citación bibliográfica múltiple consecutiva, por ejemplo, [1,2,3,4,5] como [1-5]? El paquete cite, disponible en CTAN/macros/latex/contrib/supported/cite y en teTeX permite hacer precisamente eso.

¿Cómo hago una referencia cruzada a un documento externo?

Para hacer referencias cruzadas entre documentos se puede usar el paquete xr, de David Carlisle, disponible en las distribuciones habituales y en CTAN/macros/latex209/contrib/misc/xr.sty. Su uso es como sigue,

...
\usepackage{xr}                        %Referencias a otros documentos
...

\externaldocument{miotrodocumento}
...
Una vez hecho esto las referencias se declaran como si de un único documento se tratase.

8.4 ¿Cómo introduzco figuras en LaTeX?

Hay dos formas de dibujar en TeX, mediante el uso de funciones primitivas TeX bien directamente (muy duro) o a través de alguno de los paquetes de más alto nivel que proveen de funciones que internamente utilizan esas primitivas, pero que a un usuario se le representan como funciones de dibujo normales en un cierto lenguaje, o bien incluyendo gráficos realizados mediante aplicaciones externas, como es el caso de gráficos en postscript encapsulado o en mapa de bits.

El problema en este segundo caso es que los datos del gráfico deben darse en el documento mediante órdenes \special - Véase ¿Qué son los \special -- y que éstas órdenes son en general distintas para los distintos conversores (drivers) a los formatos de impresión o visualización. Para evitar al usuario tener que utilizar directamente los \special se pueden utilizar paquetes de más alto nivel que, dependiendo de los conversores transforman sus órdenes a los \special correspondientes.

Para ello se puede utilizar el paquete graphics, que está entre los paquetes adicionales del LaTeX2e (disponible en CTAN/macros/latex/required/graphics/). Dependiendo de las opciones deseadas se le llama como graphics (menos potente) o graphicx (más potente y recomendado). Un paquete más antiguo es psfig que en la práctica ha sido sustituido en LaTeX2e por graphics que es el paquete oficial de introducción de gráficos externos en LaTeX2e. Sin embargo, si se usa LaTeX 209 será necesario usar psfig (disponible en CTAN/graphics/psfig)

También es necesario tener un conversor de DVI al lenguaje de impresora que soporte esos \special, lo que limita los formatos gráficos soportados. En particular es especialmente interesante que soporten el formato .eps (postscript encapsulado), lo que hacen el dvips y los conversores que vienen con OzTeX o TeXtures. La mayor parte de los visualizadores de DVI no mostrarán correctamente estas figuras, sino sólo su espacio. En cualquier caso, es conveniente leer primero la documentación del paquete graphics o alguna de las referencias que se dan a continuación.

Existe en el CTAN documentación muy interesante acerca de este tema. El documento de Anik K. Goel (CTAN/info/figsinltx.ps) trata de diferentes formas de generar figuras y de incluirlas con psfig para LaTeX 209. El documento de Keith Reckdahl (CTAN/info/epslatex.pdf) está más dirigido al trabajo en LaTeX2e y a las figuras .eps. Una referencia excelente sobre el tema es el LaTeX Graphics Companion, de M. Goossens, S. Rahtz y F. Mittelbach, véase la sección Libros en otros idiomas.

Dibujando con TeX

Existen una serie de formas de dibujar con TeX en vez de importar archivos externos. Desde el simple uso del entorno picture, incluso con mejoras como las proporcionadas por epic a dibujos sofisticados (aunque lentos) con las macros PicTeX. Dependiendo de lo que se quiere hacer alguno de los siguientes sistemas puede ser el más útil:

pstricks

Disponible en CTAN/graphics/pstricks, que da acceso a la potencia de postscript desde TeX mediante un uso sofisticado de los \special. Necesita un conversor a postscript bueno (como p.ej. dvips), está bien documentado y da buenos resultados.

MetaPost

Toda la potencia de METAFONT, pero generando figuras postscript en vez de tipos. Para más información en castellano sobre metapost puede consultarse la página http://w3.mecanica.upm.es/metapost. A partir de la versión 3.7.1 del paquete gráfico gnuplot éste ya permite exportar sus resultados en formato metapost. gnuplot está disponible en CTAN/graphics/gnuplot.

pdfLaTeX también trata metapost nativamente mediante el uso de \convertMPtoPDF. La sintaxis es

  
\convertMPtoPDF {nombre} {escala x} {escala y}
Si el nombre del gráfico incluido tiene la extensión .mps \includegraphics llama internamente a esta orden de forma transparente al usuario y no es necesario incluirla de forma explícita.

El gráfico MP así incluido se puede manipular sin problema con los comandos habituales de graphicx: rotatebox, resizebox, scalebox, etc...

Los archivos metapost pueden editarse con un editor de texto y conocimiento del lenguaje metapost, pero también está disponible el editor gráfico Metagraf para METAPOST, que se encuentra en fase avanzada de desarrollo. Está escrito en Java y por tanto funciona bajo distintos sistemas operativos. Se encuentra disponible en la misma página anterior, http://w3.mecanica.upm.es/metapost.

El programa pstoedit permite pasar de postscript a otros formatos editables, entre ellos metapost, aunque es posible que en el cambio se pierdan elementos del dibujo original.

MfPic

Disponible en CTAN/graphics/mfpic. Este paquete genera código METAFONT a partir de macros TeX como las habituales. No da toda la potencia de METAFONT, pero es bastante más cómodo.

draTeX

de Eitan Gurari. Disponible en CTAN/macros/generic. Un paquete de macros del tipo de PicTeX, pero mucho más manejable y menos necesitado de recursos de ordenador.

Introduciendo figuras postscript encapsulado en LaTeX

Un ejemplo de documento en el que se incluye una figura postscript externa utilizando el paquete graphicx sería (se supone que se utiliza el conversor dvips)

...

\usepackage[dvips]{graphicx}

...

\begin{figure}
  \centering
  \includegraphics[width=10cm]{imagen.eps}
  \caption{Esto es una imagen}
  \label{fig:prueba}
\end{figure}

...
que incluiría la figura imagen.eps con una anchura de 10cm. Nótese que el que LaTeX haya procesado sin problemas no implica que se vaya a ver con el visualizador ni que se vaya a imprimir a una impresora, ya que para ello los conversores correspondientes deben saber cómo hacerlo (P.ej., dvips sabe como incluir figuras postscript y si se ha compilado con esa opción algunos tipos de mapas de bits). Asimismo es conveniente usar \centering en vez del entorno center, ya que este último no es para centrar texto, sino para componer un poco aparte texto centrado, con blancos antes y después. Si se usa center en un figure habrá algo de espacio adicional que no debería estar ahí. Además,\centering se puede usar también como entorno, si fuera necesario (\begin{centering} ... \end{centering}). Si se desea cambiar la separación con centering pueden cambiarse \textfloatsep (para b y t) e \intextsep (para h) con \setlength.

Para contener el gasto en espacio de disco que supone usar PostScript, el paquete graphicx permite que las figuras que se van a incluir estén comprimidas con gzip, puesto que entiende los sufijos .eps.gz y .ps.gz. Para que LaTeX sepa el tamaño de la figura que está en el archivo, debe existir otro con extensión .eps.bb o .ps.bb con la Bounding Box (medidas de la caja) de la figura en PostScript, que se puede obtener de ese mismo archivo (es una de las primeras líneas) o usando algún programa como psbb, distribuido con las utilidades groff de GNU ( http://www.gnu.org).

Introduciendo imágenes en mapa de bits en LaTeX.

En este caso la línea del \includegraphics... anterior se convertiría en

\includegraphics[0,0][101mm,50mm]{figura.pcx}
donde suponemos que el conversor soporta este formato. Se le ha dicho específicamente el tamaño de la figura, ya que si no fuera así, se obtendrían distintos resultados al imprimirla en impresoras de distinta resolución.

Introduciendo figuras en pdfTeX

PDFTeX -- ver la pregunta ¿Cómo obtengo un documento PDF a partir de mi documento TeX? -- no permite la inclusión directa de figuras PostScript. Pueden incluirse figuras en PDFTeX siempre que éstas estén en alguno de los formatos JPEG, TIFF, PDF ó PNG. Existen utilidades para convertir de PostScript encapsulado a PDF y PNG (Distiller de Adobe ( http://www.adobe.com) para PDF y ghostscript -- gs -- ( http://www.cs.wisc.edu/~ghost/index.html) para convertir a PDF o a PNG). Para este último se tienen dos programas que lo utilizan y hacen de intermediario con el usuario, ps2pdf, incluido en ghostscript y epstopdf (disponible en CTAN/usergrps/uktug/baskerville/epstopdf, e incluido al menos en teTeX) para conversión directa entre los formatos .eps y .pdf

Para incluir una figura en PDFTeX se deben seguir los mismos pasos que para incluir una figura PostScript encapsulado en LaTeX. Es recomendable omitir la extensión del archivo (.ps, .eps, .ps.gz, .eps.gz para PostScript y .jpg, .tif, .pdf, o .png para PDFTeX). De esta forma el paquete graphicx tomará el archivo adecuado según que se esté usando LaTeX o PDFLaTeX.

¿Cómo coloco un fragmento TeX en una figura?

Esencialmente hay dos formas, mediante los paquetes psfrag y overpic,

psfrag

permite sustituir cadenas de texto en el gráfico postscript por cadenas de texto TeX. Para ello la cadena de texto a sustituir debe estar en el archivo postscript de forma explícita utilizando alguno de los tipos postscript en vez de dibujada mediante líneas. Es decir, en el archivo postscript debe aparecer (cadena) donde cadena es la cadena de texto a sustituir. Esta cadena debe estar compuesta preferentemente de caracteres los alfanuméricos a-zA-Z0-9, aunque puede funcionar en algunos otros casos. Para usarlo se cargaría el paquete en el preámbulo:

\usepackage{psfrag}
y dentro de un begin-end que englobe la figura o utilizando llaves (para que su efecto no se extienda a otras figuras salvo que se quiera) se incluiría
\psfrag{cadena_original}{cadena_sustituta}
por cada una de las cadenas a sustituir.

Este sistema NO funciona con pdfLaTeX salvo que se utilice vtex. Véase ¿Cómo obtengo un documento PDF a partir de mi documento TeX?.

overpic

El paquete overpic permite colocar cualquier tipo de texto sobre una figura e incluso figuras sobre figuras. Tiene dos formas de introducir las coordenadas, absolutas en \% de la figura original, y relativas, en \% de la figura reescalada. Asimismo cuenta con una excelente documentación.

\usepackage{overpic}

¿Cómo puedo poner una figura rodeada de texto?

Para ello existen distintas opciones, mediante los paquetes

todos ellos disponibles en el CTAN. Para casos sencillos un simple parbox o una minipage pueden hacer un buen trabajo.

¿Cómo consigo un mayor control de la posición de figuras y demás elementos flotantes?

Para ello puede utilizarse el paquete float, (CTAN/macros/contrib/supported/float, que añade nuevas funcionalidades al comportamiento normal de los elementos flotantes como figuras y tablas.

8.5 ¿Cómo giro un elemento en un documento LaTeX?

Para giros sencillos, el paquete graphicx contiene las orden \rotatebox que permite conseguir giros de elementos de texto o incluso de elementos más complejos. Sin embargo, cuando se quieren rotar elementos complejos es recomendable aprovechar las posibilidades del paquete rotating (disponible en CTAN/macros/latex/contrib/supported/rotating). Este paquete permite girar casi cualquier tipo de elemento, incluyendo figuras o tablas completas con sus cabeceras, mediante los entornos sidewaystable y sidewaysfigure.

8.6 ¿Cómo convierto mis documentos a LaTeX y desde LaTeX?

Existe una FAQ específica acerca de las conversiones entre formatos TeX y de otros procesadores de textos, disponible en http://www.kfa-juelich.de/isr/1/texconv/texcnv.html que se archiva en CTAN/help/wp-conv/wp-conv.zip. A continuación se da sólo una pequeña parte de esa información junto con información específica para PDF..

¿Cómo obtengo un documento PDF a partir de mi documento TeX?

Existen distintas formas de producir PDF usando (La)TeX.

¿Cómo obtengo una versión texto a partir de un documento PDF?

La forma más sencilla es mediante el Acrobat Reader (véase formato-pdf utilizando La herramienta Obtener texto que se encuentra a la izquierda en el Acrobat Reader.

Convirtiendo a LaTeX desde otros formatos

WordPerfect

El programa wp2latex (disponible en CTAN/support/wp2latex) ha sido recientemente actualizado por Jaroslav Fojtik y ahora está disponible tanto para DOS como para Unix.

Rich Text Format (RTF)

Hay dos conversores disponibles, rtf2tex de Robert Lupton (disponible en CTAN/support/rtf2tex) y rtf2latex, de Erwin Wechtl (disponible en CTAN/support/rtf2latex), para TeX y LaTeX respectivamente.

Microsoft Word

Aunque hay un programa de conversión (wd2latex, disponible en CTAN/dviware/wd2latex), se recomienda convertir el documento a RTF y utilizar uno de los conversores de RTF mencionados.

8.7 ¿Cómo rehago los formatos de TeX y LaTeX?

Los formatos de TeX son archivos que contienen las macros básicas precompiladas para obtener una mayor eficiencia. Para rehacer un formato es necesario utilizar la orden initex (Este nombre cambia para algunas distribuciones, por ejemplo para emTeX es tex -i). Como muestra, para rehacer el formato plain se haría

initex plain \dump
Con eso se tiene el archivo plain.fmt; ya sólo queda reemplazarlo donde estuviera el original y listo.

Para hacerlo por ejemplo para eplain se habría hecho initex plain, y cuando aparece * se introduciría \input eplain y después cuando vuelve a aparecer * se introduciría \dump, así tendría un formato con eplain y no habría que estar poniéndolo con \input.

Cuando deben incluirse distintos archivos en el formato, a menudo es más cómodo utilizar una archivo que los llame a todos. Por ejemplo, para eplain se podría haber creado el archivo eplain.ini con las líneas

\input plain
\input eplain
\dump
y se habría rehecho el formato con initex eplain.ini.

En la mayor parte de las distribuciones modernas no es necesario rehacer los formatos como se ha dicho antes, sino que hay herramientas que ayudan a ello. Así, por ejemplo en teTeX después de configurar los distintos parámetros del formato (idioma, tamaños de memoria...) al salir se rehace automáticamente el formato, o en mikTeX donde hay un elemento en un menú desplegable para rehacer los formatos ( o desde una ventana DOS initexmf --dump).

8.8 ¿Cómo llamo a un editor desde TeX/LaTeX?

Dando el valor adecuado a la variable de entorno TEXEDIT

SET TEXEDIT=tu_editor +%d %s
en el autoexec.bat o similares o
export TEXEDIT=tu_editor +%d %s
para bash y similares

8.9 Algunas cosillas matemáticas.

¿Cómo escribo un número con periodo utilizando LaTeX?

Para escribir un periodo (el acento breve invertido que indica la repetición de cifras decimales y que se pone encima de la parte periódica del número) la solución más elegante consiste en utilizar el paquete yhmath de Yannis Haralambous, disponible en CTAN/macros/latex/contrib/supported/yhmath. Este paquete permite indicar periodos de longitud arbitraria mediante un acento matemático \wideparen que hace precisamente ese papel.

El paquete yhmath necesita un tipo especial que viene con el paquete y además el paquete amsmath, por lo que para uso esporádico o no tan exigente puede bastar una definición como la siguiente

\def\periodo#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3pt}%
\ensuremath{\braceld\leaders\vrule\hfill\bracerd}%
\crcr\noalign{\kern3pt\nointerlineskip}%
\ensuremath{\hfill\displaystyle{#1}\hfill}\crcr}}}\limits}

¿Cómo puedo hacer para que la etiqueta de una ecuación p.ej. (3.5) contenga además el número de la sección actual p.ej. (3.1.5)

La respuesta se puede encontrar en Lamport sección 6.3 y en el Companion sección 8.6 (Este capítulo del Companion está actualizado en CTAN/info/companion-rev/). LaTeX define y mantiene unos cuantos contadores; uno de ellos es equation. Para generar una etiqueta impresa, LaTeX ejecuta una orden cuyo nombre se forma añadiendo \the al comienzo del nombre del contador adecuado. Por ejemplo, un número de ecuación se genera con la orden \theequation.

Para cambiar la numeración de ecuaciones de modo que se indique el capítulo, la sección y un número correlativo dentro de la sección haríamos:

\renewcommand{\theequation}{\thesection.\arabic{equation}}
El problema es que ahora tendríamos que volver a poner a cero el contador de ecuaciones al comienzo de cada sección o capítulo. Una solución sencilla es incluir en el preámbulo (entre un \makeatletter y un \makeatother) lo siguiente:
\@addtoreset {equation}{section}
Esto hará que automáticamente se ponga el contador equation a 1 cuando se encuentre un nuevo \section.

¿Cómo hay que hacer para lograr la N, R de doble trazo con que se representan los números naturales, reales, etc...

Una forma que funciona incluso en plain TeX y que no requiere cargar tipos adicionales es con definiciones del tipo

\def\CC{{\rm C\kern-.18cm\vrule width.6pt height 6pt depth-.2pt \kern.18cm}}
\def\NN{{\mathop{{\rm I}\kern-.2em{\rm N}}\nolimits}}
\def\PP{{\mathop{{\rm I}\kern-.2em{\rm P}}\nolimits}}
\def\RR{{\mathop{{\rm I}\kern-.2em{\rm R}}\nolimits}}
\def\RRt{{\fa I}\kern-.2em{\fa R}}
  %% This version of \RR can be used in the title of the paper
\def\ZZ{{\mathop{{\rm Z}\kern-.28em{\rm Z}}\nolimits}}
También es posible utilizar el tipo mathbb incluido con las amsfonts. Éstas se cargarían en el preámbulo con
\usepackage{amsfonts}
\usepackage[mathscr]{euscript}
y se llamarían como \mathbb{C}, etc...

Otra alternativa es el uso de los tipos bbm. Estos de cargan en el preámbulo con

\usepackage{bbm}
de forma que $\mathbbm{N, Z, R, Q, I, C}$ daría el correspondiente símbolo.

¿Puedo forzar que una fórmula tenga el mismo número que otra?

Sí mediante el paquete amsmath y la orden \tag. Por ejemplo,

\begin{equation}\label{1}
1+1=2.
\end{equation}
\begin{equation}
1+1=2.\tag{\ref{1}}
\end{equation}

¿Puedo escribir símbolos matemáticos en negrita?

Pues no es nada elemental. Sin tipos especiales no. Inicialmente no se consideró necesario que las letras griegas pudieran representar vectores y no se incluyeron tipos con ellas. La solución pasa por usar amstex y los tipos euler (más en concreto eurb).

También puede utilizarse el paquete amsmath. Así,

\usepackage{amsmath}
\begin{document}
$\boldsymbol{H}$
\end{document} 
Si algún símbolo de alguna fuente no cambia a negrita con esta orden, puede también utilizarse, con el mismo paquete, $\pmb{H}$.

Algunas preguntas de corta respuesta.

¿Cómo se escriben los números combinatorios (por ejemplo N sobre k)?

\binom{N}{k}, disponible en el paquete amsmath.

¿Cómo represento un tensor con sus índices?

Puede probarse con el paquete tensind, disponible en CTAN:/macros/latex/contrib/supported/bezos/.

¿Qué símbolos están disponibles para LaTeX?

Además de los símbolos básicos de LaTeX muchos otros símbolos están disponibles a través de distintos paquetes. Una excelente referencia a todos los símbolos disponibles se encuentra en CTAN://tex-archive/info/symbols/comprehensive

8.10 ¿Cómo hago cuadernillos con TeX o LaTeX?

Para hacer cuadernillos estrictamente con con TeX o LaTeX se pueden utilizar las utilidades para manipular .dvi (disponibles en CTAN/dviware/dvibook) o utilizar el paquete quire (disponible en CTAN/macros/generic/midnight). Ambos permiten hacer cuadernillos, pero en ambos casos es necesario tener los tipos para los distintos tamaños antes y después, y dan problemas con facilidad cuando se incluyen gráficos externos.

El método más recomendable es utilizar las psutils, un conjunto de utilidades para manejar archivos postscript. Aunque el ejemplo está para un unix, también están disponibles para DOS, lo único que en vez de mandarlo a la cola de impresora se mandaría a un archivo que después se imprimiría con ghostscript/ghostview.

Para Unix por ejemplo, si se colocan adecuadamente las hojas en la impresora

psbook tu_archivo.ps | psnup -n 2 -pa4 | psselect -o | lpr 
imprimiría las caras impares del librillo (cada una de ellas con dos páginas reducidas y correctamente ordenadas). Se sacan las hojas, se ordenan adecuadamente y se colocan adecuadamente en la impresora y
psbook tu_archivo.ps | psnup -n 2 -pa4 | psselect -e | lpr 
imprimiría las caras pares del librillo, y ya está, se tiene un librillo perfecto. La utilidad pstops también permite hacer todo eso directamente, pero con unas opciones mucho más crípticas.

psbook también permite definir el tamaño del pliego, cuando el libro va a constar de distintos pliegos cosidos, cada uno de ellos de un número de páginas. Por ejemplo,

$ psbook -s 16 manualA4.ps 
reordenaría las páginas para hacer pliegos de 16 páginas, y su salida se pasaría después por psnup y psselect. El comportamiento por omisión consiste en hacer un único pliego.

8.11 ¿Cómo puedo preparar una exposición utilizando LaTeX?

Haciendo transparencias con LaTeX

En primer lugar se tiene la clase de documento slides, que forma parte de LaTeX2e. Además, existen varios paquetes preparados para hacer transparencias. Los más clásicos son

Haciendo una presentación con LaTeX

También es posible generar directamente las transparencias en formato .pdf ¿Qué es el formato pdf? utilizando los paquetes pdfslide (CTAN/macros/latex/contrib/supported/pdfslide) y pdfscreen (CTAN/macros/latex/contrib/supported/pdfscreen), quedando las presentaciones preparadas para ser proyectadas desde un ordenador. Otra alternativa consiste en utilizar la clase de documento foils (parte de foiltex) y pdflatex, utilizando posteriormente el postprocesador ppower4 ( http://www-sp.iti.informatik.tu-darmstadt.de/software/ppower4/index.html) para tratar el archivo pdf obtenido. Un ejemplo de presentación realizada con este sistema es la de Luis Seidel al EGUTH99, disponible en ftp://tex.unirioja.es/pub/tex/EGUTH99/texweb

Otra fuente de información acerca de las posibilidades de presentaciones basadas en TeX y PDF, es la página http://www.cds.caltech.edu/caltex/2000/ de Ross Moore, que incluye fuentes de documentos, ejemplos,enlaces,...

Preparando un poster con LaTeX

Por una parte existe un paquete llamado a0poster (CTAN/macros/latex/contrib/supported/a0poster) y por otra existe una alternativa basada en un prograna C llamado póster (CTAN/support/poster. Este último distribuye el texto en páginas A4 que pueden unirse para hacer un póster grande.

Más información sobre presentaciones

La página web http://www.math.uakron.edu/~dpstory/pdf_demos.html enumera una serie de macros de LaTeX y otros programas utilizados para hacer presentaciones tipo PowerPoint.

8.12 Algunas cosas que a veces se piden para mandar un documento a la imprenta.

La forma en que se debe mandar un documento a la imprenta no es única, sino que depende del tipo de proceso de impresión por el que vaya a pasar el documento. En buena parte de los casos debiera bastar con enviar un archivo postscript normal con el documento. Sin embargo, a veces se pide el documento con características especiales como las que a continuación se tratan,

Sacando la imagen especular de un archivo (se decir, con todo al revés).

Con LaTeX puede hacerse utilizando el paquete crop, en la forma

\usepackage[mirror]{crop}
La reflexión especular se puede hacer directamente en el postscript, en las tres formas siguientes (si se tiene una distribución completa y actual como teTeX)
dvips <archivo dvi> -h mirr.hd 
dvips <archivo dvi> -Pmirr
dvips <archivo dvi> -Pmirrorprint
Realmente las dos primeras son la misma, pero llamadas de distinta forma (config.mirr llama a mirr.hd). crop y mirr.hd están disponible en muchas distribuciones y además pueden encontrarse en CTAN/macros/latex/contrib/supported/crop/ y CTAN/macros/generic/TeX-PS/mirr.hd

Sacando el archivo en negativo (es decir, blanco sobre negro).

Para sacar el archivo en negativo puede utilizarse el paquete crop, cargándolo como

\usepackage[invert]{crop}

Marcas de corte.

Para hacer los cortes, o marcas de corte (las líneas que señalan por donde deberá cortar la guillotina) puede utilizarse el paquete crop al que se acaba de hacer referencia. Dentro de las midnight macros (disponibles en CTAN/macros/generic/midnight se puede utilizar quire que también permite hacer marcas de corte

8.13 Algunas cuestiones adicionales, o menos FAQ

¿Cómo evito que se pegue el texto después de una orden?

Es decir, como evitar que si se escribe algo como \LaTeX es ... aparezca como LaTeXes ... con el texto pegado. Para ello hay varias formas, algunas más elegantes que otras. Las más sencillas son escribirlo bien como \LaTeX{} es ... o como \LaTeX\ es .... Sin embargo esto no resulta demasiado elegante, aunque es inevitable cuando se utiliza con órdenes predefinidas. Cuando estas órdenes están definidas por el autor del documento, resulta muy cómodo utilizar el paquete xspace, parte de las herramientas básicas de LaTeX2e. La forma de uso es simple, debe incluirse en el preámbulo del documento la llamada al paquete, \usepackage{xspace} y al definir la orden se hace como

\newcommand{\mycommand}{palabra\xspace}
De este modo cualquier llamada a \mycommand incluirá el espacio en blanco si es necesario, y no lo hará si no es necesario.

¿Es posible poner en el margen derecho o izquierdo una imágen?

Para colocar una figura en el margen:

\marginpar{\includegraphics{icono}}

¿Puedo hacer referencias cruzadas a notas a pie de página, incluso desde otras notas a pie de página?

Perfectamente, con \label puesto dentro de la nota al pie (\footnote{\label{f1}Texto} y \ref puesto en su lugar (\footnote{Esta nota hace referencia a la nota \ref{f1} de la página \pageref{f1}}). Mediante \label se establece la referencia al último contador incrementado, en este caso el de las notas al pie.

Naturalmente, hasta que no esté la segunda nota, con su \label correspondiente, el \ref que se ha puesto en la primera no tendrá valor asignado, y al componer el texto parcial, en lugar del número de la nota aparecerán los típicos símbolos de interrogación de cerrar.

¿Puedo acumular las notas a pie de página al final del capítulo?

Sí, utilizando el paquete endnotes.

¿cómo conseguir que la llamada a la nota de pie de página no sea un número, sino una letra?

Por ejemplo con

\renewcommand{\thefootnote}{\itshape\alph{footnote}}
(Las llamadas con letras deben ser con cursiva, y se suelen reservar para cuadros y similares.)

¿Puedo escribir notas a pie de página en el margen?

\marginpar{\footnotemark}\footnotetext{Texto de la nota}

¿Cómo saco un listado bonito de un programa en un documento LaTeX?

Más bonito que utilizar verbatim queda con cualquiera de los paquetes listings.sty, lgrind o fancyvrb.sty

¿Cómo obtener el símbolo del euro?

Utilizando el paquete eurofont de CTAN. Contiene instrucciones acerca de su uso con LaTeX.

¿Cómo escribir los grados en LaTeX?

Para obtener un resultado de mejor calidad que con ^\circ puede utilizarse la orden \textdegree del paquete textcomp.

¿Cómo encerrar un caracter en un círculo?

Utilizando la orden \textcircled{...}

¿Cómo colorear celdas en LaTeX?

Utilizando el paquete colortbl (junto con el paquete graphicx) Algo como

\multicolumn{1}{>{\columncolor[gray]{0.8}}c}{text} 
debe colorear una celda.

¿Cómo cancelar elementos en una ecuación en LaTeX

Mediante el paquete cancel.sty

¿Cuál es la instrucción para poner el producto vectorial?

\times o \wedge, según la forma que prefieras (cruz y angulito, respectivamente).

¿Cómo centrar elementos más grandes que el ancho de línea?

Por ejemplo, para una figura puede hacerse de la forma siguiente:

\begin{center}
  \makebox[0cm][c]{\includegraphics{tufigura.eps}}
\end{center}
o en general,
\begin{center}
  \makebox[0cm][c]{
  Material tabular, o cualquier otra cosa.
  }
\end{center}
Si se desea usar el entorno table, para poder poner el correspondiente \caption, la cosa se complica un poco ya que por alguna razón \makebox no admite el entorno table en su interior:
\begin{center}
  \begin{table}
  \centering\makebox[0cm[c]{
    \begin{tabular}{|c|c|}
          ...... ....
    \end{tabular}
  }
  \caption{Texto}
  \end{table}
\end{center}

¿Cómo saber el número de páginas de un documento para utilizarlo en el mismo?

El paquete lastpage lo resuelve de forma adecuada (necesitará un par de compilaciones)

¿Cómo obtener el tamaño de una tabla

Una posibilidad consiste en fabricar la tabla dentro de un savebox con el entorno lrbox y luego medirlo con \widthof, etc. del paquete calc. Si se usa longtable, este procedimiento no funciona, ya que se extiende por varias páginas. Sin embargo longtable precisamente escribe la longitud de cada fila de la tabla en el fichero .aux, por lo que se podría recuperar desde allí. En concreto, longtable escribe la definición de una macro \LT@<num>, donde <num> es un número de orden correlativo de cada entorno longtable (en romano y en minúsculas) que contiene las longitudes de cada columna.

¿Cómo evitar que una url muy larga se me desborde por la derecha?

Utilizando el paquete url. Está pensado precisamente para eso, para dividir los urls por puntos adecuados que no afecten a su legibilidad, como por ejemplo en las barras separadoras de directorio.

¿Como se escribe parte de un texto a 2 columnas?

Por ejemplo, utilizando el paquete multicol.

¿Cómo cambiar el grosor que tienen definido por omisión las líneas que separan las columnas y filas dentro de tablas?

Por ejemplo con renewcommand{\arrayrulewidth}{1.1pt}

¿Como hacer que la clase report comience índice y capítulos en páginas impares?

Con la opción openfight. Por ejemplo

\documentclass[12pt,a4paper,openright]{report}

8.14 ¿He encontrado un error en LaTeX ¿Cómo lo notifico?

Para notificar errores o problemas se escribe latex latexbug y se envía el informe así generado a latex-bugs@rus.uni-stuttgart.de. Se recomienda previamente leerse las distintas FAQ y pedir ayuda en los distintos foros acerca del problema, y sólo entonces, cuando se esté seguro que el problema es de LaTeX2e mandar el informe de error.


Página siguiente Página anterior Índice general