summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/apxproof
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-10-15 20:24:18 +0000
committerKarl Berry <karl@freefriends.org>2022-10-15 20:24:18 +0000
commit3f6f2deec08918d9165fe4c72bcf4b8380c299c6 (patch)
tree8a9fb8c66769784d70ce66847c8a7cbd58e01256 /Master/texmf-dist/source/latex/apxproof
parent509398cb59d3930b2f3c77ad69d9203aebf45d5f (diff)
apxproof (14oct22)
git-svn-id: svn://tug.org/texlive/trunk@64715 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/apxproof')
-rw-r--r--Master/texmf-dist/source/latex/apxproof/apxproof.dtx363
1 files changed, 215 insertions, 148 deletions
diff --git a/Master/texmf-dist/source/latex/apxproof/apxproof.dtx b/Master/texmf-dist/source/latex/apxproof/apxproof.dtx
index 0225d20e776..35a8b6f95a8 100644
--- a/Master/texmf-dist/source/latex/apxproof/apxproof.dtx
+++ b/Master/texmf-dist/source/latex/apxproof/apxproof.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2016-2021 by Pierre Senellart
+% Copyright (C) 2016-2022 by Pierre Senellart
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -11,7 +11,7 @@
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is Pierre Senellart
% <pierre@senellart.com> and a version control system for this work
% is available at http://github.com/PierreSenellart/apxproof
@@ -20,11 +20,11 @@
% and the derived file apxproof.sty.
%
% \fi
-%
+%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<package>\ProvidesPackage{apxproof}
-%<package> [2021/09/03 v1.2.3 Automatic proofs in appendix]
+%<package> [2022/10/14 v1.2.4 Automatic proofs in appendix]
%
%<*driver>
\documentclass{ltxdoc}
@@ -45,7 +45,7 @@
%</driver>
% \fi
%
-% \CheckSum{864}
+% \CheckSum{974}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -87,7 +87,7 @@
% \changes{v1.0.0}{2016/10/31}{Initial released version}
% \changes{v1.0.1}{2016/11/07}{Prevent empty bibliography environment;
% fix typos}
-%
+%
% \GetFileInfo{apxproof.sty}
%
% \makeatletter\c@IndexColumns=2\makeatother
@@ -102,13 +102,13 @@
% }
%
% \title{The \textsf{apxproof} package}
-%
+%
% \author{Pierre Senellart \\ \texttt{pierre@senellart.com} \\
% \url{http://github.com/PierreSenellart/apxproof}}
% \date{\filedate \quad \fileversion}
%
% \maketitle
-%
+%
% \begin{abstract}
% This package makes it easier to write articles where proofs and other material
% are deferred to the appendix. The appendix material is written in the \LaTeX{}
@@ -149,9 +149,7 @@
% \end{toappendix}
% \end{verbatim}
% \begin{toappendix}
-%<*driver>
-This content is in the appendix.
-%</driver>
+% This content is in the appendix.
% \end{toappendix}
% \end{example}
% \changes{v1.0.3}{2017/01/10}{Note on entire sections in appendix}
@@ -168,7 +166,7 @@ This content is in the appendix.
% \hspace*{1em}\dots\\
% |\end{appendixproof}|
% \end{quote}
-% This behaves like the |toappendix| environment, except that
+% This behaves like the |toappendix| environment, except that
% a proof environment is generated.
% \begin{example}We now send a proof to the appendix:
% \begin{verbatim}
@@ -177,9 +175,7 @@ This content is in the appendix.
% \end{appendixproof}
% \end{verbatim}
% \begin{appendixproof}
-%<*driver>
-This proof is in the appendix.
-%</driver>
+% This proof is in the appendix.
% \end{appendixproof}
% \end{example}
%
@@ -195,7 +191,7 @@ This proof is in the appendix.
% |\newtheoremrep|\marg{name}\oarg{counter}\marg{title}\oarg{countersec}\DescribeMacro{\newtheoremrep}
% \end{quote}
% Usage is exactly the same as that of AMS \LaTeX{}'s |\newtheorem|
-% macro:
+% macro:
% \begin{itemize}
% \item \meta{name} (e.g., |theorem|) is the name of an environment that is created for this kind of
% theorem;
@@ -266,9 +262,7 @@ This proof is in the appendix.
% This foobar is repeated in the appendix.
% \end{foobarrep}
% \begin{proof}
-%<*driver>
-This is the proof of the repeated foobar.
-%</driver>
+% This is the proof of the repeated foobar.
% \end{proof}
% Note that, since |hyperref| is loaded, there are hyperlinks
% created between the statements of the theorems in the main text and in
@@ -309,7 +303,7 @@ This is the proof of the repeated foobar.
% This is an inline proof.
% \end{inlineproof}
% \end{example}
-%
+%
% \subsection{Bibliography}
% By default, \textsf{apxproof} automatically adds a bibliography in the appendix
% with only the references cited in the appendix material. This allows for a
@@ -325,9 +319,7 @@ This is the proof of the repeated foobar.
% \end{verbatim}
% This is a citation in the main text~\cite{lamport86}.
% \begin{toappendix}
-%<*driver>
-This is a citation in the appendix~\cite{proofsAreHard}.
-%</driver>
+% This is a citation in the appendix~\cite{proofsAreHard}.
% \end{toappendix}
% \end{example}
% The bibliography in the appendix can use
@@ -477,18 +469,18 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% Issues not listed here should be reported to the author.
%
% \section{License}
-% Copyright \textcopyright{} 2016--2021 by Pierre Senellart.
-%
+% Copyright \textcopyright{} 2016--2022 by Pierre Senellart.
+%
% This work may be distributed and/or modified under the conditions of the
% \LaTeX{} Project Public License, either version 1.3 of this license or (at
% your option) any later version. The latest version of this license is in
% \url{http://www.latex-project.org/lppl.txt} and version 1.3 or later is part of
% all distributions of \LaTeX{} version 2005/12/01 or later.
-%
+%
% \section{Contact}
% \begin{itemize}
% \item \url{https://github.com/PierreSenellart/apxproof}
-% \item
+% \item
% Pierre Senellart
% \href{mailto:pierre@senellart.com}{<pierre@senellart.com>}
% \end{itemize}
@@ -505,7 +497,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \PrintChanges
% \PrintIndex
% }
-%
+%
% \section{Implementation}
% We now describe the entire code of the package, in a literate programming
% fashion. Throughout the package, we use the |axp@| prefix to identify
@@ -630,7 +622,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
}}}
\ifthenelse{\equal{\axp@bibliography}{separate}}{
% \end{macrocode}
-% The external \textsf{bibunits} package
+% The external \textsf{bibunits} package
% is used to add a second bibliography for the appendix material.
% \changes{v1.2.0}{2019/04/17}{Do not load \textsf{bibunits} if
% \texttt{bibliography} is set to \texttt{common}}
@@ -726,7 +718,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% We define the high-level |\newtheoremrep| to have the same syntax as
% \textsf{amsthm}'s |\newtheorem|. For this purpose, we need a little
% trick to deal with the second and fourth optional arguments, which is what
-% |\@oparg| and |\axp@newtheoremreptmp| are
+% |\@oparg| and |\axp@newtheoremreptmp| are
% used for. |\axp@newtheoremrep| is defined differently
% depending on the compilation mode.
% \begin{macrocode}
@@ -745,7 +737,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \begin{macrocode}
\newenvironment{proofsketch}{\begin{axp@oldproof}[Proof sketch]}{\end{axp@oldproof}}
% \end{macrocode}
-% \end{environment}
+% \end{environment}
% \begin{macro}{\mainbodyrepeatedtheorem}
% \changes{v1.2.0}{2019/09/21}{Configurable repeated theorem command}
% \begin{macro}{\appendixrefname}
@@ -776,11 +768,15 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \end{macro}
% \end{macro}
% \begin{environment}{axp@oldproof}
-% We save the definition of the existing |proof| environment.
-% \begin{macrocode}
+% We save the definition of the existing |proof| environment (and of
+% the |claimproof| environment that the \textsf{lipics} document class
+% defines).
+% \begin{macrocode}
\let\axp@oldproof\proof
\let\endaxp@oldproof\endproof
-% \end{macrocode}
+ \let\axp@oldclaimproof\claimproof
+ \let\endaxp@oldclaimproof\endclaimproof
+% \end{macrocode}
% \end{environment}
% We define a utility macro that will be used to properly set the
% |\label| command (and its \textsf{amsmath} counterpart,
@@ -793,7 +789,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \changes{v1.2.0}{2019/02/15}{Fix extra spacing erroneously
% introduced within the \texttt{\textbackslash axp@redefinelabels}
% macro}
-% \begin{macrocode}
+% \begin{macrocode}
\newcommand{\axp@redefinelabels}{%
\providecommand\label@in@display{}%
\ifthenelse{\equal{\axp@appendix}{inline}}{%
@@ -814,9 +810,9 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\renewcommand\label@in@display[1]{\axp@oldlabel@in@display{##1-apx}}%
}%
}
-% \end{macrocode}
-% \end{macro}
-% \subsubsection{Class-Specific Behavior}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{Class-Specific Behavior}
% Finally, some class-specific behavior common to all compilation modes.
% \paragraph{\textsf{llncs} and other Springer document classes}
% \changes{v1.0.6}{2018/05/10}{Better support of Springer document
@@ -844,13 +840,13 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\spnewtheorem*{#1}{#2}{\upshape\bfseries}{\itshape}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
% \begin{macro}{proofsketch}
% \changes{v1.2.0}{2019/02/15}{Fix proof sketches in inline
% compilation mode for Springer document classes}
% We redefine the |proofsketch| environment, which is used
-% differently in the base class.
+% differently in the base class.
% \begin{macrocode}
\renewenvironment{proofsketch}{\begin{axp@oldproof}[sketch]}{\end{axp@oldproof}}
% \end{macrocode}
@@ -886,7 +882,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
}
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
% \begin{environment}{inlineproof}
% \begin{environment}{nestedproof}
% \begin{environment}{appendixproof}
@@ -900,23 +896,23 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\let\appendixproof\proof
\let\endappendixproof\endproof
% \end{macrocode}
-% \end{environment}
-% \end{environment}
-% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
% \begin{environment}{toappendix}
% \begin{macro}{\noproofinappendix}
% \begin{macro}{\nosectionappendix}
-% In inline mode, this environment and these macros are no-ops.
+% In inline mode, this environment and these macros are no-ops.
% \begin{macrocode}
\newenvironment{toappendix}{}{}
\let\noproofinappendix\relax
\let\nosectionappendix\relax
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{environment}
+% \end{macro}
+% \end{environment}
% \begin{macrocode}
-}
+}
% \end{macrocode}
% \subsection{Append or Strip Compilation Modes}
% \begin{macrocode}
@@ -926,37 +922,39 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% useful: either append the appendix material to the document, or strip
% it entirely.
% \bigskip
-% \subsubsection{Auxiliary File for the Appendix}
-% \begin{macro}{\axp@proofsfile}
+% \subsubsection{Auxiliary File for the Appendix}
+% \begin{macro}{\axp@proofsfile}
% We open a new auxiliary file, with extension |.axp|, where the appendix
-% material will be dumped.
+% material will be dumped.
% \changes{v1.1.0}{2018/07/11}{Initialization deferred to \cs{AtBeginDocument}
% for compatibility with \cs{dump}ed precompiled preambles (K. D.
% Bauer)}
-% \begin{macrocode}
+% \begin{macrocode}
\AtBeginDocument{
\newwrite\axp@proofsfile
\immediate\openout\axp@proofsfile=\jobname.axp
}
-% \end{macrocode}
-% \end{macro}
+% \end{macrocode}
+% \end{macro}
% \begin{environment}{proof}
% \begin{macro}{\section}
% At the beginning of this file, we make |@| a regular character (since
% it will be used in several places for internal names) and reestablish the original definition of
% the |proof| environment and the |\section| macro.
-% \begin{macrocode}
+% \begin{macrocode}
\AtBeginDocument{
\immediate\write\axp@proofsfile{%
\noexpand\makeatletter
\noexpand\let\noexpand\proof\noexpand\axp@oldproof
\noexpand\let\noexpand\endproof\noexpand\endaxp@oldproof
+ \noexpand\let\noexpand\claimproof\noexpand\axp@oldclaimproof
+ \noexpand\let\noexpand\endclaimproof\noexpand\endaxp@oldclaimproof
\noexpand\let\noexpand\section\noexpand\axp@oldsection
}
}
-% \end{macrocode}
-% \end{macro}
-% \end{environment}
+% \end{macrocode}
+% \end{macro}
+% \end{environment}
% \begin{macro}{\axp@unactivateeightbit}
% \changes{v1.1.0}{2019/01/28}{Fix compilation of non-ASCII
% characters with \texttt{\textbackslash usepackage[utf8]\{inputenc\}}}
@@ -976,7 +974,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \begin{environment}{axp@VerbatimOut}
% \begin{macro}{\FVB@axp@VerbatimOut}
% \begin{macro}{\FVE@axp@VerbatimOut}
-% \changes{v1.1.0}{2018/10/02}{Make \textsf{apxproof} compatible with
+% \changes{v1.1.0}{2018/10/02}{Make \textsf{apxproof} compatible with
% independent use of \textsf{fancyvrb}}
% Using the functionalities of the \textsf{fancyvrb} package, we define a
% custom verbatim environment |axp@VerbatimOut| that writes every line
@@ -1009,39 +1007,39 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\endgroup\@esphack}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{environment}
+% \end{macro}
+% \end{environment}
% \begin{environment}{toappendix}
% The entire content of this environment is put in appendix,
% starting a new appendix section beforehand if needed.
-% \begin{macrocode}
+% \begin{macrocode}
\newenvironment{toappendix}
{\axp@writesection\axp@VerbatimOut}
{\endaxp@VerbatimOut}
-% \end{macrocode}
+% \end{macrocode}
% \end{environment}
-% \subsubsection{Definition of New Theorems}
+% \subsubsection{Definition of New Theorems}
% \begin{macro}{axp@seenreptheorem}
% Used to indicate whether a repeated theorem was just typeset, without
% its proof.
-% \begin{macrocode}
+% \begin{macrocode}
\newtoggle{axp@seenreptheorem}
-% \end{macrocode}
-% \end{macro}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{axp@rpcounter}
% Sequentially incremented for every repeated theorem, used to create labels.
-% \begin{macrocode}
+% \begin{macrocode}
\newcounter{axp@rpcounter}
-% \end{macrocode}
-% \end{macro}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{axp@equation}
% \begin{macro}{axp@equationx}
% Used to save the value of the |equation| counter, when |repeqn| is set
% to |same|.
-% \begin{macrocode}
+% \begin{macrocode}
\newcounter{axp@equation}
\newcounter{axp@equationx}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{axp@newtheoremrep}
@@ -1050,13 +1048,13 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% theorem |foobar|. We then patch |\begin{foobar}| so as not to
% expect a proof in the appendix and define an internal theorem |axp@foobarrp| that
% will be used in the appendix to restate the existing theorem.
-% \begin{macrocode}
+% \begin{macrocode}
\def\axp@newtheoremrep#1[#2]#3[#4]{%
\axp@newtheoremrep@definetheorem{#1}{#2}{#3}{#4}%
\expandafter\pretocmd\csname #1\endcsname{\noproofinappendix}{}{}%
\axp@newtheorem*{axp@#1rp}{#3}%
\axp@forward@setup{#1}{#2}{#3}{#4}%
-% \end{macrocode}
+% \end{macrocode}
% We then define a |foobarrep| environment that increments the
% |axp@rpcounter| and typeset the regular |foobar| theorem with a label
% derived from the counter, along with a possible custom command to
@@ -1083,16 +1081,16 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\fi
\mainbodyrepeatedtheorem
\BODY\end{#1}%
-% \end{macrocode}
+% \end{macrocode}
% We set the |axp@seenreptheorem| toggle to indicate that we are looking
% for the proof of the theorem, then store in a macro the content of the
% theorem's body.
-% \begin{macrocode}
+% \begin{macrocode}
\global\toggletrue{axp@seenreptheorem}%
\global\expandafter\let\csname rplet\roman{axp@rpcounter}%
\endcsname
\BODY
-% \end{macrocode}
+% \end{macrocode}
% Possibly after starting a new appendix section if needed, we typeset a
% repeated version of the theorem using the |axp@foobarrp| environment
% and a reference to the previously defined label.
@@ -1102,7 +1100,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% theorem, but theorem notes are usually typeset in a much
% different way (different font, parentheses) than theorem
% headings. In the case of the Springer document
-% classes, we use the |\theopargself| macro to disable parentheses. For
+% classes, we use the |\theopargself| macro to disable parentheses. For
% other document classes, we need to manually patch the |\thmhead|
% command at the right time. We also specially cover the case of
% the ACM document class where |\@acmplainnotefont| is used instead
@@ -1114,7 +1112,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \changes{v1.0.6}{2018/05/10}{Fix incorrect use of \texttt{\textbackslash noexpand}
% in optional argument of macro environment}
% \changes{v1.2.0}{2019/10/07}{Fix display of theorem notes}
-% \begin{macrocode}
+% \begin{macrocode}
\axp@writesection%
\immediate\write\axp@proofsfile{\noexpand\makeatletter}%
\ifthenelse{\equal{\axp@repeqn}{same}}{%
@@ -1152,7 +1150,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\noexpand\the\noexpand\thm@notefont
\noexpand\fi
\fi
- \fi
+ \fi
{} (\unexpanded{{##1}})%
}%
]%
@@ -1170,18 +1168,18 @@ This is a citation in the appendix~\cite{proofsAreHard}.
}%
}
% \end{macrocode}
-% \end{macro}
-%
+% \end{macro}
+%
% \subsubsection{Forward-Linking Mechanism}
% \changes{v1.1.0}{2018/07/02}{Added forward-link mechanism (K. D. Bauer)}
-%
+%
% When hyperref is loaded, |foobarrep| environments
% in the main text have their number link to their
% repetition in the appendix.
-%
-%
+%
+%
-%
+%
% \begin{macro}{\axp@with@forward}
% In order to make the number of the |foobarrep| theorem a link
% to its repeated version, we temporarily redefine the
@@ -1191,7 +1189,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% a |\hyperlink|, without adding extensive dependence
% on internals of |amsthm|, the builtin |\newtheorem|
% and possibly document-class specific definitions.
-%
+%
% In order to allow users to redefine |\thefoobar| without
% breaking this feature, we redefine |\thefoobar| only
% for the duration of the |\begin{foobar}| form,
@@ -1204,7 +1202,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% We also redefine |\theHfoobar| which is used by |hyperref| but not
% defined if |hyperref| was loaded after |\newtheoremrep| was used.
% and |\protect| it to output it verbatim into the |.aux| file.
-%
+%
% These hyperlinks are of course disabled in the |strip| compilation
% mode.
% \begin{macrocode}
@@ -1233,7 +1231,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% Dummy macro, for handling the unwanted change of
% the |\newlabel| entry in the |.aux| file caused by
% changing the definition of |\thefoobar|.
-%
+%
% \begin{macrocode}
\newbool{axp@forward}
\newcommand{\axp@forward@link}[2]{%
@@ -1250,7 +1248,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\axp@forward@target}
% Provides the needed |\hypertarget|.
% Intended to be written to the |.axp| file.
@@ -1264,7 +1262,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\axp@forward@setup}
% In order to support counter inheritance with the first
% optional argument of |\newtheoremrep|,
@@ -1278,22 +1276,28 @@ This is a citation in the appendix~\cite{proofsAreHard}.
}
% \end{macrocode}
% \end{macro}
-%
-%
-% \subsubsection{Proof Environments}
+%
+%
+% \subsubsection{Proof Environments}
% \begin{macro}{\noproofinappendix}
% Utility macro that toggles |axp@seenreptheorem| to false.
-% \begin{macrocode}
+% \begin{macrocode}
\newcommand\noproofinappendix{%
\global\togglefalse{axp@seenreptheorem}%
}
% \end{macrocode}
% \end{macro}
% \begin{environment}{appendixproof}
+% \changes{v1.2.4}{2021/11/03}{Support optional arguments in proofs}
% We dump the content of this in appendix, within an original |proof|
% environment, possibly after creating a new appendix section.
-% \begin{macrocode}
- \newenvironment{appendixproof}
+% We support
+% optional arguments in proofs, but we need to be careful not to gobble
+% any newline character, that would make it impossible to process the
+% first line with \textsf{fancyvrb}.
+% \begin{macrocode}
+ \def\appendixproof{\catcode`\^^M=\active\@ifnextchar[{\catcode`\^^M=5\@@appendixproof}{\catcode`\^^M=5\@appendixproof}}
+ \def\@appendixproof
{%
\axp@writesection
\immediate\write\axp@proofsfile{%
@@ -1301,6 +1305,15 @@ This is a citation in the appendix~\cite{proofsAreHard}.
}%
\axp@VerbatimOut
}
+ \def\@@appendixproof[#1]%
+ {%
+ \axp@writesection
+ \immediate\write\axp@proofsfile{%
+ \noexpand\makeatletter\noexpand\begin{axp@oldproof}[\unexpanded{#1}]\noexpand\makeatother%
+ }%
+ \axp@VerbatimOut
+ }
+ \def\endappendixproof
{%
\endaxp@VerbatimOut
\immediate\write\axp@proofsfile{%
@@ -1308,13 +1321,17 @@ This is a citation in the appendix~\cite{proofsAreHard}.
}%
\noproofinappendix
}
-% \end{macrocode}
+% \end{macrocode}
% \end{environment}
% \begin{environment}{proof}
% This environment either puts the proof in appendix, if we are after a repeated
-% theorem without its proof, or inlines it otherwise.
-% \begin{macrocode}
- \renewenvironment{proof}
+% theorem without its proof, or inlines it otherwise. We support
+% optional arguments in proofs, but we need to be careful not to gobble
+% any newline character, that would make it impossible to process the
+% first line with \textsf{fancyvrb}.
+% \begin{macrocode}
+ \def\proof{\catcode`\^^M=\active\ltx@ifnextchar@nospace[{\catcode`\^^M=5\axp@@proof}{\catcode`\^^M=5\axp@proof}}
+ \def\axp@proof
{%
\iftoggle{axp@seenreptheorem}{%
\appendixproof
@@ -1322,6 +1339,15 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\axp@oldproof
}%
}
+ \def\axp@@proof[#1]%
+ {%
+ \iftoggle{axp@seenreptheorem}{%
+ \appendixproof[#1]
+ }{%
+ \axp@oldproof[#1]
+ }%
+ }
+ \def\endproof
{%
\iftoggle{axp@seenreptheorem}{%
\endappendixproof
@@ -1329,34 +1355,75 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\endaxp@oldproof
}%
}
-% \end{macrocode}
+% \end{macrocode}
+% \end{environment}
+% \begin{environment}{claimproof}
+% \changes{v1.2.4}{2021/11/03}{Support for \texttt{claimproof} environment
+% from \textsf{lipics}}
+% If the |claimproof| environment exists (\textsf{lipics} document
+% class), we also redefine it, in the same way.
+% \begin{macrocode}
+ \ifdefined\claimproof
+ \def\claimproof{\catcode`\^^M=\active\ltx@ifnextchar@nospace[{\catcode`\^^M=5\axp@@claimproof}{\catcode`\^^M=5\axp@claimproof}}
+ \def\axp@claimproof
+ {%
+ \iftoggle{axp@seenreptheorem}{%
+ \appendixproof
+ }{%
+ \axp@oldclaimproof
+ }%
+ }
+ \def\axp@@claimproof[#1]%
+ {%
+ \iftoggle{axp@seenreptheorem}{%
+ \appendixproof[#1]
+ }{%
+ \axp@oldclaimproof[#1]
+ }%
+ }
+ \def\endclaimproof
+ {%
+ \iftoggle{axp@seenreptheorem}{%
+ \immediate\write\axp@proofsfile{%
+ \noexpand\makeatletter
+ \noexpand\let\noexpand\endaxp@oldproof\noexpand\endaxp@oldclaimproof
+ \noexpand\makeatother
+ }%
+ \endappendixproof
+ }{%
+ \endaxp@oldclaimproof
+ }%
+ }
+ \fi
+% \end{macrocode}
% \end{environment}
+
% \begin{environment}{inlineproof}
% \begin{environment}{nestedproof}
% These two environments are synonyms for the original |proof|
-% environment.
-% \begin{macrocode}
+% environment.
+% \begin{macrocode}
\let\inlineproof\axp@oldproof
\let\endinlineproof\endaxp@oldproof
\let\nestedproof\axp@oldproof
\let\endnestedproof\endaxp@oldproof
-% \end{macrocode}
+% \end{macrocode}
% \end{environment}
% \end{environment}
-% \subsubsection{Section Management}
+% \subsubsection{Section Management}
% \begin{macro}{axp@seccounter}
% Sequentially incremented for every section, used to create labels.
-% \begin{macrocode}
+% \begin{macrocode}
\newcounter{axp@seccounter}
-% \end{macrocode}
-% \end{macro}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\axp@sectitle}
% Saves the title of the last encountered section.
-% \begin{macrocode}
+% \begin{macrocode}
\def\axp@sectitle{}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\axp@section}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\axp@section}
% \changes{v1.2.2}{2021/06/23}{Detect a section within an included
% file to avoid produced useless sections}
% \begin{macro}{\axp@@sectiontestinput}
@@ -1366,8 +1433,8 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% does not produce anything. This is useful to avoid producing empty
% sections in the appendix. Using the \textsf{catchfile} package, we
% also check whether a |\section| is within an |\input| that immediately
-% follows.
-% \begin{macrocode}
+% follows.
+% \begin{macrocode}
\def\axp@section#1{%
\@ifnextchar\input
{\axp@@sectiontestinput{#1}}%
@@ -1379,10 +1446,10 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\expandafter\axp@tmptmp\axp@tmp%
}
\def\axp@@sectiontestsection#1{\@ifnextchar\section{\makeatother}{\axp@oldsection{#1}\makeatother}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \begin{macro}{\axp@oldsection}
% \begin{macro}{\section}
% \changes{v1.1.0}{2018/07/25}{Rewrote definition of \cs{section}
@@ -1411,7 +1478,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\addtocounter{axp@seccounter}{1}%
\label{axp@s\roman{axp@seccounter}}%
}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -1419,30 +1486,30 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \begin{macro}{\nosectionappendix}
% We remove the current section title, to indicate no section should be
% created in the appendix.
-% \begin{macrocode}
+% \begin{macrocode}
\newcommand{\nosectionappendix}{
\global\def\axp@sectitle{}%
}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \begin{macro}{\axp@writesection}
% If |\axp@sectitle| is not empty, we create
% a new section in the appendix, referring to the main text section.
-%
+%
% Here, we wrap |\ref{axp@si}| into |\axp@protectref@i|, in order
% to protect the label name from wrongly being converted to uppercase,
% e.g., in \textsf{fancyhdr} with |\pagestyle{fancy}|.
-%
+%
% This macro is defined both in the |.aux| file (in order to ensure availability
% when typesetting the |\tableofcontents|), and immediately before typesetting
% the appendix section (to ensure availability in the |\section| command).
-%
+%
% \changes{v1.0.6}{2018/05/10}{Fix extraneous space after section number
% in appendix titles}
% \changes{v1.1.0}{2018/07/09}{Make \cs{axp@tmp} wrapper more robust.
-% Resolves issues from use of section title in \textsf{fancyhdr},
+% Resolves issues from use of section title in \textsf{fancyhdr},
% and in \cs{tableofcontents} (K. D. Bauer).}
-% \begin{macrocode}
+% \begin{macrocode}
\newcommand\axp@writesection{%
\ifx\axp@sectitle\@empty
\else
@@ -1465,28 +1532,28 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\nosectionappendix
\fi
}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% Finally, in a somewhat ad hoc manner, we disable the whole section management
% for \cs{tableofcontents}, which may be typeset using a section heading,
% but for which automatic section management does not make sense.
-%
+%
% \begin{macro}{\axp@oldtableofcontents}
% \begin{macro}{\tableofcontents}
% \changes{v1.1.0}{2018/07/09}{Disable section management for table
% of contents}
-% \begin{macrocode}
+% \begin{macrocode}
\let\axp@oldtableofcontents\tableofcontents
\def\tableofcontents{{\let\section\axp@oldsection\axp@oldtableofcontents}}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \end{macro}
-% \subsubsection{Append Compilation Mode}
-% \begin{macrocode}
+% \subsubsection{Append Compilation Mode}
+% \begin{macrocode}
\ifthenelse{\equal{\axp@appendix}{append}}{
-% \end{macrocode}
-% \begin{macro}{\axp@oldbibliography}
-% \begin{macro}{\bibliography}
+% \end{macrocode}
+% \begin{macro}{\axp@oldbibliography}
+% \begin{macro}{\bibliography}
% Unless the |bibliography| option is set to |common|, we need to set the
% appendix bibliography source to be the same as that of the main
% text, thanks to \textsf{bibunits}'s |\defaultbibliography| macro.
@@ -1501,7 +1568,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \end{macrocode}
% \end{macro}
% \end{macro}
-% After the end of the main text, we add the appendix (after the command
+% After the end of the main text, we add the appendix (after the command
% |\appendixprelim| is issued)
% within a |bibunit| environment so as to typeset
% a separate bibliography for the appendix (unless the |bibliography|
@@ -1566,11 +1633,11 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\fi
}{}
}{}{}
-% \end{macrocode}
-% \begin{macrocode}
+% \end{macrocode}
+% \begin{macrocode}
}{}
% \end{macrocode}
-% \subsubsection{Class-Specific Behavior}
+% \subsubsection{Class-Specific Behavior}
% We conclude with some class-specific behavior.
% \paragraph{ACM Document Classes (old versions, till 2017)}
% \changes{v1.0.4}{2017/03/08}{More faithful theorem style for ACM templates}
@@ -1579,12 +1646,12 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\ifdefined\@acmtitlebox
% \end{macrocode}
% We first redefine the |proofsketch| environment, which is used
-% differently in the base class.
+% differently in the base class.
% \begin{macrocode}
\renewenvironment{proofsketch}{\begin{axp@oldproof}[sketch]}{\end{axp@oldproof}}
% \end{macrocode}
% We adjust the styling of theorems for the needs of \textsf{apxproof}.
-% \begin{macrocode}
+% \begin{macrocode}
\newtheoremstyle{mystyle}
{6pt}
{6pt}
@@ -1602,7 +1669,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% The section title of the bibliography is in uppercase in these document
% classes. In addition, the |\thebibliography| macro hard-codes twice
% the section title, so we un-hardcode it so that it can be modified
-% in the appendix.
+% in the appendix.
% \begin{macrocode}
\patchcmd{\thebibliography}{References}{\protect\refname}{}{}
\patchcmd{\thebibliography}{References}{\protect\refname}{}{}
@@ -1612,7 +1679,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \end{macro}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macrocode}
\fi
% \end{macrocode}
@@ -1622,7 +1689,7 @@ This is a citation in the appendix~\cite{proofsAreHard}.
% \begin{macrocode}
\ifdefined\lipics@opterrshort
% \end{macrocode}
-% \begin{macro}{\appendixbibliographyprelim}
+% \begin{macro}{\appendixbibliographyprelim}
% \changes{v1.0.3}{2017/02/06}{Support for lipics-v2016}
% The default bibliography in the \textsf{lipics} document class
% formatting is not compatible with the
@@ -1631,9 +1698,9 @@ This is a citation in the appendix~\cite{proofsAreHard}.
\renewcommand{\appendixbibliographyprelim}{%
\global\let\@oldbiblabel\@biblabel
\def\@biblabel{\hspace*{-2em}\small\@oldbiblabel}%
- }
+ }
% \end{macrocode}
-% \end{macro}
+% \end{macro}
% \begin{macrocode}
\fi
}