在以下示例中,我有一个超链接,它仅在 之后\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}