Extract from dvipdfmx documentation:
Warning: No annotation will be constructed if the content between
pdf:bannandpdf:eannis an empty box.
My MWE (via xelatex):
\documentclass{article}
\begin{document}
\special{pdf:bann << /Subtype /Link
/BS << /Type /Border /W 0.5 /S /S >>
/A << /S /URI
/URI (http://www.tug.org) >> >>}%
http://www.tug.org%
\special{pdf:eann}
\special{pdf:bann << /Subtype /Link
/BS << /Type /Border /W 0.5 /S /S >>
/A << /S /URI
/URI (http://www.tug.org) >> >>}%
\phantom{http://www.tug.org}%
\special{pdf:eann}
\special{pdf:bann << /Subtype /Link
/BS << /Type /Border /W 0.5 /S /S >>
/A << /S /URI
/URI (http://www.tug.org) >> >>}%
\rule{1cm}{1cm}
\special{pdf:eann}
\end{document}
The second and third annotations do not work!
How to make a non-empy box with invisible content?
Subsidiary question: why this limitation?


TS1encoding (\usepackage{textcomp}) has a\textcapitalcompwordmarkinvisible character and you can put it at the start and end of a box with the right dimensions. Whenfontencis loaded, use some invisible character, such asU+00A0. – egreg Jan 27 at 15:38