带有 amsthm 和 tcolorbox 的环境 - 将带框标题附加到顶部

带有 amsthm 和 tcolorbox 的环境 - 将带框标题附加到顶部

我想使用 tcolorbox 为使用 amsthm 创建的环境创建框。MWE:

\documentclass{scrbook}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{skins,theorems,breakable}
\usepackage{varwidth}

%Theorem with tcolorbox
\newtcbtheorem{YetAnotherTheorem}{Theorem}%
{enhanced,breakable,frame empty,interior empty,colframe=green!50!white,
coltitle=green!50!black,fonttitle=\bfseries,colbacktitle=green!15!white,
borderline={0.5mm}{0mm}{green!15!white},
borderline={0.5mm}{0mm}{green!50!white,dashed},
attach boxed title to top center={yshift=-2mm},
boxed title style={boxrule=0.4pt},varwidth boxed title}{theo}

%Theorem with amsthm
\newtheoremstyle{defstyle}
    {}
    {}
    {
    }
    {0pt}{}{}
    {\newline}
    {\ifx\relax#3\relax
   \textcolor{blue!50!white}{\textbf{#1} #2}%
 \else
   \textbf{#3}%
 \fi}
\theoremstyle{defstyle}
\newtheorem{definition}{Definition}
\tcolorboxenvironment{definition}{enhanced jigsaw,colframe=blue,colback=blue!20!white,breakable,before skip=10pt,after skip=10pt,attach boxed title to top center={yshift=-2mm}}

\begin{document}
\begin{YetAnotherTheorem}{Mittelwertsatz f\"{u}r $n$ Variable}{mittelwertsatz_n4}%
Es sei $n\in\mathbb{N}$, $D\subseteq\mathbb{R}^n$ eine offene Menge und
$f\in C^{1}(D,\mathbb{R})$. Dann gibt es auf jeder Strecke
$[x_0,x]\subset D$ einen Punkt $\xi\in[x_0,x]$, so dass gilt
\begin{align*}
f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0)
\end{align*}
\end{YetAnotherTheorem}
\begin{definition}
Eine Funktion $f:~I\to\mathbb{R}$ auf einem Intervall $I$ hei\ss{}t in
$x_0\in I$ differenzierbar oder linear approximierbar,
wenn der Grenzwert
\begin{align*}
\lim\limits_{x\to x_0}\frac{f(x)-f(x_0)}{x-x_0}=\lim\limits_{h\to 0}\frac{f(x_0+h)-f(x_0)}{h}
\end{align*}
existiert. Bei Existenz hei\ss{}t dieser Grenzwert Ableitung
oder Differentialquotient von $f$ in $x_0$ und man
schreibt f\"{u}r ihn
\begin{align*}
f’(x_0)\quad\text{oder}\quad\frac{df}{dx}(x_0).
\end{align*}
\end{definition}
\end{document}

我使用了软件包文档的第 16.4 章,我对结果几乎很满意(无论如何,只要我使用正确的颜色……),我唯一缺少的是“附加方框标题”。在使用 amsthm 创建的环境中,我包含了一个特定行为,无论定义/定理是否有可选名称,我都需要包含该行为。

  • 使用 \tcolorboxenvirionment 时如何将标题附加到框中?或
  • 我如何将所提到的行为纳入 \newtcbtheorem 中?

当我将 ams-theorem 中使用的代码片段添加到 tcbtheorem 时,出现了错误消息。

我已经在德国社区发布了这个问题texwelt.de

答案1

  • 切勿混合使用ntheoremamsthmtcbtheorem。最好只使用其中一个并分开它们的定义。
  • 如果我理解正确的话,你会寻找类似这样的东西:

在此处输入图片描述

  • 标题(“定理”或“定义”旁边的文字)是必填字段,因此如果您不喜欢此文字,请将其留空。例如:\begin{YetAnotherTheorem}{}{mittelwertsatz_n4}

上面的图像由以下生成:

\documentclass{scrbook}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{many}
\usepackage{varwidth}

%Theorem with tcolorbox
\newtcbtheorem{YetAnotherTheorem}{Theorem}%
{
    enhanced jigsaw, breakable,
    frame empty, interior empty,
    colframe=green!50!white, coltitle=green!50!black,
    fonttitle=\bfseries,colbacktitle=green!15!white,
    borderline={1mm}{0mm}{green},
    attach boxed title to top center={yshift=-2mm},
    boxed title style={boxrule=0.4pt},
    varwidth boxed title
}{theo}

\newtcbtheorem{definition}{Definition}%
{
    enhanced jigsaw, breakable,
    colframe=blue,colback=blue!20!white,
    breakable,
    before skip=10pt,after skip=10pt,
    attach boxed title to top center={yshift=-2mm}
}{def}

\begin{document}
\begin{YetAnotherTheorem}{Mittelwertsatz f\"{u}r $n$ Variable}{mittelwertsatz_n4}
    Es sei $n\in\mathbb{N}$, $D\subseteq\mathbb{R}^n$ eine offene Menge und
    $f\in C^{1}(D,\mathbb{R})$. Dann gibt es auf jeder Strecke
    $[x_0,x]\subset D$ einen Punkt $\xi\in[x_0,x]$, so dass gilt
\[
f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0)
\]
\end{YetAnotherTheorem}

\begin{YetAnotherTheorem}{}{mittelwertsatz_n4}
    Es sei $n\in\mathbb{N}$, $D\subseteq\mathbb{R}^n$ eine offene Menge und
    $f\in C^{1}(D,\mathbb{R})$. Dann gibt es auf jeder Strecke
    $[x_0,x]\subset D$ einen Punkt $\xi\in[x_0,x]$, so dass gilt
\[
f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0)
\]
\end{YetAnotherTheorem}

\begin{definition}{}{important-definition}
    Eine Funktion $f:~I\to\mathbb{R}$ auf einem Intervall $I$ hei\ss{}t in $x_0\in I$ differenzierbar oder linear approximierbar, wenn der Grenzwert
\[
\lim\limits_{x\to x_0}\frac{f(x)-f(x_0)}{x-x_0}=\lim\limits_{h\to 0}\frac{f(x_0+h)-f(x_0)}{h}
\]
    existiert. Bei Existenz hei\ss{}t dieser Grenzwert Ableitung oder Differentialquotient von $f$ in $x_0$ und man schreibt f\"{u}r ihn
\[
f’(x_0)\quad\text{oder}\quad\frac{df}{dx}(x_0).
\]
\end{definition}
\end{document}

相关内容