A very "strange" problem!

kostas's picture

I use a greek polytonic font without latin glyphs. During adding (in MS-Word) an accented vowel in a preformated (in the above font) text, font changes to Courier or Times New Roman. Is there something wrong with the font or the OS (Windows/MacOSX)?
Kostas Siskakis

Anagrafi

David W. Goodrich's picture

One of MS Word's more subtle features is that if you enter a character in a font that doesn't have that character, Word will look for any installed font that does have that character and substitute it -- without letting you know.

David

Michel Boyer's picture

There are two very similar looking characters in the unicode charts, 03AE and 1F75:



03AE GREEK SMALL LETTER ETA WITH TONOS
1F75 GREEK SMALL LETTER ETA WITH OXIA

The character 1F75 is in a block containing precomposed polytonic Greek characters. Maybe one of those two characters is missing from your font.

kostas's picture

Many thanks for your advice. Unfortunately, both of glyphs are exist. Any other idea about the problem?
Kostas Siskakis
Anagrafi

Michel Boyer's picture

A similar problem with U+0162 and U+0163 was reported in 2007 with Myriad pro (http://typophile.com/node/36473#comment-222688) on the Macintosh. I don't know if such things can still occur but the solution was to rename the characters as uni0162 and uni0163.

satya's picture

This can also happen if you have the characters in font - but - don't have their Unicode values assigned. Did you check it?

kostas's picture

Every character has its own Unicode value assighed.
I am wondering if something wrong happens with the "Generating Font Options".
Kostas Siskakis
Anagrafi

Michel Boyer's picture

If something is missing from the font that is generated, you should be able to know from the .ttx file generated by ttx. Here is a rudimentary script that I wrote to find some attribute values and their paths:

import sys, xml.parsers.expat

path = []
def disp(path):
  indent= ''
  for a in path:
    print "%s%s" % (indent, a)
    indent = indent + '> '
  print ''

def start_element(name, attrs):
  global path
  found=False
  entry=[name]
  for a in attrs:
    entry=entry+[ [a, attrs[a]]]
    if attrs[a] in search:
      found=True
  path=path+[entry]
  if found:
    disp(path[1:])
def end_element(name):
  global path
  path.pop()

p = xml.parsers.expat.ParserCreate()
p.returns_unicode=0
p.StartElementHandler = start_element
p.EndElementHandler = end_element

file=open(sys.argv[1])
search=sys.argv[2:]
p.ParseFile(file)

If the text above is copied and put in a file named pathatt.py and if you have some .ttx file, say DejaVuSans.ttx, then

python pathatt.py DejaVuSans.ttx etatonos 0x3ae 0x1f75 uni03AE uni1F75

will search the .ttx for occurrences of etatonos, 0x3ae, etc. You need to know exactly the attribute strings that should be in the file: for instance, there is no leading zeros for hex numbers and they are lower case.

By comparing the output with the output from a font that is working fine, maybe you can locate the problem.

Michel

Syndicate content Syndicate content