Hipervínculos (hyperref)

hyperref convierte referencias cruzadas, citas, entradas del índice y URL en enlaces clicables dentro del PDF, e incluso configura marcadores (el esquema del PDF) y metadatos como el título. Cargarlo es una sola línea, \usepackage{hyperref}, pero trae una regla férrea: cargarlo casi al final. Esta página recorre esa regla, los colores y bordes de los enlaces, la creación de enlaces con \href y \url, y cómo hacer bien los marcadores en japonés.

Carga y orden

Usarlo es realmente sencillo: basta con poner \usepackage{hyperref} en el preámbulo. A partir de ahí, las referencias cruzadas (\ref), citas (\cite), entradas del índice, notas al pie y similares se convierten automáticamente en enlaces; al hacer clic en un visor PDF saltas al destino. Sin configurar nada, toda referencia del documento ya funciona como enlace.

Lo que hay que vigilar es dónde lo cargas. hyperref redefine internamente muchos comandos — \ref, \cite, \section y más — para convertirlos en enlaces. Si no se carga después de otros paquetes que modifican esos mismos comandos, sus redefiniciones quedan sobrescritas. La regla práctica es clara: pon hyperref casi al final del preámbulo, después de la mayoría de los paquetes.

Pero “al final” tiene unas pocas excepciones. La notable es cleveref, que funciona detectando las definiciones de hyperref y por tanto debe ir después de hyperref. Si también usas varioref, ordénalos como variorefhyperrefcleveref. Si te equivocas con el orden, las referencias pueden romperse sin que aparezca una advertencia en el registro (consulta la página de referencias cruzadas para detalles de cleveref).

latex
% プリアンブルのほぼ最後で読み込む / load almost last
\usepackage{graphicx}
\usepackage{amsmath}
% ... 他のパッケージ ... / ... other packages ...
\usepackage{hyperref}   % ほぼ最後 / almost last
\usepackage{cleveref}   % hyperref の後(数少ない例外)/ after hyperref (an exception)

De forma predeterminada, un enlace se muestra dibujando un cuadro de color (borde) alrededor del texto. En pantalla es fácil de localizar, pero al imprimir el borde queda impreso aunque el enlace no tenga efecto visible, lo que suele verse mal. Puedes controlar el aspecto con opciones al cargar el paquete o, de forma más flexible, con \hypersetup{...}, listando pares key=value separados por comas. \hypersetup puede aparecer en cualquier lugar del preámbulo.

La opción más usada es colorlinks=true, que elimina el cuadro y colorea el propio texto del enlace (se imprime bien y sigue siendo legible en pantalla). Los colores se configuran por tipo: linkcolor (enlaces internos como \ref), citecolor (citas bibliográficas), urlcolor (URL de \url/\href) y filecolor (enlaces a archivos locales). Sus valores predeterminados son rojo, verde, magenta y cian, respectivamente.

Para impresión, hidelinks resulta práctico: no aplica ni color ni borde, de modo que los enlaces se ven completamente invisibles pero siguen siendo clicables. A la inversa, si mantienes el aspecto con cuadros (colorlinks=false) y quieres cambiar todos los bordes a la vez, allbordercolors define todos los colores de borde juntos.

OpciónEfecto
colorlinks=trueQuitar el cuadro y colorear el texto del enlace
hidelinksSin color ni borde; sigue siendo clicable (para impresión)
linkcolorColor de enlaces internos como \ref (predeterminado: rojo)
citecolorColor de citas bibliográficas (predeterminado: verde)
urlcolorColor de enlaces URL (predeterminado: magenta)
filecolorColor de enlaces a archivos locales (predeterminado: cian)
allbordercolorsDefinir todos los colores de borde a la vez

