[tex-live] urw35 base fonts on CTAN and TL

Reinhard Kotucha reinhard.kotucha at web.de
Sat Dec 16 00:28:05 CET 2017


On 2017-12-12 at 17:09:45 +0100, texlive at schoepfer.info wrote:

 > On 19.09.2016 02:14, Reinhard Kotucha wrote:
 > > On 2016-09-19 at 00:10:08 +0900, Norbert Preining wrote:
 > > 
 > >   > Hi Staszek,
 > >   >
 > >   > > E.g. on January 2015 there was much better release, and from July
 > >   > > 2016 it seems that fonts are finally proper. Moreover the whole
 > >   >
 > >   > AFAIR these "new" fonts changed the metrics compared to previous
 > >   > versions of some glyphs. Since these fonts are used as replacement
 > >   > for the Base35 fonts, they need to be metric wise equal. But they
 > >   > aren't.
 > >   >
 > >   > Then there is the addition of completely insufficient and broken
 > >   > cyrillic... but I see that they have at least added the cyrillic
 > >   > glyphs now for all fonts.
 > >   >
 > >   > I am really not sure what is the best way to proceed, and maybe the
 > >   > new fonts are again metric wise compatible ...
 > > 
 > > Hi Staszek and Norbert,
 > > the fonts do not only have to be metric compatible, they have to
 > > provide exactly the same sets of glyphs as the original fonts released
 > > by URW and maintained by Walter Schmidt.
 > > 
 > > The ghostscript fonts shipped with TeX Live are the same as those
 > > which are part of the psnfss LaTeX package.  And psnfss provides .tfm
 > > files for exactly these fonts.  This is why I maintain these fonts in
 > > TeX Live at all.
 > > 
 > > The main problem is that the fonts were extended but their internal
 > > names (the /FontName variable) were not changed.  The Type 1 font
 > > specification (Adobe) clearly says that there shall never exist two
 > > different fonts with the same /FontName.  For a good reason!
 > > 
 > > Some time ago someone told me that he created a PostScript graphic but
 > > a particular glyph didn't appear in the document created with LaTeX
 > > though he could see this glyph in a PS viewer.  It took me some time
 > > to find out what happened.  It turned out that he used a glyph which
 > > wasn't supported by psnfss, pdftex assumed that the font provided by
 > > ghostscript and that in the texmf tree are identical and substituted
 > > the font.  Such kind of problems are quite difficult to track down.
 > > 
 > > I'll look into the new fonts anyway.  But I don't think that we can
 > > use them because they are not compatible with what we have in TeX now.
 > > 
 > > If they turn out to be useful, the only way to make them available to
 > > the TeX world is to rename all these fonts (/FontName), create TeX
 > > support files for them, and create two packages, one for TeX and one
 > > for ghostscript.  I currently have no idea how to make such fonts
 > > accessible to ghostscript on all platforms.
 > > 
 > > Please note that the problem I described above occured on Unix.
 > > Windows users are in advantage because both, TeX and ghostscript are
 > > using exactly the same fonts.  On Unix there is currently no way to
 > > avoid such problems because TeX Live can't provide an adapted
 > > ghostscript installation for all supported platforms.
 > 
 > If this works on Windows...
 > Is it correct, that if a linux distribution provides another/newest 
 > version of urw-core35 type1 fonts and ghostscript, there is no Problem 
 > with metrics or "same sets of glyphs" when texlive/psnfss uses the same 
 > fonts by changing the corresponding map-files?
 > I assume generating font description(fd) files and virtual fonts(vf) 
 > would also be necessary, or would there be much more to be done from a 
 > linux distribution point of view?

Hi Johannes,
I fear that there is no satisfying solution.  We currently have three
different fonts with the same internal variable /FontName.  Each
supports a different set of glyphs.

 1. TeX Live provides and supports the fonts gratefully donated by
    URW.  None of the fonts were modified except NimbusSanL-ReguItal
    (uhvro8a.pfb) due to a severe bug in /germandbls, see
 
      http://tug.org/~kotucha/germandbls.pdf

    The original font is still available (uhvro8a-105.pfb).

 2. Ghostscript has subsets of these URW fonts built into the binary.
    These fonts are used if there is no file called "Fontmap" in
    Ghostscript's search path (GS_LIB).  Many glyphs were removed from
    the URW fonts but an additional glyph was added to the symbol
    font.

    According to Chris Liddell, a Ghostscript developer, the sole
    reason to provide any fonts at all is to have a replacement for
    the Adobe fonts built into PostScript printers.  Thus glyphs not
    supported by Adobe were removed from the URW fonts.

 3. Ghostscript offers an external font package.  It comes with its
    own Fontmap file and thus overrides the built-in fonts.  These
    fonts come with additional (Cyrillic) glyphs.   

The problem is that all three fonts are incompatible but have the same
/FontName.  According to Adobe's Type 1 specification there should
never exist two fonts with the same /FontName.

Many programs do not embed fonts into generated PostScript files but
only mention their name, for instance

  /Palatino-Roman findfont

If such a file contains Cyrillic characters, the corresponding glyphs
will only be shown in programs based on Ghostscript (gv, ghostview)
and only if the extended fonts are installed.  If you are using the
built-in fonts, even Ghostcript will not display them.

If such a file is used in the TeX world, only the psnfss fonts are
available and the Cyrillic glyphs are lost.  It's nasty because users
usually don't get an appropriate error message and often don't notice
that some glyphs don't appear in the final PDF file.  And even if they
notice that some glyphs are missing, debugging is extremely painful.

Nothing can be done in TeX Live in order to solve this problem.  Every
font can be supported if the necessary files are available but there
is absolutely no way to support different fonts with the same name.

The only reasonable thing you can do as a Linux distributor is to
offer an additional font package as an alternative to Ghostscript's
"urw-base35" fonts.  The fonts are here:

  http://tug.org/svn/texlive/trunk/Master/tlpkg/tlgs/fonts/

Users cannot install both font packages at the same time because fonts
with the same name are indistinguishable.  If you want to provide both
packages though, one of the actual Fontmaps has to be commented out.

This means that lib/Fontmap should either contain the lines

  % (Fontmap.GS) .runlibfile
  (Fontmap.TeXLive) .runlibfile

or

  (Fontmap.GS) .runlibfile
  % (Fontmap.TeXLive) .runlibfile

IMO it was a big mistake to modify the original fonts donated by URW
but not to change /FontName.  Thus I'm convinced that an alternative
font package based on the original URW fonts as shipped with TeX Live
is by far the best solution.  I even recommend to install these fonts
by default because this is the only way to make PostScript files
halfways portable.

Let me know if you are interested in a font package providing the
original URW fonts for use with Ghostscript.  During the next three
weeks I'm on leave and thus have more time as usual.

Regards,
  Reinhard

-- 
------------------------------------------------------------------
Reinhard Kotucha                            Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover                    mailto:reinhard.kotucha at web.de
------------------------------------------------------------------


More information about the tex-live mailing list