미스터리 인용 표시 지우기
오타, 패스 누락, 잘못된 경로, BibTeX와 Biber 불일치.
미스터리 인용 표시 지우기
증상
문서는 컴파일되지만 인용문이 표시되어야 하는 곳에 굵은 물음표 [?]가 표시되고 로그에는 LaTeX Warning: Citation 'knuth84' undefine과 같은 줄이 포함됩니다. 모든 인용이 영향을 받는 경우도 있고, 한두 개만 영향을 받는 경우도 있습니다. 이는 오류가 아니라 경고이기 때문에 PDF는 계속 작성되며 독자가 지적할 때까지 표시를 놓치기 쉽습니다.
왜 그런 일이 일어나는가
LaTeX는 인용을 직접 해결하지 않습니다. 첫 번째 패스에서는 요청된 각 키를 보조 파일에 기록합니다. 그러면 백엔드 프로그램(bibtex 또는 biber)이 .bib 데이터베이스에서 해당 키를 찾아 형식화된 항목을 작성합니다. 두 번의 추가 LaTeX 패스는 결과를 다시 접습니다. 물음표는 최종 패스 순간에 해당 키에 대해 형식화된 항목이 존재하지 않음을 의미합니다. 이 증상의 모든 원인은 해당 파이프라인을 깨뜨리는 방법입니다.
원인을 순서대로 해결하세요
먼저 키 자체를 확인하세요. \cite{knuth84}와 @article{knuth1984,...}는 다른 문자열이며 대소문자를 포함하여 정확하게 일치합니다. 경고에 명시된 키를 .bib 파일에서 검색하세요. 양쪽의 오타가 가장 일반적인 원인이며 로그의 첫 번째 키 누락 경고가 추적 대상입니다.
다음으로 전체 컴파일 주기가 실행되었는지 확인하세요. 순서는 LaTeX이고 그 다음 bibtex 또는 biber, LaTeX 두 번입니다. 백엔드가 아직 실행되지 않았기 때문에 단일 컴파일로는 인용을 해결할 수 없습니다. Oleafly는 전체 주기를 자동으로 구동하지만 수동 빌드 또는 잘못 구성된 편집기는 첫 번째 패스 후에 중지될 수 있습니다.
셋째, 데이터베이스 경로를 확인합니다. \bibliography{refs} 및 \addbibresource{refs.bib}는 기본 파일을 기준으로 확인되므로 하위 폴더의 데이터베이스는 bib/refs 또는 bib/refs.bib로 작성되어야 합니다. 잘못된 경로는 조용히 실패하고 일반적으로 전체 참조 목록을 삭제합니다. 더 큰 오류에 대해서는 빈 참고문헌을 참조하세요.
마지막으로 백엔드를 시스템에 일치시킵니다. biblatex를 로드하는 문서는 biber로 처리해야 합니다. 고전적인 bibtex를 입력하면 사용할 수 있는 출력이 생성되지 않으며 모든 인용은 다시 컴파일한 횟수에 관계없이 물음표로 유지됩니다.
다른 모든 방법이 실패하면
오래된 보조 파일은 오래되고 손상된 상태를 유지할 수 있습니다. 문서 옆에 있는 .aux, .bbl 및 .blg 파일을 삭제하고 처음부터 다시 빌드하세요. .blg 파일은 삭제하기 전에 읽어 볼 가치가 있습니다. 이 파일은 백엔드 자체 로그이며 누락된 데이터베이스 및 잘못된 항목의 이름을 명시적으로 지정합니다.