texlive[60118] Master/texmf-dist: projlib (30jul21)

commits+karl at tug.org commits+karl at tug.org
Fri Jul 30 22:15:57 CEST 2021


Revision: 60118
          http://tug.org/svn/texlive?view=revision&revision=60118
Author:   karl
Date:     2021-07-30 22:15:57 +0200 (Fri, 30 Jul 2021)
Log Message:
-----------
projlib (30jul21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.pdf
    trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex
    trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.pdf
    trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex
    trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.pdf
    trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex
    trunk/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx
    trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
    trunk/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLdate.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLmath.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLthm.sty
    trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty

Modified: trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex	2021-07-30 20:15:57 UTC (rev 60118)
@@ -86,7 +86,7 @@
 
 \title{\ProjLib{} 工具集\\[.3\baselineskip]\normalsize 使用指南}
 \author{许锦文}
-\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/27}}
+\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/30}}
 \email{\href{mailto:ProjLib at outlook.com}{ProjLib at outlook.com}}
 \date{2021年7月,北京}
 
@@ -256,12 +256,12 @@
         \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}
@@ -463,13 +463,14 @@
     \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}
 

Modified: trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex	2021-07-30 20:15:57 UTC (rev 60118)
@@ -86,7 +86,7 @@
 
 \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 at outlook.com}{ProjLib at outlook.com}}
 \date{July 2021, Beijing}
 
@@ -257,12 +257,12 @@
         \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}
@@ -462,13 +462,14 @@
     \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}
 

Modified: trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex	2021-07-30 20:15:57 UTC (rev 60118)
@@ -86,9 +86,9 @@
 
 \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 at outlook.com}{ProjLib at outlook.com}}
-\date{juillet 2021, à Pékin}
+\date{Juillet 2021, à Pékin}
 
 \maketitle
 
@@ -116,7 +116,7 @@
 
 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.
 
 \section{Exemple d'utilisation}
 
@@ -257,12 +257,12 @@
         \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}
@@ -309,7 +309,7 @@
 
 \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{}.
 
@@ -461,18 +461,19 @@
     \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.
@@ -485,7 +486,6 @@
 \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}

Modified: trunk/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx	2021-07-30 20:15:57 UTC (rev 60118)
@@ -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 at outlook.com}{ProjLib at 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 at outlook.com}{ProjLib at 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 at outlook.com}{ProjLib at outlook.com}}
-\date{juillet 2021, à Pékin}
+\date{Juillet 2021, à Pékin}
 %</ProjLib-doc-fr>
 
 \maketitle
@@ -210,7 +210,7 @@
 
 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 @@
         \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 @@
         \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 @@
         \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 @@
 %<*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 @@
     \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 @@
     \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 @@
     \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 @@
 \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}

Modified: trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx	2021-07-30 20:15:57 UTC (rev 60118)
@@ -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}}}
+\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}}}
 
-\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{\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}}}
+\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}}}
 
-\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{\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}}}
+\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}}}
 
-\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{\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,6 +1393,9 @@
 %# 不编号定理类环境
 %# Do not number theorem-like environments
 \DeclareBoolOption[false]{nothmnum}
+%# 指定如何编号定理类环境
+%# Number theorem-like environments With ...
+\DeclareStringOption{thmnum}[PJL at thmnum@default]
 %# 草稿模式或快速模式
 %# Draft mode or fast mode
 \DeclareBoolOption[false]{draft}
@@ -1399,12 +1402,16 @@
 \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 at PJLthm@originalref
+    \@PJLthm at regionalreffalse
+\fi
 \if at PJLthm@draft
     \@PJLthm at fasttrue
 \fi
@@ -1952,8 +1959,22 @@
 }{
     \newaliascnt{PJLthm at highest}{section}
 }
