← 미리디 아카이브 / 병합 대치 정렬 문제

내용시각화 재배치 후보 · 설계 결정 2026-08-26 실측

폰트 축소 하한

대치 후 남은 넘침·겹침을 글자를 줄여 푼다면, 얼마나 풀리고 어디서 멈춰야 하는가. 커밋된 케이스 119건을 전부 돌려 재고, 축소 하한의 기준을 「원안 대비」「페이지 대비」로 갈라 견줬다.

miricanvas-iui post-replace-relayout 케이스 119건 후보 method3+1+2+5+4 채점 기준 original.json 구현 method 6
§1

줄이면 FAIL 이 얼마나 풀리나

각 FAIL 케이스에서 결함에 낀 텍스트만 줄이고 재배치를 한 번 더 돌린 뒤, 판정이 FAIL 을 벗어나는 최소 배율을 찾았다. 기준선은 합본 method3+1+2+5+4 의 S45 / A34 / FAIL 40.

허용 하한 풀리는 FAIL · 분모 40건 0.95 이상만 0.80 이상 0.70 이상 0.65 이상 0.50 까지 5 10 15 22 26
0.70 → 0.65 한 칸에서 7건이 한꺼번에 넘어온다. 절벽이 거기 있고, 그 절벽을 넘는 대가가 무엇인지는 §2 의 「규칙 E」가 말한다.

필요 배율 분포 — 이 케이스를 풀려면 몇 배까지 줄여야 하나

0.70 하한 5 2 3 4 1 7 1 1 2 14 0.95 0.85 0.80 0.75 0.70 0.65 0.60 0.55 0.50 안 됨 사정권 밖
되는 것

줄인 뒤 재배치를 다시 돌리는 것이 절반을 만든다

줄이기만 하면 0.80 에서 6건 · 0.70 에서 10건. 재배치를 한 번 더 태우면 10건 · 15건이 된다. 글자가 낮아진 만큼 method 1·4·5 가 다시 풀 수 있어서다.

한계

FAIL → ACCEPTABLE 이지 SUCCESS 가 아니다

판정 규칙의 SUCCESS 조건이 「폰트 배율 = 1」이라, 한 톨이라도 줄이면 최선이 ACCEPTABLE 이다. 규칙이 의도한 바다(Rule.md §2.1 불변 조건).

어떤 배율로도 안 되는 14건 — 폰트 축소의 사정권 밖

겹침 상대가 사진·도형이거나(6577997 은 이미지끼리), 원안에도 있던 겹침이 커진 것이라 글자를 줄여도 면적이 안 줄어든다.

55468585628689562979456360215638155569414156980885797704632350163771086577997667201766882476699353

측정 기준 — 예측 tight 로 쟀다

폰트를 바꾸면 구운 tight bounding box 를 물려받을 수 없다 (크기가 달라진 노드는 carryTightBoxes 가 버린다). 그래서 이 실험은 전부 예측 tight(measureLineBox)로 쟀고, 그 기준의 기준선이 S45 / A34 / FAIL 40 이다 — 구운 tight 기준으로는 33, frame 기준으로는 32. 위 표의 분모는 40 이다.

§2

기준은 원안인가 컨테이너인가

셋 다 아니다. 「원안 대비 배율」과 「페이지 대비 절대 크기」를 동시에 걸어야 하고, 컨테이너는 기준이 될 수 없다(§4).

상대 하한

원안 대비 배율 — 디자인 의도를 지킨다

막는 것: 위계 붕괴.

이것만 쓰면: 60px 제목을 0.7 배 해도 42px — 가독성은 멀쩡한데 너무 보수적이다.

절대 하한

페이지 대비 크기 — 읽을 수 있게 지킨다

막는 것: 못 읽는 글자.

이것만 쓰면: 20px 캡션을 0.7 배 하면 14px — 배율은 멀쩡한데 못 읽는다.

같은 0.7 인데 결과가 정반대다. 실측으로도 둘이 다른 케이스에서 걸린다.

규칙상대 하한절대 하한푸는 FAIL대가
A원안 0.8010안전하지만 절반만 건진다
B원안 0.70153건은 못 읽을 크기로 내려간다
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 이 욕먹는 그 지점이다(§참고).

§3

왜 「페이지 높이의 2%」인가

가독성은 시야각의 문제다. px 값 자체는 아무 뜻이 없다 — 같은 1920×1080 캔버스가 4K 모니터에도, 강당 스크린에도, A4 인쇄에도 나간다. 페이지 전체가 시야에서 차지하는 각도는 매체가 달라도 대체로 비슷하게 유지되므로, 불변량은 「폰트 크기 ÷ 페이지 높이」다.

ISO 9241-303 · ANSI/HFES 100 이 이것을 시야각(분각)으로 규정한다 — 문자 높이 최소 16′, 권장 20~22′.

관찰자 600 mm 28.1° = 1685′ 페이지 · 높이 300 mm 권장 22′ = 페이지의 2.6% = 페이지의 1.9% 최소 16′
문자 높이(x-height)의 시야각 = 페이지 시야각 × (x-height ÷ 페이지 높이). 라틴 기준 x-height ≈ 폰트 크기의 0.5 이므로 16′ → 폰트 크기 1.9% · 22′ → 2.6%. 한글은 x-height 개념이 없고 글자가 em 상자를 거의 다 쓰므로 같은 시야각을 더 작은 폰트로 만족한다 — 2% 는 한글에 보수적인 값이다.

