beamerappendixnote 不适用于 [fragile] / verbatim 上下文

beamerappendixnote 不适用于 [fragile] / verbatim 上下文

我习惯beamerappendixnote在讲座幻灯片中提供代码示例,供那些想要重做课堂所做内容的学生使用。

将代码放在幻灯片上并进行漂亮的突出显示等操作需要[fragile]框架选项。这似乎不适用于beamerappendixnote

梅威瑟:

\documentclass[20pt]{beamer}
\usepackage[backposition=title]{beamerappendixnote}
\usepackage{lipsum}
\begin{document}
    \begin{frame}{Main title}
        Main content \vfill
        \appxnote[fragile]{Long note}{\lipsum[3]}
    \end{frame}
    \printappxnotes
\end{document}

问题:

错误消息,因为beamerappendixnote不接受[fragile]

理想的解决方案(按实用性排序):

  • beamerappendixnote按原样运行的代码
  • 补丁beamerappendixnote修复了这个问题
  • 替代包也可以自动管理\beamergotobuttons

fragile非常欢迎任何关于谁可以获得带有此类附录幻灯片的框架的指点。

答案1

你可以使用subframe包来将代码示例保存在主幻灯片附近

\documentclass[20pt]{beamer}
\usepackage[append]{beamersubframe}
\usepackage{lipsum}
\usepackage{listings}
\begin{document}
    \begin{frame}[label=foo]
        \frametitle{Main title}
        Main content 
        \hyperlink{bar}{\beamerbutton{Appendix}}
    \end{frame}
    \begin{subframe}[fragile,label=bar]
    \hyperlink{foo}{\beamerbutton{Back}} 
    \begin{lstlisting}
    test
    \end{lstlisting}
    \end{subframe}
    \begin{frame}
    normal frame
    \end{frame}
    
    \appendsubframes
\end{document}

这也适用于 markdown:

---
output: 
  beamer_presentation:
    keep_tex: true
header-includes:
  - \usepackage[append]{beamersubframe}
  - \usepackage{listings}
  - \makeatletter\beamer@ignorenonframefalse\makeatother
  - \AtEndDocument{\appendsubframes}
---

test \label{foo}\hyperlink{bar}{\beamerbutton{Appendix}}

``` {=latex}
\end{frame}
    \begin{subframe}[fragile,label=bar]
    \hyperlink{foo}{\beamerbutton{Back}} 
    \begin{lstlisting}
    test
    \end{lstlisting}
    \end{subframe}
\begin{frame}
```

test

相关内容