如何将 tcolorbox 放入一帧投影仪中

如何将 tcolorbox 放入一帧投影仪中

我想将 tcolorbox 放在 beamer 类的一个框架中。我创建了 vd 环境,如下面的代码所示。

编译以下代码时出现错误“扫描 \beamer@collect@@body 的使用时文件结束。”请解释原因以及如何更正代码。

先感谢您!

\documentclass[17pt, hyperref={unicode},aspectratio=169]{beamer}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[most,many]{tcolorbox}
\newenvironment{vd}{\begin{frame}\begin{tcolorbox}}
{\end{tcolorbox}\end{frame}}
\begin{document}
\begin{frame}
\begin{tcolorbox}
    Contents of enviroment.
\end{tcolorbox}
\end{frame}

\begin{vd}
    Contents of enviroment.
\end{vd}
\end{document}

答案1

我认为这与 beamer 框架环境收集内容的非常敏感的方式有关。该问题在第 61 页进行了描述Beamer 用户指南(v3.66;第 8.1 节结束)。

\end{...}基本上,当使用框架定义其他环境时,在结束块中放置另一个命令效果不佳。

Beamer 用户指南建议通过定义进一步启动内部环境的命令来解决这个问题,如下所示:

\documentclass[17pt, hyperref={unicode},aspectratio=169]{beamer}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[most,many]{tcolorbox}
\newenvironment{vd}{\begin{frame}\tcolorboxstart}
{\tcolorboxend\end{frame}}

\newcommand{\tcolorboxstart}{\begin{tcolorbox}}
\newcommand{\tcolorboxend}{\end{tcolorbox}}

\begin{document}
\begin{frame}
\begin{tcolorbox}
    Contents of environment.
\end{tcolorbox}
\end{frame}

\begin{vd}
    Contents of environment.
\end{vd}
\end{document}

相关内容