lunes, 4 de abril de 2011

Referencias cruzadas en LaTeX

Con LaTeX, podemos hacer fácilmente referencias a capítulos, secciones, etc., figuras, tablas, ecuaciones, y a páginas de nuestro documento. El mecanismo es muy fácil, ponemos una etiqueta con el comando \label{x}, y hacemos la referencia con el comando \ref{x}, donde "x" será el nombre que hayamos querido dar. A continuación, un ejemplo:

\section{Juguetes}\label{sec:juguetes}

La sección \ref{sec:juguetes} trata de juguetes. De aquellos de la tabla \ref{t:jug}, sin duda alguna, mi favorito son los Lego.

\begin{table}[htb]
\label{t:jug}
\centering
\begin{tabular}{|l|l|}
\hline
Juguete & Origen \\
\hline \hline
Lego & Dinamarca \\ \hline
Clicks (Playmobil) & Alemania \\ \hline
Tente & España \\ \hline
Meccano & Inglaterra \\ \hline
\end{tabular}
\caption{Tabla con juguetes.}
\end{table}


Para las ecuaciones, podemos usar también el mismo comando \ref{}. Sin embargo, yo suelo usar el comando \eqref{}, que ya te pone el número de la ecuación entre paréntesis. Para usar este comando, hay que cargar el paquete {amsmath}.

\usepackage{amsmath}

¿Estará aceptada en todo el universo la ecuación \eqref{eqsuma}?

\begin{equation}\label{eqsuma}
1 + 1 = 2
\end{equation}


Cuando queremos hacer una referencia a una palabra o frase de una cierta página, ponemos la etiqueta detrás exactamente de dicha palabra (sin espacios), e indicamos la referencia con el comando \pageref{}, como muestro a continuación:

El Conde de Montecristo\label{mont} está basado en una historia real que llegó a oídos de Alejandro Dumas.

Como ya se dijo en la página \pageref{mont}...


El comando \pageref{} sirve también para indicar la página de una referencia normal. Por ejemplo, podríamos haber puesto lo siguiente: (Nótese que se usa la misma etiqueta para ambas referencias.):

¿Estará aceptada en todo el universo la ecuación \eqref{eqsuma} de la página \pageref{eqsuma}?

Si queremos poner el número total de páginas, podemos poner una etiqueta al final del documento, y luego referenciarla con \pageref. O mejor, podemos usar el paquete {lastpage}, que ya nos crea automáticamente dicha etiqueta, con el nombre {LastPage}, como muestro a continuación:

\usepackage{lastpage}

Este documento tiene \pageref{LastPage} páginas.

14 comentarios:

Juan Jesús dijo...

Quiero referenciar un chapter{} y sigo los mismos pasos que se expone en el artículo, utiliza la etiqueta \label{x} en el chapter y hago una referencia con \ref{x} pero me salen ??, advirtiéndome que no es capaz de encontrar la referencia establecida.

¿Cúal puede ser la causa?

Muchas gracias

Luis dijo...

Hola Juan Jesús,

hay que compilar un par de veces. Primero, crea el editor de LaTeX crea las etiquetas, y en la segunda, pone los números. Si después de compilar dos veces, te siguen apareciendo interrogaciones, es que el nombre de la etiqueta está mal puesto.

Hasta luego

miguelbadajoz dijo...

Hola. Gracias de nuevo. De repente me empiezan a salir warnings del tipo:


Package acronym Warning: Acronym `EAS' is not defined on input line 238.

Package acronym Warning: Acronym `EAS' is not defined on input line 238.

LaTeX Warning: Reference `muondef' on page 11 undefined on input line 247.

LaTeX Warning: Citation `bil_2006' on page 11 undefined on input line 251.


Las referencias de figuras, bibliografía y acrónimos están bien puestas y revisadas. ¿Alguna idea?

Saludos.
Miguel

miguelbadajoz dijo...

Sólo mencionar también que lo he compilado varias veces seguidas. Y nada.

Luis dijo...

Hola,

el paquete {acronym} se usa así.

\acrodef{ac:adn}[ADN]{ácido desoxirribonucleico}

Los descubridores del \ac{ac:adn}...

Y los warning que te salen, es que no tienes bien escritas las referencias. :D

miguelbadajoz dijo...

Hola. Gracias. No era eso. Estaba bien. Te cuento que me pasaba por si alguien le sirve. Había una llave no cerrada y al llegar ahí petaba y se cortaba. Como no llegaba al final no cruzaba las referencias (puestas bien, pero al final) así que el output que daba era únicamente que no encontraba las referencias. Pero el fallo era la llave mal cerrada. Gracias de todas formas.

Unknown dijo...

Hola. Tenía un problema respecto a la numeración de tablas, logre solucionarlo gracias a un aporte tuyo \renewcommand{\thetable}{\thesection.\arabic{table}}, ahora el problema es que cuando le hago la referencia , en la referencia me sale la numeración según capítulo, sección y subsección. en cambio en la tabla me sales según sección. Es decir la tabla es Tabla1.2.1, me sale que su referencia es 1.2.3(el tres por la subsección donde está)

Unknown dijo...

Hola yo tengo el mismo problema, me gustaria saber como lo solucionaste

Unknown dijo...

Justo me ha pasado el problema del que habláis con respecto a la numeración de las tablas y el error está en que el \label{} hay que ponerlo dentro de la tabla, es decir detrás del \begin{table}. Si lo colocáis justo después del \end{table} (que ha sido mi caso) la referencia que sale es la de la subsección donde está la tabla...

Espero solucionar algo! Saludos

Luis dijo...

Muchas gracias por compartirlo, MªJosé. :-)

Unknown dijo...

Hola, tengo un problema con algunas referencias de un archivo. Lo compilo un par de veces y casi toda funcionan perfectamente excepto 2 o 3, en las que al pulsar sobre ellas me lleva siempre a la primera página. He probado a cambiar el nombre de la referencia, colocar en otro sitio,... pero nada. ¿Alguien sabe cómo podría solucionarlo? Muchas gracias.

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Hola!

Tengo un problema, estoy trabajando un documento tipo book, y necesito insertar subfiguras, y asignarles etiquetas, lo cual estoy haciendo de esta manera:

\begin{figure}[H]
\centering
\subfigure[Croquis]{\label{Fig:Croquis} \includegraphics[height=9cm,frame]{Parte2/inter1.png}}
\subfigure[Imagen satelital]{\includegraphics[height=9cm,frame]{Parte2/punt_medicion_interseccion_1.jpg}}
\caption{Estrategia de muestreo en la Intersección 1}
\label{Fig:Inter_1}
\end{figure}


El problema se presenta cuando en el texto hago referencia a la subfigura (\ref{Fig:Croquis}), ya que el número me aparece como VI (a) pero necesito que sea 6 (a)

Nota: cuando hago referencia a la figura en general con \ref{Fig:Inter_1} si me aparece como 6.

Les agradezco me ayuden a solucionar ese problema...

Daniel Camilo dijo...

Hola buenas tardes, tengo una duda que comando debo utilizar para que al referenciar una figura o tabla, a la hora de exportar en el PDF se me redireccione a la figura correspondiente al dar click en la referencia?

Muchas Gracias