+%# 按照 thmnum 决定定理类环境如何编号
+%# Number the theorem-like environment with respect to thmnum
+\NewDocumentCommand{\CreateTheorem at thmnum}{m}{
+    \expandafter\ifstrempty\expandafter{\@PJLthm at thmnum}{
+        \CreateTheorem{#1}<PJLthm at highest>
+    }{
+        \expandafter\ifstrequal\expandafter{\@PJLthm at thmnum}{PJL at thmnum@default}{
+            \CreateTheorem{#1}
+        }{
+            \CreateTheorem{#1}<\@PJLthm at thmnum>
+        }
+    }
+}
 %# 建立定理类环境
 %# Setup theorem-like environments
+\AtEndPreamble{
 \if at PJLthm@nothms\else
 \if at PJLthm@nothmnum
 \CreateTheorem*{theorem}
@@ -1966,7 +1987,7 @@
 \CreateTheorem*{fact}
 \CreateTheorem*{conjecture}
 \else
-\CreateTheorem{theorem}<PJLthm at highest>
+\CreateTheorem at thmnum{theorem}
 \CreateTheorem{lemma}[theorem]
 \CreateTheorem{proposition}[theorem]
 \CreateTheorem{corollary}[theorem]
@@ -2026,14 +2047,27 @@
 \CreateTheorem*{remark}
 \CreateTheorem*{observation}
 \else
-\CreateTheorem{remark}<PJLthm at highest>
-\CreateTheorem{observation}<PJLthm at highest>
+\CreateTheorem at thmnum{remark}
+\CreateTheorem at thmnum{observation}
 \fi
 \CreateTheorem*{remark*}
 \CreateTheorem*{observation*}
 \fi
+}
 
-\numberwithin{equation}{PJLthm at highest}
+%# 按照 thmnum 决定公式如何编号
+%# Number the equations with respect to thmnum
+\expandafter\ifstrempty\expandafter{\@PJLthm at thmnum}{
+% thmnum is not used.
+    \numberwithin{equation}{PJLthm at highest}
+}{
+    \expandafter\ifstrequal\expandafter{\@PJLthm at thmnum}{PJL at thmnum@default}{
+% thmnum is used, with no value.
+    }{
+% thmnum is used, with value \@PJLthm at thmnum.
+        \numberwithin{equation}{\@PJLthm at 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 at 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 at ProjLib@originalref
+    \@ProjLib at regionalreffalse
+\fi
 \if at ProjLib@draft
     \@ProjLib at fasttrue
 \fi
@@ -2167,8 +2207,15 @@
 \if at ProjLib@nothmnum
     \PassOptionsToPackage{nothmnum}{PJLthm}
 \fi
-\if at ProjLib@regionalref
-    \PassOptionsToPackage{regionalref}{PJLthm}
+\expandafter\ifstrempty\expandafter{\@ProjLib at thmnum}{}{
+    \expandafter\ifstrequal\expandafter{\@ProjLib at thmnum}{PJL at thmnum@default}{
+        \PassOptionsToPackage{thmnum}{PJLthm}
+    }{
+        \PassOptionsToPackage{thmnum=\@ProjLib at thmnum}{PJLthm}
+    }
+}
+\if at ProjLib@regionalref\else
+    \PassOptionsToPackage{originalref}{PJLthm}
 \fi
 
 %# 加载不默认载入的组件
@@ -2228,6 +2275,15 @@
     \PJLsetlinespacing{\setstretch{1.00}}
 \fi
 
+\if at ProjLib@noto
+    \if at ProjLib@useosf
+        \PassOptionsToPackage{oldstyle}{notomath}
+    \fi
+    \RequirePackage{anyfontsize}
+    \RequirePackage{notomath}
+    \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
 \if at ProjLib@biolinum
     % \RequirePackage{amssymb}
     % \RequirePackage{mathpazo}

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLauthor}
-    [2021/07/27 Enhanced author information block]
+    [2021/07/30 Enhanced author information block]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \ifdefined\subjclass\endinput\fi

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLdate.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLdate.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLdate.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLdate}
-    [2021/07/27 Convert yyyy-mm-dd to normal datetime format]
+    [2021/07/30 Convert yyyy-mm-dd to normal datetime format]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLdraft}
-    [2021/07/27 Some useful macros for the draft stage]
+    [2021/07/30 Some useful macros for the draft stage]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLlang.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLlang.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLlang}
-    [2021/07/27 Multi-language configuration]
+    [2021/07/30 Multi-language configuration]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{%

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLlogo}
-    [2021/07/27 The ProjLib logo]
+    [2021/07/30 The ProjLib logo]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLmath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLmath.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLmath.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLmath}
-    [2021/07/27 Useful math macros and shortcuts]
+    [2021/07/30 Useful math macros and shortcuts]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \RequirePackage{mathtools}
@@ -27,261 +27,261 @@
 %%================================
 %% 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}}}
+\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}}}
 
-\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}}}
 
-\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}}}
+\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}}}
 
-\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{\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}}}
 
-\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}}}
+\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}}}
 
-\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{\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}}}
 
-\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}}}
+\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}}}
 
-\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{\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

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLpaper}
-    [2021/07/27 Paper style configuration]
+    [2021/07/30 Paper style configuration]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \RequirePackage{ifthen}

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLthm.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLthm.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLthm.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLthm}
-    [2021/07/27 Theorem setup and configuration]
+    [2021/07/30 Theorem setup and configuration]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{%
@@ -26,10 +26,15 @@
 }
 \DeclareBoolOption[false]{nothms}
 \DeclareBoolOption[false]{nothmnum}
+\DeclareStringOption{thmnum}[PJL at thmnum@default]
 \DeclareBoolOption[false]{draft}
 \DeclareBoolOption[false]{fast}
