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 archivo .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, TeX Live, 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 o en una rama personal, dependiendo de si son archivos para uso común en la máquina o únicamente para el usuario. De esta forma puede actualizarse el árbol oficial sin tocar los archivos locales o personales. Para la rama local, el directorio raíz local tendrá un nombre del tipo:
    texlive (win):  c:\texmf-local\
    texlive (unix): /usr/local/share/texmf/
    fpTeX:          c:\fptex\texmf.local\
    mikTeX:         c:\localtexmf\
                      
    
    que puede cambiar dependiendo de las opciones dadas durante la instalación o de las peculiaridades de la distribución concreta. Por simplicidad en lo que sigue le denominaremos $TEXMFLOCAL.
  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: $TEXMFLOCAL/tex/latex/<paquete>/
    .dvi, .ps o .pdf: $TEXMFLOCAL/doc/latex/<paquete>/
    .bib:             $TEXMFLOCAL/doc/bibtex/bib
    .bst:             $TEXMFLOCAL/doc/bibtex/bst
    .tfm:             $TEXMFLOCAL/fonts/tfm/<suministrador>/<fuente>/
    .vf:              $TEXMFLOCAL/fonts/vf/<suministrador>/<fuente>/
    .afm:             $TEXMFLOCAL/fonts/afm/<suministrador>/<fuente>/
    .pfb:             $TEXMFLOCAL/fonts/type1/<suministrador>/<fuente>/
    .ttf:             $TEXMFLOCAL/fonts/truetype/<suministrador>/<fuente>/
    
    donde paquete, fuente y suministrador dependen de cada archivo individual de cada paquete.

    La rama personal suele estar en un subdirectorio texmf del directorio de usuario, pero puede cambiar. En ella también es necesario reproducir la estructura de directorios de la rama principal. Dependiendo de la distribución y/o de las opciones de configuración puede ser necesario rehacer la base de datos cuando se añaden o quitan elementos.

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:

TeXLive, 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. Leer el principio del fichero, ya que puede haber sido generado automáticamente. Si es así, seguir las instrucciones que allí aparezcan. En algunos casos puede ser necesario borrar la palabra original en la primera línea del archivo si está allí.

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/local/share/texmf
HOMETEXMF = $HOME/texmf
en el caso de que no estuviera o estuviera comentada. 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.

Las distribuciones TeX/LaTeX para windows suelen tener, en su gestor, una opción para rehacer las bases de datos. En caso contrario, es necesario hacerlo manualmente,

Por ejemplo, para hacerlo manualmente para TeXLive, teTeX, fpTeX sería necesario correr

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

En una distribución MikTeX anterior a la v2.0, hacer con los menús 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á. Para buscar un fichero concreto
% kpsewhich fichero

8.2 ¿Cómo personalizo el aspecto del documento?

¿Cómo cambio la fuente de un documento o instalo nuevas?

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.

Hay muchos tipos de letras ya preparados así: times, helvetica (arial está casi clonado de esta), courier, la letra gótica se llama oldgerm, griego...

Un segundo paso es ir al CTAN para ver si alguien ha preparado un paquete con el tipo deseado.

En el peor de los casos en el que no esté preparado, puede crearse manualmente un paquete a partir de los tipos originales en formato Type-1, aunque no es un proceso inmediato. Más información en CTAN:info/Type1fonts/fontinstallationguide/fontinstallationguide.pdf.

¿Puedo utilizar una fuente TrueType como Arial en LaTeX?

A veces se piden tipos de letra que no están disponibles directamente en LaTeX como Arial. El tipo de letra Arial es TrueType, y este formato no es soportado directamente por LaTeX. Desde pdflatex sí es posible usar tipos TrueType, pero antes hay que crear unos cuantos archivos auxiliares que necesita TeX. El proceso no es sencillo. Está descrito en http://www.radamir.com/tex/ttf-tex.htm

Recientemente ha aparecido otro documento que explica cómo convertir los tipos TrueType en tipos PostScript, y cómo usar estos tipos convertidos desde latex->dvips. El documento se encuentra disponible en CTAN:info/TrueType/ y está orientado a un sistema tetex, por lo que es posible que no funcione bajo windows/miktex.

El tipo de letra helvetica es muy parecido al tipo Arial y sí está disponible bajo LaTeX. Basta con añadir en el preámbulo del documento

\renewcommand{\rmdefault}{phv}
\renewcommand{\sfdefault}{phv}
pero si hay fórmulas matemáticas éstas seguirían utilizando los tipos computer modern por lo que quedarán feas en medio del texto en helvetica.

Incluyendo subdocumentos TeX/LaTeX en el documento

Pueden incluirse subdocumentos TeX/LaTeX en un documento mediante las órdenes \input e \include. \input{otro_documento} lo incluirá en el lugar en el que se introduce la orden, mientras que \include{otro_documento} siempre abrirá una página nueva al incluir el documento. Sin embargo, \include permite incluir documentos de forma selectiva mediante la orden \includeonly, mientras que \input no lo permite. Así, la orden \includeonly{doca,docc} en el preámbulo hará que se incluyan únicamente los documentos doca y docc, a pesar de que también docb tenga un \include,

