Skip to content

HWPX 저장 시 Ruby 컨트롤 드롭 (render_control_slot arm 부재) #1587

Description

@planet6897

요약

HWPX 저장 시 본문/표셀 문단의 Ruby 컨트롤(루비, 한자 독음·위첨자 등)이 드롭된다.
ColumnDef(#1584)와 동일 메커니즘is_hwpx_inline_slot 에는 등록돼 슬롯으로 인식되나,
render_control_slot 의 방출 dispatch 에 Control::Ruby arm 이 없어 _ => {} 로 빠져
XML 미방출 → 드롭. 컨트롤 드롭으로 후속 char_shape 가 −8 변위하는 하위 증상도 동반.

fidelity10(hwpdocs 9660) 잔여 IR_DIFF 중 3건.

증거

36384160 sec2: paragraph[88]/cell·[118]·[179](ruby×2)·[181]   controls expected=[ruby] actual=[]
36399208 sec2: paragraph[72]                                   controls expected=[ruby] actual=[]
36389301 sec0: paragraph[6]                                    controls expected=[ruby] actual=[]
         └ char_shapes (...,(51,8)) → (...,(43,8))  −8 시프트 = ruby 8유닛 슬롯 소실 하위 증상

근본원인 (src/serializer/hwpx/section.rs)

  • is_hwpx_inline_slot()Control::Ruby(_) 포함(인식 O).
  • render_control_slot()Control::Ruby arm 부재 → 미방출(드롭).

수정 방향

  • write_ruby 직렬화기 추가(파서 parse_hwpx 의 ruby 역매핑 기준).
  • render_control_slotControl::Ruby(r) => write_ruby(...) arm 추가.
  • 회귀 가드: 대표 실문서(36389301 등)를 opengov 고정 말뭉치 편입, 통제 비교(개선−회귀>0).

영향

루비 주음 텍스트가 시각적으로 소실 — 잔여 10건 중 유일하게 시각 영향 있는 실버그.

근거: mydocs/tech/hwpx_residual_ir_diff_10.md (Class A)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions