Repository navigation
fix(typeset): 병합 칸 안쪽 행은 내용이 들어가면 쪽 끝에서 끝낸다 - #8142
Open
planet6897 wants to merge 3 commits into
Open
planet6897 wants to merge 3 commits into
planet6897 wants to merge 3 commits into
Conversation
planet6897
force-pushed
the
fix/q1-1342000-low-pages
branch
from
October 23, 2026 08:41
0ec7aab to
ce20e62
Compare
RowBreak 표에서 앞 행의 병합 칸 안쪽에 있는 행이 쪽 끝에 걸릴 때, 그 행의 글줄과 안 여백이 남은 높이에 다 들어가면 한/글은 그 행을 이 쪽에 남은 높이로 끝내고 다음 쪽은 다음 행에서 선언 높이로 시작한다. 종전에는 남는 빈 띠가 25px 이상일 때만 그렇게 했고(그 미만이면 행을 통째로 넘김), 내용 소진 밴드 컷은 선언 높이의 나머지를 다음 쪽 첫머리로 이월했다. 한/글 2020 합성(줄간격·안 여백·글자 크기를 바꾼 네 계열)에서 문턱은 늘 «내용 + 안 여백 ≤ 남은 높이» 였고 픽셀 미만 허용치는 없다(table_scattered_header_rowbreak 2쪽: 0.04px 넘치는 행은 넘김). 병합 칸이 그 행에서 시작하거나 끝나면 남은 내용을 같은 행의 컷으로 이어야 해 종전 규칙을 유지한다. 위 캡션 흐름 표의 저장 프레임 원점은 devel edwardkim#8191 이 같은 규칙으로 이미 고쳤다. 이 커밋은 그 코드를 넣지 않고, 회귀 검사 captioned_float_table_stored_frame 과 입력·PDF 만 남긴다(devel 에서도 통과, Native/WASM 97.70/97.68). 1342000-202300055: p37 52.85→98.47, p38 53.48→98.90, p40 65.37→99.27, p41 60.20→99.66 (Native raw). 10k: 1690000-201300011 295→294 (한/글 쪽수와 일치). — rebase 전 head 측정값. [rebase 재유도 2026-10-23] devel def947c 의 SOURCE_BAND_CLOSE·BAND_CLOSE·RSPAN_CLOSE 판정은 그대로 두고, 그 밴드 컷이 받지 않은 병합 칸 안쪽 행에만 «내용 + 안 여백 ≤ 남은 높이» 종료 갈래 (COVERED_ROW_CLOSE)를 더한다. 글줄을 다 소비한 행(fully_consumed)만 대상이다. 종전 PR 의 저장 사다리 RSPAN_BAND 갈래 교체는 devel 의 SOURCE_BAND_CLOSE 가 같은 사례를 이미 닫으므로 넣지 않는다.
planet6897
force-pushed
the
fix/q1-1342000-low-pages
branch
from
October 24, 2026 19:48
ce20e62 to
b079446
Compare
1342000-202300055 37·38·40·41쪽은 devel 9418ed0 이 이미 같은 점수로 맞춘다 (한/글 2024 Print 49쪽 대조: devel·이 PR 모두 Native 99.43~99.89). 이 PR 이 바꾸는 출력은 병합 칸 안쪽 행 종료이므로 합성 rowspan-band-fit 의 수정 전후 review·overlay 로 증적을 바꾼다.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
RowBreak 표에서 앞 행의 병합 칸이 덮는 안쪽 행이 쪽 끝에 걸릴 때, 그 행의 글줄과 안 여백이 남은 높이에 다 들어가면 한/글은 그 행을 이 쪽에 남은 높이로 끝내고 다음 쪽을 다음 행의 선언 높이로 시작한다. rhwp 는 이 행을 통째로 다음 쪽으로 넘겼다.
한/글 규칙 근거 (한/글 2020 합성)
열0 이 행1~4 를 병합한 8×3 RowBreak 표를 쪽 끝 남은 높이를 10 HU 간격으로 바꾸며 만들고 한/글 2020 Print 로 행 배치를 읽었다. 줄간격·칸 안 여백·글자 크기를 바꾼 네 계열에서 문턱은 늘 같았다.
samples/table_scattered_header_rowbreak.hwp2쪽 끝 행은 0.04px 넘쳐서 넘어간다(기존 회귀issue_7902가 지킨다).issue_5877가 지킨다).변경
src/renderer/typeset/table/scan/row.rs,runner/row_step.rs: devel 의 SOURCE_BAND_CLOSE·BAND_CLOSE·RSPAN_CLOSE 판정은 그대로 두고, 그 밴드 컷이 받지 않은 «병합 칸 안쪽 행(병합 칸 시작·끝 행 제외)» 에만 «내용 + 안 여백 ≤ 남은 높이 → 남은 높이로 끝내고 다음 행에서 이월 컷 없이 시작» 갈래(COVERED_ROW_CLOSE)를 더한다. 글줄을 다 소비한 행(fully_consumed)만 대상이다. devel 판정만으로는 합성 표 4개 중 넷째(남은 1480 HU·병합 셋째 행)가 재조판 경로의MIN_TOP_KEEP_PX문턱 때문에 통째로 넘어간다.회귀 검사 (
tests/cases/)9418ed0c7rowspan_band_fits_remaining_pagesamples/rowspan-band-fit/rowspan-band-fit.hwp/ 같은 저장본 Print PDF. 쪽수·표 조각 시작/끝 행·이어받기 컷 없음captioned_float_table_stored_framesamples/caption-float-frame/caption-negative-offset.hwp/ 같은 저장본 Print PDF. 캡션 줄이 저장 원점 + 바깥 위 여백에서 시작하고 표 위에 놓이는 관계Visual Sweep (head
b079446c5코드, base = devel9418ed0c7)판정값 = 2px 실루엣 raw(TSV 4열),
--compat 2022, 전 쪽.samples/rowspan-band-fit/rowspan-band-fit.hwpsamples/caption-float-frame/caption-negative-offset.hwp8·9쪽 쪽별: devel Native 88.16 / 39.79 → 이 PR 97.85 / 100.00, WASM 88.00 / 40.29 → 97.68 / 100.00.
직접 판독(8쪽): 병합 칸 «T k=3 rest=1480» 이 덮는 행이 이 쪽에서 남은 높이로 끝나고, 아래 라벨1
3 행과 R1C1R3C2 칸 경계가 PDF 와 같은 자리다.9쪽 — devel / 이 PR Native / 이 PR fresh WASM
8쪽 — 이 PR Native review·overlay
8·9쪽의 devel·head·wasm review·overlay 전부가
mydocs/report/rowspan-band-fit/에 있다.1342000 재측정
원본
1342000-202300055(49쪽)을 한/글 2024 Print 로 새로 출력해 대조했다(종전 비교는 한/글 2020 Print). devel 과 이 PR 이 전 쪽에서 같은 점수다 — 37·38·40·41쪽 Native 99.89 / 99.43 / 99.85 / 99.89, WASM 99.91 / 99.45 / 99.87 / 99.91. 남은 90 미만은 두 빌드 공통으로 Native 5쪽 89.91·6쪽 86.96, WASM 6쪽 87.33 이다(수학 기호 전진폭 축, #8141).게이트 (code head
b079446c5, base9418ed0c7)--check· unit tier--check통과.--features native-skia, release-test) 11,759건 중 11,755 통과 — 실패 4건은 devel 에서도 같은 이 host 환경 문제다(issue_7966_pdf_close_stroke3건은 Windows 체크아웃 CRLF, fix(checkout): Windows CRLF·심볼릭 링크 체크아웃에서만 실패하던 로컬 검사를 고친다 #8193 ·custom_font_paths_select_style_within_the_first_family_owner는 글꼴 설치).미검증·남은 차이
a6e9d18fc)에서는1690000-201300011295→294쪽(한/글 294쪽과 일치) 등 8문서가 바뀌었는데, 그중 캡션 표 몫은 이제 devel 에 있다.9418ed0c7+ 이 PR 에서 100.00 이다.🤖 Generated with Claude Code