在投影机中隐藏时禁用超链接

在投影机中隐藏时禁用超链接

在以下示例中,我有一个超链接,它仅在 之后\pause或 上出现\onslide,等等。但是,即使超链接文本本身被隐藏,可点击的超链接区域仍处于活动状态(即,我们可以单击超链接文本将出现在第一张幻灯片上的空白区域)。我希望超链接仅在可见时才可点击。我也不想手动注释超链接应出现在的幻灯片上,例如明确写入<2>。这可能吗?

\documentclass{beamer}

\begin{document}

\begin{frame}{First frame}
    The hyperlink only appears...
    
    \onslide<2->{...after a pause. Then we can click \ref{def}.} This text...

    ...and this text should always be visible.
\end{frame}

\begin{frame}{Second frame}
    \begin{definition}
        \label{def}
        Here is a definition.
    \end{definition}
\end{frame}

\end{document}

问题截图(指针位于超链接区域上): 活动的不可见超链接

答案1

如果您使用,\pause内容仍然存在于第一个覆盖上,只是不可见。

如果您希望某些东西不存在,则可以使用\only。为避免硬编码覆盖数字,您可以使用相对覆盖:

\documentclass{beamer}

%\setbeamercovered{transparent}

\begin{document}

\begin{frame}{First frame}
    The hyperlink only appears...\pause
    
    ...after a pause. Then we can click \only<.(1)->{\ref{def}}.
\end{frame}

\begin{frame}{Second frame}
    \begin{definition}
        \label{def}
        Here is a definition.
    \end{definition}
\end{frame}

\end{document}

或者\alt如果链接仍然占用空间:

\documentclass{beamer}

%\setbeamercovered{transparent}

\begin{document}

\begin{frame}
  \frametitle{First frame}
    The hyperlink only appears...
    
    \uncover<+(1)->{...after a pause. Then we can click \alt<-.>{\phantom{\ref{def}}}{\ref{def}}.} This text...

    ...and this text should always be visible.
\end{frame}

\begin{frame}
  \frametitle{Second frame}
    \begin{definition}
        \label{def}
        Here is a definition.
    \end{definition}
\end{frame}

\end{document}

答案2

不同的方法:基于@Werner 的想法https://tex.stackexchange.com/a/183357/36296您可以暂时禁用超链接:

\documentclass{beamer}

\setbeamercovered{transparent}

\makeatletter
\newcommand{\hyperoff}{\let\hyperlink\@secondoftwo}
\makeatother

\begin{document}

\begin{frame}
  \frametitle{First frame}
    The hyperlink only appears...
    
    \uncover<+(1)->{% 
      \begingroup%
      \only<-.>{\hyperoff}%
      ...after a pause. Then we can click \ref{def}.%
      \endgroup%
    } This text...

    ...and this text should always be visible. \ref{def}
\end{frame}

\begin{frame}
  \frametitle{Second frame}
    \begin{definition}
        \label{def}
        Here is a definition.
    \end{definition}
\end{frame}

\end{document}

相关内容