1. 개요
홈페이지GitHub (권장)
MacType은 FlyingSnow라는 중국인 개발자가 만든 글꼴 렌더링 프로그램으로, Microsoft Windows에서 기본적으로 사용하는 클리어타입을 대체하기 위해서 만들어졌다.
2. 개발 배경
Microsoft Windows는 글꼴 렌더링에 클리어타입이라는 기술을 사용한다. 그러나 이 클리어타입은 PPI가 낮은 LCD 모니터에서 작은 글꼴을 또렷하게 표시하기 위해 갖가지 편법을 동원하였고, 이로 인해 화면상의 글꼴 형태가 과도하게 변형되고 왜곡되어 보이는 문제점이 있다. 이에 불만을 가지고 클리어타입을 대체하기 위해 개발한 것이 바로 MacType이다. 단, ClearType 옵션 자체는 켜져 있어야 한다. MacType은 macOS와 같은 폰트 렌더링 기법을 이용해 화면상의 글꼴의 형태를 온전하고 깔끔하게 보여준다. 대신, 앞에서 말한 이유로 저해상도 모니터에서는 오히려 가독성이 떨어질 수 있다.DrWatson이라는 일본인 개발자가 만든 GDI++가 원류로, 해당 프로그램의 개발이 중단되면서 이를 대체하기 위해 만들어진 것이 바로 MacType이다. 특히 한자를 사용하는 일본과 중화권은 글꼴의 형태가 왜곡되면 비슷한 모양의 글자를 구분하기 힘들어지기 때문에 이런 프로그램의 수요가 꽤 있는 편이며, 일본이나 중화권 출신 개발자들이 많은 것도 여기에서 비롯된다.
Microsoft에서도 클리어타입의 문제점을 알고 있기에, UWP 앱에 한하여 그레이스케일 렌더링을 채택하고 있다. 하지만 절대다수의 Win32 앱들에는 여전히 클리어타입이 적용되는 상황이다.
3. 특징
왼쪽은 MacType이 설치되지 않은 보통의 Windows에서 보이는 모습이고, 오른쪽이 MacType을 설치한 모습이다. 신기하게도 모든 프로그램 창에 다 적용이 되었지만, Windows 10으로 넘어오면서 클래식 앱들이 남겨진 채 Windows 기본 앱( 그림판 3D, Microsoft Store 등)에 Universal Windows Platform이 적용되면서 글꼴 렌더링이 변경되어서 설정이나 전용 앱에서는 작동되지 않게 되었다. 한마디로 반만 적용된다는 것이다.
설치 시 macOS처럼 글꼴이 부드럽게 렌더링이 된다. 단, 일반적인 FHD 환경에서 적용하면 오히려 글자가 흐려진다. Mac은 2.5K~5K 수준의 고해상도를 기준으로 HiDPI를 렌더링하는 방식이고 MacType도 이를 따라한 것이다. 따라서 Windows의 배율 설정이 125%나 150%, 혹은 200%의 고배율로 되어 있어야 MacType를 사용하는 의미가 있다.
Windows의 클리어타입은 저해상도, Low PPI 환경이 기본이던 시대에 만들어졌으며, 모양보다 가독성을 우선시한다. 그렇기 때문에 인쇄물과 디스플레이의 폰트가 대체로 일치하지 않지만, 좀 더 선명하다는 특징이 있다. 다만 계단현상이 발생하며 모양이 다소 거칠어보여서 디자이너들은 클리어타입을 좋아하지 않는다.
Mac의 경우, 폰트의 모양을 그대로 재현하는 것을 우선시하였다. 즉, 인쇄물과 디스플레이에 나타나는 폰트의 모양이 거의 유사하다. 그래서 계단현상이 생기지 않고 모양이 부드럽지만 폰트가 흐릿하게 보여서 macOS의 폰트 렌더링을 좋아하지 않는 사람도 존재한다. 이 문제는 Apple이 Retina 디스플레이를 Mac으로 가지고 오면서 해결되었다.
가장 강력한 기능으로 font substitute로 불리는 폰트 대체 기능이 있다. 해당 기능을 이용하면 굴림체나 돋움체를 나눔고딕이나 kopub체 등으로 바꿔서 출력하는 것이 가능하다. GDI++ 등의 프로그램에는 없는 기능이다.
요즘 OLED 모니터들이 많이 보급됨에 따라 윈도우의 문자 가독성 문제가 자주 거론되는데, OLED는 전통적인 LCD와 서브픽셀의 배열이 다른데 클리어타입은 상술했듯 저해상도, RGB 배열에만 최적화 되었기 때문에 글자가 죄다 깨지고 희미하게 보이게 된다. MacType을 사용하여 일부 개선이 가능하며(사실상 필수 세팅 취급받는다.), LGD의 WOLED 패널에선 효과가 더 좋고 삼성D의 QD-OLED는 효과가 더 적다.
4. 사용법
4.1. 기본
- MacType을 설치한다.
- 필요하다면 인터넷에서 적절한 프리셋(*.ini 파일)을 받아서 설치한다. 설치 경로를 변경하지 않았다면 기본적으로 C:\\Program Files\\MacType\\ini 폴더에 프리셋이 저장된다. 경우에 따라서 글꼴도 같이 설치해야 하는 경우도 있다. 주로 나눔고딕이나 KoPub 돋움을 사용한다.
- MacType을 실행한다.
- 실행 방법을 선택하라는 창이 나오면 용도에 맞는 모드를 선택해준다.
-
Registry: 윈도우 레지스트리에 설정을 등록하는 방법. 모든 프로그램에 렌더링이 지체 없이 적용되지만 설정 시 재부팅이 필요하다. 그러나 일부 Windows 10 환경에서 이 모드로 설정 시 부팅이 안 되는 오류가 발생하면서 해당 모드를 사용하지 못하게 막아버렸으며, 이미 Registry 모드로 설정된 경우에 해제만 가능하게 바뀌었다. 정 Registry 모드를 사용하고 싶다면 수동으로 활성화하는 방법이 있다.[1] - Service: Windows 서비스에 등록하는 방법. 재부팅은 필요하지 않지만, 일부 시스템 항목은 변경되지 않는다. 그리고 PC 성능에 따라 프로그램에 렌더링이 바로 적용되지 않는 문제가 생길 수 있다.
- MacTray: 작업 표시줄에 MacType 트레이 아이콘을 띄운다. 해당 트레이 아이콘을 클릭해서 프로그램에 렌더링을 수동으로 적용/적용 해제할 수 있으며, 프리셋 변경도 가능하다. 서비스와 달리 시스템 항목이고 뭐고 전부 바꿔준다.
- Manual: MacType을 사용하지 않는다.
- 기본 내장 프리셋이나 다운받은 프리셋 중 적절한 것을 선택해서 적용한다.
Registry 모드를 설정한 경우에는 컴퓨터를 다시 시작해야 한다. Service나 MacTray로 설정한 경우에는 바로 적용이 되지만, 완벽한 적용을 위해서는 다시 시작하는 것이 권장된다.
메인보드 설정의 Secure Boot가 켜져 있으면 Registry 모드에서 MacType이 적용되지 않는다. Secure Boot를 끄거나 Service 모드로 설정해야 적용이 가능하다. Windows 10의 경우 Registry 모드가 정상 동작하지 않기 때문에 Service 모드를 사용해야 한다.
4.2. 일반 옵션의 예제
-
폰트 힌팅 옵션
옵션: 0: Normal / 1: NoHinting / 2: AutoHinting / 3: Light+AutoHinting
예)
HintingMode=1
-
폰트 렌더링 방식
Normal은 폰트의 경계선을 그레이 픽셀로 안티앨리어싱하고, 나머지 LCD, Light-LCD 옵션은 폰트의 경계선을 청색, 적색, 녹색 등으로 안티앨리어싱한다.
옵션: -1: Disable / 0: Normal / 1: Light / 2: LCD(RGB) / 3: LCD(GBR) / 4: Light-LCD(RGB) / 5:Light-LCD(GBR)
예)
AntiAliasMode=4
-
폰트 일반 굵기
범위: 32: +32
예)
NormalWeight=0
-
폰트 볼드체 굵기
범위: -16:+16
예)
BoldWeight=0
-
폰트 이탤릭체 기울기
범위: -16:+16
예)
ItalicSlant=0
4.3. 특수 옵션의 예제
- 감마 모드
- DirectWrite일 때의 폰트 렌더링 굵기
-
렌더링 적용 예외 폰트
예)
[Exclude]
-
렌더링 적용 예외 프로그램
예)
[UnloadDll]
fontview.exe
AxureRP.exe
FontCreator.exe
[ExcludeSub]
-
폰트 안티앨리어싱 렌더링 옵션
1: 자체 윈도우 렌더링 / 2: free-type 렌더링
예)
FontLoader=0
- 폰트 색상 조절 옵션
-
개별 폰트 옵션
Hinting, AAMode, NormalWeight, BoldWeight, ItalicSlant, Kerning
예)
Batang=, ,30, , ,
-
폰트 대체 강도 옵션
0: 폰트 대체하지 않음 / 1: 자체 프로그램 단위 폰트 대체 / 2: 시스템 단위 폰트 대체
예)
FontSubstitutes=1
-
폰트 대체
예)
[font substitute]
Dotumche=KoPubDotum Medium
Apple SD Gothic Neo=KoPubDotum Medium
dotum=KoPubDotum Medium
dotum che=KoPubDotum Medium
dotumche=KoPubDotum Medium
굴림=KoPubDotum Medium
새굴림=KoPubDotum Medium
굴림체=KoPubDotum Medium
돋움=KoPubDotum Medium
돋움체=KoPubDotum Medium
-
웹브라우저에서 폰트 대체 기능으로 폰트가 제대로 대체되지 않는 경우
크롬이나 오페라, 파이어폭스 등에서 stylus 부가기능 등에서 css옵션을 수정하여 폰트를 대체한다.
예)
@font-face {
font-family: "돋움";
src: local("KopubDotum");
}
@font-face {
font-family: "돋움체";
src: local("KopubDotum");
}
@font-face {
font-family: dotum;
src: local("KopubDotum");
}
@font-face {
font-family: DotumChe;
src: local("KopubDotum");
}
@font-face {
font-family: "굴림";
src: local("KopubDotum");
}
@font-face {
font-family: "굴림체";
src: local("KopubDotum");
}
@font-face {
font-family: Gulim;
src: local("KopubDotum");
}
@font-face {
font-family: GulimChe;
src: local("KopubDotum");
}
- 위 설정으로도 폰트대체가 제대로 안될시 참조
5. 주의사항
프로그램 자체가 후킹 방식으로 동작하기 때문에 일부 환경에서는 오작동이 일어날 수 있으며, 저사양 컴퓨터에서는 성능이 저하되기도 한다. 또한 DirectWrite를 이미 적용하고 있는 프로그램에는 MacType이 먹히지 않는다.아래의 DirectWrite 후킹 패치를 적용한 후 버전에서 서비스 방식으로 사용시 팟플레이어가 자막을 재생하지 못하는 문제가 있다. 트레이 모드로 팟플레이어를 예외 목록에 추가하면 정상작동하는 것으로 보인다.
굴림체에도 강제로 렌더링이 적용되기 때문에 글자가 상당히 못생겨진다. 참고로 Fixedsys나 Terminal, MS Sans Serif와 같은 진짜 비트맵 글꼴은 렌더링 자체가 불가능하다. 굴림체나 돋움체, 바탕체 등을 비트맵 글꼴이라고 아는 사람들이 많은데, 사실 이들도 트루타입 글꼴이다. 다만 8pt부터 18pt까지의 영역에 비트맵 이미지를 박아둬서 비트맵처럼 보일 뿐이다. 실제로 해당 비트맵 영역을 삭제하면 일반 환경에서도 정상적으로 렌더링이 적용되며, 그럴 것 없이 20pt 이상으로 키워도 렌더링이 적용된다. 앞에서 말한 Fixedsys나 Terminal 등의 비트맵 글꼴의 경우, 한글 영역은 굴림체 12pt에 할당된 비트맵을 유용하였다.
HiDPI 환경이 아닌 일반적인 모니터에서는 오히려 글꼴이 흐려 보일 수 있기 때문에 가독성을 우선시하는 사람이라면 기본 클리어타입을 사용하는 것이 낫다. 특히 FHD 이하 해상도를 가진 대다수의 모니터라면 MacType이 오히려 독이 될 수 있다. 다만 No hinting 옵션으로 바꾸는 등 폰트 옵션을 재조정하면 어느 정도 가독성이 올라가기는 한다. 그리고 클리어타입과 맞지 않는 본고딕 등을 사용하려면 이걸 써야 한다.
한컴오피스 2014 제품군에서 MacType을 켜둘 경우 충돌이 발생한다. 실행 자체는 문제없이 되는데 종료할 때마다 작동이 중지되었다는 오류가 난다.
이유는 알 수 없지만, 일부 프로그램( PaintTool SAI, Mudbox, VMware Workstation 등)은 MacType 작동 중에는 관리자 권한을 적용해야 실행되므로 주의해야 한다.
현재 Chrome 78 버전 이상에서는 MacType이 제대로 작동이 안된다는 이슈가 있다.[2] 링크에 나오는 대로 바로가기 부분에서 시작 옵션을 변경하면 해결이 되긴 하나, 이러한 방법은 바로가기의 시작 옵션을 변경하는 것이기 때문에 다른 프로그램에서 크롬이 실행될 때에는 효과가 없다. 완전한 효과를 보려면 레지스트리 설정에서 HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Google\\Chrome으로 들어가서 RendererCodeIntegrityEnabled라는 DWORD를 만들어서 0으로 설정하면 완벽하게 해결이 된다.[3] 물론 해당 키가 없으면 직접 만들면 된다. Microsoft Edge 등 기타 크로뮴 브라우저도 참고 링크에 들어가서 조치를 취할 수 있다.[4] 참고로 이 방법을 쓰면 크롬에서 "조직에서 관리"가 뜨는데, 별 건 아니고 Chrome 정책 관리 기능을 사용하기 때문에 그런 것이다.[5] 현재 크로미움 최신 버전에서 해당 정책이 적용되지 않게 업데이트됨에 따라 크롬, 엣지 등 유명 크로미움 기반 브라우저들은 이제 Mactype 적용이 불가한 상황이다. 차선책으로 Cent브라우저 등 구버전 크로미움을 사용하는 포크된 브라우저들을 사용하는 방법이 있다.
일부 사용자에게서 유니코드나 설치 관리자의 폰트가 깨져나오는것으로 확인되었다. 이런 현상이 발생하는 이유는 적용시킨 폰트가 해당 글자를 표기하지 못하기 때문이다. 그러므로 다른 글꼴을 설치하거나 해결되지 않으면 심지어 포맷해야 한다. 그 외엔 별 다른 방법이 없기 때문이다.
UWP 앱에서는 제대로 동작하지 않는다. 이는 UWP 앱들은 DirectWrite를 사용하기 때문인데, MacType의 DirectWrite 지원이 불완전해서 렌더링이 제대로 먹히지 않기 때문이다. Windows 11에서는 메모장이나 그림판 등 대부분의 기본 앱들이 UWP로 대체되었으므로 MacType 사용자는 업데이트 시 이를 고려하는 것이 좋다.
6. 기타
한때 Direct2D 방식을 사용하는 프로그램에는 적용되지 않는 문제점이 있었다. 이후에는 업데이트가 끊겨서 최신 윈도우에서 정상적인 사용이 불가능했던 적이 있었으나, しらいと라는 일본인 개발자가 비공식 패치를 내놓기 시작하면서 사용이 가능해졌고, 이후 개발자도 업데이트를 재개하였다.기존에는 영어와 중국어( 간체자/ 번체자), 일본어만 지원했으나, 국내의 몇몇 유저들이 비공식 한글패치를 배포하였다. 이후 1.2017.628.0 버전부터 한국어를 정식 지원한다. 그리고 프랑스어도 지원한다.
7. 관련 문서
[1]
Enable registry mode manually
[2]
Chrome 78 Canary blocks injection to Chrome renderer processes
[3]
Chrome 118 버전 이후로는 이 옵션도 막아서 더 이상 사용할 수 없다.
[4]
Google Chrome
[5]
Windows 레지스트리로 Chrome 정책 관리하기