배경
#846 (마지막 단 명시적 단나누기 → 같은 페이지 새 단-밴드, ≈ #768) 의 start_new_column_band 가 단 유형을 구분하지 않고 모든 다단 zone 에 적용되어, "일반"(신문형) 단에서 회귀를 일으킴.
진단 결과
shortcut.hwp 의 "보기"/"입력" 2단 zone 은 단 유형 = 배분(Distribute) — 콘텐츠를 두 단에 균등 배분하므로 밴드가 작음(6줄 ≈ 106px). 마지막 단 단나누기 시 한컴은 같은 페이지에 새 (배분) 밴드를 만든다.
exam_math.hwp 의 2단 zone 은 단 유형 = 일반(Normal, 신문형) — 단 0 을 채우고 단나누기로 단 1 로 넘어가는 방식. 신문형 단에서 마지막 단의 단나누기는 같은 페이지에 새 밴드를 만들지 않고 새 페이지로 간다. #846 의 start_new_column_band 가 이 경우에도 같은 페이지 새 밴드를 만들어 → 18→11페이지(한컴 PDF 2022 = 20), 21_언어_기출 페이지 8/9 시프트(test_539/test_548) 발생.
수정
start_new_column_band 호출을 current_zone_column_type == ColumnType::Distribute 일 때로 한정. "일반"(Normal) 단에서는 기존 advance_column_or_new_page(마지막 단 → 새 페이지) 유지. ("평행"/Parallel 은 별도 의미 — 본 타스크 범위 밖, 현 동작 유지.)
(밴드 높이를 max(단별 마지막 문단 LINE_SEG vpos_end) 로 근사하는 부분은 배분 단에서는 밴드가 작아 충분히 정확 — 별도 정합 불요.)
완료 조건
start_new_column_band 가 배분(Distribute) 단에서만 동작.
exam_math.hwp 페이지 수 = 한컴 PDF 20 (baseline 18 → 개선).
shortcut.hwp 7페이지 정합 유지.
21_언어_기출 등 다단 샘플 SVG diff 무변화(의도 외). cargo test 전건 통과.
참고: #846, mydocs/working/task_m100_846_stage2.md
배경
#846 (마지막 단 명시적 단나누기 → 같은 페이지 새 단-밴드, ≈ #768) 의
start_new_column_band가 단 유형을 구분하지 않고 모든 다단 zone 에 적용되어, "일반"(신문형) 단에서 회귀를 일으킴.진단 결과
shortcut.hwp의 "보기"/"입력" 2단 zone 은 단 유형 = 배분(Distribute) — 콘텐츠를 두 단에 균등 배분하므로 밴드가 작음(6줄 ≈ 106px). 마지막 단 단나누기 시 한컴은 같은 페이지에 새 (배분) 밴드를 만든다.exam_math.hwp의 2단 zone 은 단 유형 = 일반(Normal, 신문형) — 단 0 을 채우고 단나누기로 단 1 로 넘어가는 방식. 신문형 단에서 마지막 단의 단나누기는 같은 페이지에 새 밴드를 만들지 않고 새 페이지로 간다. #846 의start_new_column_band가 이 경우에도 같은 페이지 새 밴드를 만들어 → 18→11페이지(한컴 PDF 2022 = 20),21_언어_기출페이지 8/9 시프트(test_539/test_548) 발생.수정
start_new_column_band호출을current_zone_column_type == ColumnType::Distribute일 때로 한정. "일반"(Normal) 단에서는 기존advance_column_or_new_page(마지막 단 → 새 페이지) 유지. ("평행"/Parallel 은 별도 의미 — 본 타스크 범위 밖, 현 동작 유지.)(밴드 높이를
max(단별 마지막 문단 LINE_SEG vpos_end)로 근사하는 부분은 배분 단에서는 밴드가 작아 충분히 정확 — 별도 정합 불요.)완료 조건
start_new_column_band가 배분(Distribute) 단에서만 동작.exam_math.hwp페이지 수 = 한컴 PDF 20 (baseline 18 → 개선).shortcut.hwp7페이지 정합 유지.21_언어_기출등 다단 샘플 SVG diff 무변화(의도 외).cargo test전건 통과.참고: #846,
mydocs/working/task_m100_846_stage2.md