summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-07-30 20:15:57 +0000
committerKarl Berry <karl@freefriends.org>2021-07-30 20:15:57 +0000
commitc5b0b7223927e0d1ed15233367e14940f33d044a (patch)
treed55098f52591dfb53faa3c6b11af9e7ad9e1261b /Master/texmf-dist/source/latex
parentd716afa974239e84535924a3485ace7d2f979bb1 (diff)
projlib (30jul21)
git-svn-id: svn://tug.org/texlive/trunk@60118 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx54
-rw-r--r--Master/texmf-dist/source/latex/projlib/ProjLib.dtx592
2 files changed, 352 insertions, 294 deletions
diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx b/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx
index aafece21f65..05c3977be88 100644
--- a/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx
+++ b/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx
@@ -108,7 +108,7 @@
%<*ProjLib-doc-cn>
\title{\ProjLib{} 工具集\\[.3\baselineskip]\normalsize 使用指南}
\author{许锦文}
-\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/27}}
+\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/30}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
\date{2021年7月,北京}
%</ProjLib-doc-cn>
@@ -116,7 +116,7 @@
%<*ProjLib-doc-en>
\title{\ProjLib{}~\,Toolkit\\[.3\baselineskip]\normalsize User Manual}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\ProjLib{}~2021/07/27}}
+\thanks{Corresponding to: \texttt{\ProjLib{}~2021/07/30}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
\date{July 2021, Beijing}
%</ProjLib-doc-en>
@@ -124,9 +124,9 @@
%<*ProjLib-doc-fr>
\title{La boîte à outils~\,\ProjLib{}\\[.3\baselineskip]\normalsize Manuel d'utilisation}
\author{Jinwen XU}
-\thanks{Correspondant à : \texttt{\ProjLib{}~2021/07/27}}
+\thanks{Correspondant à : \texttt{\ProjLib{}~2021/07/30}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{juillet 2021, à Pékin}
+\date{Juillet 2021, à Pékin}
%</ProjLib-doc-fr>
\maketitle
@@ -210,7 +210,7 @@ The \ProjLib{} toolkit is composed of the main package \ProjLibPackage{} and a s
Le nom \ProjLib{} peut être considéré comme l'abréviation de \emph{Project Library} en anglais ou de \emph{Projet Libre} en français (l'auteur préfère l'interprétation française). Son objectif principal est de fournir un support multilingue et des environnements de type théorème avec des références intelligentes. De plus, certaines fonctionnalités supplémentaires sont fournies, telles que le bloc auteur amélioré, les marques de brouillon, les symboles mathématiques et les raccourcis, etc.
-La boîte à outils \ProjLib{} est composée du package principal \ProjLibPackage{} et d'une série de composants dont les noms commencent par l'abréviation « PJL ». Vous pouvez apprendre à l'utiliser à travers les exemples d'utilisation dans la section suivante.
+La boîte à outils \ProjLib{} est composée du package principal \ProjLibPackage{} et d'une série de composants dont les noms commencent par l'abréviation «~PJL~». Vous pouvez apprendre à l'utiliser à travers les exemples d'utilisation dans la section suivante.
%</ProjLib-doc-fr>
%<*ProjLib-doc-cn>
@@ -594,12 +594,12 @@ Les environnements de type théorème couramment utilisés ont été prédéfini
\begin{itemize}
\item 快速模式。功能会适当缩减,但能够提高编译速度,建议在撰写阶段使用。
\end{itemize}
- \item \texttt{palatino}、\texttt{times}、\texttt{garamond}、\texttt{biolinum} ~$|$~ \texttt{useosf}
+ \item \texttt{palatino}、\texttt{times}、\texttt{garamond}、\texttt{noto}、\texttt{biolinum} ~$|$~ \texttt{useosf}
\begin{itemize}
\item 字体选项。顾名思义,会加载相应名称的字体。
\item \texttt{useosf} 选项用来启用“旧式”数字。
\end{itemize}
- \item \texttt{nothms}、\texttt{nothmnum}、\texttt{regionalref}
+ \item \texttt{nothms}、\texttt{nothmnum}、\texttt{thmnum} 或 \texttt{thmnum=}\meta{counter}、\texttt{regionalref}、\texttt{originalref}
\begin{itemize}
\item 来自用于设置定理类环境的组件 \PJLthm{} 的选项,详细信息请参阅有关这一宏包的小节。
\end{itemize}
@@ -624,12 +624,12 @@ Les environnements de type théorème couramment utilisés ont été prédéfini
\begin{itemize}
\item Fast mode. The functionality will be appropriately reduced to get faster compilation speed, recommended to use during the writing stage.
\end{itemize}
- \item \texttt{palatino}, \texttt{times}, \texttt{garamond}, \texttt{biolinum} ~$|$~ \texttt{useosf}
+ \item \texttt{palatino}, \texttt{times}, \texttt{garamond}, \texttt{noto}, \texttt{biolinum} ~$|$~ \texttt{useosf}
\begin{itemize}
\item Font options. As the names suggest, font with corresponding name will be loaded.
\item The \texttt{useosf} option is used to enable the old-style figures.
\end{itemize}
- \item \texttt{nothms}, \texttt{nothmnum}, \texttt{regionalref}
+ \item \texttt{nothms}, \texttt{nothmnum}, \texttt{thmnum} or \texttt{thmnum=}\meta{counter}, \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
\item Options from the component \PJLthm{} used for setting theorem-like environments, please refer to the section on this package for details.
\end{itemize}
@@ -654,12 +654,12 @@ In addition, there are also some options of the components that should be passed
\begin{itemize}
\item Mode brouillon. La fonctionnalité sera réduite de manière appropriée pour obtenir une vitesse de compilation plus rapide, recommandée à utiliser pendant la phase de brouillon.
\end{itemize}
- \item \texttt{palatino}, \texttt{times}, \texttt{garamond}, \texttt{biolinum} ~$|$~ \texttt{useosf}
+ \item \texttt{palatino}, \texttt{times}, \texttt{garamond}, \texttt{noto}, \texttt{biolinum} ~$|$~ \texttt{useosf}
\begin{itemize}
\item Options de police. Comme les noms l'indiquent, la police avec le nom correspondant sera utilisée.
\item L'option \texttt{useosf} est pour activer les chiffres à l'ancienne.
\end{itemize}
- \item \texttt{nothms}, \texttt{nothmnum}, \texttt{regionalref}
+ \item \texttt{nothms}, \texttt{nothmnum}, \texttt{thmnum} ou \texttt{thmnum=}\meta{counter}, \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
\item Options du composant \PJLthm{} utilisé pour définir des environnements de type théorème, veuillez vous référer à la section sur ce package pour plus de détails.
\end{itemize}
@@ -792,7 +792,7 @@ For details on how to select a language, please refer to the section on \PJLlang
%<*ProjLib-doc-fr>
\subsection{PJLdate : traitement de date-heure}
-\PJLdatePackage{} propose la macro \lstinline|\PLdate|\meta{yyyy-mm-dd} (ou \lstinline|\PJLdate|\meta{yyyy-mm-dd}) pour convertir \meta{yyyy-mm-dd} dans le format de date de la langue actuellement sélectionnée. Par exemple, dans le contexte français actuel, \lstinline|\PLdate{2022-04-01}| deviendrait « \PLdate{2022-04-01} », tandis que dans le contexte anglais « \UseOtherLanguage{English}{\PLdate{2022-04-01}} ».
+\PJLdatePackage{} propose la macro \lstinline|\PLdate|\meta{yyyy-mm-dd} (ou \lstinline|\PJLdate|\meta{yyyy-mm-dd}) pour convertir \meta{yyyy-mm-dd} dans le format de date de la langue actuellement sélectionnée. Par exemple, dans le contexte français actuel, \lstinline|\PLdate{2022-04-01}| deviendrait «~\PLdate{2022-04-01}~», tandis que dans le contexte anglais «~\UseOtherLanguage{English}{\PLdate{2022-04-01}}~».
Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.
%</ProjLib-doc-fr>
@@ -1286,13 +1286,14 @@ Il est recommandé de les passer comme options globales de la classe de document
\begin{itemize}
\item 不设定定理类环境。如果你希望使用自己的定理样式,可以使用这一选项。
\end{itemize}
- \item \texttt{nothmnum}
+ \item \texttt{nothmnum}、\texttt{thmnum} 或 \texttt{thmnum=}\meta{counter}
\begin{itemize}
- \item 使定理类环境均不编号。
+ \item 使定理类环境均不编号 / 按照 1、2、3 顺序编号 / 在 \meta{counter} 内编号。其中 \meta{counter} 应该是自带的计数器 (如 \texttt{subsection}) 或在导言部分自定义的计数器。在没有使用任何选项的情况下将按照 \texttt{chapter} (书) 或 \texttt{section} (文章) 编号。
\end{itemize}
- \item \texttt{regionalref}
+ \item \texttt{regionalref}、\texttt{originalref}
\begin{itemize}
- \item 在智能引用时,定理类环境的名称随当前语言而变化(默认情况下,引用时会始终采用定理类环境所处语境下的名称;例如,在英文语境中书写的定理,即使稍后在中文语境下引用时,仍将显示为 Theorem)。在 \texttt{fast} 模式下,这一选项默认启用。
+ \item 在智能引用时,定理类环境的名称是否随当前语言而变化。默认为 \texttt{regionalref},即引用时采用当前语言对应的名称;例如,在中文语境中引用定理类环境时,无论原环境处在什么语境中,都将使用名称“定理、定义……”。若启用 \texttt{originalref},则引用时会始终采用定理类环境所处语境下的名称;例如,在英文语境中书写的定理,即使稍后在中文语境下引用时,仍将显示为 Theorem。
+ \item 在 \texttt{fast} 模式下,\texttt{originalref} 将不起作用。
\end{itemize}
\end{itemize}
@@ -1391,13 +1392,14 @@ Il est recommandé de les passer comme options globales de la classe de document
\begin{itemize}
\item Theorem-like environments will not be defined. You may use this option if you wish to apply your own theorem styles.
\end{itemize}
- \item \texttt{nothmnum}
+ \item \texttt{nothmnum}, \texttt{thmnum} or \texttt{thmnum=}\meta{counter}
\begin{itemize}
- \item Theorem-like environments will not be numbered.
+ \item Theorem-like environments will not be numbered / numbered in order 1, 2, 3... / numbered within \meta{counter}. Here, \meta{counter} should be a built-in counter (such as \texttt{subsection}) or a custom counter defined in the preamble. If no option is used, they will be numbered within \texttt{chapter} (book) or \texttt{section} (article).
\end{itemize}
- \item \texttt{regionalref}
+ \item \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
- \item When referencing, name of the theorem-like environment will change with the current language (by default, the name will always remain the same; for example, when referencing a theorem written in the French context, even if one is currently in the English context, it will still be displayed as ``Théorème''). In \texttt{fast} mode, this option is automatically enabled.
+ \item When referencing, whether the name of the theorem-like environment changes with the current language. The default is \texttt{regionalref}, \emph{i.e.}, the name corresponding to the current language is used; for example, when referencing a theorem-like environment in English context, the names "Theorem, Definition..." will be used no matter which language context the original environment is in. If \texttt{originalref} is enabled, then the name will always remain the same as the original place; for example, when referencing a theorem written in the French context, even if one is currently in the English context, it will still be displayed as ``Théorème''.
+ \item In \texttt{fast} mode, the option \texttt{originalref} will have no effect.
\end{itemize}
\end{itemize}
@@ -1498,18 +1500,19 @@ defines an unnumbered environment \lstinline|proofidea*| and a numbered environm
\begin{itemize}
\item Les environnements de type théorème ne seront pas définis. Vous pouvez utiliser cette option si vous souhaitez appliquer vos propres styles de théorème.
\end{itemize}
- \item \texttt{nothmnum}
+ \item \texttt{nothmnum}, \texttt{thmnum} ou \texttt{thmnum=}\meta{counter}
\begin{itemize}
- \item Les environnements de type théorème ne seront pas numérotés.
+ \item Les environnements de type théorème ne seront pas numérotés / numérotés dans l'ordre 1, 2, 3... / numérotés dans \meta{counter}. Ici, \meta{counter} doit être un compteur intégré (tel que \texttt{subsection}) ou un compteur défini dans le préambule. Si aucune option n'est utilisée, ils seront numérotés dans \texttt{chapter} (livre) ou \texttt{section} (article).
\end{itemize}
- \item \texttt{regionalref}
+ \item \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
- \item Lors du référencement, le nom de l'environnement de type théorème changera avec la langue actuelle (par défaut, le nom restera toujours le même ; par exemple, lors du référencement d'un théorème écrit dans le contexte anglais, même si l'on est actuellement dans le contexte français , il sera toujours affiché comme « Theorem »). En mode \texttt{fast}, cette option est automatiquement activée.
+ \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
+ \item En mode \texttt{fast}, l'option \texttt{originalref} n'aura aucun effet.
\end{itemize}
\end{itemize}
\medskip
-Les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme « Theorem » en mode anglais et « Théorème » en mode français. Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.
+Les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français. Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.
\begin{tip}
Lors du référencement d'un environnement de type théorème, il est recommandé d'utiliser \lstinline|\cref{|\meta{label}\texttt{\}}. De cette façon, il n'est pas nécessaire d'écrire explicitement le nom de l'environnement correspondant à chaque fois.
@@ -1522,7 +1525,6 @@ Si vous avez besoin de définir un nouvel environnement de type théorème, vous
\end{itemize}
Pour \meta{language name}, veuillez vous référer à la section sur \PJLlang{}. Lorsque \meta{language name} n'est pas spécifié, le nom sera défini pour toutes les langues prises en charge. De plus, les environnements avec ou sans astérisque partagent le même nom, donc, \lstinline|\NameTheorem{envname*}{...}| a le même effet que \lstinline|\NameTheorem{envname}{...}| .
-\clearpage
Ensuite, créez cet environnement de l'une des cinq manières suivantes :
\vspace{-.3\baselineskip}
\begin{itemize}
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}