This is only a partial answer, but it is kind of a roadmap how this could be achieved.
First, note that the hyperref
package does not offer a "standard way" to do such a thing. It only offers border styles for links (including underlining a link as explained here: How can I have colored and underlined links with hyperref?). One of the reasons for this might be that the PDF standard offers such border styles directly for link annotations, but to obtain a non-border style, you need to use appearance streams and form XObjects instead. The documentation of such streams and objects can be found here: http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf (start at page 612 for appearance streams and page 355 for form XObjects)
What needs to be done is the following: Find out how the PDF output must look like for a link to have a background color (fortunately, appearance streams already offer three different modes, including one for being inactive and one for hovering over the object; thus, the "action logic" you need is already implemented within the PDF standard and you only need to provide the attributes implementing your desired look).
Then change the corresponding part of the hyperref
package by redefining some of its commands as in the "automatic" part of this answer: How can I have colored and underlined links with hyperref?
You can find the source code of the hyperref
package here: http://www.ctan.org/pkg/hyperref
Since both the PDF standard and the hyperref
package are quite huge, it might involve a significant amount of time just to find the right attributes and commands where to plug these things together, though.
In any case, such a solution might not work with every PDF viewer as most of them do not implement everything that is written in the PDF standard. As long as you only use background color, however, it might work for many viewers (but no guarantees given).
linktocpage
option when loadinghyperref
? Doing so makes the page number rather than the ToC/LoF/LoT entry into a hyperlink to the corresponding item in the body of the text. Choosing this route would not directly achieve your stated objective, but it is a very effective way of providing hyperlinks in a way that's not too obtrusive.