증상
samples/exam_science.hwp 본문에서 인라인 표(treat_as_char=true) + 인라인 수식이 함께 있는 단락의 첫 줄이 단락 left margin 기준이 아닌 column 우측으로 약 175 px(≈ 21.5 mm) 편위되어 출력됨.
해당 단락:
- p2 우단 12번 (pi=61) — 분수 "1g 의 X 에 들어 있는 중성자수"
- p3 13번 "(다)에서 반응한 X 의 양"
- p3 15번 "제 N 이온화 에너지"
- p3 16번 "ㄴ. ㄷ."
- p4 19번 "제 N 이온화 에너지"
정밀 검증 (pi=61, page 2)
```
--- 문단 0.61 --- cc=137, text_len=56, controls=10
텍스트: " 는? (단, 는 임의의 원소 기호이고, ...)"
[PS] ps_id=102 align=Justify margins: left=2260 right=0 indent=0
ls[0]: vpos=74118, lh=2864, sw=18939 ← 분수 단독 라인
ls[1]: ts=13, lh=1150, sw=18939
ls[2]: ts=60, lh=1150, sw=30562
[0] 표 2×1 treat_as_char=true, 14745×2864 HU (≈196.6×38.2px) — 분수
[1..9] 수식 (tac=true)
```
SVG 실측 (`output/svg/exam_science_dbg/exam_science_002.svg`):
- 우단 column 좌측 `x=549.87`, 폭 407.5 px
- pi=61 인라인 2×1 표 `x=739.87` (debug-overlay) — +175 px 편위
- 첫 글리프 `translate(747.25, 1140.44)`
기대 좌표: `549.87 + 단락 indent` ≈ `x≈580`.
본질 추정
Task #565 Stage 3 fix(`a35bdbe`): "인라인 표 + 인라인 수식" 단락을 `layout_inline_table_paragraph` → 일반 `layout_paragraph`로 우회. 9개 수식 좌표 stack 해결.
그러나 일반 경로의 `run_tacs` / inline-table 배치 로직이 인라인 표의 시작 x 좌표를 단락 left margin이 아닌 다른 기준점(line 끝 또는 잘못된 char-offset)으로 계산하는 잠재 결함이 표면화. 동일 경로를 통과하는 12/15/18/19번 본문 모두 같은 우측 편위 재현.
회귀 위험
본질 정정 회귀 위험 메모리 (`feedback_essential_fix_regression_risk.md`)와 부합. Task #565 fix를 가린 별도 결함이며, 정정 시 다음 검증 필수:
- 광범위 sample sweep (15+ fixture, 280+ 페이지)
- 한컴 2010/2020 정답지 비교
- svg_snapshot 6/6, cargo test --lib 1125+ 통과
우선순위
본문 가독성 직접 영향, 5개 단락 동일 패턴 → 선결 항목.
참고
증상
samples/exam_science.hwp본문에서 인라인 표(treat_as_char=true) + 인라인 수식이 함께 있는 단락의 첫 줄이 단락 left margin 기준이 아닌 column 우측으로 약 175 px(≈ 21.5 mm) 편위되어 출력됨.해당 단락:
정밀 검증 (pi=61, page 2)
```
--- 문단 0.61 --- cc=137, text_len=56, controls=10
텍스트: " 는? (단, 는 임의의 원소 기호이고, ...)"
[PS] ps_id=102 align=Justify margins: left=2260 right=0 indent=0
ls[0]: vpos=74118, lh=2864, sw=18939 ← 분수 단독 라인
ls[1]: ts=13, lh=1150, sw=18939
ls[2]: ts=60, lh=1150, sw=30562
[0] 표 2×1 treat_as_char=true, 14745×2864 HU (≈196.6×38.2px) — 분수
[1..9] 수식 (tac=true)
```
SVG 실측 (`output/svg/exam_science_dbg/exam_science_002.svg`):
기대 좌표: `549.87 + 단락 indent` ≈ `x≈580`.
본질 추정
Task #565 Stage 3 fix(`a35bdbe`): "인라인 표 + 인라인 수식" 단락을 `layout_inline_table_paragraph` → 일반 `layout_paragraph`로 우회. 9개 수식 좌표 stack 해결.
그러나 일반 경로의 `run_tacs` / inline-table 배치 로직이 인라인 표의 시작 x 좌표를 단락 left margin이 아닌 다른 기준점(line 끝 또는 잘못된 char-offset)으로 계산하는 잠재 결함이 표면화. 동일 경로를 통과하는 12/15/18/19번 본문 모두 같은 우측 편위 재현.
회귀 위험
본질 정정 회귀 위험 메모리 (`feedback_essential_fix_regression_risk.md`)와 부합. Task #565 fix를 가린 별도 결함이며, 정정 시 다음 검증 필수:
우선순위
본문 가독성 직접 영향, 5개 단락 동일 패턴 → 선결 항목.
참고