24

キャプションを使用しないフロートへの参照を作成しようとしています。float 内に \label{foo} を含め、\pageref{foo} を使用してそれを参照すると、正しいページ番号が PDF ドキュメントに表示されますが、hyperref パッケージによって作成されたハイパーリンクは別のページ (ファイルの最初のページ) にリンクします。セクション)。フロートのラベルの前にキャプションを含めると、ハイパーリファレンス リンクは正しいページに移動します。

フロートにキャプションを含めずに、ハイパーリファレンス リンクを正しく機能させる方法はありますか? または、キャプションの表示を抑制して、キャプションを表示せずに含める方法はありますか?

以下は最小限の例です。pdflatex を使用して処理すると、3 ページになります。「図」は 2 ページ目に示され、3 ページ目には正しく「2 ページの図を参照」と記載されています。しかし、「2」のハイパーリンクには「ページ 1 に移動」と表示されており、クリックするとページ 1 に移動します。

\label{foo} の前に空の \caption{} を置くと、ハイパーリンクは正しく機能しますが、float のキャプションを表示したくありません。

\documentclass[11pt]{memoir}

\usepackage{hyperref}

\begin{document}

some text
\clearpage


\begin{figure}
  a figure
  \label{foo}
\end{figure}

more text
\clearpage


See figure on page \pageref{foo}.

\end{document}
4

3 に答える 3

22

コマンドは、の\label最後の呼び出しを参照します\refstepcounter\captionフィギュア環境であることを認識し、 を呼び出します\refstepcounter{figure}。自分で呼び出すことができ\refstepcounterます。

一連の図の数字をスキップしないようにするために、 を使用して独自の無意味なカウンターを作成できます\newcounter{dummy}。結果:

\documentclass{scrreprt}
\usepackage{hyperref}
\newcounter{dummy}
\begin{document}

\chapter{First}

\newpage
\begin{figure}
{\Huge FIGURE}
\refstepcounter{dummy}
\label{fig:figure}
\end{figure}

\chapter{Second}

Goto \pageref{fig:figure}

\end{document}

Figure の末尾へのハイパーリンクを作成します。(私のマシンで動作します:-)\ref{fig:figure}無意味であることに注意してください。

于 2010-04-30T23:55:51.560 に答える
0

パッケージをロードするcaptionと、空のキャプションのキャプション出力が抑制されます。float のラベルは、常に label コマンドの前にあるキャプション コマンドによって決定されます。

于 2010-04-30T17:07:07.450 に答える