使用 tcolorbox 制作定义、定理、引理和证明的简单框

使用 tcolorbox 制作定义、定理、引理和证明的简单框

我想要一些看起来像这样的东西: 在此处输入图片描述

我不想每次都把 Box 1 添加到定义环境中。这也适用于环境的属性、引理和定理

\documentclass[12pt,a4paper]{report}
\usepackage[french]{babel} 
\usepackage[a4paper,margin=0.5in]{geometry}
\usepackage{amsmath, amssymb, amsthm, amsfonts}
\usepackage[Glenn]{fncychap}
\frenchbsetup{StandardLists=true}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newtheoremstyle{defn-break}%
{\topsep}{\topsep}
{\normalfont\itshape}{0pt}
{\bfseries}{}
{\newline}{}
% Switch to the newly-defined theorem style
\theoremstyle{defn-break} 
% Define 'definition' as an unnumbered theorem-like environment:
\newtheorem*{definition}{\textbf{Définition}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newtheorem*{Theorem}{Théorème}
\newtheorem*{propriete}{\textbf{Propriété}}
\newtheorem*{exemples}{\textbf{Exemples}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Box1
\usepackage{tcolorbox}
\tcbuselibrary{theorems, breakable, skins}
\newtcolorbox{Box1}[1][0]
{enhanced, % tcolorbox styles
    attach boxed title to top center={yshift=-2.5mm},
    colback=white, colframe=black, colbacktitle=white, coltitle=black,
    boxed title style={size=small,colframe=white},
    fonttitle=\bfseries,
    sharp corners=all,
    title={#1},
    breakable
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Box1
\usepackage{tcolorbox}
\tcbuselibrary{theorems, breakable, skins}
\newtcolorbox{Box2}[1][0]
{enhanced, % tcolorbox styles
    attach boxed title to top center={yshift=-2.5mm},
    colback=white, colframe=black, colbacktitle=white, coltitle=black,
    boxed title style={size=small,colframe=white},
    fonttitle=\bfseries,
    rounded corners=all,
    title={#1},
    breakable
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\chapter{}
\section{Nombres Pairs et Nombres Impaires}

\begin{Box1}[]
    \begin{definition}[Nombres Pairs et Nombres Impaires]
        Tout nombre entier naturel \textit{multiple de} $2$ (\textit{divisible par} $2$) est appelé nombre \textbf{pair}
        \begin{itemize}
            \item $a$ est un nombre \textbf{pair} signifie que: 
            $a=2k$ où $k$ est un nombre entier naturel.
            \item $a$ est un nombre \textbf{impair} signifie que: 
            $a=2k+1$ où $k$ est un nombre entier naturel, ou    $a=2k^{'}-1$ où $k^{'}$ est un nombre entier naturel.
        \end{itemize}
    \end{definition}
\end{Box1}
\section{}
\begin{Box2}[]
    \begin{Theorem}[Nombres Pairs et Nombres Impaires]
        Tout nombre entier naturel \textit{multiple de} $2$ (\textit{divisible par} $2$) est appelé nombre \textbf{pair}
        \begin{itemize}
            \item $a$ est un nombre \textbf{pair} signifie que: 
            $a=2k$ où $k$ est un nombre entier naturel.
            \item $a$ est un nombre \textbf{impair} signifie que: 
            $a=2k+1$ où $k$ est un nombre entier naturel, ou    $a=2k^{'}-1$ où $k^{'}$ est un nombre entier naturel.
        \end{itemize}
    \end{Theorem}
\end{Box2}
\end{document}

答案1

tcolorbox 有一个定理库,您已在加载。(请参阅第 18 章其文档了解详情。)我认为,最自然的事情是使用它的\newtcbtheorem命令,而不是使用amsthm定理定义命令。

这是定理的一个例子,它给出的结果与您所得到的结果类似(带星号的版本定理*用于未编号的定理。)

\documentclass[12pt,a4paper]{report}
\usepackage[french]{babel} 
\usepackage[a4paper,margin=0.5in]{geometry}
\usepackage{amsmath, amssymb, amsfonts}
\usepackage[Glenn]{fncychap}
% more compact lists
\usepackage{enumitem}\setitemize{nolistsep}
\frenchbsetup{StandardLists=true}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tcolorbox}
\tcbuselibrary{theorems, breakable, skins}
\newtcbtheorem{Theorem}{Théoréme}%
    {
    enhanced, % tcolorbox styles
        %attach boxed title to top center={yshift=-2.5mm},
        colback=white, colframe=black, colbacktitle=white, coltitle=black,
        boxed title style={size=small,colframe=white},
        fonttitle=\bfseries,
        rounded corners=all,
        toptitle=1ex, top=0.5ex, % a little extra space at top, a little less before content
        titlerule=-1ex, % get rid of separator rule
        title={#1},
        fontupper=\itshape, % make theorem content italics
        description delimiters parenthesis, % parentheses around theorem title
        description font=\normalfont,% no bold for theorem title
        separator sign none,% no punctuation after theorem name
        breakable
    }{th}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\chapter{}
\section{Nombres Pairs et Nombres Impaires}
\begin{Theorem*}{Nombres Pairs et Nombres Impaires}
    Tout nombre entier naturel \textit{multiple de} $2$ (\textit{divisible par} $2$) est appelé nombre \textbf{pair}
    \begin{itemize}
        \item $a$ est un nombre \textbf{pair} signifie que: 
        $a=2k$ où $k$ est un nombre entier naturel.
        \item $a$ est un nombre \textbf{impair} signifie que: 
        $a=2k+1$ où $k$ est un nombre entier naturel, ou    $a=2k^{'}-1$ où $k^{'}$ est un nombre entier naturel.
    \end{itemize}
\end{Theorem*}
\end{document}

newtcbtheorem 示例

我会让你弄清楚如何对定义、引理、属性等做同样的事情。

但是如果由于某种原因您坚持使用 amsthm 和您当前的定义,那么您可以将Theorem环境定义为一个新环境作为包装器Box2和一个innerTheorem这样的环境:

\documentclass[12pt,a4paper]{report}
\usepackage[french]{babel} 
\usepackage[a4paper,margin=0.5in]{geometry}
\usepackage{amsmath, amssymb, amsthm, amsfonts}
\usepackage[Glenn]{fncychap}
% more compact lists
\usepackage{enumitem}\setitemize{nolistsep}
\frenchbsetup{StandardLists=true}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newtheoremstyle{defn-break}%
{\topsep}{\topsep}
{\normalfont\itshape}{0pt}
{\bfseries}{}
{\newline}{}
% Switch to the newly-defined theorem style
\theoremstyle{defn-break} 
% Define 'definition' as an unnumbered theorem-like environment:
\newtheorem*{definition}{\textbf{Définition}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newtheorem*{innerTheorem}{Théorème}
\newtheorem*{propriete}{\textbf{Propriété}}
\newtheorem*{exemples}{\textbf{Exemples}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tcolorbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Box2
\tcbuselibrary{theorems, breakable, skins}
\newtcolorbox{Box2}[1][0]
{enhanced, % tcolorbox styles
    attach boxed title to top center={yshift=-2.5mm},
    colback=white, colframe=black, colbacktitle=white, coltitle=black,
    boxed title style={size=small,colframe=white},
    fonttitle=\bfseries,
    rounded corners=all,
    title={#1},
    breakable
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentEnvironment{Theorem}{o}{
    \begin{Box2}[]
    \begin{innerTheorem}[#1]

}{
    \end{innerTheorem}
    \end{Box2}
}

\begin{document}
\chapter{}
\section{Nombres Pairs et Nombres Impaires}

\begin{Theorem}[Nombres Pairs et Nombres Impaires]
    Tout nombre entier naturel \textit{multiple de} $2$ (\textit{divisible par} $2$) est appelé nombre \textbf{pair}
    \begin{itemize}
        \item $a$ est un nombre \textbf{pair} signifie que: 
        $a=2k$ où $k$ est un nombre entier naturel.
        \item $a$ est un nombre \textbf{impair} signifie que: 
        $a=2k+1$ où $k$ est un nombre entier naturel, ou    $a=2k^{'}-1$ où $k^{'}$ est un nombre entier naturel.
    \end{itemize}
\end{Theorem}
\end{document}

innerTheorem 示例

我会再次让你弄清楚如何对定义做同样的事情。

相关内容