리거처

Ligature

fi, fl처럼 연달아 오면 부딪히는 두 글자를 하나의 글리프로 합쳐 그리는 것.

다른 이름: 합자
···
html
<div class="stage">
  <div class="frame">
    <span class="word" id="w">waffle office</span>
  </div>
  <div class="readout"><span id="mode">font-variant-ligatures: common-ligatures</span></div>
</div>
css
.frame{position:relative}
.word{font-size:9vmin;line-height:1.3;font-family:Georgia,'Times New Roman',serif;color:var(--fg)}
.readout{margin-top:16px;font:11px ui-monospace,Menlo,monospace;color:var(--muted);text-align:center}
#mode{color:var(--accent)}
js
const w = document.getElementById('w');
const mode = document.getElementById('mode');
let on = true;
function apply(){
  w.style.fontVariantLigatures = on ? 'common-ligatures' : 'none';
  mode.textContent = 'font-variant-ligatures: ' + (on ? 'common-ligatures' : 'none');
  on = !on;
}
apply();
setInterval(apply, 1700);

f의 위쪽 갈고리와 i의 점이 나란히 오면 서로 부딪히거나 어색하게 겹칩니다. 리거처는 이 둘을 한 글리프로 다시 그려서 자연스럽게 이어지게 만듭니다. 활판 인쇄 시대엔 아예 fi, fl, ffi, ffl용 금속 활자가 따로 있었을 정도로 표준적인 관행이었습니다.

CSS에서는 `font-variant-ligatures: common-ligatures`가 사실 대부분 브라우저의 기본값입니다. 다만 폰트가 그 리거처 글리프를 실제로 갖고 있어야 눈에 띄게 보입니다 — 시스템에 깔린 세리프(Georgia 등)는 OS·버전에 따라 fi/fl 리거처가 있을 수도, 거의 안 보일 수도 있습니다. 웹폰트로 본문 전용 서체를 쓸 땐 그 폰트의 OpenType 리거처 지원 여부를 직접 확인하는 게 정확합니다.

코드 폰트 중에는 `!=`, `=>`를 하나의 기호처럼 이어 그리는 "프로그래밍 리거처"도 있는데, 이건 진짜 글자 충돌 해소가 아니라 가독성을 위한 장식적 합자입니다.

언제 쓰나

기본값(on)을 그대로 두면 됩니다. 로고타입처럼 정확한 글자 형태 제어가 필요할 때만 끄고 수동으로 조정하세요.