'글리프'와 '캐릭터'의 실제 차이점은 무엇입니까?


26

타이포 그라피 사이트 제안 에서이 질문을 보았고 답을 몰랐다는 사실을 알았습니다. 나는 항상 'glyph'와 'character'를 상호 교환 가능한 것으로 취급했습니다.


Unicode Character Encoding Model 페이지 에서 설명을 읽은 후 대략 다음과 같이 이해할 수 있습니다.

  • 문자는 자신에 의해 정의 된 의미 자신에 의해, 언어, 문자 모양의 외관 . 따라서 미적으로 결합하는 합자 fi 는 하나의 글리프이지만 두 개의 문자입니다.

따라서 실제적인 차이점은 다음과 같습니다.

  • 텍스트의 에스테틱에 관심이없는 텍스트 파서는 문자를 각 문자로 읽습니다. 그래서:
    • 글리프가 포함 된 텍스트를 일반 텍스트 편집기에 복사하여 붙여 넣으면 글리프가 해당 문자로 변환됩니다 ( 합자 글리프가 fi).
    • 텍스트 파싱 (예 : 검색 엔진 크롤러, 스크린 리더, 맞춤법 검사기)을 기반으로 잘 만들어진 자동화 된 시스템은 글리프를 해당 문자로 해석합니다.
    • 하나의 문자는 많은 글리프 또는 글리프 세트를 가질 수 있습니다. 하나의 글리프가 하나의 문자 만 가질 수 있다고 말하고 싶지만 각각 3 개의 글리프 및 글리프 세트로 구성된 링크 된 기사에 문자와 문자 세트에 해당하는 것으로 보이는 예가 있으므로 분명히 옳지 않습니다. 나는 이것이 어떻게 작동 할 수 있는지 잘 모르겠다. 확실히 그것은 그 글리프가 해석되는 방식에 불일치 또는 모호성이 있음을 의미하며, 통역사에 따라 다릅니다. (또는 언어 나 글꼴에 따라 다릅니 까?)
    • 글리프 브라우저 (예 : Illustrator의 브라우저)에는 글꼴의 전체 글리프 세트가 포함되어 있지만 문자 맵 (예 : Windows 문자 맵)에는 합자와 같은 여러 문자 인 글리프가 아닌 문자 만 포함됩니다 (이전에 알아 채지 못했던 것)

내가 거의 다 해요 같은 느낌하지만 난 라인을 따라 분명 오해 뭔가 어딘가에했습니다 : 복사 및 합자와 행동을 붙여, 또한뿐만 아니라 "한 글리프 여러 문자"일을하지만 것은 아니다 확실히 내가 기대했던 :

  • 합자 를 Illustrator에서이 입력 상자로 복사합니다 fi. 예상대로 붙여 넣습니다 (2 자).
  • HTML 코드에 붙여 넣기 ( fi)-코드 블록이 아닌 경우 합자로 표시 합니다 ( 이 글꼴에서는 합자와 비슷하지 않지만 절반 만 선택하면 하나가 나타납니다) fi예상대로 코드 블록 ( )에 있을 때 코드 ).
  • 렌더링 된 비 코드 블록 합자를 복사하여 입력 상자에 다시 붙여 넣습니다. 합자 문자로 붙여넣고 코드 블록에 있는지 여부에 관계없이 합자로 렌더링합니다 (fi 및 ). 마찬가지로 그것을 함유 단어 : 인터넷 t MIS Fi를 TS ( fit misfits)와 같은 페이스트 인터넷 t 오 Fi를 TS ( fit misfits). 붙여 넣을 장소가 사용 된 인코딩을 이해하는지 여부에 따라 달라질 수 있습니다.

이것에 대한 나의 이해가 얼마나 잘못 되었습니까? 누군가가 나를 올바르게 말할 수 있습니까 : 글리프와 문자의 차이점에 대한 명확한 정의 (내 것이 잘못되었거나 개선 될 수있는 경우)를 진술하고 실제로 그것이 의미 하는 것보다 명확하고 정확한 예를 제시 합니까?


