恢复 beamer 中某个部分的长名称(使用 nameref)

恢复 beamer 中某个部分的长名称(使用 nameref)

在 beamer 中,我在每个部分的开头都放了一张幻灯片

\usepackage{nameref}
\newcommand*{\currentname}{\@currentlabelname}

\AtBeginSection[]
{
    \begin{frame}
    \begin{beamerboxesrounded}[scheme=esi-blue,shadow=true]{}
        \begin{center}
        \LARGE{\textcolor{white}{\textbf{\currentname}}}
        \end{center}
    \end{beamerboxesrounded}
    \end{frame}
}

问题是,我的部分名称定义为,例如,\section[ASLR]{Defeating address layout randomisation} 但是,介绍的幻灯片使用该部分的简称(在上面的例子中:“ASLR”),我希望它是长名称(在上面的例子中:“打败地址布局随机化”)。

有什么想法吗?我尝试了几种方法,但要么结果与上述代码类似,要么幻灯片上部小目录中的短节名称表现非常糟糕(带有 Beamer 的导航选项)

答案1

不需要外部包,您只需使用 beamer 命令即可\insertsection

\documentclass{beamer}

\AtBeginSection[]
{
    \begin{frame}
    \begin{beamerboxesrounded}[shadow=true]{}
        \begin{center}
        \LARGE\textcolor{gray}{\textbf{\insertsection}}
        \end{center}
    \end{beamerboxesrounded}
    \end{frame}
}

\begin{document}

\section[ASLR]{Defeating address layout randomisation}
    
\begin{frame}
    abc
\end{frame} 
    
\end{document}

在此处输入图片描述

相关内容