...
\includeonly{doca,docc}
\begin{document}
...
\include{doca}
\include{docb}
\include{docc}
...

¿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 Cambio de nombre de secciones

¿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 cambio la apariencia de los pies de figura y tabla? Mediante el paquete caption,

Quiero una sección no numerada, pero que aparezca en la tabla de materias.

Por ejemplo, suponiendo que se trate de una lista de símbolos,

\section*{Lista de símbolos}
\addcontentsline{toc}{section}{Lista de símbolos}
Lo mismo para otros elementos (subsección,...).

No me funciona \subsubsubsection.

\subsubsubsection no existe, en los estilos estándar es \paragraph quien hace ese papel.

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

Si se quiere controlar cuándo 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}

Otra posibilidad es utilizar el paquete nextpage,

\usepackage{nextpage}
...
\cleartooddpage[\thispagestyle{empty}]
\chapter{...}

¿Cómo quito los encabezados, pies o la numeración de las páginas?

La opción \pagestyle{empty} quitará los encabezados y pies de todas las páginas posteriores a aquélla en la que se invoca. La opción \thispagestyle{empty} quitará los encabezados y los pies de página en la página donde se invoca esta orden.

Cuando lo que se quiere es eliminar únicamente el número de página, en general no es conveniente utilizar \renewcommand{\thepage}{} porque eso suprime todos los números de página, incluidos los de los índices o las remisiones. Por tanto, hay que evitarla siempre que se pueda y optar por soluciones mejor construidas y específicas a cada caso, como utilizar una definición personal de cabeceras que pueda activarse a voluntad para ciertas páginas.

¿Cómo pongo encabezados o pies de página a mi gusto?

La forma más habitual es utilizar el paquete fancyhdr. Por ejemplo, con pies

\documentclass{book}
\usepackage{fancyhdr}
\lfoot{titulo a la izquierda}
\rfoot{titulo a la derecha}
\cfoot{titulo al centro}
\pagestyle{fancy}
\begin{document}
\chapter{A title}
\thispagestyle{fancy} %opcional
\newpage
\section{a section}
\end{document}
pero titlesec también permite un amplio control del estilo de página.

¿Cómo hago que LaTeX y TeX no partan nunca las palabras?

Para LaTeX si se ha cargado el paquete babel basta con la orden

\hyphenrules{nohyphenation}
Por supuesto el patrón nohyphenation debe de estar activado en language.dat y el formato creado con él (Véanse ¿Cómo activo el patrón de partición de palabras para el castellano? y ¿Cómo rehacer los formatos?).

Para TeX hay que hacer las cosas de otra forma. 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
}
Ésto puede utilizarse también para LaTeX

¿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 entre líneas 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ándar 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.

La forma más cómoda de controlar el espaciado entre párrafos es mediante el paquete parskip.

¿Cómo puedo dejar a mi gusto la numeración de tablas, figuras, capítulos, etc..?

Una excelente página (en inglés) sobre numeraciones, http://www.iam.ubc.ca/~newbury/tex/numbering.html, debida a Peter Newbury.

8.3 Listas al gusto de cada cual.

¿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.

El valor de \itemsep se restablece con cada \begin{itemize} (o la lista de que se trate), y se hace igual a \parsep, por lo que hay que modificarlo dentro de la lista, 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}}
Puede hacerse que la separación sea nula, mediante \setlength{\itemsep}{-\parsep}

Hacer el cambio para todas las listas es algo más complejo, pero una forma de hacerlo sería redefinir \itemize (y lo mismo para las demás listas) en la forma

\let\olditemize\itemize
\def\itemize{\olditemize\itemsep=0pt }
donde en este caso se ha puesto un valor de 0pt a \itemsep en todas las listas enumeradas.

¿Cómo cambio el tipo de numeración en las listas numeradas?

Por ejemplo, para que escriba los elementos de primer nivel con números como 1 y los de segundo nivel con números en la forma 1.1

\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumi .\theenumii .}
Si algún paquete que estés usando redefine los \theenum, como el babel-spanish, entonces debes asegurate que LaTeX elija tus parámetros colocando las órdenes anteriores entre:
\AtBeginDocument{%
comandos aqui..
}

Quiero mostrar un símbolo distinto en las listas itemize

Dentro de un itemize, puede especificarse en cada \item un parámetro opcional, que es el símbolo que se mostrará (en lugar del topo por defecto), por ejemplo, \item[$\odot$], y si se quieren cambiar todos, con el mismo ejemplo,

\renewcommand{\item}{\item[$\odot$]}
o, mediante el paquete paralist,
\usepackage{paralist}
...
\begin{itemize}[$\star$]
\item ...
\item ...
\end{itemize}

También puede utilizarse el paquete pifont, así:

\usepackage{pifont}
\begin{Pilist}{pzd}{248}
\item bla
\item bla bla
\item bla
\end{Pilist}

