고정 폭 글꼴을 만들려면 어떻게해야합니까?


14

내가 겸손 인기있는 형식 (의 글꼴이 있다고 가정 .ttf, .otf등), 나는 그것을 수정할 수있는 법적 권리가 있습니다. 그대로, 너비와 간격이 다른 문자 (문자 모양?)가 다른 일반 글꼴입니다. 해당 글꼴을 고정 폭 글꼴 로 바꾸려면 어떻게해야합니까 (예 : 모든 문자는 같은 치수 등)?

가능하다면 추측을 할 수있는 자동화 된 도구가 있습니까? (결과가 완벽 할 필요는 없습니다 .) 글꼴이 크거나 (많은 문자) 편집이 번거로울 수 있습니다.

문제에 대한 제안은 대단히 감사합니다! :)


면책 조항 : 간단한 방법으로 간주 되지만 죄송 하지만 Google은 주제에 대한 정보가 거의 없으며 그래픽이나 글꼴을 많이 다루지 않는 프로그래머에게는 간단 하지 않습니다 . 또한, 용어가 꺼져 있으면 죄송합니다. : : P


어떤 글꼴 소프트웨어를 사용하고 있습니까? 폰트 랩? 폰트 포지?
thomasrutter

답변:


12

글꼴 편집 소프트웨어가없는 경우 Fontforge는 무료이며 공개 소스입니다. 나쁜 소식은 비교적 높은 학습 곡선과 다소 특이한 사용자 인터페이스를 가지고 있다는 것입니다.

기본적으로 글꼴을 단일 공간으로 간주하려면 모든 글리프가 정확히 동일한 수의 단위까지 동일한 너비 여야합니다. 여기에는 일반적으로 너비가 0이거나 특정 너비 (예 : em 공백, em 대시 등) 인 글리프도 포함됩니다.

FAQ 항목 "글꼴을 고정 폭 글꼴로 표시하려면 어떻게합니까?"를 참조하십시오.

배치에서 모든 글리프의 너비를 한 번에 편집하려면 메뉴에서 "Metrics"-> "Set Width"로 이동하면 모든 문자에 대해 작동하지 않을 것으로 예상됩니다. 'W', 'M', '@'등과 같은 넓은 문자를 모두 수동으로 편집하여 겹치지 않게해야합니다. 그리고 발음 구별 부호 (렌더링 시점에 문자와 "결합 된"액센트)를 결합하면 모든 위치가 엉망이 될 수 있습니다 (미국 / 영어 사용자는 거의 사용하지 않는 경우 테스트하기가 어렵습니다).

글꼴을 만들고 편집하는 방법을 알고있는 사람은이 작업을 수행 할 수 있지만 여전히 간단하지는 않습니다.


글꼴을 모노 스페이스로 변환하는 것과 동일한 질문이 있습니다. 나는 스트레칭이 나쁘다는 것을 이해합니다. 내가 정말로 찾고있는 것은 1) 가장 넓은 글리프를 찾은 다음 2) 글리프를 늘리는 대신 너비가있는 필드의 가운데에 배치하는 도구입니다. 그렇게 할 도구가 없습니까?
NJRandy

gnu unifont의 경우 @thomasrutter? (글리프가 8 16 또는 16 16 인 비트 맵 글꼴)
user2284570

좋은 대답입니다. FontForge의 UI에서 직접 편집해도 효과가 없었습니다 (죽이기 전에 몇 시간 동안 고정 된 상태였습니다). 대신 파이썬 바인딩을 사용했습니다. 저의 목표는 monospacified font를 fallback으로 사용하는 것이 었습니다. 그래서 나쁜 커닝과 블리딩은 큰 문제가 아니 었습니다. 이 모든 것을 별도의 답변으로 자세히 설명했습니다.
Clément

1
처음 배우면서 무료 글꼴을 편집하여 많은 모노 글꼴을 만들었습니다. 자동화 도구와 마찬가지로 시작점이어야합니다. 필요한 경우 결과를 조정해야합니다. Fontographer 가 가장 빠른 학습 곡선을 갖는 것을 발견했습니다 . 글리프를 선택 Set Width하고 Metrics드롭 다운 메뉴로 이동 : 모든 글리프를 하나의 평균 너비로 설정하고 (필요한 경우 나중에 변경) 마지막으로 메뉴 Equalise Sidebearings아래를 선택 Metrics하여 글리프를 em 정사각형의 가운데 에 놓습니다 . 물론 : 다른 사람들이 성공적인 고정 폭 글꼴을 디자인하는 데 어려움을 어떻게 극복했는지 연구하십시오.
Moscarda

7

thomasrutter는 더 많은 기술적 답변을 제공합니다. 실제로 필요한 경우가 아니라면 원하는 것을하지 않도록 타이포그래피의 원칙을 보여 드리겠습니다.

