Task #1246: 미주 between-notes margin min-gap (HeightCursor) — closes #1238, #1246#1247
Merged
edwardkim merged 1 commit intoJun 2, 2026
Conversation
…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 으로 회귀 없이 달성.
Owner
|
메인테이너 확인 완료했습니다. 처리 요약:
원격 기여 감사합니다. |
This was referenced Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
문제
미주(답안) 영역에서 다줄 풀이로 끝나는 문제 다음 제목이 직전 줄에 붙음(문22 외 문21·23·27·28·29). 한컴 2022 기준 미주 사이 7mm(between-notes) gap 누락(문22 above-gap 0px).
원인
HeightCursor.vpos_adjust(M100: 세로 측정 정합 — 페이지네이터 과측정으로 콘텐츠 다음쪽 밀림 + 박스 아래 여백 (#1022 후속) #1027 Stage C)로 미주 vpos→y 매핑하며 compact endnote gap 특례(forward-cap/backtrack/task 1139 후속 보정: 3-11월_실전_통합_2022 14쪽 문22 미주 간격 불일치 #1209 safe-vpos-backtrack)를 보유. 유일한 사각지대: stored vpos gap≈0(다줄 마지막 줄 trailing 누락=문22)을 끌어올리는 min-gap 부재.해결
HeightCursor.vpos_adjust에 min-gap 케이스 추가:stored vpos gap ∈ [-0.5,4.0)px→y_offset + prev_line_spacing_px로 보정.compute_en_metrics)이 이미 예약한 trailing → render·pagination 정합(pi=475 overflow 별도 수정 없이 해소).검증
issue_1189(pi=475 overflow, page17 수식)issue_1209(문12 safe-vpos-backtrack)issue_1139미주군 + HeightCursor 단위테스트(신규 3)cargo test#1238 흡수
#1238 의 render-클램프(별 접근, vpos 위치 시스템 충돌)는 폐기. 검증된 min-gap 모델·PDF 근거를 본 PR 에서 회귀 없이 구현. closes #1238, #1246.
🤖 Generated with Claude Code