Potentially erroneous CID-GID mapping created by LuaTeX

Simon Spiegel simon at simifilm.ch
Mon Mar 25 07:20:22 CET 2019


> On 25 Mar 2019, at 00:30, Simon Dierl <simon.dierl at cs.tu-dortmund.de> wrote:
> Hi,
> I hope this is the correct place to report issues with TeXLive's
> Lua(La)TeX -- if not, I would be grateful to be redirected to an
> appropriate venue! If it is, however, read on...
> When attempting to create PDF/A-3a compliant PDFs using LuaLaTeX, after
> some configuration, VeraPDF [1] (an open source PDF/A compliance
> checker) only flagged a single issue, namely a violation of clause
> in the ISO 19005-3:2012 specification. The spec demands that a
> subfont's CIDSet must -- if present -- match the CIDs mapped in the
> CID-to-GID mapping.
> After some debugging, I discovered that LuaTeX always maps CID 0 to GID
> 0 in the created PDF; however, the CIDSet writing code (writecff.c)
> explicitly excludes CID 0 from being marked in the CIDSet. Modifying
> the loops to include CID 0 into the CIDSet [2] creates a compliant PDF,
> as does disabling CIDSet writing altogether [3].
> Inspecting the PDF (using a debugger to inspect VeraPDFs internal state
> [4]) shows that the CIDSet only contains CID 115, while the CID-GID
> mapping contains 0->0 and 115->1. The 0->0 mapping is present for every
> font written by LuaLaTeX for documents using more than one font.
> Since I do not know if the 0->0 mapping serves any technical purpose, I
> am not certain how to correctly resolve this issue; I suspect that
> either the mapping should be fixed or the CIDSet should be corrected.
> See [5] for a MWE demonstrating the issue. The issue can be reproduced
> using versions 1.07.0 (tl 2018) and 1.10.0 (tlpretest 2019). It also
> occurs for the PDF/A-2a compliance level. PDF/A-1a and all PDF/A-*b
> levels do not demand CIDSet completeness; the created PDFs are
> compliant.

This looks like the same issue I had: https://tex.stackexchange.com/questions/474197/pdfx-incomplete-cidset-in-some-fonts/474336?

If so, a simple \pdfvariable omitcidset=1 will do the trick

I spent quite some time tracking this problem down, and I was quite surprised that pdfx does not take care of this already when you select the respective pdf variant.


Simon Spiegel
Maneggplatz 18
8041 Zürich

Telephon: ++41 44 451 5334
Mobophon: ++41 76 459 6039


„Stay Hungry. Stay Foolish.‟ Steve Jobs

More information about the tex-live mailing list