요약
D2 Coding은 한글과 영문, 숫자, 기호가 함께 있는 코드에서도 일정한 간격과 높은 가독성을 유지하도록 만든 코딩 전용 글꼴입니다.
이번 1.4.0에서는 기존의 빗금이 들어간 숫자 0 대신 점이 들어간 0을 선택해서 사용할 수 있는 기능을 추가했습니다. 일부 크기에서 글자가 기준선보다 한 픽셀 위에 표시되던 문제도 수정했으며, 마침표의 의미를 다르게 보이게 할 수 있었던 리거처 네 종류를 제거했습니다.
최근 공개한 1.3.4와 1.3.5의 개선 사항도 모두 포함되어 있습니다. 한글 주석이 포함된 줄에서도 코딩 리거처가 적용되며, Keynote에서 줄 끝에 불필요한 기호가 표시되던 문제가 해결되었습니다. 터미널에서 폭이 맞지 않던 기호 20자와 위첨자, 아래첨자, 분수 문자도 개선했습니다.
다운로드 : https://github.com/naver/d2-coding-font/releases/tag/VER1.4.0
D2 Coding 미리 보기 : https://naver.github.io/d2-coding-font/
기존 버전이 설치되어 있다면 먼저 제거한 뒤 새 버전을 설치해 주세요. 글꼴을 설치한 다음에는 사용 중인 에디터나 터미널을 다시 실행해야 새 버전이 적용될 수 있습니다.
1. 점이 들어간 숫자 0 추가
D2 Coding의 기본 숫자 0에는 영문 대문자 O와 쉽게 구분할 수 있도록 빗금이 들어가 있습니다.
1.4.0에서는 기존의 빗금이 들어간 0과 함께, 가운데에 점이 들어간 0을 선택해서 사용할 수 있습니다. 점이 들어간 0은 기본적으로 비활성화되어 있으며, OpenType의 cv01 기능을 켜면 적용됩니다. cv01을 지원하지 않고 스타일 세트만 제공하는 애플리케이션에서는 ss01 기능을 사용할 수 있습니다.
점이 들어간 0은 기존 숫자 0의 외곽선과 너비, 세로 방향 힌팅을 유지하므로 다른 숫자와 동일하게 정렬됩니다. 리거처 글꼴에서도 다른 리거처 기능에 영향을 주지 않고 사용할 수 있습니다.
Visual Studio Code에서는 다음과 같이 설정할 수 있습니다.
"editor.fontLigatures": "'cv01'"
리거처를 끄고 점이 들어간 0만 사용하려면 다음과 같이 설정합니다.
"editor.fontLigatures": "'calt' off, 'liga' off, 'cv01'"
Windows Terminal에서는 글꼴 설정에 다음 기능을 추가합니다.
"font": {
"face": "D2Coding",
"features": {
"cv01": 1
}
}
D2 Coding 미리 보기 사이트에서도 Dotted zero 옵션을 이용해 두 형태를 비교할 수 있습니다.
https://naver.github.io/d2-coding-font/
2. 일부 글자의 기준선 정렬 개선
FreeType 힌팅을 사용하는 환경에서 일부 글자가 주변 문자보다 한 픽셀 위에 표시되는 문제가 있었습니다.
Regular 글꼴에서는 i와 일부 키릴 문자를 포함한 27개 글자가 영향을 받았습니다. Bold 글꼴에서는 악센트가 있는 문자와 그리스 문자, 키릴 문자 등을 포함한 87개 글자가 일부 크기에서 기준선보다 한 픽셀 위에 표시됐습니다.
1.4.0에서는 9에서 29ppem 사이의 해당 크기에 힌팅 보정을 적용해 글자들이 주변 문자와 같은 기준선 위에 놓이도록 수정했습니다.
글자의 외곽선은 변경하지 않았으며, 문제가 없었던 다른 크기의 표시 결과도 기존과 같습니다.
3. 마침표의 의미를 바꾸던 리거처 제거
1.4.0에서는 다음 네 가지 문자 조합의 리거처를 제거했습니다.
.=
.-
{.
.}
기존 리거처는 이 조합에 포함된 마침표를 가운데점 높이로 올려서 표시했습니다. 하지만 마침표 자체가 의미를 갖는 코드에서는 원래 문자를 오해하게 만들 수 있었습니다.
예를 들어 다음과 같은 코드가 영향을 받을 수 있습니다.
1.-x
{{.}}
{.inline.}
.-mt-2
각각 숫자와 연산자가 결합된 표현, Go 템플릿, Nim pragma, CSS 선택자에서 실제 마침표의 위치와 의미를 정확하게 보여 줄 필요가 있습니다.
1.4.0부터 이 네 조합은 리거처로 변환하지 않고 입력한 문자를 그대로 표시합니다.
.., ..., ..<를 비롯한 다른 코딩 리거처는 기존과 동일하게 유지됩니다.
4. 한글이 포함된 줄에서도 코딩 리거처 적용
1.3.5부터는 다음과 같이 한글 주석이 포함된 줄에서도 코딩 리거처가 적용됩니다.
<!-- 주석 -->
일부 텍스트 처리 엔진은 한글 영역을 처리할 때 OpenType의 calt 기능을 비활성화합니다. 이 때문에 기존에는 리거처 글꼴을 사용하더라도 위 예문의 <!--와 -->에 리거처가 적용되지 않을 수 있었습니다.
코딩 리거처를 calt뿐 아니라 liga 기능에도 동일하게 등록해 한글 주석이 포함된 줄에서도 리거처가 적용되도록 개선했습니다.
리거처를 사용하지 않으려면 calt와 liga 기능을 모두 비활성화해야 합니다. Visual Studio Code에서는 다음 설정으로 두 기능을 함께 끌 수 있습니다.
"editor.fontLigatures": false
5. Keynote에서 줄 끝에 나타나던 기호 제거
Keynote에서 문단 끝에 상자 안의 원처럼 보이는 기호가 나타나는 문제가 있었습니다.
D2 Coding에 포함된 DOS 방식의 제어 문자 그림이 줄 바꿈 등의 제어 코드에 연결되어 있었고, Keynote가 줄 바꿈 문자를 글리프로 표시하면서 발생한 현상입니다.
1.3.5부터는 U+0001부터 U+001F까지의 제어 문자 가운데 캐리지 리턴인 U+000D를 제외한 문자의 매핑을 제거했습니다. 탭 문자도 더 이상 매핑하지 않습니다. 일반 공백 문자는 기존 글리프를 그대로 유지합니다.
제어 문자 그림은 글꼴에 남아 있지만 문자 코드에 연결되지 않으므로, Keynote에서 문단 끝에 불필요한 기호가 표시되지 않습니다.
6. 한글과 다른 폭으로 표시되던 기호 20자 개선
1.3.4에서는 터미널에서 폭이 맞지 않던 다음 기호 20자를 수정했습니다.
◽ ◾ ☔ ☕ ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ♿ ⚓ ⚡ 〜
이 기호들은 유니코드에서 동아시아 전각 문자로 분류되지만, 기존 D2 Coding에서는 영문 한 글자와 같은 반각 너비로 그려졌습니다.
터미널은 이 문자들에 두 칸을 할당하지만 글꼴의 실제 너비는 한 칸이어서, 기호가 왼쪽에 치우쳐 보이거나 출력의 정렬이 어긋날 수 있었습니다.
이제 해당 문자들은 한글 한 글자와 같은 너비를 사용합니다. 기호 자체의 크기는 유지하고 넓어진 영역의 가운데에 오도록 배치했습니다.
7. 위첨자, 아래첨자와 분수 문자 개선
위첨자, 아래첨자와 분수 문자도 D2 Coding의 다른 숫자와 자연스럽게 어울리도록 다시 만들었습니다.
기존 문자들은 주변 숫자보다 작고 가늘게 보였으며, Regular와 Bold 글꼴에서 같은 윤곽선을 사용했습니다. 이 때문에 Bold 글꼴에서도 해당 문자들이 Regular 굵기로 표시되는 문제가 있었습니다.
새 버전에서는 기존의 ¹, ², ³과 ¼, ½, ¾ 문자를 기준으로 비율과 위치를 조정했습니다. Bold 글꼴에서는 위첨자, 아래첨자, 분수와 분수선도 주변 문자에 맞는 굵기로 표시됩니다.
더 나은 D2 Coding을 위해
이번 업데이트에서는 숫자 0의 형태를 선택할 수 있는 기능을 추가하고, 글자의 기준선과 코딩 리거처를 더 정확하게 다듬었습니다. 최근 버전에서 개선한 한글 리거처, 제어 문자 표시, 전각 기호와 분수 문자도 모두 포함되어 있습니다.
D2 Coding은 오픈 소스로 공개되어 있습니다. 사용 중 문제를 발견했거나 개선 의견이 있다면 GitHub 저장소에 이슈를 남겨 주세요.
D2 Coding 미리 보기 : https://naver.github.io/d2-coding-font/
기존 D2 Coding 소개 : https://d2.naver.com/news/6492529
D2 Coding을 사용해 주시고 개선에 참여해 주신 모든 분께 감사드립니다.