
パッケージが作成するリンクの周りのボックスのhyperref
高さ/深さは、文字ではなく最大の高さと深さに依存しているようです。同封の資料(下の上の例のペアを参照)しかし、文字同じ行に(下記の下の例のペアを参照してください)。
できれば
- リンクボックスの高さ/深さを囲まれた素材のみに依存させるか、
\baselineskip
リンク ボックスの高さ/深さを一定にします (高さ x⋅ 、深さ (1-x)⋅のようなものが考えられます\baselineskip
)。
オプション 2 を実現するにはどうすればよいですか? (オプション 1 の回答も歓迎しますが、オプション 2 を実行する回答のみを「その」回答としてマークします。)
(この垂直方向の寸法の違いは、見る人によって異なるようです。)
\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
リンクの先頭と末尾に追加できますが、リンクが複数の行にまたがって分割されている場合、これはリンクの中央の行には適用されません。