% !TeX root = tcolorbox.tex % include file of tcolorbox.tex (manual of the LaTeX package tcolorbox) \clearpage \section{Library \mylib{theorems}}\label{sec:theorems}% \tcbset{external/prefix=external/theorems_}% The library is loaded by a package option or inside the preamble by: \begin{dispListing} \tcbuselibrary{theorems} \end{dispListing} This also loads the package \refPkg{amsmath}. Denis Bitouz\'e, Muzimuzhi, and many others provided very valuable input for this library. \subsection{Macros of the Library} \begin{docCommands}[ doc parameter = \oarg{init options}\marg{name}\marg{display name}\marg{options}\marg{prefix}, doc updated=2022-07-18 ] { { doc name = NewTcbTheorem }, { doc name = newtcbtheorem } } Creates new environments \meta{name} and \meta{name}|*| based on |tcolorbox| to frame a (mathematical) theorem. The \meta{display name} is used in the title line with a number, e.\,g. \mbox{\flqq Theorem 5.1\frqq}. The \meta{options} are given to the underlying |tcolorbox| to control the appearance. %The \meta{counter} is used for automatic numbering. The \meta{init options} allow setting up automatic numbering, see \Vref{sec:initkeys}.\par\medskip If \meta{name} is chosen as |footheorem|, the new environments are described by \begin{docEnvironments}[ doc no index, doc name = footheorem, doc parameter = \oarg{keys}\oarg{short}\marg{title}\marg{marker} ]{} Here, \meta{title} is the title text for the theorem and is also set as \refKey{/tcb/nameref} identifier. Optionally, the \meta{short} title used instead as \refKey{/tcb/nameref} identifier and in lists of theorems. \meta{keys} supplement the \meta{options} and may be used only in rare cases. The theorem is automatically labeled with \meta{prefix}\meta{separator}\meta{marker} where \meta{separator} is predefined as \enquote{|:|}, see \refKey{/tcb/label separator}. \end{docEnvironments} \begin{docEnvironments}[ doc no index, doc name = footheorem*, doc parameter = \oarg{keys}\marg{title} ]{} This represents an unnumbered variant. Again, \meta{title} is the title text for the theorem and \meta{keys} supplement the \meta{options}. This variant is not labeled and not listed in lists of theorems. \end{docEnvironments} \begin{marker} \refCom{NewTcbTheorem} and \refCom{newtcbtheorem} are identical and both rely on \refCom{NewTColorBox} based on |\NewDocumentCommand|. \end{marker} \clearpage \inputpreamblelisting{F} \begin{dispExample} % usage of `\nameref' needs `nameref' or `hyperref' to be loaded \begin{mytheo}{This is my title}{theoexample} This is the text of the theorem. The counter is automatically assigned and, in this example, prefixed with the section number. This theorem is numbered with \ref{th:theoexample}, it is given on page~\pageref{th:theoexample}, and it is titled \flqq\nameref{th:theoexample}\frqq. \end{mytheo} \end{dispExample} \begin{dispExample} % usage of `\nameref' needs `nameref' or `hyperref' to be loaded \begin{mytheo}[][Concise title]{This my very long theorem title with too much words}{theoexample2} Here we have a long and a short title. This theorem is numbered with \ref{th:theoexample2}, it is given on page~\pageref{th:theoexample2}, and it is titled \flqq\nameref{th:theoexample2}\frqq. \end{mytheo} \end{dispExample} \begin{dispExample} \begin{mytheo}[label=myownlabel]{This is my title}{} The label parameter can be left empty without \LaTeX\ error. Or you may use an own label to reference Theorem \ref{myownlabel}. \end{mytheo} \end{dispExample} \begin{dispExample} \begin{mytheo}{}{} The title can also be left empty without problem. Note that the \enquote{:} vanished magically. \end{mytheo} \end{dispExample} \begin{dispExample} \begin{mytheo*}{Unnumbered Theorem} This theorem is not numbered. \end{mytheo*} \end{dispExample} \begin{dispExample} \begin{mytheo*}{} This theorem has no number and no title. \end{mytheo*} \end{dispExample} \begin{marker} To switch off the \texttt{nameref} feature permanently, add \mbox{\texttt{nameref/.style=\{\}}} inside the \meta{options} list. \end{marker} \end{docCommands} \medskip \begin{docCommands}[ doc parameter = \oarg{init options}\marg{name}\marg{display name}\marg{options}\marg{prefix}, doc updated=2022-07-18 ] { { doc name = RenewTcbTheorem }, { doc name = renewtcbtheorem } } Operates like \refCom{NewTcbTheorem}, but based on |\RenewDocumentEnvironment| instead of |\NewDocumentEnvironment|. Existing environments are redefined. \end{docCommands} \begin{docCommands}[ doc parameter = \oarg{init options}\marg{name}\marg{display name}\marg{options}\marg{prefix}, doc new = 2022-07-18, doc name = ProvideTcbTheorem, ]{} Operates like \refCom{NewTcbTheorem}, but based on |\ProvideDocumentEnvironment| instead of |\NewDocumentEnvironment|. New environments are is only created if they are not already defined. \end{docCommands} \begin{docCommands}[ doc parameter = \oarg{init options}\marg{name}\marg{display name}\marg{options}\marg{prefix}, doc new = 2022-07-18, doc name = DeclareTcbTheorem, ]{} Operates like \refCom{NewTcbTheorem}, but based on |\DeclareDocumentEnvironment| instead of |\NewDocumentEnvironment|. New environments are always created and possibly redefine existing ones. \end{docCommands} \clearpage \begin{docCommand}{tcboxmath}{\oarg{options}\marg{mathematical box content}} Creates a \refEnv{tcolorbox} which is fitted to the width of the given \meta{mathematical box content}. This box is intended to be applied as part of a larger formula and may be used as replacement for the |\boxed| macro of |amsmath|. \begin{dispExample} \begin{equation} \tcbset{fonttitle=\scriptsize} \tcboxmath[colback=LightBlue!25!white,colframe=blue]{ a^2 = 16 } \quad \Rightarrow \quad \tcboxmath[colback=Salmon!25!white,colframe=red,title=Implication]% { a = 4 ~\vee~ a=-4. } \end{equation} \end{dispExample} \end{docCommand} \begin{docCommand}{tcbhighmath}{\oarg{options}\marg{mathematical box content}} This is a special case of the \refCom{tcboxmath} macro which uses the style \refKey{/tcb/highlight math}. It is intended to provide context sensitive highlighting of formula parts. The color settings via \refKey{/tcb/highlight math style} may be different inside theorems or other colored areas and outside. \begin{dispExample} \tcbset{myformula/.style={colback=yellow!10!white,colframe=red!50!black, every box/.style={highlight math style={colback=LightBlue!50!white,colframe=Navy}} }} \begin{align} \tcbhighmath{\sum\limits_{n=1}^{\infty} \frac{1}{n}} &= \infty.\\ \int x^2 ~\text{d}x &= \frac13 x^3 + c. \end{align} \begin{tcolorbox}[ams align,myformula] \tcbhighmath{\sum\limits_{n=1}^{\infty} \frac{1}{n}} &= \infty.\\ \int x^2 ~\text{d}x &= \frac13 x^3 + c. \end{tcolorbox} \end{dispExample} \clearpage \refCom{tcbhighmath} can be used in symbiosis with the \refPkg{empheq} package which allows to specify own boxing commands to mark multiline formulas. \begin{dispExample} % \usepackage{empheq} \begin{empheq}[box=\tcbhighmath]{align} a&=\sin(z)\\ E&=mc^2 + \int_a^b x\, dx \end{empheq} \tcbset{highlight math style={enhanced, colframe=red!60!black,colback=yellow!50!white,arc=4pt,boxrule=1pt, drop fuzzy shadow}} \begin{empheq}[box=\tcbhighmath]{align} a&=\sin(z)\\ E&=mc^2 + \int_a^b x\, dx \end{empheq} \end{dispExample} Besides \refCom{tcbhighmath}, one can easily define an independent new box based on \refCom{tcbox} which acts like \refCom{tcbhighmath}: \begin{dispExample} % \usepackage{empheq} \newtcbox{\otherbox}[1][]{nobeforeafter,math upper,tcbox raise base, enhanced,frame hidden,boxrule=0pt,interior style={top color=green!10!white, bottom color=green!10!white,middle color=green!50!yellow}, fuzzy halo=1pt with green,#1} \begin{empheq}[box=\otherbox]{align} a&=\sin(z)\\ E&=mc^2 + \int_a^b x\, dx \end{empheq} \begin{equation} \tcbhighmath{E} = \otherbox{mc^2} \end{equation} \end{dispExample} \end{docCommand} \clearpage \subsection{Option Keys of the Library} \begin{docTcbKey}{separator sign}{=\meta{sign}}{no default, initially |:|} The given \meta{sign} is used inside the title text of a theorem as separator between display name combined with number and the specific title text. It is omitted, if there is no specific title text. \begin{dispExample} % \usepackage{amssymb} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, separator sign={\ $\blacktriangleright$}}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{separator sign colon}{}{style, no value, initially set} Sets \refKey{/tcb/separator sign} to the default colon |:| sign. \end{docTcbKey} \begin{docTcbKey}{separator sign dash}{}{style, no value} Sets \refKey{/tcb/separator sign} to an en-dash sign. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, separator sign dash}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{separator sign none}{}{style, no value} Sets \refKey{/tcb/separator sign} to empty. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, separator sign none}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}{description delimiters}{=\marg{left}\marg{right}}{no default, initially empty} The given \meta{left} and \meta{right} delimiter signs are used to frame the descriptive title text of a theorem. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, description delimiters={\flqq}{\frqq}}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{description delimiters parenthesis}{}{style, no value} Sets \refKey{/tcb/description delimiters} to |(| and |)|. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, description delimiters parenthesis}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{description delimiters none}{}{style, no value, initially set} Sets \refKey{/tcb/description delimiters} to the default empty texts. \end{docTcbKey} \begin{docTcbKey}{description color}{\colOpt{=\meta{color}}}{default empty, initially empty} Sets the \meta{color} of the descriptive title text deviating from \refKey{/tcb/coltitle}. The color is reset to \refKey{/tcb/coltitle}, if |description color| is used without value. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, description color=red!25!yellow}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}{description font}{\colOpt{=\meta{text}}}{default empty, initially empty} Sets \meta{text} (e.\,g.\ font settings) before the descriptive title text deviating from \refKey{/tcb/fonttitle}. The \meta{text} is removed, if |description font| is used without value. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, description delimiters={\glqq}{\grqq}, description font=\mdseries\itshape}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{description formatter}{\colOpt{=\meta{macro}}}{default empty, initially empty} Sets \meta{macro} as formatter for the descriptive title text. The \meta{macro} has to take one mandatory argument (the description text).\\ Note that \refKey{/tcb/description delimiters}, \refKey{/tcb/description color}, and \refKey{/tcb/description font} are ignored, if this option is used.\\ If |description formatter| is used without value, the formatter is reset to its standard behavior. \begin{dispExample} \newtcbox{\formbox}{enhanced,frame empty,size=minimal,boxsep=2pt,arc=1pt, on line,interior style image=goldshade.png} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, description formatter=\formbox}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{terminator sign}{=\meta{sign}}{no default, initially empty} The given \meta{sign} is used as terminator at the end of the title text of a theorem. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, terminator sign={.}}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}{terminator sign colon}{}{style, no value, initially set} Sets \refKey{/tcb/terminator sign} to the colon |:| sign. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, separator sign dash,terminator sign colon}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{terminator sign dash}{}{style, no value} Sets \refKey{/tcb/terminator sign} to an en-dash sign. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, terminator sign dash}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{terminator sign none}{}{style, no value} Sets \refKey{/tcb/terminator sign} to the default empty text. \end{docTcbKey} \begin{docTcbKey}[][doc new=2016-04-19]{label separator}{=\meta{separator}}{no default, initially |:|} The given \meta{separator} is used for labels created with environments which are defined themselves by \refCom{newtcbtheorem}. This \meta{separator} is put between \meta{prefix} (defined by \refCom{newtcbtheorem}) and \meta{marker} (defined by an actual theorem environment). \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, label separator=*}{theo} \begin{sometheorem}{My example}{myex} My theorem text. \end{sometheorem} See Example~\ref{theo*myex}. \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}[][doc new=2018-01-12]{theorem full label supplement}{=\marg{style}}{no default, initially empty} The given \meta{style} is used in connection with labels created with environments which are defined themselves by \refCom{newtcbtheorem}. This \meta{style} uses one argument which is automatically set to the full label marker of the environment, i.e. a text consisting of \meta{prefix} (defined by \refCom{newtcbtheorem}), \refKey{/tcb/label separator}, and \meta{marker} (defined by an actual theorem environment). \begin{dispExample} % The following adds a hyper target to all environments % created with \newtcbtheorem \tcbset{theorem full label supplement={hypertarget={#1}}} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries}{theo} \begin{sometheorem}{My example}{myex2} My theorem text. \end{sometheorem} This automated \hyperlink{theo:myex2}{hyper target can be linked to with a hyper link}. \end{dispExample} A second usage of \refKey{/tcb/theorem full label supplement} overwrites the first setting. \end{docTcbKey} \begin{docTcbKey}[][doc new=2018-01-12]{theorem label supplement}{=\marg{style}}{no default, initially empty} The given \meta{style} is used in connection with labels created with environments which are defined themselves by \refCom{newtcbtheorem}. This \meta{style} uses one argument which is automatically set to the label \meta{marker} defined by an actual theorem environment.\par A second usage of \refKey{/tcb/theorem label supplement} overwrites the first setting, but \refKey{/tcb/theorem full label supplement} and \refKey{/tcb/theorem label supplement} can be used independently. \begin{dispExample} % `marginnote' has to be loaded \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, theorem label supplement={hypertarget={XYZ-##1}}, theorem full label supplement={code={\marginnote{##1}}} }{theo} \begin{sometheorem}{My example}{myex3} My theorem text. \end{sometheorem} This automated \hyperlink{XYZ-myex3}{hyper target can be linked to with a hyper link}. \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}[][doc new=2020-10-21]{theorem hanging indent}{\colOpt{=\docValue*{auto}\textbar \meta{length}}}{default \docValue*{auto}, initially \docValue*{auto}} Sets the hanging indent of the theorem title to \docValue{auto} or the given \meta{length}. For \docValue{auto}, the hanging indent matches the display name, number and separator sign of the theorem. If \meta{length} is negative, the theorem title is indented positively without hanging indent. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries}{theo} \begin{sometheorem}{This is a very long and complicated title for a quite short and nearly empty theorem}{myexA1} My theorem text. \end{sometheorem} \begin{sometheorem}[theorem hanging indent=5mm]{This is a very long and complicated title for a quite short and nearly empty theorem}{myexA2} My theorem text. \end{sometheorem} \begin{sometheorem}[theorem hanging indent=0pt]{This is a very long and complicated title for a quite short and nearly empty theorem}{myexA3} My theorem text. \end{sometheorem} \begin{sometheorem}[theorem hanging indent=-5mm]{This is a very long and complicated title for a quite short and nearly empty theorem}{myexA4} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}{theorem name and number}{}{style, no value, initially set} Prints theorem name followed by theorem number inside the title. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, theorem name and number}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{theorem number and name}{}{style, no value} Prints theorem number followed by theorem name inside the title. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {colback=white,colframe=red!50!black,fonttitle=\bfseries, theorem number and name}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{theorem name}{}{style, no value} Prints theorem name without number inside the title. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {enhanced,colback=white,colframe=red!50!black,fonttitle=\bfseries, theorem name,watermark text={\thetcbcounter}}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \enlargethispage*{20mm} \begin{docTcbKey}[][doc new=2021-12-03]{theorem number}{}{style, no value} Prints theorem number without name inside the title. \begin{dispExample} \newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}% {enhanced,colback=white,colframe=red!50!black,fonttitle=\bfseries, theorem number}{theo} \begin{sometheorem}{My example}{} My theorem text. \end{sometheorem} \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}{theorem}{=\marg{display name}\marg{counter}\marg{title}\marg{marker}}{no default} This key can be used directly in a |tcolorbox| for a more flexible approach to create a theorem type box. The \meta{display name} is used together with the increased \meta{counter} value and the \meta{title} for the title line of the box. Additionally, a |\label| with the given \meta{marker} is created. \begin{dispExample} % \newcounter{texercise}% preamble \begin{tcolorbox}[colback=green!10,colframe=green!50!black,arc=4mm, theorem={Test}{texercise}{Direct usage}{myMarker}] Here, we see the test \ref{myMarker}. \end{tcolorbox} \end{dispExample} For a common appearance inside the document, the key |theorem| should not be used directly as in the example above, but as part of a new environment created by hand or using \refCom{newtcbtheorem}. \end{docTcbKey} \clearpage \begin{docTcbKey}{highlight math}{}{style, no value} A style which is used for \refCom{tcbhighmath} and which is predefined as |notitle,nophantom,colframe=red,colback=yellow!25!white|.\par It can be changed with the usual |pgf| techniques or with \refKey{/tcb/highlight math style}. \begin{dispExample} \begin{align*} \tcbhighmath{1} + 1 &= 2,\\ \tcbset{highlight math/.append style={left=0mm,right=0mm,top=0mm,bottom=0mm}} \tcbhighmath{1} + 1 &= 2. \end{align*} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}{highlight math style}{=\meta{style definition}}{style, no default} Changes the definition for \refKey{/tcb/highlight math} to |notitle,nophantom| plus the given \meta{style definition}. See \refCom{tcbhighmath} for another example. \begin{dispExample} % \tcbuselibrary{skins} \tcbset{highlight math style={enhanced,%<-- needed for the `remember' options colframe=red,colback=red!10!white,boxsep=0pt}} \begin{align*} \tcbhighmath[remember as=fx]{f(x)} &= \int\limits_{1}^{x} \frac{1}{t^2}~dt = \left[ -\frac{1}{t} \right]_{1}^{x}\\ &= -\frac{1}{x} + \frac{1}{1}\\ &= \tcbhighmath[remember,overlay={% \draw[blue,very thick,->] (fx.south) to[bend right] ([yshift=2mm]frame.west);}] {1-\frac{1}{x}.} \end{align*} \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKey}{math upper}{}{style, no value} Sets the upper part to mathematical mode with font |\displaystyle|. \end{docTcbKey} \begin{docTcbKey}{math lower}{}{style, no value} Sets the lower part to mathematical mode with font |\displaystyle|. \end{docTcbKey} \begin{docTcbKey}{math}{}{style, no value} Sets the upper part \emph{and} lower part to mathematical mode with font |\displaystyle|. \begin{dispExample} \begin{tcolorbox}[math,colback=yellow!10!white,colframe=red!50!black] \sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty. \end{tcolorbox} \end{dispExample} \end{docTcbKey} \begin{marker} The following styles are only tested to work with the original |amsmath| environments. If e.g. the |equation| environment is redefined as |gather|, then \refKey{/tcb/ams equation} should / could not be used. Obviously, you are encouraged to use \refKey{/tcb/ams gather} in this case. \end{marker} \begin{docTcbKey}[][doc updated=2014-10-30]{ams equation upper}{}{style, no value} Adds an |amsmath| |equation| environment to the start and end of the upper part. \end{docTcbKey} \begin{docTcbKey}[][doc updated=2014-10-30]{ams equation lower}{}{style, no value} Adds an |amsmath| |equation| environment to the start and end of the lower part. \end{docTcbKey} \begin{docTcbKey}[][doc updated=2014-10-30]{ams equation}{}{style, no value} Adds an |amsmath| |equation| environment to the start and end of the upper \emph{and} lower part. \begin{dispExample} \begin{tcolorbox}[ams equation,colback=yellow!10!white,colframe=red!50!black] \sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty. \end{tcolorbox} \end{dispExample} \end{docTcbKey} \begin{docTcbKey}[][doc updated=2014-10-30]{ams equation* upper}{}{style, no value} Adds an |amsmath| |equation*| environment to the start and end of the upper part. \end{docTcbKey} \begin{docTcbKey}[][doc updated=2014-10-30]{ams equation* lower}{}{style, no value} Adds an |amsmath| |equation*| environment to the start and end of the lower part. \end{docTcbKey} \enlargethispage*{2cm} \begin{docTcbKey}[][doc updated=2014-10-30]{ams equation*}{}{style, no value} Adds an |amsmath| |equation*| environment to the start and end of the upper \emph{and} lower part. \begin{dispExample} \begin{tcolorbox}[ams equation*,colback=yellow!10!white,colframe=red!50!black] \sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty. \end{tcolorbox} \end{dispExample} \end{docTcbKey} \clearpage \begin{docTcbKeys}[ doc parameter = , doc description = {style, no value}, ] { { doc name = ams align upper, }, { doc name = ams align, doc updated = 2024-06-27, } } Adds an |amsmath| |align| environment to the start and end of the upper part. \begin{dispExample} \begin{tcolorbox}[ams align,colback=yellow!10!white,colframe=red!50!black] \sum\limits_{n=1}^{\infty} \frac{1}{n} &= \infty.\\ \int x^2 ~\text{d}x &= \frac13 x^3 + c. \end{tcolorbox} \end{dispExample} \begin{marker} Boxes with \refKey{/tcb/ams align upper} or \refKey{/tcb/ams align} cannot have a lower part! For a lower part, use \refKey{/tcb/ams nodisplayskip upper} instead. \end{marker} \end{docTcbKeys} \begin{docTcbKey}{ams align lower}{}{style, no value} Adds an |amsmath| |align| environment to the start and end of the lower part. \end{docTcbKey} \begin{docTcbKeys}[ doc parameter = , doc description = {style, no value}, ] { { doc name = ams align* upper, }, { doc name = ams align*, doc updated = 2024-06-27, } } Adds an |amsmath| |align*| environment to the start and end of the upper part. \begin{dispExample} \begin{tcolorbox}[ams align*,colback=yellow!10!white,colframe=red!50!black] \sum\limits_{n=1}^{\infty} \frac{1}{n} &= \infty.\\ \int x^2 ~\text{d}x &= \frac13 x^3 + c. \end{tcolorbox} \end{dispExample} \begin{marker} Boxes with \refKey{/tcb/ams align* upper} or \refKey{/tcb/ams align*} cannot have a lower part! For a lower part, use \refKey{/tcb/ams nodisplayskip upper} instead. \end{marker} \end{docTcbKeys} \begin{docTcbKey}{ams align* lower}{}{style, no value} Adds an |amsmath| |align*| environment to the start and end of the lower part. \end{docTcbKey} \clearpage \begin{docTcbKeys}[ doc parameter = , doc description = {style, no value}, ] { { doc name = ams gather upper, }, { doc name = ams gather, doc updated = 2024-06-27, } } Adds an |amsmath| |gather| environment to the start and end of the upper part. \begin{dispExample} \begin{tcolorbox}[ams gather,colback=yellow!10!white,colframe=red!50!black] \sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty.\\ \int x^2 ~\text{d}x = \frac13 x^3 + c. \end{tcolorbox} \end{dispExample} \begin{marker} Boxes with \refKey{/tcb/ams gather upper} or \refKey{/tcb/ams gather} cannot have a lower part! For a lower part, use \refKey{/tcb/ams nodisplayskip upper} instead. \end{marker} \end{docTcbKeys} \begin{docTcbKey}{ams gather lower}{}{style, no value} Adds an |amsmath| |gather| environment to the start and end of the lower part. \end{docTcbKey} \begin{docTcbKeys}[ doc parameter = , doc description = {style, no value}, ] { { doc name = ams gather* upper, }, { doc name = ams gather*, doc updated = 2024-06-27, } } Adds an |amsmath| |gather*| environment to the start and end of the upper part. \begin{dispExample} \begin{tcolorbox}[ams gather*,colback=yellow!10!white,colframe=red!50!black] \sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty.\\ \int x^2 ~\text{d}x = \frac13 x^3 + c. \end{tcolorbox} \end{dispExample} \begin{marker} Boxes with \refKey{/tcb/ams gather* upper} or \refKey{/tcb/ams gather*} cannot have a lower part! For a lower part, use \refKey{/tcb/ams nodisplayskip upper} instead. \end{marker} \end{docTcbKeys} \begin{docTcbKey}{ams gather* lower}{}{style, no value} Adds an |amsmath| |gather*| environment to the start and end of the lower part. \end{docTcbKey} \clearpage \begin{docTcbKey}{ams nodisplayskip upper}{}{style, no value} Neutralizes the |\abovedisplayskip| of a following |align| or |gather| environment for the upper part. Note that the text content has to start with such a formula. \end{docTcbKey} \begin{docTcbKey}{ams nodisplayskip lower}{}{style, no value} Neutralizes the |\abovedisplayskip| of a following |align| or |gather| environment for the lower part. Note that the text content has to start with such a formula. \end{docTcbKey} \begin{docTcbKey}{ams nodisplayskip}{}{style, no value} Neutralizes the |\abovedisplayskip| of a following |align| or |gather| environment for the upper part \emph{and} lower part. Note that the text content has to start with such a formula. \begin{dispExample} \begin{tcolorbox}[ams nodisplayskip,colback=yellow!10!white,colframe=red!50!black] \begin{gather} \sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty.\\ \int x^2 ~\text{d}x = \frac13 x^3 + c. \end{gather} And now for something completely different. \end{tcolorbox} \end{dispExample} \end{docTcbKey} \bigskip New colored mathematical environments are easily created using \refCom{newtcolorbox}: \begin{dispExample} \newtcolorbox{mymath}{ams gather*,colback=yellow!10!white,colframe=red!50!black} \begin{mymath} \sum\limits_{n=1}^{\infty} \frac{1}{n} = \infty.\\ \int x^2 ~\text{d}x = \frac13 x^3 + c. \end{mymath} \end{dispExample} \bigskip \begin{marker} All described options like \refKey{/tcb/ams gather upper}, \refKey{/tcb/ams gather lower}, \refKey{/tcb/ams gather} are (partially) setting (overwriting) the keys \refKey{/tcb/before upper}, \refKey{/tcb/after upper}, \refKey{/tcb/before lower}, \refKey{/tcb/after lower}.\par Therefore, e.\,g.\ |\tcbset{ams gather,before upper={\text{Pythagoras:}}}| produces an invalid result. For this case, you are invited to use\\ |\tcbset{ams gather,before upper app={\text{Pythagoras:}}}|,\\ see \refKey{/tcb/before upper app}. \end{marker} \clearpage \begin{docTcbKey}{theorem style}{=\meta{name}}{no default, initially |standard|} Applies a predefined style \meta{name} to the theorem environment. Some of the feasible \meta{name} values resemble style names from the packages \refPkg{theorem} and \refPkg{ntheorem} to give convenient access to known patterns. \begin{marker} The styles alter \refKey{/tcb/separator sign}, \refKey{/tcb/description delimiters}, \refKey{/tcb/terminator sign}, and more. Therefore, one should apply such keys \emph{after} a theorem style. \end{marker} For the following examples, we use: \inputpreamblelisting{J} The predefined styles are: \begin{itemize} % \item\docValue{standard}: This is the initial value. \begin{dispExample} \begin{theorem}[theorem style=standard]{standard}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{change standard} \begin{dispExample} \begin{theorem}[theorem style=change standard]{change standard}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{plain} \begin{dispExample} \begin{theorem}[theorem style=plain]{plain}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \clearpage \item\docValue{break} \begin{dispExample} \begin{theorem}[theorem style=break]{break}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{plain apart} \begin{dispExample} \begin{theorem}[theorem style=plain apart]{plain apart}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{change} \begin{dispExample} \begin{theorem}[theorem style=change]{change}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{change break} \begin{dispExample} \begin{theorem}[theorem style=change break]{change break}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{change apart} \begin{dispExample} \begin{theorem}[theorem style=change apart]{change apart}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \clearpage \item\docValue{margin} \begin{dispExample} \begin{theorem}[theorem style=margin,left=10mm]{margin}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \begin{theorem}[theorem style=margin,left=10mm,oversize]{margin}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{margin break} \begin{dispExample} \begin{theorem}[theorem style=margin break,left=10mm]{margin break}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \begin{theorem}[theorem style=margin break,left=10mm,oversize]{margin break}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \item\docValue{margin apart} \begin{dispExample} \begin{theorem}[theorem style=margin apart,left=10mm]{margin apart}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \begin{theorem}[theorem style=margin apart,left=10mm,oversize]{margin apart}{} This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*} \end{theorem} \end{dispExample} % \end{itemize} \end{docTcbKey} % \clearpage \subsection{Examples for Definitions and Theorems} In the following, the application of \refCom{newtcbtheorem} to highlight mathematical definitions, theorems, or the like is demonstrated. At first, additional |tcb| keys are created for the appearance of the colored boxes. It is assumed that theorems and corollaries should be identically colored. All following environments are numbered with a common counter, but this can be changed easily. Here, the counter output is supplemented by the subsection number. Further, the \refPkg{cleveref} package \cite{cubitt:2018a} is used for clever references. \inputpreamblelisting{G} By \refCom{newtcbtheorem}, commonly numbered theorem environments are created now. |defstyle| and |theostyle| are used for the appearance. Now, everything is prepared for the following examples. \begin{dispExample} The following theorem is numbered as \Cref{theo:diffbarstetig} and referenced with the marker \texttt{theo:diffbarstetig}. \begin{Theorem}{Differenzierbarkeit bedingt Stetigkeit, wobei diese Benennung zu Testzwecken ungew\"{o}hnlich lang ist}{diffbarstetig}% Eine Funktion $f:I\to\mathbb{R}$ ist in $x_0\in I$ stetig, wenn $f$ in $x_0$ differenzierbar ist. \end{Theorem} \end{dispExample} \begin{dispExample} The following definition is numbered as \Cref{def:diffbarkeit} and referenced with the marker \texttt{def:diffbarkeit}.\bigskip \begin{Definition}{Differenzierbarkeit}{diffbarkeit} 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{equation*} \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{equation*} existiert. Bei Existenz hei\ss{}t dieser Grenzwert Ableitung oder Differentialquotient von $f$ in $x_0$ und man schreibt f\"{u}r ihn \begin{equation*} f'(x_0)\quad\text{oder}\quad\frac{df}{dx}(x_0). \end{equation*} \end{Definition} \end{dispExample} \begin{dispExample} The following corollary is numbered as \Cref{cor:nullstellen} and referenced with the marker \texttt{cor:nullstellen}.\bigskip \begin{Corollary}{Nullstellenexistenz}{nullstellen} Ist $f:[a,b]\to\mathbb{R}$ stetig und haben $f(a)$ und $f(b)$ entgegengesetzte Vorzeichen, also $f(a)f(b)<0$, so besitzt $f$ eine Nullstelle $x_0\in]a,b[$, also $f(x_0)=0$. \end{Corollary} \end{dispExample} \begin{dispExample} \begin{Theorem}[boxrule=2mm,toptitle=-1.5mm,bottomtitle=-1.5mm]{% Hinreichende Bedingung f\"{u}r Wendepunkte}{wendehinreichend}% $f$ sei eine auf einem Intervall $]a,b[$ dreimal stetig differenzierbare Funktion. Ist $f''(x_0)=0$ in $x_0\in]a,b[$ und $f'''(x_0)\ne 0$, so ist $(x_0,f(x_0))$ ein Wendepunkt von $f$. \end{Theorem} \end{dispExample} \begin{dispExample} % \usepackage{varioref} % \usepackage{cleveref} % \tcbuselibrary{skins} \newtcbtheorem[use counter from=Definition]{YetAnotherTheorem}{Theorem}% {theorem style=plain apart,label type=theorem,enhanced,frame hidden, boxrule=2mm,titlerule=0mm,toptitle=1mm,bottomtitle=1mm, fonttitle=\bfseries\large,fontupper=\normalsize, coltitle=green!35!black,colbacktitle=green!15!white, colback=green!50!yellow!15!white,borderline={1pt}{0pt}{green!25!blue}, }{theo} \begin{YetAnotherTheorem}{Mittelwertsatz f\"{u}r $n$ Variable}{meanvaluetheorem}% 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{equation*} f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0) \end{equation*} \end{YetAnotherTheorem} \medskip Here, |cleveref| support is used to reference \Cref{theo:meanvaluetheorem} on \Cpageref{theo:meanvaluetheorem}. This \namecref{theo:meanvaluetheorem} can also be referenced by |\Vref| resulting in \Vref{theo:meanvaluetheorem}. \end{dispExample} \begin{marker} Note that \refKey{/tcb/label type} was used in the example above to feed |cleveref| \cite{cubitt:2018a} with the needed name information. \end{marker} \clearpage \begin{dispExample} Here, using |\Vref| resulting in \Vref{theo:meanvaluetheorem} is more interesting\ldots \end{dispExample} \begin{dispExample} % \tcbuselibrary{skins} \newtcbtheorem[use counter from=Definition]{YetAnotherTheorem}{Theorem}% {theorem style=change apart,enhanced,arc=0mm,outer arc=0mm, boxrule=0mm,toprule=1mm,bottomrule=1mm,left=1mm,right=1mm, titlerule=0mm,toptitle=0mm,bottomtitle=1mm,top=0mm, colframe=red!50!black,colback=red!5!white,coltitle=red!50!black, title style={top color=yellow!50!white,bottom color=red!5!white, middle color=yellow!50!white}, fonttitle=\bfseries\sffamily\normalsize,fontupper=\normalsize\itshape, }{theo} \begin{YetAnotherTheorem}{Mittelwertsatz f\"{u}r $n$ Variable}{mittelwertsatz_n2}% 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{equation*} f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0) \end{equation*} \end{YetAnotherTheorem} \end{dispExample} \begin{dispExample} % \usepackage{varwidth} \tcbuselibrary{skins} \newtcbtheorem[use counter from=Definition]{YetAnotherTheorem}{Theorem}% {enhanced,frame empty,interior empty,colframe=ForestGreen!50!white, coltitle=ForestGreen!50!black,fonttitle=\bfseries,colbacktitle=ForestGreen!15!white, borderline={0.5mm}{0mm}{ForestGreen!15!white}, borderline={0.5mm}{0mm}{ForestGreen!50!white,dashed}, attach boxed title to top center={yshift=-2mm}, boxed title style={boxrule=0.4pt},varwidth boxed title}{theo} \begin{YetAnotherTheorem}{Mittelwertsatz f\"{u}r $n$ Variable}{mittelwertsatz_n3}% 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{equation*} f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0) \end{equation*} \end{YetAnotherTheorem} \end{dispExample} \clearpage You need more attention for your theorems? Here, you are \ldots \begin{dispExample} % tcbuselibrary{skins} % preamble \begin{Theorem}[enhanced, fuzzy halo=3mm with yellow, fuzzy halo=2mm with red, fuzzy halo=1mm with yellow, watermark color=red!35!white, watermark text={Overacting\\Fundamental Theorem}]% {Fundamental Theorem of Theorems}{fundamental}% \lipsum[1-2] \end{Theorem} \end{dispExample} Let's try a more conservative approach: \begin{dispExample} % \tcbuselibrary{skins} \newtcbtheorem[use counter from=Definition]{YetAnotherTheorem}{Theorem}% {theorem style=plain,enhanced,colframe=blue!50!black,colback=yellow!20!white, coltitle=red!50!black,fonttitle=\upshape\bfseries,fontupper=\itshape, drop fuzzy shadow=blue!50!black!50!white,boxrule=0.4pt}{theo} \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{equation*} f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0) \end{equation*} \end{YetAnotherTheorem} \end{dispExample} \clearpage \subsection{Using other theorem environments with \texttt{tcolorbox}}\label{subsec:theorems_other} Instead of creating theorem environments with the methods described before, environments from other packages can be boxed with a |tcolorbox|. Environments may be created e.g. by methods from the \refPkg{theorem} package or the \refPkg{amsthm} package. \refCom{tcolorboxenvironment} can be used to put a box around these environments. \inputpreamblelisting{K} \begin{dispExample} \begin{lem} \lipsum[2] \end{lem} \lipsum[3] \begin{proof} \lipsum*[4] \end{proof} \end{dispExample}