El entorno Pilist es análogo a itemize, pero en lugar del bullet usa el caracter que se le pida de la fuente que se le pida. En el ejemplo anterior, se usa el carácter con código 248 de la fuente pzd que tiene gran cantidad de simbolos adecuados para itemize.

¿Puedo ajustar la separación entre texto y listas?

Con el paquete enumitem, en CTAN:macros/latex/contrib/bezos/.

¿Cómo interrumpir una lista numerada con un comentario y continuar después con la numeración correcta?

Entre las mdwtools hay un paquete llamado mdwlist que permite hacer eso:

 \begin{enumerate}
 \item ...
 \item ...
 \suspend{enumerate}
Texto...
 \resume{enumerate}
 \item ...
 \item ...
 \end{enumerate}
Disponible en CTAN:macros/latex/contrib/supported/mdwtools/

¿Puedo hacer listas en paralelo?

Para crear listas numeradas o por elementos de la forma

1.  Primer elemento       2. Segundo elemento     3. Tercer elemento
4.  Cuarto elemento       5. Quinto elemento      6. Sexto elemento
puede utilizarse el paquete paralist (disponible en CTAN:macros/latex/contrib/supported/paralist) o bien el paquete multicol. También existe el paquete multienumerate (CTAN:macros/latex/contrib/supported/multenum) y el entorno shortenumerate del paquete shortlst (CTAN:macros/latex/contrib/supported/shortlst) destinado a listas de elementos cortos.

8.4 Referencias cruzadas, índices, bibliografías y tablas de materias.

¿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/

jabref

http://jabref.sourceforge.net/ es una interfaz gráfica escrita en java para manejar bases de datos bibliográficas. Necesita Java >= 1.4.2

¿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

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

Los paquetes multibib y bibtopic 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 TeXLive 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.

Afinando el aspecto de la tabla de materias o listas de figuras y tablas.

¿Cómo controlar hasta qué nivel se incluye un elemento en la tabla de materias?

En general, con

\setcounter{tocdepth}{X}
en el preámbulo se controla hasta que nivel se incluirá en el índice general, siendo X un número. Con 3 se incluye hasta \subsubsection, con 2 hasta \subsection. Ésto permite cambiar el valor definido por omisión en el estilo utilizado.

El título del capítulo, figura o tabla se solapa con su número si éste tiene muchos dígitos

Para las listas de figuras y tablas la separación se define en \l@figure} o \l@table, por ejemplo book.cls lo hace así para las figuras

\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
En un estilo o en el preámbulo entre makeatletter/makeatother pueden redefinirse sus valores cambiando el último número. Por ejemplo, en el preámbulo
\makeatletter
\renewcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{3.3em}}
\renewcommand*{\l@table}{\@dottedtocline{1}{1.5em}{2.8em}}
\makeatother
Para las entradas de la tabla de materias sería necesario cambiar los valores de \l@section, \l@subsection, \l@subsubsection, \l@paragraph o \l@subparagraph de una forma análoga. Para los capítulos la cosa es más problemática porque se cambian más cosas.

El paquete tocloft permite controlar detalles del diseño tipográfico de las tablas de materias y de las listas de figuras y tablas, aunque su integración con otros paquetes como titlesec no está suficientemente probada.

8.5 ¿Cómo introduzco dibujos, diagramas e imágenes 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. Si se quiere obtener el resultado final en pdf hay una serie de limitaciones que hay que tener en cuenta, véase ¿Cómo obtengo un documento PDF a partir de mi documento TeX?

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.

pgf

pgf (portable graphics format) es un paquete de macros TeX para crear dibujos. Su uso recuerda a pstricks y, aunque es menos potente que éste, tiene la ventaja de que es compatible tanto con dvips como con pdfTeX.

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 y para ver algunos ejemplos de lo que se puede hacer con metapost, pueden seguirse los enlaces citados en http://ltx.blogspot.com/2003/09/ms-recursos-metapost.html.

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.

De los formatos externos, ¿hay alguno preferible a la hora de imprimir?

Tipos básicos de gráficos: bitmap y vectoriales

En el mundo de los gráficos por ordenador existen básicamente dos tipos de formatos: los "bitmap" (al que pertenecen jpeg, PNG, GIF, y otros específicos de programas de retoque fotográfico como el Gimp, el Adobe Photoshop o el Corel Paint) y los comúnmente llamados "vectoriales" (que son los generados por programas de diseño gráfico como Corel Draw, Visio, o Xfig).

La diferencia básica entre ambos es que los "bitmaps" son en esencia una rejilla de puntos, con la especificación del color en que debe ser pintado cada uno de los puntos, por lo que un programa que quiera mostrar un gráfico de estos en pantalla simplemente deberá pintar los pixels en los colores especificados en el fichero.

Los "vectoriales" en cambio contienen más bien una lista de "objetos matemáticos" como rectas, arcos de circunferencia o curvas de bezier. Para poder mostrar un gráfico vectorial en pantalla, el programa debe hacer los cálculos pertinentes para averiguar qué pixels debe pintar (siguiendo la ecuación de la recta o de la curva en cuestión).

