(Latex)labelはどこに書けばいいの?
Latexを書いていてlabelの位置についてどこに書けばいいのか気になったので調べてみました。
どうせ最終的に見えないし、どこに書いたって同じでしょって思ったんですが、ちょっと違うようです、、
サンプルの内容
コード
\documentclass{jlreq} \begin{document} \section{1つ目のセクション} \label{1} \section{2つ目のセクション} \label{2} \subsection{2の1つ目のサブセクション} \label{3} \begin{table}[hbtp] \label{4} \caption{サンプル} \label{5} \begin{tabular}{cc} \label{6}\\ \hline ランキング& スコア\\ \hline 1& 10点\\ 2& 5点 \end{tabular} \end{table} \begin{description} \item[1つ目のセクションのラベル] \ref{1} \item[2つ目のセクションのラベル] \ref{2} \item[サブセクションのラベル] \ref{3} \item[表のラベル(begin\{table\}直下)] \ref{4} <-----おかしいぞ \item[表のラベル(caption直下)] \ref{5} \item[表のラベル(begin\{tabular\}内部)] \ref{6} \end{description} \end{document}
理由
4がおかしいという結果となり、2.1が表示されている。 この理由は、
\captionよりも上にあるということである。
図や表を使う際にタイトルを書く\captionが存在することにより、その下は図や表のlabelとなる。
2.1と表示されていたのはsebsectionの2.1であり、\begin{table}内でも\captionよりも上にあればtable内ではなく、sectionのlabelとして扱われる。 つまり、
\begin{table}[hbtp] \label{7} %<-----table内のlabelとして扱えない。 \caption{サンプル} \label{8} %<-----table内のlabelとして扱う \end{table}
まとめ
参照する番号を書いた場所の下であれば思うような参照が可能である。