blue chars in my font... empty font ?

Hi all !

I need to create a font which includes the ascii chars and other some other specific chars (for polish and turkish languages) that I will map to some not printable chars.

I made the font and it installed correctly. The problem is that it seems that the font is empty as all the chars are blue in FontCreator view. I read some advices on this forum and I did : “complete composite”, which has a strange behaviour… deleting some non latin glyphs…

I am new to Font Creator and any help would be appreciated ! :smiley:

Regards

Note that I can send my font file if needed…

You need to create the glyphs (character outlines) for each of the ASCII characters in your font. If your font doesn’t yet have these glyphs (all blue characters are empty glyphs) then complete composites might replace existing glyphs.

For example: if your font has the TradeMark symbol :trade_mark: and you run complete composites on that glyph, it will attempt to create the symbol from the capital “T” and capital “M”. If those glyphs don’t exist in your font, the result will be to erase the existing :trade_mark: symbol.

The Complete Composites feature can be used to add the :trade_mark: symbol in fonts that don’t have it. I

As a rule of thumb, Complete Composites should be used on selected empty glyphs, e.g. á é í ó ú to compose these accented characters from the base glyphs (a e i o u) and the acute accent ´

Thank you for your explanation…
But all my font glyphs seem empty so ! My A, my B, my C… etc…

So I try to do differently :
I opened the Arial font and saved it to MyFont.ttf.

My first question would be : Why glyphs are sorted in that way ? I would have expected to find an unicode order table…
Characters from $0 to $1F are not printable, but they are not mapped into Font Creator view… and a sort glyph sorts in an order I can not understand.

In fact my problem is : I would like to see in font creator view, the same order I can find on an ascci table. Then glyph number (indicated in the left bottom window of font creator) will corresponds to unicode encoding.

Thanks a lot for your precious help !

Regards,

Pierre

To give you a visual guidance, most cells contain a sample character shown as light blue outlines. Sample characters don’t really exist in the font, you have to add glyph data yourself.

My first question would be : Why glyphs are sorted in that way ?

It might be due to the limitations with the byte encoding table commonly used for Macintosh platform mappings. Since FontCreator shows the glyphs in the exact order they are stored in the font file, so you should ask the font designer.

In fact my problem is : I would like to see in font creator view, the same order I can find on an ascci table. Then glyph number (indicated in the left bottom window of font creator) will corresponds to unicode encoding.

That feature is mentioned here:
http://forum.high-logic.com:9080/t/sorting-glyphs/569/1

Characters from $0 to $1F are not printable, but they are not mapped into Font Creator view…

Even though they are not printable they would be mapped into the FontCreator overview window if they were in the font. An application program using the font might not pass the keystroke through to the part of the application program using the font, yet at least some of them, maybe all of them, could be added into the font if one wants to do so.

A new font in FontCreator has a number of ready-mapped yet empty glyphs in it as a convenient way of helping people making fonts, by including those glyphs widely used. I find that there are four characters which I usually include in fonts which are not in that selection and lots which I do not usually include in fonts in that selection. The four are Y macron, y macron, AE macron and ae macron, which are used in transcribing Old English writings, (and which also have some other uses) so it is a rather specialized usage, yet I do like to include them, so I have to add them manually.

Yet the selection is good for many purposes and is helpful. If one needs other glyph positions they can be added, unwanted glyph positions can be removed.

What are you displaying in the cell headings in the glyph overview window? I use Tools Options… Overview then select the choice of Postscript name. There are six choices available.

… some other specific chars (for polish and turkish languages) that I will map to some not printable chars.

I wonder why you are wanting to map the characters for Polish and Turkish to some non-printing characters. I know little of those languages yet it may be that a new font in FontCreator has empty glyphs for those characters already mapped using the correct Unicode positions. If for some reason, such as use with an application program which does not use Unicode, someone wants to produce a font where only codepoint values of 255 and below are used, the way to do it is to use the codepoints which Unicode uses for the accented characters of Western European languages, there are some older standards used for such purposes. Yet if you can use Unicode mappings that would be best.

Have you seen these documents? They show which characters are used for the languages and the Unicode codepoints for them.

http://www.evertype.com/alphabets/polish.pdf

http://www.evertype.com/alphabets/turkish.pdf

They are linked from the following web page.

http://www.evertype.com/alphabets/

They are from the webspace of the eminent linguist and Unicode expert Mr Michael Everson.

http://www.evertype.com/misc/bio.html

William Overington

20 March 2007

Hi again forum members,

For some reason I won’t explain here, I still would like to display cyrilic Б char (unicode $411) instead of euro symbol (unicode $80).
I then created and installed a home made font file from Arial normal font to do such a strange thing.
It works for some chars, ie « (unicode $AB) is displayed as cyrilic и (unicode $438)…
…but for other ones it fails and the original char is displayed, ie € symbol (unicode $80) is displayed instead of expected cyrilic Б char (unicode $411)…

I can’t understand why it works for some chars and not for others ?!?!


Do you have any idea ?

Thanks a lot for your help !

Best Regards,

Pierre

Talking about the Microsoft Unicode mappings, Unicode $80 is not the Euro sign but a control character. The glyph that represents the Euro sign should be mapped to code point $20AC.

More info at the Unicode website:
The Unicode Character Code Charts By Script
$0080 - $00FF : Latin-1 (PDF)
$20A0 - $20CF : Currency Symbols (PDF)

Thank you for your response ! but $0080 was just an example.
The problem is not to know which symbol corresponds to which code. My problem is that I would like to display a symbol different from which is usually displayed for a given code. For some code it works, for other it does not… It looks like there is a problem for $80 code and some of the following ones.
What I can not understand is : I have changed symbols for codes from $80 to $C2 in my font. Symbols from $A1 to $C2 are well changed but symbols from $80 to $9F are not displayed as configured in my font. As I said, euro symbol is displayed instead of my configured cyrillic symbol when a $80 is “called”
Perhaps, these control unicode codes are reserved… but as other control codes are located between $0 to $1F and as I succeeded in making them display what I want, I cannot understand… :cry:

Thank you again for your expert eyes on this problem !

Best Regards,

Pierre

My problem is that I would like to display a symbol different from which is usually displayed for a given code.

Can you give us an example?

here is an example :

When sending “¯€£³” to my Windows XP for display I would like to display “мБар” (which is the russian “mbar” translation)
Editing “¯€£³” in an hexa editor shows me the corresponding codes : $Af $80 $A3 $B3
So to be able to display such a russian “mbar” string sending “¯€£³” to my windows application I made this corresponding table :

code sent ----> symbol to be displayed
¯ ----> м (unicode $43C)
€ ----> Б (unicode $411)
£ ----> а (unicode $430)
³ ----> р (unicode $440)

… and it works for ¯ (which displays м), £ (which displays а) and (³ which displays р)… but windows xp still displays € (instead of expected Б)

Too much strange for a beginner like me… I have sent an email with my font attached, hope that can help…

Thanks a lot !

Pierre

Some software applications, such as version 9 of the desktop publishing package made by Serif, can only access 256 character codes.

This is a situation which has been around for some years and is because characters are each stored using one 8-bit byte. Many modern applications are implemented with characters each stored using two 8-bit bytes.

In the older systems, there was often a need to use some characters from Unicode-based fonts, where characters use codepoints each stored using two 8-bit bytes.

This was, and still is, achieved using codepages, whereby the 128 codes from $80 to $FF are each mapped to a Unicode character codepoint of two bytes. That is, although the software package using the codepage can still only access a total of 256 characters, of those 256 characters 128 can be any Unicode character.

In Unicode, $80 to $9F are for control codes and $A0 to $FF are mostly for the accented characters used in the languages of Western Europe, langauges such as French, German, Portuguese and so on.

There are various codepages which can be used for various purposes, such as for scripts from the Indian subcontinent and so on.

One particular codepage, often the default codepage on computers in Western Europe, in fact has the characters from $A0 to $FF the same as in Unicode, so although the codepage structure is in principle looking them up and replacing one glyph by another, it is actually replacing a glyph by a copy of itself, so it seems as if no look-up is being done.

However, the codes from $80 to $9F are used for being replaced by other Unicode codepoints.

It is possible that the software application which you are using is using that codepage. If so, in oreder to produce a font, you need to find out a list with two columns in it, the first column having 32 codes from $80 to $9F and the second column having thirty-two Unicode codepoints. The one corresponding to $80 is U+20AC, as Erwin mentioned earlier. So, the next stage is to find those other thirty-one Unicode codepoints. Then, when making your font using Font-Creator, you need to put your required glyph designs at the thirty-two Unicode codepoints in the second column of the list.

However, there could be some problems in doing that as four of them are used for smart quotes and some programs will substitute those for the ’ and " characters. That is, if one types “hello” into the program, it may change the first " to become a 66 style open quote and the second " to become a 99 style close quote. However, not all packages do that, so it might not happen.

I note that you wrote “I have changed symbols for codes from $80 to $C2 in my font.”.

If you are not using $C3 to $FF, a better solution to the problem may perhaps be not to use $80 to $C2 but to use $A1 to $E3 instead, that would avoid the problems of the smart quotes.

However, proceeding with the original problem as presented, the answer to how to find the thirty-two codes for the second column of the list is on the following page.

http://en.wikipedia.org/wiki/Windows-1252

Some would be easier to use than others, for example OE oe and the S and Z accented characters. Some such as the smart quotes could lead to problems.

Anyway, I hope that this helps.

William Overington

30 March 2007

I thank you very much for your explanations ! All is clear now !
In fact, codepage acts as the last filter and whatever is the glyph for a code in the range $80 to $9F in my font, the displayed symbol will be automatically the unicode symbol defined in the codepage (Windows-1252).

I will try this on my font ! :smiley:

Thank for your expert support !

Best regards,

Pierre