Skip to content

Task #1246: 미주 between-notes margin min-gap (HeightCursor) — closes #1238, #1246#1247

Merged
edwardkim merged 1 commit into
edwardkim:develfrom
planet6897:feature/issue-1246-endnote-vpos-anchor
Jun 2, 2026
Merged

Task #1246: 미주 between-notes margin min-gap (HeightCursor) — closes #1238, #1246#1247
edwardkim merged 1 commit into
edwardkim:develfrom
planet6897:feature/issue-1246-endnote-vpos-anchor

Conversation

@planet6897

Copy link
Copy Markdown
Contributor

문제

미주(답안) 영역에서 다줄 풀이로 끝나는 문제 다음 제목이 직전 줄에 붙음(문22 외 문21·23·27·28·29). 한컴 2022 기준 미주 사이 7mm(between-notes) gap 누락(문22 above-gap 0px).

원인

해결

HeightCursor.vpos_adjustmin-gap 케이스 추가:

  • 새 미주 제목 & forward & 다줄 prev & stored vpos gap ∈ [-0.5,4.0)pxy_offset + prev_line_spacing_px 로 보정.
  • 의도적 소-gap(문13 ~10px)·backtrack(문12 task 1139 후속 보정: 3-11월_실전_통합_2022 14쪽 문22 미주 간격 불일치 #1209)·단일줄 prev 는 제외 → over-lift/회귀 회피.
  • 보정값 = pagination(compute_en_metrics)이 이미 예약한 trailing → render·pagination 정합(pi=475 overflow 별도 수정 없이 해소).

검증

항목 결과
문22 above-gap (3-11월 page14) 0 → 26.5px(=7mm), 한컴 2022 PDF 시각 정합
issue_1189 (pi=475 overflow, page17 수식)
issue_1209 (문12 safe-vpos-backtrack)
issue_1139 미주군 + HeightCursor 단위테스트(신규 3)
전체 cargo test 1946 passed, 0 failed

#1238 흡수

#1238 의 render-클램프(별 접근, vpos 위치 시스템 충돌)는 폐기. 검증된 min-gap 모델·PDF 근거를 본 PR 에서 회귀 없이 구현. closes #1238, #1246.

🤖 Generated with Claude Code

…loses edwardkim#1238, edwardkim#1246

미주(답안) 영역에서 다줄 풀이로 끝나는 문제 다음 제목이 직전 줄에 붙던 문제(문22 외
문21·23·27·28·29) 수정. 한컴 2022 PDF 기준 미주 사이 7mm(between-notes) gap 복원.

원인:
- between-notes 는 가산이 아니라 min-gap(max) 모델 (한컴 2022 PDF 검증).
- render 는 HeightCursor.vpos_adjust 로 미주 vpos→y 매핑하며 compact endnote gap 특례
  (forward-cap/backtrack/edwardkim#1209 safe-vpos-backtrack)를 보유하나, stored vpos gap≈0
  (다줄 마지막 줄 trailing 누락=문22)을 끌어올리는 min-gap 로직만 부재.

해결:
- HeightCursor.vpos_adjust 에 min-gap 케이스 추가: 새 미주 제목 & forward & 다줄 prev &
  stored vpos gap∈[-0.5,4.0)px 이면 y_offset + prev_line_spacing_px 로 보정.
  의도적 소-gap(문13)·backtrack(문12)·단일줄 prev 는 제외 → over-lift/회귀 회피.
- 보정값 prev_line_spacing_px = pagination 이 이미 예약한 trailing → render·pagination 정합
  (pi=475 overflow 별도 수정 없이 해소).
- typeset→PaginationResult→layout 로 섹션 between-notes 마진(HU) 배선, 미주 흐름 컬럼만 주입.
- HeightCursor 신규 단위테스트 3건.

검증: 문22 above-gap 0→26.5px(=7mm) 한컴 2022 PDF page14 시각 정합. issue_1189(pi=475·page17)·
issue_1209(문12)·issue_1139 미주군 통과. 전체 cargo test 1945 passed, 0 failed.

edwardkim#1238 흡수: render-클램프(별 접근, vpos 충돌)는 폐기하고 HeightCursor min-gap 으로 회귀 없이 달성.
@edwardkim edwardkim self-requested a review June 2, 2026 12:14
@edwardkim edwardkim added the enhancement New feature or request label Jun 2, 2026
@edwardkim edwardkim added this to the v1.0.0 milestone Jun 2, 2026
@edwardkim edwardkim merged commit 5861937 into edwardkim:devel Jun 2, 2026
7 checks passed
@edwardkim

Copy link
Copy Markdown
Owner

메인테이너 확인 완료했습니다.

처리 요약:

  • 현재 local/devel 기준으로 PR #1247을 병합했습니다.
  • src/renderer/layout.rs 충돌은 PR #1240의 same-endnote successor 처리와 PR #1247의 between-notes HU 전달 처리를 모두 보존하는 방향으로 해소했습니다.
  • 자동 검증 통과:
    • cargo fmt --all --check
    • cargo test renderer::height_cursor --lib
    • cargo test --test issue_1139_inline_picture_duplicate -- --nocapture
    • cargo test --test issue_1082_endnote_multicolumn_drift
    • cargo test --lib
    • cargo test --tests
    • WASM build
    • rhwp-studio build
  • output/poc/pr1247-endnote-min-gap/ 산출물 기준 메인테이너 시각 판정 통과했습니다.

원격 devel 반영 완료: a9c49dd6

기여 감사합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants