Beamer:各小节都放在一行中,中间用破折号隔开

Beamer:各小节都放在一行中,中间用破折号隔开

我怎样才能在目录中列出中间带有破折号的子部分?我设法在下面的代码中在中间以及在最后一个子部分后面添加了破折号。使用我的方法似乎无法轻松删除多余的破折号。

(相信我,在我的非最小工作示例中,这实际上看起来不错。)

\documentclass{beamer}
\setbeamertemplate{subsection in toc}{\inserttocsubsection \hspace{0.5em}$-$\hspace{-0.5em} }
\begin{document}
\tableofcontents
\section{Section}
\subsection{This }
\begin{frame}{test}
\end{frame}
\subsection{Is }
\begin{frame}{test}
\end{frame}
\subsection{A }
\begin{frame}{test}
\end{frame}
\subsection{Minimal}
\begin{frame}{test}
\end{frame}
\subsection{Working}
\begin{frame}{test}
\end{frame}
\subsection{Example}
\begin{frame}{test}
\end{frame}
\end{document}

在此处输入图片描述


samcarter 的解决方案修复了我的方法,但在小节突出显示方面存在问题。请参阅Beamer:各小节都放在一行中,中间用破折号隔开,并有适当的突出显示

答案1

我会反过来做:

不要删除最后一个小节后的破折号,而是将其放在小节之前,因为这样更容易测试小节编号是否等于 1

\documentclass{beamer}

\setbeamertemplate{subsection in toc}{%
\ifnum\inserttocsubsectionnumber>1
    $-$\hspace{0.5em}%
\fi
\inserttocsubsection}

\begin{document}
\begin{frame}
\tableofcontents
\end{frame}
\section{Section}
\subsection{This}
\begin{frame}{test}
\end{frame}
\subsection{Is}
\begin{frame}{test}
\end{frame}
\subsection{A}
\begin{frame}{test}
\end{frame}
\subsection{Minimal}
\begin{frame}{test}
\end{frame}
\subsection{Working}
\begin{frame}{test}
\end{frame}
\subsection{Example}
\begin{frame}{test}
\end{frame}
\end{document}

在此处输入图片描述

相关内容