Beamer 笔记中针对 minted 环境的解决方法

Beamer 笔记中针对 minted 环境的解决方法

这里描述了一种向 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需要重新自定义VerbatimBVerbatim

\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.styfor的第 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选项得到遵守。

相关内容