번호가 나와야 할 곳에 ??(문헌이면 [?])가 보이면 상호 참조가 해결되지 않은 것입니다. 원인은 거의 컴파일 횟수 부족, \label 누락/철자 오류, 또는 \label 위치 오류입니다. 라벨 중복은 별도의 경고를 냅니다.
??의 의미
\ref / \pageref는 이전 실행이 쓴 .aux를 읽습니다. 그래서 첫 실행이나 라벨을 막 추가한 직후에는 값을 알 수 없어 ??가 되고, 로그에 “Rerun to get cross-references right”가 나옵니다. \cite도 마찬가지로 [?]가 됩니다. 해결은 한 번 더 컴파일하는 것입니다. 총 두 번입니다(latexmk 같은 빌드 도구는 자동으로 처리합니다). 두 번 돌려도 ??가 남으면 실제로 라벨을 찾지 못하는 상태입니다.
라벨을 찾을 수 없음
\ref{x}에 대응하는\label{x}가 없거나 철자가 다릅니다.- 그림/표 같은 float에서는
\label을\caption바로 뒤(float 안)에 둡니다. 앞이나 바깥에 두면 절 번호 같은 잘못된 번호를 잡습니다. - 문헌 인용이
[?]에 머묾 →bibtex/biber를 실행하고 다시 컴파일하거나, key가.bib에 없습니다. - 일관된 라벨 접두사(
fig:,sec:,eq:)를 쓰면 정리와 검색이 쉽습니다.
latex
\begin{figure}
\includegraphics{fig.pdf}
\caption{グラフ}
\label{fig:graph} % \caption の直後に / right after \caption
\end{figure}
... 図~\ref{fig:graph} を参照。라벨 중복
LaTeX Warning: Label 'x' multiply defined는 같은 \label{x}가 두 곳에 있어 참조 대상이 모호해졌다는 경고입니다. 라벨을 고유하게(접두사나 다른 이름으로) 만드세요. 복사/붙여넣기로 라벨이 함께 복제된 경우가 많습니다.