Task #1488: RowBreak 표 셀 내부 빈 오버레이 vpos 리셋 하드브레이크 제외 (여분 빈 페이지 제거)#1544
Merged
Conversation
…2→18p) - cell_units: para_has_visible_text 게이트 추가, 비가시 빈 오버레이 스페이서 문단의 vpos 리셋을 hard_break_before에서 제외 - 가시 텍스트 문단 사이 리셋(Task edwardkim#993 의도)은 보존 - row_cut 단위 테스트 갱신(visible_text_para) + 신규 회귀 테스트 추가 - 전체 cargo test 1938 + baseline 통과
- tests/issue_1488_rowbreak_empty_overlay_pages.rs: 페이지 수 18 + pi=28 ≤4페이지 가드 - 한글 2024 PDF 18p 컨택트시트 대조: 내용 손실 없음, 겹침 해소 - 잔여 overflow(ROOT B)는 기존 문제·내용 손실 없음·고위험 → 별도 후속 권장
table_layout.rs / issue_1488 테스트의 rustfmt diff 정리. 로직 변경 없음. cargo fmt --all -- --check 통과, clippy -D warnings rc=0, issue_1488 테스트 통과.
devel 의 RowBreak continuation 안정화/collapse_empty_rowbreak_spacer 변경과 Task edwardkim#1488 의 비가시 빈 오버레이 vpos 리셋 하드브레이크 제외를 함께 보존: - CellUnit hard_break_before 는 Task edwardkim#1488 게이트(가시 텍스트/중첩표 한정) 유지 - devel 신규 vpos_gap_before(+ !collapse_empty_rowbreak_spacer) 필드 병행 적용 - devel 이 text_para 에 가시 'x' 를 추가해, 빈-오버레이 테스트는 신규 empty_overlay_para(빈 텍스트) 헬퍼로 분리 (의도 보존) 검증: cargo fmt --all --check OK, clippy -D warnings OK, 전체 cargo test 0 실패.
devel 추가 6커밋 클린 병합. 전체 cargo test 0 실패, clippy -D warnings OK, fmt OK.
Collaborator
|
@planet6897 감사합니다. 최신 검증 결과:
merge commit: |
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.
closes #1488
문제
samples/rowbreak-problem-pages.hwpx가 RowBreak 표 분할에서 여분의 거의 빈 연속 페이지와 본문/도식 겹침을 발생 (clean devel 22페이지, 정답지 한글 2024 PDF 18페이지).근본 원인
섹션 1·문단 28의
1×1 RowBreak 표— 단일 셀에 본문 텍스트(p[0..5]) + 빈 오버레이 스페이서 문단(p[6..15]) + TAC 사각형 다이어그램(p[16..17])이 같은 세로 영역에 겹쳐 배치.cell_units가 빈 오버레이 문단의 vpos 리셋을hard_break_before로 표시 →advance_row_cut가 리셋마다 컷을 끊어 954px 가용 페이지에 32~85px 만 배치하고 넘기는 빈 연속 페이지 5장을 양산.해결
cell_units에para_has_visible_text게이트 추가 — 비가시(빈 텍스트) 오버레이 문단의 vpos 리셋을 하드 브레이크에서 제외. 가시 텍스트 문단 사이 리셋(Task #993 의도)은 보존.결과
내용 손실 없음 (18페이지 전수 PDF 대조).
검증
cargo testlib 1938 + 통합 전부 통과,hwpx_roundtrip_baseline4/4test_advance_row_cut_empty_overlay_reset_no_hard_break신규 + 기존 2개 가시문단 갱신(커버리지 보존)tests/issue_1488_rowbreak_empty_overlay_pages.rs신규잔여 (별도 후속 권장)
표 하단 분할
LAYOUT_OVERFLOW(2.7~76px 마진 스필)는 모두 기존(clean devel) 문제·내용 손실 없음. 한컴 페이지 하단 "표 밀기 vs 부분 배치" 패리티(Task #1025/#1086/#1486 계보)로 고위험 영역이라 별도 이슈로 분리 권장.