更改 \insertshorttitle 的链接目标

更改 \insertshorttitle 的链接目标

我想在我的自定义 beamer 模板中更改以下小内容。在我的脚注中,我的演示文稿的标题使用 打印\insertshorttitle,就像在许多标准模板中一样。通常,此标题的超链接链接到演示文稿的第一张幻灯片,我希望此标题的超链接链接到以下内容:

  • 链接到目录(通常在第 2 页)

  • 如果在演示文稿的附录(或第 N 部分)中链接到附录(第 N 部分)的目录(第 X 页),而不是第一个目录(第 2 页)

据我所知,这在主题文件级别上是不可定制的,并且我对投影仪内部工作原理的了解很少。

这是否可以通过一种简单的方式重新定义原始链接目标来实现?(也许链接总是转到带有 [label=start] 或类似内容的页面,所以我可以给几张幻灯片赋予相同的标签(如果可能的话)

或者也许通过链接到以某种方式“标记”(由我)的具有最大页码的页面

更新:(之前忘记了这一点)

  • 如果已经在目录中(常规或附录),则链接到其他(第 N+1 个)目录

我在这里尝试做的是,在演示后轻松切换问题内容。我试图避免滚动浏览大量幻灯片,这通常伴随着演示的提问部分。

在我的想象中,这样的设置将以以下方式工作:无论我在演示文稿中的哪个位置,单击一次即可进入目录。从那里,单击一次即可进入我想要的(子)部分,或另一个目录(我通常只有两个目录,即普通目录和附录)。一旦我解释了该幻灯片,我就可以再次返回。

感谢@marco 的评论,到目前为止我能够做以下事情:

一些相关的命令是:

\def\hyperlinkpresentationstart{\hyperlink{Navigation1}}

beamerbasenavigation.sty它在“这是除一个链接之外的所有链接的目标”中定义\insertshorttitle。我将其复制并粘贴到我的文档中,并将其更改为 2 而不是 1,这有效并且已经解决了我的第一点。

\hyperlinkpresentationend{...}

也在此处定义。据我所知,这链接到附录之前的最后一帧。此目标仅在演示文稿的第一帧中使用,并且由于这通常是普通帧,因此实际上从未使用过。

\hyperlinkappendixstart{...}
\hyperlinkappendixend{...}

也在那里并且做了你所期望的事情。

我现在遇到的问题是beamerbasetitle.sty

\newcommand\insertshorttitle[1][]{%
  \beamer@setupshort{#1}%
  \let\thanks=\@gobble%
  \ifnum\c@page=1%
    \hyperlinkpresentationend{\beamer@insertshort{\beamer@shorttitle}}%
  \else%
    \hyperlinkpresentationstart{\beamer@insertshort{\beamer@shorttitle}}%
  \fi}

在这里我想做以下事情:

if pagenumber== 1 OR (>2 AND <=appendix_start_pagenumber) {\hyperlinkpresentationstart}%since I changed the target to 2 (ToC always on page 2)
else if pagenumber==2 OR >appendix_start_pagenumber {\hyperlinkappendixstart}%takes care of my second point

但到目前为止,我还无法在 TeX 中编写有效的 else-if 语句(或复合条件),并且无法使页码正常工作(除非直接输入数字......)

我也不确定如何将其集成到我的文档中,因为简单地复制并粘贴它(并将其更改为\renewcommand...)似乎不起作用

答案1

它必须在part-level 上吗?使用sections,以下代码将 链接shorttitle到 的开头section

待办事项:链接幻灯片toc在第一部分之前

\documentclass{beamer}
\let\Tiny=\tiny% http://tex.stackexchange.com/q/58087/5764

\makeatletter
\setbeamertemplate{footline}{
    \leavevmode%
    \hbox{%
        \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
            \usebeamerfont{title in head/foot} \hyperlinksectionstart{\insertshorttitle} 
        \end{beamercolorbox}%
    }%
    \vskip0pt%
}
\makeatother

\title[shorttest]{test}
\author{Einstein}

\AtBeginSection[]{%
    \begin{frame}
        \tableofcontents[sectionstyle=show/hide,subsectionstyle=hide/show/hide]
    \end{frame}
}

\begin{document}

    \begin{frame}
        \maketitle
    \end{frame}

    \begin{frame}
        \tableofcontents
    \end{frame}

    \section{sec1}

        \begin{frame}
            test
        \end{frame}

    \section{sec2}

        \begin{frame}
            test
        \end{frame}

\end{document}

答案2

所以我解决了这个问题,尽管没有我想要的那么漂亮。我从中取出几行beamerbasenavigation.stybeamerbasetitle.sty 修改它们,如下所示,然后将它们粘贴到我的文档中,现在它的表现就像我想要的那样。

\def\hyperlinkpresentationstart{\hyperlink{Navigation2}}%ToC always on page 2

\makeatletter
\renewcommand\insertshorttitle[1][]{%
  \beamer@setupshort{#1}%
  \let\thanks=\@gobble%
  \ifnum\c@page<3%page 1 has no links, since it's a [plain]-frame, ToC links to appendix
    \hyperlinkappendixstart{\beamer@insertshort{\beamer@shorttitle}}%
  \else%
    \ifnum\c@page>\beamer@startpageofappendix%pages in appendix link to appendix-ToC
          \hyperlinkappendixstart{\beamer@insertshort{\beamer@shorttitle}}%
    \else%all other pages link to ToC
      \hyperlinkpresentationstart{\beamer@insertshort{\beamer@shorttitle}}%
    \fi%
  \fi}
\makeatother

相关内容