컴파일되지 않는 대학 수업 파일
분류: 첫 번째 오류, 엔진, 사용되지 않는 패키지, 이진 검색.
컴파일되지 않는 대학 수업 파일
대학 논문 템플릿은 특별한 종류의 레거시 코드입니다. 15년 전 한 대학원생이 당시의 TeX 배포판에 반대하는 클래스 파일을 작성하고 졸업한 후 LaTeX 생태계가 계속 진행되는 동안 해당 파일을 동결된 상태로 두었습니다. 오늘 universitythesis.cls를 다운로드했는데 오류 화면과 함께 종료되면 일반적으로 클래스는 시간이 지남에 따라 손상되지는 않습니다. 그러나 실패 모드는 예측 가능하며 고정된 분류 순서로 대부분이 해결됩니다.
첫 번째 오류부터 시작하세요.
LaTeX 오류가 연쇄적으로 발생합니다. 클래스 초기에 정의되지 않은 명령 하나가 아무 의미도 없는 수십 개의 다운스트림 오류를 생성할 수 있습니다. 로그를 !로 시작하는 첫 번째 줄로 스크롤하여 수정하고 다른 내용을 읽기 전에 다시 컴파일하세요. 이 루프를 반복하면 3~4번의 패스로 위협적인 오류 벽이 제거되는 경우가 많습니다. 첫 번째 오류가 알 수 없는 명령인 경우 정의되지 않은 제어 시퀀스가 진단을 진행합니다.
엔진을 확인해 보세요
많은 템플릿이 특정 엔진을 가정하고 다른 엔진에서는 이상하게 실패합니다. fontspec을 로드하거나 이름으로 글꼴을 설정하는 클래스에는 XeLaTeX 또는 LuaLaTeX가 필요합니다. pdftex 특정 프리미티브를 기반으로 구축된 클래스는 두 가지 모두에서 실패할 수 있습니다. 클래스 파일 상단 근처의 주석이나 의도한 엔진의 이름을 지정하는 대학 지침의 줄을 찾아 다른 것을 디버깅하기 전에 일치시킵니다. 차이점은 이 프로젝트의 엔진에 요약되어 있습니다.
제어 대상을 현대화하세요
오래된 템플릿은 최신 대체 패키지가 이미 배포판에 포함되어 있는 쓸모없는 패키지를 로드하고 그 쌍은 싸웁니다. [서로 싸우는 패키지](/learn/package-con conflicts/)에는 고전적인 조합이 나열되어 있습니다. 실행 가능한 전략은 대학 형식 요구 사항이 거기에 있으므로 클래스 파일 자체를 그대로 두고 자신만의 서문만 현대화하는 것입니다. 더 이상 사용되지 않는 \usepackage 줄을 제거하고 hyperref를 늦게 로드하고 클래스가 이미 로드한 모든 항목을 다시 로드하지 마십시오.
서문을 이진 검색
오류로 인해 검사가 불가능할 경우 서문의 후반부를 주석 처리하고 다시 컴파일하세요. 오류가 사라지면 트리거는 주석 처리된 부분에 있습니다. 절반을 복원하고 반복하십시오. 소수의 컴파일을 통해 오류가 있는 한 줄을 격리하는데, 이는 작성하지 않은 서문에 대해 추론하는 것보다 훨씬 빠릅니다.
고생하기 전에 검색하세요
그 대학의 모든 학생은 같은 수업을 듣게 되므로 이전에 오류가 발생한 것이 거의 확실합니다. 클래스 파일명과 함께 정확한 오류 메시지를 검색하여 해당 대학이나 후임자가 GitHub에 패치된 포크를 유지하고 있는지 확인하세요. 유지 관리된 포크를 사용하는 것이 알려진 버그를 직접 수정하는 것보다 낫습니다.