brunch

You can make anything
by writing

C.S.Lewis

by Cylogic May 13. 2020

한글의 넓이 값

가변 넓이 값을 가지는 한글 만들기

조합형 코드, 완성형 코드.
조합 폰트, 완성형 폰트

예전의 한글은 한자와 같이 정방형 틀 안에 꽉 차게 디자인된 것이 정석이었다.

정방형 글꼴의 경우 만일 글자의 세로 수치가 1000이라면 가로 역시 1000만큼의 넓이를 갖는다.

넓이와 높이가 제각각인 한겨레결체와 정방형 신문체 글꼴


그러나 한글의 정방형 구조가 서서히 허물어져 가고 있는 지금은, 새로운 디자인의 한글을 수용할 수 있도록 가변 넓이를 가지는 한글의 구조가 만들어지고 있다.


아니, 과거에도 정방형 글꼴을 사용하고 싶지 않았을 수도 있다.

기계화 시대 이전에 한글이 가로넓이를 가지지 않은 이유로는 대부분의 한글이, 한자와 함께 사용되고 세로로 사용되었기 때문일 것이다.

그러고 초창기 컴퓨터가 도입되던 시절에는 정방형이 아닌 한글을 수용할 수 있는 시스템이 갖추어지지 않아서 정사각형에 맞춘 한글을 만들었는지도 모른다.



수동 사식기가 사용되던 시절은 상대적으로 넓이 값에 대한 제한이 적었다.


태-조합체의 경우 과거 수동식 자판으로 배포되던 시절의 모습은 아래와 같다.

태-조합체 식자판

글자가 좌측 끝에 붙어 있고, 우측에 공간이 있어 해당 공간만큼을 덜 움직여 다음 글자를 찍으면 넓이 값이 다른 한글도 원활하게 찍을 수가 있었다. 각 글자가 얼마만큼의 넓이를 갖는지는 수동식 자판 제작 시 미리 지정해 두었다.


영문 원판을 보면 해당 글자의 넓이가 원판에 새겨져 있기도 하다. 

한글보다 많은 넓이 값 변형이 있기 때문에 그것을 일일이 기억하기 어려워서 일 수도 있다.

영문 식자판

각 글자의 좌측에 붉은색 숫자가 뒤집어서 새겨져 있는 것을 볼 수 있다. 이 값이 각 글자의 넓이 값인 것이다.

이 숫자는 전각(100%) 넓이 값을 16으로 하였을 경우의 상대 넓이 값이다.


위의 영문 글꼴은  
 A, C, E, G, K, R, T, U, X는 11만큼의 넓이를 가지고,
B, F, L, P, S, V, Y, Z는 10만큼의 넓이를 가진다.
이때 전각의 기준은 16이다.


그러나 초기 컴퓨터는 그런 기능을 갖지 않았다.

텍스트 기반의 터미널에서는 한글은 전각, 영문은 반각의 넓이를 가지기도 했고, 그래픽 UI 기반의 시스템에서도 한글은 무조건 전각 넓이를 가지고 있다는 가정하에 프로그램이 제작되었다.

그래서 오랫동안 컴퓨터용 폰트를 제작하던 글꼴 디자이너들은 정방형 한글만을 만들어야 했다.


최근에 한 지방지 신문 글꼴을 바꾸는 프로젝트에서 해당 신문사의 조판 시스템이 가변 글꼴의 한글을 지원하지 않아, 많은 디자인 요소를 포기할 수밖에 없었던 것으로 미루어보아 아직도 적지 않은 컴퓨터 조판 시스템의 한글은 정방형 한글만을 지원하고 있는 것으로 보인다.


물론 독자 여러분들이 사용하는 최신 Windows나 MacOS 기반에서 실행되는 기본적인 소프트웨어에서는 가변 넓이의 한글을 지원하고 있으니 걱정하지 않으셔도 된다.



한글 넓이의 기준


한글의 가로넓이 값은 그 모음에 의해서 결정된다고 보면 된다. 

물론 초성이 쌍자음인 경우 넓은 공간을 차지한다면 이 때문에 넓이를 달리할 수도 있지만, 대개의 경우 중성에 따라 그 넓이를 다르게 가지게 된다.


우리 회사에서 만든 가변 넓이 글꼴의 경우 

1.  ㅏㅑㅘ 용

2. ㅓㅕㅣㅝㅟㅚㅢ용

3. ㅔㅖㅐㅒㅙㅞ용

4. ㅗㅛㅜㅠㅡ용


이렇게 4가지 경우로 분류하여 그 넓이를 다르게 만들었다.

앞서 말한 바와 같이 쌍자음 초성의 경우 때문에 넓이를 조정한 경우도 있지만 대개의 경우 위와 같은 기준이 정해 지는 것은 중성이 글자의 넓이를 결정하는 주요한 요인이기 때문이다. 

한글 기계화의 경우에도, 조합형 한글 글꼴을 제작한다면 어떤 중성이 나오냐에 따라 그 글자 뒤에 오는 글자의 위치를 정하면 되는 것이다.


완성형 글꼴의 경우에는 어떤 특정 글자의 모음이 무엇인지 알아내는 것이 쉬운 일이 아니지만, 조합형 글꼴을 사용하거나 유니코드를 사용하는 경우에는 쉽게 그 모음을 찾아낼 수 있다.  


글꼴의 코드값에 대한 내용은 앞서서 기술 한 브런치의 기사 "조합형 코드, 완성형 코드. 조합 폰트, 완성형 폰트"를 참조하시고, 그 내용에서 조합형 코드의 중성이 어떤 값을 갖는지를 찾는 방법을 알면 된다.


유니코드의 경우에는 한글 "가"가 유니코드 0xAC00이고 다음 글자는 1 씩 그 값이 증가하므로 글자의 유니코드에서 0xAC00를 빼고, 그 숫자를 28(종성의 숫자에 따른 글자 수)로 나눈 몫을 21(중성의 숫자에 따른 글자 수)로 나눈 나머지를 가지고 중성을 확인할 수 있다. 약간 복잡해 보이기는 하지만 컴퓨터 코드 내에서 이런 값을 구하는 것은 순식간에 일어나는 일이므로 이러한 코딩을 통하여 조합형 유니코드 글꼴의 넓이를 계산하고 조판에 이용할 수 있다.


예를 들어 "상"과 "헐"이라는 글자를 가지고 이 계산이 맞는지 확인해 보자.


"상"의 유니코드는 0xc0c1이다.
글자의 순번 = 0xcoc1-0xac00 이므로 그 숫자는 0x14c1(십진수로 5,313이 된다.)
5313 / 28 = 189 이고
189 % 21 = 0 이다.
첫번째 모음이라는 뜻이다. 
전체 모음 중 첫번째 모음은 "ㅏ"이므로 "상"의 모음은 "ㅏ"임을 알수 있다.

"헐"은 유니코드 0xd5d0이고
글자의 순번 = 0xd5d0-0xac00 이므로 그 숫자는 0x29d0 (십진수 10,704)이고
10704 / 28 = 382 이고
382 % 21 = 4 이다.
모음의 순서는 "ㅏ, ㅐ, ㅑ, ㅖ, ㅓ, ㅔ....."로 진행되고 나머지는 0부터 시작하므로
다섯번째 모음인 "ㅓ"가 "헐"의 모음임을 알 수 있다.


이런 기법을 통하여 초, 중, 종성을 한두 벌씩만 사용하여 가변 넓이를 가지는 멋진 디자인 한글 11,172자를 만들어 낼 수가 있는 것이다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari