% Save the following as realref.sty (take off comment prefix % tag on each line). % You can then use it with \usepackage{realref} % % This has \pageref jumping to the page on which the ref appears, % \ref jumping to the point of the anchor, and \sectionref % jumping to the start of section. % % Author: Anthony Williams % Software Engineer % Nortel Networks Optical Components Ltd % Date: 9 Nov 2001 (posted to comp.text.tex) % % The following declaration was made by Anthony Williams on % 24 Jul 2006 (private email to Norman Megill): % % ``I hereby donate the code for realref.sty posted on the % comp.text.tex newsgroup on 9th November 2001, accessible from % http://groups.google.com/group/comp.text.tex/msg/5a0e1cc13ea7fbb2 % to the public domain.'' % \ProvidesPackage{realref} \RequirePackage[plainpages=false,pdfpagelabels=true]{hyperref} \def\realref@anchorname{} \AtBeginDocument{% % ensure every label is a possible hyperlink target \let\realref@oldrefstepcounter\refstepcounter% \DeclareRobustCommand{\refstepcounter}[1]{\realref@oldrefstepcounter{#1} \edef\realref@anchorname{\string #1.\@currentlabel}% }% \let\realref@oldlabel\label% \DeclareRobustCommand{\label}[1]{\realref@oldlabel{#1}\hypertarget{#1}{}% \@bsphack\protected@write\@auxout{}{% \string\expandafter\gdef\protect\csname page@num.#1\string\endcsname{\thepage}% \string\expandafter\gdef\protect\csname ref@num.#1\string\endcsname{\@currentlabel}% \string\expandafter\gdef\protect\csname sectionref@name.#1\string\endcsname{\realref@anchorname}% }\@esphack}% \DeclareRobustCommand\pageref[1]{{\edef\a{\csname page@num.#1\endcsname}\expandafter\hyperlink{page.\a}{\a}}}% \DeclareRobustCommand\ref[1]{{\edef\a{\csname ref@num.#1\endcsname}\hyperlink{#1}{\a}}}% \DeclareRobustCommand\sectionref[1]{{\edef\a{\csname ref@num.#1\endcsname}\edef\b{\csname sectionref@name.#1\endcsname}\hyperlink{\b}{\a}}}% }