5x5는 꽤 좋고 3x5도 나쁘지 않지만, 둘 다 ASCII 전체를 다 갖추진 못함
실제 크기도 약간 착시가 있는데, 글자 간격까지 넣으면 사실상 6x6이나 4x6 그리드가 필요함
그래서 나는 https://github.com/fcambus/spleen의 Spleen을 꽤 좋아함
여기엔 ASCII 전체를 지원하는 5x8 폰트가 있고, 대부분 글리프는 사실상 4x8에 가로 간격이 포함된 형태임
내 프로젝트에서는 이를 수정해서 모든 글리프를 4x8로 맞췄고, 결과적으로 5x9 그리드에서 각 글자 사이에 가로·세로 1픽셀 간격을 항상 보장하면서도 보기 좋게 렌더링할 수 있었음
1980년대 초 Apple II용 워드프로세서 중에는 기본 40컬럼 화면에서 그래픽 모드 5x5 폰트를 써서 60컬럼을 구현한 것도 실제로 있었고, 그게 판매 포인트였음
하드웨어로 해결하려면 80 column card를 사서 제대로 된 80컬럼 텍스트를 쓰면 됐고, 다만 모니터가 이를 받아줘야 했음
작성자가 이걸 본다면, 소문자 t는 가로획 위에 픽셀 하나를 더 올리는 편이 좋겠음
지금 형태는 대문자 T와 너무 비슷하게 보임
그래도 전체적으로는 아주 잘 만들었고 공유해줘서 고마움
나라면 소문자 t를 이런 식으로 만들겠음
x
xxx
x
xx
소문자 l도 더 이렇게 생기지 않을까 싶었음
xx
x
x
x
xx
4x4로는 E, M, W를 제대로 그리기 부족하다고 했는데, 사실 5x5도 e를 제대로 그리기엔 부족함
소문자를 대문자보다 낮게 만들고 싶다면 세로 픽셀이 최소 6개는 필요하고, 디센더까지 제대로 넣으려면 최소 7개는 있어야 함
엄밀히는 g와 y가 베이스라인에 걸치면서도 수평 디센더를 구분하려면 8개가 더 낫지만, 여기선 타협 가능해 보임
그리고 실제로는 글자 아래와 옆에 눈에 띄는 간격을 두려면 결국 문자당 최소 8x6 픽셀은 필요함
폰트를 그렇게까지 작게 만들 수 있다면, 내가 가장 먼저 포기할 속성은 소문자 높이가 대문자보다 낮아야 한다는 규칙일 것 같음
예시의 real pixels 쪽 e가 오히려 더 좋아 보임
내 눈에는 윗부분 빈 공간이 어느 정도 메워져서 읽히고, 긴 문장 안에서는 문맥으로 충분히 파악될 듯함
물론 완벽하진 않고, 위쪽의 확대된 깔끔한 픽셀 예시에선 어색함이 더 두드러지긴 함
픽셀을 on/off 두 상태만 쓰지 않고 다단계 그레이스케일을 쓰면 더 작은 크기에서도 읽을 수 있는 텍스트를 만들 수 있음
다만 여기서 중요한 건 letters가 아니라 text라는 점임
글자 하나하나는 너무 흐려도, 사람이 문맥으로 추론해서 읽게 되는 방식임
심지어 이 방법엔 특별히 설계된 폰트도 꼭 필요하지 않음
예시: https://imgur.com/a/text-80-characters-per-line-240-pixels-wide-AlYrnSS
여기선 글자 사이 간격까지 포함해도 문자당 가로 평균 3픽셀 정도밖에 안 됨
LINC 미니컴퓨터의 운영체제 LAP6에는 4x5 폰트가 들어 있었지만 소문자는 없었음
예전에 C64에서 소프트웨어로 80컬럼을 구현하려는 작업이 떠오름
3x7 픽셀 그리드를 쓰되 한 행과 한 열은 간격용으로 빼는 방식이었고, 실제 상용 제품에도 일부 들어갔음 https://www.pagetable.com/?p=901
4×8 문자셋을 읽기 좋고 보기 좋게 만드는 건 쉽지 않고, 글자 사이에 1픽셀 간격이 필요해서 실질적으로는 글자 폭이 3픽셀밖에 안 됨
그래서 M이나 N 같은 문자가 특히 까다로움
Hacker News 의견들
서브픽셀 렌더링을 활용하면 1x5도 충분히 가능함 https://www.msarnoff.org/millitext/
[2x5-HP-Z24n-G2] https://i.imgur.com/yLyrpfg.jpeg
[1x5-HP-Z24n-G2] https://i.imgur.com/Z7kH005.jpeg
[2x5-Innolux-N156HCA-GA3] https://i.imgur.com/F4Ypxwj.jpeg
[1x5-Innolux-N156HCA-GA3] https://i.imgur.com/etkot5o.jpeg
[1] https://jp.ext.hp.com/monitors/business/z_z24n_g2/
[2] https://www.panelook.com/N156HCA-GA3__15.6__overview_33518.html
그리고 내 화면이 엄청 더럽다는 것도 같이 알게 됨
5x5는 꽤 좋고 3x5도 나쁘지 않지만, 둘 다 ASCII 전체를 다 갖추진 못함
실제 크기도 약간 착시가 있는데, 글자 간격까지 넣으면 사실상 6x6이나 4x6 그리드가 필요함
그래서 나는 https://github.com/fcambus/spleen의 Spleen을 꽤 좋아함
여기엔 ASCII 전체를 지원하는 5x8 폰트가 있고, 대부분 글리프는 사실상 4x8에 가로 간격이 포함된 형태임
내 프로젝트에서는 이를 수정해서 모든 글리프를 4x8로 맞췄고, 결과적으로 5x9 그리드에서 각 글자 사이에 가로·세로 1픽셀 간격을 항상 보장하면서도 보기 좋게 렌더링할 수 있었음
하드웨어로 해결하려면 80 column card를 사서 제대로 된 80컬럼 텍스트를 쓰면 됐고, 다만 모니터가 이를 받아줘야 했음
대부분의 초소형 폰트는 1:1 배율에서 얼핏 읽기엔 정말 끔찍한 수준임
예전에 게임 모드를 만들면서 아주 작고 촘촘한 폰트가 필요해서 3x3, 3x5, 심지어 2x5까지 많이 써봤는데 전부 읽기 너무 힘들었음
결국 zephram이 만든 Gremlin-3x6를 찾았고, 높이가 1픽셀 더 크긴 해도 가로로는 여전히 매우 컴팩트했음
무엇보다 표준 라틴 문자의 구분이 잘 되고, 크게 확대하지 않아도 읽을 만했음
아쉽게도 zephram이 FontStruct 계정을 지우면서 폰트도 전부 사라졌지만, 내 모드 저장소에 사본과 CC0 라이선스를 남겨뒀고 실제 렌더링은 스크린샷에서 볼 수 있음
[0] - https://fontstruct.com/fontstructions/show/1488093
[1] - https://codeberg.org/janAkali/isaac-extended-icons-mod/src/branch/master/assets/fonts
[2] - https://codeberg.org/janAkali/isaac-extended-icons-mod/media/branch/master/assets/screenshots/screenshot.png
CJK 문자 쪽에서도 비슷한 논의가 있었음
https://chinese.stackexchange.com/questions/16669/lowest-pixel-resolution-needed-to-support-chinese
작성자가 이걸 본다면, 소문자 t는 가로획 위에 픽셀 하나를 더 올리는 편이 좋겠음
지금 형태는 대문자 T와 너무 비슷하게 보임
그래도 전체적으로는 아주 잘 만들었고 공유해줘서 고마움
x
xxx
x
xx
xx
x
x
x
xx
4x4로는 E, M, W를 제대로 그리기 부족하다고 했는데, 사실 5x5도 e를 제대로 그리기엔 부족함
소문자를 대문자보다 낮게 만들고 싶다면 세로 픽셀이 최소 6개는 필요하고, 디센더까지 제대로 넣으려면 최소 7개는 있어야 함
엄밀히는 g와 y가 베이스라인에 걸치면서도 수평 디센더를 구분하려면 8개가 더 낫지만, 여기선 타협 가능해 보임
그리고 실제로는 글자 아래와 옆에 눈에 띄는 간격을 두려면 결국 문자당 최소 8x6 픽셀은 필요함
내 눈에는 윗부분 빈 공간이 어느 정도 메워져서 읽히고, 긴 문장 안에서는 문맥으로 충분히 파악될 듯함
물론 완벽하진 않고, 위쪽의 확대된 깔끔한 픽셀 예시에선 어색함이 더 두드러지긴 함
픽셀을 on/off 두 상태만 쓰지 않고 다단계 그레이스케일을 쓰면 더 작은 크기에서도 읽을 수 있는 텍스트를 만들 수 있음
다만 여기서 중요한 건 letters가 아니라 text라는 점임
글자 하나하나는 너무 흐려도, 사람이 문맥으로 추론해서 읽게 되는 방식임
심지어 이 방법엔 특별히 설계된 폰트도 꼭 필요하지 않음
예시: https://imgur.com/a/text-80-characters-per-line-240-pixels-wide-AlYrnSS
여기선 글자 사이 간격까지 포함해도 문자당 가로 평균 3픽셀 정도밖에 안 됨
LINC 미니컴퓨터의 운영체제 LAP6에는 4x5 폰트가 들어 있었지만 소문자는 없었음
예전에 C64에서 소프트웨어로 80컬럼을 구현하려는 작업이 떠오름
3x7 픽셀 그리드를 쓰되 한 행과 한 열은 간격용으로 빼는 방식이었고, 실제 상용 제품에도 일부 들어갔음
https://www.pagetable.com/?p=901
4×8 문자셋을 읽기 좋고 보기 좋게 만드는 건 쉽지 않고, 글자 사이에 1픽셀 간격이 필요해서 실질적으로는 글자 폭이 3픽셀밖에 안 됨
그래서 M이나 N 같은 문자가 특히 까다로움
M, dotted zero를 포기하고 U/V/Y 구분도 약해지면 4x5나 3x5도 가능하다고 했는데, 나는 3x5도 충분히 실용적이라고 봄
https://robey.lag.net/2010/01/23/tiny-monospace-font.html