Skip to content

Task #773 후속 정정: H1' (column top sb) + H3b (zone 전환 ColumnDef.spacing/2) #776

@planet6897

Description

@planet6897

배경

Task #774 RFC 분석 결과, 이슈 #773 의 본문 압축 결함은 2개 independent paragraph spacing 결함 의 누적:

  • H1': 단/페이지 첫 paragraph 의 ParaShape.spacing_before 누락
  • H3b: zone 전환 시 ColumnDef.spacing / 2 vertical 추가 spacing 미적용

정정 대상

H1' — paragraph_layout.rs:744-748

```rust
// 현재 (defect)
let is_column_top = (y - col_area.y).abs() < 1.0;
if start_line == 0 && spacing_before > 0.0 && !is_column_top {
y += spacing_before;
}

// 정정 후보 (셀 안 paragraph 가드 추가)
let is_in_cell = cell_ctx.is_some();
if start_line == 0 && spacing_before > 0.0 && !is_in_cell {
y += spacing_before;
}
```

H3b — layout.rs:1240 영역

```rust
if is_new_zone {
if col_content.zone_y_offset > 0.0 {
let zone_top_extra = extract_columndef_spacing_px(col_content, paragraphs, dpi) / 2.0;
current_zone_start_y = prev_zone_y_end + zone_top_extra;
} else {
current_zone_start_y = 0.0;
}
last_zone_y_offset = col_content.zone_y_offset;
}
```

추가: typeset 측 base_available_height 동기화.

검증 기준

측정 기대
shortcut.hwp 페이지 1 본문 baseline PDF 137.87 px ≈ rhwp 137.x (±2 px)
shortcut.hwp 페이지 2-7 본문 baseline PDF 정합
sungeo.hwp pi=0 heading 위치 PDF 12.63 px ≈ rhwp 13.33
treatise sample.hwp pi=0 heading 위치 PDF 23.69 px ≈ rhwp 24
cargo test 1217 passed (회귀 0)
다단 layout 회귀 (Task #768/#770/#715) 회귀 0

회귀 위험

영역 위험도
셀 안 paragraph (cell padding + sb 중복)
페이지 over-flow (typeset 동기화 누락 시)
다단 layout 회귀
sb=0 / ColumnDef.spacing=0 케이스 없음 (변경 없음)

산출물

본 RFC 의 산출물:

  • `mydocs/report/task_m100_774_report.md` — RFC 최종 보고서
  • `mydocs/tech/hancom_pdf_paragraph_spacing.md` — 알고리즘 모델

본 task

본 task 완료 시 이슈 #773 도 close.

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