Hello, unlike other output drivers, (x)dvipdfmx translates link destination strings, such as (testA), (testB) in
pdf:dest (testA) [@thispage /XYZ @xpos @ypos null] pdf:dest (testB) [@thispage /XYZ @xpos @ypos null] specials, into internally generated integer strings (0), (1), ... in /Dests <</Names [...] >> and in Link annotations of the final PDF. This is very annoying, because it prevents users from creating custom Action dictionaries of subtype /GoTo used in other Annotation types and triggers. As said before, the automatic destination string replacement only works in /A <</S/GoTo /D (...)>> action dictionaries of /Link Annotations, but not elsewhere where defective /GoTo actions are produced. See the example below which implements a hyperlink macro with formatted tip text (requires AR for display). Could (x)dvipdfmx be changed to keep the original destination string? Alexander \documentclass[12pt,oneside]{book} \usepackage{hyperref} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % usage: % % \hyperlinkWithTip{<destination>}[<linkcolour>]{<linktext>}[<tipboxcolour>]{<tiptext>} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{media9} \usepackage{xcolor} \usepackage{calc} \usetikzlibrary{calc} \ExplSyntaxOn \let\tpPdfLink\mix_pdflink:nn \let\tpPdfAnnot\mix_pdfannot:nnnn\def\tpPdfLastAnn{\g_mix_pdflastann_tl} \let\tpPdfXform\mix_pdfxform:n\def\tpPdfLastXform{\g_mix_pdflastxform_tl} \let\tpPdfObj\mix_pdfobj:nnn\def\tpPdfLastObj{\g_mix_pdflastobj_tl} \ExplSyntaxOff \makeatletter \NewDocumentCommand{\hyperlinkWithTip}{mO{blue}mO{yellow!20}m}{{% \leavevmode% \tpPdfObj{}{dict}{/Type/OCG/Name (tipOCG.\thetcnt)% /Usage<</Print<</PrintState/OFF>>/Export<</ExportState/OFF>>>>% }% \xdef\@anim@ocgs{\@anim@ocgs\space\tpPdfLastObj}% \xdef\@anim@offocgs{\@anim@offocgs\space\tpPdfLastObj}% \edef\tpTipOcg{\tpPdfLastObj}% \tpPdfLink{% /Subtype/Screen% /AA<<% /E<</S/SetOCGState/State [/ON \tpTipOcg]>>% /X<</S/SetOCGState/State [/OFF \tpTipOcg]>>% /U<</S/SetOCGState/State [/OFF \tpTipOcg]/Next<</S/GoTo/D (#1)>>>>% >>% }{{\color{#2}#3}}% \sbox\tiptext{\fcolorbox{black}{#4}{#5}}% \edef\twd{\the\wd\tiptext}% \edef\tht{\the\dimexpr\ht\tiptext+\dp\tiptext\relax}% \measureremainder{\whatsleft}\tipshift=0pt% \ifdim\whatsleft<\twd\setlength\tipshift{\whatsleft-\twd}\fi% \tpPdfXform{\tiptext}% \raisebox{\heightof{#3}}[0pt][0pt]{\makebox[0pt][l]{\hspace{\tipshift}% \tpPdfAnnot{\twd}{\tht}{0pt}{% /Subtype/Widget/FT/Btn/Ff 65537/T (tip:\thetcnt)% /AP<</N \tpPdfLastXform>>% /MK<</TP 1/I \tpPdfLastXform/IF<</S/A/FB true/A [0.0 0.0]>>>>% /OC \tpTipOcg }% \xdef\@anim@fields{\@anim@fields\space\tpPdfLastAnn}% }}% \stepcounter{tcnt}% }} \makeatother \newsavebox\tiptext\newcounter{tcnt} \newlength{\whatsleft}\newlength{\tipshift} \newcommand{\measureremainder}[1]{% \begin{tikzpicture}[overlay,remember picture] \path let \p0 = (0,0), \p1 = (current page.east) in [/utils/exec={\pgfmathsetlength#1{\x1-\x0}\global#1=#1}]; \end{tikzpicture}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} Lots of text. \hyperlinkWithTip{test}{Test}{To be explained on the next page.} this if you can. Lots of text. Another \hyperlinkWithTip{testB}{test}{\parbox[b]{0.5\linewidth}{This is a longer text. Don't miss the explanation given on the next page.}} if you wish. \newpage \hypertarget{test}{Here's my link destination.} \hypertarget{testB}{Yet another link destination.} \end{document} -------------------------------------------------- Subscriptions, Archive, and List information, etc.: http://tug.org/mailman/listinfo/xetex