Repository navigation
feat(form_fit): lay out a face no table lists as 한컴바탕 - #478
Conversation
airmang
left a comment
There was a problem hiding this comment.
29af021 검토 완료. 미등록 글꼴의 배치용 fallback과 공개 glyph_advance_em의 None 반환 보존를 확인했습니다. 별도 Python 3.12 체크아웃에서 관련 테스트 130개가 통과했고 검토 범위에서 재현된 코드 결함은 찾지 못했습니다. 해당 head의 GitHub 검사 13개는 모두 성공했습니다. 다만 #470/#471 병합 뒤 최신 main dae1ee2c60014e3ed6d1c290bc79e7d64d73a710과의 병합 충돌이 있어 이번에는 보류합니다. git merge-tree와 GitHub의 CONFLICTING 상태로 확인했으며, 충돌 파일은 CHANGELOG.md 및 src/hwpx/form_fit/measure.py입니다. main을 merge해 양쪽 변경을 보존하고 충돌을 해결한 최신 head에서 검사를 통과하면 다시 검토하겠습니다.
FormFit and the page estimate now take 한컴바탕's advances for a face name no table lists (a font that is not installed, say), as Hancom Office lays out a face it does not find. Before, such a face took the class averages; with no face named it still does. 한컴바탕's reference mark and ellipsis take the advances Hancom lays them out at (788 and 983 of 1024 units). A Hancom-saved fixture holds cells in three faces Hancom does not find at 10 and 30 pt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
29af021 to
53a6c91
Compare
airmang
left a comment
There was a problem hiding this comment.
53a6c91 검토 완료. 이름 없는 글꼴의 평균 폭과 미등록 이름의 한컴바탕 대체 경로, glyph_advance_em의 기존 반환 계약을 재확인했습니다. main의 ! 반 em 처리도 유지됐습니다. 해당 최신 head의 CI 전체 성공과 실제 Python 3.12 로그(6758 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.
표에 없는 글꼴의 한컴바탕 대체, 글꼴 이름이 없는 경우와 공개 glyph_advance_em 계약 보존을 검토했습니다. 충돌은 양쪽 기록과 테스트를 보존해 해결했고, 재배치 전후 함수·데코레이터·데이터의 의미가 같음을 대조했습니다. Python 3.10–3.14 전체 CI, CodeQL, 의존성 검사가 모두 성공했습니다. 같은 커밋의 중복 PR 테스트 실행은 취소하고 push 매트릭스 성공을 확인했습니다. 최종 통합본의 관련 테스트 1,692개도 통과했습니다. 검토한 head를 지정하여 squash 병합합니다.
What
FormFit and the page estimate now take 한컴바탕's advances for a face name that no table lists, such as a font that is not installed. This matches Hancom Office, which lays out a face it does not find as 한컴바탕. Before, such a face took the class averages. With no face named, it still does.
glyph_advance_emkeeps answeringNonefor a face no table lists; only the layout (char_advance) takes the stand-in.While measuring, 한컴바탕's reference mark (※) and ellipsis (…) turned out to be laid out wider than the table had them. They now take 788 and 983 of 1024 units.
Tests
test_cells_in_faces_no_table_lists_break_as_hancom_batangreads a new Hancom-saved fixture (saved by Hancom Office 2024, scrubbed). Each cell holds one of A, a, 0, (, %, 가, ※ and W plus five Hangul syllables, in three face names Hancom does not find, at 10 and 30 pt and at the two widths where its line count changes. It fails before this change.🤖 Generated with Claude Code