Ventajas e inconvenientes

Los bitmaps son adecuados para almacenar fotografías, pues es casi imposible definir estas a base de primitivas matemáticas y resulta mucho más simple muestrear los colores de la misma en un conjunto de puntos.

Los vectoriales son adecuados para almacenar dibujos de tipo geométrico, como la mayoría de las ilustraciones técnicas, y también para almacenar tipos de letras escalables.

Y aqui llegamos al meollo. Un bitmap básicamente no puede ser reescalado a menos que inventemos información. Supongamos un bitmap con un tamaño de 100x100 pixels. ¿Cuánto es esto en milímetros? Resulta que la respuesta depende del dispositivo que vaya a mostrar el bitmap. Así en un monitor que funcione a 320x200, este bitmap ocupará más de 1/4 de la pantalla. Sin embargo en uno que funcione a 1024x768 será póco más de 1/10. Y en una impresora láser será apenas visible, pues éstas suelen trabajar a una resolución de 300ppp (ó 600ppp) por lo que el gráfico en cuestión ocuparía un tercio de pulgada (o un sexto). Si queremos aumentarlo hasta que ocupe toda una página, no queda más remedio que inventarse todos los pixels que faltan. La forma más sencilla de hacer esto es repetir N veces cada uno de los pixels de la imagen original. El efecto es que cada uno de los pixels de la imagen original es ahora un cuadrado bastante visible, la imagen toma aspecto de "tablero de ajedrez".

Los vectoriales no tienen este problema, ya que el fichero contiene cosas como: "una recta que va desde el punto 0,0 hasta el punto 1cm,1cm", pero no especifica el número de pixels necesarios para trazarla. Así, una pantalla puede trazar esta recta usando 100 pixels, mientras que una impresora puede necesitar 900. En todo caso, la ecuación de la recta contiene información necesaria para "inventar" todos los pixels intermedios y poder por tanto trazarla a cualquier resolución.

¿Conviene convertir a postscript un bitmap?

El PostScript (y el eps) admiten tanto gráficos vectoriales como bitmaps. Es la herramienta que genera el eps la que decide cuál de los dos usar. En caso de programas de retoque fotográfico, orientados a bitmaps, el eps que te generarán contendrá un bitmap, con los problemas de escalado ya comentados. En caso de programas orientados a diseño o dibujo técnico te generarán un eps "vectorial".

Usar un programa como Gimp para generar eps no es buena idea. para incluir un bitmap en el documento es preferible usar como formato jpeg y hacer uso de un programita llamado jpeg2ps disponible en CTAN. Tratar de exportar eps desde el Gimp sólo empora las cosas, porque a fin de cuentas el resultado no es vectorial, y además el tipo de eps que se genera ocupa muchísimo. El jpeg ocupa mucho menos y puede ser "incrustado" dentro de un eps sin convertirlo. Basta añadirle una cabecera adecuada (que es lo que hace jpeg2ps). Ahora bien, el inconveniente es que este tipo de jpeg incrustado sólo será impreso correctamente por una impresora PostScript de Nivel 2 (o por otra impresora soportada por Ghostscript).

hay que tener en cuenta que si se va a generar directamente pdf el .jpg puede utilizarse directamente sin necesidad de conversión.

Incluyendo ficheros metapost en LaTeX

El fichero generado mediante metapost o metagraf es válido tanto para dvips como para dvipdf (o para pdflatex). El único detalle a tener en cuenta es que metapost suele generar ficheros con extensión .1, .2, .3 ... y deben renombrarse a .mps para que el paquete graphicx reconozca el formato y los pille.

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.

Inclusión de una imagen desde un pdf con múltiples páginas.

Puede hacerse con el paquete graphicx

\includegraphics[page=6]{archivo}
o con el paquete pdfpages,
\usepackage{pdfpages}
...
\begin{document}
\includepdf[pages={3-7,9}]{/path/to/other.pdf}
\end{document}

¿Cómo coloco una imagen de fondo en una página?

El paquete eso-pic te permite poner como fondo en la página cualquier imagen.

¿Puedo poner mis imágenes en un subdirectorio?

Hay dos formas de conseguirlo, la primera consiste en poner la llamada a cada figura en la forma

\includegraphics[opciones_de_figura]{imagenes/nombre_de_figura}
y la segunda decirlo para todas añadiendo en el preámbulo la información sobre el directorio, algo de la forma
\graphicspath{{imagenes/}}%directorio donde se almacenan las imágenes
y luego llamando a cada figura como
\includegraphics[opciones_de_figura]{nombre_de_figura}

Introduciendo código y figuras postscript en pdfTeX

PDFTeX -- véase la pregunta ¿Cómo obtengo un documento PDF a partir de mi documento TeX? -- no permite la inclusión directa ni de código ni de figuras PostScript. Pueden incluirse figuras en pdfTeX siempre que éstas estén en alguno de los formatos jpeg, pdf ó png (Véanse en el párrafo siguiente las extensiones por omisión que se esperan para cada formato). Parece que el soporte para formato TIFF se ha eliminado a partir de la versión 1.10a de pdfTeX, por lo que aunque se vuelva a poner es preferible utilizar alguno de los formatos anteriores. 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 TeXLive) para conversión directa entre los formatos .eps y .pdf

