我需要在文内引用中弹出一个窗口,并且我希望引用仍然可以“点击”

我需要在文内引用中弹出一个窗口,并且我希望引用仍然可以“点击”

我需要一个弹出窗口出现在文内引用上方。弹出窗口应显示引用所在的页码(即,读者可以检查所引用的文章是否确实如我的论文所述)。我使用此页面上的一个代码实现了此目的(pdfcomment 包中的 pdftooltip:在工具提示中使用 LaTeX 代码)。

但是,我现在无法再点击文内引用了。点击文内引用通常会带我到参考列表中的相应参考。

弹出式解决方案似乎用一层薄膜“屏蔽”了文内引用,使其不再可点击。你能帮忙吗?

示例文本:

"According to \cite{RefWorks:1172} \tooltip[black]{\cite{RefWorks:1172}}[blue!50]{See:Page 2, paragraph 2} patients would rather prefer it if all technologies designed to support their daily living in Smart environments are  non-obtrusive."

第一个引文仍然可以点击,它会带你到参考文献列表。第二个有弹出窗口,但无法点击。

你好,Christian H。

感谢您回复我的问题。您可能已经从之前的那个错误猜到了我是新手(我经常在网站上查阅提示,但从未发过帖子)。

好的,这是“代码”。我希望这就是你的意思?这不是我的,而是从我之前的帖子中提到的网站剪切粘贴的。

再次感谢。

\usepackage{media9}[2014/03/25]
\usepackage{xcolor} %Package already included elsewehere on this page
\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}
\ExplSyntaxOff

\makeatletter
\NewDocumentCommand{\tooltip}{sO{blue}mO{yellow!20}m}{{%
  \leavevmode%
  \tpPdfLink{%      
    /Subtype/Screen%                    
    /AA<<%
      /E<</S/JavaScript/JS(%
        var fd=this.getField('tip.\thetcnt');%
        \IfBooleanF{#1}{%
          if(typeof(click\thetcnt)=='undefined'){%
            var click\thetcnt=false;%
            var fdor\thetcnt=fd.rect;var dragging\thetcnt=false;%
          }%
        }%
        if(fd.display==display.hidden){%
          fd.delay=true;fd.display=display.visible;fd.delay=false;%
        }%
        this.dirty=false;%
      )>>%     
      /X<</S/JavaScript/JS(%
        \IfBooleanTF{#1}{fd.display=display.hidden;}{%
          if(!click\thetcnt&&!dragging\thetcnt){fd.display=display.hidden;}%
          if(!dragging\thetcnt){click\thetcnt=false;}%
        }%
        this.dirty=false;%
      )>>%
      \IfBooleanTF{#1}{%
        /PC<</S/JavaScript/JS(this.dirty=false;)>>%                                       
      }{%
        /U<</S/JavaScript/JS(click\thetcnt=true;this.dirty=false;)>>%
        /PC<</S/JavaScript/JS (%
          var fd=this.getField('tip.\thetcnt');%
          try{fd.rect=fdor\thetcnt;}catch(e){}%                     
          fd.display=display.hidden;this.dirty=false;%
        )>>%
      }%
      /PO<</S/JavaScript/JS(this.dirty=false;)>>%
    >>%
  }{{\color{#2}#3}}%
  \sbox\tiptext{\fcolorbox{black}{#4}{#5}}%
  \edef\twd{\the\wd\tiptext}%
  \edef\tht{\the\ht\tiptext}%
  \edef\tdp{\the\dp\tiptext}%
  \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}{\tdp}{%
      /Subtype/Widget/FT/Btn/Ff 65536/T (tip.\thetcnt)/F 3%
      /MK<</TP 1/I \tpPdfLastXform/IF<</S/A/FB true/A [0.0 0.0]>>>>%
      \IfBooleanF{#1}{%
        /AA <<%
          /U <<%
            /S/JavaScript/JS(%
              var fd=event.target;%
              var mX=this.mouseX;var mY=this.mouseY;%
              var drag=function(){%
                var nX=this.mouseX;var nY=this.mouseY;%
                var dX=nX-mX;var dY=nY-mY;%
                var fdr=fd.rect;%
                fdr[0]+=dX;fdr[1]+=dY;fdr[2]+=dX;fdr[3]+=dY;%
                fd.rect=fdr;mX=nX;mY=nY;%
              };%
              if(!dragging\thetcnt){%
                dragging\thetcnt=true;Int=app.setInterval("drag()",1);%
              }%
              else{app.clearInterval(Int);dragging\thetcnt=false;}%
              this.dirty=false;%
            )%
          >>%
        >>%
      }%
    }%
    \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}%
}

请问有人能建议我如何解决这个问题吗?谢谢。

相关内容