diff options
Diffstat (limited to 'macros/latex/contrib/projlib/ProjLib.dtx')
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib.dtx | 482 |
1 files changed, 443 insertions, 39 deletions
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx index 52dd38e55b..84b8e15894 100644 --- a/macros/latex/contrib/projlib/ProjLib.dtx +++ b/macros/latex/contrib/projlib/ProjLib.dtx @@ -18,52 +18,57 @@ % %<*ProjLib> \ProvidesPackage{ProjLib} - [2021/06/17 The collective interface of ProjLib toolkit] + [2021/06/19 The collective interface of ProjLib toolkit] %</ProjLib> % %<*PJLamssim> \ProvidesPackage{PJLamssim} - [2021/06/17 Simulate some features of amsart] + [2021/06/19 Simulate some features of amsart] %</PJLamssim> % %<*PJLauthor> \ProvidesPackage{PJLauthor} - [2021/06/17 Enhanced author information block] + [2021/06/19 Enhanced author information block] %</PJLauthor> % %<*PJLdate> \ProvidesPackage{PJLdate} - [2021/06/17 Convert yyyy-mm-dd to normal datetime format] + [2021/06/19 Convert yyyy-mm-dd to normal datetime format] %</PJLdate> % %<*PJLdraft> \ProvidesPackage{PJLdraft} - [2021/06/17 Some useful macros for the draft stage] + [2021/06/19 Some useful macros for the draft stage] %</PJLdraft> % %<*PJLlang> \ProvidesPackage{PJLlang} - [2021/06/17 Multi-language configuration] + [2021/06/19 Multi-language configuration] %</PJLlang> % %<*PJLlogo> \ProvidesPackage{PJLlogo} - [2021/06/17 The ProjLib logo] + [2021/06/19 The ProjLib logo] %</PJLlogo> % +%<*PJLmath> +\ProvidesPackage{PJLmath} + [2021/06/19 Useful math macros and shortcuts] +%</PJLmath> +% %<*PJLpaper> \ProvidesPackage{PJLpaper} - [2021/06/17 Paper style configuration] + [2021/06/19 Paper style configuration] %</PJLpaper> % %<*PJLthm> \ProvidesPackage{PJLthm} - [2021/06/17 Theorem setup and configuration] + [2021/06/19 Theorem setup and configuration] %</PJLthm> % %<*PJLtoolkit> \ProvidesPackage{PJLtoolkit} - [2021/06/17 Collective interface of ProjLib Toolkit] + [2021/06/19 Collective interface of ProjLib Toolkit] %</PJLtoolkit> % \RequirePackage{kvoptions} @@ -453,8 +458,77 @@ prefix = @PJLlang@ } \DeclareBoolOption[false]{polyglossia} + +\newif\if@PJLlang@enable@all\@PJLlang@enable@alltrue +\newif\if@PJLlang@enable@EN\@PJLlang@enable@ENfalse +\newif\if@PJLlang@enable@FR\@PJLlang@enable@FRfalse +\newif\if@PJLlang@enable@DE\@PJLlang@enable@DEfalse +\newif\if@PJLlang@enable@IT\@PJLlang@enable@ITfalse +\newif\if@PJLlang@enable@PT\@PJLlang@enable@PTfalse +\newif\if@PJLlang@enable@BR\@PJLlang@enable@BRfalse +\newif\if@PJLlang@enable@ES\@PJLlang@enable@ESfalse +\newif\if@PJLlang@enable@CN\@PJLlang@enable@CNfalse +\newif\if@PJLlang@enable@TC\@PJLlang@enable@TCfalse +\newif\if@PJLlang@enable@JP\@PJLlang@enable@JPfalse +\newif\if@PJLlang@enable@RU\@PJLlang@enable@RUfalse +\DeclareVoidOption{EN}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}} +\DeclareVoidOption{english}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}} +\DeclareVoidOption{English}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}} +\DeclareVoidOption{FR}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}} +\DeclareVoidOption{french}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}} +\DeclareVoidOption{French}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}} +\DeclareVoidOption{DE}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}} +\DeclareVoidOption{german}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}} +\DeclareVoidOption{ngerman}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}} +\DeclareVoidOption{German}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}} +\DeclareVoidOption{IT}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}} +\DeclareVoidOption{italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}} +\DeclareVoidOption{Italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}} +\DeclareVoidOption{PT}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}} +\DeclareVoidOption{portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}} +\DeclareVoidOption{Portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}} +\DeclareVoidOption{BR}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}} +\DeclareVoidOption{brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}} +\DeclareVoidOption{Brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}} +\DeclareVoidOption{ES}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}} +\DeclareVoidOption{spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}} +\DeclareVoidOption{Spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}} +\DeclareVoidOption{CN}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}} +\DeclareVoidOption{chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}} +\DeclareVoidOption{Chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}} +\DeclareVoidOption{schinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}} +\DeclareVoidOption{SChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}} +\DeclareVoidOption{simplifiedchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}} +\DeclareVoidOption{SimplifiedChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}} +\DeclareVoidOption{TC}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}} +\DeclareVoidOption{tchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}} +\DeclareVoidOption{TChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}} +\DeclareVoidOption{traditionalchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}} +\DeclareVoidOption{TraditionalChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}} +\DeclareVoidOption{JP}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}} +\DeclareVoidOption{japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}} +\DeclareVoidOption{Japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}} +\DeclareVoidOption{RU}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}} +\DeclareVoidOption{russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}} +\DeclareVoidOption{Russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}} \ProcessKeyvalOptions*\relax +\providecommand{\PJLlang@mainlang}{EN} + +\if@PJLlang@enable@all + \@PJLlang@enable@ENtrue + \@PJLlang@enable@FRtrue + \@PJLlang@enable@DEtrue + \@PJLlang@enable@ITtrue + \@PJLlang@enable@PTtrue + \@PJLlang@enable@BRtrue + \@PJLlang@enable@EStrue + \@PJLlang@enable@CNtrue + \@PJLlang@enable@TCtrue + \@PJLlang@enable@JPtrue + \@PJLlang@enable@RUtrue +\fi + \newcommand\englishABBR{EN} \newcommand\frenchABBR{FR} \newcommand\ngermanABBR{DE} @@ -690,7 +764,19 @@ \endgroup% } -\UseLanguage{English} +\IfStrEqCase{\PJLlang@mainlang}{% + {EN}{\UseLanguage{EN}}% + {FR}{\UseLanguage{FR}}% + {DE}{\UseLanguage{DE}}% + {IT}{\UseLanguage{IT}}% + {PT}{\UseLanguage{PT}}% + {BR}{\UseLanguage{BR}}% + {ES}{\UseLanguage{ES}}% + {CN}{\UseLanguage{CN}}% + {TC}{\UseLanguage{TC}}% + {JP}{\UseLanguage{JP}}% + {RU}{\UseLanguage{RU}}% +} %</PJLlang> % %<*PJLlogo> @@ -742,6 +828,288 @@ \DeclareRobustCommand*{\ProjLibText}{\ProjLib@generic{j}} %</PJLlogo> % +%<*PJLmath> +\RequirePackage{mathtools} +\RequirePackage{mathrsfs} +\@ifpackageloaded{unicode-math}{}{\RequirePackage{amssymb}} + +%%================================ +%% Shorthands +%%================================ +\def\N{\ensuremath{\mathbb{N}}} +\def\Z{\ensuremath{\mathbb{Z}}} +\def\Q{\ensuremath{\mathbb{Q}}} +\def\R{\ensuremath{\mathbb{R}}} +\def\C{\ensuremath{\mathbb{C}}} +\def\F{\ensuremath{\mathbb{F}}} +\def\A{\ensuremath{\mathbb{A}}} + +\def\bb#1{\ensuremath{\mathbb{#1}}} +\def\bbA{\ensuremath{\mathbb{A}}} +\def\bbB{\ensuremath{\mathbb{B}}} +\def\bbC{\ensuremath{\mathbb{C}}} +\def\bbD{\ensuremath{\mathbb{D}}} +\def\bbE{\ensuremath{\mathbb{E}}} +\def\bbF{\ensuremath{\mathbb{F}}} +\def\bbG{\ensuremath{\mathbb{G}}} +\def\bbH{\ensuremath{\mathbb{H}}} +\def\bbI{\ensuremath{\mathbb{I}}} +\def\bbJ{\ensuremath{\mathbb{J}}} +\def\bbK{\ensuremath{\mathbb{K}}} +\def\bbL{\ensuremath{\mathbb{L}}} +\def\bbM{\ensuremath{\mathbb{M}}} +\def\bbN{\ensuremath{\mathbb{N}}} +\def\bbO{\ensuremath{\mathbb{O}}} +\def\bbP{\ensuremath{\mathbb{P}}} +\def\bbQ{\ensuremath{\mathbb{Q}}} +\def\bbR{\ensuremath{\mathbb{R}}} +\def\bbS{\ensuremath{\mathbb{S}}} +\def\bbT{\ensuremath{\mathbb{T}}} +\def\bbU{\ensuremath{\mathbb{U}}} +\def\bbV{\ensuremath{\mathbb{V}}} +\def\bbW{\ensuremath{\mathbb{W}}} +\def\bbX{\ensuremath{\mathbb{X}}} +\def\bbY{\ensuremath{\mathbb{Y}}} +\def\bbZ{\ensuremath{\mathbb{Z}}} + +\def\mc#1{\ensuremath{\mathcal{#1}}} +\def\mcA{\ensuremath{\mathcal{A}}} +\def\mcB{\ensuremath{\mathcal{B}}} +\def\mcC{\ensuremath{\mathcal{C}}} +\def\mcD{\ensuremath{\mathcal{D}}} +\def\mcE{\ensuremath{\mathcal{E}}} +\def\mcF{\ensuremath{\mathcal{F}}} +\def\mcG{\ensuremath{\mathcal{G}}} +\def\mcH{\ensuremath{\mathcal{H}}} +\def\mcI{\ensuremath{\mathcal{I}}} +\def\mcJ{\ensuremath{\mathcal{J}}} +\def\mcK{\ensuremath{\mathcal{K}}} +\def\mcL{\ensuremath{\mathcal{L}}} +\def\mcM{\ensuremath{\mathcal{M}}} +\def\mcN{\ensuremath{\mathcal{N}}} +\def\mcO{\ensuremath{\mathcal{O}}} +\def\mcP{\ensuremath{\mathcal{P}}} +\def\mcQ{\ensuremath{\mathcal{Q}}} +\def\mcR{\ensuremath{\mathcal{R}}} +\def\mcS{\ensuremath{\mathcal{S}}} +\def\mcT{\ensuremath{\mathcal{T}}} +\def\mcU{\ensuremath{\mathcal{U}}} +\def\mcV{\ensuremath{\mathcal{V}}} +\def\mcW{\ensuremath{\mathcal{W}}} +\def\mcX{\ensuremath{\mathcal{X}}} +\def\mcY{\ensuremath{\mathcal{Y}}} +\def\mcZ{\ensuremath{\mathcal{Z}}} + +\def\cal#1{\ensuremath{\mathcal{#1}}} +\def\calA{\ensuremath{\mathcal{A}}} +\def\calB{\ensuremath{\mathcal{B}}} +\def\calC{\ensuremath{\mathcal{C}}} +\def\calD{\ensuremath{\mathcal{D}}} +\def\calE{\ensuremath{\mathcal{E}}} +\def\calF{\ensuremath{\mathcal{F}}} +\def\calG{\ensuremath{\mathcal{G}}} +\def\calH{\ensuremath{\mathcal{H}}} +\def\calI{\ensuremath{\mathcal{I}}} +\def\calJ{\ensuremath{\mathcal{J}}} +\def\calK{\ensuremath{\mathcal{K}}} +\def\calL{\ensuremath{\mathcal{L}}} +\def\calM{\ensuremath{\mathcal{M}}} +\def\calN{\ensuremath{\mathcal{N}}} +\def\calO{\ensuremath{\mathcal{O}}} +\def\calP{\ensuremath{\mathcal{P}}} +\def\calQ{\ensuremath{\mathcal{Q}}} +\def\calR{\ensuremath{\mathcal{R}}} +\def\calS{\ensuremath{\mathcal{S}}} +\def\calT{\ensuremath{\mathcal{T}}} +\def\calU{\ensuremath{\mathcal{U}}} +\def\calV{\ensuremath{\mathcal{V}}} +\def\calW{\ensuremath{\mathcal{W}}} +\def\calX{\ensuremath{\mathcal{X}}} +\def\calY{\ensuremath{\mathcal{Y}}} +\def\calZ{\ensuremath{\mathcal{Z}}} + +\def\mf#1{\ensuremath{\mathfrak{#1}}} +\def\mfa{\ensuremath{\mathfrak{a}}} +\def\mfb{\ensuremath{\mathfrak{b}}} +\def\mfc{\ensuremath{\mathfrak{c}}} +\def\mfd{\ensuremath{\mathfrak{d}}} +\def\mfe{\ensuremath{\mathfrak{e}}} +\def\mff{\ensuremath{\mathfrak{f}}} +\def\mfg{\ensuremath{\mathfrak{g}}} +\def\mfh{\ensuremath{\mathfrak{h}}} +\def\mfi{\ensuremath{\mathfrak{i}}} +\def\mfj{\ensuremath{\mathfrak{j}}} +\def\mfk{\ensuremath{\mathfrak{k}}} +\def\mfl{\ensuremath{\mathfrak{l}}} +\def\mfm{\ensuremath{\mathfrak{m}}} +\def\mfn{\ensuremath{\mathfrak{n}}} +\def\mfo{\ensuremath{\mathfrak{o}}} +\def\mfp{\ensuremath{\mathfrak{p}}} +\def\mfq{\ensuremath{\mathfrak{q}}} +\def\mfr{\ensuremath{\mathfrak{r}}} +\def\mfs{\ensuremath{\mathfrak{s}}} +\def\mft{\ensuremath{\mathfrak{t}}} +\def\mfu{\ensuremath{\mathfrak{u}}} +\def\mfv{\ensuremath{\mathfrak{v}}} +\def\mfw{\ensuremath{\mathfrak{w}}} +\def\mfx{\ensuremath{\mathfrak{x}}} +\def\mfy{\ensuremath{\mathfrak{y}}} +\def\mfz{\ensuremath{\mathfrak{z}}} +\def\mfA{\ensuremath{\mathfrak{A}}} +\def\mfB{\ensuremath{\mathfrak{B}}} +\def\mfC{\ensuremath{\mathfrak{C}}} +\def\mfD{\ensuremath{\mathfrak{D}}} +\def\mfE{\ensuremath{\mathfrak{E}}} +\def\mfF{\ensuremath{\mathfrak{F}}} +\def\mfG{\ensuremath{\mathfrak{G}}} +\def\mfH{\ensuremath{\mathfrak{H}}} +\def\mfI{\ensuremath{\mathfrak{I}}} +\def\mfJ{\ensuremath{\mathfrak{J}}} +\def\mfK{\ensuremath{\mathfrak{K}}} +\def\mfL{\ensuremath{\mathfrak{L}}} +\def\mfM{\ensuremath{\mathfrak{M}}} +\def\mfN{\ensuremath{\mathfrak{N}}} +\def\mfO{\ensuremath{\mathfrak{O}}} +\def\mfP{\ensuremath{\mathfrak{P}}} +\def\mfQ{\ensuremath{\mathfrak{Q}}} +\def\mfR{\ensuremath{\mathfrak{R}}} +\def\mfS{\ensuremath{\mathfrak{S}}} +\def\mfT{\ensuremath{\mathfrak{T}}} +\def\mfU{\ensuremath{\mathfrak{U}}} +\def\mfV{\ensuremath{\mathfrak{V}}} +\def\mfW{\ensuremath{\mathfrak{W}}} +\def\mfX{\ensuremath{\mathfrak{X}}} +\def\mfY{\ensuremath{\mathfrak{Y}}} +\def\mfZ{\ensuremath{\mathfrak{Z}}} + +\def\frak#1{\ensuremath{\mathfrak{#1}}} +\def\fraka{\ensuremath{\mathfrak{a}}} +\def\frakb{\ensuremath{\mathfrak{b}}} +\def\frakc{\ensuremath{\mathfrak{c}}} +\def\frakd{\ensuremath{\mathfrak{d}}} +\def\frake{\ensuremath{\mathfrak{e}}} +\def\frakf{\ensuremath{\mathfrak{f}}} +\def\frakg{\ensuremath{\mathfrak{g}}} +\def\frakh{\ensuremath{\mathfrak{h}}} +\def\fraki{\ensuremath{\mathfrak{i}}} +\def\frakj{\ensuremath{\mathfrak{j}}} +\def\frakk{\ensuremath{\mathfrak{k}}} +\def\frakl{\ensuremath{\mathfrak{l}}} +\def\frakm{\ensuremath{\mathfrak{m}}} +\def\frakn{\ensuremath{\mathfrak{n}}} +\def\frako{\ensuremath{\mathfrak{o}}} +\def\frakp{\ensuremath{\mathfrak{p}}} +\def\frakq{\ensuremath{\mathfrak{q}}} +\def\frakr{\ensuremath{\mathfrak{r}}} +\def\fraks{\ensuremath{\mathfrak{s}}} +\def\frakt{\ensuremath{\mathfrak{t}}} +\def\fraku{\ensuremath{\mathfrak{u}}} +\def\frakv{\ensuremath{\mathfrak{v}}} +\def\frakw{\ensuremath{\mathfrak{w}}} +\def\frakx{\ensuremath{\mathfrak{x}}} +\def\fraky{\ensuremath{\mathfrak{y}}} +\def\frakz{\ensuremath{\mathfrak{z}}} +\def\frakA{\ensuremath{\mathfrak{A}}} +\def\frakB{\ensuremath{\mathfrak{B}}} +\def\frakC{\ensuremath{\mathfrak{C}}} +\def\frakD{\ensuremath{\mathfrak{D}}} +\def\frakE{\ensuremath{\mathfrak{E}}} +\def\frakF{\ensuremath{\mathfrak{F}}} +\def\frakG{\ensuremath{\mathfrak{G}}} +\def\frakH{\ensuremath{\mathfrak{H}}} +\def\frakI{\ensuremath{\mathfrak{I}}} +\def\frakJ{\ensuremath{\mathfrak{J}}} +\def\frakK{\ensuremath{\mathfrak{K}}} +\def\frakL{\ensuremath{\mathfrak{L}}} +\def\frakM{\ensuremath{\mathfrak{M}}} +\def\frakN{\ensuremath{\mathfrak{N}}} +\def\frakO{\ensuremath{\mathfrak{O}}} +\def\frakP{\ensuremath{\mathfrak{P}}} +\def\frakQ{\ensuremath{\mathfrak{Q}}} +\def\frakR{\ensuremath{\mathfrak{R}}} +\def\frakS{\ensuremath{\mathfrak{S}}} +\def\frakT{\ensuremath{\mathfrak{T}}} +\def\frakU{\ensuremath{\mathfrak{U}}} +\def\frakV{\ensuremath{\mathfrak{V}}} +\def\frakW{\ensuremath{\mathfrak{W}}} +\def\frakX{\ensuremath{\mathfrak{X}}} +\def\frakY{\ensuremath{\mathfrak{Y}}} +\def\frakZ{\ensuremath{\mathfrak{Z}}} + +\def\ms#1{\ensuremath{\mathscr{#1}}} +\def\msA{\ensuremath{\mathscr{A}}} +\def\msB{\ensuremath{\mathscr{B}}} +\def\msC{\ensuremath{\mathscr{C}}} +\def\msD{\ensuremath{\mathscr{D}}} +\def\msE{\ensuremath{\mathscr{E}}} +\def\msF{\ensuremath{\mathscr{F}}} +\def\msG{\ensuremath{\mathscr{G}}} +\def\msH{\ensuremath{\mathscr{H}}} +\def\msI{\ensuremath{\mathscr{I}}} +\def\msJ{\ensuremath{\mathscr{J}}} +\def\msK{\ensuremath{\mathscr{K}}} +\def\msL{\ensuremath{\mathscr{L}}} +\def\msM{\ensuremath{\mathscr{M}}} +\def\msN{\ensuremath{\mathscr{N}}} +\def\msO{\ensuremath{\mathscr{O}}} +\def\msP{\ensuremath{\mathscr{P}}} +\def\msQ{\ensuremath{\mathscr{Q}}} +\def\msR{\ensuremath{\mathscr{R}}} +\def\msS{\ensuremath{\mathscr{S}}} +\def\msT{\ensuremath{\mathscr{T}}} +\def\msU{\ensuremath{\mathscr{U}}} +\def\msV{\ensuremath{\mathscr{V}}} +\def\msW{\ensuremath{\mathscr{W}}} +\def\msX{\ensuremath{\mathscr{X}}} +\def\msY{\ensuremath{\mathscr{Y}}} +\def\msZ{\ensuremath{\mathscr{Z}}} + +\def\scr#1{\ensuremath{\mathscr{#1}}} +\def\scrA{\ensuremath{\mathscr{A}}} +\def\scrB{\ensuremath{\mathscr{B}}} +\def\scrC{\ensuremath{\mathscr{C}}} +\def\scrD{\ensuremath{\mathscr{D}}} +\def\scrE{\ensuremath{\mathscr{E}}} +\def\scrF{\ensuremath{\mathscr{F}}} +\def\scrG{\ensuremath{\mathscr{G}}} +\def\scrH{\ensuremath{\mathscr{H}}} +\def\scrI{\ensuremath{\mathscr{I}}} +\def\scrJ{\ensuremath{\mathscr{J}}} +\def\scrK{\ensuremath{\mathscr{K}}} +\def\scrL{\ensuremath{\mathscr{L}}} +\def\scrM{\ensuremath{\mathscr{M}}} +\def\scrN{\ensuremath{\mathscr{N}}} +\def\scrO{\ensuremath{\mathscr{O}}} +\def\scrP{\ensuremath{\mathscr{P}}} +\def\scrQ{\ensuremath{\mathscr{Q}}} +\def\scrR{\ensuremath{\mathscr{R}}} +\def\scrS{\ensuremath{\mathscr{S}}} +\def\scrT{\ensuremath{\mathscr{T}}} +\def\scrU{\ensuremath{\mathscr{U}}} +\def\scrV{\ensuremath{\mathscr{V}}} +\def\scrW{\ensuremath{\mathscr{W}}} +\def\scrX{\ensuremath{\mathscr{X}}} +\def\scrY{\ensuremath{\mathscr{Y}}} +\def\scrZ{\ensuremath{\mathscr{Z}}} + +%%================================ +%% Symbols for number theory +%%================================ +\ifdefined\@@pmod\else +\let\@@pmod\pmod +\DeclareRobustCommand{\pmod}{\@ifstar\@pmods\@@pmod} +\def\@pmods#1{\mkern4mu({\operator@font mod}\mkern 6mu#1)} +\fi + +\newcommand{\genlegendre}[4]{% + \genfrac{(}{)}{}{#1}{#3}{#4}% + \if\relax\detokenize{#2}\relax\else_{\!#2}\fi% +} +\newcommand{\legendre}[3][]{\genlegendre{}{#1}{#2}{#3}} +\newcommand{\dlegendre}[3][]{\genlegendre{0}{#1}{#2}{#3}} +\newcommand{\tlegendre}[3][]{\genlegendre{1}{#1}{#2}{#3}} +%</PJLmath> +% %<*PJLpaper> \RequirePackage{ifthen} @@ -822,6 +1190,7 @@ prefix = @PJLthm@ } \DeclareBoolOption[false]{nothms} +\DeclareBoolOption[false]{nothmnum} \DeclareBoolOption[false]{draft} \DeclareBoolOption[false]{fast} \DeclareBoolOption[false]{regionalref} @@ -1034,17 +1403,17 @@ % \newtheorem*{#2TC#3}{\csname#2nameTC\endcsname}% % \newtheorem*{#2JP#3}{\csname#2nameJP\endcsname}% % \newtheorem*{#2RU#3}{\csname#2nameRU\endcsname}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameEN\endcsname}{\newtheorem*{#2EN#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameFR\endcsname}{\newtheorem*{#2FR#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameDE\endcsname}{\newtheorem*{#2DE#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameIT\endcsname}{\newtheorem*{#2IT#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2namePT\endcsname}{\newtheorem*{#2PT#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameBR\endcsname}{\newtheorem*{#2BR#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameES\endcsname}{\newtheorem*{#2ES#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameCN\endcsname}{\newtheorem*{#2CN#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameTC\endcsname}{\newtheorem*{#2TC#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameJP\endcsname}{\newtheorem*{#2JP#3}}% - \expandafter\PassFirstToSecond\expandafter{\csname#2nameRU\endcsname}{\newtheorem*{#2RU#3}}% + \if@PJLlang@enable@EN\expandafter\PassFirstToSecond\expandafter{\csname#2nameEN\endcsname}{\newtheorem*{#2EN#3}}\fi% + \if@PJLlang@enable@FR\expandafter\PassFirstToSecond\expandafter{\csname#2nameFR\endcsname}{\newtheorem*{#2FR#3}}\fi% + \if@PJLlang@enable@DE\expandafter\PassFirstToSecond\expandafter{\csname#2nameDE\endcsname}{\newtheorem*{#2DE#3}}\fi% + \if@PJLlang@enable@IT\expandafter\PassFirstToSecond\expandafter{\csname#2nameIT\endcsname}{\newtheorem*{#2IT#3}}\fi% + \if@PJLlang@enable@PT\expandafter\PassFirstToSecond\expandafter{\csname#2namePT\endcsname}{\newtheorem*{#2PT#3}}\fi% + \if@PJLlang@enable@BR\expandafter\PassFirstToSecond\expandafter{\csname#2nameBR\endcsname}{\newtheorem*{#2BR#3}}\fi% + \if@PJLlang@enable@ES\expandafter\PassFirstToSecond\expandafter{\csname#2nameES\endcsname}{\newtheorem*{#2ES#3}}\fi% + \if@PJLlang@enable@CN\expandafter\PassFirstToSecond\expandafter{\csname#2nameCN\endcsname}{\newtheorem*{#2CN#3}}\fi% + \if@PJLlang@enable@TC\expandafter\PassFirstToSecond\expandafter{\csname#2nameTC\endcsname}{\newtheorem*{#2TC#3}}\fi% + \if@PJLlang@enable@JP\expandafter\PassFirstToSecond\expandafter{\csname#2nameJP\endcsname}{\newtheorem*{#2JP#3}}\fi% + \if@PJLlang@enable@RU\expandafter\PassFirstToSecond\expandafter{\csname#2nameRU\endcsname}{\newtheorem*{#2RU#3}}\fi% }{% \IfValueTF{#5}{% \newcounter{#2#3}[{#5}]% @@ -1057,17 +1426,17 @@ {\newcounter{#2#3}}% }% %--------------------------------------------------------------- - \CreateTheoremNumberedLikeAliasCounter{#2}{EN}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{FR}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{DE}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{IT}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{PT}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{BR}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{ES}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{CN}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{TC}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{JP}{#3}% - \CreateTheoremNumberedLikeAliasCounter{#2}{RU}{#3}% + \if@PJLlang@enable@EN\CreateTheoremNumberedLikeAliasCounter{#2}{EN}{#3}\fi% + \if@PJLlang@enable@FR\CreateTheoremNumberedLikeAliasCounter{#2}{FR}{#3}\fi% + \if@PJLlang@enable@DE\CreateTheoremNumberedLikeAliasCounter{#2}{DE}{#3}\fi% + \if@PJLlang@enable@IT\CreateTheoremNumberedLikeAliasCounter{#2}{IT}{#3}\fi% + \if@PJLlang@enable@PT\CreateTheoremNumberedLikeAliasCounter{#2}{PT}{#3}\fi% + \if@PJLlang@enable@BR\CreateTheoremNumberedLikeAliasCounter{#2}{BR}{#3}\fi% + \if@PJLlang@enable@ES\CreateTheoremNumberedLikeAliasCounter{#2}{ES}{#3}\fi% + \if@PJLlang@enable@CN\CreateTheoremNumberedLikeAliasCounter{#2}{CN}{#3}\fi% + \if@PJLlang@enable@TC\CreateTheoremNumberedLikeAliasCounter{#2}{TC}{#3}\fi% + \if@PJLlang@enable@JP\CreateTheoremNumberedLikeAliasCounter{#2}{JP}{#3}\fi% + \if@PJLlang@enable@RU\CreateTheoremNumberedLikeAliasCounter{#2}{RU}{#3}\fi% %--------------------------------------------------------------- }% \NewDocumentEnvironment{#2#3}{} @@ -1361,6 +1730,17 @@ \newaliascnt{PJLthm@highest}{section} } \if@PJLthm@nothms\else +\if@PJLthm@nothmnum +\CreateTheorem*{theorem} +\CreateTheorem*{lemma} +\CreateTheorem*{proposition} +\CreateTheorem*{corollary} +\CreateTheorem*{definition-proposition} +\CreateTheorem*{definition-theorem} +\CreateTheorem*{property} +\CreateTheorem*{fact} +\CreateTheorem*{conjecture} +\else \CreateTheorem{theorem}<PJLthm@highest> \CreateTheorem{lemma}[theorem] \CreateTheorem{proposition}[theorem] @@ -1370,6 +1750,7 @@ \CreateTheorem{property}[theorem] \CreateTheorem{fact}[theorem] \CreateTheorem{conjecture}[theorem] +\fi \CreateTheorem*{theorem*} \CreateTheorem*{lemma*} \CreateTheorem*{proposition*} @@ -1381,6 +1762,18 @@ \CreateTheorem*{conjecture*} \theoremstyle{definition} +\if@PJLthm@nothmnum +\CreateTheorem*{definition} +\CreateTheorem*{axiom} +\CreateTheorem*{assumption} +\CreateTheorem*{convention} +\CreateTheorem*{hypothesis} +\CreateTheorem*{notation} +\CreateTheorem*{example} +\CreateTheorem*{problem} +\CreateTheorem*{question} +\CreateTheorem*{exercise} +\else \CreateTheorem{definition}[theorem] \CreateTheorem{axiom}[theorem] \CreateTheorem{assumption}[theorem] @@ -1391,6 +1784,7 @@ \CreateTheorem{problem}[theorem] \CreateTheorem{question}[theorem] \CreateTheorem{exercise}[theorem] +\fi \CreateTheorem*{definition*} \CreateTheorem*{axiom*} \CreateTheorem*{assumption*} @@ -1403,9 +1797,14 @@ \CreateTheorem*{exercise*} \theoremstyle{remark} +\if@PJLthm@nothmnum +\CreateTheorem*{remark} +\CreateTheorem*{observation} +\else \CreateTheorem{remark}<PJLthm@highest> -\CreateTheorem*{remark*} \CreateTheorem{observation}<PJLthm@highest> +\fi +\CreateTheorem*{remark*} \CreateTheorem*{observation*} \fi @@ -1509,6 +1908,7 @@ \DeclareBoolOption[false]{author} \DeclareBoolOption[false]{amssim} \DeclareBoolOption[false]{nothms} +\DeclareBoolOption[false]{nothmnum} \DeclareBoolOption[false]{regionalref} \DeclareBoolOption[false]{useosf} \DeclareBoolOption[false]{palatino} @@ -1528,6 +1928,9 @@ \if@PJLtoolkit@nothms \PassOptionsToPackage{nothms}{PJLthm} \fi +\if@PJLtoolkit@nothmnum + \PassOptionsToPackage{nothmnum}{PJLthm} +\fi \if@PJLtoolkit@regionalref \PassOptionsToPackage{regionalref}{PJLthm} \fi @@ -1541,6 +1944,7 @@ \RequirePackage{PJLdate} \RequirePackage{PJLdraft} \RequirePackage{PJLlogo} +\RequirePackage{PJLmath} \RequirePackage{PJLpaper} \RequirePackage{PJLthm} @@ -1550,14 +1954,14 @@ % \RequirePackage{inputenc} % \fi % -\RequirePackage{mathtools} +% \RequirePackage{mathtools} % \PJL@font@alreadyset should contain the current font name % A message can then be shown as: Font "(font name)" has been set \ifdefined\PJL@font@alreadyset\else \if@PJLtoolkit@palatino - \RequirePackage{amssymb} + % \RequirePackage{amssymb} \RequirePackage{mathpazo} \PassOptionsToPackage{defaultsups}{newpxtext} \RequirePackage{newpxtext} @@ -1568,7 +1972,7 @@ \fi \if@PJLtoolkit@times - \RequirePackage{amssymb} + % \RequirePackage{amssymb} \PassOptionsToPackage{defaultsups}{newtxtext} \RequirePackage{newtxtext} \RequirePackage{newtxmath} @@ -1578,7 +1982,7 @@ \fi \if@PJLtoolkit@garamond - \RequirePackage{amssymb} + % \RequirePackage{amssymb} \if@PJLtoolkit@useosf\else \PassOptionsToPackage{lining}{ebgaramond} \fi @@ -1589,7 +1993,7 @@ \fi \if@PJLtoolkit@biolinum - \RequirePackage{amssymb} + % \RequirePackage{amssymb} % \RequirePackage{mathpazo} % \RequirePackage[sansmath]{libertinust1math} \ifPDFTeX |