Beamer 的 \pause 不会延迟 hyperref 的边界

Beamer 的 \pause 不会延迟 hyperref 的边界

当使用 时\pause,即使链接文本和链接本身(在 中)都出现,beamer由 创建的链接边框也会出现hyperref\href{}\pause我怎样才能延迟边框直到链接文本真正出现?

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\hypersetup{colorlinks = false, urlbordercolor = 0 1 0, pdfborder = 0 0 .5}
\begin{document}
\begin{frame}
    Here a link will appear:\pause
    \href{https://www.google.com/}{Google}
\end{frame}
\end{document}

在此处输入图片描述

答案1

正如 percusse 提到的他的评论\only<>将延迟由以下因素创建的边界hyperref

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\hypersetup{colorlinks = false, urlbordercolor = 0 1 0, pdfborder = 0 0 .5}
\begin{document}
\begin{frame}
    \begin{itemize}
    \item A link will appear below:
    \only<2->{\item \href{https://www.google.com/}{Google}}
    \end{itemize}
\end{frame}
\end{document}

然而, 的一个众所周知的问题是,当添加的范围内时,\only它会改变前几行的位置,因为直到它最终出现时才看到该项目,之后它必须将前几行向上推以便为新的 腾出空间。item\item\onlybeamer\item\item

为了避免这种情况,最好\pause在 之前使用\item(因为这样beamer才能“看到”它),并且只让链接\href{}在 的范围内\only。由于\href{}它无论如何都不会占用输出中的空间,因此它不会影响项目或文本的放置。

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\hypersetup{colorlinks = false, urlbordercolor = 0 1 0, pdfborder = 0 0 .5}
\begin{document}
\begin{frame}
    \begin{itemize}
    \item A link will appear below:\pause
    \item \only<2->{\href{https://www.google.com/}}{Google}
    \end{itemize}
\end{frame}
\end{document}

相关内容