![如何创建定制环境?](https://linux22.com/image/254138/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E5%AE%9A%E5%88%B6%E7%8E%AF%E5%A2%83%EF%BC%9F.png)
我想写下一些这样的定理:
\begin{theorem}
\begin{preconditions}
$A := \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}$\\
$B := \begin{pmatrix} 2 & 2 \\ 3 & 4 \end{pmatrix}$\\
$n \in \mathbb{N}$
\end{preconditions}
\begin{claim}
$\sqrt{2} \notin \mathbb{Q}$
\end{claim}
\begin{proof}{directly}
[... the proof ...]
\end{proof}
\end{theorem}
它看起来应该是这样的:
**Theorem 123**
**Preconditions**:
$A := \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}$\\
$B := \begin{pmatrix} 2 & 2 \\ 3 & 4 \end{pmatrix}$\\
$n \in \mathbb{N}$
**Claim**: √2 ∉ Q
**Proof**: directly
[... the proof ...]
[.. the end] ■
(Theorem 123
、Preconditions
、Claim
和Proof
应为粗体)
环境背后的逻辑:
- 定理应该自动得到一个数字,从一开始,每条定理加一
- 在定理环境中,只允许使用
preconditions
、claim
和环境proof
- 在定理环境内部,
claim
和proof
环境要求恰好出现一次。 - 证明内容与前置条件的内容应当具有同一意旨。
我目前发现的情况:
我想\新环境可能是我正在寻找的:
\newenvironment{name}[num]{before}{after}
但我不知道如何根据需要标记内部环境。
amsthm 包似乎有证明环境(来源),但我看不出是否有可能嵌套不同的环境并使它们看起来像我希望的那样
定理似乎提供了很多可能性。我创建了 4 个新的定理环境:
\newtheorem{theorem}{Theorem}
\newtheorem{preconditions}{Preconditions}
\newtheorem{proof}{Proof}
\newtheorem{claim}{Claim}
我使用了上面的乳胶代码并得到了这个:
这个没有内部环境的意图,内部环境被编号,尽管它们不应该被编号,也没有墓碑在最后
答案1
我用的是thmtools
包作为的前端,以便定义amsthm
新Proof
环境;另外两个环境是使用创建的\newenvironment
。Proof
和环境使用来自claim
precondition
adjustwidth
changepage
包来增加左边距。当然,您可以根据需要随意进行必要的调整:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{changepage}
\usepackage[nopar]{lipsum}% just to generate some text
\newlength\Thmindent
\setlength\Thmindent{20pt}
\newenvironment{precondition}
{\par\medskip\adjustwidth{\Thmindent}{}\normalfont\textbf{Preconditions:}\par\nobreak}
{\endadjustwidth}
\newenvironment{claim}
{\par\medskip\adjustwidth{\Thmindent}{}\normalfont\textbf{Claim:}}
{\endadjustwidth}
\declaretheoremstyle[
spaceabove=0pt,spacebelow=0pt,
preheadhook=\adjustwidth{\Thmindent}{},
prefoothook=\endadjustwidth,
headpunct=:,
numbered=no,
qed=\qedsymbol
]{proof}
\declaretheorem[style=proof]{Proof}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}
\lipsum[2]
\begin{precondition}
\begin{itemize}
\item $A := \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}$
\item $B := \begin{pmatrix} 2 & 2 \\ 3 & 4 \end{pmatrix}$
\item $n \in \mathbb{N}$
\end{itemize}
\end{precondition}
\begin{claim}
$\sqrt{2}\notin\mathbb{Q}$
\end{claim}
\begin{Proof}
\lipsum[2]
\end{Proof}
\end{theorem}
\end{document}