On Oct 30, 2009, Oliver Buerschaper wrote:
> I seem to have spoken too soon. The very next document I prepared
> had the same boxes-rather-than-letters problem.
>
> That said, I cleared the font caches again and, after restarting,
> the document looked correct. Perhaps this is a coincidence. Or
> perhaps there is something amiss with the way my computers are
> caching fonts. Sigh.
Well, if your engine is pdftex (from an unpatched TeXLive 2008) then
chances are you're running into the nasty (TM) font cache bug:
http://www.tug.org/mactex/fontcache/
Oliver
The symptoms seem right: strange, unpredictable display problems with
Apple's pdf software but not Adobe's. And it's not just pdftex,
apparently. They say that luatex is affected too. That's primarily
what I use. So we have both known symptoms (sort of - they're vague)
and an allegedly known cause. Perhaps we have a diagnosis.
Here is Dick Koch, "A Fix for the Corrupt Font Cache Bug"
http://www.tug.org/mactex/fontcache/Font-Cache-Bugfix.pdf
The “corrupt font cache bug” on OS X has been traced by Melissa
O’Neill to a bug in pdftex, present in that program since 2004.
The incorrect code is also used in other programs, notably dvips,
luatex, and metapost. …
The code containing the pdftex bug was used with little change in
modern versions of dvips, so fixing the bug in dvips was not
difficult. However, it wasn’t so easy to find the corresponding
code in luatex and metapost. Instead of waiting for decisive fixes
in these programs, we decided to just release the fixed pdftex and
dvips. This should fix the bug for most users. Notice that pdftex
is used when typesetting in “pdftex” mode and dvips is used when
typesetting in “TeX and DVI” mode. XeTeX does not have the bug.
And in another document, "Looking over the Debugger’s Shoulders ",
Koch summarizes what they discovered this way:
http://www.tug.org/mactex/fontcache/Debugging.pdf
Two bugs contributed to the problem. First, pdftex, dvips, luatex,
and metapost were not correctly subsetting certain fonts. And
second, a large number of fonts contained subroutines which did not
conclude with a RETURN command. Many of these were created with the
utility mmpfb, which has been patched.
Question: is this still a problem for luatex 0.44? (Please say no).
If not, perhaps I should clean my caches and use only MkII/XeTeX.
Even then, I gather that old documents created with luatex will still
be little time bombs (see Appendix, below). I guess I have to delete
all pdfs made by luatex and regenerate them as needed. That's a lot of
documents.
"Nasty" is right. Oy.
mjg
Appendix: Koch's explanation of why the font cache might become
corrupt seemingly for no reason at all.
http://www.tug.org/mactex/fontcache/Font-Cache-Bugfix.pdf
When GUI programs display pdf files, they call Apple’s internal
pdf routines. In turn, these routines call Apple’s font routines
to construct bitmaps for the outline fonts. These Apple routines
store the bitmaps in a font cache to speed up future display. For
reasons unknown until recently, this font cache can become corrupt;
this is “triggered” by displaying a defective pdf file. After
that trigger, display problems persist for all files. To fix the
problem, the font cache needs to be rebuilt, as happens when the
machine is rebooted. Adobe Acrobat does not use Apple’s pdf
display routines, so it is immune to the bug. ...
Once you install the repaired pdftex and dvips binaries, pdf files
created by these programs will not contain damaged fonts and thus
won’t trigger the bug. But unfortunately, your old pdf files may
still be damaged. In addition, users on other platforms won’t have
the repaired binaries for some time, so pdf files sent by
colleagues may still be damaged and trigger the bug. That is why
you may still experience the bug from time to time until the TeX
world catches up.
It isn’t even necessary to display an old damaged pdf file to
trigger the bug, because Apple’s QuickLook software and the
software in Finder which gives a miniature version of the first
page in the file browser can trigger it. If you keep experiencing
the bug after applying the fix, you may need to retypeset files
which you often open.
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________