
Я хотел бы записать несколько теорем следующим образом:
\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Возможно, это то, что я ищу:
\newenvironment{name}[num]{before}{after}
но я не смог понять, как пометить внутренние среды как обязательные.
Пакет amsthm, похоже, имеет среды для доказательства (источник), но я не вижу возможности вложить разные среды и заставить их выглядеть так, как я хочу.
nтеоремаКажется, предлагает много возможностей. Я создал 4 новых среды теорем:
\newtheorem{theorem}{Theorem}
\newtheorem{preconditions}{Preconditions}
\newtheorem{proof}{Proof}
\newtheorem{claim}{Claim}
Я использовал код latex, указанный выше, и получил следующее:
Это не имеет никакого отношения к внутренним средам, внутренние среды пронумерованы, хотя они не должны быть пронумерованы и нетнадгробиенаходится в конце
решение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}