我正在尝试根据已经在 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 定理环境。为此,我采用了etoolbox
和tcolorbox
作为工具。这是我的 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
完成——但是在这里使用是更好的方法。\@currentlabel
before 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}