Los enlaces a URL externas se crean con dos comandos. \href{URL}{display text} adjunta un enlace a cualquier texto que quieras (si escribes \href{https://www.ctan.org/}{CTAN}, la palabra “CTAN” se convierte en el enlace). \url{URL}, en cambio, compone la propia URL en una fuente monoespaciada y la convierte en enlace al mismo tiempo. Usa \url cuando quieras que la URL se vea en el texto, y \href cuando quieras ocultarla detrás de otras palabras.

Las URL suelen contener caracteres especiales de LaTeX como %, #, ~ y _, y la ventaja de \url y \href es que puedes escribirlos literalmente en la parte de la URL (sin escapar, aunque el argumento de \url tiene algunas limitaciones). Cuando quieras mostrar una URL con aspecto monoespaciado pero sin enlace, usa \nolinkurl{URL} (misma composición que \url, sin hipervínculo).

latex
詳しくは\href{https://www.ctan.org/pkg/hyperref}{hyperref のページ}を参照。
% 「hyperref のページ」がリンクになる / the words become the link

ダウンロードは \url{https://www.ctan.org/} から。
% URL がそのまま組版され、かつリンクになる / URL is typeset and linked

リンクなしで URL を見せる: \nolinkurl{https://example.com/a_b#c}
% 等幅で表示、リンクは張らない / monospaced, no link

Metadatos PDF

hyperref también define la información del documento (metadatos) del PDF: los campos que aparecen en “Propiedades del documento” en un visor PDF y que usan las herramientas de búsqueda y bibliotecas. Se indican con \hypersetup mediante estas claves: pdftitle (título), pdfauthor (autor), pdfsubject (asunto) y pdfkeywords (palabras clave).

Si un valor contiene una coma o un signo igual, choca con los separadores de claves, así que lo más seguro es envolver cada valor entre llaves {} (por ejemplo, pdftitle={Foundations of Linear Algebra}). Ten en cuenta que esto es distinto del \title propio del documento, que no se copia a los metadatos; para mantenerlos sincronizados, escribe la misma cadena a mano o usa un mecanismo como pdfusetitle.

Marcadores (el esquema del PDF)

Los marcadores (el esquema) son la lista plegable de encabezados que un visor PDF muestra junto a la página, esencial para navegar por un documento largo. hyperref los genera automáticamente a partir de los encabezados del documento (capítulos, secciones, etc.; bookmarks=true es el valor predeterminado). Para incluir números de sección en los marcadores usa bookmarksnumbered=true, y para mostrar el árbol desplegado desde el inicio usa bookmarksopen=true.

Para un manejo más robusto existe el paquete bookmark (se carga después de hyperref). Sustituye el código antiguo de marcadores de hyperref, permite definir el estilo y color de los marcadores y estabiliza cómo se procesa el archivo auxiliar .out. Puedes ajustar el comportamiento con \bookmarksetup{...}. Es la solución habitual cuando los marcadores se comportan mal en un documento complejo.

Marcadores en japonés y cómo evitar texto ilegible

Como los marcadores y metadatos se escriben como cadenas dentro del PDF, incluir japonés (CJK) puede producir texto ilegible. La clave es escribirlos como Unicode. En motores modernos (LuaLaTeX / XeLaTeX), unicode está activado de forma predeterminada, así que los marcadores en japonés suelen salir correctos sin configuración extra. Para hacerlo explícito, carga \usepackage[unicode]{hyperref} o define \hypersetup{unicode}.

En la configuración tradicional pLaTeX / upLaTeX + dvipdfmx, la receta estándar es cargar hyperref como \usepackage[dvipdfmx]{hyperref} y añadir el paquete pxjahyper. pxjahyper existe precisamente para producir marcadores japoneses sin texto ilegible en el entorno (u)pLaTeX, y viene incluido en TeX Live. Según el motor, ayuda a convertir la salida a Unicode de acuerdo con el código kanji interno (el tipo de trabajo que hace pdfencoding=auto).

pdfencoding=auto es la opción que decide automáticamente: conserva las cadenas tal cual si caben en ASCII (dentro del rango ASCII cuando se usa un motor Unicode), y cambia a Unicode en caso contrario (principalmente para la familia pdfTeX; en motores Unicode, Unicode ya es el valor predeterminado y normalmente no hace falta). Ante la duda, basta recordar: con LuaLaTeX, sin configuración extra; con (u)pLaTeX, añade pxjahyper.

document.tex
% --- pLaTeX / upLaTeX + dvipdfmx の場合 / for pLaTeX-upLaTeX + dvipdfmx ---
\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}   % 日本語しおりの文字化けを防ぐ / fix Japanese bookmarks

% --- LuaLaTeX の場合は unicode が既定 / on LuaLaTeX, unicode is the default ---
% \usepackage{hyperref}

Comandos de referencia que añade hyperref — \autoref y \nameref

Al cargar hyperref también obtienes dos comandos que ayudan con las referencias cruzadas. \autoref{key} se usa en lugar de \ref: antepone automáticamente la palabra correspondiente al tipo del destino — “section 3.4”, “Figure 3”, etc. — y convierte todo el resultado en enlace. Puedes cambiar esa palabra redefiniendo \figureautorefname, \sectionautorefname y similares; así también se localiza al japonés.

El otro comando, \nameref{key}, inserta no un número sino el texto del título del destino (si referencias la etiqueta de \section{Introduction}, imprime “Introduction”). Úsalo cuando quieras referirte por título en lugar de por número. La visión completa de los comandos de referencia (\ref, \eqref, \cref, etc.) se trata en detalle en la página de referencias cruzadas.

Una configuración completa

Una configuración habitual en la práctica se ve así. Desactiva el cuadro y colorea el texto con colorlinks=true, asigna colores distintos por tipo, crea marcadores numerados con bookmarksnumbered y rellena los metadatos. Para documentos pensados principalmente para impresión, sustituye la línea colorlinks=true por hidelinks; los enlaces se vuelven invisibles pero siguen siendo clicables.

latex
\usepackage{hyperref}
\hypersetup{
  colorlinks=true,        % 枠ではなく文字に色 / color text, not boxes
  linkcolor=blue,         % 内部リンク / internal links
  citecolor=teal,         % 文献引用 / citations
  urlcolor=magenta,       % URL
  bookmarksnumbered=true, % しおりに節番号 / numbered bookmarks
  pdftitle={線形代数の基礎},
  pdfauthor={山田 太郎},
  pdfsubject={講義ノート},
  pdfkeywords={LaTeX, 線形代数, ベクトル空間},
}
% 印刷向けなら colorlinks の行を hidelinks に置き換える
% for print, swap the colorlinks line for: hidelinks