A programming language referencing a template language library for processing a markup language to generate another markup language (PDF) sounds just about right.
Nitpick but it’s a stretch to classify PDF as a markup language. They’re a graph of nodes that can encapsulate myriad different types of data including things that are probably even turing complete like fonts. Even the graphics streams inside PDFs aren’t markup.
We build abstractions for a reason. I think we can all agree that templating markup for layouts has been a reasonable success story of the web generation.