-\DeclareBoolOption[false]{regionalref}
+\DeclareBoolOption[true]{regionalref}
+\DeclareBoolOption[false]{originalref}
 \ProcessKeyvalOptions*\relax
+\if at PJLthm@originalref
+    \@PJLthm at regionalreffalse
+\fi
 \if at PJLthm@draft
     \@PJLthm at fasttrue
 \fi
@@ -508,6 +513,18 @@
 }{
     \newaliascnt{PJLthm at highest}{section}
 }
+\NewDocumentCommand{\CreateTheorem at thmnum}{m}{
+    \expandafter\ifstrempty\expandafter{\@PJLthm at thmnum}{
+        \CreateTheorem{#1}<PJLthm at highest>
+    }{
+        \expandafter\ifstrequal\expandafter{\@PJLthm at thmnum}{PJL at thmnum@default}{
+            \CreateTheorem{#1}
+        }{
+            \CreateTheorem{#1}<\@PJLthm at thmnum>
+        }
+    }
+}
+\AtEndPreamble{
 \if at PJLthm@nothms\else
 \if at PJLthm@nothmnum
 \CreateTheorem*{theorem}
@@ -520,7 +537,7 @@
 \CreateTheorem*{fact}
 \CreateTheorem*{conjecture}
 \else
-\CreateTheorem{theorem}<PJLthm at highest>
+\CreateTheorem at thmnum{theorem}
 \CreateTheorem{lemma}[theorem]
 \CreateTheorem{proposition}[theorem]
 \CreateTheorem{corollary}[theorem]
@@ -580,14 +597,22 @@
 \CreateTheorem*{remark}
 \CreateTheorem*{observation}
 \else
-\CreateTheorem{remark}<PJLthm at highest>
-\CreateTheorem{observation}<PJLthm at highest>
+\CreateTheorem at thmnum{remark}
+\CreateTheorem at thmnum{observation}
 \fi
 \CreateTheorem*{remark*}
 \CreateTheorem*{observation*}
 \fi
+}
 
-\numberwithin{equation}{PJLthm at highest}
+\expandafter\ifstrempty\expandafter{\@PJLthm at thmnum}{
+    \numberwithin{equation}{PJLthm at highest}
+}{
+    \expandafter\ifstrequal\expandafter{\@PJLthm at thmnum}{PJL at thmnum@default}{
+    }{
+        \numberwithin{equation}{\@PJLthm at thmnum}
+    }
+}
 
 \gappto{\PJLlang at langconfig@chinese}{%
     \crefname{equation}{式}{式}%

Modified: trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty	2021-07-30 20:14:14 UTC (rev 60117)
+++ trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty	2021-07-30 20:15:57 UTC (rev 60118)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{ProjLib}
-    [2021/07/27 The collective interface of ProjLib toolkit]
+    [2021/07/30 The collective interface of ProjLib toolkit]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{
@@ -30,14 +30,20 @@
 \DeclareBoolOption[false]{amsfashion}
 \DeclareBoolOption[false]{nothms}
 \DeclareBoolOption[false]{nothmnum}
-\DeclareBoolOption[false]{regionalref}
+\DeclareStringOption{thmnum}[PJL at 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}
 \ProcessKeyvalOptions*\relax
 
+\if at ProjLib@originalref
+    \@ProjLib at regionalreffalse
+\fi
 \if at ProjLib@draft
     \@ProjLib at fasttrue
 \fi
@@ -54,8 +60,15 @@
 \if at ProjLib@nothmnum
     \PassOptionsToPackage{nothmnum}{PJLthm}
 \fi
-\if at ProjLib@regionalref
-    \PassOptionsToPackage{regionalref}{PJLthm}
+\expandafter\ifstrempty\expandafter{\@ProjLib at thmnum}{}{
+    \expandafter\ifstrequal\expandafter{\@ProjLib at thmnum}{PJL at thmnum@default}{
+        \PassOptionsToPackage{thmnum}{PJLthm}
+    }{
+        \PassOptionsToPackage{thmnum=\@ProjLib at thmnum}{PJLthm}
+    }
+}
+\if at ProjLib@regionalref\else
+    \PassOptionsToPackage{originalref}{PJLthm}
 \fi
 
 \if at ProjLib@amsfashion
@@ -106,6 +119,15 @@
     \PJLsetlinespacing{\setstretch{1.00}}
 \fi
 
+\if at ProjLib@noto
+    \if at ProjLib@useosf
+        \PassOptionsToPackage{oldstyle}{notomath}
+    \fi
+    \RequirePackage{anyfontsize}
+    \RequirePackage{notomath}
+    \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
 \if at ProjLib@biolinum
     % \RequirePackage{amssymb}
     % \RequirePackage{mathpazo}



More information about the tex-live-commits mailing list.