결함 정황
samples/synam-001.hwp 15페이지 (인덱스 14) 의 분할 표 (pi=140, 8x2, RowBreak) 의 셀 안 마지막 줄이 페이지 본문 영역 끝에서 시각적으로 클립핑.
작업지시자 시각 판정: "15 페이지: 페이지 마지막 경계 텍스트 클립핑. 하지만 다음 페이지에서 문단지 정상적으로 조판됨"
Task #431 정정 영역과 분리
본 결함은 Task #431 (commit 정정 — compute_cell_line_ranges 의 단위 mismatch) 의 본질 정정으로 빈 페이지 결함은 해소되었으나 — 페이지 15 의 셀 안 마지막 줄이 본문 영역 끝을 살짝 초과해 클립핑되는 잔여 결함.
정황 정밀
| 영역 |
좌표 |
| body_area |
y=75.57 ~ 1075.33 (height=999.76) |
| 마지막 텍스트 baseline |
y=1073.13 (body 안) |
| 글자 descender + line_height |
body 끝 1075.33 살짝 초과 |
PartialTable fragment 정의:
split_start_content_offset=1280.6 split_end_content_limit=965.4
abs_limit = 1280.6 + 965.4 = 2246.0
본 정정 후 layout 단계는 cum 1280.6 ~ 2246.0 영역 (965.4px) 표시. typeset 의 split_end_limit = avail_content 추정이 layout 의 실제 line height 와 미세하게 어긋남.
본질 추정
Task #362 (commit af6753f5) 의 split_end_limit = avail_content 는 typeset 의 셀 사용 가능 영역 추정. layout 의 실제 line height 누적과 미세하게 어긋나 마지막 줄이 본문 영역 살짝 초과.
관련 트러블슈팅:
mydocs/troubleshootings/typeset_layout_drift_analysis.md — typeset/layout drift 본질
mydocs/troubleshootings/typeset_fit_accumulation_drift.md — fit 누적 drift
정정 방향 (제안)
typeset.rs 의 split_end_limit = avail_content 산정 시 layout 의 실제 line height 정합 — line_h 누적 기준 cap
- 또는
compute_cell_line_ranges 의 break 조건 정밀화 — line_end_pos > abs_limit + epsilon
- 또는 layout 단계에서 마지막 줄이 본문 영역 초과 시 break (line drop)
영향 영역
- 본 정황은 큰 셀 (paras=85) + RowBreak 표 + content_offset > content_limit 케이스 (페이지 15) 같은 매우 특수한 정합. 일반 분할 표는 영향 없음.
검증 케이스
마일스톤
v1.0.0 (M100) — 조판 엔진 정합성
참고
결함 정황
samples/synam-001.hwp15페이지 (인덱스 14) 의 분할 표 (pi=140, 8x2, RowBreak) 의 셀 안 마지막 줄이 페이지 본문 영역 끝에서 시각적으로 클립핑.작업지시자 시각 판정: "15 페이지: 페이지 마지막 경계 텍스트 클립핑. 하지만 다음 페이지에서 문단지 정상적으로 조판됨"
Task #431 정정 영역과 분리
본 결함은 Task #431 (commit 정정 —
compute_cell_line_ranges의 단위 mismatch) 의 본질 정정으로 빈 페이지 결함은 해소되었으나 — 페이지 15 의 셀 안 마지막 줄이 본문 영역 끝을 살짝 초과해 클립핑되는 잔여 결함.정황 정밀
PartialTable fragment 정의:
split_start_content_offset=1280.6 split_end_content_limit=965.4abs_limit = 1280.6 + 965.4 = 2246.0본 정정 후 layout 단계는
cum 1280.6 ~ 2246.0영역 (965.4px) 표시. typeset 의split_end_limit = avail_content추정이 layout 의 실제 line height 와 미세하게 어긋남.본질 추정
Task #362 (commit
af6753f5) 의split_end_limit = avail_content는 typeset 의 셀 사용 가능 영역 추정. layout 의 실제 line height 누적과 미세하게 어긋나 마지막 줄이 본문 영역 살짝 초과.관련 트러블슈팅:
mydocs/troubleshootings/typeset_layout_drift_analysis.md— typeset/layout drift 본질mydocs/troubleshootings/typeset_fit_accumulation_drift.md— fit 누적 drift정정 방향 (제안)
typeset.rs의split_end_limit = avail_content산정 시 layout 의 실제 line height 정합 — line_h 누적 기준 capcompute_cell_line_ranges의 break 조건 정밀화 —line_end_pos > abs_limit + epsilon영향 영역
검증 케이스
samples/synam-001.hwp15페이지 — 마지막 줄 클립 해소마일스톤
v1.0.0 (M100) — 조판 엔진 정합성
참고
af6753f5(Task synam-001.hwp 15페이지가 빈 채로 16페이지로 밀림 (PR #424 후 회귀) #431 의 회귀 origin)