증상
`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 임계값 미충족.
본질 추정 (가설)
세 갈래 가능성:
-
Last line + Justify: 보기 셀 분수 단락이 단일 라인 ("ㄴ. [분수] 이다." 짧음). `is_last_line_of_para = true` → `needs_justify = false` → slack 분배 없음. 하지만 `x_start` 계산 자체가 잘못됐을 수 있음.
-
Cell halign / paragraph alignment: 보기 셀의 paragraph alignment 가 Justify 가 아닌 Left/Center 일 때, 인라인 표 배치가 alignment 와 어긋남.
-
인라인 표 char_offset 계산: `run_tacs` 가 인라인 표를 줄의 잘못된 char-offset 으로 잡아 우측 편위.
Stage 1 진단 필요 (코드 무수정으로 SVG 좌표 + dump IR 비교).
우선순위
수능 시험지 보기 단락의 시각 정렬 — 4 단락. M100 milestone.
참고
증상
`samples/exam_science.hwp` 의 다음 보기 셀 내부 분수 단락에서 인라인 2×1 표(분수)가 셀 paragraph 안에서 우측 편위:
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 임계값 미충족.
본질 추정 (가설)
세 갈래 가능성:
Last line + Justify: 보기 셀 분수 단락이 단일 라인 ("ㄴ. [분수] 이다." 짧음). `is_last_line_of_para = true` → `needs_justify = false` → slack 분배 없음. 하지만 `x_start` 계산 자체가 잘못됐을 수 있음.
Cell halign / paragraph alignment: 보기 셀의 paragraph alignment 가 Justify 가 아닌 Left/Center 일 때, 인라인 표 배치가 alignment 와 어긋남.
인라인 표 char_offset 계산: `run_tacs` 가 인라인 표를 줄의 잘못된 char-offset 으로 잡아 우측 편위.
Stage 1 진단 필요 (코드 무수정으로 SVG 좌표 + dump IR 비교).
우선순위
수능 시험지 보기 단락의 시각 정렬 — 4 단락. M100 milestone.
참고