Skip to content

21_언어_기출.hwp TAC 표 직후 첫 문단의 trailing line_spacing 누락으로 줄간격 좁아짐 #537

@planet6897

Description

@planet6897

현상

samples/21_언어_기출_편집가능본.hwp 의 다수 위치에서 줄/문단 간격이 좁게 렌더링됨.

작업지시자가 명시한 위치:

  • 2p 3번 답 ①과 ② 사이
  • 3p 6번 답 ①과 ② 사이
  • 5p 9번 답 ①과 ② 사이
  • 6p 12번 답 ①과 ② 사이
  • 7p 13~15 박스 "르포르는 1789..." 앞 문장 사이, "르포르는 권리와 권력..." 앞 문장 사이
  • 8p 15번 답 ①과 ② 사이
  • 9p 왼쪽 첫 박스 "더불어 수피즘..." 앞 문장 사이, 17번/18번 답 ①과 ② 사이
  • 23/24/27/29번 답 ①과 ② 사이

정량 측정 (페이지 2, 3번 답 ①~⑤)

SVG y(baseline) 대비 IR LINE_SEG.vpos:

gap 측정 (px) IR (HU) 차이
①→② 63.09 5448 −716 HU (−9.55 px)
②→③ 72.64 5448 0
③→④ 48.43 3632 0
④→⑤ 48.43 3632 0

ParaShape ps_id=9, lh=1100, ls=716 (모든 답 동일).

근본 원인

표(pi=37, TAC + wrap=TopAndBottom) 직후 첫 답 문단(pi=38)이 다음 메커니즘과 충돌:

  1. `prev_tac_seg_applied` 가드 (`src/renderer/layout.rs:1434`): TAC 표 직후 paragraph 의 vpos 보정을 건너뜀.
  2. trailing line_spacing 제외 (`src/renderer/layout/paragraph_layout.rs:2645-2654`, Task 페이지 12 layout drift — 누적 trailing line_spacing으로 23번 paragraph가 한컴 PDF 대비 ~200px 하향 #479): 마지막 줄에서 ls 가산 안 함. pi=38 advance = 3*lh + 2*ls = 4732 HU (IR delta 5448 보다 716 부족).
  3. lazy_base drift 동결 (`layout.rs:1497-1507`): pi=39 부터 vpos 보정 재개되지만 lazy_base 가 sequential drift 716 HU 를 그대로 base=716 으로 박아 ②~⑤ 모두 IR_vpos − 716 위치 고정.

결과: ① 만 IR vpos 그대로, ②~⑤ 는 716 HU 위로 → ①→② gap 만 좁아 보임.

검증

```bash
RHWP_VPOS_DEBUG=1 ./target/release/rhwp export-svg \
samples/21_언어_기출_편집가능본.hwp -o /tmp/diag -p 1 2>&1 | grep VPOS_CORR

→ base=716 출력이 drift 신호

```

영향 범위

TAC `<보기>` 표 직후 첫 답 문단이 등장하는 모든 객관식 문제. 셀 내부 다단락 박스도 동일 메커니즘 가능성.

메모리 룰 적용

  • "본질 정정 회귀 위험": layout/lazy_base/trailing_ls 는 다단·표분할·셀 paragraph 와 상호작용. 광범위 샘플 + 한컴 2010/2020 정답지 검증 필요.
  • "PDF 비교 결과는 절대 기준이 아님": 한컴독스 PDF 200dpi 보조 ref + 한컴 2010/2020 환경 함께 점검.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions