비상 정지와 폭주 논쟁
누락된 끝, 중괄호 또는 잘못된 포함으로 인해 치명적인 중단이 발생합니다.
비상정지와 폭주논쟁
증상
컴파일이 완전히 종료됩니다. 로그는 `! Emergency stop.’ 또는 ’폭주 논쟁?’을 표시한 다음 길게 늘어진 텍스트를 표시합니다. 종종 ‘\textbf 사용을 검색하는 동안 파일이 종료되었습니다’ 또는 ’\foo가 완료되기 전에 단락이 종료되었습니다’와 같은 동반 행이 함께 표시됩니다. 대부분의 LaTeX 오류와 달리 PDF가 전혀 없으며 보고된 줄 번호는 실제 실수가 아닌 파일 끝을 가리키는 경우가 많습니다.
왜 그런 일이 일어나는가
두 메시지 모두 동일한 문제에서 비롯됩니다. TeX는 닫아야 하는 항목을 읽기 시작했고 닫는 토큰이 도착하기 전에 입력 끝에 도달했습니다. \textbf{를 쓰면 TeX는 일치하는 }까지의 모든 것을 인수로 수집합니다. 해당 중괄호가 나오지 않으면 TeX는 파일이 다 떨어질 때까지 단락과 섹션을 통해 텍스트를 계속 삼킵니다. “폭주 논쟁”은 TeX가 무엇을 삼켰는지를 보여주는 것입니다. “긴급 정지”는 누락된 부분이 없으면 계속할 수 없기 때문에 TeX를 포기하는 것입니다. 누락된 \end{document}, 닫히지 않은 환경 또는 존재하지 않는 파일의 \input은 동일한 터미널 상태를 생성합니다.
실제 위치를 찾는 방법
줄 번호를 신뢰하지 마십시오. 불균형이 시작된 곳이 아니라 TeX의 입력이 부족한 곳을 표시합니다. 대신 로그에서 ‘폭주 주장?’ 블록을 읽어보세요. 삼킨 텍스트의 처음 몇 단어는 문서에서 런어웨이가 시작된 위치를 알려주고 ‘파일이 다음을 스캔하는 동안 종료되었습니다.’ 줄에는 인수가 닫히지 않은 명령의 이름이 지정됩니다. 인용된 텍스트 근처에서 해당 명령을 검색하고 중괄호 수를 계산합니다.
로그가 도움이 되지 않으면 문서를 바이너리 검색하세요. 본문의 후반부를 주석 처리하고(또는 \iffalse ... \fi로 래핑) 다시 컴파일하십시오. 오류가 사라지면 제거한 부분에 문제가 있는 것입니다. 잘못된 단락이 분리될 때까지 계속 절반으로 나눕니다. 이것은 조잡하게 들리지만 큰 문서에서는 소수의 컴파일에서 누락된 중괄호 하나만 발견합니다.
평소 용의자
볼드체, 이탤릭체, 각주, 캡션 근처에서 }가 없는 {를 확인하세요. 이러한 명령은 사용자가 직접 입력하는 중괄호 인수를 사용하기 때문입니다. 모든 \begin{...}에 동일한 환경 이름을 가진 일치하는 \end{...}가 있는지 확인하세요. 파일이 \end{document}로 끝나고 모든 \input 및 \include가 해당 경로에 존재하는 파일의 이름을 지정하는지 확인하세요. 편집자는 여기에 도움을 줍니다. Oleafly는 입력할 때 일치하는 중괄호와 환경 쌍을 강조 표시하여 컴파일러가 보기 전에 대부분을 포착합니다.