2
문자를 결합한 아랍어와 같은 스크립트가 있으면 더 복잡해집니다.
Reinstate Monica-M. Schröder

1
@ MartinSchröder +1 훌륭한 답변의 첫 문장처럼 들립니다 ... :)
user56reinstatemonica8

답변:


4

글리프는 텍스트가 렌더링되는 방식, 문자가 해석되는 방식에 관련됩니다. 복사하여 붙여 넣을 때 소스 응용 프로그램은 일반적으로 여러 형식을 선택할 수 있습니다. 일반 텍스트는 fi ligature를 f와 i로 분해하고 HTML 형식은 인용 한 char 엔티티로 변환하거나 f와 i로 분해 할 수 있습니다.

일반적으로 문자와 글리프의 관계는 n : m입니다. 인도 언어에서 일부 문자는 단어의 다른 위치에 배치되는 두 개의 글리프로 나뉩니다. 라틴어에서이 상황에 가장 가까운 것은 é를 두 개의 글리프 (e 및 ´)로 렌더링하는 것입니다. 아랍어에서 각 문자는 단어 내 위치에 따라 초기, 중간, 최종 또는 분리 된 다른 글리프를 갖습니다.

문자에서 글리프로의 변환은 각 응용 프로그램 및 지원하는 인쇄 기능에 따라 다릅니다. 라틴 텍스트의 경우이 번역은 간단했지만 OpenType 글꼴은 합자, 스와시, 대체 양식, 작은 대문자 등의 추가 기능을 도입했습니다.

실제적인 이유로 응용 프로그램에서 텍스트를 렌더링하는 방법을 구현하거나 글꼴을 디자인 할 때 또는 일부 글리프를 다른 글리프로 대체하는 OpenType 기능 (예 : 합자)을 적용 할 때 글리프에만 관심이 있습니다. 그렇지 않으면 유니 코드 코드 포인트가 당신의 친구입니다.


안녕하세요 user322483, GDSE에 오신 것을 환영합니다. 답변 해 주셔서 감사합니다. 궁금한 점이 있으면 평판이 충분 하면 도움말 센터를 방문 하거나 Graphic Design Chat 에서 핑 (Ping)하십시오 (20). 계속 기여하고 사이트를 즐기십시오!
Vincent

1
"아랍어에서 각 문자는 단어 내 위치에 따라 초기, 중간, 최종 또는 분리 된 다른 글리프를 갖습니다." <--- 그들은 다른 문자가 아닐까요. 영어에는 A와 a가 있지만 컴퓨팅 대화에서는 A와 a가 다릅니다. 각 글리프는 다른 코드에 매핑됩니다. 히브리어에는 chaf와 final chaf (단어 끝에있는 문자 chaf가 다르게 보임)가 있으며 컴퓨팅에서 다른 문자로 지칭됩니다.
barlop

14

이해가 잘못되었다고 생각하지 않습니다. 사용자가 원하는 것을 붙여서 사용자를 돕기 위해 노력하는 시스템을 보는 것입니다. 일부 합자 ( 'fi', 'fl')는 조판 시스템 외부에서 상당히 일반적이기 때문에 소프트웨어는 사용자가 해당 글리프를 입력하지 않았을 가능성이 높으며 다른 앱이 입력 한 문자를 변환했음을 인식합니다.

간단히 말해서 : 문자 는 언어 단위를 나타냅니다. 문양 은, 소, 중소형 역사적 또는 문체 변형 대문자 여부, 즉 유닛의 설계 예를 지칭한다.


컴퓨팅에서 A와 a는 다른 문자입니다. ASCII에는 128자가 있으며 여기에있는 문자라는 용어는 A와 고유 문자를 포함합니다.
barlop

