View Issue Details

IDProjectCategoryView StatusLast Update
0000979luatexluatex bugpublic2016-07-19 16:47
Reporteroberdiek Assigned ToHans Hagen  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version0.97.0 
Summary0000979: Invalid PDF file, if font name contains spaces
DescriptionThe font din1415e.ttf (http://www.modell-bahn-tipps.de/DIN1451.zip)
does not contain a PostScript name:

    $ otfinfo –i din1451e.ttf:
    Family: DIN 1451 Engschrift
    Subfamily: Regular
    Full name: DIN 1451 Engschrift
    Unique ID: DIN 1451 Engschrift

and the font name contains spaces.
Then LuaTeX

    $ luatex --version
    This is LuaTeX, Version 0.95.0 (TeX Live 2016/Cygwin)

creates an invalid PDF file. The test file for LuaTeX and format plain:

    % arara: luatex
    \nopagenumbers

    \protected\edef\pdfcompresslevel {\pdfvariable compresslevel}
    \protected\edef\pdfobjcompresslevel {\pdfvariable objcompresslevel}
    \pdfcompresslevel=0
    \pdfobjcompresslevel=0

    \input luaotfload.sty

    \font\foo = file:din1451e.ttf
    \foo Hello World\bye

Evince (Windows port, 2.32) complains with lots of error messages like:

     Error (5457): Dictionary key must be a name object

Sumatra 3.1.1 reports:

    - pdf-parse.c:436: skipping invalid key in dict
    warning: ... repeated 6 times ...

The invalid dictionary object is:

9 0 obj
<</Type/FontDescriptor/FontName/QXQAAR+DIN 1451 Engschrift/Flags 4/FontBBox[0 -190 1000 667]/Ascent 667/CapHeight 667/Descent -190/ItalicAngle 0/StemV 86/XHeight 476/FontFile2 8 0 R/CIDSet 7 0 R>>
endobj

Reformatted:

    9 0 obj
    <<
      /Type/FontDescriptor
      /FontName/QXQAAR+DIN 1451 Engschrift
      /Flags 4
      ...
    >>
    endobj

The value for key "/FontName" should be "/QXQAAR+DIN1451Engschrift" or "/QXQAAR+DIN#201451#20Engschrift" without explicit spaces.

Also the font stream contains an error:

    %!PS-Adobe-3.0 Resource-CMap
    ...
    /CMapName /TeX-Identity-QXQAAR-DIN 1451 Engschrift def

Again, there should be one name token between "/CMapName" and "def" and the two spaces removed or replaced by "0000020".

If the font file is passed through fontforge, then fontforge sets
the PostScript name with the font name, where the the spaces are removed.
Steps To Reproduce1. Font download: http://www.modell-bahn-tipps.de/DIN1451.zip
2. The the font archive is unpacked: unzip DIN1451.zip
3. Test file 'test.tex' as already given in the description is created.
4. Running LuaTeX: luatex test
=> test.pdf is generated without error or warning, but invalid dictionary object.
TagsNo tags attached.

Activities

oberdiek

2016-06-20 19:24

reporter  

test.tex (289 bytes)

luigi scarso

2016-06-20 20:31

developer   ~0001620

Confirmed.

Hans Hagen

2016-06-20 21:10

manager   ~0001621

will be fixed in the font loader (which is supposed to pass a valid psname and we don't want to end up in double escaping mes)

Hans Hagen

2016-07-19 16:46

manager   ~0001622

fixed in (otf) font loader

Issue History

Date Modified Username Field Change
2016-06-20 19:24 oberdiek New Issue
2016-06-20 19:24 oberdiek File Added: test.tex
2016-06-20 20:31 luigi scarso Note Added: 0001620
2016-06-20 21:10 Hans Hagen Note Added: 0001621
2016-07-19 16:46 Hans Hagen Note Added: 0001622
2016-07-19 16:46 Hans Hagen Status new => closed
2016-07-19 16:47 Hans Hagen Assigned To => Hans Hagen
2016-07-19 16:47 Hans Hagen Resolution open => fixed
2016-07-19 16:47 Hans Hagen Fixed in Version => 0.97.0