Repository navigation
fix(layout): keep chains of paragraphs set to stay with the next as Hancom does - #479
Conversation
airmang
left a comment
There was a problem hiding this comment.
4520114 검토 완료. keep-with-next 사슬 순회, 각주 공간 반영과 가상 배치 후 page_notes/carry 복구를 확인했습니다. 별도 Python 3.12 체크아웃에서 관련 테스트 14개가 통과했고 검토 범위에서 재현된 코드 결함은 찾지 못했습니다. 최종 확인 시 일부 CI가 아직 실행 중입니다. 다만 #470/#471 병합 뒤 최신 main dae1ee2c60014e3ed6d1c290bc79e7d64d73a710과의 병합 충돌이 있어 이번에는 보류합니다. git merge-tree와 GitHub의 CONFLICTING 상태로 확인했으며, 충돌 파일은 CHANGELOG.md입니다. main을 merge해 양쪽 변경을 보존하고 충돌을 해결한 최신 head에서 검사를 통과하면 다시 검토하겠습니다.
…ancom does The page estimate follows paragraphs set to stay with the next one after another (a chain), as Hancom Office lays them out: a paragraph of the chain that reaches the page's foot splits there as any other, the chain before it staying; one that has to go on to the next page whole, its next paragraph's first line or a table no longer fitting, takes the whole chain before it along. The footnotes of the chain take their room. Before, only the next paragraph counted. Hancom-saved fixtures hold such chains among tables, pictures, shapes and footnotes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4520114 to
f1cd9bb
Compare
airmang
left a comment
There was a problem hiding this comment.
f1cd9bb 검토 완료. keep-with-next 사슬과 각주 임시 상태 복구, 첫 문단/분할/표 경계를 재확인했습니다. range-diff상 기능 변경은 없습니다. 해당 최신 head의 CI 전체 성공과 실제 Python 3.12 로그(6767 passed, 18 skipped, 1 xfailed; coverage 기준 및 Ruff·mypy·Pyright·공개 저장소 게이트 통과)를 확인했습니다. 검토 범위에서 재현된 코드 결함은 찾지 못했습니다. 다만 #475/#468/#472 병합 후 최신 main 0193c010218cb5c0abeed891be2aab4ec9de2f80과 CHANGELOG.md 내용 충돌이 발생함을 git merge-tree로 확인해 병합을 보류합니다. main의 변경 기록을 함께 보존하여 충돌을 해결한 뒤 새 head의 검사와 통합 결과를 다시 검증해야 합니다.
airmang
left a comment
There was a problem hiding this comment.
다음 문단과 함께 배치되는 사슬의 분할/이동 및 각주 공간의 임시 계산과 복원을 검토했습니다. 충돌은 양쪽 기록과 테스트를 보존해 해결했고, 재배치 전후 함수·데코레이터·데이터의 의미가 같음을 대조했습니다. Python 3.10–3.14 전체 CI, CodeQL, 의존성 검사가 모두 성공했습니다. 같은 커밋의 중복 PR 테스트 실행은 취소하고 push 매트릭스 성공을 확인했습니다. 최종 통합본의 관련 테스트 1,692개도 통과했습니다. 검토한 head를 지정하여 squash 병합합니다.
What
The page estimate now follows paragraphs set to stay with the next one after another (a chain), as Hancom Office lays them out:
Before, only the paragraph right after counted, so a chain ending in something that did not fit left its first paragraphs on the page where Hancom moves them on.
Tests
New Hancom-saved fixtures (saved by Hancom Office 2024, scrubbed) hold such chains among tables, pictures, shapes and footnotes. They cover a chain going on, a chain before a table, a chain splitting at the foot, a chain with a footnote, and a chain of several lines going on. Without the line caches they fail before this change and pass after.
🤖 Generated with Claude Code