자동 줄 바꿈[1]은 대부분의 문서 편집기, 워드 프로세서, 웹 브라우저에서 지원하는 기능으로, 문자열의 행을 자동으로 다음 줄에 보이게 하여, 보이는 화면보다 긴 문장이 잘리지 않고 모든 내용을 볼 수 있게 하는 것을 말한다. 워드랩(word wrap), 라인랩(line wrap)이라고도 부른다.
워드 프로세서에서는 문단을 나눈다는 개념에서 이러한 방식을 하드 리턴(hard return)으로, 줄을 나눈다는 개념에서 소프트 리턴(soft return)으로 부른다.
다음은 가장 간단한 구현 방법인 최소 길이(Minimum length) 알고리즘의 의사 코드(pseudo code)이다.
SpaceLeft := LineWidth for each Word in Text if Width(Word) > SpaceLeft insert line break before Word in Text SpaceLeft := LineWidth - Width(Word) else SpaceLeft := SpaceLeft - (Width(Word) + SpaceWidth)
구현이 간단하고 속도가 빨라서, 마이크로소프트 워드나 오픈 오피스 등의 위지윅 워드프로세서에서 많이 사용한다.
랙 최소화(Minimum raggedness) 알고리즘은 에서 사용하는 것으로, 랙(rag)[2]을 최소화시키므로 최소 길이 알고리즘의 결과보다 미려한 조판 결과를 볼 수 있으나, 속도는 보다 느리다.