latex-packages/doc/environments/refproof/refproof.tex

165 lines
5 KiB
TeX

\documentclass[full]{l3doc}
\title{The \pkg{refproof} package}
\author{Maximilian Keßler}
\begin{document}
\maketitle
\begin{abstract}
This package aims to at consistently numbering claims within proofs.
For this purpose, take a valid \meta{label} when starting a proof,
associating it with a theorem/lemma etc.~and enabling us to subnumber
claims within this proof.
We also provide some customizations for proofs.
\end{abstract}
\tableofcontents
\begin{documentation}
\section{Proofs}
\subsection{Old proofs}
\begin{environment}{oldproof}
Behaves like \env{proof} from \pkg{amsmath}.
\end{environment}
\begin{environment}{oldsubproof}
Behaves like \env{subproof} from \pkg{mkessler-subproof}.
That is, behaves like the \pkg{amsmath} proof environment except that
the shown keyword is \enquote{subproof} and we end the proof
with a black instead of a white square.
\end{environment}
It is not recommended to use \env{oldproof} or \env{oldsubproof},
since these have no support for the \texttt{claim} management this
package provides.
They only exist for legacy reasons.
\subsection{Basic proofs}
Both of these have \texttt{claim} support,
which is explained later in \autoref{sec:claim-support}.
\begin{environment}{proof}
\begin{syntax}
\cs{begin}\{proof\}*\oarg{description}
\end{syntax}
The old \env{proof} environment has been modified slightly.
We still accept a \meta{description}, but this will be given
in parantheses after the usual \enquote{proof} keyword.
Additionally, we accept an optional \enquote{star}, that will be visually
displayed behind the \enquote{proof} keyword.
When nested, that is, when inside a \env{proof} or \env{subproof} environment,
the name will automatically change to \enquote{subproof}.
Nesting works to an arbitrary depth.
\end{environment}
\begin{environment}{subproof}
\begin{syntax}
\cs{begin}\{subproof\}*\oarg{description}
\end{syntax}
Works like the \env{proof} environment, but will always be named
\enquote{subproof} and finish with a black square.
You will probably rarely need this.
\end{environment}
\subsection{Refproofs}
\begin{environment}{refproof}
\begin{syntax}
\cs{begin}\{refproof\}*\marg{label}\oarg{description}
\end{syntax}
For the optional \enquote{*} or the \meta{description}
see the \env{proof} environment.
The \meta{label} has to be a valid \LaTeX-known label that \cs{ref} would
accept.
This \env{refproof} is then associated with the corresponding
theorem that \meta{label} refers to.
It will state \enquote{Proof of \meta{reference}} at the beginning of
the environment to indicate that this proof is associated with some
specific environment.
When the \pkg{hyperref} package is loaded, this is automatically
detected and an \cs{autoref} command is used to also indicate
the environment name in the reference.
When \env{refproof} has been called with the same label before,
the name will be adjusted to
\enquote{Continuation of proof of \meta{reference}}
automatically.
Claim support is explained in \autoref{sec:claim-support}.
\end{environment}
\section{Claim support}
\label{sec:claim-support}
\begin{environment}{claim}
\begin{environment}{claim*}
\begin{syntax}
\cs{begin}\{claim*\}
\end{syntax}
The star in the environment name makes the claim not to be numbered.
\end{environment}
\end{environment}
The \env{proof}, \env{subproof} and \env{refproof} environment alter the
behavior of the claim numbering as follows:
\begin{itemize}
\item The \env{proof} and \env{subproof} environment will reset the
\texttt{claim} counter at their beginning.
Claims will appear as \enquote{Claim 1}, \enquote{Claim 2},\ldots
At the end of the environment, the previous counter is restored.
\item The \env{refproof} environment will number claims within the
proof and \emph{all of its continuations}.
Additionally, claims will be numbered as
\enquote{\meta{reference}.C1}, \enquote{\meta{reference}.C2}
where \meta{reference} is the numbering style of the \meta{label}
that this proof is associated to.
At the end of the environment, the previous counter is restored.
\end{itemize}
\section{Language support}
This package makes use of the \pkg{translator} package to provide
\pkg{babel}-sensitive translations dynamically throughout the document.
You need the
\texttt{%
translator\allowbreak-proof\allowbreak-dictionary%
\allowbreak-\meta{language}.dict
}
dictionary somewhere where \LaTeX can find it.
It should have shipped with this documentation and the package source.
Currently, only German and English are supported.
\end{documentation}
\section{\pkg{groupthm} integration}
This has not been implemented yet, but future features include:
\begin{itemize}
\item Integrate the claim environment into the \texttt{star} and \texttt{starred}
groups of \pkg{groupthm}.
\item Integrate the optional stars of the \env{proof} etc into \pkg{groupthm},
i.e.~let them behave like \texttt{star} environments to toggle
these in a unified way.
\end{itemize}
\PrintIndex
\end{document}