It’s invisible on screen. It prints correctly. But when text is extracted from the PDF — by an accessibility checker, a search engine, or a copy-paste — U+00AD surfaces as a garbage character between syllables. Here’s what it is, where it comes from, and how to find it.
The same PDF, two different prompts. 'Is this well laid out?' returned vague positivity. 'You’re an experienced typographer, check this before printing’ returned a structured technical review. The before/after register change is a clean, demonstrable lesson.
Producing a PDF/X-4 press-ready file from LuaLaTeX without touching Ghostscript: the pdfx package, TrimBox/BleedBox geometry in points, FOGRA39 OutputIntent, CMYK-only color discipline, and XMP metadata — everything a print shop will verify.