## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

 Options: Use Forum View Use Monospaced Font Show Text Part by Default Show All Mail Headers Message: [<< First] [< Prev] [Next >] [Last >>] Topic: [<< First] [< Prev] [Next >] [Last >>] Author: [<< First] [< Prev] [Next >] [Last >>]

At 16:06 18.02.2001 +0100, Frank Mittelbach wrote:
>Sebastian Rahtz writes:

> > the classic example is link breaking. if you have a long bit of text
> > to make into a link, pdftex can break it into multiple links, amd
> > linebreak nicely. dvi-based methods just crawl away in despair and make
> > a long unbroken link. People do claim they could break links at the dvi
> > level, but I don't think anyone has actually done it
>
>is that technically very different from providing, say, color support at dvi
>level? i mean if i say \textcolor{red}{this text is in red} and my text gets
>broken across the line by TeX all that TeX does is providing some \special at
>the begin and end of this text (ie they fall onto two different
>lines).

For color support, \specials at the begin and the end
are enough. Here a graphics attribute is set at the begin
and the previous color is set at the end of the group.

However, a link region has to be a rectangle (the normal
annotations in PDF 1.2) and the coordinates have to be
known or calculated.
This is easy, if the link is put in a \hbox. At TeX
level \special markers at the lower left and upper right
corners can be put in the dvi. At PostScript level the
dimensions and absolute position of the rectangle are
calculated by the help of the PostScript command
currentpoint (I do not know a similar command in TeX).
This technique is used by pdfmark (dvips) driver of
hyperref.
The problem arises, if the link does not fit the
current line, but is broken across lines. Then in most
cases the link area is not a rectangle like this
paragraph as an example.
PdfTeX does know, that there are line breaks and it
knows about all boxes that are part of the link. So it
generates _multiple_ links, one for each line, that is
But how to collect the informations in the TeX/dvips