At 21:32 28.09.2000 +0200, Hans Aberg wrote:
>It appears to me that the "hyperref" package ought to appear in the
>"required" part of the LaTeX distribution:
You are right in the importance of the "hyperref" package,
but there are a lot of things that prevent this step at
present. Sebastian has meantioned the main reason:
At 00:27 29.09.2000 +0100, Sebastian Rahtz wrote:
>I think its more fundamental than that, as discussed as far back as
>1993 - hyperref does not fit into the model of LaTeX properly, and
>rides roigh-shod over LaTeX innards when it feels like it. To add it
>to "required" would imply that the kernel team felt that it reliably
>collaborated with kernel packages, which would simply be untrue.
For example the "required" "color" package is well
supported by a lot of hooks in the LaTeX kernel:
\normalcolor, \set@color, \color@setgroup,
\color@hbox, \color@vbox, \color@endbox
I found this commands 45 times in "latex.ltx",
not counting the default definitions.
Package "hyperref" would need a lot of more hooks, eg:
* At the beginning of every page it wants to make
a hyper anchor (\AtBeginDvi problem).
* An official mechanism to extend the arguments
that are used internally with \label and \ref:
LaTeX uses two parameters, the formatted counter
and the page number. Package "hyperref"/"nameref"
adds three additional informations like the
anchor name or the title of a sectioning command.
* The figure model does not fit "hyperref"'s needs:
Currently the anchor of the figure is made in the
caption. But the caption is below the figure in
most cases, so that if the user follows a link
to a figure, he would jump below the figure and
have to scroll in order to see the whole figure.
Therefore the hyper anchor should be made at
the beginning of the figure, for the anchor name
the value of the figure counter of the next
\caption command has to be known. But LaTeX2e
allows zero, one, two, ... \caption commands in
one figure environment. The rest of the hyper
stuff has to be made at the end of the figure
to get the whole rectangle.
* Sectioning commands: It is very difficult and risky
to define these commands, so that the hyper anchor
is inserted before the sectioning title, but on
the same page. Currently links to starred
sectioning commands, followed by \addcontentsline
point after the sectioning title.
>To do it right, bits of LaTeX need a rewrite, taking into account the
>needs of hyperref. This is what Context has done, of course,
>integrating the stuff into the kernel.
I see no chance for LaTeX2e, because it is frozen,
and I can understand the LaTeX people, which are
now working on LaTeX3, that they do not want to
rewrite the old LaTeX2e with the risk of introducing
Another reason: unresolved technical problems,
the drivers acts differently:
* In some situations a \leavevmode is executed,
but not with other drivers.
* The link margins are implemented differently
(TeX level/PostScript level).
* Some drivers support the "breaklinks" feature,
other do not.
I think, for a "required" state package "hyperref"
should be more stable, not few bugs have to be
The package is in development, so I want
to rewrite the \Read/WriteBookmarks stuff in order
to add additional features (the costs will be
incompatibilities with older versions).
>Also, hyperref should be split into two
> a) the package which provides hypertext functionality, acting as a
> wrapper around driver \specials, and pdftex primitives
> b) the package which overrides standard LaTeX commands to add new
> functionality to them, and interfaces with assorted packages
Yes, a good idea, especially if a) can be made plain
compatible, so that plain formats can benefit from
hyperref (for example graphicx can be used with plain
formats). It is a hercules task to define and describe
the interfaces and to implement all of this. So that
cannot be done until tomorrow for persons, which does
not have the strength and power of hercules like me.
Therefore I see it as an aim for the future (I have
already begun to form modules, eg. the \pdfstringdef
module, where the commands are defined together and
marked with the prefix \HyPsd@).
>I am fairly sure Heiko would agree with me on this
Yes, of course, I always agree with Sebastian
(at least in public) :-)
Heiko <[log in to unmask]>