In tetex-3... pdftex has a serious bug. Any plain tex file that uses
\magnification gives incorrect text placement in pdf. This bug is present
in the latest pdftex version 1.21a. It apparently was caused by the
introduction of the new variables \pdfvoffset and \pdfhoffset. This bug
was not present in older pdftex, e.g. version 3.14159-1.10b, which was
part of tetex-2...

A simple illustration of the problem is with the trivial file:

\magnification \magstep3
%The following parindent and offset changes are not the cause of errors.
%They are merely to illustrate them clearly by writing at top left.
%Anything other than \magstep0 gives a placement error with pdftex 1.21a.
\parindent 0pt
\hoffset -1 truein
\voffset -1 truein
The top.
\end

With tex and xdvi, the words "The top." are placed at the immediate top
left. With pdftex 1.21a and xpdf (or acroread) they are not. With earlier
pdftex 1.10b (e.g.) they are.

I had an extensive discussion on comp.text.tex with Heiko Oberdiek, most
of which is at http://www.codecomments.com/Tex/message784423.html

The gist of it is that backward compatibility with plain tex files is very
important. As far as possible, it should be preserved transparently.
Authors should not be required to hack their files in order for them to
render the same in pdf as in dvi. Moreover there is a simple way to
provide this compatibility.

A reasonable way to fix the bug is to change pdftex.ini and hence
pdftex.fmt. (The corresponding pdfetex files ought also to be fixed.)

A proposed patched pdftex.ini file is attached. It consists simply of

% Thomas Esser, 1998, 2004. public domain.
\ifx\pdfoutput\undefined
\else
  \ifx\pdfoutput\relax
  \else
    \input pdftexconfig
    \pdfoutput=1
  \fi
\fi

\input plain

\ifx\pdfoutput\undefined
\else
  \ifx\pdfoutput\relax
  \else
[EMAIL PROTECTED]
[EMAIL PROTECTED]
\mag\count@
\hsize6.5truein\vsize8.9truein\dimen\footins8truein
%These commands fix the pdf sizes to be in true units.
[EMAIL PROTECTED] [EMAIL PROTECTED]
[EMAIL PROTECTED] [EMAIL PROTECTED]
}
[EMAIL PROTECTED]
 [EMAIL PROTECTED]
}
\begingroup
\catcode`P=12
\catcode`T=12
\lowercase{%
\endgroup
[EMAIL PROTECTED]
#1truept%
}%
}%
[EMAIL PROTECTED]
  \fi
\fi

\dump
\endinput

I don't know who takes responsibility for pdftex.ini. But clearly this
ought to be fixed for all distributions. I care most about tetex, because
it is what I use. Thanks,

        Ian Hutchinson
        http://www.psfc.mit.edu/people/hutch/
% Thomas Esser, 1998, 2004. public domain.
\ifx\pdfoutput\undefined
\else
  \ifx\pdfoutput\relax
  \else
    \input pdftexconfig
    \pdfoutput=1
  \fi
\fi

\input plain

\ifx\pdfoutput\undefined
\else
  \ifx\pdfoutput\relax
  \else
[EMAIL PROTECTED]
[EMAIL PROTECTED]
\mag\count@
\hsize6.5truein\vsize8.9truein\dimen\footins8truein
%These commands fix the pdf sizes to be in true units.
[EMAIL PROTECTED] [EMAIL PROTECTED]
[EMAIL PROTECTED] [EMAIL PROTECTED]
}
[EMAIL PROTECTED]
 [EMAIL PROTECTED]
}
\begingroup
\catcode`P=12
\catcode`T=12
\lowercase{%
\endgroup
[EMAIL PROTECTED]
#1truept%
}%
}%
[EMAIL PROTECTED]
  \fi
\fi

\dump
\endinput

Reply via email to