Aunque no de forma directa, el paquete tex4pdf, disponible en CTAN:macros/latex/contrib/ps2pdf permite incluir figuras y código postscript (figuras pstricks y eps, cadenas psfrag, reescalados postscript) en un documento procesado con pdflatex, pero necesita versiones recientes de los paquetes preview, ifpdf e ifvtex y del sistema TeX/LaTeX, así como adaptar el documento LaTeX para su uso. También pueden utilizarse, con mejor o peor fortuna otros mecanismos (Véase ¿Cómo obtengo un documento PDF a partir de mi documento TeX?)

Para incluir una figura en pdfTeX se deben seguir los mismos pasos que para incluir una figura PostScript encapsulado en LaTeX. Cuando la figura se tiene en dos formatos distintos, uno para pdfLaTeX y otro para LaTeX/dvips, 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 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 directamente con pdfLaTeX salvo que se utilice vtex. Véase ¿Cómo obtengo un documento PDF a partir de mi documento TeX?. Del mismo modo, las cadenas sustituidas no se ven correctamente en los visores de dvi habituales, sino sólo cuando se ha pasado a postscript. Puede hacerse funcionar con pdfLaTeX de forma indirecta mediante el paquete ps4pdf o programas como tex2pdf.

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}

8.6 Figuras, tablas y elementos flotantes

¿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 puedo poner una figura a dos columnas?

Usando el entorno figure* en vez de figure, para que LaTeX sepa que ese elemento flotante es de doble ancho. Si no, lo considera de ancho normal, y la imagen que se mete dentro, simplemente no cabe y se sale por el otro lado, ocultando el texto de la otra columna.

¿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.

¿Puedo poner una figura en una tabla?

¿Por qué no?,

...
\usepackage{graphcix}
...
\begin{tabular}{ccc}
\includegraphics{fig1} &
\includegraphics{fig2} &
...

¿Cómo colocar dos figuras o tablas juntas de distintas formas?,

Es posible colocar en LaTeX dos figuras o tablas en paralelo, cada una con su pie, así como dos figuras juntas en posición arbitraria o superpuestas dentro de un entorno figure.

Dependiendo de lo que se quiera, puede hacerse bien mediante el paquete subfigure o mediante un entorno minipage (Véase epslatex.ps). subfigure permite numerar las figuras como (a), ... y tener un pie común a las subfiguras más pies individuales para cada subfigura y minipage mantiene los pies normales e independientes para cada figura. Por ejemplo, con minipage,

  \usepackage{capt-of}
  ...
  \begin{figure}
    \begin{minipage}{.5\linewidth}
      Figure
     \caption{Foo}
    \end{minipage}%
    \begin{minipage}{.5\linewidth}
      Table
      \captionof{table}{Too}
    \end{minipage}
  \end{figure}
El uso del paquete capt-of (Véase "¿Puedo poner un pie en tablas y figuras que no flotan?") sería necesario en este caso ya que los dos elementos son distintos, una figura y una tabla, pero no sería necesario si los dos fueran figuras o los dos tablas.

Si lo que se quiere es simplemente colocar dos figuras juntas además de lo anterior sin \caption puede utilizarse algo como

\setlength{\unitlengtth}{1cm}\begin{picture}(12,6)
\put(0,0){\includegraphics[width=6cm]{figura1.ps}}
\put(6,0){\includegraphics[width=6cm]{figura2.ps}}
\end{picture}
Así las figuras se colocan como uno quiera e incluso puede hacerse que una figura se superponga sobre otra (como si fueran fotos en una mesa).

¿Puedo poner un pie en tablas y figuras que no flotan?,

A veces se desea colocar figuras y tablas en un lugar preciso y para ello se prescinde de los entornos figure y table. Sin embargo también se desea poder usar \caption para no perder la numeración y la referencia en la lista de figuras y tablas.

Un equivalente a la orden \caption llamado \captionof puede ser utilizado fuera de entornos flotantes (figure y table) si se hace uso del paquete capt-of. Su sintaxis es \captionof{tipo}[pie corto]{pie largo} donde el pie corto es el opcional que irá a la tabla de figuras/tablas y el tipo es figura/tabla.

La llamada en el documento sería del tipo

\centerline{\includegraphics{mi grafica}}
\captionof{figure}{Esta es mi grafica}
para una figura, mientras que para una tabla se puede usar algo del tipo:
\begin{center}
\begin{tabular}{*2l}\hline\hline
uno   & dos\\
tres  & cuatro\\\hline
\end{tabular}
\end{center}
\captionof{table}{Esto es una tabla} % se puede incluir dentro del entorno center.

¿Cómo hago para incluir elementos flotantes grandes o numerosos sin que den errores o se vayan al final?

Las clases article, report y book estándar son muy exigentes en cuanto a sus "consideraciones estéticas" para poner gráficos flotantes en una página. El caso es que ésto sólo es útil cuando hay pocos objetos flotantes, pero si hay muchos, esta exigencia es contraproducente. Lo que acaba pasando es que LaTeX no encuentra lugares adecuados para poner los gráficos y los acaba mandando todos al final o dando errores. Ante ésto hay varias alternativas.

  1. Usar un especificador de posición más restrictivo, por ejemplo; \begin{figure}[hbtp] o con el paquete float y la opción [H], que sitúa el entorno flotante exactamente en el sitio que se indica. Usado directamente puede dar problemas si justo en ese momento no cabe en la página. Por ello se recomienda usarlo con la orden \afterpage (del paquete afterpage):

                    \afterpage{clearpage\begin{figure}[H]...\end{figure}}
    

  2. Cambiar los parámetros con los que LaTeX ubica los entornos flotantes. Éstos son (entre paréntesis el valor por omisión):

    topnumber

    Número de flotantes en la parte superior de la página (2)

    bottomnumber

    Ídem, parte inferior (1)

    totalnumber

    Ídem, total (3)

    Si las figuras son pequeñas, aumentar estos valores (con \setcounter, son contadores) puede ayudar.

    Otros parámetros que se pueden cambiar (éstos ya con \renewcommand) son

    \topfraction

    Fracción del espacio superior de la página que puede ser ocupado por entornos flotantes, en la parte superior de la página (0.7)

    \bottomfraction

    Ídem, en la parte inferior (0.3)

    Aumentando estos valores se consigue que LaTeX sitúe entornos flotantes mayores que la proporción indicada. Finalmente, mencionemos
    \textfraction

    Mínima fracción de una página que debe ser ocupada por texto (0.2)

    \floatpagefraction

    Mínima fracción de una página (sólo entornos flotantes) que puede ser ocupada por ellos (0.5)

    Aumentando este último valor se consigue que no haya demasiadas páginas con entornos flotantes "pequeños". Si las figuras no ocupan toda la página, puede probarse a aumentar este último valor.

    De forma orientativa, pueden tomarse valores de otras clases que se sepa se comportan mejor. Por ejemplo, la clase amsart.cls tiene los siguientes parámetros, mucho mas flexibles,

    \setcounter{topnumber}{4}
    \setcounter{bottomnumber}{4}
    \setcounter{totalnumber}{4}
    \setcounter{dbltopnumber}{4}
    \renewcommand{\topfraction}{.97}
    \renewcommand{\bottomfraction}{.97}
    \renewcommand{\textfraction}{.03}
    \renewcommand{\floatpagefraction}{.9}
    \renewcommand{\dbltopfraction}{.97}
    \renewcommand{\dblfloatpagefraction}{.9}
    \setlength{\floatsep}{12pt plus 6pt minus 4pt}
    \setlength{\textfloatsep}{15pt plus 8pt minus 5pt}
    \setlength{\intextsep}{12pt plus 6pt minus 4pt}
    \setlength{\dblfloatsep}{12pt plus 6pt minus 4pt}
    \setlength{\dbltextfloatsep}{15pt plus 8pt minus 5pt}
    

  3. Cuando se quiere hacer para una única figura puede utilizarse el paquete afterpage, por ejemplo en
    \usepackage{afterpage}
    ...
    \begin{figure}
    \includegraphics{figura-muy-grande}
    \end{figure}
    \afterpage{\clearpage}
    
    la figura grande pasará a la página siguiente (donde quedará sola), en lugar de irse al final del documento.

8.7 ¿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 sideways, sidewaystable y sidewaysfigure. Por ejemplo,

\documentclass{article}
\usepackage{rotating}
\begin{document}
\begin{sideways}
\begin{tabular}....

\end{tabular}
\end{sideways}
\end{document}
Hay que tener en cuenta que en todos estos casos se modifica el postscript, por lo que los resultados no se ven correctamente con xdvi ni funcionan bien con pdflatex.

8.8 ¿Cómo escribo algunos símbolos?

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

Utilizando el paquete eurofont de CTAN. Contiene instrucciones acerca de su uso con LaTeX. La notación de entrada normal es \EUR{1,50}. También puede utilizarse el paquete textcomp y la macro \texteuro.

¿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 escribir la barra invertida?

Como texto: \textbackslash. Como matemáticas: \backslash. Como código: \verb|\|

¿Cómo escribir un espacio en blanco visible?

Utilizando la orden \textvisiblespace

¿Cómo escribir el símbolo del sombrerito de la ñ?

Utilizando la orden \textasciitilde

8.9 ¿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, que se archiva en CTAN:help/wp-conv/wp-conv.zip.

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

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

Cuando el documento de entrada no contiene únicamente texto TeX/LaTeX sino también figuras en postscript encapsulado o utiliza paquetes que mediante código postscript cambian el texto (rotaciones, reescalados, sustitución de cadenas) o dibujan, las cosas son un poco más complicadas ya que pdfTeX no lo soporta directamente. El camino dvi->ps->pdf que se ha señalado antes debe funcionar pero pueden perderse por el camino algunas características del pdf. Otros caminos alternativos pasan por convertir sobre la marcha a pdf las figuras y efectos postscript. Esto puede hacerse, con más o menos limitaciones de distintas formas:

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

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

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

