[pdftex] Hover effects in pdftex.
Heiko Oberdiek
oberdiek at uni-freiburg.de
Sat Nov 5 06:56:01 CET 2005
On Fri, Nov 04, 2005 at 09:34:38PM +0000, Tigran Aivazian wrote:
> On Tue, 1 Nov 2005, John R. Culleton wrote:
> >Once again I am late to the party. Is it the same mechanism as
> >pdfannot? Can you suggest a document or example to read?
Try this (tested with AR7/Linux and AR5/Linux):
\documentclass[10pt,a5paper,twoside]{book}
\usepackage[bookmarks=false]{hyperref}
% only used for \pdfstringdef
\makeatletter
\newcounter{tooltip at counter}
\setcounter{tooltip at counter}{0}
\newcommand{\annotate}[2]{%
\stepcounter{tooltip at counter}%
\pdfstringdef\tooltip at pdfstring{#2}%
% For each annotation the /T field must be different.
% This is not supported by \pdfstartlink, if the link
% is broken across lines.
\mbox{%
\pdfstartlink user{%
/Subtype/Widget%
/T(tooltip\number\value{tooltip at counter})% unique name
/FT/Btn%
/TU(\tooltip at pdfstring)% tooltip text
}%
#1%
\pdfendlink
}%
}
\makeatother
\begin{document}
\pagestyle{empty}
\annotate{Hellog}{English greeting.}
\annotate{world}{Whole planet Earth.}
\annotate{and}{English conjunction.}
\annotate{the}{English definite article.}
\annotate{rest}{The rest, you know.}
\annotate{of}{Short English word.}
\annotate{the}{English definite article.}
\annotate{Universe!}{A differentiable manifold.}
% ...
\end{document}
> You can gather bits of knowledge from movie15.sty and some other bits of
> knowledge from attachfile.sty. You can also try the enclosed example I
> wrote when I was experimenting with this feature. This example is not
> complete, i.e. I wasn't able to get the appearances working correctly and
> so an icon is displayed if you click on the active area.
>
> Also, it is very unstable, i.e. you have to position the mouse very
> carefully to get it right.
The /Text annotation doesn't use the rectangle, it puts a
sticky note at the upper left corner, more or less visible.
The size of the rectangle is invariant regarding the current
zoom level.
> Ok, I know that my sample is far from perfect, but since it is the only
> thing that exists (to my knowledge) that even attempts to do this --- it
> is a good place to start. And don't forget to email me the working version
> when you have fixed it :)
Some hints:
> \immediate\pdfxform attr {
> /Subtype /Form
> } \appbox
pdfTeX already adds this, thus this "attr{...}" part can be dropped.
> \newcommand{\annotate}[2]{%
> #1%
You can have line/page breaks, strechable/shrinkable glue inside #1.
> \settowidth{\wordwidth}{\mbox{#1}}%
> \settoheight{\wordheight}{\mbox{#1}}%
> \settodepth{\worddepth}{\mbox{#1}}%
The \setto... macros already put the argument in a box, thus
the additional \mbox level is not necessary.
> {
> /Subtype /Text
> /T (word: #1)
> /Contents (Explanation: #2)
> /AP << /N \theappobj\space 0 R >>
> }%
> }
You can get smaller PDF file sizes if the unnecessary spaces
are removed, eg. before "/", "<", "(", "[" or after ")", "]" and ">".
Yours sincerely
Heiko <oberdiek at uni-freiburg.de>
--
More information about the pdftex
mailing list