summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/projlib/ProjLib.dtx')
-rw-r--r--Master/texmf-dist/source/latex/projlib/ProjLib.dtx592
1 files changed, 324 insertions, 268 deletions
diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx b/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
index 59be20a95ba..583e08f3cbc 100644
--- a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
+++ b/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
@@ -18,47 +18,47 @@
%
%<*ProjLib>
\ProvidesPackage{ProjLib}
- [2021/07/27 The collective interface of ProjLib toolkit]
+ [2021/07/30 The collective interface of ProjLib toolkit]
%</ProjLib>
%
%<*PJLauthor>
\ProvidesPackage{PJLauthor}
- [2021/07/27 Enhanced author information block]
+ [2021/07/30 Enhanced author information block]
%</PJLauthor>
%
%<*PJLdate>
\ProvidesPackage{PJLdate}
- [2021/07/27 Convert yyyy-mm-dd to normal datetime format]
+ [2021/07/30 Convert yyyy-mm-dd to normal datetime format]
%</PJLdate>
%
%<*PJLdraft>
\ProvidesPackage{PJLdraft}
- [2021/07/27 Some useful macros for the draft stage]
+ [2021/07/30 Some useful macros for the draft stage]
%</PJLdraft>
%
%<*PJLlang>
\ProvidesPackage{PJLlang}
- [2021/07/27 Multi-language configuration]
+ [2021/07/30 Multi-language configuration]
%</PJLlang>
%
%<*PJLlogo>
\ProvidesPackage{PJLlogo}
- [2021/07/27 The ProjLib logo]
+ [2021/07/30 The ProjLib logo]
%</PJLlogo>
%
%<*PJLmath>
\ProvidesPackage{PJLmath}
- [2021/07/27 Useful math macros and shortcuts]
+ [2021/07/30 Useful math macros and shortcuts]
%</PJLmath>
%
%<*PJLpaper>
\ProvidesPackage{PJLpaper}
- [2021/07/27 Paper style configuration]
+ [2021/07/30 Paper style configuration]
%</PJLpaper>
%
%<*PJLthm>
\ProvidesPackage{PJLthm}
- [2021/07/27 Theorem setup and configuration]
+ [2021/07/30 Theorem setup and configuration]
%</PJLthm>
%
%# 下面两行引入宏包的代码是所有文件共用的。
@@ -1005,269 +1005,269 @@
%%================================
%# 常见代数结构的捷径
%# Shortcuts for commonly used algebraic structures
-\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}}}
+\providecommand{\N}{\ensuremath{\mathbb{N}}}
+\providecommand{\Z}{\ensuremath{\mathbb{Z}}}
+\providecommand{\Q}{\ensuremath{\mathbb{Q}}}
+\providecommand{\R}{\ensuremath{\mathbb{R}}}
+\providecommand{\C}{\ensuremath{\mathbb{C}}}
+\providecommand{\F}{\ensuremath{\mathbb{F}}}
+\providecommand{\A}{\ensuremath{\mathbb{A}}}
%# mathbb 的捷径
%# Shortcuts for blackboard bold face
-\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}}}
+\providecommand{\bb}[1]{\ensuremath{\mathbb{#1}}}
+\providecommand{\bbA}{\ensuremath{\mathbb{A}}}
+\providecommand{\bbB}{\ensuremath{\mathbb{B}}}
+\providecommand{\bbC}{\ensuremath{\mathbb{C}}}
+\providecommand{\bbD}{\ensuremath{\mathbb{D}}}
+\providecommand{\bbE}{\ensuremath{\mathbb{E}}}
+\providecommand{\bbF}{\ensuremath{\mathbb{F}}}
+\providecommand{\bbG}{\ensuremath{\mathbb{G}}}
+\providecommand{\bbH}{\ensuremath{\mathbb{H}}}
+\providecommand{\bbI}{\ensuremath{\mathbb{I}}}
+\providecommand{\bbJ}{\ensuremath{\mathbb{J}}}
+\providecommand{\bbK}{\ensuremath{\mathbb{K}}}
+\providecommand{\bbL}{\ensuremath{\mathbb{L}}}
+\providecommand{\bbM}{\ensuremath{\mathbb{M}}}
+\providecommand{\bbN}{\ensuremath{\mathbb{N}}}
+\providecommand{\bbO}{\ensuremath{\mathbb{O}}}
+\providecommand{\bbP}{\ensuremath{\mathbb{P}}}
+\providecommand{\bbQ}{\ensuremath{\mathbb{Q}}}
+\providecommand{\bbR}{\ensuremath{\mathbb{R}}}
+\providecommand{\bbS}{\ensuremath{\mathbb{S}}}
+\providecommand{\bbT}{\ensuremath{\mathbb{T}}}
+\providecommand{\bbU}{\ensuremath{\mathbb{U}}}
+\providecommand{\bbV}{\ensuremath{\mathbb{V}}}
+\providecommand{\bbW}{\ensuremath{\mathbb{W}}}
+\providecommand{\bbX}{\ensuremath{\mathbb{X}}}
+\providecommand{\bbY}{\ensuremath{\mathbb{Y}}}
+\providecommand{\bbZ}{\ensuremath{\mathbb{Z}}}
%# mathcal 的捷径
%# Shortcuts for calligraphic shape
-\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}}}
+\providecommand{\mc}[1]{\ensuremath{\mathcal{#1}}}
+\providecommand{\mcA}{\ensuremath{\mathcal{A}}}
+\providecommand{\mcB}{\ensuremath{\mathcal{B}}}
+\providecommand{\mcC}{\ensuremath{\mathcal{C}}}
+\providecommand{\mcD}{\ensuremath{\mathcal{D}}}
+\providecommand{\mcE}{\ensuremath{\mathcal{E}}}
+\providecommand{\mcF}{\ensuremath{\mathcal{F}}}
+\providecommand{\mcG}{\ensuremath{\mathcal{G}}}
+\providecommand{\mcH}{\ensuremath{\mathcal{H}}}
+\providecommand{\mcI}{\ensuremath{\mathcal{I}}}
+\providecommand{\mcJ}{\ensuremath{\mathcal{J}}}
+\providecommand{\mcK}{\ensuremath{\mathcal{K}}}
+\providecommand{\mcL}{\ensuremath{\mathcal{L}}}
+\providecommand{\mcM}{\ensuremath{\mathcal{M}}}
+\providecommand{\mcN}{\ensuremath{\mathcal{N}}}
+\providecommand{\mcO}{\ensuremath{\mathcal{O}}}
+\providecommand{\mcP}{\ensuremath{\mathcal{P}}}
+\providecommand{\mcQ}{\ensuremath{\mathcal{Q}}}
+\providecommand{\mcR}{\ensuremath{\mathcal{R}}}
+\providecommand{\mcS}{\ensuremath{\mathcal{S}}}
+\providecommand{\mcT}{\ensuremath{\mathcal{T}}}
+\providecommand{\mcU}{\ensuremath{\mathcal{U}}}
+\providecommand{\mcV}{\ensuremath{\mathcal{V}}}
+\providecommand{\mcW}{\ensuremath{\mathcal{W}}}
+\providecommand{\mcX}{\ensuremath{\mathcal{X}}}
+\providecommand{\mcY}{\ensuremath{\mathcal{Y}}}
+\providecommand{\mcZ}{\ensuremath{\mathcal{Z}}}
+
+\providecommand{\cal}[1]{\ensuremath{\mathcal{#1}}}
+\providecommand{\calA}{\ensuremath{\mathcal{A}}}
+\providecommand{\calB}{\ensuremath{\mathcal{B}}}
+\providecommand{\calC}{\ensuremath{\mathcal{C}}}
+\providecommand{\calD}{\ensuremath{\mathcal{D}}}
+\providecommand{\calE}{\ensuremath{\mathcal{E}}}
+\providecommand{\calF}{\ensuremath{\mathcal{F}}}
+\providecommand{\calG}{\ensuremath{\mathcal{G}}}
+\providecommand{\calH}{\ensuremath{\mathcal{H}}}
+\providecommand{\calI}{\ensuremath{\mathcal{I}}}
+\providecommand{\calJ}{\ensuremath{\mathcal{J}}}
+\providecommand{\calK}{\ensuremath{\mathcal{K}}}
+\providecommand{\calL}{\ensuremath{\mathcal{L}}}
+\providecommand{\calM}{\ensuremath{\mathcal{M}}}
+\providecommand{\calN}{\ensuremath{\mathcal{N}}}
+\providecommand{\calO}{\ensuremath{\mathcal{O}}}
+\providecommand{\calP}{\ensuremath{\mathcal{P}}}
+\providecommand{\calQ}{\ensuremath{\mathcal{Q}}}
+\providecommand{\calR}{\ensuremath{\mathcal{R}}}
+\providecommand{\calS}{\ensuremath{\mathcal{S}}}
+\providecommand{\calT}{\ensuremath{\mathcal{T}}}
+\providecommand{\calU}{\ensuremath{\mathcal{U}}}
+\providecommand{\calV}{\ensuremath{\mathcal{V}}}
+\providecommand{\calW}{\ensuremath{\mathcal{W}}}
+\providecommand{\calX}{\ensuremath{\mathcal{X}}}
+\providecommand{\calY}{\ensuremath{\mathcal{Y}}}
+\providecommand{\calZ}{\ensuremath{\mathcal{Z}}}
%# mathfrak 的捷径
%# Shortcuts for Fraktur shape
-\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}}}
+\providecommand{\mf}[1]{\ensuremath{\mathfrak{#1}}}
+\providecommand{\mfa}{\ensuremath{\mathfrak{a}}}
+\providecommand{\mfb}{\ensuremath{\mathfrak{b}}}
+\providecommand{\mfc}{\ensuremath{\mathfrak{c}}}
+\providecommand{\mfd}{\ensuremath{\mathfrak{d}}}
+\providecommand{\mfe}{\ensuremath{\mathfrak{e}}}
+\providecommand{\mff}{\ensuremath{\mathfrak{f}}}
+\providecommand{\mfg}{\ensuremath{\mathfrak{g}}}
+\providecommand{\mfh}{\ensuremath{\mathfrak{h}}}
+\providecommand{\mfi}{\ensuremath{\mathfrak{i}}}
+\providecommand{\mfj}{\ensuremath{\mathfrak{j}}}
+\providecommand{\mfk}{\ensuremath{\mathfrak{k}}}
+\providecommand{\mfl}{\ensuremath{\mathfrak{l}}}
+\providecommand{\mfm}{\ensuremath{\mathfrak{m}}}
+\providecommand{\mfn}{\ensuremath{\mathfrak{n}}}
+\providecommand{\mfo}{\ensuremath{\mathfrak{o}}}
+\providecommand{\mfp}{\ensuremath{\mathfrak{p}}}
+\providecommand{\mfq}{\ensuremath{\mathfrak{q}}}
+\providecommand{\mfr}{\ensuremath{\mathfrak{r}}}
+\providecommand{\mfs}{\ensuremath{\mathfrak{s}}}
+\providecommand{\mft}{\ensuremath{\mathfrak{t}}}
+\providecommand{\mfu}{\ensuremath{\mathfrak{u}}}
+\providecommand{\mfv}{\ensuremath{\mathfrak{v}}}
+\providecommand{\mfw}{\ensuremath{\mathfrak{w}}}
+\providecommand{\mfx}{\ensuremath{\mathfrak{x}}}
+\providecommand{\mfy}{\ensuremath{\mathfrak{y}}}
+\providecommand{\mfz}{\ensuremath{\mathfrak{z}}}
+\providecommand{\mfA}{\ensuremath{\mathfrak{A}}}
+\providecommand{\mfB}{\ensuremath{\mathfrak{B}}}
+\providecommand{\mfC}{\ensuremath{\mathfrak{C}}}
+\providecommand{\mfD}{\ensuremath{\mathfrak{D}}}
+\providecommand{\mfE}{\ensuremath{\mathfrak{E}}}
+\providecommand{\mfF}{\ensuremath{\mathfrak{F}}}
+\providecommand{\mfG}{\ensuremath{\mathfrak{G}}}
+\providecommand{\mfH}{\ensuremath{\mathfrak{H}}}
+\providecommand{\mfI}{\ensuremath{\mathfrak{I}}}
+\providecommand{\mfJ}{\ensuremath{\mathfrak{J}}}
+\providecommand{\mfK}{\ensuremath{\mathfrak{K}}}
+\providecommand{\mfL}{\ensuremath{\mathfrak{L}}}
+\providecommand{\mfM}{\ensuremath{\mathfrak{M}}}
+\providecommand{\mfN}{\ensuremath{\mathfrak{N}}}
+\providecommand{\mfO}{\ensuremath{\mathfrak{O}}}
+\providecommand{\mfP}{\ensuremath{\mathfrak{P}}}
+\providecommand{\mfQ}{\ensuremath{\mathfrak{Q}}}
+\providecommand{\mfR}{\ensuremath{\mathfrak{R}}}
+\providecommand{\mfS}{\ensuremath{\mathfrak{S}}}
+\providecommand{\mfT}{\ensuremath{\mathfrak{T}}}
+\providecommand{\mfU}{\ensuremath{\mathfrak{U}}}
+\providecommand{\mfV}{\ensuremath{\mathfrak{V}}}
+\providecommand{\mfW}{\ensuremath{\mathfrak{W}}}
+\providecommand{\mfX}{\ensuremath{\mathfrak{X}}}
+\providecommand{\mfY}{\ensuremath{\mathfrak{Y}}}
+\providecommand{\mfZ}{\ensuremath{\mathfrak{Z}}}
+
+\providecommand{\frak}[1]{\ensuremath{\mathfrak{#1}}}
+\providecommand{\fraka}{\ensuremath{\mathfrak{a}}}
+\providecommand{\frakb}{\ensuremath{\mathfrak{b}}}
+\providecommand{\frakc}{\ensuremath{\mathfrak{c}}}
+\providecommand{\frakd}{\ensuremath{\mathfrak{d}}}
+\providecommand{\frake}{\ensuremath{\mathfrak{e}}}
+\providecommand{\frakf}{\ensuremath{\mathfrak{f}}}
+\providecommand{\frakg}{\ensuremath{\mathfrak{g}}}
+\providecommand{\frakh}{\ensuremath{\mathfrak{h}}}
+\providecommand{\fraki}{\ensuremath{\mathfrak{i}}}
+\providecommand{\frakj}{\ensuremath{\mathfrak{j}}}
+\providecommand{\frakk}{\ensuremath{\mathfrak{k}}}
+\providecommand{\frakl}{\ensuremath{\mathfrak{l}}}
+\providecommand{\frakm}{\ensuremath{\mathfrak{m}}}
+\providecommand{\frakn}{\ensuremath{\mathfrak{n}}}
+\providecommand{\frako}{\ensuremath{\mathfrak{o}}}
+\providecommand{\frakp}{\ensuremath{\mathfrak{p}}}
+\providecommand{\frakq}{\ensuremath{\mathfrak{q}}}
+\providecommand{\frakr}{\ensuremath{\mathfrak{r}}}
+\providecommand{\fraks}{\ensuremath{\mathfrak{s}}}
+\providecommand{\frakt}{\ensuremath{\mathfrak{t}}}
+\providecommand{\fraku}{\ensuremath{\mathfrak{u}}}
+\providecommand{\frakv}{\ensuremath{\mathfrak{v}}}
+\providecommand{\frakw}{\ensuremath{\mathfrak{w}}}
+\providecommand{\frakx}{\ensuremath{\mathfrak{x}}}
+\providecommand{\fraky}{\ensuremath{\mathfrak{y}}}
+\providecommand{\frakz}{\ensuremath{\mathfrak{z}}}
+\providecommand{\frakA}{\ensuremath{\mathfrak{A}}}
+\providecommand{\frakB}{\ensuremath{\mathfrak{B}}}
+\providecommand{\frakC}{\ensuremath{\mathfrak{C}}}
+\providecommand{\frakD}{\ensuremath{\mathfrak{D}}}
+\providecommand{\frakE}{\ensuremath{\mathfrak{E}}}
+\providecommand{\frakF}{\ensuremath{\mathfrak{F}}}
+\providecommand{\frakG}{\ensuremath{\mathfrak{G}}}
+\providecommand{\frakH}{\ensuremath{\mathfrak{H}}}
+\providecommand{\frakI}{\ensuremath{\mathfrak{I}}}
+\providecommand{\frakJ}{\ensuremath{\mathfrak{J}}}
+\providecommand{\frakK}{\ensuremath{\mathfrak{K}}}
+\providecommand{\frakL}{\ensuremath{\mathfrak{L}}}
+\providecommand{\frakM}{\ensuremath{\mathfrak{M}}}
+\providecommand{\frakN}{\ensuremath{\mathfrak{N}}}
+\providecommand{\frakO}{\ensuremath{\mathfrak{O}}}
+\providecommand{\frakP}{\ensuremath{\mathfrak{P}}}
+\providecommand{\frakQ}{\ensuremath{\mathfrak{Q}}}
+\providecommand{\frakR}{\ensuremath{\mathfrak{R}}}
+\providecommand{\frakS}{\ensuremath{\mathfrak{S}}}
+\providecommand{\frakT}{\ensuremath{\mathfrak{T}}}
+\providecommand{\frakU}{\ensuremath{\mathfrak{U}}}
+\providecommand{\frakV}{\ensuremath{\mathfrak{V}}}
+\providecommand{\frakW}{\ensuremath{\mathfrak{W}}}
+\providecommand{\frakX}{\ensuremath{\mathfrak{X}}}
+\providecommand{\frakY}{\ensuremath{\mathfrak{Y}}}
+\providecommand{\frakZ}{\ensuremath{\mathfrak{Z}}}
%# mathscr 的捷径
%# Shortcuts for script shape
-\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}}}
+\providecommand{\ms}[1]{\ensuremath{\mathscr{#1}}}
+\providecommand{\msA}{\ensuremath{\mathscr{A}}}
+\providecommand{\msB}{\ensuremath{\mathscr{B}}}
+\providecommand{\msC}{\ensuremath{\mathscr{C}}}
+\providecommand{\msD}{\ensuremath{\mathscr{D}}}
+\providecommand{\msE}{\ensuremath{\mathscr{E}}}
+\providecommand{\msF}{\ensuremath{\mathscr{F}}}
+\providecommand{\msG}{\ensuremath{\mathscr{G}}}
+\providecommand{\msH}{\ensuremath{\mathscr{H}}}
+\providecommand{\msI}{\ensuremath{\mathscr{I}}}
+\providecommand{\msJ}{\ensuremath{\mathscr{J}}}
+\providecommand{\msK}{\ensuremath{\mathscr{K}}}
+\providecommand{\msL}{\ensuremath{\mathscr{L}}}
+\providecommand{\msM}{\ensuremath{\mathscr{M}}}
+\providecommand{\msN}{\ensuremath{\mathscr{N}}}
+\providecommand{\msO}{\ensuremath{\mathscr{O}}}
+\providecommand{\msP}{\ensuremath{\mathscr{P}}}
+\providecommand{\msQ}{\ensuremath{\mathscr{Q}}}
+\providecommand{\msR}{\ensuremath{\mathscr{R}}}
+\providecommand{\msS}{\ensuremath{\mathscr{S}}}
+\providecommand{\msT}{\ensuremath{\mathscr{T}}}
+\providecommand{\msU}{\ensuremath{\mathscr{U}}}
+\providecommand{\msV}{\ensuremath{\mathscr{V}}}
+\providecommand{\msW}{\ensuremath{\mathscr{W}}}
+\providecommand{\msX}{\ensuremath{\mathscr{X}}}
+\providecommand{\msY}{\ensuremath{\mathscr{Y}}}
+\providecommand{\msZ}{\ensuremath{\mathscr{Z}}}
+
+\providecommand{\scr}[1]{\ensuremath{\mathscr{#1}}}
+\providecommand{\scrA}{\ensuremath{\mathscr{A}}}
+\providecommand{\scrB}{\ensuremath{\mathscr{B}}}
+\providecommand{\scrC}{\ensuremath{\mathscr{C}}}
+\providecommand{\scrD}{\ensuremath{\mathscr{D}}}
+\providecommand{\scrE}{\ensuremath{\mathscr{E}}}
+\providecommand{\scrF}{\ensuremath{\mathscr{F}}}
+\providecommand{\scrG}{\ensuremath{\mathscr{G}}}
+\providecommand{\scrH}{\ensuremath{\mathscr{H}}}
+\providecommand{\scrI}{\ensuremath{\mathscr{I}}}
+\providecommand{\scrJ}{\ensuremath{\mathscr{J}}}
+\providecommand{\scrK}{\ensuremath{\mathscr{K}}}
+\providecommand{\scrL}{\ensuremath{\mathscr{L}}}
+\providecommand{\scrM}{\ensuremath{\mathscr{M}}}
+\providecommand{\scrN}{\ensuremath{\mathscr{N}}}
+\providecommand{\scrO}{\ensuremath{\mathscr{O}}}
+\providecommand{\scrP}{\ensuremath{\mathscr{P}}}
+\providecommand{\scrQ}{\ensuremath{\mathscr{Q}}}
+\providecommand{\scrR}{\ensuremath{\mathscr{R}}}
+\providecommand{\scrS}{\ensuremath{\mathscr{S}}}
+\providecommand{\scrT}{\ensuremath{\mathscr{T}}}
+\providecommand{\scrU}{\ensuremath{\mathscr{U}}}
+\providecommand{\scrV}{\ensuremath{\mathscr{V}}}
+\providecommand{\scrW}{\ensuremath{\mathscr{W}}}
+\providecommand{\scrX}{\ensuremath{\mathscr{X}}}
+\providecommand{\scrY}{\ensuremath{\mathscr{Y}}}
+\providecommand{\scrZ}{\ensuremath{\mathscr{Z}}}
%%================================
%% General symbols
@@ -1393,18 +1393,25 @@
%# 不编号定理类环境
%# Do not number theorem-like environments
\DeclareBoolOption[false]{nothmnum}
+%# 指定如何编号定理类环境
+%# Number theorem-like environments With ...
+\DeclareStringOption{thmnum}[PJL@thmnum@default]
%# 草稿模式或快速模式
%# Draft mode or fast mode
\DeclareBoolOption[false]{draft}
\DeclareBoolOption[false]{fast}
%# 引用的名称将随当前语言的不同而改变
%# Reference name will change with the current language
-\DeclareBoolOption[false]{regionalref}
+\DeclareBoolOption[true]{regionalref}
+\DeclareBoolOption[false]{originalref}
%# 处理选项
%# Process options
\ProcessKeyvalOptions*\relax
%# 下面的代码设定了选项之间的关系
%# The following code sets the relationship between options
+\if@PJLthm@originalref
+ \@PJLthm@regionalreffalse
+\fi
\if@PJLthm@draft
\@PJLthm@fasttrue
\fi
@@ -1952,8 +1959,22 @@
}{
\newaliascnt{PJLthm@highest}{section}
}
+%# 按照 thmnum 决定定理类环境如何编号
+%# Number the theorem-like environment with respect to thmnum
+\NewDocumentCommand{\CreateTheorem@thmnum}{m}{
+ \expandafter\ifstrempty\expandafter{\@PJLthm@thmnum}{
+ \CreateTheorem{#1}<PJLthm@highest>
+ }{
+ \expandafter\ifstrequal\expandafter{\@PJLthm@thmnum}{PJL@thmnum@default}{
+ \CreateTheorem{#1}
+ }{
+ \CreateTheorem{#1}<\@PJLthm@thmnum>
+ }
+ }
+}
%# 建立定理类环境
%# Setup theorem-like environments
+\AtEndPreamble{
\if@PJLthm@nothms\else
\if@PJLthm@nothmnum
\CreateTheorem*{theorem}
@@ -1966,7 +1987,7 @@
\CreateTheorem*{fact}
\CreateTheorem*{conjecture}
\else
-\CreateTheorem{theorem}<PJLthm@highest>
+\CreateTheorem@thmnum{theorem}
\CreateTheorem{lemma}[theorem]
\CreateTheorem{proposition}[theorem]
\CreateTheorem{corollary}[theorem]
@@ -2026,14 +2047,27 @@
\CreateTheorem*{remark}
\CreateTheorem*{observation}
\else
-\CreateTheorem{remark}<PJLthm@highest>
-\CreateTheorem{observation}<PJLthm@highest>
+\CreateTheorem@thmnum{remark}
+\CreateTheorem@thmnum{observation}
\fi
\CreateTheorem*{remark*}
\CreateTheorem*{observation*}
\fi
+}
-\numberwithin{equation}{PJLthm@highest}
+%# 按照 thmnum 决定公式如何编号
+%# Number the equations with respect to thmnum
+\expandafter\ifstrempty\expandafter{\@PJLthm@thmnum}{
+% thmnum is not used.
+ \numberwithin{equation}{PJLthm@highest}
+}{
+ \expandafter\ifstrequal\expandafter{\@PJLthm@thmnum}{PJL@thmnum@default}{
+% thmnum is used, with no value.
+ }{
+% thmnum is used, with value \@PJLthm@thmnum.
+ \numberwithin{equation}{\@PJLthm@thmnum}
+ }
+}
%# 一些 cref 的本地化
%# Some localization of cref
@@ -2137,11 +2171,14 @@
\DeclareBoolOption[false]{amsfashion}
\DeclareBoolOption[false]{nothms}
\DeclareBoolOption[false]{nothmnum}
-\DeclareBoolOption[false]{regionalref}
+\DeclareStringOption{thmnum}[PJL@thmnum@default]
+\DeclareBoolOption[true]{regionalref}
+\DeclareBoolOption[false]{originalref}
\DeclareBoolOption[false]{useosf}
\DeclareBoolOption[false]{palatino}
\DeclareBoolOption[false]{times}
\DeclareBoolOption[false]{garamond}
+\DeclareBoolOption[false]{noto}
\DeclareBoolOption[false]{biolinum}
%# 处理选项
%# Process options
@@ -2149,6 +2186,9 @@
%# 下面的代码设定了选项之间的关系
%# The following code sets the relationship between options
+\if@ProjLib@originalref
+ \@ProjLib@regionalreffalse
+\fi
\if@ProjLib@draft
\@ProjLib@fasttrue
\fi
@@ -2167,8 +2207,15 @@
\if@ProjLib@nothmnum
\PassOptionsToPackage{nothmnum}{PJLthm}
\fi
-\if@ProjLib@regionalref
- \PassOptionsToPackage{regionalref}{PJLthm}
+\expandafter\ifstrempty\expandafter{\@ProjLib@thmnum}{}{
+ \expandafter\ifstrequal\expandafter{\@ProjLib@thmnum}{PJL@thmnum@default}{
+ \PassOptionsToPackage{thmnum}{PJLthm}
+ }{
+ \PassOptionsToPackage{thmnum=\@ProjLib@thmnum}{PJLthm}
+ }
+}
+\if@ProjLib@regionalref\else
+ \PassOptionsToPackage{originalref}{PJLthm}
\fi
%# 加载不默认载入的组件
@@ -2228,6 +2275,15 @@
\PJLsetlinespacing{\setstretch{1.00}}
\fi
+\if@ProjLib@noto
+ \if@ProjLib@useosf
+ \PassOptionsToPackage{oldstyle}{notomath}
+ \fi
+ \RequirePackage{anyfontsize}
+ \RequirePackage{notomath}
+ \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
\if@ProjLib@biolinum
% \RequirePackage{amssymb}
% \RequirePackage{mathpazo}