[XeTeX] Troubles with an AAT Pig Latin font

j_mach_wust at shared-files.de j_mach_wust at shared-files.de
Mon May 24 14:50:43 CEST 2010


Hi

I have developed an Apple Advanced Typography (AAT) font that does Pig  
Latin. I have called it Entiumgay, since it is based on the SIL font  
Gentium by Victor Gaultney: http://openfontlibrary.org/media/files/j_mach_wust/474

Of course, it is a silly font. I mainly did it as an excercize in  
complex AAT. While it works fine in normal Mac OS applications, there  
are troubles in XeTeX (of course, it will only run on Mac OS XeTeX  
since it is an AAT font). In a document that has only two or three  
words, XeTeX will run successfully, but there will be a warning and  
some glyphs will overlap. In a document that consists of more words,  
it will quit with an error.

I have tried the following document:


\documentclass{article}
\usepackage{fontspec}
\font\piglatin="Entiumgay/AAT"
\begin{document}
\piglatin

hello world hello world hello world

hello world

hello world

hello world
\end{document}


XeTeX will quit with the following error message:


xelatex(1797) malloc: *** error for object 0x1027800: incorrect  
checksum for freed object - object was probably modified after being  
freed.
*** set a breakpoint in malloc_error_break to debug
xelatex(1797) malloc: *** error for object 0x1027800: pointer being  
reallocated was not allocated
*** set a breakpoint in malloc_error_break to debug

** ERROR ** File ended prematurely


Output file removed.
Bus error



I don't know whether I have done something incorrect in the font, or  
whether it is just too complex for XeTeX. The font will do multiple  
insertions and contextual substitutions on each word. It will append  
nine "dummy" glyphs, that is, fake GID numbers that don't point to any  
existing glyph in the font. This is an AAT trick, and XeTeX has no  
troubles with it in less complicated fonts. The trick is that after  
all the AAT rules, no "dummy" glyph must be left. In the pig latin  
font, the "dummy" glyphs that are not substituted by pig latin letters  
will all be replaced by the .null glyph, that means, they are  
essentially deleted again. I have described a simplified, schematical  
explanation of the way the AAT works: http://openfontlibrary.org/media/howididit/474 
  (if you want all the details, you'll have to look at the AAT Morph  
Input File that comes with the font release).

-- 
grüess
mach




More information about the XeTeX mailing list