MacType과 noMeiryoUI를 사용할 때 Pretendard JP가 적용 안되는 문제 (해결 방법)

2025. 11. 11. 08:54·기타
반응형

문제

http://archive.today/2025.11.11-000533/https://gall.dcinside.com/mgallery/board/view/?id=sff&no=797713

 

위 글을 따라하여 MacType(버전: 2025.6.9)과 noMeiryoUI(버전: 3.4.0) 프로그램을 사용하여 윈도우 운영체제의 폰트를 Pretendard JP Medium(버전: 1.3.9)으로 적용하여 아래 사진과 같이 윈도우의 폰트를 예쁘게 바꿀 수 있었습니다.

 

사용한 버전

MacType(2025.6.9)

noMeiryoUI(3.4.0)

Pretendard JP(1.3.9)

 

개인적으로 정말 만족스럽지만 몇가지 흠이 있었습니다.

 

제어판 검색 입력창에 폰트 적용 안됨

 

 

카톡 입력창에 폰트 적용 안됨 (1)

 

카톡 입력창에 폰트 적용 안됨 (2)

 

하지만 이상한 점은, Pretendard JP 폰트를 사용했을 때만 저런 현상이 나타나고 그냥 Pretendard 폰트를 사용하면 저런 현상이 없다는 것입니다.

 

그럼 그냥 Pretendard를 사용하면 안되나? 생각할 수 있겠지만 Pretendard는 한자를 지원하지 않기 때문에 한자가 깨지는 현상이 발생하여 Pretendard JP를 꼭 사용해야만 하는 상황입니다. Pretendard JP는 한글과 한자 모두 지원합니다.

 

추정되는 원인

Pretendard JP 폰트는 폰트 안에 한국어 문자들이 들어있음에도 불구하고(한국어를 지원함에도 불구하고), 해당 폰트가 지원하는 언어들을 나타내는 메타정보인 OS/2 코드페이지 정보에 Korean Wansung 코드가 포함되어있지 않았습니다.

 

그래서 Pretendard JP가 일부 GUI 요소에서 한국어를 핸들링하지 못하고 바탕체와 궁서체 계열의 OS 기본 폰트로 fallback하는 현상으로 추정됩니다.

 

간단하게 말하자면, 그냥 폰트 메타정보에 한국어가 포함돼있지 않아서 윈도우가 '아 이 폰트에는 한국어가 없네' 라고 생각해서 바탕체와 궁서체 계열의 기본 폰트로 fallback한 것으로 추정됩니다.

 

하지만 실제로 해당 폰트는 한국어를 포함하고 있습니다. 단지 메타정보에만 '이 폰트는 한국어를 지원합니다' 라고 표시를 안해뒀을 뿐입니다.

 

해결 방법

폰트의 메타 정보를 수정하는 스크립트를 오픈소스로 공개하였습니다.

https://github.com/minmoong/PretendardJP-modified-ttf

 

GitHub - minmoong/PretendardJP-modified-ttf: Modified PretendardJP TTF release for resolve unexpected fallback in Windows

Modified PretendardJP TTF release for resolve unexpected fallback in Windows - minmoong/PretendardJP-modified-ttf

github.com

 

링크에 들어가보면 아래와 같이 Releases에 수정된 TTF 파일들을 업로드 해두었습니다.

Release를 클릭한 다음 아래와 같이 파일을 다운로드하고 압축을 해제한 뒤 모든 폰트를 설치해주면 됩니다.

 

만약 Releases에 배포된 파일이 의심스럽다면, 직접 main.py 스크립트를 실행하여 패치를 진행하면 됩니다. 패치된 폰트들은 모두 build 폴더에 저장됩니다. 빌드가 끝난 뒤 폰트를 모두 설치하세요.

 

제어판 검색 입력창에 폰트 적용된 모습

 

카톡 입력창에 폰트 적용된 모습

 

이후 재부팅하면 위와 같이 폰트가 제대로 적용된 모습을 볼 수 있습니다.

 

문제의 원인을 진단한 방법

어떻게 해당 문제의 원인을 찾았는지 설명하겠습니다.

 

Pretendard 폰트에서는 fallback 현상이 발생하지 않은 반면, Pretendard JP에서만 fallback이 발생하는 것에 주목했습니다.

 

따라서 두 폰트의 메타 정보를 비교해보기 위해 FontForge 프로그램으로 열어서 확인했습니다.

 

 

위와 같이 왼쪽(Pretendard)은 Korean Wansung 플래그가 켜져있지만 오른쪽(Pretendard JP)은 꺼져있습니다.

 

결국 이것이 문제였고 https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ulcodepagerange 를 참고하여 TTF 메타정보 수정을 통해 해결할 수 있었습니다.

 

하지만 한국어 뿐만 아니라 폰트의 Unicode Range에 존재하지만 MS Code Pages에 존재하지 않는 언어가 더 있었습니다. 이것을 찾는 방법은 위 사진에서 MS Code Page 글자 옆 Default 체크박스를 체크하면 FontForge가 자동으로 Unicode 범위에는 존재하지만 코드페이지에 없는 플래그들을 아래와 같이 자동으로 켜줍니다.

 

Default 체크박스를 켰다가 끈 모습

 

제가 위에 첨부한 소스코드가 하는 일은, 이 플래그들을 TTF 파일에서 활성화시키는 것입니다.

추후 계획

의도하지 않은 폰트 fallback 현상이 발생한다는 내용의 이슈를 Pretendard 공식 Github에 올릴 예정입니다.

 

[2025-11-11]

https://github.com/orioncactus/pretendard/issues/234

 

Pretendard JP를 MacType과 noMeiryoUI를 사용하여 윈도우즈 시스템 폰트로 적용했을 때 일부 UI에서 의도

안녕하세요, 우선 이렇게 멋진 폰트를 만들어주시고 기여해주신 분들께 감사함을 표합니다. 저는 최근에 MacType과 noMeiryoUI 프로그램으로 Pretendard JP를 윈도우 시스템에 적용하여 사용하고 있습니

github.com

 

이슈를 올렸습니다. 이것이 받아들여질지 안 받아들여질지는 잘 모르겠습니다. Pretendard JP의 코드 페이지에 해당 폰트가 지원하는 모든 언어의 플래그를 활성화하지 않은 이유가 따로 있을 수도 있습니다.

 

다른 알려진 문제들

위 문제 뿐만 아니라 Pretendard JP를 적용한 상태에서, 설정에서 'Windows 표시 언어를 영어'로 설정해둔 뒤 '사용지역 언어'를 '영어(미국)'으로 설정하면 작업표시줄의 시계 부분 또는 윈도우 부팅 후 로그인 화면의 시계에서 콜론같이 생긴 기호(:)가 없고 문자가 깨져서 표시될 것입니다.

 

이것은 일반적인 콜론(U+003A)이 아닌 U+2236이라는 콜론같이 생긴 다른 기호입니다.

 

 

위와 같이 Pretendard JP에서는 U+2236 문자가 존재하지 않기 때문에 깨지는 것입니다.

 

정확한 내용은 다음 글을 참고하세요.

 

https://www.winhelponline.com/blog/taskbar-clock-colon-missing-windows-10/

 

수정 (2025-12-08) 시스템 폰트로 되돌리기

원래의 시스템 폰트로 다시 돌아가기 위해 다음 단계들이 필요합니다.

저도 다시 돌아가려고 noMeiryoUI와 MacType만 건들이니까 제대로 안 돌아가지더라고요


1. 레지스트리 원래대로
2. 크롬 폰트 원래대로
3. noMeiryoUI -> 파일 > 시스템 글꼴 설정 및 종료
4. MacType -> Launch manually
5. 설정 -> ClearType 텍스트 조정 -> ClearType 사용 체크박스 체크 -> 다음다음... -> 마침

 

1번의 경우 원래 레지스트리 상태는 아래와 같습니다

 

 

5번의 경우 아래 사진에 보이는 설정으로 들어가면 됩니다.

 

 

 

역시 튜닝의 끝은 순정입니다..

반응형

'기타' 카테고리의 다른 글

우분투 OS 처음 설치한 뒤 해결해야 할 문제들  (1) 2025.12.15
OpenRocket 프로그램 시뮬레이션 기능 사용법  (0) 2024.09.03
'기타' 카테고리의 다른 글
  • 우분투 OS 처음 설치한 뒤 해결해야 할 문제들
  • OpenRocket 프로그램 시뮬레이션 기능 사용법
minmoong
minmoong
    반응형
  • minmoong
    minmoong
    minmoong
  • 전체
    오늘
    어제
    • Categories (16)
      • Programming (1)
        • Python (1)
        • WIPI (0)
      • Security (11)
        • Pwnable (2)
        • Reversing (9)
      • 기타 (3)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬
    WIPI 에뮬
    게임 리버싱
    렙업만이살길
    채팅 버그
    우분투 문제해결
    우분투 깔고
    리버스 엔지니어링
    밀초 버그
    리버싱
    게임 해킹
    렙업만이살길3
    Python
    렙업만이살길2
    후킹
    밀초
    hopper disassembler 염병
    Cpython
    역대급 병크
    밀초 채팅 버그
    렙업만이살길1
    WIPI emulator
    WIPI 에뮬레이터
    github wie
    c++
    리버싱 기법
    cpython-internals
    상남자의 OS
    밀크초코 채팅
    BiDi
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
minmoong
MacType과 noMeiryoUI를 사용할 때 Pretendard JP가 적용 안되는 문제 (해결 방법)
상단으로

티스토리툴바