番号に一致するキャプション
番号が固定されるように、キャプションの後にラベルを置きます。
番号に一致するキャプション
相互参照は、LaTeX がワードプロセッサよりも優れている機能の 1 つです。 「図 3」を手で入力することはありません。代わりに、図にラベルを付けて、言及されているすべての場所に LaTeX に番号を入力させます。これにより、どれだけ並べ替え、挿入、または削除しても、番号は正確なままになります。このメカニズムには、ほぼすべての人が少なくとも一度はつまずくルールが 1 つあります。それは、\caption と \label の順序が重要です。
順序が重要な理由
\caption コマンドは 2 つのジョブを実行します。図または表の下にキャプション テキストを印刷し、カウンターをステップアップして、このフロートを図 3 に変えます。 \label コマンドは、人々が予想するより愚かなことを行います。つまり、最後に割り当てられた番号を、それが何が起こったとしても記録します。それが「フィギュアの中」であるということを知りません。したがって、ラベルはキャプションの後に来る必要があります。
\caption{A neat diagram.}\label{fig:neat}\caption の前に \label を置くと、キャプションはまだ図のカウンターを踏んでいないため、ラベルは完全に別の場所 (通常は現在のセクション) から最新の数値を取得します。実際には図 7 であるにもかかわらず、テキストでは「図 2.4 を参照」と表示されます。これは典型的な症状です。図番号の代わりにセクション番号を指す参照は、ほとんどの場合、ラベルの配置が早すぎることを意味します。最も安全な習慣は、図と表の両方で、常に「\caption」の直後の行に「\label」を記述することです。
ラベルの参照
テキスト内に次のように参照を記述します。
Figure~\ref{fig:neat}\ref{fig:neat} は裸の数値に展開され、単語「Figure」を自分で指定します。それらの間の ~ は非改行スペースであり、LaTeX が “Figure” の後の行を終了して次の行を “3” で開始することがなくなります。 fig:、tab:、sec:、eq: などの接頭辞は純粋な慣例であり、LaTeX はそれらを解釈しませんが、ラベルを読みやすくし、図と表が誤って名前を共有することを防ぎます。
\pageref{fig:neat} は、図が着地したページ番号を与えることに注意してください。これは、フロートが言及から遠く離れてしまう可能性がある長い文書で役立ちます。参照コマンドの完全なツアーについては、すべてのコマンドの説明 を参照してください。
2 回コンパイルするなどの落とし穴
参照はコンパイラの実行全体で解決されます。最初のパスはラベル位置を .aux ファイルに書き込み、2 番目のパスはラベル位置を読み取ります。 2 回目のパスまでは、参照は太字の疑問符として印刷されるため、PDF 内の「??」は通常、単に「再コンパイル」を意味するだけで、何かが壊れているわけではありません。 Oleafly を含むほとんどのエディターは、パスを自動的に再実行します。 ?? がコンパイルを繰り返しても生き残った場合、ラベルは存在しません。考えられる原因は、ラベル名のタイプミス、または \label を残したまま削除した \caption です。