Overfull \hbox는 줄을 알맞게 나눌 수 없어 오른쪽 여백을 넘어갔다는 경고이고, Underfull \hbox는 반대로 줄이 지나치게 느슨해졌다(공백이 너무 늘어났다)는 경고입니다. 보통 원인은 줄바꿈할 수 없는 긴 것, 즉 긴 URL, 긴 단어, 코드 문자열입니다. 이 페이지는 이유와 대처를 다룹니다.
두 경고의 차이
Overfull \hbox (X pt too wide) 는 문자가 오른쪽 여백을 넘어 튀어나온 상태입니다(draft 모드에서는 여백에 검은 선이 보입니다). 실제 모양에 직접 영향을 주는 문제입니다. Underfull \hbox (badness N) 는 TeX가 잘 줄바꿈하지 못해 공백을 너무 늘린 “느슨함” 경고로, 긴급도는 낮습니다. 둘 다 “in paragraph at lines A--B”로 해당 줄 범위를 알려 줍니다.
주요 원인
- 끊을 수 없는 긴 단어, 긴 URL, 코드 문자열, 형번.
- 좁은 단(2단 조판이나 표 안 등).
\\로 강제로 만든 짧은 마지막 줄.
대처
- 문장 바꾸기가 가장 깔끔합니다. 단어 하나만 고쳐도 풀리는 경우가 많습니다.
- URL은
\url{...}(url/hyperref)을 사용해 적절한 위치에서 줄바꿈되게 합니다. - microtype을 불러옵니다. 미세한 문자 돌출과 글꼴 확장으로 overfull/underfull이 크게 줄어듭니다. 거의 비용 없는 개선이라 기본으로 넣을 만합니다.
- 고집 센 단어는
\-(임의 하이픈)이나\hyphenation예외로 끊을 수 있게 합니다. 올바른 언어가 활성화되어 있는지도 확인합니다(babel). “줄과 페이지 나누기” 참조. - 국소적으로
\sloppy/sloppypar로 단어 간격을 느슨하게 합니다. - 사소한 경우에는
\hbadness/\hfuzz로 임계값을 올려 출력은 바꾸지 않고 경고만 억제합니다.
latex
\usepackage{microtype} % overfull/underfull を大幅に減らす / cuts them dramatically
\usepackage{hyperref} % \url{} を提供 / provides \url
...
\url{https://example.com/very/long/path} % 適切な位置で折る / breaks sensibly