Skip to content

Layout 리팩터링 Phase 0~2 + 옛한글 PUA (#528) + Square wrap fixes (#533/#534) + planet6897 6건#527

Closed
planet6897 wants to merge 0 commit into
edwardkim:develfrom
planet6897:devel
Closed

Layout 리팩터링 Phase 0~2 + 옛한글 PUA (#528) + Square wrap fixes (#533/#534) + planet6897 6건#527
planet6897 wants to merge 0 commit into
edwardkim:develfrom
planet6897:devel

Conversation

@planet6897

@planet6897 planet6897 commented May 2, 2026

Copy link
Copy Markdown
Contributor

Summary

planet6897 사이클 누적 PR. 최근 작업 영역:

exam_kor 18p Square wrap 표 + TAC 그림 위치 결함 (#534) — 신규 추가

samples/exam_kor.hwp 18 페이지 우측 단 [A]/[B] 표시기 옆 인라인 그림이 단 영역을 30-70% 침범하는 결함 정정.

  • 본질: layout_shape_item 의 TAC Picture x 계산이 paragraph_layout 의 inner_pad 로직 (visible stroke + border_spacing[0,1]=0 케이스) 과 비정합. wrap_host paragraph (Square wrap 표 보유) 는 paragraph_layout 미호출되어 layout_shape_item 만 emit → inner_pad (= box_margin_left) 누락된 위치 (~11.33 px 좌측 시프트)
  • 정정: src/renderer/layout.rs::layout_shape_item TAC Picture 분기에 has_visible_stroke + border_spacing 검사 + inner_pad_left 가산 (+19 라인)
  • Stage 1 추가 조사 (eprintln 임시 로깅) 으로 emit code path 식별 후 본질 확정 — 단일 root cause 정합 fix

검증: exam_kor p18 pi=50/56 image x: 593.39 → 604.72 (+11.33 px), p19 pi=60: 128.51 → 139.84. 광범위 8 샘플 192 페이지 중 190 byte-identical, 변경 2 페이지 모두 동일 본질 의도된 정정.

exam_kor 14p Square wrap 표 직후 baseline 누락 (#533)

samples/exam_kor.hwp 14 페이지 우측 단 줄간격 일관성 결함 정정.

  • 본질: 비-TAC Square wrap 인라인 표 직후 y_offset 이 표 bottom 으로만 advance — 호스트 문단 텍스트가 표보다 길게 늘어진 케이스에서 다음 문단이 baseline (~13 px ≈ 978 HU) 만큼 위로 시프트
  • 정정: src/renderer/layout.rs::layout_table_item 의 비-TAC Square wrap 분기에 호스트 마지막 LINE_SEG 영역 max() 가산 (+18 라인). vpos 가 column 누적 좌표이므로 first.vertical_pos 차감 패턴 필수
  • 회귀 차단: !is_tac + wrap=Square + max() 3중 가드

검증: 광범위 8 샘플 192 페이지 중 190 byte-identical, 변경 2 페이지 (p14 + p17) 모두 동일 본질 의도된 정정.

옛한글 PUA → KS X 1026-1:2007 자모 변환 (#528, #512 흡수)

samples/exam_kor.hwp p17 의 중세국어 표기 미렌더 결함 해결.

  • 본질: HanCom Hanyang-PUA 인코딩 (BMP PUA U+E0BC-F8F7) — 한/글 2010 이전 옛한글
  • 자료원: KTUG HanyangPuaTableProject (Public Domain, 5,660 매핑, 함초롬바탕 정합)
  • 변환 적용: src/renderer/pua_oldhangul.rs (자동 생성) + Composer display_text 인프라 + svg/web_canvas draw_text 시점 변환 (Option A — 인덱싱 불변성 유지)
  • 폰트 fallback: Source Han Serif K Old Hangul subset (Adobe + Google, SIL OFL 1.1, 234 KB woff2, 357/368 cmap, ccmp/ljmo/vjmo/tjmo 4/4 보존)
  • CSS unicode-range 격리: 일반 한글 (U+AC00-D7AF) 미영향
  • 한컴 책괄호 + 예시 마커: U+F0854/F0855 → 《 》, U+F00DA → ▸ (잠정)
  • PUA 옛한글 영역 KS X 1026-1:2007 자모 변환 영역 (HncPUAConverter 정합) #512 흡수 완료

검증 (exam_kor p17): PUA 잔존 112 → 0 (100%), Hangul Jamo 0 → 102, 책괄호 0 → 66.

Layout 리팩터링 Phase 0~2

planet6897 작성 issue 6건 처리

회귀 정정 / 외부 PR 처리

변경 통계

주요 신규 영역:

Test plan

참고

닫히는 이슈

@planet6897 planet6897 changed the title Layout 리팩터링 Phase 0~2 + planet6897 6건 처리 (#517, #518, #500 외) Layout 리팩터링 Phase 0~2 + 옛한글 PUA 변환 (#528) + planet6897 6건 처리 May 2, 2026
@planet6897 planet6897 changed the title Layout 리팩터링 Phase 0~2 + 옛한글 PUA 변환 (#528) + planet6897 6건 처리 Layout 리팩터링 Phase 0~2 + 옛한글 PUA 변환 (#528) + Square wrap host baseline (#533) + planet6897 6건 처리 May 2, 2026
@planet6897 planet6897 changed the title Layout 리팩터링 Phase 0~2 + 옛한글 PUA 변환 (#528) + Square wrap host baseline (#533) + planet6897 6건 처리 Layout 리팩터링 Phase 0~2 + 옛한글 PUA (#528) + Square wrap fixes (#533/#534) + planet6897 6건 May 2, 2026
@planet6897 planet6897 closed this May 2, 2026
edwardkim added a commit that referenced this pull request May 6, 2026
- @planet6897 (Jaeook Ryu) Task #618 회귀 정정 PR 검토
- Task #519 fix (transform: extract_shape_transform) 의 devel 누락 정합 직접 검증
  - 본 환경 git merge-base --is-ancestor 7ead89d devel: 부재
  - 본 환경 git merge-base --is-ancestor a7e43f9 devel: 부재
  - 회귀 origin: PR #527 (CLOSED) 묶음 머지가 본 환경 devel 도달 못 함
- 본 환경 검증: cargo test 1140 passed / clippy 0 / svg_snapshot 6/6
- 정량 측정: BEFORE 0 → AFTER 1 transform 래퍼 (page 4 Q28 박스), PR 본문 명시 100% 일치
- 광범위 sweep: 167 fixture / 1,687 페이지 / 차이 0
- WASM: 4,590,537 bytes (PR #611 baseline +230)
- 회귀 방지 후속 영역: Task #517/#518/#523 누락 가능성 + Task #520 (PR #627 별도 영역)
- 옵션 A (cherry-pick) 권장 + 옵션 B (후속 task 권유) 결합

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant