这里描述了一种向 beamer notes 添加代码的解决方法: LaTeX beamer:注释中的代码列表。以下是我将其改编为与 Minted 一起使用的方法:
\documentclass{beamer}
\setbeameroption{show notes}
\usepackage{minted}
\begin{document}
\begin{frame}[fragile]
\begin{minted}{text}
Qux
\end{minted}
Goodbye.\note{hello}
\end{frame}
\newsavebox{\LstA}
\begin{lrbox}{\LstA}
\begin{minted}{text}
foo bar
\end{minted}
\end{lrbox}
\begin{frame}[fragile]
second frame
\note{Here is some code in a note:
\usebox{\LstA}}
\end{frame}
\end{document}
我收到以下错误:
!LaTeX 错误:出现错误 — — 可能缺少 \item。
请参阅 LaTeX 手册或 LaTeX Companion 了解解释。输入 H 可立即获得帮助。...
l.1
\begin{Verbatim}[commandchars=\\\{\}]
如果我继续按下ENTER,就会生成一个似乎包含正确内容的 PDF - 但错误可以消失吗?
答案1
为了设置您minted
创建的水平框中的环境,lrbox
需要重新自定义Verbatim
为BVerbatim
:
\documentclass{beamer}
\setbeameroption{show notes}
\usepackage{minted}
\begin{document}
\begin{frame}[fragile]
\begin{minted}{text}
Qux
\end{minted}
Goodbye.\note{hello}
\end{frame}
\newsavebox{\LstA}
\begin{lrbox}{\LstA}
\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}%
\begin{minted}{text}
foo bar
\end{minted}
\end{lrbox}
\begin{frame}[fragile]
second frame
\note{Here is some code in a note:
\usebox{\LstA}}
\end{frame}
\end{document}
这个技巧用在minted.sty
for的第 987 行mintinline
。
您可以定义一个Bminted
环境:
\documentclass{beamer}
\setbeameroption{show notes}
\usepackage{minted}
\newenvironment{Bminted}[2][]
{\VerbatimEnvironment
\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}%
\begin{minted}[#1]{#2}}
{\end{minted}}
\begin{document}
\begin{frame}[fragile]
\begin{minted}{text}
Qux
\end{minted}
Goodbye.\note{hello}
\end{frame}
\newsavebox{\LstA}
\begin{lrbox}{\LstA}
\begin{Bminted}[showspaces]{text}
foo bar
\end{Bminted}
\end{lrbox}
\begin{frame}[fragile]
second frame
\note{Here is some code in a note:
\usebox{\LstA}}
\end{frame}
\end{document}
我showspaces
只是为了示例而添加了该选项,以确保minted
选项得到遵守。