Consolas 또는 Courier에서 'i'및 'm'을 확대 한 다음 Corbel 또는 Verdana를 확대하십시오. 모노 스페이스가 작동하려면 문자가 얼마나 달라야하는지 확인하십시오. 글꼴을 모노 스페이스로 올바르게 변환하려면 많은 지식과 작업이 필요합니다. 글꼴을 늘리는 일반적인 아이디어는 소금에 걸 맞는 디자이너에 의해 어려워지기 때문에 일반 변형에서 압축 변형으로 전환하는 경우에도 모든 글리프가 다시 그려집니다.

여기 Consolas vs. Corbel을보고 확대 할 때 1) 문자 간격, 2) 획 두께의 일관성 및 3) 각 문자가 상자에 어떻게 들어가는 지 확인할 수 있습니다. 가변 간격면 (두 번째)과 비교하여 고정 폭면 (첫 번째)을 본 다음 세 번째와 네 번째를보고 동일하게 만들기 위해 스트레칭과 간격을 두려고 할 때 어떤 일이 발생하는지 확인하십시오. 네 번째로, 나는 상자에 들어가기 위해 Ms squish를 75 %로 만들었지 만 이제는 Is보다 훨씬 더 얇습니다. 그것이 사용될 때 눈에 띄게 될 것입니다.

모노 스페이스 및 가변 공간 서체 비교

간단히 말해서, 서체를 엉망으로 만들지 마십시오. 그들은 당신이 기대했던 것보다 훨씬 더 강합니다!


2
예, M과 같은 넓은 글리프를 늘리는 것은 Brendan이 지적한 이유에 대한 충분한 해결책이 아닙니다. 수직 스트로크가 다른 문자보다 좁아지고 나빠 보입니다. 제어점을 선택하고 이동하여 글리프를 직접 편집해야합니다. 바라건대 이것은 OP가 어떻게 올바르게 (또는 멋지게)하는 것이 작은 일이 아닌지에 대한 아이디어를 제공하기를 바랍니다. 특히 당신이 다소 괜찮은 글리프 범위를 원한다면.
thomasrutter

@Brendan 두 개의 글리프 너비 만있는 비트 맵 글꼴의 경우에는 달라야한다고 생각합니다 (제 경우에는
user2284570

+1; 완전 자동 번역을 희망하는 것은 비현실적입니다. 제한된 컨텍스트에서는 세 번째 그림에서 보여준 내용이 실제로 잘 작동합니다. 누락 된 수학 연산자를 모노 스페이스 글꼴로 가져 오려는 경우 해당 솔루션은 다소 괜찮아 보입니다 (소프트웨어를 별도의 답변으로 게시했습니다).
Clément

@Brendan 동의하지 않습니다. 모든 예제의 문제는, 모든 글리프에 동일한 변환을 적용하지 않은 것입니다
공생

6

유니 코드 기호를 많이 사용하는 소스 코드를 편집하려고 할 때이 문제가 발생했습니다. 이러한 맥락에서 대부분의 소스 코드는 하나의 고정 폭 글꼴로 표시되며 해당 글꼴로 덮지 않은 몇 가지 기호는 정렬을 방해합니다.

전체 글꼴을 "단일 평화"하면 끔찍한 결과 (커닝, 획 너비 및 일반 균형이 모두 엉망이 됨)가 발생하지만 가변 너비 글꼴의 일부 기호를 고정 폭 글꼴로 가져 오면 괜찮은 결과를 얻을 수 있습니다. 아래 애니메이션은 Consolas + Symbola를 폴백으로 사용하는 것과 Consolas + Symbola의 단일 간격 버전을 사용하는 것을 보여줍니다.

단일 공간화 전후

고급 타이포그래피에는 쓸모가 없지만 들여 쓰기를 망치지 않고 소스 코드에서 기호를 사용하려는 경우 좋은 타협입니다. 그러나 몇 가지주의 사항이 있습니다.

  • 넓은 문자는 주변 공간에 약간 번져 나옵니다 (문제를 완화하기 위해 약간 축소 될 수는 있지만)
  • 커닝은 나빠질 것입니다 (대체로 인한 것이기 때문에 너무 큰 문제는 아닙니다)

이런 종류의 글꼴 변환을 자동으로 처리하기 위해 GitHub 프로젝트 를 시작했습니다 . 미리 생성 된 글꼴과 fontforge의 Python 바인딩을 사용하는 코드가 포함되어 있습니다.

이 emacs.se question 도 참조하십시오 .


-1

워드 프로세서에서, 나는 : (1) 테이블을 만들었다; (2) 각 문자에 대해 열-열로 나눕니다. (3) 문자를 중심에 두었다. (4) 내부와 외부의 모든 경계를 보이지 않게한다.


1
이것은 질문에 대답하지 않습니다. 글꼴을 만드는 데 도움이되지 않으며 시간 낭비처럼 들립니다.
Moscarda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.