创建不带编号的 newshadetheorem

创建不带编号的 newshadetheorem

我正在使用shadethm.sty-package,我想抑制某个定理的编号,但命令\newshadetheorem*未定义。有什么建议吗?

答案1

tcolorbox这是包含包和theorems属于它的库的解决方案。要给出未编号的定理,只需指定theorem name为选项即可。

精确的形式、颜色、填充、阴影、阴影可以稍后指定,但由于没有给出进一步的条件,我限制为最简单的形式。

\documentclass[paper=a4,12pt]{scrbook}

\usepackage{blindtext}%
\usepackage[theorems,breakable]{tcolorbox}%


\begin{document}

\chapter{First}
 \section{First}

\newtcbtheorem{lem}{Lemma}{%
        theorem name,%
        colback=green!5,%
        colframe=green!35!black,%
        fonttitle=\bfseries,title after break={Lemma  -- \raggedleft Continued}%
    }{lem}


\begin{lem}{On Brontosaurs}{}
\textbf{By Ann Elk (Misses)}

Brontosaurs are thin at one end, thick in the middle and thin again on the other end. 
\end{lem}

\end{document}

在此处输入图片描述

答案2

尝试mdframed包装。它可以创造美丽的阴影区域正如你所看到的文档,其命令 \newmdenv[<options>]{env-name}

这个包的优点是,如果需要的话,环境的内容可以跨页面。

也可以定义自己的风格对于命令的选项\mdfdefinestyle{<style name>}{<options>}。对于这个特殊情况,我定义了myshadedthm定理的样式(以及我想要使用的其他结构),并用 来调用它style=<style name>

\mdfdefinestyle{myshadedthm}{backgroundcolor=gray!20,linewidth=0pt,innerleftmargin=1ex}

正如代码中所解释的,如果您使用该amsthm包,这会在定理顶部添加一个额外的空间,这可以修复附加到样式的选项innertopmargin=-0.5ex。(如果您使用ntheorem此修复程序,则不能这样做)。

定义定理mdframed

mdframed依赖于命令 \newmdtheoremenv语法相同,\newtheorem只是它有第一个选修的[<options>]的论据mdframed

比较

\newmdtheoremenv[<mdframed-options>]{<envname>}[<numberedlike>]{<caption>}[<within>]
\newtheorem{<envname>}[<numberedlike>]{<caption>}[<within>]

不幸的是,没有\newmdtheoremenv与使用相同的带星号的版本,但我们可以重新定义\newtheorem*{<envname>}{<caption>}命令\newmdtheoremenv实现这个目标:

重新定义\newmdtheoremenv接受星标版本

\DeclareDocumentCommand\newmdtheoremenv{s O{} m o m o }{%
\IfBooleanTF{#1}{%
   \newtheorem*{#3}{#5}%
 }{%
 \ifboolexpr{ test {\IfNoValueTF {#4}} and test {\IfNoValueTF {#6}} }%
    {\newtheorem{#3}{#5}}{%
     \IfValueTF{#4}{\newtheorem{#3}[#4]{#5}}{}%
     \IfValueTF{#6}{\newtheorem{#3}{#5}[#6]}{}%
    }
  }%
  \BeforeBeginEnvironment{#3}{%
     \begin{mdframed}[#2]}%
  \AfterEndEnvironment{#3}{%
     \end{mdframed}}%
}

以下是我们可以做什么的示例:

完整代码

\documentclass{article}
\usepackage{amsthm}
%\usepackage{ntheorem}
\usepackage{mdframed}
\usepackage{xcolor} % For using `gray!20` for example
%--------------------------------
% Redefinition of `\newmdtheoremenv` for accepting a starred version
\DeclareDocumentCommand\newmdtheoremenv{s O{} m o m o }{%
\IfBooleanTF{#1}{%
   \newtheorem*{#3}{#5}%
 }{%
 \ifboolexpr{ test {\IfNoValueTF {#4}} and test {\IfNoValueTF {#6}} }%
    {\newtheorem{#3}{#5}}{%
     \IfValueTF{#4}{\newtheorem{#3}[#4]{#5}}{}%
     \IfValueTF{#6}{\newtheorem{#3}{#5}[#6]}{}%
    }
  }%
  \BeforeBeginEnvironment{#3}{%
     \begin{mdframed}[#2]}%
  \AfterEndEnvironment{#3}{%
     \end{mdframed}}%
}
%--------------------------------
\newtheorem{theorem}{Theorem}[section]

\mdfdefinestyle{myshadedthm}{backgroundcolor=gray!20,linewidth=0pt,innerleftmargin=1ex,%
%--------------------------------
% If you use `amsthm` can adjust `innertopmargin` to avoid extra space in top.
innertopmargin=-0.5ex% % Comment or remove this line if you use `ntheorem`.
%--------------------------------
}
\newmdtheoremenv[style=myshadedthm]{stheorem}[theorem]{Theorem}
\newmdtheoremenv*[style=myshadedthm]{lemma}{Lemma}
\begin{document}
\section{First}
Text
\begin{theorem}
Let $f$ \dots (a normal theorem)
\end{theorem}
Text
\begin{stheorem}
If $a$, $b$ and $c$ \dots (a shaded theorem)
\end{stheorem}
More text
\begin{lemma}
Like $a^2=a$ we have \dots (shaded) and no numbered
\end{lemma}
\end{document}

结果

在此处输入图片描述

答案3

ntheorem以下是使用和包可以完成的操作的演示framed。框架或阴影定理可以跨页面拆分:

\documentclass[12pt,a4paper, x11names]{book}%]

\usepackage[utf8]{inputenc}%
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{heuristica}
\usepackage{cabin}
\usepackage{pstricks} %
\usepackage{xcolor}

\usepackage{lipsum}
\usepackage{framed} %
\usepackage{amsmath}
\usepackage[thmmarks, amsmath, framed]{ntheorem}%

    \theoreminframepostskip{1ex}
    \shadecolor{Thistle3!30!}
    \theoremstyle{nonumberplain}
    \theoremheaderfont{\color{Tomato4}\sffamily\bfseries}
    \theoremseparator{.}
    \theorembodyfont{\itshape}
    \newshadedtheorem{thm}{Theorem}%\danger

\begin{document}

\vspace*{0.6\textheight}
\lipsum[2]

\begin{thm}[unnumbered]
\lipsum[1]\vskip-3\baselineskip
\end{thm}

\end{document} 

在此处输入图片描述

相关内容