증상
`samples/21_언어_기출_편집가능본.hwp` 페이지 2 우측 단 [46] passage 박스 top 이 [46] header 텍스트 ("[4~6] 다음 글을 읽고 물음에 답하시오.") 바로 아래에 붙어 있음 (gap=0). PDF 한컴 2010 은 8.73 px gap 보장.
측정값
| 위치 |
pre-#479 |
post-#479 (current) |
PDF 한컴 2010 |
| [4~6] 박스 top y |
233.97 px |
224.43 px |
175.36 pt |
| header bottom |
224.43 |
224.43 |
168.81 pt |
| gap (header → box top) |
9.54 px |
0.0 px (regression) |
8.73 px |
→ pre-#479 가 PDF 정합. Task #479 가 0 으로 만들어 visible 회귀.
원인 (bisect 확정)
커밋 `fa737850` Task #479 ("paragraph 누적에서 trailing line_spacing 제외"):
`paragraph_layout.rs:2545+` 가 본문 paragraph 의 마지막 줄에서 trailing line_spacing 제외:
```rust
} else if is_full_paragraph_end && cell_ctx.is_none() {
// 셀 외부 paragraph 의 마지막 줄 (#479)
y += line_height; // trailing ls 제외
}
```
pi=44 ([4~6] header, 본문 paragraph) 의 마지막 줄에서 trailing ls 9.54 px 제거 → 다음 paragraph (border-start: pi=45 빈 + pi=46 본문 + border_fill_id) 가 9.54 px 위로 이동 → 박스 top 이 header 텍스트 바로 아래.
정합 기준
fix 후보
Task #479 의 "본문 paragraph trailing ls 제외" 가 paragraph border 전환 직전 paragraph 에는 적용 안 되어야 함.
조건 보강:
```rust
} else if is_full_paragraph_end && cell_ctx.is_none()
&& !next_paragraph_starts_border() {
y += line_height;
}
```
또는 다른 형태의 선택적 적용. 광범위 사전 평가 필요.
무회귀 검증 기준
별도 사항 (회귀 아님)
"글상자가 우측으로 밀려있음" — pre-#479 에도 box_left=591.49 (col_left+11.33 px). PDF 기대 box_left=580 (col_left). 850 HU shift 는 pre-existing 결함. 본 issue 와 별도.
증상
`samples/21_언어_기출_편집가능본.hwp` 페이지 2 우측 단 [4
6] passage 박스 top 이 [46] header 텍스트 ("[4~6] 다음 글을 읽고 물음에 답하시오.") 바로 아래에 붙어 있음 (gap=0). PDF 한컴 2010 은 8.73 px gap 보장.측정값
→ pre-#479 가 PDF 정합. Task #479 가 0 으로 만들어 visible 회귀.
원인 (bisect 확정)
커밋 `fa737850` Task #479 ("paragraph 누적에서 trailing line_spacing 제외"):
`paragraph_layout.rs:2545+` 가 본문 paragraph 의 마지막 줄에서 trailing line_spacing 제외:
```rust
} else if is_full_paragraph_end && cell_ctx.is_none() {
// 셀 외부 paragraph 의 마지막 줄 (#479)
y += line_height; // trailing ls 제외
}
```
pi=44 ([4~6] header, 본문 paragraph) 의 마지막 줄에서 trailing ls 9.54 px 제거 → 다음 paragraph (border-start: pi=45 빈 + pi=46 본문 + border_fill_id) 가 9.54 px 위로 이동 → 박스 top 이 header 텍스트 바로 아래.
정합 기준
fix 후보
Task #479 의 "본문 paragraph trailing ls 제외" 가 paragraph border 전환 직전 paragraph 에는 적용 안 되어야 함.
조건 보강:
```rust
} else if is_full_paragraph_end && cell_ctx.is_none()
&& !next_paragraph_starts_border() {
y += line_height;
}
```
또는 다른 형태의 선택적 적용. 광범위 사전 평가 필요.
무회귀 검증 기준
별도 사항 (회귀 아님)
"글상자가 우측으로 밀려있음" — pre-#479 에도 box_left=591.49 (col_left+11.33 px). PDF 기대 box_left=580 (col_left). 850 HU shift 는 pre-existing 결함. 본 issue 와 별도.