
패키지가 생성하는 링크 주변 상자의 경우 hyperref
높이/깊이는 문자가 아닌 최대 높이 및 깊이에 따라 달라지는 것 같습니다.동봉된 자료 중(아래의 상위 예제 쌍 참조) 그러나 문자같은 줄에(아래 하단 예제 쌍 참조)
하면 좋을 것 같아요
- 링크 박스의 높이/깊이가 포함된 재료에만 의존하도록 만들거나
- 링크 상자의 높이/깊이를 일정하게 만듭니다(높이 x⋅
\baselineskip
및 깊이 (1-x)⋅\baselineskip
).
옵션 2를 어떻게 달성할 수 있나요? (옵션 1에 대한 답변도 환영하지만 옵션 2에 해당하는 답변만 "the" 답변으로 표시하겠습니다.)
(이 수직 치수의 차이는 시청자와 무관한 것으로 보입니다.)
\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}
답변1
링크 박싱은 드라이버에 크게 의존합니다. dvips/ps2pdf와 비교해 보세요.
pdfTeX
패키지는 링크를 위해 및를 hyperref
사용하며 pdfTeX가 직사각형 크기를 결정할 수 있도록 합니다. pdfTeX는 주변 상자의 높이/깊이를 사용합니다.\pdfstartlink
\pdfendlink
장점은 링크의 자동 줄바꿈입니다.
단점: 직사각형의 높이 및/또는 깊이가 너무 클 수 있습니다. 예:
\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}
해결 방법도 표시되어 있으며
\mbox
. 그러나 이렇게 하면 줄바꿈이 방지됩니다.
\vphantom{y}
질문의 예를 통해 링크에 대한 추가 깊이를 추가할 수 있습니다 .
\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}
\vphantom{y}
링크에 다음과 같은 내용을 추가할 수 있지만 악센트 문자가 있는 언어가 있습니다 \vphantom{y\"A}
. 아, 아니요, pdfTeX의 저자는 심지어 이중 악센트로 작성되었으며 곧 이전의 일반적인 링크 직사각형은 높이와 깊이가 커서 상당히 우스꽝스러워 보일 것입니다.
또한 \vphantom
최소 높이/깊이를 보장하기 위해 추가하는 것이 모든 곳에서 작동하지 않습니다. \vphantom
링크의 시작과 끝에 추가할 수 있지만 링크가 여러 줄에 걸쳐 끊어지면 링크의 중간 줄에는 적용되지 않습니다.