' ' 글리프 '와 ' 문자 '?

타이포그래피 사이트 제안에 대한이 질문 을 보았고 내가하지 않았다는 사실을 귀찮게했습니다. “답을 모릅니다. 저는 항상”glyph “와”character “를 서로 바꿔서 사용할 수있는 것으로 취급했습니다.


유니 코드에 대한 설명을 읽은 후 문자 인코딩 모델 페이지 , 내 이해는 대략 다음과 같습니다.

  • 문자는 모양 의해 언어, 글리프에서 의미 로 정의됩니다. / em>. 따라서 fi를 미학적으로 결합하기위한 합자는 하나의 글리프이지만 두 개의 문자입니다.

그러니 제 믿음은 m 잘못) 실제적인 차이는 다음과 같습니다.

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

내가 거의 다가온 것 같지만 선을 따라 어딘가에서 분명히 오해 한 것 같습니다. “하나의 글리프 여러 문자”뿐 아니라 또한 합자를 사용한 복사 및 붙여 넣기 동작은 “내가 예상했던 것과 그렇게 하지 않습니다.

  • 합자를 복사합니다. Illustrator에서이 입력 상자로 : 예상대로 fi (2 자)로 붙여 넣습니다. .
  • HTML 코드를 붙여 넣습니다 ()-코드 블록 (fi)에없는 경우 합자로 표시됩니다.이 글꼴에서는 합자처럼 보이지 않지만 보기는 절반 만 선택하려는 경우 하나), 코드 블록 (fi)에있을 때 예상대로 코드입니다.
  • 복사하여 붙여 넣기 렌더링 된 비 코드 블록 합자를 입력 상자에 다시 넣습니다. 합자 문자로 붙여넣고 코드 블록에 있는지 여부에 관계없이 합자로 렌더링합니다 (fi 및 ). 마찬가지로 그것을 포함하는 단어 : fi t mis fi ts (fit misfits)는 맞춤 오류 (fit misfits). 붙여 넣을 위치가 사용 된 인코딩을 이해하는지 여부에 따라 달라질 수 있습니까?

이에 대한 내 이해가 얼마나 잘못 되었습니까? 누군가 나를 바로 잡을 수 있습니까 : 명확한 정의 하고 (내 것이 잘못되었거나 개선 될 수있는 경우) 실제로 의미 에 대한 내 것보다 더 명확하고 정확한 예를 제공합니까?

댓글

  • 문자를 결합하는 아랍어와 같은 스크립트가 있으면 훨씬 더 복잡해집니다.
  • @MartinSchr ö der +1 훌륭한 답변의 시작 문장처럼 들립니다 … 🙂

답변

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

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

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

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

댓글

