
Para cuadros alrededor de enlaces que elhyperref
crea el paquete, su altura/profundidad parece depender de la altura y profundidad máximas, no de las letras.del material encerrado(ver par de ejemplo superior a continuación) pero de letrasen la misma linea(vea el par de ejemplos inferior a continuación).
Sería bueno
- hacer que la altura/profundidad de las cajas de enlaces dependa únicamente del material incluido o
- haga constante la altura/profundidad de los cuadros de enlace (tal vez algo con altura x⋅
\baselineskip
y profundidad (1-x)⋅\baselineskip
).
¿Cómo puedo lograr la opción 2? (Las respuestas para la opción 1 también son bienvenidas, pero marcaré como "la" respuesta solo la que responda a la opción 2).
(Esta diferencia en las dimensiones verticales parece ser independiente del espectador).
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{dy}
dy.\footnote{Footnote.} \smash{\rule[-0.3\baselineskip]{1em}{\baselineskip}}
\section{abc}
ac.\footnote{Footnote.} \smash{\rule[-0.3\baselineskip]{1em}{\baselineskip}}
\end{document}
Respuesta1
El boxeo de enlaces depende mucho del controlador, compárelo con dvips/ps2pdf:
pdfTeX
El paquete hyperref
utiliza \pdfstartlink
y \pdfendlink
para el enlace y permite que pdfTeX determine las dimensiones del rectángulo; pdfTeX solo usa la altura/profundidad del cuadro circundante.
La ventaja es el salto automático de línea de enlaces.
Desventaja: la altura y/o la profundidad del rectángulo pueden ser demasiado grandes, por ejemplo:
\documentclass{article} \usepackage{hyperref} \begin{document} \section{Foo}\label{foo} \noindent \vrule width 5pt height 3\baselineskip depth 2\baselineskip \hyperref[foo]{abc} \mbox{\hyperref[foo]{abc}} \end{document}
También se muestra una solución alternativa, encuadrando el enlace en formato
\mbox
. Pero esto evita saltos de línea.
Se puede agregar una profundidad adicional para los enlaces \vphantom{y}
en el ejemplo de la pregunta:
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{dy}
dy.\footnote{Footnote.}
\smash{\rule[-0.3\baselineskip]{1em}{\baselineskip}}
\section{abc\protect\vphantom{y}}
ac.\footnote{Footnote.}\vphantom{y}
\smash{\rule[-0.3\baselineskip]{1em}{\baselineskip}}
\end{document}
Se podría agregar algo así \vphantom{y}
a los enlaces, pero hay idiomas con letra acentuada, \vphantom{y\"A}
; Oh, no, el autor de pdfTeX incluso escribe con doble acento y pronto los rectángulos de enlaces que antes eran normales, con grandes alturas y profundidades, se verían bastante ridículos.
Además, agregar \vphantom
para garantizar una altura/profundidad mínima no funciona en todas partes. \vphantom
Se puede agregar al principio y al final de un enlace, pero si un enlace está dividido en líneas, esto no se aplicará a las líneas intermedias del enlace.