Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It's 100% free, no registration required.

I saw this question on the Typography site proposal and it bugged me that I didn't know the answer. I'd always treated 'glyph' and 'character' as interchangable.


After reading an explanation on the Unicode Character Encoding Model page, my understanding is roughly this:

  • Characters are defined by their meaning in language, glyphs, by their appearance. So, the ligature for aesthetically combining fi is one glyph, but two characters.

So, my belief is (please correct me if I'm wrong) that the practical difference would be:

  • Text parsers that aren't interested in the aestetics of text will read glyphs as their respective characters. So:
    • If you were to copy and paste text containing glyphs into a plain text editor, the glyphs would be converted to their respective characters (a ligature glyph would become f and i)
    • Any well made automated system based on text parsing (e.g. search engine crawlers, screen readers, spell checkers) would interpret the glyphs as their respective characters.
    • One character can have many glyphs or glyph sets. I want to say one glyph can only have one character, but this clearly isn't right as there's an example on the linked article of 3 glyphs and glyph sets that seem to each correspond to a character and set of characters. I don't quite see how this could work: surely that means there will be inconsistency or ambiguity in how those glyphs are interpreted, varying by interpretter? (or does it vary by language, or by font?)
    • While glyph browsers (e.g. the one in Illustrator) contain the full glyph set of a font, character maps (e.g. the Windows character map) only contain characters, not glyphs that are multiple characters like ligatures (something I'd not noticed before)

I feel like I'm nearly there but I've clearly misunderstood something somewhere along the line: not just the "One glyph multiple characters" thing, but also, copying and pasting behaviour with ligatures isn't quite what I expected:

  • Copy the ligature from Illustrator to this input box: pastes as fi (two characters) as expected.
  • Paste in the HTML code for it (fi) - displays as the ligature when not in a code block (fi - which in this font doesn't look much like a ligature, but you'll see is one if you try to select just half of it), and the code when in a code block (fi), as expected.
  • Copy and paste the rendered non-code-block ligature back into the input box: pastes as the ligature character, and renders as the ligature regardless of whether it's in a code block or not (fi and ). Likewise words containing it: fit misfits (fit misfits) pastes as fit misfits (fit misfits). Maybe it depends on whether the place it's being pasted understands the encoding used?

How far wrong is my understanding of this? Can someone put me right: stating a clear definition of the difference between glyphs and characters (if mine is wrong or can be improved), and give clearer/more accurate examples than mine of what that means in practice?

share|improve this question
2  
It becomes way more complicated when you have scripts like arabic where you have combining characters. –  Martin Schröder Dec 17 '12 at 10:30
1  
@MartinSchröder +1 Sounds like the opening sentence of an excellent answer... :) –  user568458 Dec 17 '12 at 10:37

3 Answers 3

up vote 1 down vote accepted

Glyphs relate to how text is rendered, characters to how it's interpreted. When you copy&paste, the source application usually gives a choice of several formats. Plain text will decompose the fi ligature into f and i, HTML format may translate it to the char entity you quoted or also decompose it in f and i.

In general the relation between characters and glyphs is n:m. In Indic languages some characters divide into two glyphs that are placed at different places of the word. In Latin the closest to that situation would be rendering é as two glyphs (e and ´). In Arabic each character has different glyphs depending on its position within a word: initial, middle, final or isolated.

The translation from characters to glyphs is specific to each application and the typographic features it supports. For Latin text this translation used to be straightforward, but OpenType fonts introduced additional features like ligatures, swashes, alternate forms, small caps etc.

For practical reasons you only concern yourself with glyphs when you implement how an application renders text, or when you design a font, or when you want to apply an OpenType feature that replaces some glyphs with others (e.g. ligatures). Otherwise Unicode code points are your friend.

share|improve this answer
    
Hi user322483, welcome to GDSE and thanks for your answer. If you have any questions, please see the help center or ping one of us in Graphic Design Chat once your reputation is sufficient (20). Keep contributing and enjoy the site! –  Vincent May 18 at 13:17
    
You write " In Arabic each character has different glyphs depending on its position within a word: initial, middle, final or isolated." <--- Wouldn't they be different characters. English has A and a, but in computing talk, A and a are different characters. each glyph is mapped to a different code. Hebrew has chaf and final chaf(the letter chaf at the end of a word, looks different) and i'm sure it's termed as a different character in computing. –  barlop Jun 18 at 1:06

Characters are what stored in text files, processed by applications, and moved around, while glyphs is their visual representation.

To have a clear picture, lets see what happens when an application tries to render a string of text on the screen (in a bit simplified way):

  • The application first read the text string, that it the string of characters stored on the disk or in memory.
  • It would then send it to a text layout engine, among some other properties like the desired font, text language and so on:
    • The text layout engine basically opens the font file, asks it for the glyph(s) corresponding to each character and do some glyph substitution (like replacing the glyph for f and i with the ligature glyph of fi) and positioning (like kerning).
    • At the end the layout engine has a sequence of glyphs, their positions relative to each other, and a mapping between input characters and the output glyphs. The character to glyph mapping is so that it knows that the first two characters in the word file correspond two the first glyph (the fi ligature), the 3rd character to the 2nd glyph and the 4th character to the 3rd glyph.
  • A graphics rendering library is then used to “draw” those glyphs on the screen using shapes from the font.
  • When the user selects “glyphs” on the screen, the application would then consult the glyph to text mapping provided by the layout engine to find what part of the input text corresponds to what the user is selecting and send that text to the clipboard when the user copies it.
  • The same happens when the user inserts the cursor in the middle of text and starts typing, the mapping determines where in the input text to insert the new characters, and the updating text is send to the layout engine to process and redrawn and so on.
share|improve this answer

I don't think your understanding is incorrect you're just seeing systems that try to help the user by pasting what it thinks they want. Since some ligatures ('fi', 'fl') are fairly common outside of typesetting systems, software recognizes that the user probably didn't enter that glyph, rather another app transformed their typed characters.

In short: Character refers to a linguistic unit. Glyph refers to a designed instance of that unit, whether it be uppercase, lowercase, small cap, historic, or stylistic variant.

share|improve this answer
    
In computing, A and a are different characters. ASCII has 128 characters and the term character there includes A and a as distinct characters. –  barlop Jun 18 at 1:08
    
Engineers use lots of words that don't align with precedents in other industries. Yours is one good example. –  plainclothes Jun 19 at 5:20
    
who came up with the term "character" and "glyph" first? graphic designers or computer engineers? i'd have thought the computers came before the graphic design. But there may be a printing industry that preceded graphic design and arguable preceded computers in some ways or predated modern computers. I guess though the people that could answer best for what is now graphic design, is the printing industry, but there's no printing industry stackexchange. But it'd be interesting to know who borrowed from who and in what way re the term Character. –  barlop Jun 19 at 7:09
    
Typography came long before software engineering. Please do post here if you undertake the research and find the origins. My guess is that it will be sometime in the 17th century. Possibly as early as the first typographers in the mid 16th. –  plainclothes Jun 19 at 15:56

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.