엔지니어는 다른 산업의 선례와 맞지 않는 단어를 많이 사용합니다. 당신의 좋은 예입니다.
Plainclothes 2016 년

"문자"와 "글리프"라는 용어가 먼저 나온 사람은 누구입니까? 그래픽 디자이너 또는 컴퓨터 엔지니어? 나는 컴퓨터가 그래픽 디자인에 앞서 왔다고 생각했다. 그러나 어떤 방식 으로든 그래픽 디자인보다 앞선 컴퓨터와 논쟁의 여지가있는 인쇄 산업이 있거나 현대 컴퓨터보다 먼저 예정된 인쇄 산업이있을 수 있습니다. 그래픽 디자인에 가장 잘 맞는 사람들은 인쇄 산업이지만 인쇄 산업 스택 교환은 없습니다. 그러나 누가 누가 어떤 방식으로 캐릭터라는 단어를 빌 렸는지를 아는 것은 흥미로울 것입니다.
barlop

1
타이포그래피는 온 소프트웨어 공학 전에. 연구를 수행하고 출처를 찾으려면 여기에 게시하십시오. 내 생각 엔 그것이 17 세기에 언젠가는있을 것입니다. 16 일 중순에 최초의 타이포그래피 작가들만큼 일찍있을 것입니다.
Plainclothes 2016 년

6

여기에 문자 대 문자에 대한 좋은 정보를 제공하는 몇 가지 답변이 있지만 실제로 복사 및 붙여 넣기와 관련하여 혼란의 원인을 다루지는 않습니다.

우선, 당신의 이해는 근본적으로 정확합니다.

문자는 자신에 의해 정의 된 의미 자신에 의해, 언어, 문자 모양의 외관 . 따라서 fi를 심미적으로 결합하는 합자는 하나의 글리프이지만 두 개의 문자입니다.

문자 목록은 기계가 읽을 수있는 형식으로 텍스트를 인코딩 할 수있는 권한이기 때문에 유니 코드 컨소시엄에서 게시 한 유니 코드 표준에 의해 정의 된다는 점을 강조 할 가치가 있습니다. 위의 정의는 기본적으로 유니 코드 컨소시엄 구성원이 유니 코드에 제안 된 일부 추가가 문자 이므로 포함 할 가치 가 있는지 또는 글리프 인지를 결정하기 위해 사용하는 기본 지침이며 글꼴 렌더러에서 처리해야합니다.

난 당신이 위의 경험 혼란으로 인해 여러 합자가 존재한다는 사실이었다이 때문에 언급 문자 (하지 글리프 유니 코드)를. 예를 들어, U+FB01합자에 대한 특성은 다음과 같습니다. http://unicode.org/charts/PDF/UFB00.pdf

합자가 유니 코드 표준에 어떤 종류의 문자를 문자로 포함시켜야하는지에 대한 유니 코드로 합자 문자를 갖는 것은 실제로 위의 정의의 정신에 있지 않습니다. 유니 코드 사람들은 자연스럽게 이것을 알고 있으며 합자에 대한 유니 코드 FAQ 는 다음과 같이 많은 것을 인정합니다.

기존 합자가 기본적으로 유니 코드가 아닌 문자 집합과의 호환성 및 라운드 트리핑을 위해 존재합니다. 그들의 사용은 권장되지 않습니다.

이 캐릭터의 존재는 궁극적으로 혼란의 근원입니다.

올바르게 구현 된 소프트웨어에서 텍스트 복사는 항상 글리프가 아닌 지정된 문자 를 복사해야하며 , 세 가지 예에서 정확하게 진행되고 있습니다.

1) 제의 예에서는, 입력 fi단일 합자 렌더링 작가로 글리프 . 렌더링 된 글리프를 선택하고 복사하면 Illustrator가 f( U+0066) 및 i( U+0069) 문자를 클립 보드에 올바르게 복사했습니다 .

