Skip to content

column 가용 공간 계산 정확도 조사 (21_언어 +4쪽 진짜 원인) #312

@planet6897

Description

@planet6897

상위 Epic: #309
선행: #310 (분석 도구), #311 (vpos-reset 가설 부정)

배경

#311 검증으로 "vpos-reset 강제 분리" 가설이 부정됨 (21_언어 19→20쪽 악화). 진짜 원인은 우리 엔진의 column 가용 공간 계산이 HWP보다 약 30px 관대한 것으로 재추정.

페이지 7 21_언어 사례

  • HWP: `pi=117 line 0` 까지만 단에 넣음 (단 사용 ≈ vpos=89700 HWPUNIT ≈ 1196px)
  • 우리: `pi=117 전체` (line 0+1, 약 29.4px) 채움 (단 가용 1226.4px, ~30px 더 큼)

작업 범위

  1. 21_언어 페이지 7 단 0의 우리 엔진 vs HWP 단 사용 공간 정밀 측정
  2. 차이의 origin 식별 (후보):
    • `paginate_text_lines`의 trailing line_spacing 처리 (`engine.rs:602~620`)
    • line_height 누적 시 spacing 분리 모델
    • spacing-after 마지막 문단 처리
    • 줄간격 누적 오차
  3. 보정 코드 작성
  4. 4샘플 검증:
    • 단독: 21_언어 ?쪽 (OFF 모드에서 감소 기대)
    • 결합: 21_언어 + `--respect-vpos-reset` → 15쪽 (PDF 일치) 목표
    • 다른 3샘플 무변화 (회귀 0)

검증 도구

#311 에서 추가된 `--respect-vpos-reset` 실험 플래그를 결합 검증용으로 활용:

```bash

OFF 비교

rhwp dump-pages SAMPLE.hwp | grep -c "^=== 페이지"

ON 결합

rhwp dump-pages SAMPLE.hwp --respect-vpos-reset | grep -c "^=== 페이지"
```

비범위

  • 페이지네이션 엔진 전면 재설계
  • LINE_SEG 외 다른 메타데이터 활용

참고

  • `mydocs/tech/line_seg_vpos_analysis.md` (부록 A: 가설 검증 결과)
  • `mydocs/report/task_m100_311_report.md`

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