how does font get rendered?

badmad
7.May.2008 2.52pm
badmad's picture

hi folks,

it’s my first post here. i tried to use the search tool but as my questions are so general, it couldn’t return good answers.

I am trying to create few fonts and see how it comes on a webpage. In this process, i have couple of questions... basic ones!!

1. say I created fonts in a non-english language and used this font to develop a webpage. Now, when another person opens up this page, how will it be rendered on his machine? does he need to install this font?

2. is there any association between a font and unicode characters? if yes, can you explain how are they related.

3. Is my understanding correct here? Browsers don’t need any font installed on local machine to render unicode fonts? is it correct?

By asking all these questions, i am trying to understand how this font gets rendered on local user’s machine if used in a webpage to increase the usability of fonts.

please let me know. i may have asked wrong or a noob like questions but i hope it’d be fine.

thanks in advance



Theunis de Jong
7.May.2008 3.27pm
Theunis de Jong's picture

1. Not necessarily — see 2.

2. The font’s creator is responsible for assigning character codes to each of the images (“glyphs”). Although this can be in any number of different encodings, typically they get Unicodes as well. The Unicode of each character is used by almost every, if not every, program to distinguish between characters. While it’s perfectly possible to draw an ’A’ character in your font and assign it the Unicode value for, say, ’1’ (U+0030), this will make your font unusable in all programs: everywhere the character ’1’ is drawn, the end user sees an ’A’...

3. Why’d you think that? Browsers on common systems (Mac OS X and Windows) don’t draw fonts themselves. They rely on the system and on the fonts installed on this system. It’s quite rare to see a font unique to a browser. I think Safari on Windows may be an exception — I heard it comes with its own default font, Lucida Grande.
The situation is slightly different for Linux boxes, because these do not have a dedicated font drawing module. (But I suspect every current KDE and Gnome distribution works the same as Windows/OS X. Why would one include a font drawing module if the system already provides one?)

Back to 1. If your font is just for looks, it can safely be replaced by (almost) any system font the user has. The exception is, of course, if your font provides characters that are defined in the Unicode set, but are not available in the commonly distributed fonts. You might use a nice Cherokee font on your site, but if the user has no font at all with these characters, she can’t see them.


Ricardo Cordoba
7.May.2008 3.33pm
Ricardo Cordoba's picture

Hi. Perhaps you should read through these primers on Web typography — they will give you some answers and basic information.

http://webstyleguide.com/type/character.html

http://www.efuse.com/Design/web_fonts_basics.html

[EDIT] Ah — Theunis beat me to it, and answered your queries point by point!


badmad
7.May.2008 4.23pm
badmad's picture

thanks to both Theunis and Ricardo.

I get what Theunis said. I’ll first go through the references Ricardo sent and then pose any further questions. let me do some homework...

thanks again...


Theunis de Jong
8.May.2008 6.40am
Theunis de Jong's picture

Actually, a great deal depends on how you design your web page.

If it’s to be all in a “weird” character set, one not commonly supported, you’re in trouble...
On the other hand, if it’s mainly Latin text, with some parts in your special font, you might be able to insert these as images.

Another option is to start by saying “You will need this-and-this font to view the page”, and put it up for download. I guess a Windows TTF format is supported by the majority of OS systems — Windows, of course, but also Mac OS X, as well as any FreeType based Linux browser.


badmad
8.May.2008 4.45pm
badmad's picture

yeah, thats my worry. i plan to create font for a non-english language (Hindi, devnagari script). I think it’s the only solution I have.