2) 두 번째 예제에서는 합자에 대한 HTML 코드를 입력 문자 ( &#64257입력 상자에)를 올바르게 합자있어 그리 합자를 나타내는 문자 (. 기본부터 캐릭터가 실제로 내가 언급 한 모호한 상대적으로 무의미 합자 문자 위의 글리프를 선택하면 단일 문자가 복사됩니다 U+FB01.

3) 세 번째 예에서는 2 부에서 렌더링 된 렌더링 합자 문자 U+FB01 를 복사하여 항상 해당 문자로 붙여 넣습니다. 주된 혼란은 HTML 엔터티 코드와 문자의 차이점, 특히 코드 블록 내부 및 외부에서 렌더링되는 방식과 관련하여 HTML 엔터티 코드의 차이점에 관한 것 같습니다.

HTML 엔터티 코드 &#64257;는 8 개의 고유 문자로 구성된 문자열입니다. 웹 브라우저의 HTML 렌더러는 8 개의 문자 U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023단일 유니 코드 문자 로 대체하여 U+FB01적절하게 렌더링합니다. 그러나 <code>HTML 의 태그는이 동작을 비활성화하여 8자를 그대로 둡니다.

렌더링 된 HTML에서 복사 할 때 렌더링 된 문자 (렌더링 된 글리프 와 다른) 를 복사합니다 . 따라서 렌더링 된 HTML 엔터티를 복사하면 단일 U+FB01문자가 클립 보드에 복사됩니다.

U+FB01문자를 HTML에 다시 붙여 넣으면 대체가 필요하지 않습니다. 즉, 문자가 <code>블록 내에 있는지 여부에 관계없이 문자가 합자로 렌더링됩니다 .


1

문자는 텍스트 파일에 저장되고 응용 프로그램에서 처리되고 이동되는 반면 글리프는 시각적 표현입니다.

선명한 그림을 얻으려면 응용 프로그램이 화면에 텍스트 문자열을 약간 단순화하여 렌더링하려고 할 때 어떤 일이 발생하는지 확인하십시오.

  • 응용 프로그램은 먼저 텍스트 문자열을 읽습니다. 텍스트 문자열은 디스크 나 메모리에 저장된 문자열입니다.
  • 그런 다음 원하는 글꼴, 텍스트 언어 등과 같은 다른 속성 중에서 텍스트 레이아웃 엔진으로 보냅니다.
    • 텍스트 레이아웃 엔진은 기본적으로 각각의 문자에 대응하는 글리프 (들)을 요청하고 (위한 글리프를 교체 같은 일부 글리프 교체 할 폰트 파일을 열 fi합자 글리프의로 fi하고 (커닝 같은) 위치).
    • 결국 레이아웃 엔진은 일련의 글리프, 서로에 대한 위치 및 입력 문자와 출력 글리프 사이의 매핑을 갖습니다. 문자 대 글리프 매핑은 단어의 처음 두 문자가 file두 번째는 첫 번째 글리프 ( fi합자), 세 번째 문자는 두 번째 글리프, 네 번째 문자는 세 번째 글리프에 해당한다는 것을 알 수 있습니다.
  • 그런 다음 그래픽 렌더링 라이브러리를 사용하여 글꼴의 모양을 사용하여 화면에 해당 글리프를 "그립니다".
  • 사용자가 화면에서 "글리프"를 선택하면 응용 프로그램은 레이아웃 엔진에서 제공하는 글리프-텍스트 매핑을 참조하여 입력 텍스트의 어떤 부분이 사용자가 선택한 내용에 해당하는지 찾아 텍스트를 클립 보드에 보낼 때 사용자가 그것을 복사합니다.
  • 사용자가 텍스트 중간에 커서를 삽입하고 입력을 시작하면 매핑이 입력 텍스트에서 새 문자를 삽입 할 위치를 결정하고 업데이트 텍스트는 레이아웃 엔진으로 보내 처리 및 다시 그립니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.