You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
tex-compiler/texmf-dist/tex/latex/lwarp/lwarp-ntheorem.sty

510 lines
15 KiB

%%
%% This is file `lwarp-ntheorem.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% lwarp.dtx (with options: `ntheorem')
%% This is a generated file.
%% Copyright 2016-2020 Brian Dunn
%%
%% 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
%% 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.
\DeclareOption{thref}{
\AtEndDocument{
\PackageWarningNoLine{lwarp}{%
Lwarp uses cleveref, which takes over ntheorem's\MessageBreak
referencing, including
\protect\label \space and \protect\thref.\MessageBreak
Cleveref does not accept ntheorem's optional\MessageBreak
argument for \protect\label, so it will appear\MessageBreak
in the text. It is recommended to remove the\MessageBreak
thref option, \protect\usepackage{cleveref} instead,\MessageBreak
and remove any trailing optional arguments for \protect\label%
}%
}
}
\newbool{LWR@ntheoremmarks}
\boolfalse{LWR@ntheoremmarks}
\DeclareOption{thmmarks}{
\booltrue{LWR@ntheoremmarks}
\newif\ifsetendmark\setendmarktrue
}
\newbool{LWR@ntheoremamsthm}
\boolfalse{LWR@ntheoremamsthm}
\DeclareOption{amsthm}{\booltrue{LWR@ntheoremamsthm}}
\DeclareOption{amsmath}{}
\DeclareOption{hyperref}{}
\LWR@ProvidesPackagePass{ntheorem}[2011/08/15]
\newcommand{\LWR@newtheoremstyle}{plain}
\AtBeginDocument{
\@ifpackageloaded{cleveref}{
\gdef\@thm#1#2#3{%
\if@thmmarks
\stepcounter{end\InTheoType ctr}%
\fi
\renewcommand{\InTheoType}{#1}%
\if@thmmarks
\stepcounter{curr#1ctr}%
\setcounter{end#1ctr}{0}%
\fi
\refstepcounter[#1]{#2}% <<< cleveref modification
\theorem@prework
\LWR@forcenewpage% lwarp
\BlockClass{theorembody#1}%\LWR@thisthmstyle% lwarp
\trivlist % latex's \trivlist, calling latex's \@trivlist unchanged
\ifuse@newframeskips % cf. latex.ltx for topsepadd: \@trivlist
\ifthm@inframe
\thm@topsep\theoreminframepreskipamount
\thm@topsepadd\theoreminframepostskipamount
\else
\thm@topsep\theorempreskipamount
\thm@topsepadd\theorempostskipamount
\fi
\else% oldframeskips
\thm@topsep\theorempreskipamount
\thm@topsepadd \theorempostskipamount
\ifvmode\advance\thm@topsepadd\partopsep\fi
\fi
\@topsep\thm@topsep
\@topsepadd\thm@topsepadd
\advance\linewidth -\theorem@indent
\advance\linewidth -\theorem@rightindent
\advance\@totalleftmargin \theorem@indent
\parshape \@ne \@totalleftmargin \linewidth
\@ifnextchar[{\@ythm{#1}{#2}{#3}}{\@xthm{#1}{#2}{#3}}
}
}{% not @ifpackageloaded{cleveref}
\gdef\@thm#1#2#3{%
\if@thmmarks
\stepcounter{end\InTheoType ctr}%
\fi
\renewcommand{\InTheoType}{#1}%
\if@thmmarks
\stepcounter{curr#1ctr}%
\setcounter{end#1ctr}{0}%
\fi
\refstepcounter{#2}%
\theorem@prework
\LWR@forcenewpage% lwarp
\BlockClass{theorembody#1}%\LWR@thisthmstyle% lwarp
\trivlist % latex's \trivlist, calling latex's \@trivlist unchanged
\ifuse@newframeskips % cf. latex.ltx for topsepadd: \@trivlist
\ifthm@inframe
\thm@topsep\theoreminframepreskipamount
\thm@topsepadd\theoreminframepostskipamount
\else
\thm@topsep\theorempreskipamount
\thm@topsepadd\theorempostskipamount
\fi
\else% oldframeskips
\thm@topsep\theorempreskipamount
\thm@topsepadd \theorempostskipamount
\ifvmode\advance\thm@topsepadd\partopsep\fi
\fi
\@topsep\thm@topsep
\@topsepadd\thm@topsepadd
\advance\linewidth -\theorem@indent
\advance\linewidth -\theorem@rightindent
\advance\@totalleftmargin \theorem@indent
\parshape \@ne \@totalleftmargin \linewidth
\@ifnextchar[{\@ythm{#1}{#2}{#3}}{\@xthm{#1}{#2}{#3}}
}
}
}% AtBeginDocument
\gdef\theoremstyle#1{%
\@ifundefined{th@#1}{\@warning
{Unknown theoremstyle `#1'. Using `plain'}%
\theorem@style{plain}
\renewcommand{\LWR@newtheoremstyle}{plain}% lwarp
}%
{
\theorem@style{#1}
\renewcommand{\LWR@newtheoremstyle}{#1}% lwarp
}
}
\gdef\@xnthm#1#2[#3]{%
\ifthm@tempif
\csedef{LWR@thmstyle#1}{\LWR@newtheoremstyle}% lwarp
\expandafter\@ifundefined{c@#1}%
{\@definecounter{#1}}{}%
\@newctr{#1}[#3]%
\expandafter\xdef\csname the#1\endcsname{%
\expandafter\noexpand\csname the#3\endcsname \@thmcountersep
{\noexpand\csname\the\theoremnumbering\endcsname{#1}}}%
\expandafter\gdef\csname mkheader@#1\endcsname
{\csname setparms@#1\endcsname
\@thm{#1}{#1}{#2}
}%
\global\@namedef{end#1}{\@endtheorem}
\AtBeginEnvironment{#1}{\edef\LWR@thisthmstyle{\@nameuse{LWR@thmstyle#1}}}% lwarp
\fi
}
\gdef\@ynthm#1#2{%
\ifthm@tempif
\csedef{LWR@thmstyle#1}{\LWR@newtheoremstyle}% lwarp
\expandafter\@ifundefined{c@#1}%
{\@definecounter{#1}}{}%
\expandafter\xdef\csname the#1\endcsname
{\noexpand\csname\the\theoremnumbering\endcsname{#1}}%
\expandafter\gdef\csname mkheader@#1\endcsname
{\csname setparms@#1\endcsname
\@thm{#1}{#1}{#2}
}%
\global\@namedef{end#1}{\@endtheorem}
\AtBeginEnvironment{#1}{\edef\LWR@thisthmstyle{\@nameuse{LWR@thmstyle#1}}}% lwarp
\fi
}
\gdef\@othm#1[#2]#3{%
\@ifundefined{c@#2}{\@nocounterr{#2}}%
{\ifthm@tempif
\csedef{LWR@thmstyle#1}{\LWR@newtheoremstyle}% lwarp
\global\@namedef{the#1}{\@nameuse{the#2}}%
\expandafter\protected@xdef\csname num@addtheoremline#1\endcsname{%
\noexpand\@num@addtheoremline{#1}{#3}}%
\expandafter\protected@xdef\csname nonum@addtheoremline#1\endcsname{%
\noexpand\@nonum@addtheoremline{#1}{#3}}%
\theoremkeyword{#3}%
\expandafter\protected@xdef\csname #1Keyword\endcsname
{\the\theoremkeyword}%
\expandafter\gdef\csname mkheader@#1\endcsname
{\csname setparms@#1\endcsname
\@thm{#1}{#2}{#3}
}%
\global\@namedef{end#1}{\@endtheorem}
\AtBeginEnvironment{#1}{\edef\LWR@thisthmstyle{\@nameuse{LWR@thmstyle#1}}}% lwarp
\fi}
}
\newcommand{\LWR@inctheorem}{%
\addtocounter{LWR@thisautoid}{1}%
\LWR@stoppars%
\LWR@htmltag{a id="\LWR@print@mbox{autoid-\arabic{LWR@thisautoid}}"}\LWR@htmltag{/a}%
\LWR@startpars%
}
\gdef\newtheoremstyle#1#2#3{%
\expandafter\@ifundefined{th@#1}%
{\expandafter\gdef\csname th@#1\endcsname{%
\def\@begintheorem####1####2{%
\LWR@inctheorem% lwarp
#2}%
\def\@opargbegintheorem####1####2####3{%
\LWR@inctheorem% lwarp
#3}%
}%
}%
{\PackageError{\basename}{Theorem style #1 already defined}\@eha}
}
\renewtheoremstyle{plain}%
{\item[
\InlineClass{theoremheaderplain}{##1\ ##2\theorem@separator}]}%
{\item[
\InlineClass{theoremheaderplain}{##1\ ##2\ (##3)\theorem@separator}]}
\renewtheoremstyle{break}%
{\item[
\InlineClass{theoremheaderbreak}{##1\ ##2\theorem@separator}\newline
]}%
{\item[
\InlineClass{theoremheaderbreak}%
{##1\ ##2\ (##3)\theorem@separator}\newline
]}
\renewtheoremstyle{change}%
{\item[
\InlineClass{theoremheaderchange}{##2\ ##1\theorem@separator}]}%
{\item[
\InlineClass{theoremheaderchange}{##2\ ##1\ (##3)\theorem@separator}]}
\renewtheoremstyle{changebreak}%
{\item[
\InlineClass{theoremheaderchangebreak}%
{##2\ ##1\theorem@separator}\newline
]}%
{\item[
\InlineClass{theoremheaderchangebreak}%
{##2\ ##1\ (##3)\theorem@separator}\newline
]}
\renewtheoremstyle{margin}%
{\item[
\InlineClass{theoremheadermargin}{##2 \qquad ##1\theorem@separator}
]}%
{\item[
\InlineClass{theoremheadermargin}{##2 \qquad ##1\ (##3)\theorem@separator}
]}
\renewtheoremstyle{marginbreak}%
{\item[
\InlineClass{theoremheadermarginbreak}%
{##2 \qquad ##1\theorem@separator}\newline
]}%
{\item[
\InlineClass{theoremheadermarginbreak}%
{##2 \qquad ##1\ (##3)\theorem@separator}\newline
]}
\renewtheoremstyle{nonumberplain}%
{\item[
\InlineClass{theoremheaderplain}{##1\theorem@separator}]}%
{\item[
\InlineClass{theoremheaderplain}{##1\ (##3)\theorem@separator}]}
\renewtheoremstyle{nonumberbreak}%
{\item[
\InlineClass{theoremheaderbreak}{##1\theorem@separator}\newline
]}%
{\item[
\InlineClass{theoremheaderbreak}{##1\ (##3)\theorem@separator}\newline
]}
\renewtheoremstyle{empty}%
{\item[]}%
{\item[
\InlineClass{theoremheaderplain}{##3}]}
\renewtheoremstyle{emptybreak}%
{\item[]}%
{\item[
\InlineClass{theoremheaderplain}{##3}] \ \newline}
\ifbool{LWR@ntheoremamsthm}{}{%
\newtheoremstyle{plainupright}%
{\item[
\InlineClass{theoremheaderplain}{##1\ ##2\theorem@separator}]}%
{\item[
\InlineClass{theoremheaderplain}{##1\ ##2\ (##3)\theorem@separator}]}
\newtheoremstyle{nonumberplainuprightsc}%
{\item[
\InlineClass{theoremheadersc}{##1\theorem@separator}]}%
{\item[
\InlineClass{theoremheadersc}{##1\ (##3)\theorem@separator}]}
}% not amsthm
\ifbool{LWR@ntheoremamsthm}{}{%
\ifx\thm@usestd\@undefined
\else
\theoremnumbering{arabic}
\theoremstyle{plain}
\RequirePackage{latexsym}
\theoremsymbol{\Box}
\theorembodyfont{\itshape}
\theoremheaderfont{\normalfont\bfseries}
\theoremseparator{}
\renewtheorem{Theorem}{Theorem}
\renewtheorem{theorem}{Theorem}
\renewtheorem{Satz}{Satz}
\renewtheorem{satz}{Satz}
\renewtheorem{Proposition}{Proposition}
\renewtheorem{proposition}{Proposition}
\renewtheorem{Lemma}{Lemma}
\renewtheorem{lemma}{Lemma}
\renewtheorem{Korollar}{Korollar}
\renewtheorem{korollar}{Korollar}
\renewtheorem{Corollary}{Corollary}
\renewtheorem{corollary}{Corollary}
\theoremstyle{plainupright}
\theorembodyfont{\upshape}
\theoremsymbol{\HTMLunicode{25A1}}% UTF-8 white box
\renewtheorem{Example}{Example}
\renewtheorem{example}{Example}
\renewtheorem{Beispiel}{Beispiel}
\renewtheorem{beispiel}{Beispiel}
\renewtheorem{Bemerkung}{Bemerkung}
\renewtheorem{bemerkung}{Bemerkung}
\renewtheorem{Anmerkung}{Anmerkung}
\renewtheorem{anmerkung}{Anmerkung}
\renewtheorem{Remark}{Remark}
\renewtheorem{remark}{Remark}
\renewtheorem{Definition}{Definition}
\renewtheorem{definition}{Definition}
\theoremstyle{nonumberplainuprightsc}
\theoremsymbol{\HTMLunicode{220E}}% UTF-8 end-of-proof
\renewtheorem{Proof}{Proof}
\renewtheorem{proof}{Proof}
\renewtheorem{Beweis}{Beweis}
\renewtheorem{beweis}{Beweis}
\qedsymbol{\HTMLunicode{220E}}% UTF-8 end-of-proof
\theoremsymbol{}
\fi
}% not amsthm
\ifbool{LWR@ntheoremamsthm}{
\gdef\th@plain{%
\def\theorem@headerfont{\normalfont\bfseries}\itshape%
\def\@begintheorem##1##2{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderplain}{##1\ ##2.}
]}%
\def\@opargbegintheorem##1##2##3{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderplain}{##1\ ##2\ (##3).}
]}}
\gdef\th@nonumberplain{%
\def\theorem@headerfont{\normalfont\bfseries}\itshape%
\def\@begintheorem##1##2{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderplain}{##1.}
]}%
\def\@opargbegintheorem##1##2##3{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderplain}{##1\ (##3).}
]}}
\gdef\th@definition{%
\def\theorem@headerfont{\normalfont\bfseries}\normalfont%
\def\@begintheorem##1##2{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderdefinition}{##1\ ##2.}
]}%
\def\@opargbegintheorem##1##2##3{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderdefinition}{##1\ ##2\ (##3).}
]}}
\gdef\th@nonumberdefinition{%
\def\theorem@headerfont{\normalfont\bfseries}\normalfont%
\def\@begintheorem##1##2{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderdefinition}{##1.}
]}%
\def\@opargbegintheorem##1##2##3{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderdefinition}{##1\ (##3).}
]}}
\gdef\th@remark{%
\def\theorem@headerfont{\itshape}\normalfont%
\def\@begintheorem##1##2{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderremark}{##1\ ##2.}
]}%
\def\@opargbegintheorem##1##2##3{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderremark}{##1\ ##2\ (##3).}
]}}
\gdef\th@nonumberremark{%
\def\theorem@headerfont{\itshape}\normalfont%
\def\@begintheorem##1##2{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderremark}{##1.}
]}%
\def\@opargbegintheorem##1##2##3{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderremark}{##1\ (##3).}
]}}
\gdef\th@proof{%
\def\theorem@headerfont{\normalfont\bfseries}\itshape%
\def\@begintheorem##1##2{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderproof}{##1.}
]}%
\def\@opargbegintheorem##1##2##3{%
\LWR@inctheorem% lwarp
\item[
\InlineClass{theoremheaderproof}{##1\ (##3).}
]}}
\newcounter{proof}%
\if@thmmarks
\newcounter{currproofctr}%
\newcounter{endproofctr}%
\fi
\gdef\proofSymbol{\openbox}
\newcommand{\proofname}{Proof}
\newenvironment{proof}[1][\proofname]{
\th@proof
\def\theorem@headerfont{\itshape}%
\normalfont
\theoremsymbol{\HTMLunicode{220E}}% UTF-8 end-of-proof
\@thm{proof}{proof}{#1}
}%
{\@endtheorem}
}{}% amsthm option
\let\LWR@origendtheorem\@endtheorem
\renewcommand{\@endtheorem}{%
\ifbool{LWR@ntheoremmarks}{%
\ifsetendmark%
\InlineClass{theoremendmark}{\csname\InTheoType Symbol\endcsname}%
\setendmarkfalse%
\fi%
}{}%
\LWR@origendtheorem% also does \@endtrivlist
\ifbool{LWR@ntheoremmarks}{\global\setendmarktrue}{}%
\endBlockClass%
}
\gdef\NoEndMark{\global\setendmarkfalse}
\renewcommand{\thm@@thmline@noname}[4]{%
\hypertocfloat{1}{theorem}{thm}{#2 #3}{}%
}
\renewcommand{\thm@@thmline@name}[4]{%
\hypertocfloat{1}{theorem}{thm}{#1 #2 #3}{}%
}
\def\thm@@thmline{\thm@@thmline@name}
\def\listtheorems#1{
\LWR@htmlelementclass{nav}{lothm}%
\begingroup
\c@tocdepth=-2%
\def\thm@list{#1}\thm@processlist
\endgroup
\LWR@htmlelementclassend{nav}{lothm}%
}
\newcommand{\qed}{\qquad\the\qedsymbol}
\AtBeginDocument{
\@ifundefined{LWR@orig@openbox}{
\LetLtxMacro\LWR@orig@openbox\openbox
\LetLtxMacro\LWR@orig@blacksquare\blacksquare
\LetLtxMacro\LWR@orig@Box\Box
\def\openbox{\text{\HTMLunicode{25A1}}}% UTF-8 white box
\def\blacksquare{\text{\HTMLunicode{220E}}}% UTF-8 end-of-proof
\def\Box{\text{\HTMLunicode{25A1}}}% UTF-8 white box
\appto\LWR@restoreorigformatting{%
\LetLtxMacro\openbox\LWR@orig@openbox%
\LetLtxMacro\blacksquare\LWR@orig@blacksquare%
\LetLtxMacro\Box\LWR@orig@Box%
}% appto
}{}% @ifundefined
}% AtBeginDocument
\newcommand*{\thref}[1]{\cref{#1}}%
\endinput
%%
%% End of file `lwarp-ntheorem.sty'.