

[hyperrefパッケージ](https://ctan.org/pkg/hyperref)の提供するリンク機能（`\hyperref`コマンド）と、[pdfcommentパッケージ](https://ctan.org/pkg/pdfcomment)の提供するtooltip機能（`\pdftooltip`コマンド）を組み合わせると、後者の機能が失われる問題に遭遇しています。次のTeXドキュメントで検証しています:

[code]

    \documentclass{article}
    \usepackage[dvipdfmx]{hyperref}
    \usepackage[dvipdfmx]{pdfcomment}
    
    \begin{document}
    \section{Hello World}\label{sec:hw}
    \begin{enumerate}
      \item\pdftooltip{it works}{this is tooltip text}
      \item\ref{sec:hw}
      \item\hyperref[sec:hw]{click here}
      \item\pdftooltip{\hyperref[sec:hw]{click here}}{this is tooltip text}
      \item\hyperref[sec:hw]{\pdftooltip{click here}{this is tooltip text}}
    \end{enumerate}
    \end{document}
    
[/code]

このうち、実現したいのは4,5番目の項目のような使い方ですが、コンパイルはできるものの機能していないように見えます。解決する方法はなにかないでしょうか。

環境:  
\- `This is e-pTeX, Version 3.14159265-p3.8.2-190131-2.6 (utf8.euc) (TeX Live
2019/Cygwin) (preloaded format=platex 2019.12.14)`  
\- `Package: hyperref 2018/11/30 v6.88e Hypertext links for LaTeX`  
\- `Package: pdfcomment 2018/11/01 pdfcomment.sty v2.4a - Josef Kleber (C)
2008-2012, 2015-2016, 2018`  
\- `This is dvipdfmx Version 20190225 by the DVIPDFMx project team, modified
for TeX Live, an extended version of dvipdfm-0.13.2c developed by Mark A.
Wicks.`  
\- viewer: Adobe Acrobat Reader DC Product Version 19.21.20058.359605

同等な結果が得られればこれらのパッケージ・コンパイラにこだわりません。  
以上、よろしくお願いいたします。


CC BY-SA 4.0
2019-12-18T02:21:57.783
61529
2019-12-23T03:15:57.277
question
latex
hyperrefとpdfcommentのくみあわせ


<https://tex.stackexchange.com/q/103628> を参考にいちおう動くものを見つけたので投稿しておきます。

`\hyperref`と`\pdftooltip`を組み合わせて使うと、PDFのマークアップ（？）が同じ領域に重複して出力されてしまうため、どちらかが（試した限りではリンクが）上に表示されてしまい、質問で挙げたような問題になるのだと考えられます。そこで、link
annot.にtooltipをくっつける、または、widget
annot.にリンクをくっつける、のいずれかができれば解決しそうです。前者は仕様に存在しないようなので、後者を実験したコードが以下になります:

[code]

    \documentclass{article}
    \usepackage[colorlinks]{hyperref}
    
    \makeatletter
    \newcounter{hyperref@tooltip}
    \def\hyperrefWithTooltip[#1]#2#3{\begingroup%
      \let\hyper@link\hyper@link@insert@tooltip%
      \def\tooltip@content{#3}%
      \hyperref[#1]{#2}%
      \endgroup}
    \def\hyper@link@insert@tooltip#1#2#3{%
      \Hy@VerboseLinkStart{#1}{#2}%
      \ltx@IfUndefined{@#1bordercolor}{%
        \let\Hy@tempcolor\relax%
      }{%
        \edef\Hy@tempcolor{\csname @#1bordercolor\endcsname}%
      }%
      \begingroup%
        \protected@edef\Hy@testname{#2}%
        \ifx\Hy@testname\@empty%
          \Hy@Warning{Empty destination name,%
            \MessageBreak using `\Hy@undefinedname '}
          \let\Hy@testname\Hy@undefinedname%
        \fi%
        \pdfmark[{#3}]{%
          Color=\Hy@tempcolor,%
          linktype={#1},%
          AcroHighlight=\@pdfhighlight,%
          Border=\@pdfborder,%
          BorderStyle=\@pdfborderstyle,%
          pdfmark=/ANN,%
          %Subtype=/Link,%
          Subtype=/Widget,%
          Raw={%
            /TU (\tooltip@content)%
            /T (tooltip.\thehyperref@tooltip)%
            /C [ ]%
            /FT/Btn%
            /F 768%
            /Ff 65536%
            /H/N%
            /BS << /W 0 >>%
            %/A << /S/GoTo/D (\Hy@testname) >>% equiv.to.Dest
          },%
          PDFAFlags=4,%
          Dest=\Hy@testname}%
      \endgroup}%
    \makeatother
    
    \begin{document}
    \section{hello world}\label{sec:hw}
    \begin{itemize}
      \item hello \ref{sec:hw}
      \item \hyperref[sec:hw]{click here}
      \item \hyperrefWithTooltip[sec:hw]{click here}{this is tooltip text}
    \end{itemize}
    \end{document}
    
[/code]

これを`latex`+`dvips`+`ps2pdf`でコンパイルすると、期待する結果を得られました。ただし、次の問題があります:

  * `\hyperrefWithTooltip`ではリンクを表す枠が表示されない（動作に問題はない）
  * Acrobat Reader以外ではtooltipが表示されない
  * pdf.jsではリンクとして機能しない上にtooltipも表示されない

引き続き、よりよい解決策があれば提案していただけると幸いです。


CC BY-SA 4.0
2019-12-23T03:15:57.277
61693
2019-12-23T03:15:57.277
61529
answer