Marketo uses Munchkin to track webpage visits. Munchkin is just a few lines of code (JavaScript) that you embed on your page. When that code is read by the browser, it tells Marketo that the person visited that page.
The problem here is that you cannot put Munchkin / the JavaScript code inside a PDF.
There are a few workarounds. But the workaround you described of having a link to the PDF on a download page would work, and enable you have to have tracking.