[luatex] subtle bug in generating PDF outlines

Werner LEMBERG wl at gnu.org
Sat Jan 4 18:14:29 CET 2025


Folks,


please have a look at this Ghostscript bug report

  https://bugs.ghostscript.com/show_bug.cgi?id=708234

which describes in great detail how the PDF outline as constructed by
luatex contains a buglet: the mandatory `/Limits` array computes its
end element incorrectly, apparently not using 'lexical' (i.e,
byte-oriented) comparison.  The thing is that some PDF viewers like
`evince` and `okular` seem to ignore the `/Limits` array (all links
work just fine), while `acrobat` does not, as explained in the report.

This error does not happen with pdftex (from TeXLive 2024) – a
compilation of LilyPond's Notation Reference, followed by calling

```
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
   -sOutputFile=notation.pdfwrite.pdf notation.pdf
```

doesn't report an error (I can send the resulting PDF to interested
people off-list).  Note that the old PDF driver of GhostScript (from
version 9.52, for example) is not as strict as the current version and
the above call actually succeeds.

I used versions the following versions.

  luatex: Version 1.18.0 (TeX Live 2024), Development id: 7611
  gs: self-compilation from current 'ghostpdl' git repository
  mutool: self-compilation from current 'mupdf' git repository

The uncompressed PDF version referenced in the bug report can be
created with

```
mutool clean -d notation.pdf notation.uncompressed.pdf
```

Alas, I don't know how to create a small input file that you can
actually use as a test – unfortunately, the creation process of the
LilyPond's Texinfo documentation is extremely complicated, making
simplifications a nightmare.


    Werner



More information about the luatex mailing list.