우리는 Solvespace의 텍스트 창과 속성 브라우저에 GNU Unifont을 사용함
실행 파일에 바로 내장되어 있어서 매우 유용했음. 일부 사용자는 설계에 CJK 문자를 포함하는데, 모든 플랫폼에서 그냥 잘 작동함
CAD의 홀 주석을 살펴보던 중, 카운터보어(counter-bore) 와 카운터싱크(counter-sink) 기호가 이미 Unifont에 포함되어 있어 놀라웠음
실험용 웹 버전은 여기서 볼 수 있음
웹 버전의 단순함이 정말 멋짐. Solvespace는 내가 가장 좋아하는 MCAD 프로그램으로, 빠르게 PCB 테스트용 지그를 만들 때 항상 먼저 찾는 도구임
기하가 단순할 때는 사용감이 매우 쾌적함
단지 폰트 선택만으로 이런 멋진 효과가 나오는 게 신기함. 물론 Unifont와 Unicode 전체에는 수많은 인류의 시간이 들어갔겠지만, 청동기 시대 CAD 엔지니어가 Linear A로 이름을 써도 문제없다는 발상이 마음에 듦
웹 버전이 정말 깔끔함. Solvespace는 기능은 제한적이지만 제약 조건을 표현할 때의 유연함과 즐거움이 압도적임
언젠가 코드에 들어가서 “제약을 생성할 수 없습니다”라는 모달 대화창을 대체해보고 싶음
다른 사람들을 위해 정리하자면, GNU Unifont은 비트맵 폰트임
BMP의 모든 코드 포인트에 고정된 글리프를 제공하고, 일부 다른 평면의 코드 포인트도 포함함
언어별 렌더링 지식 없이도 Unicode 텍스트를 편집할 수 있는 에디터에 유용함
다만 데바나가리 같은 복잡한 스크립트를 쓸 때는 형태 조합(shaping) 이 없어 실제 텍스트처럼 보이지 않음
여기서 BMP는 BitMap이 아니라 Unicode Basic Multilingual Plane을 의미함. 즉, 처음 65,536개의 코드 포인트 영역임
그럼 포인트 크기마다 별도의 파일이 있는 것인지 궁금함. 폰트에 대해 내가 아는 게 거의 없다는 걸 새삼 느낌
그 웹사이트의 첫 문장은 GNU Unifont이 무엇인지 설명해야 하지 않나 싶음. 아마 거의 모든 Unicode 코드 포인트를 포함한 단일 copyleft 폰트인 듯함
사실 두 번째와 세 번째 문장이 이미 정확히 설명하고 있음. BMP의 모든 인쇄 가능한 코드 포인트에 대한 글리프를 포함하고, 마지막 수단용 폰트로 적합함
다른 폰트에서 글리프를 찾지 못했을 때 문자를 표시해주는 역할임
“거의 모든”이 “모든”은 아님. 나는 희귀한 CJK 문자를 렌더링해야 하는 프로젝트가 있는데, Unifont에서는 제대로 표시되지 않음
대신 Jigmo 폰트를 사용했는데, CJK 글리프가 가장 완전했음
나도 처음엔 헷갈렸는데, “Home”을 눌러보니 링크가 랜딩 페이지가 아니라는 걸 깨달음
이런 식으로 첫 문장에서 설명이 부족한 오픈소스 프로젝트가 정말 많음
“GNU Unifont은 GNU 프로젝트의 일부이며 BMP의 모든 인쇄 가능한 코드 포인트에 대한 글리프를 포함한다”는 문장이 이미 충분히 명확하다고 생각함
멋짐! 어떤 크기로 출력했는지 궁금함. 주요 나선 주변의 드문드문한 한자들은 Unicode의 자연스러운 배치인지, 아니면 연출인지?
전체가 은하처럼 보이고, 이모지가 바깥쪽 가장자리에 정렬된 게 인상적이었음. 지구 이모지를 찾는 재미도 있었음
Unifont은 각 코드 포인트당 하나의 글리프만 저장함
그래서 복잡한 스크립트(Indic, Arabic 등) 는 제대로 렌더링되지 않음
이런 경우에는 OpenType 폰트를 사용해야 하며, Unifont은 어디까지나 fallback용 폰트로 적합함
폰트 사이트에는 종종 “Hello World” 같은 type specimen 미리보기 이미지가 있음. Unifont 페이지에도 그런 걸 추가하면 좋겠음
GNU라는 이름을 보면, 모든 면에서 최고는 아니더라도 사용자 존중 면에서는 거의 최고라고 느껴짐
나는 Unifont을 시스템 전체에 적용하고, Firefox에서는 유일한 폰트로 강제 사용함
웹 폰트 다운로드도 비활성화했고, CSUR(ConScript Unicode Registry)에 내가 만든 문자도 있음
Qt에서는 DPI 설정이 까다롭지만 QT_FONT_DPI=128로 해결됨. RimWorld 같은 게임에서도 Unifont만 쓰게 하고 싶음
왜 그렇게 사용하는지 궁금함
나도 설치해봤는데, HN을 200% 확대해야 읽을 수 있었음. XFCE에서는 그럭저럭 괜찮았음
나는 Firefox에서 예쁜 CJK 폰트를 쓰려면 Unifont을 제거해야 했음
폰트 폴백이 이상하게 Unifont을 우선 선택했기 때문임
해결하려면 Firefox 설정의 Language and Appearance → Fonts → Advanced로 들어가 각 스크립트별 폰트를 지정해야 함
그렇지 않으면 어떤 폰트가 선택될지 예측 불가함
나도 Firefox와 Chrome에서 Unifont 글리프가 보이지 않는 문제를 겪었음. nixpkgs 이슈 트래커에도 관련 보고가 있음
Noto Color Emoji에서도 비슷한 현상이 있었음. 폰트는 정말 미묘한 세계임
Hacker News 의견들
실행 파일에 바로 내장되어 있어서 매우 유용했음. 일부 사용자는 설계에 CJK 문자를 포함하는데, 모든 플랫폼에서 그냥 잘 작동함
CAD의 홀 주석을 살펴보던 중, 카운터보어(counter-bore) 와 카운터싱크(counter-sink) 기호가 이미 Unifont에 포함되어 있어 놀라웠음
실험용 웹 버전은 여기서 볼 수 있음
기하가 단순할 때는 사용감이 매우 쾌적함
언젠가 코드에 들어가서 “제약을 생성할 수 없습니다”라는 모달 대화창을 대체해보고 싶음
BMP의 모든 코드 포인트에 고정된 글리프를 제공하고, 일부 다른 평면의 코드 포인트도 포함함
언어별 렌더링 지식 없이도 Unicode 텍스트를 편집할 수 있는 에디터에 유용함
다만 데바나가리 같은 복잡한 스크립트를 쓸 때는 형태 조합(shaping) 이 없어 실제 텍스트처럼 보이지 않음
다른 폰트에서 글리프를 찾지 못했을 때 문자를 표시해주는 역할임
대신 Jigmo 폰트를 사용했는데, CJK 글리프가 가장 완전했음
The Mostly Complete Unicode Spiral
전체가 은하처럼 보이고, 이모지가 바깥쪽 가장자리에 정렬된 게 인상적이었음. 지구 이모지를 찾는 재미도 있었음
그래서 복잡한 스크립트(Indic, Arabic 등) 는 제대로 렌더링되지 않음
이런 경우에는 OpenType 폰트를 사용해야 하며, Unifont은 어디까지나 fallback용 폰트로 적합함
웹 폰트 다운로드도 비활성화했고, CSUR(ConScript Unicode Registry)에 내가 만든 문자도 있음
Qt에서는 DPI 설정이 까다롭지만
QT_FONT_DPI=128로 해결됨. RimWorld 같은 게임에서도 Unifont만 쓰게 하고 싶음폰트 폴백이 이상하게 Unifont을 우선 선택했기 때문임
그렇지 않으면 어떤 폰트가 선택될지 예측 불가함
Noto Color Emoji에서도 비슷한 현상이 있었음. 폰트는 정말 미묘한 세계임
https://github.com/remysucre/cuniform