[OS X TeX] Hyperlink failure with TeXShop and Preview
Peter Dyballa
Peter_Dyballa at Web.DE
Sat Feb 10 19:11:56 EST 2007
Am 10.02.2007 um 22:16 schrieb Bruno Voisin:
> I don't quite get what you mean. Writing
>
> \newcommand{\doi}[1]{\href{http://dx.doi.org/#1}{DOI:#1}}
>
> does work, it produces in the PDF output the text "DOI:#1" and
> makes that text a link of target "http://dx.doi.org/#1", which was
> exactly the desired effect.
>
> The only problem is when the DOI contains the characters "<" and
> ">" (and probably "#", and other such characters as well): clicking
> on the link in Adobe Reader opens the proper URL in the default web
> browser, because Reader converts "<" to "%3C" internally, and ">"
> to "%3F", before passing on the URL to the browser. However, in
> Preview and TeXShop the same not happen, because apparently the
> Apple frameworks they both use do not perform the same conversion,
> and clicking on the link has no effect.
Using TeXShop or Preview I can clearly see the floating hint. Your
macro does not produce it, because of the use of invalid characters –
a "correct malfunction" in hyperref! I first misinterpreted this
behaviour, and actually I did not click any URL, I believed what I
saw printed and floating.
And your observation does not seem to be right: clicking a correct
URL with <>; converted to HEX or hex is forwarded to the browser, for
example:
\href{http://dx.doi.org/10.1002/1099-095X(200102)12:1%3c57::AID-
ENV446%3e3.0.CO%3b2-1}{DOI:10.1002/1099-095X(200102)12:1<57::AID-
ENV446>3.0.CO;2-1}
\doi{10.1002/1099-095X(200102)12:1\%3C57::AID-ENV446\%3E3.0.CO\%3B2-1}
which also works with HEX translation. Did you translate ``;´´ too?
>
> I don't think that hyperref performs any such conversion currently.
> Or did I miss something?
Yes, you're right: the regular code in the hyperref package obviously
does not provide the conversion. Again, I misunderstood that the
first part of \href{one}{two} is the text that is shown in the
floating hint (and executed by clicking at it) and the second part is
actually printed in the document – I should have tried earlier the
successful URLs above instead of hoping that some combination might
work!
> I'm also puzzled by your use of \url inside \href: I thought that
> \url was redefined by hyperref to work essentially as
>
> \renewcommand{\url}[1]{\href{#1}{#1}}
It does not seem to work completely like this. The url package sets
the URL in a monospaced font. Could be this side-effect is left from
hyperref's then incomplete renewal.
The difference is obvious in the PDF file. \href{one}{two} or \doi
{one} create:
25 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [44.287 118.034 434.951 129.555]
/Subtype/Link/A<</Type/Action/S/URI/URI(one)>>
>> endobj
which simply works, \href{one}{\url{two}} creates with or without the
url package:
26 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [44.287 90.935 434.951 102.124]
/Subtype/Link/A<</Type/Action/S/URI/URI(one)>>
>> endobj
27 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [44.287 90.935 434.951 102.124]
/Subtype/Link/A<</Type/Action/S/URI/URI(two)>>
>> endobj
so the second argument is recorded as another URL via \url, but since
its definition is wrong (either by starting with DOI or having faulty
characters) this faulty value substitutes/overwrites the correct
definition. So clicking does not effect anything.
--
Greetings
Pete
If you're not confused, you're not paying attention.
------------------------- Helpful Info -------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/
List Reminders & Etiquette: http://www.esm.psu.edu/mac-tex/list/
More information about the MacOSX-TeX
mailing list