Task #700: 셀 paragraph cut 위치 vpos 정합 — compute_cell_line_ranges cum 절대 동기화#706
Closed
planet6897 wants to merge 5 commits into
Closed
Task #700: 셀 paragraph cut 위치 vpos 정합 — compute_cell_line_ranges cum 절대 동기화#706planet6897 wants to merge 5 commits into
planet6897 wants to merge 5 commits into
Conversation
- mismatch 산술: line metric 누적 vs vpos 누적 ~50px 차이 (cell[11] p[19] 끝) - 한컴 PDF cut 위치 = p[16] 끝 (387.78px), abs_limit (459.7) 보다 72px 일찍 - pagination engine 의 split_end_content_limit 산출이 line metric 기반 = 한컴 vpos 단위와 mismatch - form-002 회귀 원인 분석: paragraph 사이 spacing vpos delta vs line metric mismatch - 정정 방향 3옵션 (A height_measurer / B layout y 보정 / C cum 동기화) 권고: C 우선
- compute_cell_line_ranges 의 cum 을 LINE_SEG.vpos 절대값으로 동기화 (차분 누적 X) - 셀별 가드: cell_first_vpos == 0 (한컴 정상 인코딩 케이스만 적용) - target_cum > cum 조건 — cum 만 전진 허용 - form-002 회귀 가드 — 차분 누적의 paragraph 사이 mismatch 회피 - 단위 테스트 3개 + 회귀 fixture 군 RMSE 검증
- paragraph 진입 시 cum 을 LINE_SEG.vpos 절대값으로 동기화 (전진만 허용) - 셀별 가드: cell_first_vpos == 0 (한컴 정상 인코딩 케이스만) - vpos 리셋 검출 + cum=abs_limit 강제 (Task edwardkim#697 통합) - 차분 누적 (delta) 대신 절대 동기화 — form-002 회귀 가드 검증: - cargo test --release 21 그룹 0 fail - inner-table-01.hwp p2 첫 줄 '- 전사 데이터 수집/유통체계 구축' 정상 ✓ - 회귀 fixture (form-002, k-water-rfp, issue_265, hwp3-sample) RMSE 동일 = 회귀 없음
- inner-table-01.hwp p2 첫 줄 '- 전사 데이터 수집/유통체계 구축' 정상 ✓ - 회귀 fixture (form-002, k-water-rfp, issue_265, hwp3-sample) RMSE 동일 - cargo test --release 21 그룹 0 fail - cell_first_vpos == 0 가드 + 절대 동기화로 form-002 회귀 가드 성공
inner-table-01.hwp p1 의 cell[10] '사업개요' 라벨이 split row 라는 이유만으로 Top 정렬 강제되어 PDF 정합과 어긋남. line_ranges 가 셀의 모든 line 을 visible 처리하면 (= 실제 split 영향 안 받은 cell) cell.vertical_align 보존. 검증: cargo test --release 21 그룹 통과, 시각: 사업개요 라벨이 cell 중앙 정렬.
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
작업지시자 시각 판정 (2026-05-09): PR #706 의 compute_cell_line_ranges cum 절대 동기화 정정이 한컴 PDF 권위본 (pdf/hwpx/form-002-2022.pdf page 1) 과 정합. 기존 golden SVG (md5 12a6cbcc) 는 PR #662 (Task #656) 의 잘못된 정정 영역으로 form-002 page 0 분할 표 셀 마지막 visible 줄 26 글자 ("ㅇPFC 나노산소운반체의 최적제조공정개발 및 GMP실증") 가 한컴 권위와 부정합으로 표시되던 영역. PR #706 의 정정 결과 (md5 672c78c6) 가 정답지 정합 — 26 글자가 한컴 PDF page 1 의 본문 영역 외부 영역에 위치하므로 표시되지 않는 영역이 정합. golden SVG 를 PR #706 출력으로 갱신. 부수 사실: PR #662 (Task #656) 의 form-002 정정 본질이 잘못된 영역. 후속 별도 영역 분석 필요 가능성 (작업지시자 결정). 검증: cargo test --release --test svg_snapshot form_002_page_0 통과. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
…ine_ranges cum 절대 동기화) 본질: samples/inner-table-01.hwp cell[11] (사업개요, 26 paras) cell-internal split 시 cum 누적 metric (line_height + line_spacing + spacing) 이 한컴 LINE_SEG.vpos 누적과 ~50px 어긋남 → abs_limit (한컴 vpos 단위) 와 비교 시 paragraph cut 위치 부정합 → p[17] '- 전사 데이터 수집/유통체계 구축' 누락. 정정 (compute_cell_line_ranges): - Task #697 영역: vpos 리셋 검출 (cell_first_vpos == 0 + cur_first_vpos < prev_end_vpos 시 cum = abs_limit, page-break 신호) - Task #700 영역: 정상 누적 시 vpos 절대 동기화 (target_cum > cum 일 때만 cum = target_cum, 전진 보장) - 가드: cell_first_vpos == 0 (한컴 정상 인코딩 케이스만), target_cum > cum (감소 금지) 부수 정정 (Task #697 후속, table_partial.rs): - split row 미분할 cell 의 valign 보존 — is_in_split_row && cell_was_split 영역 가드 좁힘. inner-table-01 cell[10] '사업개요' 라벨 중앙 정렬 정합. PR supersede 영역: PR #701 (Task #697) close → PR #706 (Task #697 + #700 통합) supersede 영역. 컨트리뷰터 자체 결정. 작업지시자 시각 판정 (2026-05-09): - BEFORE (devel, PR #662 본질 정정 영역) — form-002 page 0 마지막 visible 줄 26 글자 ('ㅇPFC 나노산소운반체의 최적제조공정개발 및 GMP실증') 표시 - AFTER (PR #706 적용) — 26 글자 누락 - PDF 권위본 (pdf/hwpx/form-002-2022.pdf page 1) 비교 결과 AFTER 가 한컴 정답지 정합 ★ — 26 글자가 본문 영역 외부 영역에 위치 (한컴 권위) → PR #706 이 한컴 권위 정합. golden SVG (tests/golden_svg/form-002/page-0.svg) 를 PR #706 출력으로 갱신 (md5 12a6cbcc → 672c78c6). PR #662 (Task #656) 의 form-002 정정 본질 영역이 잘못된 영역 — 후속 별도 분석 가능성. 검증: - cargo test --release: lib 1166 + 통합 ALL GREEN, failed 0 - svg_snapshot 8/8 (form-002 갱신 후 통과) - cargo clippy --release: 신규 경고 0 - WASM 빌드 4,596,712 bytes - 작업지시자 시각 판정 ★ 통과 Closes #700 Closes #697 Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
- mydocs/pr/archives/pr_706_review.md (검토 문서, 옵션 A 결정 반영)
- mydocs/pr/archives/pr_706_report.md (처리 보고서, golden 갱신 명시)
- mydocs/plans/archives/task_m100_700{,_impl}.md
- mydocs/orders/20260509.md: PR #706 행 + 본 사이클 패턴 라인 추가
처리 결과:
- 옵션 A — 5 commits cherry-pick + golden SVG 갱신 + no-ff merge (fce2d87)
- 작업지시자 시각 판정 ★ 통과 — 정답지 정합 확정
- golden SVG 갱신 (md5 12a6cbcc → 672c78c6, 메인테이너 commit 78e38e5)
- PR supersede: PR #701 close → PR #706 (Task #697 + #700 통합)
- Issue #700 / #697 close 자동 정합
부수 사실:
- PR #662 (Task #656) 의 form-002 정정 본질 영역 부정확 — 후속 별도 분석 가능성
- `feedback_visual_judgment_authority` 권위 사례 신규 (CI 결정적 검증 vs 시각 판정 충돌)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Owner
|
@planet6897 PR 머지 완료되었습니다 (devel 처리 결과
시각 판정 본질
→ 26 글자가 한컴 PDF page 1 본문 영역 외부에 위치 (한컴 권위 영역, 표시되지 않는 영역이 정합). golden SVG 갱신 (메인테이너 추가 commit) 부수 사실 (후속 분석 가능성) 검증
메모리 룰 신규 권위 사례
처리 보고서: |
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
본질: typeset.rs::typeset_table_paragraph 분기에 BehindText/InFrontOfText (글뒤로/글앞으로) 가드 누락. pagination/engine.rs:976-981 에는 동일 가드가 존재하나 메인 pagination 인 typeset.rs 영역에 미반영. → place_table_with_text 의 cur_h += pre_height + table_total_height 가 BehindText/InFrontOfText 표에도 적용되어 본문 흐름 누적 발생 → trailing 항목 다음 페이지 밀림. 정정 (src/renderer/typeset.rs:1403, +13 LOC): - Control::Table 분기 진입 시 text_wrap 가드 (InFrontOfText | BehindText) - 가드 발동 시 PageItem::Shape 로 push 후 continue (current_height 누적 영향 부재) - pagination/engine.rs:976-981 와 의미 정합 영향 좁힘: - text_wrap 두 변형만 가드 (다른 wrap 영역 영향 부재) - feedback_hancom_compat_specific_over_general 정합 검증: - cargo test --release: lib 1167 + 통합 ALL GREEN, failed 0 - cargo test --release --test issue_703: 1 PASS + 2 ignored (Issue #704 별개) - cargo test --release --test svg_snapshot form_002_page_0: PASS (PR #706 영역 보존) - cargo clippy --release: 신규 경고 0 본 환경 직접 페이지 수 측정 (PR 본문 정합 입증): - samples/basic/calendar_year.hwp: 2 -> 1 페이지 (한컴 PDF 권위 정합) - samples/table-ipc.hwp: 11 -> 10 페이지 (한컴 PDF 권위 정합, 부수 효과) 광범위 sweep (PR 본문): - 196 샘플 SVG/PDF 페이지 수 비교 — 회귀 0, 정합 +2 분리된 후속 (Issue #704): - 통합재정통계 (2010.11/2011.10) 페이지 분할 결함은 다른 본질 영역 — TopAndBottom TAC 1×1 + 각주 환경 0.84 px borderline. tests/issue_703.rs 의 해당 2 케이스는 #[ignore] 처리. Closes #703 Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7 tasks
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
본질 (2 영역): 1. Distribute 다단의 짧은 컬럼 vpos-reset 임계값 — `pv > 5000` 임계값이 짧은 Distribute (배분) 컬럼 (예: 지우기 3+3 분배, vpos=3000) 에서 미달 → column-advance 미발동 → 6항목 1단 적층. 2. Page/Column break + 새 ColumnDef 미적용 — `MultiColumn` break 만 ColumnDef 적용. shortcut.hwp p2 의 [쪽나누기]+1단 / [단나누기]+2단 배분 패턴에서 col_count 가 이전 zone 값 유지 → 페이지 분기 폭주. 정정 (src/renderer/typeset.rs +50/-6): - ColumnType 추적: `TypesetState.current_zone_column_type` 필드 추가 - vpos-reset trigger Distribute 한정 완화: pv > 0 (Normal/단단 영역 보존) - Page/Column break + 새 ColumnDef 검출 후 zone 재정의: · Column + has_diff_col_def: process_multicolumn_break 호출 · Page/Section + has_diff_col_def: force_new_page 후 ColumnDef 적용 영향 좁힘 (feedback_hancom_compat_specific_over_general): - Normal (NEWSPAPER) 다단 → 기존 pv > 5000 유지 → Task #321/#418/#470 회귀 차단 - 단일 단 → 기존 cv == 0 && pv > 5000 유지 회귀 가드 (tests/issue_702.rs +102 LOC, 신규): - shortcut_distribute_short_column_split: 페이지 수 ≤ 8 - shortcut_page2_has_three_sections: 페이지 2 SVG 에 "파일"/"편집" 섹션 헤더 모두 존재 검증: - cargo test --release: lib 1167 + 통합 ALL GREEN, failed 0 - cargo test --release --test issue_702: 2 PASS (회귀 가드) - cargo test --release --test exam_eng_multicolumn: PASS (Normal 다단 회귀 차단) - cargo test --release --test issue_418: PASS (Task #321/#418 회귀 차단) - cargo test --release --test svg_snapshot: 8/8 (form-002 PR #706 영역 보존) - cargo clippy --release: 신규 경고 0 - 광범위 sweep 7 fixture / 170 페이지 / 회귀 0 - WASM 빌드 4,604,562 bytes 본 환경 직접 페이지 수 측정 (PR 본문 정합 입증): - samples/basic/shortcut.hwp: 10 → 8 페이지 (PDF 권위 7, +1쪽 Issue #708 잔존) 분리된 후속: - Issue #708: pi=94 bare [단나누기] 마지막 col 1쪽 시프트 (별개 본질) - Issue #709: 부수 시각 결함 4건 (PUA 글자 / 탭 leader / 바탕쪽 자동번호 / 우측 정렬) 작업지시자 결정: 잔존 결함 분리 정합 → 시각 판정 면제 머지. Closes #702 Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 tasks
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
- mydocs/pr/archives/pr_711_review.md (검토 문서, 시각 판정 결과 반영)
- mydocs/pr/archives/pr_711_report.md (처리 보고서, 가드 갱신 명시)
- mydocs/plans/archives/task_m100_705{,_impl}.md
- mydocs/orders/20260509.md: PR #711 행 + 본 사이클 패턴 라인 추가
처리 결과:
- 옵션 A — 7 commits cherry-pick + 메인테이너 가드 갱신 + no-ff merge (2bc982c)
- 작업지시자 시각 판정 ★ 통과 — 한컴 정답지 정합 확정
- test_634_gukrip_page3 가드 갱신 (count=3 → 0, 메인테이너 commit 3253f7d)
- PR #638/#640/#641 close → PR #711 본질 정정 supersede
- Issue #705 close 자동 정합
부수 사실:
- PR #706 form-002 패턴 정합 영역 의 두 번째 사례
- `feedback_visual_judgment_authority` + `feedback_visual_regression_grows` 권위 사례 강화
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7 tasks
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
본질: HwpUnit=u32 영역의 signed 캐스트 누락 결함.
`vertical_offset` 음수 (예: -1796 HU) 의 unsigned 비트표현 = 0xFFFFF8FC =
4294965500u32. `> 0` 게이트가 unsigned 양수로 통과 → 후속 `as i32` 캐스트
에서 음수 적용 → 표가 위로 점프, 직전 인라인 표 영역 침범.
비-Partial 경로 (table_layout.rs:1069+) 에는 `raw_y.max(y_start)` 클램프
영역으로 음수 무력화. Partial 경로 (table_partial.rs:59-78) 에는 클램프
부재 영역 → 결함 노출.
영향 샘플: samples/2022년 국립국어원 업무계획.hwp 영역의 12x5 일정 표 영역
(작업지시자 안내 영역의 페이지 31, 본 환경 영역 35 페이지 영역의 동적 페이지
탐색):
- pi=585: 1x3 인라인 TAC 제목 표 ("붙임 / / 과제별 추진일정")
- pi=586: 12x5 일정 표 (vert=문단 -1796 HU 음수)
- 결함: pi=586 외곽 상단이 pi=585 안쪽으로 ~15.94 px 침범
- 정정 후: 침범 0 px (PDF 권위 정합)
정정 (signed 비교 14 라인):
- src/renderer/layout/table_partial.rs:59-78 (Partial 경로, 본질):
let vert_off_signed = table.common.vertical_offset as i32;
&& vert_off_signed > 0
- src/renderer/layout.rs:2687+ (비-Partial 경로 게이트 동기):
&& (t.common.vertical_offset as i32) > 0
영향 좁힘 (feedback_hancom_compat_specific_over_general):
- is_continuation=true 분할 표 연결 페이지 영역 무영향
- vertical_offset >= 0 영역 (signed 양수/0) 무영향
- 비-TopAndBottom wrap / TAC 표 영역 무관
회귀 가드 (tests/issue_712.rs +88 LOC, 신규):
- 동적 페이지 탐색 영역 — 페이지네이션 변동 영역 견고 (PR #644 / PR #711
머지 영역 자동 적응)
- pi=586 외곽 상단 ≥ pi=585 외곽 하단 (0.5 px 허용 오차)
검증:
- cargo test --release: lib 1173 + 통합 ALL GREEN, failed 0
- cargo test --release --test issue_712: 1 PASS (회귀 가드)
- cargo test --release --test svg_snapshot: 8/8 (form-002 PR #706 영역 보존)
- cargo test --release test_705: 6/6 (PR #711 영역 보존)
- cargo test --release test_634: 8/8 (가드 갱신 후 보존)
- cargo clippy --release: 신규 경고 0
- 광범위 sweep 7 fixture / 170 페이지 / 회귀 0
Closes #712
Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
본질: samples/2022년 국립국어원 업무계획.hwp 12x5 일정 표 (pi=586,
RowBreak) row 8 영역 의 17.6 px 인트라-로우 분할 결함. 한컴은 페이지 끝
영역 의 작은 sliver 영역 부재 영역 의 행 단위 push 가 한컴 권위.
본 환경 직접 재현:
- BEFORE: page_index=30 rows=0..9 split_end=17.6 px (orphan sliver)
- AFTER: page_index=30 rows=0..8 (cont=false) → page_index=31 rows=8..12
(row 8 전체 다음 페이지 push)
정정 (src/renderer/typeset.rs:1931+, 5 LOC + 주석):
const MIN_TOP_KEEP_PX: f64 = 25.0;
&& avail_content_for_r >= MIN_TOP_KEEP_PX // [Task #713] orphan 가드
임계값 25 px 결정 근거:
- 본 결함 (row 8 sliver): 17.6 px → < 25 차단 ✓
- synam-001 p23 정합: 27.3 px → ≥ 25 변경 없음 ✓
- 기타 정합 분할: 93/437/510 px → ≥ 25 변경 없음 ✓
영향 좁힘 (feedback_hancom_compat_specific_over_general):
- avail_content_for_r >= 25 px 영역 의 분할 영역 무영향
- 비-RowBreak 표 / 비-Partial 분할 영역 무관
- 활성 경로 (typeset.rs) 만 정정 — fallback 경로 (pagination/engine.rs)
영역 무영향 (RHWP_USE_PAGINATOR=1 미설정 영역 의 fallback 영역)
회귀 가드 (tests/issue_713.rs +108 LOC, 신규):
- 동적 페이지 sweep 영역 — 모든 페이지 영역 의 row 8 셀 영역 수집
- RowBreak 모드 영역 의 단일 페이지 영역 위치 검증
- clip=false 검증
검증:
- cargo test --release: lib 1173 + 통합 ALL GREEN, failed 0
- cargo test --release --test issue_713: 1 PASS (회귀 가드)
- cargo test --release --test issue_712: PASS (PR #714 영역 보존)
- cargo test --release --test svg_snapshot: 8/8 (form-002 PR #706 영역 보존)
- cargo clippy --release: 신규 경고 0
- 광범위 sweep 7 fixture / 170 페이지 / 회귀 0
Closes #713
Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 9, 2026
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
…YOUT_OVERFLOW_DRAW) 본질: Task #9 의 fix_overlay_active push 영역 의 빈 paragraph (text_len=0) 영역 push 로 의미 없는 drift 만 +20 px (pi=1 +8 + pi=3 +12) 누적 → page 1 마지막 줄 (pi=15 line=2) 이 컬럼 하단 +20.15 px 초과 시각 cropping. 본 환경 직접 재현: LAYOUT_OVERFLOW_DRAW: section=0 pi=15 line=2 y=1048.2 col_bottom=1028.0 overflow=20.1px LAYOUT_OVERFLOW: page=0, col=0, para=15, type=PartialParagraph, y=1059.4, bottom=1028.0, overflow=31.3px → 정정 후: LAYOUT_OVERFLOW_DRAW 부재 / LAYOUT_OVERFLOW 11.3 px (잔존, trailing ls 영역 별도). Root cause 분석 흐름: - 수행계획서 정적 분석 가설 ("음수 line_spacing 미반영") → Stage 2 instrument 실측 결과 line advance 자체는 ls 가산 정확함 확인 - drift 진원지 = Task #9 fix_overlay_active 의 빈 paragraph push (pi=1 empty +8 px / pi=3 empty +12 px = +20.00 px ≈ overflow 20.15 px 99.3% 일치) 정정 (src/renderer/layout.rs:1562-1582, +13 LOC): - is_empty_para 가드 추가 — text.is_empty() || control/FFFC 만 - !is_fixed && !is_empty_para 조건 영역 push 적용 - Task #9 의 텍스트 paragraph push 의도 (TAC 표 위 침범 차단) 그대로 유지 - fix_overlay_active 유지 (후속 비-empty paragraph push 가능) 영향 좁힘 (feedback_hancom_compat_specific_over_general): - 텍스트 paragraph 영역 무영향 (Task #9 의도 유지) - Fixed line spacing 영역 무영향 (is_fixed 가드) - 비-fix_overlay_active 경로 무영향 - 빈 paragraph (text 부재 또는 control/FFFC 만) 영역만 차단 회귀 가드 (tests/issue_716.rs +91 LOC, 신규): - page 0 body bbox 수집 + 모든 TextLine bbox 수집 (Header/Footer 제외) - max_bottom <= body_bottom + 0.5 검증 (sub-pixel rounding 허용) 검증: - cargo test --release: lib 1173 + 통합 ALL GREEN, failed 0 - cargo test --release --test issue_716: 1 PASS (회귀 가드) - cargo test --release --test svg_snapshot: 8/8 (form-002 PR #706 영역 보존) - cargo test --release --test issue_712/713: PASS (PR #714/#715 영역 보존) - cargo clippy --release: 신규 경고 0 - 광범위 sweep 7 fixture / 170 페이지 / 회귀 0 - 본 환경 직접 측정: LAYOUT_OVERFLOW_DRAW 부재 ★ PR 본문 광범위 sweep (169 샘플): - LAYOUT_OVERFLOW_DRAW 187 → 185 (−2 정정: hongbo + hongbo-no) - LAYOUT_OVERFLOW 279 → 277 (−2 부수 개선: table-vpos-01 hwp/hwpx) - 페이지 수 변동 0 샘플 - panic 0 Closes #716 Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
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 #700
요약
compute_cell_line_ranges의 cum 을 paragraph 진입 시 LINE_SEG.vpos 절대값으로 동기화하여 한컴 vpos 단위 abs_limit 와의 mismatch 정합화.결함
samples/inner-table-01.hwpcell[11] (사업개요, 26 paras) 의 cell-internal split 시:- 전사 데이터 수집/유통체계 구축(p[17]) 누락 → rhwp 가p[18]부터 표시변경
src/renderer/layout/table_layout.rs::compute_cell_line_ranges:가드:
cell_first_vpos == 0— 한컴 정상 인코딩 케이스만target_cum > cum— cum 만 전진 (감소 금지)시각 정합 ✓
p[19]끝p[16]끝 ✓p[18]p[17](- 전사 데이터 수집/유통체계 구축) ✓회귀 검증
cargo test --release전체 (21 그룹)tests/svg_snapshot.rs(form-002 포함)samples/hwpx/form-002.hwpxp1 (cell[73] paras=29)samples/k-water-rfp.hwp(18p)samples/issue_265.hwp/samples/hwp3-sample.hwp→ 회귀 없음.
관련
stream/devel이라 큰 셀 cross-page split 결함 — inner-table-01.hwp 셀 내부 vpos 리셋 인코딩 미반영 (한글 2022 PDF mismatch) #697 의 vpos 리셋 검출도 함께 포함산출물
mydocs/plans/task_m100_700.md— 수행 계획서mydocs/plans/task_m100_700_impl.md— 구현 계획서 (옵션 C)mydocs/working/task_m100_700_stage1.md— 정밀 진단mydocs/working/task_m100_700_stage3_1.md— 구현 결과mydocs/report/task_m100_700_report.md— 최종 보고서