[pdftex] CTM modification by \pdfliteral{}
Heiko Oberdiek
heiko.oberdiek at googlemail.com
Thu Jun 11 22:21:47 CEST 2020
Hello,
On 2020-06-11 18:02, Alexander Grahn wrote:
>
> According to the pdftex documentation, \pdfliteral{<general text>} sets the
> transformation matrix to the current position before inserting <general text>.
> \pdfliteral{}% <-- modfies CTM
Please do *not* use \pdfliteral for setting the transformation matrix,
because pdfTeX does *not* parse the contents of \pdfliteral. Thus it
does not know, that there is a transformation. But links and anchors,
for example, require the exact location.
There is a dedicated primitive for setting the transformation matrix
in pdfTeX: \pdfsetmatrix. Translations are not covered, but they
can easily and much more safer be done with the usual TeX means.
Also it is *very* important, that the transformation stuff
needs to be surrounded by the PDF operators q (save) and Q (restore).
Again use \pdfsave and \pdfrestore instead of \pdfliteral to get
pdfTeX informed. Both \pdfsave and \pdfrestore must occur at the
*same* TeX location, e.g. (\hbox{\pdfsave\hbox to 0pt{...}\pdfrestore}).
Otherwise the internal TeX location and the location at the PDF output
page gets out of sync.
Yours sincerely
Heiko
More information about the pdftex
mailing list.