에서 저희에게 ping을 보내주세요. a> 평판이 충분하면 (20). 계속해서 기여하고 사이트를 즐기세요!

  • 당신은 “를 씁니다. 아랍어에서 각 문자는 단어 내 위치에 따라 이니셜, 중간, 최종 또는 분리와 같은 다른 글리프를가집니다. . ” < — 서로 다른 문자 일 수는 없습니다 ‘. 영어에는 A와 a가 있지만 계산 대화에서 A와 a는 다른 문자입니다. 각 글리프는 다른 코드에 매핑됩니다. 히브리어에는 chaf와 마지막 chaf (단어 끝의 chaf 문자가 다르게 보임)가 있으며, 나는 ‘ 확실히 ‘ s 컴퓨팅에서 다른 문자로 불립니다.
  • 답변

    당신의 이해가 틀렸다고 생각하지 않습니다. 사용자가 원한다고 생각하는 것을 붙여 넣어 사용자를 도우려는 시스템을 보는 것입니다. 일부 합자 ( “fi”, “fl”)는 조판 시스템 외부에서 상당히 일반적이기 때문에 소프트웨어는 사용자가 해당 글리프를 입력하지 않았을 가능성이있는 것으로 인식하고 다른 앱이 입력 된 문자를 변형 한 것으로 인식합니다.

    간단히 말해서 : 문자 는 언어 단위를 나타냅니다. 글리프 는 해당 단위의 설계된 인스턴스 (대문자, 소문자, 작은 대문자, 과거 또는 스타일 변형)를 나타냅니다.

    댓글

    • 계산에서 A와 a는 서로 다른 문자입니다. ASCII에는 128자가 있으며 여기에있는 용어 문자에는 A와 a가 별개의 문자로 포함됩니다.
    • 엔지니어는 ‘ 다른 업계의 전례와 일치하지 않습니다. 귀하의 것이 좋은 예입니다.
    • ” 캐릭터

      및 ” 글리프 ” f 처음? 그래픽 디자이너 또는 컴퓨터 엔지니어? 저는 ‘ 그래픽 디자인보다 컴퓨터가 먼저 왔다고 생각했습니다. 그러나 그래픽 디자인보다 앞선 인쇄 산업이 있고 어떤면에서 컴퓨터보다 앞선 논쟁의 여지가 있거나 현대 컴퓨터보다 앞선 것이있을 수 있습니다. 지금의 그래픽 디자인에 대해 가장 잘 대답 할 수있는 사람은 인쇄 산업이지만 ‘ 인쇄 산업 스택 교환은 없습니다. 하지만 ‘ 누가 누가 캐릭터를 빌 렸는지, 그리고 어떤 방식으로 캐릭터라는 용어를 사용하는지 아는 것은 흥미로울 것입니다.

    • 타이포그래피는 이전에 오래 등장했습니다. 소프트웨어 공학. 연구를 수행하고 기원을 찾으면 여기에 게시하십시오. 내 생각 엔 17 세기가 될 것 같다. 빠르면 16 일 중반에 첫 타이포 그래퍼가 될 것입니다.

    답변

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

    우선 이해가 근본적으로 정확합니다.

    캐릭터는 언어의 의미 , 글리프, 모양 으로 정의됩니다. 따라서 미학적 결합을위한 합자 fi는 글리프 하나이지만 두 문자입니다.

    문자 목록이 유니 코드로 정의된다는 점을 강조 할 가치가 있습니다. 이 표준은 유니 코드 컨소시엄에서 발행 한 것입니다. “시스템에서 읽을 수있는 형식으로 텍스트를 인코딩하는 권한이 있기 때문입니다. 위의 정의는 유니 코드 컨소시엄 회원이 일부 제안 여부를 결정하는 데 사용하는 기본 지침입니다. addit Ion to Unicode는 문자 이므로 포함 할 가치가 있거나 글리프 이며 글꼴 렌더러에서 처리해야합니다.

    혼란이 있기 때문에 이것을 언급합니다. 위에서 경험 한 것은 유니 코드에 여러 합자 문자 ( 글리프 아님)가 있다는 사실 때문입니다.예를 들어 U+FB01는 그림 합자의 문자입니다. http://unicode.org/charts/PDF/UFB00.pdf

    유니 코드에 합자 문자를 갖는 것은 “합자에 독립적 인 의미가 없기 때문에 유니 코드 표준에 어떤 종류의 것을 문자로 포함해야하는지에 대한 위의 정의 정신에 해당되지 않습니다.” 다른 두 캐릭터의 구성. 유니 코드 사람들은 당연히 이것을 알고 있으며 합자에 대한 유니 코드 FAQ 는 다음과 같은 많은 것을 인정합니다.

    기존 합자는 기본적으로 유니 코드가 아닌 문자 세트와의 호환성 및 라운드 트립을 위해 존재합니다. 이들의 사용은 권장하지 않습니다.

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

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

    1) 첫 번째 예에서는 fi를 Illustrator에 입력하여 단일 합자 글리프 를 렌더링했습니다. . 렌더링 된 글리프를 선택하고 복사하면 Illustrator에서 f (U+0066) 및 i (U+0069) 문자를 클립 보드에 추가합니다.

    2) 두 번째 예에서는 합자 문자 (&#64257)의 HTML 코드를 입력 상자에 입력하고 합자 문자 를 나타내는 합자 글리프 를 올바르게 얻었습니다 (. 기본 문자 은 실제로 위에서 언급 한 모호하고 상대적으로 무의미한 합자 문자이므로 해당 글리프는 단일 문자 U+FB01를 복사합니다.

    3) 세 번째 예에서는 렌더링 된 합자 문자 를 복사합니다. 2 부에서 렌더링 된 div id = “ce6a4c0942”>

    는 항상 해당 문자로 붙여 넣습니다. 특히 렌더링 방법과 관련하여 HTML 엔티티 코드와 문자의 차이에 대한 주요 혼란 인 것 같습니다. 코드 블록 내부 및 외부.

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

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

    U+FB01 문자를 HTML로 다시 가져 오면 대체 할 필요가 없습니다. 즉, 문자가 <code> 블록.

    Answer

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

    명확한 그림을 얻으려면 응용 프로그램이 화면에 텍스트 문자열을 렌더링하려고 할 때 어떤 일이 발생하는지 살펴 보겠습니다 (약간 단순화 된 방식으로).

    p>

    • 애플리케이션은 먼저 텍스트 문자열을 읽어 디스크 나 메모리에 저장된 문자열을 읽습니다.
    • 그런 다음 텍스트 레이아웃 엔진으로 보냅니다. 원하는 글꼴, 텍스트 언어 등과 같은 기타 속성 :
      • T 텍스트 레이아웃 엔진은 기본적으로 글꼴 파일을 열고 각 문자에 해당하는 글리프를 요청하고 글리프 대체를 수행합니다 (예 : fi 합자 글리프 fi) 및 위치 지정 (예 : 커닝)
      • 결국 레이아웃 엔진은 글리프, 서로 상대적인 위치, 입력 문자와 출력 글리프 간의 매핑. 문자 대 글리프 매핑은 단어 file의 처음 두 문자가 첫 번째 글리프 두 개 (fi 합자)에 해당한다는 것을 알 수 있도록합니다. ), 세 번째 문자는 두 번째 글리프, 네 번째 문자는 세 번째 글리프입니다.
    • 그래픽 렌더링 라이브러리는 다음을 사용하여 화면에 해당 글리프를 “그리기”하는 데 사용됩니다.
    • 사용자가 화면에서 “글리프”를 선택하면 응용 프로그램은 레이아웃 엔진에서 제공하는 글리프 대 텍스트 매핑을 참조하여 입력 텍스트의 어떤 부분이 사용자가 해당 텍스트를 선택하여 복사 할 때 클립 보드로 보냅니다.
    • 사용자가 텍스트 중간에 커서를 삽입하고 입력을 시작할 때도 마찬가지입니다. 매핑은 입력 텍스트에서 새 문자를 삽입 할 위치를 결정하고 업데이트 된 텍스트를 레이아웃 엔진으로 보내 프로세스 및 다시 그려집니다.

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다