Manual de LaTeX/Escribiendo texto/Referencias

De Wikilibros, la colección de libros de texto de contenido libre.

Para las remisiones internas de un documento, llamadas a veces referencias cruzadas (del inglés cross references) podemos usar los comandos

\label{''etiqueta''}

\ref{''etiqueta''}

\pageref{''etiqueta''}


para hacer referencias del tipo “en la sección 2.2 hemos visto que...” Por ejemplo, si tenemos en el documento un capítulo indicado con \section{Métodos básicos}, podemos etiquetarlo con \label{} de la siguiente manera:


\section{Métodos básicos}\label{cap:MetBas}


Con esto podremos referirnos a tal capítulo en cualquier momento mediante \ref{cap:MetBas}.

Notas
Debemos señalar que para lograr referencias satisfactoriamente es necesario compilar el documento dos veces. Lo que sucede es que con la primera compilación los datos de referencia son guardados, y después, con una segunda compilación, obtendremos las referencias de manera adecuada en el documento. Por otra parte, si hacemos referencia a una etiqueta que no hemos indicado, tendremos un mensaje de error en el proceso de compilación, y el comando \ref{''etiqueta equivocada''} será sustituido en el documento compilado por un par de signos de interrogación, ??.

Si queremos también incluir la página en la que aparece el capítulo, escribimos \pageref{cap:MetBas}. Más aún, podemos definir el comando


\newcommand{\fullref}[1]{\ref{#1} de la página \pageref{#1}}


de tal modo que si el capítulo “Métodos básicos” (etiquetado como antes) es el número 7 y se encuentra en la página 205, al escribir


... en el capítulo \fullref{cap:MetBas}, hemos tratado el tema de...


obtenemos ... en el capítulo 7 de la página 205, hemos tratado el tema de...


Sin embargo, puede darse el caso de que \label{} y nuestro nuevo comando, \fullref{}, queden en la misma página, caso en el cual \fillref{} producirá un resultado no deseable (indicaciones como “en la página x...” cuando es la misma página “x” en la que nos encontramos). Si observamos, en el texto compilado, que eso sucede, podemos usar simplemente \ref{} en lugar del comando \fullref{} que hemos definido.


Aún mejor puede resultar el uso del paquete varioref, que nos provee de los comandos \vref{}, \vpageref{} y \vrefrange{}. El comando \vref{} es similar al comando \ref salvo por que \vref produce referencias del tipo “on the facing page” o “on page 205” siempre y cuando \label no se encuentre en la misma página. Para adaptarlo al castellano hemos de indicar la opción spanish al cargar el paquete, es decir, debemos escribir \usepackage[spanish]{varioref}.

Aviso
Hay que tener cierto cuidado a la hora de usar el comando \vref, pues hay ciertos errores que pueden suceder. Más exactamente, hay que evitar el uso de \vref cuando las referencias del tipo “en esta página” se rompan en un cambio de página. Si esto sucede, veremos un error que nos permitirá ubicar el comando \vref que deberá ser sustituido por un simple \ref.