결함
samples/2022년 국립국어원 업무계획.hwp 31 페이지 상단에서 pi=586 의 12x5 일정표가 직전 pi=585 의 1x3 제목 표(treat_as_char=true 인라인) 영역 안쪽으로 약 16 px 침범하여 시각적으로 겹친다.
측정 (현재 PR #644 적용 상태, 동일 결함이 stream/devel 에서도 재현)
| 항목 |
y 좌표 (px) |
비고 |
| body_top |
94.48 |
본문 영역 상단 |
| pi=585 외곽 상단 |
94.48 |
outer top margin (1mm/3.77 px) |
| pi=585 cell 상단 |
98.25 |
|
| pi=585 cell 하단 |
137.10 |
(38.85 px 셀) |
| pi=585 외곽 하단 |
140.87 |
정상이면 pi=586 시작점 |
| pi=586 12x5 표 시작 |
124.93 |
← 15.94 px 위로 어긋남 |
→ pi=586 12x5 일정표가 pi=585 1x3 제목 표 안으로 침범. PDF 권위 자료(pdf/2022년 국립국어원 업무계획-2022.pdf) 와 불일치.
재현
```bash
./target/debug/rhwp dump-pages "samples/2022년 국립국어원 업무계획.hwp" -p 30
./target/debug/rhwp export-svg "samples/2022년 국립국어원 업무계획.hwp" -o output/svg/task710 -p 30 --debug-overlay
```
dump-pages 출력:
```
=== 페이지 31 (global_idx=30, section=0, page_num=29) ===
body_area: x=75.6 y=94.5 w=642.5 h=933.5
단 0 (items=2, used=54.2px)
Table pi=585 ci=0 1x3 635.8x38.9px wrap=TopAndBottom tac=true vpos=0
PartialTable pi=586 ci=0 rows=0..9 cont=false 12x5 vpos=69196..0 [vpos-reset@line1] split_start=0.0 split_end=17.6
```
IR 정보 (pi=586)
- 12x5 표:
treat_as_char=false, wrap=TopAndBottom, vert=문단(4294965500) ≡ 음수 -1796 HU (-0.6mm), outer_margin=1mm 사방
- LINE_SEG:
ls[0] vpos=69196 (페이지 폭 초과 — 9.61 inch), ls[1] vpos=0 → [vpos-reset@line1]
의심 영역 (사전 조사)
회귀 베이스라인
수용 기준
- pi=586 12x5 표 외곽 상단 y ≥ pi=585 외곽 하단 y (140.87 px 이상) — 침범 0
- PDF (한글 2022) 권위 자료와 시각 정합 (지면 1쪽 차이 회귀 0)
- 회귀 차단: 1221+ 테스트 통과, 골든 SVG 회귀 없음
결함
samples/2022년 국립국어원 업무계획.hwp31 페이지 상단에서pi=586의 12x5 일정표가 직전pi=585의 1x3 제목 표(treat_as_char=true 인라인) 영역 안쪽으로 약 16 px 침범하여 시각적으로 겹친다.측정 (현재 PR #644 적용 상태, 동일 결함이 stream/devel 에서도 재현)
→ pi=586 12x5 일정표가 pi=585 1x3 제목 표 안으로 침범. PDF 권위 자료(
pdf/2022년 국립국어원 업무계획-2022.pdf) 와 불일치.재현
```bash
./target/debug/rhwp dump-pages "samples/2022년 국립국어원 업무계획.hwp" -p 30
./target/debug/rhwp export-svg "samples/2022년 국립국어원 업무계획.hwp" -o output/svg/task710 -p 30 --debug-overlay
```
dump-pages 출력:
```
=== 페이지 31 (global_idx=30, section=0, page_num=29) ===
body_area: x=75.6 y=94.5 w=642.5 h=933.5
단 0 (items=2, used=54.2px)
Table pi=585 ci=0 1x3 635.8x38.9px wrap=TopAndBottom tac=true vpos=0
PartialTable pi=586 ci=0 rows=0..9 cont=false 12x5 vpos=69196..0 [vpos-reset@line1] split_start=0.0 split_end=17.6
```
IR 정보 (pi=586)
treat_as_char=false,wrap=TopAndBottom,vert=문단(4294965500)≡ 음수 -1796 HU (-0.6mm),outer_margin=1mm사방ls[0] vpos=69196(페이지 폭 초과 — 9.61 inch),ls[1] vpos=0→[vpos-reset@line1]의심 영역 (사전 조사)
src/renderer/layout.rs:2667-2679— PartialTable item 의pt_y_start결정 시 "vert_rel_to=Para && vertical_offset > 0" 만 분기 → 음수 vertical_offset 케이스가 가드 밖으로 빠짐src/renderer/layout.rs:1500-1548(VPOS_CORR Task 다단 우측 단 단행 문단 줄간격 누락: vpos 보정 공식의 base 차감 무력화 #412/페이지 분할 드리프트 — pi=80 마지막 줄 다음 페이지로 넘어감 (2022 국립국어원 업무계획.hwp p6) #643) —vpos_end=69196거대 raw vpos 가 page-path/lazy-path 에서 어떻게 처리되는지 추가 트레이스 필요회귀 베이스라인
수용 기준