현상
rhwp-studio (WASM Canvas 경로) 에서 samples/exam_math.hwp 수식 들여쓰기·정렬이 한컴 2022 PDF (samples/exam_math.pdf) 와 불일치. CLI export-svg 는 정상.
원인
SVG 경로 (src/renderer/equation/svg_render.rs) 정정 PR 2건이 Canvas 경로 (src/renderer/equation/canvas_render.rs) 에 미반영. 동일 LayoutBox 트리를 소비하지만 렌더 함수 분기 단계에서 누락된 정정.
누락 1 — font_size_from_box 제거 (commit 5a6f9a8, Task #142, 2026-04-14)
font_size_from_box(lb, fs) 는 lb.height 반환. 복합 요소(자식 포함 박스)의 height 를 font-size 로 오용해 글리프가 의도보다 크게 그려짐. SVG 는 부모 전달 fs 사용으로 정정. Canvas 미정정 arm:
src/renderer/equation/canvas_render.rs:45 — LayoutKind::Text
- 같은 파일 line 56 —
LayoutKind::Number
- 같은 파일 line 62 —
LayoutKind::Symbol
- 같은 파일 line 70 —
LayoutKind::MathSymbol (적분 특례 포함)
- 같은 파일 line 76 —
LayoutKind::Function
(Limit arm 는 d47b7c7, Fraction 분수선은 7048d3e 로 별도 정정 완료)
누락 2 — 적분 nolimits 배치 (commit 292dbbe, Task #142, 2026-04-16)
SVG 는 BigOp 에서 적분 기호 검출 시 좌측·작은 첨자 우상단·우하단 배치 (nolimits). Canvas 는 모든 BigOp 를 중앙·sup 위쪽 (limits) 으로 처리.
src/renderer/equation/canvas_render.rs:138 — LayoutKind::BigOp 적분 분기 추가 필요
src/renderer/equation/canvas_render.rs:70 — LayoutKind::MathSymbol 적분 시 lb.height 사용 (BIG_OP_SCALE 적용 높이)
정정 범위 (canvas_render.rs 단일 파일)
SVG 경로와 1:1 동기화. 5개 arm 의 fi 산출 룰을 SVG 와 일치, BigOp 에 is_integral_symbol 분기 추가.
권위 자료
samples/exam_math.pdf (한컴 2022 PDF)
- SVG 경로
output/svg/exam_math/exam_math_001.svg (정합 기준)
회귀 가드
cargo test --lib 수식 테스트군 GREEN 유지
rhwp-studio 에서 samples/exam_math.hwp 시각 비교 — PDF 정합
현상
rhwp-studio(WASM Canvas 경로) 에서samples/exam_math.hwp수식 들여쓰기·정렬이 한컴 2022 PDF (samples/exam_math.pdf) 와 불일치. CLIexport-svg는 정상.원인
SVG 경로 (
src/renderer/equation/svg_render.rs) 정정 PR 2건이 Canvas 경로 (src/renderer/equation/canvas_render.rs) 에 미반영. 동일 LayoutBox 트리를 소비하지만 렌더 함수 분기 단계에서 누락된 정정.누락 1 —
font_size_from_box제거 (commit 5a6f9a8, Task #142, 2026-04-14)font_size_from_box(lb, fs)는lb.height반환. 복합 요소(자식 포함 박스)의 height 를 font-size 로 오용해 글리프가 의도보다 크게 그려짐. SVG 는 부모 전달fs사용으로 정정. Canvas 미정정 arm:src/renderer/equation/canvas_render.rs:45—LayoutKind::TextLayoutKind::NumberLayoutKind::SymbolLayoutKind::MathSymbol(적분 특례 포함)LayoutKind::Function(Limit arm 는 d47b7c7, Fraction 분수선은 7048d3e 로 별도 정정 완료)
누락 2 — 적분 nolimits 배치 (commit 292dbbe, Task #142, 2026-04-16)
SVG 는 BigOp 에서 적분 기호 검출 시 좌측·작은 첨자 우상단·우하단 배치 (nolimits). Canvas 는 모든 BigOp 를 중앙·sup 위쪽 (limits) 으로 처리.
src/renderer/equation/canvas_render.rs:138—LayoutKind::BigOp적분 분기 추가 필요src/renderer/equation/canvas_render.rs:70—LayoutKind::MathSymbol적분 시lb.height사용 (BIG_OP_SCALE 적용 높이)정정 범위 (canvas_render.rs 단일 파일)
SVG 경로와 1:1 동기화. 5개 arm 의
fi산출 룰을 SVG 와 일치, BigOp 에is_integral_symbol분기 추가.권위 자료
samples/exam_math.pdf(한컴 2022 PDF)output/svg/exam_math/exam_math_001.svg(정합 기준)회귀 가드
cargo test --lib수식 테스트군 GREEN 유지rhwp-studio에서samples/exam_math.hwp시각 비교 — PDF 정합