대치 후 남은 넘침·겹침을 글자를 줄여 푼다면, 얼마나 풀리고 어디서 멈춰야 하는가. 커밋된 케이스 119건을 전부 돌려 재고, 축소 하한의 기준을 「원안 대비」와 「페이지 대비」로 갈라 견줬다.
각 FAIL 케이스에서 결함에 낀 텍스트만 줄이고 재배치를 한 번 더 돌린 뒤,
판정이 FAIL 을 벗어나는 최소 배율을 찾았다. 기준선은 합본 method3+1+2+5+4 의
S45 / A34 / FAIL 40.
줄이기만 하면 0.80 에서 6건 · 0.70 에서 10건. 재배치를 한 번 더 태우면 10건 · 15건이 된다. 글자가 낮아진 만큼 method 1·4·5 가 다시 풀 수 있어서다.
판정 규칙의 SUCCESS 조건이 「폰트 배율 = 1」이라, 한 톨이라도 줄이면 최선이 ACCEPTABLE 이다.
규칙이 의도한 바다(Rule.md §2.1 불변 조건).
겹침 상대가 사진·도형이거나(6577997 은 이미지끼리), 원안에도 있던 겹침이 커진 것이라 글자를 줄여도 면적이 안 줄어든다.
55468585628689562979456360215638155569414156980885797704632350163771086577997667201766882476699353
폰트를 바꾸면 구운 tight bounding box 를 물려받을 수 없다
(크기가 달라진 노드는 carryTightBoxes 가 버린다). 그래서 이 실험은 전부
예측 tight(measureLineBox)로 쟀고, 그 기준의 기준선이
S45 / A34 / FAIL 40 이다 — 구운 tight 기준으로는 33, frame 기준으로는 32.
위 표의 분모는 40 이다.
셋 다 아니다. 「원안 대비 배율」과 「페이지 대비 절대 크기」를 동시에 걸어야 하고, 컨테이너는 기준이 될 수 없다(§4).
막는 것: 위계 붕괴.
이것만 쓰면: 60px 제목을 0.7 배 해도 42px — 가독성은 멀쩡한데 너무 보수적이다.
막는 것: 못 읽는 글자.
이것만 쓰면: 20px 캡션을 0.7 배 하면 14px — 배율은 멀쩡한데 못 읽는다.
같은 0.7 인데 결과가 정반대다. 실측으로도 둘이 다른 케이스에서 걸린다.
| 규칙 | 상대 하한 | 절대 하한 | 푸는 FAIL | 대가 |
|---|---|---|---|---|
| A | 원안 0.80 | — | 10 | 안전하지만 절반만 건진다 |
| B | 원안 0.70 | — | 15 | 3건은 못 읽을 크기로 내려간다 |
| C | 원안 0.70 | 페이지 2.0% | 12 | 둘 다 지킨다 |
| D | 원안 0.70 | 페이지 2.3% | 11 | 절대 하한을 한 칸 더 올린 판 |
| E | — | 페이지 2.0% | 20 | 더 푸는 8건이 전부 0.50~0.53 배 |
C(12) < B(15) → 절대 하한이 3건을 막는다. 배율은 허용 범위인데 글자가 못 읽을 크기가 되는 경우다.
E(20) > B(15) → 상대 하한이 5건을 막는다. 그런데 E 가 더 푸는 8건은 전부 제목을 반으로 줄이는 것이고, 정확히 PowerPoint autofit 이 욕먹는 그 지점이다(§참고).
가독성은 시야각의 문제다. px 값 자체는 아무 뜻이 없다 — 같은 1920×1080 캔버스가 4K 모니터에도, 강당 스크린에도, A4 인쇄에도 나간다. 페이지 전체가 시야에서 차지하는 각도는 매체가 달라도 대체로 비슷하게 유지되므로, 불변량은 「폰트 크기 ÷ 페이지 높이」다.
ISO 9241-303 · ANSI/HFES 100 이 이것을 시야각(분각)으로 규정한다 — 문자 높이 최소 16′, 권장 20~22′.
원안 텍스트 블록 970개 · 문서 119건 · 전부 1920×1080.
| 최소 | 5% | 25% | 중앙 | 75% | 최대 | |
|---|---|---|---|---|---|---|
| 폰트 (px) | 11.5 | 20.5 | 25.1 | 29.3 | 34.7 | 160.0 |
| 페이지 높이 대비 | 1.07% | 1.89% | 2.32% | 2.72% | 3.22% | 14.81% |
중앙값 2.72% 는 ISO 최소(1.9%)와 권장(2.6%) 사이다. Legge & Bigelow 의 「실제 출판물의 활자 크기는 심리물리학적 유창 범위 안에 몰려 있다」가 그대로 재현된다.
원안의 10.3% 만 이미 그 아래에 있다. 하한으로 쓸 만하다.
원안의 37.7% 가 위반이 된다. 디자이너가 이미 쓰고 있는 크기를 금지하는 잣대다.
16:9 슬라이드는 높이 540pt 이고 투사 본문 권장 하한이 18~24pt, 즉 페이지 높이의 3.3~4.4%다. 강당에서 뒤에서 보는 매체라 화면용보다 엄한 것이 맞다 — 같은 「페이지 대비 비율」이라는 자로 두 매체가 나란히 놓인다.
100px 칩 안의 10px 글자나 1000px 카드 안의 10px 글자나 똑같이 안 읽힌다.
컨테이너 대비로 잡으면 「작은 상자일수록 더 줄여도 된다」가 된다 — 배지·칩처럼 이미 가장 작은 글자가 있는 자리가 가장 먼저 무너진다. 이 코퍼스의 최소 폰트가 11.5px 인데, 그 상자를 또 줄이면 즉시 읽을 수 없다.
상자는 얼마나 줄여야 담기나를 정한다. 얼마나 줄여도 되나는 보는 사람이 정한다.
폰트를 줄이면 같은 폭에 글자가 더 들어가 45~75자(Bringhurst) 범위를 위로 넘어간다.
지금 지표 ⑦(isNarrowColumn)은 아래쪽만(줄당 3자 미만) 본다 —
축소를 넣으면 위쪽 상한도 함께 봐야 한다.
허용 배율 = max( 원안 대비 하한(0.7~0.8) , 페이지 높이 × 2% ÷ 원안 폰트 )
제목만 줄이고 본문을 두면 위계가 무너진다. PowerPoint autofit 이 「슬라이드마다 배율이 달라 덱 전체의 위계가 흐트러지는」 바로 그 실패다.
3 → 1 ↔ 2 → 5 → 4 로 못 푼 것에만 적용한다.
실측이 그 방향을 지지한다 — 넘침으로 FAIL 인 5699884 · 6535388 은
0.95 한 칸이면 풀린다.
「가독성 기준 폰트 배율」 슬라이더(0.5~1, 기본 0.7)가 이미 있고
judgeMetrics(… { excessiveFontScale }) 가 그 값을 받는다 —
채점 쪽 배선은 이미 되어 있었고 후보 쪽만 없었다.
절대 하한(페이지 %)은 method6.ts 의 PAGE_MIN_FONT_RATIO 로 붙였다.
지표는 여전히 이 선을 안 본다 — 채점은 원안 대비 배율 하나만 잰다.
method 6 으로 구현됐다 — 2026-08-26
위 공식이 그대로 들어갔다. 앞의 다섯(3 → 1 ↔ 2 → 5 → 4)이
판정을 못 넘긴 케이스에만 발동하고, 배율 사다리를 0.95 부터 한 칸씩 내려가며
줄일 때마다 앞의 다섯을 한 번 더 돌린다. 사다리를 다 내려가도 판정이
FAIL 이면 한 픽셀도 안 줄이고 돌려준다.
| 합본 | 넘침 | 신규 겹침 | 게이트 | 정렬선 | 판정 |
|---|---|---|---|---|---|
3+1+2+5+4 | 534,454px² | 95쌍 | 83/111 | 0.864 | S50 / A31 / F30 |
3+1+2+5+4+6 | 368,345px² | 70쌍 | 97/111 | 0.861 | S50 / A47 / F14 |
16건을 풀고 FAIL 이 30 → 14 로 준다. 대가는 정렬선 0.003 뿐이고, 예상대로 SUCCESS 는 한 건도 안 는다(50 그대로 · ACCEPTABLE 이 31 → 47). 쓴 배율은 0.95×3 · 0.90×7 · 0.85×2 · 0.80×3 · 0.70×1 — 대부분 한두 칸이다. 페이지 절대 하한이 실제로 붙잡은 노드는 6195161 의 3개뿐이었다.
후보 여섯의 로직 전체는 src/post-replace-relayout/docs/relayout_logics.md 가 정본이다.
남은 겹침 원인 ⓜ(다른 유닛 · 같은 띠, 48쌍) ·
ⓚ1(한 열에 쌓였는데 「가로가 더 얕다」고 읽힌 것, 18쌍) 손질과
이 폰트 축소는 서로 다른 케이스를 푼다 —
폰트 축소로 안 되는 14건 중 5546858 · 6688247 · 6323501 이
정확히 그 원인이다. 둘 다 할 값어치가 있고, 폰트 축소 쪽이 결정할 규칙이 더 많다
(하한 두 값 · 그룹 단위 · 줄당 글자 상한).
| 무엇 | 핵심 | 이 설계에 주는 답 |
|---|---|---|
| WCAG 2.x SC 1.4.4 Resize Text |
최소 폰트 크기를 정하지 않는다. 대신 200% 확대가 가능해야 한다 | 「몇 px 이상」이라는 절대 규칙은 표준이 일부러 피한 것 — 시야각 정규화로 가야 하는 근거 |
| ISO 9241-303 ANSI/HFES 100 |
문자 높이를 시야각으로 규정: 최소 16′, 권장 20~22′ | 절대 하한의 정본. 「페이지 높이의 1.9~2.6%」가 여기서 나온다 |
| Legge & Bigelow (2011) J. Vision 11(5):8 |
읽기 속도가 최대인 유창 범위는 x-height 0.2°~2°. 그 아래 임계 활자 크기를 지나면 급락. 실제 출판물의 활자 크기는 이 범위 안에 몰려 있다 | 「하한이 벽처럼 존재한다」는 실증. 코퍼스 중앙값 2.72% 가 밴드에 드는 것도 같은 현상 |
| Apple HIG | iOS 본문 기본 17pt, 11pt 미만 금지 | 상대 배율만으로는 못 지키는 절대 바닥이 실무 가이드에도 있다 |
| Material Design 3 type scale |
타입 스케일에 하한이 있다(본문 권장 16sp 급) | 같은 취지 |
CSS fluid typographyclamp() · Utopia |
크기를 뷰포트 비율로 정하되 절대 하한·상한으로 clamp. min 은 접근성 바닥 아래로 못 가게 |
정확히 이 제안의 구조 — 상대 스케일 + 절대 clamp |
| Fluid Type 접근성 | 최대/최소 비가 2.5배를 넘지 않으면 확대 시에도 SC 1.4.4 통과 | 범위를 얼마나 벌려도 되는지의 실무 기준 |
| PowerPoint autofit Shrink text on overflow |
하한이 없다. 6~10pt 까지 계속 줄인다. 슬라이드마다 배율이 달라 덱 전체의 위계가 무너진다 | 반면교사. 하한 없는 autofit 이 무엇을 부수는지 · R-1 「같은 그룹은 한 배율」의 근거 |
| Bringhurst Elements of Typographic Style §2.1.2 |
한 단 기준 45~75자/줄, 66자가 이상적 | 폰트를 줄이면 줄당 글자가 늘어난다 — 지표 ⑦에 위쪽 상한이 필요 |