그리고 이 코퍼스의 디자이너들이 정확히 그 밴드 안에 있다

원안 텍스트 블록 970개 · 문서 119건 · 전부 1920×1080.

ISO 밴드 1.9 – 2.6% 제안 하한 2.0% 1080px 캔버스에서 21.6px 1.07 1.89 3.22 2.72 최소 5% 75% 중앙값 → 최대 14.81
ISO 권장 밴드 · 사분위 상자 제안 하한 중앙값
최소5%25%중앙75%최대
폰트 (px)11.520.525.129.334.7160.0
페이지 높이 대비1.07%1.89%2.32%2.72%3.22%14.81%

중앙값 2.72% 는 ISO 최소(1.9%)와 권장(2.6%) 사이다. Legge & Bigelow 의 「실제 출판물의 활자 크기는 심리물리학적 유창 범위 안에 몰려 있다」가 그대로 재현된다.

쓸 수 있다

2.0% 하한

원안의 10.3% 만 이미 그 아래에 있다. 하한으로 쓸 만하다.

못 쓴다

2.5% 하한

원안의 37.7% 가 위반이 된다. 디자이너가 이미 쓰고 있는 크기를 금지하는 잣대다.

교차 검산 — 슬라이드는 더 엄하다

16:9 슬라이드는 높이 540pt 이고 투사 본문 권장 하한이 18~24pt, 즉 페이지 높이의 3.3~4.4%다. 강당에서 뒤에서 보는 매체라 화면용보다 엄한 것이 맞다 — 같은 「페이지 대비 비율」이라는 자로 두 매체가 나란히 놓인다.

§4

왜 컨테이너는 기준이 아닌가

1

가독성은 눈의 문제이지 상자의 문제가 아니다

100px 칩 안의 10px 글자나 1000px 카드 안의 10px 글자나 똑같이 안 읽힌다.

2

규칙이 뒤집힌다

컨테이너 대비로 잡으면 「작은 상자일수록 더 줄여도 된다」가 된다 — 배지·칩처럼 이미 가장 작은 글자가 있는 자리가 가장 먼저 무너진다. 이 코퍼스의 최소 폰트가 11.5px 인데, 그 상자를 또 줄이면 즉시 읽을 수 없다.

3

컨테이너는 「수요」이지 「한도」가 아니다

상자는 얼마나 줄여야 담기나를 정한다. 얼마나 줄여도 되나는 보는 사람이 정한다.

다만 컨테이너에는 다른 역할이 하나 있다 — 줄당 글자 수

폰트를 줄이면 같은 폭에 글자가 더 들어가 45~75자(Bringhurst) 범위를 위로 넘어간다. 지금 지표 ⑦(isNarrowColumn)은 아래쪽만(줄당 3자 미만) 본다 — 축소를 넣으면 위쪽 상한도 함께 봐야 한다.

§5

제안하는 규칙

축소 하한 — 둘 중 더 엄한 쪽 relayout-core/verdict.ts · 후보 쪽 미구현
허용 배율 = max( 원안 대비 하한(0.7~0.8) ,  페이지 높이 × 2% ÷ 원안 폰트 )
R-1

한 유닛(또는 정렬 그룹) 안에서는 하나의 배율

규칙

제목만 줄이고 본문을 두면 위계가 무너진다. PowerPoint autofit 이 「슬라이드마다 배율이 달라 덱 전체의 위계가 흐트러지는」 바로 그 실패다.

R-2

최후의 수단 — 재배치로 못 푼 것에만

규칙

3 → 1 ↔ 2 → 5 → 4 로 못 푼 것에만 적용한다. 실측이 그 방향을 지지한다 — 넘침으로 FAIL 인 5699884 · 65353880.95 한 칸이면 풀린다.

R-3

절대 하한은 아직 없다 — 새로 붙여야 한다

구현됨 method6.ts

「가독성 기준 폰트 배율」 슬라이더(0.5~1, 기본 0.7)가 이미 있고 judgeMetrics(… { excessiveFontScale }) 가 그 값을 받는다 — 채점 쪽 배선은 이미 되어 있었고 후보 쪽만 없었다. 절대 하한(페이지 %)은 method6.tsPAGE_MIN_FONT_RATIO 로 붙였다. 지표는 여전히 이 선을 안 본다 — 채점은 원안 대비 배율 하나만 잰다.

이 규칙은 method 6 으로 구현됐다 — 2026-08-26

위 공식이 그대로 들어갔다. 앞의 다섯(3 → 1 ↔ 2 → 5 → 4)이 판정을 못 넘긴 케이스에만 발동하고, 배율 사다리를 0.95 부터 한 칸씩 내려가며 줄일 때마다 앞의 다섯을 한 번 더 돌린다. 사다리를 다 내려가도 판정이 FAIL 이면 한 픽셀도 안 줄이고 돌려준다.

합본넘침신규 겹침게이트정렬선판정
3+1+2+5+4534,454px²95쌍83/1110.864S50 / A31 / F30
3+1+2+5+4+6368,345px²70쌍97/1110.861S50 / 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 typography
clamp() · 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자가 이상적 폰트를 줄이면 줄당 글자가 늘어난다 — 지표 ⑦에 위쪽 상한이 필요