07.01.2013 Views

Hypertext marks in LaTeX: a manual for hyperref - TUG

Hypertext marks in LaTeX: a manual for hyperref - TUG

Hypertext marks in LaTeX: a manual for hyperref - TUG

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3 PACKAGE OPTIONS 6<br />

\section{Introduction}<br />

\label{<strong>in</strong>tro}<br />

Option destlabel checks <strong>for</strong> each \label, if there is a new dest<strong>in</strong>ation name active and replaces<br />

the dest<strong>in</strong>ation name by the label name. Because the dest<strong>in</strong>ation name is already <strong>in</strong> use because<br />

of the anchor sett<strong>in</strong>g, the new name is recorded <strong>in</strong> the .aux file and used <strong>in</strong> the subsequent L ATEX<br />

run. The renam<strong>in</strong>g is done by a redef<strong>in</strong>ition of \HyperDestNameFilter. That leaves the old<br />

dest<strong>in</strong>ation names <strong>in</strong>tact (e.g., they are needed <strong>for</strong> \autoref). This redef<strong>in</strong>ition is also available as<br />

\HyperDestLabelReplace, thus that an own redef<strong>in</strong>ition can use it. The follow<strong>in</strong>g example also<br />

adds a prefix <strong>for</strong> all dest<strong>in</strong>ation names:<br />

\renewcommand*{\HyperDestNameFilter}[1]{%<br />

\jobname-\HyperDestLabelReplace{#1}%<br />

}<br />

The other case that only files prefixed that do not have a correspond<strong>in</strong>g \label is more complicate,<br />

because \HyperDestLabelReplace needs the unmodified dest<strong>in</strong>ation name as argument. This<br />

is solved by an expandable str<strong>in</strong>g test (\pdfstrcmp of pdfTEX or \strcmp of XƎTEX, package<br />

pdftexcmds also supports LuaTEX):<br />

\usepackage{pdftexcmds}<br />

\makeatletter<br />

\renewcommand*{\HyperDestNameFilter}[1]{%<br />

\ifcase\pdf@strcmp{#1}{\HyperDestLabelReplace{#1}} %<br />

\jobname-#1%<br />

\else<br />

\HyperDestLabelReplace{#1}%<br />

\fi<br />

}<br />

\makeatother<br />

With option destlabel dest<strong>in</strong>ations can also named <strong>manual</strong>ly, if the dest<strong>in</strong>ation is not yet<br />

renamed:<br />

\HyperDestRename{〈dest<strong>in</strong>ation〉}{〈newname〉}<br />

H<strong>in</strong>t: Anchors can also be named and set by \hypertarget.<br />

destlabel boolean false dest<strong>in</strong>ations are named by first \label<br />

after anchor creation<br />

hypertexnames boolean true use guessable names <strong>for</strong> l<strong>in</strong>ks<br />

naturalnames boolean false use L ATEX-computed names <strong>for</strong> l<strong>in</strong>ks<br />

pla<strong>in</strong>pages boolean false Forces page anchors to be named by the Arabic <strong>for</strong>m<br />

of the page number, rather than the <strong>for</strong>matted <strong>for</strong>m.<br />

3.3 Configuration options<br />

raisel<strong>in</strong>ks boolean true In the hypertex driver, the height of l<strong>in</strong>ks<br />

is normally calculated by the driver as simply<br />

the base l<strong>in</strong>e of conta<strong>in</strong>ed text; this options<br />

<strong>for</strong>ces \special commands to reflect the<br />

real height of the l<strong>in</strong>k (which could conta<strong>in</strong> a<br />

graphic)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!