본질
samples/basic/shortcut.hwp 페이지 3 끝에 있어야 할 "<편집 화면 분할에서>" + "화면 이동 Ctrl+W,N" 행이 페이지 4 첫 줄로 밀림.
재현
cargo run --release --bin rhwp -- export-svg samples/basic/shortcut.hwp -p 2
cargo run --release --bin rhwp -- dump-pages samples/basic/shortcut.hwp -p 2
cargo run --release --bin rhwp -- dump-pages samples/basic/shortcut.hwp -p 3
진단 (정적 분석)
PDF 권위 자료 (한글 2022, pdf/basic/shortcut-2022.pdf) — 페이지 3 끝
조판 부호 보이기/감추기 Ctrl+G,C | 화면 확대/축소 Shift+(회색)+/-
... (좌단 6 + 우단 6)
화면 확대 100% Ctrl+G,Q | 세로로 나누기 Ctrl+W,V
<편집 화면 분할에서> | 화면 이동 Ctrl+W,N
→ PDF 페이지 3: 다단 영역 좌단 7 + 우단 7. 마지막 1행이 "<편집 화면 분할에서>" + "화면 이동" 으로 같은 다단 영역 안에 추가됨.
rhwp 현재 동작
페이지 3 (dump-pages -p 2):
- 단 0: 보기 표 (pi=81)
- 단 1: pi=82~87 (좌단 6항목)
- 단 2: pi=88~93 (우단 6항목, used=80px)
- 다음 항목 없이 zone 종료 → 페이지 break
페이지 3 잔여 공간 = body height 701.7 − used ≈ 561.8 px (10배 이상 여유).
페이지 4 (dump-pages -p 3) 첫 줄로 밀린 것:
- 단 0: pi=94 ("<편집 화면 분할에서>"), pi=95 ("화면 이동 Ctrl+W,N")
- 단 1: pi=96 ("입력" 표 — 다음 다단 영역 시작)
IR 확인 (dump -s 0 -p N)
| pi |
text |
controls |
ParaShape |
| 82~87 |
좌단 6항목 |
— |
ps_id=11 |
| 88~93 |
우단 6항목 |
— |
ps_id=11 |
| 94 |
"<편집 화면 분할에서>" |
[단나누기] (column-break) |
ps_id=12 |
| 95 |
"화면 이동 Ctrl+W,N" |
— |
ps_id=11 |
| 96 |
"입력" 표 |
[다단나누기] (multi-col-break) |
— |
Root cause 가설 (정적 분석, 추정)
pi=94 의 [단나누기] (column-break) 가 다단 zone 분할에서 잘못 처리됨:
- rhwp 가 pi=94 column-break 를 만나면 "여기부터 새 zone 시작" 으로 해석
- 새 zone = pi=94 + pi=95 + pi=96 ([다단나누기]) + pi=97..(입력 표 좌우단)
- 새 zone height ≈ 입력 표 + 좌우단 12항목 (전체 페이지급)
- 페이지 3 잔여 561.8 px 에 안 들어감 판정 → 페이지 break
PDF (한컴) 정합 동작:
- column-break 는 같은 다단 zone 안의 단 분할 마커
- pi=94 좌단 마지막 1행, pi=95 우단 마지막 1행으로 같은 다단 zone 에 추가
- pi=96 의 [다단나누기] 가 진짜 zone 종료
영향 영역
src/renderer/pagination/engine.rs
src/renderer/typeset.rs (multi-column zone 결정)
src/parser/hwp5/, src/parser/hwpx/ 의 column-break / multi-col-break 마커 IR 변환
우선순위
PR #719 (Task #716) merge 후 별도 task 로 진행. 본 결함은 Task #716 의 fix_overlay 와 무관한 다단 zoning 영역으로, 별도 분석 단계 (수행계획서 → 구현계획서) 필요.
관련 자료
- 샘플:
samples/basic/shortcut.hwp (가로 paper, 다단 영역 다수)
- PDF 권위:
pdf/basic/shortcut-2022.pdf
본질
samples/basic/shortcut.hwp페이지 3 끝에 있어야 할 "<편집 화면 분할에서>" + "화면 이동 Ctrl+W,N" 행이 페이지 4 첫 줄로 밀림.재현
진단 (정적 분석)
PDF 권위 자료 (한글 2022,
pdf/basic/shortcut-2022.pdf) — 페이지 3 끝→ PDF 페이지 3: 다단 영역 좌단 7 + 우단 7. 마지막 1행이 "<편집 화면 분할에서>" + "화면 이동" 으로 같은 다단 영역 안에 추가됨.
rhwp 현재 동작
페이지 3 (
dump-pages -p 2):페이지 3 잔여 공간 = body height 701.7 − used ≈ 561.8 px (10배 이상 여유).
페이지 4 (
dump-pages -p 3) 첫 줄로 밀린 것:IR 확인 (
dump -s 0 -p N)Root cause 가설 (정적 분석, 추정)
pi=94의[단나누기](column-break) 가 다단 zone 분할에서 잘못 처리됨:PDF (한컴) 정합 동작:
영향 영역
src/renderer/pagination/engine.rssrc/renderer/typeset.rs(multi-column zone 결정)src/parser/hwp5/,src/parser/hwpx/의 column-break / multi-col-break 마커 IR 변환우선순위
PR #719 (Task #716) merge 후 별도 task 로 진행. 본 결함은 Task #716 의 fix_overlay 와 무관한 다단 zoning 영역으로, 별도 분석 단계 (수행계획서 → 구현계획서) 필요.
관련 자료
samples/basic/shortcut.hwp(가로 paper, 다단 영역 다수)pdf/basic/shortcut-2022.pdf