Ulrike Fischer news3 at nililand.de
Wed Nov 28 12:31:25 CET 2018

After some discussion in the latex team I have two questions about
in luatex) and boxing levels.

1.
Currently the commands give a fatal error if used in different
boxing levels:

attr {/Border[0 0 1]}
user{
/A<<%
/Type/Action%
/S/URI%
/URI(blkub)%
>>%

\bye
! pdfTeX error (ext4): \pdfendlink ended up in different nesting
!  ==> Fatal error occurred, no output PDF file produced!

This doesn't happen very often in documents, but if the galley is
split and reboxed it is possible that long links end in different
levels. One example involving two column mode and top floats has
been discussed on the latex2e github:
https://github.com/latex3/latex2e/issues/94

Is the fatal error really sensible here? Couldn't the engines close
the last annotation with some more or less sensible coordinate and
continue with a warning? A pdf with a wrong link area seems better
than no pdf at all (and would release the format and packages from
the need to carefully keep track of boxing levels when splitting and
reassembling stuff).

2. The engines interrupts linking if the boxing level of
intermediate text is less than the boxing level at the start of the

attr {/Border[0 0 1]}
user{
/A<<%
/Type/Action%
/S/URI%
/URI(blkub)%
>>%

\bye

This allows to some extend to exclude e.g. header and footer from
additional box level to the footer. xetex/xdvidfpmx has here a quite
useful special \special{pdf:nolink} which can be used to suppress

\documentclass[a4paper]{article}
\usepackage{fancyhdr}
\pagestyle{fancy}
\cfoot{some longer text that should not be linked}
\usepackage{ifxetex}
\ifxetex
%\cfoot{\special{pdf:nolink}some longer text that should not be
\fi
\usepackage{hyperref}

\begin{document}
\vspace*{48\baselineskip}
xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx