我正在尝试为每个内联引用添加一个工具提示。到目前为止,我使用 pdfcomment 几乎可以正常工作:
\documentclass{article}
\usepackage[colorlinks=true]{hyperref}
\usepackage{pdfcomment}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Bli74,
author = {Blinder, Alan S.},
year = {1974},
title = {The economics of brushing teeth},
}
\end{filecontents}
\usepackage{usebib}
\bibinput{\jobname}
\makeatletter
\let\@internalcite\cite
\renewcommand{\cite}[1]{%
\pdftooltip{\@internalcite{#1}}{\usebibentry{#1}{title}}}
\makeatother
\begin{document}
This is a citation: \cite{Bli74}.
\bibliographystyle{apalike}
\bibliography{\jobname}
\end{document}
但是,由于我的 Mac 的 Preview.app 中的引文“转到第 1 页”链接,似乎有一个默认的工具提示。我看到我的自定义工具提示正在工作,但仅限于引文的细边界(包括小括号)。
有没有办法重新定义 cite 命令以避免出现此工具提示并仅对整个引用使用我的自定义提示?
同时,我还想处理多个引用:\cite{thing1,thing2}。如何提取(以逗号分隔)并向 thing1 和 thing2 添加工具提示?
答案1
问题在于,您在几乎相同的位置定义了两个所谓的 PDF 注释。一个用于工具提示,另一个用于超链接,从技术上讲,超链接也是一种 PDF 注释。
您可以使用以下方法关闭超链接:
\usepackage[colorlinks=true,draft]{hyperref}
因此在这种情况下,您只能选择其中一个而不能选择另一个!
那么使用 PDF 文本注释怎么样?
\documentclass{article}
\usepackage[colorlinks=true]{hyperref}
\usepackage{pdfcomment}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Bli74,
author={Blinder, Alan S.},
year={1974},
title={The economics of brushing teeth},
}
\end{filecontents}
\usepackage{usebib}
\newbibfield{author}
\bibinput{\jobname}
\makeatletter
\let\@internalcite\cite
\renewcommand{\cite}[1]{%
\@internalcite{#1}\pdfcomment[icon=Help,author=Reference:]{\usebibentry{#1}{author} (\usebibentry{#1}{year})\textCR\usebibentry{#1}{title}}}
\makeatother
\begin{document}
This is a citation: \cite{Bli74}.
\bibliographystyle{apalike}
\bibliography{\jobname}
\end{document}
编辑:
为了获得更微妙的外观,您可以使用空的和不可见的 PDF 标记突出显示注释:
\documentclass{article}
\usepackage[rgb]{xcolor}
\usepackage[colorlinks=true]{hyperref}
\usepackage{pdfcomment}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Bli74,
author={Blinder, Alan S.},
year={1974},
title={The economics of brushing teeth},
}
\end{filecontents}
\usepackage{usebib}
\newbibfield{author}
\bibinput{\jobname}
\makeatletter
\let\@internalcite\cite
\renewcommand{\cite}[1]{%
\mbox{%
\@internalcite{#1}%
\hbox to 0pt{%
\raisebox{1ex}{%
\pdfmarkupcomment[color=yellow,opacity=0,author=Reference:]%
{}%
{\usebibentry{#1}{author} (\usebibentry{#1}{year})\textCR%
\usebibentry{#1}{title}}}}}%
}%
\makeatother
\begin{document}
This is a citation: \cite{Bli74}.
\bibliographystyle{apalike}
\bibliography{\jobname}
\end{document}
编辑2:
对于没有额外标记的观众,您可以使用自己的标记,例如小问号。您还应该增加opacity
。
\let\@internalcite\cite
\renewcommand{\cite}[1]{%
\mbox{\textcolor{blue}{%
\@internalcite{#1}%
\ifpc@gopt@final\else%
\hbox to 0pt{%
\raisebox{1ex}{\tiny%
\pdfmarkupcomment[color=yellow,opacity=0.5,author=Reference:]%
{?}%
{\usebibentry{#1}{author} (\usebibentry{#1}{year})\textCR%
\usebibentry{#1}{title}}}}%
\fi%
}%
}%
}%
\makeatother
编辑3:
或者使用工具提示再次执行相同的操作:
\makeatletter
\let\@internalcite\cite
\renewcommand{\cite}[1]{%
\mbox{\textcolor{blue}{%
\@internalcite{#1}%
\ifpc@gopt@final\else%
\hbox to 0pt{%
\raisebox{1ex}{\tiny%
\pdftooltip[color=yellow,opacity=0.5,author=Reference:]%
{\fboxsep1pt\fcolorbox{blue}{yellow}{?}}%
{\usebibentry{#1}{author} (\usebibentry{#1}{year})\textCR%
\usebibentry{#1}{title}}}}%
\fi%
}%
}%
}%
\makeatother