9_폰트랩_파이썬_스크립트

'한글 문자열 생성'과 '엘레먼트 레퍼런스로 붙여넣기' - AI와 폰트랩 파이썬 스크립트(Fontlab Python Script)

Fontlab 2026. 6. 4. 01:13

(2026.07.04  17:15) - v1.8.11: 폴더와 그룹이 명시적으로 선택되지 않은 상태에서 새로운 그룹을 등록하면 빈 영역에 등록되도록 수정


이 스크립트는 박민우님의 MW: Generate Hangeul Composition 스크립트(https://github.com/minw0525)를 커스터마이징하고, 기능을 추가한 것입니다.

FontLab 8: Generate Hangeul and Paste Element (v1.8.11) 매뉴얼

Script 메뉴 표출명: Claude: Generate Hangeul and Paste Element_v1.8.11

 

이 스크립트는 Fontlab 8에서 한글 문자열을 생성하고, 생성한 문자열을 Glyph Window로 불러들일 수 있으며, Glyph Window에서 특정 Shape를 선택하고 복사하여 다른 글자에 Element Reference(연결된 속성)로 붙여넣는 스크립트입니다. 박민우님의 MW: Generate Hangeul Composition 스크립트를 기반으로 하여 다음 기능을 추가하였습니다.

 

  • 조합된 글자의 그룹 등록 기능
  • 그룹에서 폴더 생성과 관리 기능
  • 초성/중성/종성 등록 리스트의 상하 순서변경 기능, 등록 리스트의 이름을 바꾸는 기능
  • 한글 조합범위로 '내가 만든 한글 모두'를 설정하는 기능, 폰트 파일에 있는 모든 한글을 스캔하여 정보 파일로 저장하는 기능
  • 조합된 글자의 정렬 순서로 '등록 초성순', '등록 중성순', '등록 종성순'을 설정하는 기능
  • 펼치기/접기 단추를 이용하여 Paste as Element Reference 창을 보이기/감추기 하는 기능
  • Glyph Window에서 Shape를 복사하여 다른 글자에 연결된 상태로 붙여넣는 기능(Paste as Element Reference)
  • 스크립트의 모든 설정값을 zip 파일로 저장하고 불러들이는 기능

 

스크립트 화면 구조

Generate Hangeul and Paste Element 스크립트는 크게 두 가지 화면으로 구성되어 있습니다.

 

1. Composite 창

 

2. 통합 창

Composite 창의 오른쪽 상단에 있는 ▶ 버튼을 클릭하면 오른쪽에 Paste Element 창이 펼쳐집니다.

 

전체 화면 구조는 다음과 같습니다. (그림이 작게 나타납니다. tistory는 그림을 클릭하면 별도의 창으로 그림이 크게 보이므로 그림을 클릭하여 살펴보십시오.)

 

 

스크립트의 주요 특징

Composition 창

  • 초성·중성·종성을 조합하여 한글 문자열을 생성할 수 있습니다.
  • 초성·중성·종성에서 선택한 항목을 각각의 리스트로 등록할 수 있습니다.
  • 초성·중성·종성에 등록한 리스트를 드래그 앤 드롭하여 위치를 변경할 수 있습니다.
  • 초성·중성·종성에 등록한 리스트를 더블클릭하고 키보드로 타이핑하여 리스트의 이름을 바꿀 수 있습니다. 변경한 이름은 ‘사용자 등록 순서’로 작동하며, ‘정렬 순서’에서 등록 초성순, 등록 중성순, 등록 종성순 옵션을 사용할 때 적용됩니다. 

■ 조합범위의 '내가 만든 한글 모두' 옵션

  • 한글 조합 범위로 ABOBE-KR-9 - 2780자, KS X 1001 - 2350자, 현대 한글 - 11172자, 확장 음절 - 8392자 외에 ‘내가 만든 한글 모두’ 옵션이 제공됩니다. 요즘은 ABOBE-KR-9 - 2780자를 만들지만, 개인 제작자의 경우 필요에 따라 글자를 더 추가하는 경우도 있습니다. 예를 들어 '욯' 글자처럼 ADOBE-KR-9 - 2780자에 속하지 않는 글자를 만든 경우 조합 범위로 ‘내가 만든 한글 모두’ 옵션을 지정하면 ‘욯’자가 조합되어 나타납니다.

항상 11,172자를 선택해 조합하면 되지 않겠나 생각하겠지만 이때는 오히려 없는 글자들을 피해가면서 작업해야 해서 더 불편해집니다.

 

  • ‘내가 만든 한글 모두’ 옵션을 사용하기 위해서는 ‘조합하기’ 위에 있는 ‘폰트파일에 있는 모든 한글 스캔’ 단추를 눌러 현재 작업하는 폰트 파일에 있는 한글을 스캔해주어야 합니다. 스캔한 결과는 Scripts\Composite Hangeul 폴더에 system_all_user_created_hangeul_glyphs.json 파일로 자동으로 저장됩니다. ‘내가 만든 한글 모두’ 옵션은 ADOBE-KR-9 - 2780자보다 많은 글자를 만들었을 때 또는 한글을 완성해나가는 과정에서 사용하면 좋습니다(예를 들어 한글 2,780자나 11,172자를 만들어나갈 때 글립을 모두 완성하지 못했다면 폰트에는 없는 글자가 존재하기 때문입니다.)

■ 정렬 순서의 '등록 초성순', '등록 중성순', '등록 종성순' 옵션

  • 한글 정렬 순서로 초성순, 중성순, 종성순 외에 등록 초성순, 등록 중성순, 등록 종성순이 추가되어 있습니다. 초성·중성·종성 선택사항을 각각의 리스트로 등록하면 기본값으로 한글 가나다순으로 이름이 정해집니다. 이때 등록된 리스트를 더블클릭하여 이름을 변경하면 변경한 내용이 ‘사용자 등록 순서’로 작동합니다. 예를 들어  초성에 ,ㅁ,ㅇ,ㅋ이 등록되어 있을 때 리스트 이름을 더블클릭하여 ,ㄷ,ㅇ,ㅋ으로 이름을 바꾼 후 정렬 순서로 ‘등록 초성순’을 선택하면 ㅁ으로 시작하는 글자가 먼저 나타나고 이어서 ㄷ ㅋ 순으로 글자가 나타납니다. 중성과 종성도 동일한 방식으로 작동합니다.

 

■ 그룹 등록과 폴더 관리 기능

  • ‘조합하기’ 단추를 눌러 나타난 글자를 별도의 그룹으로 등록할 수 있습니다. 등록된 그룹에 속하는 글자 수가 표시됩니다. 
  • 등록된 그룹에 속하는 글자 수와 실제 글자 수가 다를 경우 ‘변경’ 단추를 누르면 숫자가 업데이트됩니다. 등록된 그룹의 이름을 사용자가 변경했을 경우 이름은 유지하고 글자 숫자만 업데이트됩니다.
  • 등록된 그룹 전체를 저장할 수 있으며, 등록된 그룹 이름을 우클릭하여 해당 그룹만 저장할 수도 있습니다.
  • 등록된 그룹의 자소 선택사항 변경, 그룹 이름바꾸기, 삭제하기를 할 수 있습니다.
  • Ctrl 키, Shift 키 등을 사용해 등록된 그룹을 다중 선택하고 한꺼번에 삭제할 수 있습니다.
  • 스크립트에 있는 위아래 화살표 버튼뿐만 아니라 마우스 드래그 앤 드롭으로 '등록된 그룹'의 위치, 등록된 '초성/중성/종성의 리스트' 위치를 바꿀 수 있습니다.
  • 조합된 글자를 현재창, 새창으로 불러올 수 있습니다.
  • '폴더 생성' 버튼을 눌러 그룹에 폴더를 생성할 수 있습니다. 폴더는 대분류 개념으로 이용하면 됩니다.

폴더로 그룹을 관리할 수 있습니다.

 

※ 한글 문자열 생성과 Glyph Window로 불러들이기 예제

예제에서는 초성으로 ㅁ, ㄴ, ㄷ, ㅅ, ㅇ을 선택하고, 중성은 ㅏ, ㅑ를 선택하고, 종성으로는 ㄹ을 선택하여 글자를 조합한 뒤 Glyph Window로 불러들이는 과정을 살펴봅니다.

초성을 선택하고 '등록' 단추를 눌러 등록한 후, 등록된 리스트를 더블클릭하면 키보드로 타자하여 이름을 바꿀 수 있습니다. 각 항목의 구별은 쉼표(,)를 사용합니다. 이렇게 바꾼 이름은 '등록 초성순'으로 사용됩니다. 중성과 종성도 동일합니다.

 

Paste Element 창

  • 글자를 조합한 후 '엘레먼트 붙여넣기 창으로 불러오기' 버튼을 클릭하면 Paste Element 창이 펼쳐지면서 조합된 글자가 새로운 Glyph Winow에 불러들여집니다.
  • Glyph Window에 열려 있는 첫 번째 글자를 자동으로 감지하여 표시해줍니다.

  • Glyph Window에 있는 첫 번째 글자에서 Element Tool로 글자 조각을 선택하고 ‘복사  시작’ 단추를 누르면 선택된 글자 조각을 복사하면서 ‘복사된 글자 모양’ 상자에 형태가 자동으로 나타납니다. 글자 조각 복사는 반드시 Glyph Window에 나타난 첫 번째 글자에서만 수행되도록 설정되어 있습니다. 
  • ‘Element Reference로 붙여넣기’ 단추를 누르면 복사한 글자 조각을 유사도 옵션에 설정된 조건에 맞춰 나머지 글자에 Element Reference된 상태, 즉 연결된 상태로 자동으로 붙여집니다.
  • 붙여넣을 곳에 있는 글자 조각들을 미리 삭제하여 공간을 마련한 상태에서 붙여넣는 것을 추천합니다. 붙여넣을 곳을 미리 정리하여 빈 곳으로 만들어두면 ‘유사도 옵션’의 설정값에 관계 없이 자동으로 붙여집니다.
  • 붙여넣기 기능은 Glyph Window에 나타난 글자에만 수행됩니다.
  • 스크립트 오른쪽 상단의 ‘엘레먼트창 펼치기’ 버튼()을 누르면  Paste Element 창이 펼쳐집니다. Paste Element 창은 왼쪽의 Hangeul Composition 창에서 글자를 조합했는지 여부와 관계 없이 사용할 수 있습니다. 

 

※ Element Reference로 붙여넣기 예제

예제에서는 ‘말날냘달먈살샬알얄’ 글자에 ‘말’의 받침 ‘ㄹ’을 복사하여 Element Reference로 붙여넣는 과정을 살펴봅니다. 편의상 ‘말’은 모든 자음과 모음을 완성했으며, ‘날냘달먈살샬알얄’은 받침 ‘ㄹ’이 완성되지 않아 ‘나냐다먀사샤아야’로 나타난 상태라고 가정합니다.

또는 ‘날냘달먈살샬알얄’처럼 받침 ‘ㄹ’이 그려져 있지만 Element Reference로 연결되지 않은 상태라고 가정합니다(동일한 글자 조각이 이미 자리잡고 있으면 해당 글자 조각을 삭제하면서 붙여넣어집니다).

마지막 과정에서 ㄹ의 색깔을 변경하는 이유는 ㄹ이 단순 붙여넣기가 아니라 '연결된 상태로 붙여넣어 졌음'을 보여주기 위함입니다. 색상 변경 과정은 이 블로그에서 소개하고 있는 'Element Reference 개체의 일괄 색상 변경' 스크립트를 이용하였습니다.

 

맥용 폰트랩 8에서 정상 동작 확인하였습니다.

 

 

Element Reference로 붙여넣기 위한 전제 조건

글자 조각을 복사하여 Element Reference로 연결된 상태로 붙여넣기를 하려면 각각의 글자 조각이 Element 패널에서 서로 독립적인 레이어에 위치해 있어야 합니다.

'Element Reference로 붙여넣기'의 기본 전제조건은 Element 패널에서 글자 조각(Shape)이 서로 다른 레이어에 위치해 있어야 한다는 것입니다. Element Reference로 붙여넣기를 수행하려면 만드시 'Element Tool'로 글자 조각을 선택하여 복사해야 하는데, Element 패널에서 동일한 층에 여러 개의 글자 조각이 있을 때 'Element Tool'로는 개별 글자 조각만 단독으로 선택할 수 없기 때문입니다.

 

Element Tool로 선택하기와 Contour Tool로 선택하기의 차이점을 더 자세히 알아보고 싶을 때는 졸저 Fontlab Type Design를 참고해주세요.

글자 조각(Shape)들이 Element 패널에서 독립적인 레이어에 배치되어 있는 상태

 

글자 조각(Shape)들이 하나의 층으로 구성된 상태. 이러한 상태에서는 Element 툴로 받침 ㄹ만 선택할 수 없습니다. Element 툴은 Element 패널에서 독립적인 층에 위치한 단위로 선택할 수 있기 때문입니다.

 

이 스크립트는 글자 조각을 붙여넣을 때, '유사도 옵션'이 설정된 상태에서는 붙여넣어질 공간이 충분한지, 이미 자리잡고 있는 글자 조각이 복사한 글자 조각과 동일한 글자 조각인지를 검토합니다. 공간이 충분하지 않거나 다른 글자 조각으로 판단되면 붙여넣지 않습니다. 공간이 충분한지의 판단은 Element 패널에서 글자 조각이 차지하고 있는 BBox 크기로 판단합니다. 따라서 다음 그림과 같이 구성되어 있으면 인간은 '공간이 충분하다'라고 인식해도, 스크립트는 '공간이 충분하지 않으며, 붙여넣을 공간이 아예 없다'고 판단합니다.

 

BBox는 글자 조각의 가장자리를 감싸는 직사형이므로 '말' 글자에서 초성 ㅁ이 없는 상태라 할지라도 Element 패널에서 ㅏ와 ㄹ이 하나의 층으로 구성된 상태라면, 이들의 자장자리를 감싸는 전체 직사각형의 크기가 BBox 크기가 되기 때문입니다.

 

이 스크립트를 이용하여 '말' 글자의 초성 'ㅁ'을 붙여넣어야 한다고 가정해봅니다.

이 스크립트는 '공간이 비어 있다'의 판단을 Element 패널에 있는 각각의 글자 조각(Shape)의 BBox 크기로 인식합니다. 사람의 인식과 다릅니다. 공간이 비어있음에 대한 판단은 이 스크립트의 동작일 뿐입니다. 이 스크립트를 이용하지 않고 폰트랩 자체의 기능을 이용해 붙여넣을 때는 공간이 충분한지에 관계없이 붙여넣어집니다.

 

각각의 글자 조각이 Element 패널에서 서로 다른 레이어에 위치하면 '붙여넣을 공간이 충분한가'를 판단할 때 사람의 인식과 스크립트이 인식이 일치합니다.

 

유사도 옵션을 사용하지 않고 '동일하지 않은 글자 조각일 때 일단 겹쳐서 붙여넣기' 옵션을 선택한 상태일 때는 공간이 충분한지 여부에 관계없이 일단 붙여넣어집니다. 유사도 옵션이 있는 이유는 '말만막맘'의 초성 ㅁ과 같이 유사한 글자 조각일 때 크기가 다른 것을 구별하기 위함입니다. 
유사도 옵션을 끄고 '일단 붙여놓고 보는' 옵션

 

 

'붙여넣기' 기능은 언제 쓰는가?

글자 디자인 단계에서 '컴포넌트'나 '레퍼런스(Element Reference)' 기능을 사용해 글자를 구성해놓은 경우 이 스크립트를 이용하여 붙여넣기를 할 필요가 없습니다. 이 스크립트가 하려는 일을 이미 완료해 놓은 상태이기 때문입니다. 이 스크립트를 이용한 붙여넣기는,

 

1. 글자를 만들어 놓았는데, 연결된 상태가 아니라 일반적인 붙여넣기로 구성한 상태(즉, 연결 속성을 사용하지 않은 상태)라서 동일한 요소들을 연결된 상태로 재구성하고 싶을 때

폰트랩의 Font 메뉴에 있는Detect Composite 명령은 폰트 파일의 하나의 마스터에서 동일한 글자 조각을 검색하여 '자동으로' 연결시켜주는 기능입니다. 그런데 글자 조각의 크기와 형태가 일치하면 위치와 특징을 가리지 않고 연결시켜주기 때문에 정교한 연결을 만들고자 한다면 Detect Composite 수행 후에 특정 글자 조각의 연결을 끊고, 다른 것을 연결하는 등 수정작업을 많이 해줘야 합니다.

 

2. 글자를 만들어나가는 과정에서 동일한 요소들을 연결된 상태로 구성하고 싶을 때

3. SIL OFL 폰트를 재활용하여 나만의 폰트를 만들고 싶을 때(물론 SIL OFL 폰트를 이용하여 폰트를 만들면 그 폰트도 SIL OFL 조건을 따라야 합니다. 그런데 SIL OFL 폰트는 모든 글자들이 Flatten되어 하나의 층에 모여 있고, Remove Oerlab되어 겹쳐진 부분이 하나로 뭉쳐진 상태입니다. 따라서 제대로 작업하려면 모든 자음과 모음을 분해하여 Element 패널에서 각각의 레이어로 나누어 재배치해야 하기 때문에 작업량이 어마무시합니다. 하지 마시고 더 생산적인 일에 시간을 투자하세요.)

 

의 과정에서 사용하면 많은 도움이 될 것입니다.

 

 

스크립트 설정값 저장과 관리

이 스크립트는 등록된 그룹, 초성/중성/종성의 등록된 리스트 정보를 폰트랩 8의 스크립트 폴더에 Composite Hangeul라는 하위 폴더를 만들어 저장합니다.

Windows용 Fontlab 8은 C:\Users\사용자\Documents\FontLab\FontLab 8\Scripts\Composite Hangeul
macOS용 Fontlab 8은 /Users/사용자/Library/Application Support/FontLab/FontLab 8/Scripts

 

그룹 등록 내용을 개별적으로 저장할 수 있으며, '모든 저장'과 '모든 열기' 버튼을 이용하여  이 스크립트가 생성한 모든 설정값을 zip 파일로 저장하고 불러들일 수 있습니다. '모든 저장' 버튼을 클릭하면 파일이름이 '오늘날짜-지금시간.zip' 형식으로 설정되어 나타납니다. 


심플 버전: Paste Element 패널이 없는 Simple 버전

●Claude_Generate_Hangeul_Composition_그룹등록_내한글_MySimple_Version_v1.8.10.py
0.13MB

(2026. 07. 04 업데이트 버전)


복합 버전: Paste Element 패널이 있는 버전

●Claude_Generate_Hangeul_Composition_그룹등록_에레몽_Paste_Element_Reference_v1.8.11.py
0.24MB

(2026. 07. 04 업데이트 버전)


 

스크립트 설치 방법: Windows - 다운로드한 파일을 C:/문서/Fontlab/Fontlab 8/Scripts 폴더에 복사한 후 Fontlab을 재시작하거나, Fontlab의 Scripts 메뉴에서 제일 하단의 Refresh Scripts를 실행합니다. 다시 Script 메뉴를 열어 보면 스크립트 이름이 나타납니다. 이를 선택해 실행하면 됩니다.

macOS - 사용자/Library/Application Support/FontLab/FontLab 8/Scripts/ 폴더에 복사한 후 위의 과정과 동일하게 수행합니다. Library 폴더가 숨김 속성으로 되어 있어 보이지 않을 수도 있으므로 ChatGPT에게 숨김 속성 해제하는 방법을 물어봐서 처리하시면 좋습니다.

폰트랩에서 파이썬 스크립트를 사용하려면 반드시 TypeRig 라이브러리가 폰트랩에 설치되어 있어야 합니다. TypeRig 라이브러리가 설치되어 있지 않은 상태에서는 '대부분'의 폰트랩용 파이썬 스크립트가 실행조차 되지 않습니다. TypeRig 라이브러리 설치 방법은 첨부된 PDF 파일에 자세하게 설명되어 있습니다.
tistory_Fontlab_TypeRig_설치방법.pdf
1.39MB