증상
samples/exam_science.hwp 2페이지 좌측 단의 7번 문제 박스(1×1 표) 내부 두 번째 줄 "◦ 분자당 구성 원자 수가 인 분자의 분자 모양은 모두" 가 동일한 글자로 두 번, 다른 글자 간격으로 SVG에 렌더링되어 시각적으로 겹쳐 보임.
PDF: samples/pdf/hwp2022/exam_science.pdf 페이지 2 참조.
재현
cargo build --release
./target/release/rhwp export-svg samples/exam_science.hwp -p 1 -o output/svg/exam_science_p1/
output/svg/exam_science_p1/exam_science_002.svg 에서 cell-clip-21 (y=173.95~443.31) 내부 텍스트 baseline:
| y |
내용 |
글자 간격 |
| 197.55 |
[가설] |
정상 |
| 219.01 |
◦분자당구성원자수가인분자의분자모양은모두 |
~17px |
| 224.26 |
◦분자당구성원자수가인분자의분자모양은모두 (중복) |
~20px |
| 240.48 |
이다. |
정상 |
| 261.95~ |
이후 정상 |
|
분석
rhwp dump -s 0 -p 33 결과 박스 셀 p[1]:
cc=2 ctrls=2 text_len=84
ls[0] vpos=1610 lh=1150
ls[1] vpos=3220 lh=1716
ctrl[1] 사각형: tac=true, wrap=TopAndBottom
- p[1]에
tac=true(글자 취급)이면서 wrap=TopAndBottom(블록 취급)인 모순된 사각형 컨트롤이 포함됨.
- composer가 두 모드 모두 처리하여 동일 텍스트를 두 번 발행하는 것으로 추정.
의심 위치
src/renderer/composer.rs line_segs 순회 (286 부근)
- 박스 위치/크기, 박스 외부 본문(pi=34, 표 pi=35, 8번 pi=37) 좌표는 dump-pages 기준 정상 — 박스 내부 라인 발행 경로만 이상.
분리된 이슈
같은 페이지 12번(pi=60/61) 줄간격 압축은 별도 이슈로 등록.
증상
samples/exam_science.hwp2페이지 좌측 단의 7번 문제 박스(1×1 표) 내부 두 번째 줄 "◦ 분자당 구성 원자 수가 인 분자의 분자 모양은 모두" 가 동일한 글자로 두 번, 다른 글자 간격으로 SVG에 렌더링되어 시각적으로 겹쳐 보임.PDF:
samples/pdf/hwp2022/exam_science.pdf페이지 2 참조.재현
output/svg/exam_science_p1/exam_science_002.svg에서cell-clip-21(y=173.95~443.31) 내부 텍스트 baseline:[가설]◦분자당구성원자수가인분자의분자모양은모두◦분자당구성원자수가인분자의분자모양은모두(중복)이다.분석
rhwp dump -s 0 -p 33결과 박스 셀 p[1]:tac=true(글자 취급)이면서wrap=TopAndBottom(블록 취급)인 모순된 사각형 컨트롤이 포함됨.의심 위치
src/renderer/composer.rsline_segs 순회 (286 부근)분리된 이슈
같은 페이지 12번(pi=60/61) 줄간격 압축은 별도 이슈로 등록.