En la página http://www.mayer.dial.pipex.com/tex.htm se comentan diferentes programas de conversión de LaTeX a html con ejemplos del resultado de las distintas conversiones. Los más conocidos son

HEVEA

es un conversor de LaTeX a html bastante completo, que convierte los símbolos sin utilizar gráficos (aunque puede requerir un poco de configuración del navegador). Disponible en http://para.inria.fr/~maranget/hevea/. Tiene versiones para Linux, Solaris y Windows aunque es posible compilarlo para otros sistemas operativos a partir del código fuente.

TTH

es otro conversor de LaTeX a html que también convierte las ecuaciones en vez de representarlas como imágenes. Disponible en http://hutchinson.belmont.ma.us/tth/. Tiene versiones para Linux, Mac y Windows aunque es posible compilarlo para otros sistemas operativos a partir del código fuente. Utiliza gráficos.

TeX4ht

es otro conversor a distintos sistemas de hipertexto, disponible en http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html. Tiene versiones para Linux, Mac y Windows aunque es posible compilarlo para otros sistemas operativos a partir del código fuente.

latex2html

es quizás el más antiguo de los conversores, escrito en perl y utiliza gráficos.

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.

También hay un par de conversores comerciales, word2tex y tex2word.

8.10 ¿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 TeXLive después de configurar los distintos parámetros del formato (idioma, tamaños de memoria...) al salir se rehace automáticamente el formato, lo mismo que después de instalar un nuevo paquete, o en mikTeX donde hay un elemento en un menú desplegable para rehacer los formatos ( o desde una ventana DOS initexmf --dump).

8.11 ¿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.12 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}
Existe otro paquete denominado tipa, disponible en CTAN:/fonts/tipa. Éste es un sistema para trabajar con alfabetos fonéticos, que proporciona la orden \texttoptiebar{'caracter'} donde 'caracter' obviamente es un numero(s) o una letra(s).

¿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}$.

¿Puedo rotar una ecuación?

Puede utilizarse la orden rotatebox del paquete graphicx, pero hay que meter la ecuación en un parbox, por ejemplo, utilizando el entorno align, del paquete amsmath,

\rotatebox{35}{
  \parbox{4cm}{
    \begin{align*}
      (la ecuacion)
    \end{align*}
  }
}

Algunas preguntas matemáticas de breve 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/.

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

Mediante el paquete cancel

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

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

¿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.13 ¿Cómo hago cuadernillos, trípticos y documentos con formatos especiales?

¿Cómo hago cuadernillos con TeX o LaTeX?

Para hacer cuadernillos estrictamente 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 hacerlo a partir de los ficheros postscript o pdf generados.

Mediante las psutils

Las psutils son 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.

Mediante el paquete pdfpages

El paquete pdfpages permite operar sobre un fichero pdf para hacer cuadernillos. Por ejemplo, para hacer un único cuadernillo del fichero fichero.pdf se utilizaría

\documentclass[a4paper]{book}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-,booklet=true, landscape]{fichero.pdf}
\end{document}
y para hacer lo mismo, pero en pliegos de 16 páginas cada uno,
\documentclass[a4paper]{book}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-, signature=16, landscape]{fichero.pdf}
\end{document}

¿Cómo hago trípticos con LaTeX?

El paquete leaflet nos permite construir trípticos. Realmente sólo modifica los márgenes de la página completa para dividirla en tres áreas. El resultado al compilar es un documento con 6 páginas como máximo, en el que cada página tiene el texto escrito en una columna estrecha a la izquierda y el resto de la página está en blanco. Este documento aún no está finalizado y debe ser postprocesado. El postproceso lo hace un script (que viene incluido en el paquete), que se ocupa de llamar a pstops (que debe estar instalado) y que es quien junta tres páginas en una, colocándolas en el orden apropiado para que al imprimir a doble cara el resultado sea tres páginas por cara, y de modo que al doblar en tres quede en el orden correcto de lectura. Puesto que pstops funciona sobre ficheros postscript (.ps), el documento original debe ser procesado con dvips (no sirve usar pdflatex).

¿Puedo preparar un póster con TeX/LaTeX?

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

¿Puedo hacer libretos y carátulas de CD con LaTeX?

Sí, con el paquete cd-cover, disponible en CTAN:macros/latex/contrib/cd-cover. Eso sí, a la hora de imprimir hay que decirlo que lo haga en apaisado.

8.14 ¿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

beamer

Una opción que se está haciendo muy popular es la clase beamer, disponible en http://latex-beamer.sourceforge.net/. Aparte del propio manual puede encontrarse una guía rápida en http://www.geocities.com/kijoo2000/beamer.html.

Con beamer se distribuye otro paquete independiente para la inclusión de objetos multimedia en los documentos PDF creados mediante pdftex.

Únicamente se requiere en el preámbulo:

