Repository navigation
Releases: kyh0703/jetbatang
Release list
JetBatang NF v1.6.0 — 가는 굵기 한글·굵은 기호 수정
변경
-
가는 굵기의 한글이 실제로 가늘어졌어요. Thin·ExtraLight·Light 의 한글·가나가 Regular 굵기 그대로라 가는 라틴 옆에서 한글만 진했어요. 이제 한글 세로획이 같은 굵기 라틴의 0.91 배(Regular 와 같은 비율)가 되도록 획을 깎아요.
굵기 라틴 세로획 한글 세로획 v1.5.0 → v1.6.0 Thin 50 82 → 46 ExtraLight 66 82 → 61 Light 79 82 → 72 깎으면 획이 끊기는
퐪뛌㎯같은 글자 열네~열여덟 자는 Regular 굵기로 남고,㎡ 『 ぁ같은 글자는 덜 깎여요. -
Bold·ExtraBold 의
① ⑧ ⑫ ⓐ속공간이 다시 열렸어요. 1칸에 줄여 넣은 KS X 1001 기호를 한글만큼 불려서 숫자가 원에 붙거나 속공간이 막혔어요. 줄인 비율만큼 덜 불리고, 그래도 붙으면 더 덜 불려요.⑬ ⒀은 ExtraBold 에서 Regular 굵기로 남아요. -
ゕ ゖ ゛ ゜를 RIDIBatang 모양으로 그려요. 원본에 없어 터미널이 다른 글꼴의 고딕 가나로 대신 그렸어요. 아직 빠진 가나는ゝ ゞ ヽ ヾ ゟ ゠ ヿ일곱 자예요. -
합친 외곽선을 TrueType 방향으로 저장해요. 일부 굵은 글자에서 방향이 거꾸로 저장되던 문제예요.
-
소스 빌드가 굵기 열여섯 종을 동시에 만들어 16 코어 기준 23분에서 8분으로 줄었어요.
JOBS=4 ./build.sh처럼 동시 개수를 줄일 수 있어요.
Regular·Italic 의 한글은 v1.5.0 과 같아요. 가는 굵기 파일은 깎은 외곽선의 점이 늘어 커졌어요(Thin 9.7MB → 13.6MB, Light 9.8MB → 14.9MB, 전체 ZIP 57MB → 62MB).
다운로드와 설치
- 전체 설치:
JetBatangNF-all.zip을 받아 압축을 풀어 주세요. 글꼴 16종,install-windows.ps1,LICENSE가 들어 있어요. - 선택 설치: 필요한 TTF만 받아도 돼요. 스크립트를 쓰려면 별도 자산인
install-windows.ps1도 받아 같은 폴더에 두세요. - Windows Terminal 권장: 받은 TTF를 선택해 우클릭 → 모든 사용자용으로 설치. 관리자 승인이 필요해요. 기존 JetBatang NF 는 먼저 제거하고, 글꼴을 쓰는 앱과 터미널을 모두 닫은 뒤 설치하세요.
- 동봉 PowerShell 스크립트는 현재 사용자 계정용 설치·제거만 지원해요. 사용자 전용 설치에는 Windows의 알려진 글꼴 처리 문제가 있어요.
- 설치한 판은 글꼴 정보의 버전이
Version 1.6.0인지로 확인하세요.
검증
- 회귀 검사 30/30 통과(가는 굵기의 한글·라틴 굵기 비율, 1칸 기호의 속공간 수, 깎은 결과가 원래 외곽선을 넘지 않는지 포함).
- OTS 글꼴 검증 16/16 통과, fontbakery 결과 v1.5.0 과 같음.
- 깎은 Thin 이 같은 위치의 Regular 밖으로 칠하는 넓이 최대 2.7 단위²(좌표 반올림 범위).
- Windows GDI+·WPF·Chromium 렌더링과 Windows Terminal 11pt 실화면에서 v1.5.0 과 나란히 비교.
JetBatang NF v1.5.0 — NFD·한국어 기호 지원
변경
- 현대 한글의 NFD 조합을 지원해 분해된 한글 파일명을 표시해요. 현대 조합 자모 67개와
ccmp조합 규칙을 추가했어요. - 가나 결합 탁점·반탁점(
U+3099,U+309A)을 지원하고, 결합 부호가 커서를 밀지 않도록 했어요. - KS X 1001의 한자를 제외한 문자·기호를 자체 글꼴로 표시해요. 한 칸 기호의 크기와 위치도 맞췄어요.
- 한 칸 로마 숫자와
₩ ℃ ℉를 대문자 높이·기준선에 맞추고, 좁혀 넣은 로마 숫자의 굵은 획이 겹치는 현상을 줄였어요. - 글꼴 16종의 버전 정보를
Version 1.5.0으로 통일했어요. 소스 빌드는VERSION=1.5.0 ./build.sh처럼 버전을 명시해야 해요. - ZIP에 Windows 설치 스크립트와 라이선스를 함께 넣었어요. Windows PowerShell 5.1의 한글 인코딩과 압축을 푼 폴더의 글꼴 검색도 수정했어요.
다운로드와 설치
- 전체 설치:
JetBatangNF-all.zip을 받아 압축을 풀어 주세요. 글꼴 16종,install-windows.ps1,LICENSE가 들어 있어요. - 선택 설치: 필요한 TTF만 받아도 돼요. 스크립트를 쓰려면 별도 자산인
install-windows.ps1도 받아 같은 폴더에 두세요. - Windows Terminal 권장: 받은 TTF를 선택해 우클릭 → 모든 사용자용으로 설치. 관리자 승인이 필요해요. 기존 현재 사용자용 JetBatang NF가 있다면 먼저 제거해 중복 등록을 피하세요.
- 동봉 PowerShell 스크립트는 현재 사용자 계정용 설치·제거만 지원해요. 모든 사용자용 설치 스크립트가 아니에요. 사용자 전용 설치에는 Windows의 알려진 글꼴 처리 문제가 있어 파일 조회 실패나 Terminal 종료가 발생할 수 있어요.
- 업데이트 뒤에는 글꼴을 사용하는 앱과 터미널을 완전히 종료하고 다시 열어 주세요.
- Linux·macOS 설치와 GDI 앱의 가족 이름은 README를 참고하세요.
검증
- 회귀 검사 24/24 통과.
main통합 후에도 같은 24개 검사를 통과했어요. - OTS 글꼴 검증 16/16 통과.
- ZIP CRC, 구성 파일, 원본 바이트 일치 확인.
- Windows 모든 사용자용 설치에서 16종의 파일 해시, WPF의 굵기·이탤릭 매칭, 글자·결합 부호의 advance 확인.
- Windows Terminal의 Regular·ExtraBold, 12pt·24pt 실화면에서 NFC/NFD 표시 일치 확인.
JetBatang NF v1.4.0 — 빠지거나 잘못 그려진 글자 수정
빠지거나 잘못 그려진 글자를 바로잡았습니다. 굵기 열여섯 종 구성은 v1.3.0 과 같습니다.
바뀐 글자
| 글자 | v1.3.0 | v1.4.0 |
|---|---|---|
₩ (U+FFE6) |
역슬래시 \ 모양 |
₩ 모양 |
₩ (U+20A9) |
없음, 다른 글꼴이 대신 그림 | 1칸, 숫자와 같은 기준선 |
㎡ ㎏ ㎞ 등 CJK 호환 문자 80 자 |
없음, 다른 글꼴이 대신 그림 | 2칸 |
ゔ ヷ ヸ ヹ ヺ |
없음 | ヴ 의 탁점을 얹어 만듦 |
⚡ ﹢ |
2칸 중 왼쪽 칸에 치우침 | 2칸 가운데 |
₩: RIDIBatang 이 전각 원 기호 자리에 전각 역슬래시 모양을 걸어 두었습니다.₩: 베이스(JetBrains Mono)에 없어서 RIDIBatang 의₩를 가져왔습니다. 굵기·기울기마다
베이스W와 같은 자리에 들어갑니다.☰는 Unicode 16 부터 2칸이지만, 아직 1칸으로 세는 터미널에서 옆 글자를 덮지 않게
그대로 두었습니다.
겹친 채 남던 스무 자
v1.3.0 에서 외곽선을 합치지 못해 겹친 채 둔 스무 자가 이제 모두 합쳐집니다. macOS 에서
가장자리가 번지던 글자들입니다.
ず 훙 휑 흉 흼 힁 역 엮 염 엿 옆 옘 옛 궿 뀋 뉗 뒣 뮇 훟 s
알고리즘이 다른 두 경계 연산의 결과가 끝까지 어긋나면, 겹친 복사본을 nonzero 규칙으로
직접 칠해 보고 그와 같게 칠해지는 쪽을 씁니다. 두 경계 연산 가운데 한쪽은 늘 맞았고,
틀린 쪽은 칠해진 넓이의 5e-4 넘게 어긋났습니다.
저장소에서 글꼴 파일을 뺐습니다
빌드할 때마다 이력이 수십 MB 씩 커져서, 글꼴은 이제 Releases 로만 배포합니다.
Windows 설치 스크립트를 쓰려면 받은 ttf 를 저장소의 fonts/ 에 넣고 실행하세요.
받기
JetBatangNF-all.zip— 열여섯 종 전부- 낱개
ttf— 필요한 굵기만
알려진 한계
- 한자가 없습니다. RIDIBatang 에 한자 글리프가 없습니다.
- 가나 중
ゕ ゖ ゛ ゜ ゝ ゞ ヽ ヾ등 열세 자가 없습니다. - Thin·ExtraLight·Light 의 한글·가나는 Regular 와 같은 굵기입니다. 획을 불릴 수는 있어도
깎을 수는 없습니다. - 13px 아래에서는 굵은 쪽 한글의 속공간이 메워집니다.
뷁부터 뭉갭니다. ※ ★ ① ℃같은 폭이 애매한 기호는 넣지 않았습니다. 터미널이 다른 글꼴로 그립니다.
JetBatang NF v1.3.0 — 메워지던 속공간 수정
굵은 한글의 속공간이 까맣게 메워지던 문제를 고쳤습니다. 굵기 열여섯 종 구성은 v1.2.0 과 같습니다.
메워지던 속공간
v1.2.0 에서 macOS 번짐을 없애려고 겹친 외곽선을 하나로 합쳤는데, 그 합치는 과정이
일부 글자를 조용히 망가뜨리고 있었습니다.
| v1.2.0 | v1.3.0 | |
|---|---|---|
이탤릭 아 야 |
ㅇ 이 까만 덩어리 | 정상 |
정체 놓 읗 |
ㅎ 동그라미가 납작하게 뭉갬 | 정상 |
정체 회 촹 |
획이 삐져나오고 ㅇ 이 메움 | 정상 |
굵은 한글은 원본 외곽선을 여덟 방향으로 옮겨 겹친 것입니다. 이 복사본들은 서로
가로·세로 직선이 같은 높이에서 collinear 로 만나는데, skia 의 경계 연산이 이런
입력에서 드물게 속공간을 먹어 버립니다. 예외를 던지지 않고 그럴듯한 외곽선을
내놓기 때문에 결과만 보고는 알 수 없었습니다.
교차검증
이제 알고리즘이 다른 두 경로(simplify 와 OpBuilder)로 각각 합쳐, 칠해지는
넓이가 같을 때만 그 결과를 씁니다. 어긋나면 복사본을 눈에 안 보일 만큼 밀어
한 번 더 해 보고, 그래도 어긋나면 합치지 않고 겹친 채로 둡니다. 겹친 채 둔
글자는 macOS 에서 가장자리가 번지지만 모양은 맞습니다.
겹친 채 둔 글자는 굵기 네 단계 × 정체·이탤릭을 통틀어 스무 자입니다.
ず 훙 휑 흉 흼 힁 역 엮 염 엿 옆 옘 옛 궿 뀋 뉗 뒣 뮇 훟 s
검증
여덟 방향으로 겹쳐 놓은 글리프를 그대로 그린 것이 정답입니다. 합친 외곽선을 그것과
200px 로 렌더해 픽셀 단위로 맞춰 봤습니다. Medium·SemiBold·Bold·ExtraBold 의
정체·이탤릭 여덟 종, 각 11,613 자, 합쳐 92,904 자에서 어긋난 글자는 없습니다.
받기
JetBatangNF-all.zip— 열여섯 종 전부- 낱개
ttf— 필요한 굵기만
알려진 한계
- 한자가 없습니다. RIDIBatang 에 한자 글리프가 없습니다.
- 가나 중
ゔ ゕ ゖ ゛ ゜ ゝ ゞ ヷ ヸ ヹ ヺ ヽ ヾ등 열아홉 자가 없습니다. - Thin·ExtraLight·Light 의 한글·가나는 Regular 와 같은 굵기입니다. 획을 불릴
수는 있어도 깎을 수는 없습니다. - 13px 아래에서는 굵은 쪽 한글의 속공간이 메워집니다.
뷁부터 뭉갭니다.
JetBatang NF v1.2.0 — 굵은 한글 번짐 수정
굵은 한글이 macOS 에서 번져 보이던 문제를 고쳤습니다. 굵기 열여섯 종 구성은 v1.1.0 과 같습니다.
macOS 번짐 수정
굵은 한글은 원본 외곽선을 여덟 방향으로 옮겨 겹친 composite 글리프였습니다. FreeType 은
이걸 깔끔하게 그리지만 macOS CoreText 는 겹친 가장자리마다 안티앨리어싱을 따로 해서
Ghostty·iTerm2·Terminal.app 같은 터미널에서 유령이 겹친 듯 흐릿하게 보였습니다.
이제 빌드할 때 겹친 외곽선을 하나로 합칩니다(skia-pathops). 라틴 Bold 처럼 선명합니다.
굵기 비율 조정
가로 굵기 증가량을 라틴 세로획이 Regular 보다 늘어난 만큼(9 / 18 / 36 / 56)으로 맞추고,
세로 방향은 그 0.4 배를 줍니다. 세로획만 굵어지고 가로획은 흐리던 얼룩이 줄어들고,
능 동 닙 처럼 가로획이 쌓이는 글자의 속공간은 유지됩니다.
파일 크기
합친 외곽선은 실제 점을 담으므로 Medium 이상 여덟 종은 10MB 대에서 15~16MB 로 커졌습니다.
Regular 이하 여덟 종은 그대로입니다.
빌드
pip install fonttools skia-pathops 가 필요합니다.
JetBatang NF v1.1.0 — 히라가나·가타카나
히라가나·가타카나를 넣었습니다. 굵기 열여섯 종은 v1.0.0 과 같습니다.
가나 170 자
RIDIBatang 에 히라가나 83 자, 가타카나 87 자가 있는데 여태 가져오지
않았습니다. 이제 한글과 똑같이 advance 1200 으로 고정해서 넣습니다.
터미널 격자가 그대로 맞고, 굵기도 한글과 같이 따라옵니다.
ひらがな カタカナ コーヒー データ サーバー
한글과 かな가 섞인 주석 한 줄
참고로 같은 방식의 jetendard 는
is_cjk() 에 가나 구간이 빠져 있어, Pretendard 에 가나가 있는데도 쓰지
않습니다.
장음부호 ー
RIDIBatang 에 ー(U+30FC) 가 없어서 コーヒー 가 コ□ヒ□ 로 깨졌습니다.
―(U+2015) 가 같은 높이·같은 굵기의 가로 전폭 막대라 그 글리프를 씁니다.
| 글리프 | advance | bbox |
|---|---|---|
― U+2015 |
824 | (6, 309, 818, 359) |
- U+FF0D |
952 | (288, 288, 665, 352) — 너무 짧아 안 씀 |
build.py 의 ALIASES 에 모아 두었습니다.
고친 것
install-windows.ps1 이 설치를 다 끝낸 뒤 검증 단계에서 죽는 문제를 고쳤습니다.
가족이 들고 있는 typeface 를 전부 열어 보는 방식이었는데, WPF 글꼴 캐시에 예전
등록이 남아 있으면 이미 없는 파일을 가리켜 FileNotFoundException 이 났습니다.
이제 방금 넣은 파일만 직접 엽니다.
받기
JetBatangNF-all.zip— 열여섯 종 전부- 낱개
ttf— 필요한 굵기만
알려진 한계
- 한자가 없습니다. RIDIBatang 에 한자 글리프가 없습니다.
- 가나 중
ゔ ゕ ゖ ゛ ゜ ゝ ゞ ヷ ヸ ヹ ヺ ヽ ヾ등 열아홉 자가 없습니다. - Thin·ExtraLight·Light 의 한글·가나는 Regular 와 같은 굵기입니다. 획을 불릴
수는 있어도 깎을 수는 없습니다. - 굵은 쪽은 가짜 볼드, 이탤릭은 가짜 이탤릭입니다.
JetBatang NF v1.0.0 — 굵기 열여섯 종
JetBrainsMono Nerd Font Mono 에 RIDIBatang 한글을 합친 글꼴입니다.
굵기 여덟 단계 × 정체·이탤릭, 모두 열여섯 종입니다.
한글도 굵어집니다
RIDIBatang 은 세로획 80 짜리 한 굵기만 제공합니다. 그래서 여태 Bold 를
지정해도 라틴과 아이콘만 굵어졌습니다.
이제 한글 외곽선을 여덟 방향으로 조금씩 옮겨 겹칩니다. TrueType 은 nonzero
winding 규칙이라 겹친 부분이 합집합으로 칠해져서, 경계 연산 없이 획이
두꺼워집니다. 겹치는 판은 composite 글리프로 참조만 하므로 점 데이터가 늘지
않습니다.
| 굵기 | 라틴 세로획 | 한글 세로획 |
|---|---|---|
| Thin | 50 | 82 |
| ExtraLight | 66 | 82 |
| Light | 79 | 82 |
| Regular | 90 | 82 |
| Medium | 99 | 91 |
| SemiBold | 108 | 100 |
| Bold | 125 | 117 |
| ExtraBold | 150 | 140 |
1000 upem 기준, 한 의 세로획입니다.
Regular 보다 가는 쪽은 만들 수 없습니다. 획을 불릴 수는 있어도 깎을 수는
없어서, Thin·ExtraLight·Light 의 한글은 Regular 와 같은 굵기이고 라틴만
가늘어집니다.
받기
JetBatangNF-all.zip— 열여섯 종 전부- 낱개
ttf— 필요한 굵기만
설치
터미널 글꼴을 JetBatang NF 로 지정하면 됩니다.
- Windows — 저장소를 받아
powershell -ExecutionPolicy Bypass -File install-windows.ps1
파일 복사와 레지스트리 등록만 하는 방식은 쓰지 마세요. Alacritty 가 죽습니다. - Linux —
~/.local/share/fonts/에 넣고fc-cache -fv - macOS —
~/Library/Fonts/에 넣기
Regular·Italic·Bold·Bold Italic 이 아닌 굵기는 style 에 SemiBold 처럼
지정합니다. 자세한 것은 README 의 굵기 구성
을 보세요.
알려진 한계
- 굵은 쪽 한글은 가짜 볼드입니다. 13px 아래에서는
뷁같은 복잡한 글자의
속공간이 메워집니다. - 이탤릭 한글은 가짜 이탤릭입니다.
- 한자가 없습니다. RIDIBatang 에 한자 글리프가 없습니다.