-
-
Notifications
You must be signed in to change notification settings - Fork 740
머리말/꼬리말 페이지 레이아웃 계산 오류 수정 요청 드립니다! #7441
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't workinglayout문서 레이아웃/페이지네이션: 표·그림 배치, float/anchor, 줄·행 높이, 겹침·클리핑문서 레이아웃/페이지네이션: 표·그림 배치, float/anchor, 줄·행 높이, 겹침·클리핑renderingSVG/Canvas/PDF 등 렌더 출력과 시각 표시: 그리기, 표시 누락, bbox, paint 정합성SVG/Canvas/PDF 등 렌더 출력과 시각 표시: 그리기, 표시 누락, bbox, paint 정합성tabletable rendering and edittable rendering and edit
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinglayout문서 레이아웃/페이지네이션: 표·그림 배치, float/anchor, 줄·행 높이, 겹침·클리핑문서 레이아웃/페이지네이션: 표·그림 배치, float/anchor, 줄·행 높이, 겹침·클리핑renderingSVG/Canvas/PDF 등 렌더 출력과 시각 표시: 그리기, 표시 누락, bbox, paint 정합성SVG/Canvas/PDF 등 렌더 출력과 시각 표시: 그리기, 표시 누락, bbox, paint 정합성tabletable rendering and edittable rendering and edit
요약
글 뒤로(BehindText), 용지 기준(vertRelTo=Paper)인 표가 꼬리말 위에 전체가 들어가는데도 행 단위로 잘려 다음 페이지로 넘어갑니다.
재현
5행×2열 표. pageBreak=RowBreak(2), treatAsChar=false, textWrap=BehindText, vertRelTo=Paper, vertAlign=Top, restrictInPage=true.
용지 y≈728px, 표 높이≈262px, 끝≈990px. 같은 페이지 꼬리말 시작은 y≈1009px.
앞 3행(약 144px)만 앵커 페이지에 남고, 4–5행이 다음 페이지 상단으로 갑니다. 한컴에서는 다섯 행이 한 페이지에 있습니다.
원인
src/renderer/typeset.rs#4568오버레이 분할:anchor_y = current_height + vertical_offset
room = base_available_height() - anchor_y
vertical_offset은 용지 맨 위 기준인데,base_available_height()는 머릿말·꼬리말을 뺀 본문 높이입니다. 용지 y를 본문 높이에서 그대로 빼서, 표가 칸 바닥을 넘는다고 판단합니다.예: 페이지 100, 머릿말·꼬리말 각 10이면 본문 높이는 80, 본문 범위는 10–90입니다. 표 시작 70, 높이 15면 끝은 85로 꼬리말(90) 위입니다. 현재 식은 남는 높이를 80-70=10으로 보아 15가 넘친다고 자릅니다.
수정
vertRelTo가 Paper 또는 Page이면 anchor_y를
paperY - body_area.y로 본문 칸 좌표에 맞춥니다.paperY + tableHeight가 꼬리말 시작보다 작으면 분할하지 않습니다. 꼬리말을 실제로 넘는 표만 기존처럼 행 단위로 넘기면 됩니다.기대 결과
실제 결과