\usepackage{multimedia}
y la inclusión (pero no la incrustación) de ficheros de vídeo AVI o QuickTime es tan fácil como:
\movie[width=60mm,height=45mm,borderwidth=0.5mm]{Título}}{fichero.avi}\\
\movie[width=60mm,height=45mm,poster,showcontrols]{}{fichero.mov}\\
así como para audio (estos sí que pueden ser incrustables):
\sound[inlinesound,samplingrate=22050,encoding=muLaw,bitspersample=8,
channels=2,label=misonido]{}{fichero.au}\\

\hyperlinksound[]{misonido}{\includegraphics[width=10mm]{inicio.png}}
\hyperlinkmute{\includegraphics[width=10mm]{paro.png}}\\

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.

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,...

Otra interesante página es http://www.miwie.org/presentations/, de Michael Wiedmann, que contiene una enumeración de distintos sistemas y se ejemplos de cada uno. No sólo cubre la presentación en PDF, sino también en HTML y otros formatos. Para cada solución, muestra un ejemplo, pros y contras.

Para presentaciones en póster véase la sección pósters.

8.15 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 (es 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 TeXLive)
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.16 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}

¿Puedo escribir notas a pie de página en los títulos de sección?

Sí, pero \footnote debe ser protegido como \protect\footnote. Ésto tiene un problema adicional, saldrá el símbolo de la nota a pie de página en la tabla de materias. El paquete footmisc con la opción stable permite hacerlo de una forma más adecuada.

¿Puedo tener más control sobre la posición de las notas a pie de página?

El paquete yafoot permite un mayor control soble las notas a pie de página, mediante tres ficheros de estilo, pfnote.sty para confinar las notas a pie en una página, fnopos.sty para controlar su posición y dblfnote para hacerlas a doble columna.

¿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, lgrind o fancyvrb

¿Cómo colorear texto en LaTeX?

Algunos ejemplillos para empezar a colorear texto

...
\usepackage{color}
...
\begin{document}
...
\textcolor[rgb]{1,0,0}{soy un texto que quedara en color rojo}
\textcolor[rgb]{1,1,0}{yo soy un texto en amarillo}
\textcolor[rgb]{0,0,1}{hola, soy azul}
\textcolor[rgb]{0,1,1}{soy azul celeste}
\textcolor[rgb]{1,0,1}{yo soy rosa}
\textcolor[rgb]{0,1,0}{yo verde claro}
\textcolor[rgb]{0.5,0,0}{marron}
\textcolor[rgb]{0,0.5,0.5}{azul verdoso}
\textcolor[rgb]{1,1,1}{soy blanco}
etc, etc, etc...

rgb significa red green blue y corresponde a una forma de especificar el color. El numero entre corchetes indica cuánto (R)ed, (G)reen, y (B)lue corresponde al color del texto. Existen otras maneras más complicadas pero ésta está bien para empezar.

¿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 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 \makebox no admite un entorno flotante como table en su interior:
\begin{center}
  \begin{table}
  \centering\makebox[0cm[c]{
    \begin{tabular}{|c|c|}
          ...... ....
    \end{tabular}
  }
  \caption{Texto}
  \end{table}
\end{center}
                
También puede colocarse un pie dentro del \makebox, pero se necesita un poco más de trabajo (Véase "¿Puedo poner un pie en tablas y figuras que no flotan?")

¿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 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}

¿Puedo hacer que una celda de una tabla esté dividida en dos por una diagonal?

Puede utilizarse el paquete slashbox, disponible en CTAN:macros/latex/contrib/other/slashbox

¿Cómo añadir al texto el número de página actual?

En principio, podría pensarse que bastaría con usar la orden \thepage. Sin embargo, debido a cómo TeX va componiendo los párrafos el resultado puede ser incorrecto, ya que primero ejecuta todas las macros según va componiendo el párrafo y hasta que no está terminado no decide en que página van sus líneas. Si el párrafo ocupa dos páginas, es muy probable que la página sea incorrecta.

Para sincronizar correctamente la página con su número hay que usar algún mecanismo que sí permita conocer la página correcta, como el de las referencias con \label y \pageref. El siguiente código es una modificación de uno incluido en el LaTeX Companion:

\usepackage{ifthen}
\newcounter{pl}
\newcommand\pcheck{%
  \stepcounter{pl}%
  \label{pl-\thepl}%
  \ifthenelse{\isodd{\pageref{pl-\thepl}}}{impar}{par}}
\begin{document}
Esta página es \pcheck.  \newpage
Esta página es \pcheck.
\end{document}

¿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). Mediante su uso pueden construirse expresiones del tipo página 1 de 10 (con página \thepage{} de \pageref{LastPage}).

¿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.

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

Con la opción openright. Por ejemplo

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

¿Cómo hacer buen postscript o pdf?

Puede utilizarse testflow. Es un paquete de diagnósticos que da bastante información útil para producir buen postscript y/o pdf en un sistema TeX. Se encuentra disponible en CTAN::/macros/latex/contrib/supported/IEEEtran/testflow

8.17 ¿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 _AT_ 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