Skip to content

[m100] exam_science.hwp 보기 셀 분수 단락(13/15/16/19번) 인라인 표 위치 편위 — 셀 paragraph 메커니즘 #573

@planet6897

Description

@planet6897

증상

`samples/exam_science.hwp` 의 다음 보기 셀 내부 분수 단락에서 인라인 2×1 표(분수)가 셀 paragraph 안에서 우측 편위:

  • p3 13번: 보기 셀 "ㄴ. [분수] 이다." — 분수 "(다)에서 반응한 X 의 양 / (나)에서 생성된 X 의 양"
  • p3 15번: 보기 셀 "제 N 이온화 에너지"
  • p3 16번: 보기 셀 "ㄴ. [수식] / ㄷ. [수식]"
  • p4 19번: 보기 셀 "제 N 이온화 에너지"

Task #568 fix 와의 관계

Task #568 fix (PR #570) 는 인라인 표 + 수식 + narrow segment_width 조합만 정정 (`sw + cs < col_w_hu - 200`). 셀 paragraph 의 인라인 표 보유 줄은 `segment_width = full cell width` 이므로 임계값 미충족 → 본 fix 미진입.

IR 데이터 (rhwp 임시 cell scan)

```
cell s0 pi=68>r2c0 cp[2] tac_tbl=true eq=true text="ㄷ. 이다."
ls[0] sw=28856 cs=0 avail=28856 (= cell inner width)
cell s0 pi=68>r2c0>r0c0 cp[0] text="(다)에서 반응한 의 양()"
ls[0] sw=15308 cs=0 avail=15308
```

셀 paragraph 의 ls[0].sw 가 셀 내부 폭 전체 (좁지 않음) → Task #568 임계값 미충족.

본질 추정 (가설)

세 갈래 가능성:

  1. Last line + Justify: 보기 셀 분수 단락이 단일 라인 ("ㄴ. [분수] 이다." 짧음). `is_last_line_of_para = true` → `needs_justify = false` → slack 분배 없음. 하지만 `x_start` 계산 자체가 잘못됐을 수 있음.

  2. Cell halign / paragraph alignment: 보기 셀의 paragraph alignment 가 Justify 가 아닌 Left/Center 일 때, 인라인 표 배치가 alignment 와 어긋남.

  3. 인라인 표 char_offset 계산: `run_tacs` 가 인라인 표를 줄의 잘못된 char-offset 으로 잡아 우측 편위.

Stage 1 진단 필요 (코드 무수정으로 SVG 좌표 + dump IR 비교).

우선순위

수능 시험지 보기 단락의 시각 정렬 — 4 단락. M100 milestone.

참고

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