Skip to content

21_언어_기출 1p 좌측 단 pi=10 cross-column vpos-reset 미인식 (cv != 0) #470

@planet6897

Description

@planet6897

증상

samples/21_언어_기출_편집가능본.hwp 페이지 1 좌측 단(col 0) 하단에 pi=10 ("적합성 검증이란 …") 의 처음 2줄이 강제 배치되어 본문 영역을 56.2 px 넘침. 우측 단으로 이동해야 함.

LAYOUT_OVERFLOW: page=0, col=0, para=10, type=PartialParagraph, y=1492.3, bottom=1436.2, overflow=56.2px

dump-pages: col 0 used=1202.7px, hwp_used≈159.1px — HWP 는 pi=10 전체가 col 1 시작이어야 함을 인코딩.

원인

src/renderer/typeset.rs:409-419 (Task #321) cross-paragraph vpos-reset 감지가 cv == 0 (정확히 0) 만 검출.

  • pi=9 last vpos = 90426 (col 0 바닥)
  • pi=10 first vpos = 9014 (column 헤더 오프셋, 0 아님)

9014 는 col 1 의 컬럼 헤더("언어이해" 글상자 + 세로 구분선) 만큼 비우기 위한 col 1 시작 오프셋. pi=0 first vpos 도 동일.

cv < pv 인데 cv == 0 가드 때문에 reset 감지 실패 → pi=10 partial 이 col 0 에 강제 삽입 → overflow.

기대

cv == 0 && pv > 5000cv < pv && pv > 5000 으로 완화. HWPUNIT vpos 는 컬럼 내 단조 증가하므로 cv < pv 는 항상 reset 시그널.

영향

  • src/renderer/typeset.rs:415 본 fix
  • src/renderer/pagination/engine.rs 에 동일 cross-paragraph reset 검출 부재 (RHWP_USE_PAGINATOR=1 시 잠재 회귀) — 동시 보강 필요
  • 회귀 검증: 다단 샘플(exam_kor/exam_eng/hwpspec-w 등) 페이지 수 / overflow 건수

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions