texには図表等の番号を割り振る\label{}, \ref{}コマンドがある。
処理の流れの都合によりコンパイルは2回行う必要がある。
例えば表を挿入し表の上に表題を書く場合、\label{}コマンドの位置は大きく分けて以下の4つに分けられる。
\begin{table}[ht]
\label{tab:length}
\caption{\label{tab:length}表の題名\label{tab:length}}
\label{tab:length}
\begin{tabular}{|c|c|}
\hline
1 & 2\\
\hline
3 & 4\\
\hline
\end{tabular}
\end{table}
赤文字の場合\label{}コマンドが指すものは、直後にある\caption{}ではなく、赤文字の前にあるラベリング可能なものになる(例えば節番号)ため注意。
ここまでで、\label{}と\ref{}が正しく参照しあうことが確認できた。
ここで、hyperref環境において\ref{}がどこを参照するかを見ると、表の題名の0文字目となる。つまり表上部にある「表1: 表の題名」の「表1: ここ表の題名」が左上に来る表示としようとする。
そのため十分拡大していると、開いているウィンドウの左上がここに合わされることになる(拡大率によってはページ端などの制限をうける)。
上のような表の場合、あまりこの問題は深刻ではないが、表や図のキャプションが表や図の下にあった場合、左上が\ref{}の位置となるように移動すると、肝心の表や図本体が見えなくなる。