Skip to content

exam_science 페이지 1 → 2 누적 vpos drift: 문제 6번 <보기>/답안이 다음 페이지로 밀림 #523

@planet6897

Description

@planet6897

증상

samples/exam_science.hwp rhwp SVG 출력에서 문제 6번 <보기> 박스 + 답안 ① ② ③ ④ ⑤ 가 page 1 우측 단 하단에 정상적으로 들어갈 자리가 있는데도 page 2 로 밀려난다. PDF(한컴 정답) 에선 같은 콘텐츠가 page 1 안에 들어가고 page 2 는 문제 7 부터 시작.

페이지 내용
SVG p1 (2단) 우단: 문제 4, 5, 6 stem [3점] 까지
SVG p2 <보기> 표(3×3) + 답안 1줄, 아래 1080+px 공백
SVG p3 문제 7~9 (정상)

dump-pages 분석

page 1 단 1 (오른쪽 단): items=46, used=1112.6 px / body_height 1215.1 px, 잔여 102.5 px

  • 다음 pi=30 (3×3 표) 높이 107.1 px → 잔여 102.5 px 보다 4.6 px 부족 → break → page 2

HWP 원본 vpos 검사:

  • 표 pi=30 vpos = 78952 HU
  • 표 pi=30 높이 = 8033 HU
  • column body 높이 = 91136 HU
  • 78952 + 8033 = 86985 < 91136 → HWP 좌표상 4151 HU (≈55 px) 여유 있게 들어가야 한다

→ rhwp 의 누적 y(1112.6 px) 가 HWP vpos(78952 HU ≈ 1051 px) 대비 약 61 px 과적되어 마지막 표가 단 하단을 넘는 것으로 잘못 판정됨.

원인 가설

pi=0..29 누적 렌더 높이가 HWP vpos 기준 대비 ~61 px (≈4570 HU) 누적 오버슈트.

후보:

  1. 다수 인라인 수식(pi=13/16/18/22/27)에서 line_height 추정이 HWP 기록값보다 약간 큼 (paragraph_layout.rs:798-806 has_tac_shape 분기 추정)
  2. 문단 spacing_before/after 가 HWP vpos 인코딩(이미 spacing 반영)과 중복 가산
  3. 빈 문단(pi=20/25/26 "(빈)") 이 HWP vpos 의도 폭보다 더 차지

#496 / Layout Refactor Phase 3-4 의 누적 baseline/vpos drift 영역과 동일 family.

처리 방향

Layout Phase 3 (누적 vpos drift / baseline 정렬) 본질로 종속 — 단발 fix 보다 종합 검토. 단기 미봉으로 'HWP vpos 기준 fit / 누적 px 기준 overflow' 경계 케이스에 HWP vpos 신뢰 분기 추가 가능하나 회귀 위험.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions