如何在超链接覆盖规范中引用当前覆盖编号?

如何在超链接覆盖规范中引用当前覆盖编号?

我使用 pandoc 和自定义 lua 过滤器来简化我的 beamer 演示文稿的设计。下面是我目前编写的 pandoc Markdown 的示例:

# Frame title

::: incremental
## Block title

- [This is the first item]{target="to-some-where" onslide="<1->"}
- [This is the second item]{target="to-some-where-else" onslide="<2->"}
:::

以及我当前生成的 LaTeX:

\begin{frame}{Frame title}
  \begin{block}{Block title}
    \begin{itemize}[<+->]
      \item \hyperlink<1->{to-some-where}{This is the first item}
      \item \hyperlink<2->{to-some-where-else}{This is the second item}
    \end{itemize}
  \end{block}
\end{frame}

到目前为止,一切都很好,但我不想指定覆盖(onslide="<1->"),因为这很繁琐、容易出错,并且会使更改变得比应有的更困难,我想参考“当前覆盖编号“。我的 pandoc Markdown 将变成:

# Frame title

::: incremental
## Block title

- [This is the first item]{target="to-some-where"}
- [This is the second item]{target="to-some-where-else"}
:::

我尝试将以下内容添加到我的 pandoc beamer 模板中:

\makeatletter
\newcommand{\overlaynumber}{\beamer@overlaynumber}
\makeatother

并生成:

\item \hyperlink<\overlaynumber{}->{to-some-where-else}{This is the second item}

但超链接在所有幻灯片上都处于活动状态,包括那些文本尚未显示的幻灯片。

当然,我可以使用我的 lua 过滤器以某种方式计算列表项并生成静态覆盖规范,但这有很多缺点(我有时想添加指向列表项以外的其他内容的超链接,一些列表传递了属性noincremental,我可以在同一张幻灯片中有多个列表,还有其他元素...)

有没有办法用纯 TeX/LaTeX/beamer 命令来实现这一点?

答案1

您可以使用相对叠加:

\documentclass{beamer}

\begin{document}
    
\begin{frame}{Frame title}
  \begin{block}{Block title}
    \begin{itemize}[<+->]
      \item \hyperlink<.->{to-some-where}{This is the first item}
      \item \hyperlink<.->{to-some-where-else}{This is the second item}
    \end{itemize}
  \end{block}
\end{frame}

    
\end{document}

相关内容