[pdftex] Re: [MiKTeX] pdfLaTeX

Reinhard Kotucha reinhard at ms25.ath.cx
Tue Mar 11 01:10:41 CET 2003


>>>>> "Reinhard" == Reinhard Kotucha <reinhard at ms25.ath.cx> writes:

    > Distiller removes *all* subroutines and replaces the call to
    > subr 230 by its content.

Hi, I just looked into the extracted fonts and must correct myself:

Distiller doesn't replace the the call to subr 230 by its content, it
just removes the call as well.

Subroutine 230 contains only hinting information, which then is lost.
This might have an impact on the quality of glyph rendering at low
resolutions. 

Furthermore, there are some differences in the header:

1. Some variables that are unimportant in this case are removed
   (FullName, FamilyName) by distiller.

2. Distiller removes comments.  The copyright notice gets lost.  This
   is ok for subsetted fonts, for complete fonts it's probably
   undesired.

3. Hints are removed, such as BlueValues, BlueShift, BlueFuzz.  Does
   Distiller notice that the /BlueValues array is empty in cmsuper?

BTW., textrace can't produce /BlueValues, but can't them be stolen
from the BSR fonts?

    > BTW, subsetting in dvips is very similar.

The recent version of dvips doesn't insert dummy subroutines (that
only have a return statement).  If they are not needed by dvips, why
are they needed by PdfTeX?  Are they included to circumvent problems
with Adobe programs?

I now compared the output of pdftex with that of dvips.  Both programs
do not remove anything from the font which might be useful.

There are two differences:

1. Dvips removes all unused subroutines, while pdftex replaces them by
   dummies.  If it works for dvips, it probaly should work for PdfTeX
   as well.

2. Dvips always puts an encoding vector into the font.  This is only
   required for raw fonts. If a font is reencoded, it doesn't matter
   how the font itself is encoded.  PdfTeX only inserts an encoding
   vector into the font if the font is not reencoded.

The requirements for pdftex and dvips are very similar.  I wonder
whether it would make sense to put the T1 font inclusion stuff into a
library which can be shared by both programs.

There is probably a bug in both, PdfTeX and Dvips.  If a font is
subsetted, the /UniqueID is not removed.  This might be wrong and can
lead to problems:

If a file that contains a subset of a font is sent to a printer, the
bitmaps are hold in the printer's cache.  If an other file is then
sent to the printer which uses another subset of the same font or the
complete font, the printer will ignore the font if it has the same
UniqueID and will use the font which is already in the cache.  In this
case some characters will be missing.

Adobe's TYPE1_SPEC.PDF says:

Page 13:
UniqueID is a value important to font identification and in helping
the PostScript interpreter properly cache characters between jobs.

And PLRM.PDF says:

Page 336:
When you copy a font dictionary for the purpose of creating a modified
font, you should not copy the UniqueID or XUID entry. As an exception
to this general rule, it is acceptable (and preferable) to retain the
original UniqueID or XUID entry if the only modified entries are
FontName, FontInfo, FontMatrix, or Encoding, because those changes do
not affect the glyphs appearance or metrics.

Regards,
  Reinhard

-- 
----------------------------------------------------------------------------
Reinhard Kotucha			             Phone: +49-511-27060390
Marschnerstr. 25
D-30167 Hannover	                         mailto:reinhard at ms25.ath.cx
----------------------------------------------------------------------------
Microsoft isn't the answer. Microsoft is the question, and the answer is NO.
----------------------------------------------------------------------------




More information about the pdftex mailing list