帶有可點擊連結的 Beamer Parttoc

帶有可點擊連結的 Beamer Parttoc

我嘗試產生具有可點擊連結的零件目錄。我發現,但不幸的是它不會產生超連結。我發現以下建議可以生成可點擊的鏈接,但所有這些鏈接都引用parttoc本身。

\documentclass{beamer}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\newcommand{\dummyFrame}[1][1]{\begin{frame}{Test}\blindtext[#1]\end{frame}}
\usepackage{hyperref}


% for the list of parts
\makeatletter
\AtBeginPart{%
    \addtocontents{toc}{%
        \protect\beamer@partintoc{\the\c@part}{\beamer@partnameshort}{\the\c@page}%
    }%
    %    \setcounter{framenumber}{0}
    \frame{\partpage}
}
%% number, shortname, page.
\providecommand\beamer@partintoc[3]{%
    \ifnum\c@tocdepth=-1\relax
    % requesting onlyparts.
    \makebox[6em]{Einheit #1:} \textcolor{green!30!blue}{\hyperlink{#2}{#2}}
    \par
    \fi
}
\define@key{beamertoc}{onlyparts}[]{%
    \c@tocdepth=-1\relax
}
\makeatother%




\begin{document}
    \begin{frame}{Inhaltsübersicht}
        \tableofcontents[onlyparts]
    \end{frame}

\part{MyPart One}
    \dummyFrame
    
\part{MyPart Two}
    \dummyFrame
    \dummyFrame
    
\part{MyPart Three}
    \dummyFrame
    \dummyFrame
    
\end{document}

如何使這些連結指向正確的框架?在此先感謝您的任何建議

答案1

您可以為零件框架添加標籤,然後將其用作連結目標:

\documentclass{beamer}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\newcommand{\dummyFrame}[1][1]{\begin{frame}{Test}\blindtext[#1]\end{frame}}
\usepackage{hyperref}


% for the list of parts
\makeatletter
\AtBeginPart{%
    \addtocontents{toc}{%
        \protect\beamer@partintoc{\the\c@part}{\hyperlink{part-\thepart}{\beamer@partnameshort}}{\the\c@page}%
    }%
    %    \setcounter{framenumber}{0}
    \frame[label=part-\thepart]{\partpage}
}
%% number, shortname, page.
\providecommand\beamer@partintoc[3]{%
    \ifnum\c@tocdepth=-1\relax
    % requesting onlyparts.
    \makebox[6em]{Einheit #1:} \textcolor{green!30!blue}{#2}
    \par
    \fi
}
\define@key{beamertoc}{onlyparts}[]{%
    \c@tocdepth=-1\relax
}
\makeatother%


\begin{document}
    \begin{frame}{Inhaltsübersicht}
        \tableofcontents[onlyparts]
    \end{frame}

\part{MyPart One}
    \dummyFrame
    
\part{MyPart Two}
    \dummyFrame
    \dummyFrame
    
\part{MyPart Three}
    \dummyFrame
    \dummyFrame
    
\end{document}

相關內容