如何像beamer一样重新定义定理环境?

如何像beamer一样重新定义定理环境?

我正在尝试根据已经在 latex 中准备好的讲义准备幻灯片。如果讲义尚未准备好,这tcbtheorem是一种展示定理环境的众所周知的方法。但不知何故我无法使用它,因为 tcbtheorem它使用了两个参数作为标题和参考,例如

\begin{definition}{Elementary Set}{label here}

defintion goes here

\end{definition}

而我们已经输入了

\begin{definition}[Elementary Set]\label{def:elementaryset}
            If $A$ is union of a finite number of intervals, $A$ is said to be an elementary set. Set of all elementary sets in ${\mathbb{R}}^p$ is denoted by $\mathcal{E}$.
        \end{definition}

在所有 50 页的笔记中都以相同的amsthm风格呈现。因此,实现我们想要的方法是重新定义定理环境,使其看起来像 Beamer 定理环境。为此,我采用了etoolboxtcolorbox作为工具。这是我的 MWE。

\documentclass[serif,fontsize=11pt]{article}

\usepackage{etoolbox,amssymb}
\usepackage[many]{tcolorbox}

\newtheorem{definition}{Definition}[section]

\AtBeginEnvironment{definition}{\begin{tcolorbox}[title=Definition]}
    \AtEndEnvironment{definition}{\end{tcolorbox}}

\begin{document}

    \begin{definition}[Elementary Set]\label{def:elementaryset}
        If $A$ is union of a finite number of intervals, $A$ is said to be an elementary set. Set of all elementary sets in ${\mathbb{R}}^p$ is denoted by $\mathcal{E}$.
    \end{definition}


\end{document}

结果如下,

在此处输入图片描述

我的要求:

Definition 0.1(Elementary set) 应该出现在 tcolorbox 的标题中。

如何实现这一点?

提前致谢!!TeX 大师……

答案1

由于\newtcbtheorem设置不同,尤其是标签参数,我建议使用\renewtcolorbox{definition}并伪造标题行。

使用beamer选项甚至可以提供beamer外观。

标签机制可以通过label=或者手动定义宏来\label完成——但是在这里使用是更好的方法。\@currentlabelbefore upper={\protected@edef\@currentlabel{...}}label=

\documentclass[serif,fontsize=11pt]{article}

\usepackage{etoolbox,amssymb}
\usepackage[many]{tcolorbox}

\newtheorem{definition}{Definition}[section]



\makeatletter
\renewtcolorbox[use counter=definition,number within=section]{definition}[1][]{
  enhanced,beamer,
  title={Definition \thedefinition\ (#1)},
  before upper={\protected@edef\@currentlabel{\csname p@definition\endcsname\csname thedefinition\endcsname}}
}
\makeatother


\begin{document}

\begin{definition}[Elementary Set] \label{Foo}
  If $A$ is union of a finite number of intervals, $A$ is said to be an elementary set. Set of all elementary sets in ${\mathbb{R}}^p$ is denoted by $\mathcal{E}$.
\end{definition}

See \ref{Foo}

\end{document}

在此处输入图片描述

相关内容