texlive[59347] Master/texmf-dist: projlib (25may21)

commits+karl at tug.org commits+karl at tug.org
Tue May 25 22:49:44 CEST 2021


Revision: 59347
          http://tug.org/svn/texlive?view=revision&revision=59347
Author:   karl
Date:     2021-05-25 22:49:43 +0200 (Tue, 25 May 2021)
Log Message:
-----------
projlib (25may21)

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/source/latex/projlib/ProjLib.dtx
    trunk/Master/texmf-dist/tex/latex/projlib/PJLamssim.sty
    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/PJLpaper.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLthm.sty
    trunk/Master/texmf-dist/tex/latex/projlib/PJLtoolkit.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-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex	2021-05-25 20:49:43 UTC (rev 59347)
@@ -32,7 +32,7 @@
 } 
 \providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
 \lstset{moretexcs=%
-    {color,CreateTheorem,proofideanameCN,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PJLdate,ProjLib
+    {color,NameTheorem,CreateTheorem,proofideanameCN,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PJLdate,ProjLib
     }
 }
 \lstnewenvironment{code}% 
@@ -78,7 +78,7 @@
 
 \title{\ProjLib{} 工具集\\[.3\baselineskip]\normalsize 使用指南}
 \author{许锦文}
-\thanks{对应版本.~~\texttt{\ProjLib{}~2021/05/20}}
+\thanks{对应版本.~~\texttt{\ProjLib{}~2021/05/25}}
 \date{2021年5月,北京}
 
 \maketitle
@@ -190,15 +190,15 @@
     \end{itemize}
 \end{itemize}
 
-\meta{language name} 有下列选择:
+\meta{language name} 有下列选择 (不区分大小写,如 \texttt{French} 或 \texttt{french} 均可):
 \begin{itemize}
-    \item 简体中文:\texttt{Chinese}、\texttt{chinese}、\texttt{SChinese}、\texttt{schinese}、\texttt{SimplifiedChinese} 或 \texttt{simplifiedchinese}
-    \item 繁体中文:\texttt{TChinese}、\texttt{tchinese}、\texttt{TraditionalChinese} 或 \texttt{traditionalchinese}
-    \item 英文:\texttt{English} 或 \texttt{english}
-    \item 法文:\texttt{French} 或 \texttt{french}
-    \item 德文:\texttt{German}、\texttt{german} 或 \texttt{ngerman}
-    \item 日文:\texttt{Japanese} 或 \texttt{japanese}
-    \item 俄文:\texttt{Russian} 或 \texttt{russian}
+    \item 简体中文:\texttt{CN}、\texttt{Chinese}、\texttt{SChinese} 或 \texttt{SimplifiedChinese}
+    \item 繁体中文:\texttt{TC}、\texttt{TChinese} 或 \texttt{TraditionalChinese}
+    \item 英文:\texttt{EN} 或 \texttt{English}
+    \item 法文:\texttt{FR} 或 \texttt{French}
+    \item 德文:\texttt{DE}、\texttt{German} 或 \texttt{ngerman}
+    \item 日文:\texttt{JP} 或 \texttt{Japanese}
+    \item 俄文:\texttt{RU} 或 \texttt{Russian}
 \end{itemize}
 
 另外,还可以通过下面的方式来填加相应语言的设置:
@@ -279,21 +279,31 @@
 
 预设的定理类环境包括:\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{problem}、\texttt{property}、\texttt{proposition}、\texttt{question}、\texttt{remark}、\texttt{theorem},以及相应的带有星号 \lstinline|*| 的无编号版本。这些定理类环境在显示时会依据当前语言而相应变化,例如在中文模式下 \texttt{theorem} 会显示为“定理”,而在英文模式下则会显示为“Theorem”。关于如何选定语言,请参阅关于 \PJLlang{} 的小节。
 
-在引用定理类环境时,建议使用智能引用 \lstinline|\cref{|\meta{label}\lstinline|}|。这样就不必每次都写上相应环境的名称了。
+\begin{remind}
+    在引用定理类环境时,建议使用智能引用 \lstinline|\cref{|\meta{label}\lstinline|}|。这样就不必每次都写上相应环境的名称了。
+\end{remind}
 
 \medskip
-若需要定义新的定理类环境,首先要定义这个环境在所用语言下的名称 \lstinline|\|\meta{name of environment}\meta{language abbr},其中 \meta{language abbr} 是语言的简写,分别为:
-\begin{longtable}{ll|ll}
-    \texttt{CN} & 简体中文  & \texttt{DE} & 德文\\
-    \texttt{TC} & 繁体中文  & \texttt{JP} & 日文\\
-    \texttt{EN} & 英文  & \texttt{RU} & 俄文\\
-    \texttt{FR} & 法文  & &\\
-\end{longtable}
+% 若需要定义新的定理类环境,首先要定义这个环境在所用语言下的名称 \lstinline|\|\meta{name of environment}\meta{language abbr},其中 \meta{language abbr} 是语言的简写,分别为:
+% \begin{longtable}{ll|ll}
+%     \texttt{CN} & 简体中文  & \texttt{DE} & 德文\\
+%     \texttt{TC} & 繁体中文  & \texttt{JP} & 日文\\
+%     \texttt{EN} & 英文  & \texttt{RU} & 俄文\\
+%     \texttt{FR} & 法文  & &\\
+% \end{longtable}
 
-\begin{remind}
-    如果要定义名称后带有星号 \lstinline|*| 的环境,那么在上面的 \meta{name of environment} 中不用写星号。
-\end{remind}
+% \begin{remind}
+%     如果要定义名称后带有星号 \lstinline|*| 的环境,那么在上面的 \meta{name of environment} 中不用写星号。
+% \end{remind}
+若需要定义新的定理类环境,首先要定义这个环境在所用语言下的名称:
+\vspace{-.15\baselineskip}%
+\begin{itemize}
+    \item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
+\end{itemize}
+\vspace{-.15\baselineskip}%
+其中,\meta{language name} 可参阅关于 \PJLlang{} 的小节。当不指定 \meta{language name}时,则会将该名称设置为所有支持语言下的名称。另外,带星号与不带星号的同名环境共用一个名称,因此 \lstinline|\NameTheorem{envname*}{...}| 与 \lstinline|\NameTheorem{envname}{...}| 效果相同。
 
+\medskip
 然后用下面五种方式之一定义这一环境:
 \begin{itemize}
     \item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
@@ -328,7 +338,8 @@
     其内部使用了 \textsf{amsthm},因此传统的 \texttt{theoremstyle} 对其也是适用的,只需在相关定义前标明即可。
 \end{remind}
 
-\def\proofideanameCN{思路}
+% \def\proofideanameCN{思路}
+\NameTheorem[CN]{proofidea}{思路}
 \CreateTheorem*{proofidea*}
 \CreateTheorem{proofidea}<subsection>
 
@@ -335,7 +346,7 @@
 \bigskip
 下面提供一个例子。这三行代码:
 \begin{code}
-  \def\proofideanameCN{思路}
+  \NameTheorem[CN]{proofidea}{思路}
   \CreateTheorem*{proofidea*}
   \CreateTheorem{proofidea}<subsection>
 \end{code}

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-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex	2021-05-25 20:49:43 UTC (rev 59347)
@@ -30,7 +30,7 @@
 } 
 \providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
 \lstset{moretexcs=%
-    {color,CreateTheorem,proofideanameEN,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PJLdate,ProjLib
+    {color,NameTheorem,CreateTheorem,proofideanameEN,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PJLdate,ProjLib
     }
 }
 \lstnewenvironment{code}% 
@@ -76,13 +76,13 @@
 
 \title{\ProjLib{}~~Toolkit\\[.3\baselineskip]\normalsize User Manual}
 \author{Jinwen Xu}
-\thanks{Corresponding to: \texttt{\ProjLib{}~2021/05/20}}
+\thanks{Corresponding to: \texttt{\ProjLib{}~2021/05/25}}
 \date{May 2021, Beijing}
 
 \maketitle
 
 \begin{abstract}
-    The \ProjLib{} toolkit is designed to simplify the preparation before writing \LaTeX{} documents. With \PJLtoolkit{} loaded, you no longer need to set up the theorem-like environments nor configure the appropriate multilingual settings. Additionally, a series of auxiliary functionalities have been introduced.
+    The \ProjLib{} toolkit is designed to simplify the preparation before writing \LaTeX{} documents. With \PJLtoolkit{} loaded, you no longer need to set up the theorem-like environments nor configure the appropriate multilingual settings. Additionally, a series of auxiliary functionalities are introduced.
 \end{abstract}
 
 % \tableofcontents
@@ -183,15 +183,15 @@
     \item \lstinline|\UseOtherLanguage{|\meta{language name}\lstinline|}{|\meta{content}\lstinline|}|, which uses the specified language settings to typeset \meta{content}. Compared with \lstinline|\UseLanguage|, it will not modify the line spacing, so line spacing would remain stable when CJK and Western texts are mixed.
 \end{itemize}
 
-\meta{language name} can be:
+\meta{language name} can be (it is not case sensitive, for example, \texttt{French} and \texttt{french} have the same effect):
 \begin{itemize}
-    \item Simplified Chinese: \texttt{Chinese}, \texttt{chinese}, \texttt{SChinese}, \texttt{schinese}, \texttt{SimplifiedChinese} or \texttt{simplifiedchinese}
-    \item Traditional Chinese: \texttt{TChinese}, \texttt{tchinese}, \texttt{TraditionalChinese} or \texttt{traditionalchinese}
-    \item English: \texttt{English} or \texttt{english}
-    \item French: \texttt{French} or \texttt{french}
-    \item German: \texttt{German}, \texttt{german} or \texttt{ngerman}
-    \item Japanese: \texttt{Japanese} or \texttt{japanese}
-    \item Russian: \texttt{Russian} or \texttt{russian}
+    \item Simplified Chinese: \texttt{CN}, \texttt{Chinese}, \texttt{SChinese} or \texttt{SimplifiedChinese}
+    \item Traditional Chinese: \texttt{TC}, \texttt{TChinese} or \texttt{TraditionalChinese}
+    \item English: \texttt{EN} or \texttt{English}
+    \item French: \texttt{FR} or \texttt{French}
+    \item German: \texttt{DE}, \texttt{German} or \texttt{ngerman}
+    \item Japanese: \texttt{JP} or \texttt{Japanese}
+    \item Russian: \texttt{RU} or \texttt{Russian}
 \end{itemize}
 
 \medskip
@@ -275,22 +275,30 @@
 
 Preset environments include: \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{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, and the corresponding unnumbered version with an asterisk \lstinline|*| in the name. The display of these environments will change according to the current language. For example, \texttt{theorem} will be displayed as ``Theorem" in English mode and ``Théorème" in French mode. For details on how to select a language, please refer to the section on \PJLlang{}.
 
-When referencing a theorem-like environment, it is recommended to use smart reference \lstinline|\cref{|\meta{label}\texttt{\}}. In this way, there is no need to explicitly write down the name of the corresponding environment every time.
+\begin{remind}
+    When referencing a theorem-like environment, it is recommended to use smart reference \lstinline|\cref{|\meta{label}\texttt{\}}. In this way, there is no need to explicitly write down the name of the corresponding environment every time.
+\end{remind}
 
 \medskip
-If you need to define a new theorem-like environment, you must first define the name of the environment in the language used: \lstinline|\|\meta{name of environment}\meta{language abbr}, where \meta{language abbr} is the abbreviation of language, which can be:
-% \vspace{-.5\baselineskip}
-\begin{longtable}{ll|ll}
-    \texttt{CN} & Simplified Chinese & \texttt{DE} & German\\
-    \texttt{TC} & Traditional Chinese & \texttt{JP} & Japanese\\
-    \texttt{EN} & English & \texttt{RU} & Russian\\
-    \texttt{FR} & French & &\\
-\end{longtable}
+% If you need to define a new theorem-like environment, you must first define the name of the environment in the language used: \lstinline|\|\meta{name of environment}\meta{language abbr}, where \meta{language abbr} is the abbreviation of language, which can be:
+% % \vspace{-.5\baselineskip}
+% \begin{longtable}{ll|ll}
+%     \texttt{CN} & Simplified Chinese & \texttt{DE} & German\\
+%     \texttt{TC} & Traditional Chinese & \texttt{JP} & Japanese\\
+%     \texttt{EN} & English & \texttt{RU} & Russian\\
+%     \texttt{FR} & French & &\\
+% \end{longtable}
 
-\begin{remind}
-    If you want to define an environment with an asterisk \lstinline|*| after the name, you don't need to write an asterisk in the \meta{name of environment} above. See the example below.
-\end{remind}
+% \begin{remind}
+%     If you want to define an environment with an asterisk \lstinline|*| after the name, you don't need to write an asterisk in the \meta{name of environment} above. See the example below.
+% \end{remind}
+If you need to define a new theorem-like environment, you must first define the name of the environment in the language to use:
+\begin{itemize}
+    \item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
+\end{itemize}
+For \meta{language name}, please refer to the section on \PJLlang{}. When \meta{language name} is not specified, the name will be set for all supported languages. In addition, environments with or without asterisk share the same name, therefore, \lstinline|\NameTheorem{envname*}{...}| has the same effect as \lstinline|\NameTheorem{envname}{...}| .
 
+
 \clearpage% \medskip
 And then define this environment in one of following five ways:
 \begin{itemize}
@@ -326,7 +334,8 @@
     It uses \textsf{amsthm} internally, so the traditional \texttt{theoremstyle} is also applicable to it. One only needs declare the style before the relevant definitions.
 \end{remind}
 
-\def\proofideanameEN{Idea}
+% \def\proofideanameEN{Idea}
+\NameTheorem[EN]{proofidea}{Idea}
 \CreateTheorem*{proofidea*}
 \CreateTheorem{proofidea}<subsection>
 
@@ -333,7 +342,7 @@
 \bigskip
 Here is an example. The following code:
 \begin{code}
-  \def\proofideanameEN{Idea}
+  \NameTheorem[EN]{proofidea}{Idea}
   \CreateTheorem*{proofidea*}
   \CreateTheorem{proofidea}<subsection>
 \end{code}

Modified: trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx	2021-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx	2021-05-25 20:49:43 UTC (rev 59347)
@@ -18,47 +18,47 @@
 %
 %<*PJLamssim>
 \ProvidesPackage{PJLamssim}
-    [2021/05/20 Simulate some features of amsart]
+    [2021/05/25 Simulate some features of amsart]
 %</PJLamssim>
 %
 %<*PJLauthor>
 \ProvidesPackage{PJLauthor}
-    [2021/05/20 Enhanced author information block]
+    [2021/05/25 Enhanced author information block]
 %</PJLauthor>
 %
 %<*PJLdate>
 \ProvidesPackage{PJLdate}
-    [2021/05/20 Convert yyyy-mm-dd to normal datetime format]
+    [2021/05/25 Convert yyyy-mm-dd to normal datetime format]
 %</PJLdate>
 %
 %<*PJLdraft>
 \ProvidesPackage{PJLdraft}
-    [2021/05/20 Some useful macros for the draft stage]
+    [2021/05/25 Some useful macros for the draft stage]
 %</PJLdraft>
 %
 %<*PJLlang>
 \ProvidesPackage{PJLlang}
-    [2021/05/20 Multi-language configuration]
+    [2021/05/25 Multi-language configuration]
 %</PJLlang>
 %
 %<*PJLlogo>
 \ProvidesPackage{PJLlogo}
-    [2021/05/20 The ProjLib logo]
+    [2021/05/25 The ProjLib logo]
 %</PJLlogo>
 %
 %<*PJLpaper>
 \ProvidesPackage{PJLpaper}
-    [2021/05/20 Paper style configuration]
+    [2021/05/25 Paper style configuration]
 %</PJLpaper>
 %
 %<*PJLthm>
 \ProvidesPackage{PJLthm}
-    [2021/05/20 Theorem setup and configuration]
+    [2021/05/25 Theorem setup and configuration]
 %</PJLthm>
 %
 %<*PJLtoolkit>
 \ProvidesPackage{PJLtoolkit}
-    [2021/05/20 Collective interface of ProjLib Toolkit]
+    [2021/05/25 Collective interface of ProjLib Toolkit]
 %</PJLtoolkit>
 %
 \RequirePackage{kvoptions}
@@ -524,31 +524,32 @@
 \newcommand{\PJLlang at langconfig@russian}{%
     \selectlanguage{russian}%
 }
+
+\RequirePackage{xstring}
 \NewDocumentCommand\AddLanguageSetting{d()m}{%
 \IfNoValueTF{#1}%
     {\gappto{\PJLlang at langconfig@common}{#2}}%
     {%
-        \ifstrequal{#1}{chinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{Chinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{schinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{SChinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{simplifiedchinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{SimplifiedChinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{tchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{TChinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{traditionalchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{TraditionalChinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{japanese}{\gappto{\PJLlang at langconfig@japanese}{#2}}{}%
-        \ifstrequal{#1}{Japanese}{\gappto{\PJLlang at langconfig@japanese}{#2}}{}%
-        \ifstrequal{#1}{english}{\gappto{\PJLlang at langconfig@english}{#2}}{}%
-        \ifstrequal{#1}{English}{\gappto{\PJLlang at langconfig@english}{#2}}{}%
-        \ifstrequal{#1}{french}{\gappto{\PJLlang at langconfig@french}{#2}}{}%
-        \ifstrequal{#1}{French}{\gappto{\PJLlang at langconfig@french}{#2}}{}%
-        \ifstrequal{#1}{ngerman}{\gappto{\PJLlang at langconfig@german}{#2}}{}%
-        \ifstrequal{#1}{german}{\gappto{\PJLlang at langconfig@german}{#2}}{}%
-        \ifstrequal{#1}{German}{\gappto{\PJLlang at langconfig@german}{#2}}{}%
-        \ifstrequal{#1}{russian}{\gappto{\PJLlang at langconfig@russian}{#2}}{}%
-        \ifstrequal{#1}{Russian}{\gappto{\PJLlang at langconfig@russian}{#2}}{}%
+        \lowercase{\IfStrEqCase{#1}}{%
+            {cn}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {chinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {schinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {simplifiedchinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {tc}{\gappto{\PJLlang at langconfig@tchinese}{#2}}%
+            {tchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}%
+            {traditionalchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}%
+            {jp}{\gappto{\PJLlang at langconfig@japanese}{#2}}%
+            {japanese}{\gappto{\PJLlang at langconfig@japanese}{#2}}%
+            {en}{\gappto{\PJLlang at langconfig@english}{#2}}%
+            {english}{\gappto{\PJLlang at langconfig@english}{#2}}%
+            {fr}{\gappto{\PJLlang at langconfig@french}{#2}}%
+            {french}{\gappto{\PJLlang at langconfig@french}{#2}}%
+            {de}{\gappto{\PJLlang at langconfig@german}{#2}}%
+            {ngerman}{\gappto{\PJLlang at langconfig@german}{#2}}%
+            {german}{\gappto{\PJLlang at langconfig@german}{#2}}%
+            {ru}{\gappto{\PJLlang at langconfig@russian}{#2}}%
+            {russian}{\gappto{\PJLlang at langconfig@russian}{#2}}%
+        }%
     }%
 }
 
@@ -561,27 +562,26 @@
 %
 \newcommand{\UseLanguageCORE}[1]{%
     \PJLlang at langconfig@common%
-    \ifstrequal{#1}{chinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{Chinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{schinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{simplifiedchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SimplifiedChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{tchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{traditionalchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TraditionalChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{japanese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{Japanese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{english}{\PJL at config@linespacing\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{English}{\PJL at config@linespacing\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{french}{\PJL at config@linespacing\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{French}{\PJL at config@linespacing\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{ngerman}{\PJL at config@linespacing\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{german}{\PJL at config@linespacing\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{German}{\PJL at config@linespacing\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{russian}{\PJL at config@linespacing\PJLlang at langconfig@russian}{}%
-    \ifstrequal{#1}{Russian}{\PJL at config@linespacing\PJLlang at langconfig@russian}{}%
+    \lowercase{\IfStrEqCase{#1}}{%
+        {cn}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {chinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {schinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {simplifiedchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {tc}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}%
+        {tchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}%
+        {traditionalchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}%
+        {jp}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}%
+        {japanese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}%
+        {en}{\PJL at config@linespacing\PJLlang at langconfig@english}%
+        {english}{\PJL at config@linespacing\PJLlang at langconfig@english}%
+        {fr}{\PJL at config@linespacing\PJLlang at langconfig@french}%
+        {french}{\PJL at config@linespacing\PJLlang at langconfig@french}%
+        {de}{\PJL at config@linespacing\PJLlang at langconfig@german}%
+        {ngerman}{\PJL at config@linespacing\PJLlang at langconfig@german}%
+        {german}{\PJL at config@linespacing\PJLlang at langconfig@german}%
+        {ru}{\PJL at config@linespacing\PJLlang at langconfig@russian}%
+        {russian}{\PJL at config@linespacing\PJLlang at langconfig@russian}%
+    }%
 }
 \newcommand{\UseLanguage}[1]{%
     \ifx\@onlypreamble\@notprerr%
@@ -593,27 +593,26 @@
 \newcommand{\UseOtherLanguage}[2]{%
 \begingroup%
     \PJLlang at langconfig@common%
-    \ifstrequal{#1}{chinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{Chinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{schinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SChinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{simplifiedchinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SimplifiedChinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{tchinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TChinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{traditionalchinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TraditionalChinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{japanese}{\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{Japanese}{\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{english}{\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{English}{\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{french}{\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{French}{\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{ngerman}{\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{german}{\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{German}{\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{russian}{\PJLlang at langconfig@russian}{}%
-    \ifstrequal{#1}{Russian}{\PJLlang at langconfig@russian}{}%
+    \lowercase{\IfStrEqCase{#1}}{%
+        {cn}{\PJLlang at langconfig@chinese}%
+        {chinese}{\PJLlang at langconfig@chinese}%
+        {schinese}{\PJLlang at langconfig@chinese}%
+        {simplifiedchinese}{\PJLlang at langconfig@chinese}%
+        {tc}{\PJLlang at langconfig@tchinese}%
+        {tchinese}{\PJLlang at langconfig@tchinese}%
+        {traditionalchinese}{\PJLlang at langconfig@tchinese}%
+        {jp}{\PJLlang at langconfig@japanese}%
+        {japanese}{\PJLlang at langconfig@japanese}%
+        {en}{\PJLlang at langconfig@english}%
+        {english}{\PJLlang at langconfig@english}%
+        {fr}{\PJLlang at langconfig@french}%
+        {french}{\PJLlang at langconfig@french}%
+        {de}{\PJLlang at langconfig@german}%
+        {ngerman}{\PJLlang at langconfig@german}%
+        {german}{\PJLlang at langconfig@german}%
+        {ru}{\PJLlang at langconfig@russian}%
+        {russian}{\PJLlang at langconfig@russian}%
+    }%
     #2%
 \endgroup%
 }
@@ -636,54 +635,38 @@
 
 \RequirePackage{xcolor}
 \RequirePackage{graphicx}
-\RequirePackage{iftex}
-% \ifPDFTeX
-% \RequirePackage{fontenc}
-% \newcommand{\PJLlogo at font}{\fontfamily{LinuxBiolinumT-TLF}\selectfont}
-% \else
-% \RequirePackage{fontspec}
-% \newcommand{\PJLlogo at font}{\fontspec{LinBiolinum_R.otf}\selectfont}
-% \fi
 \ifdefined\fontspec
-    \newcommand{\PJLlogo at font}{\normalfont\fontspec{LinBiolinum_R.otf}\selectfont}
+  \newfontface{\PJLlogo at font}{LinBiolinum_R.otf}
 \else
-    \PassOptionsToPackage{T1}{fontenc}
-    \RequirePackage{fontenc}
-    \newcommand{\PJLlogo at font}{\normalfont\fontfamily{LinuxBiolinumT-TLF}\selectfont}
+  \RequirePackage[T1]{fontenc}
+  \newcommand{\PJLlogo at font}{\fontfamily{LinuxBiolinumT-TLF}\selectfont}
 \fi
-% \DeclareSymbolFont{PJLupright}{OT1}{zplm}{b}{n}
-\DeclareSymbolFont{PJLupright}{U}{zeur}{b}{n}
-\DeclareMathSymbol{\PJLSigma}{\mathalpha}{PJLupright}{"06}
 
-\providecommand*{\ProjLib}{%
-\begingroup%
-\PJLlogo at font%
-\color{blue!60!cyan}P%
-\color{blue!45!cyan}r%
-\color{blue!30!cyan}o%
-\color{green!70!black}\j%
-% \kern-0.235em\raisebox{0.57em}{\scalebox{0.3}{\rotatebox{-10}{$\PJLSigma$}}}%
-% \kern-0.01em%
-\kern-0.266em\raisebox{0.56em}{\scalebox{0.4}{\rotatebox{-10}{$\PJLSigma$}}}%
-\kern-0.065em%
-\color{red!20!yellow}L%
-\color{red!40!yellow}i%
-\color{red!60!yellow}b%
-\endgroup%
+\newcommand{\PJLSigmaJ}{%
+  \vbox{\offinterlineskip
+    \ialign{%
+      \hfil##\hfil\cr
+      \hidewidth\hskip0.15ex\scalebox{0.4}{\rotatebox{-10}{\usefont{U}{zeur}{b}{n}\symbol{"06}}}\hidewidth\cr
+      \noalign{\kern0.15ex}
+      \j\cr
+    }%
+  }%
 }
 
-\providecommand*{\ProjLibText}{%
-\begingroup%
-\PJLlogo at font%
-\color{blue!60!cyan}P%
-\color{blue!45!cyan}r%
-\color{blue!30!cyan}o%
-\color{green!70!black}j%
-\color{red!20!yellow}L%
-\color{red!40!yellow}i%
-\color{red!60!yellow}b%
-\endgroup%
+\newcommand{\ProjLib at generic}[1]{%
+  \begingroup
+  \normalfont\PJLlogo at font
+  \textcolor{blue!60!cyan}{P}%
+  \textcolor{blue!45!cyan}{r}%
+  \textcolor{blue!30!cyan}{o}%
+  \textcolor{green!70!black}{#1}%
+  \textcolor{red!20!yellow}{L}%
+  \textcolor{red!40!yellow}{i}%
+  \textcolor{red!60!yellow}{b}%
+  \endgroup
 }
+\DeclareRobustCommand*{\ProjLib}{\ProjLib at generic{\PJLSigmaJ}}
+\DeclareRobustCommand*{\ProjLibText}{\ProjLib at generic{j}}
 %</PJLlogo>
 %
 %<*PJLpaper>
@@ -777,20 +760,59 @@
 \PassOptionsToPackage{nameinlink}{cleveref}
 \RequirePackage{cleveref}
 
+% Macro for naming theorems
+\NewDocumentCommand{\NameTheorem}{omm}{%
+    \protected at edef\PJLthm at temp{#2}%
+    \expandafter\IfEndWith\expandafter{\PJLthm at temp}{*}{%
+        \expandafter\StrGobbleRight\expandafter{\PJLthm at temp}{1}[\PJLthm at temp]%
+    }{}%
+    \IfValueTF{#1}{%
+        \lowercase{\IfStrEqCase{#1}}{%
+            {cn}{\def\PJL at temp@abbr{CN}}%
+            {chinese}{\def\PJL at temp@abbr{CN}}%
+            {schinese}{\def\PJL at temp@abbr{CN}}%
+            {simplifiedchinese}{\def\PJL at temp@abbr{CN}}%
+            {tc}{\def\PJL at temp@abbr{TC}}%
+            {tchinese}{\def\PJL at temp@abbr{TC}}%
+            {traditionalchinese}{\def\PJL at temp@abbr{TC}}%
+            {jp}{\def\PJL at temp@abbr{JP}}%
+            {japanese}{\def\PJL at temp@abbr{JP}}%
+            {en}{\def\PJL at temp@abbr{EN}}%
+            {english}{\def\PJL at temp@abbr{EN}}%
+            {fr}{\def\PJL at temp@abbr{FR}}%
+            {french}{\def\PJL at temp@abbr{FR}}%
+            {de}{\def\PJL at temp@abbr{DE}}%
+            {ngerman}{\def\PJL at temp@abbr{DE}}%
+            {german}{\def\PJL at temp@abbr{DE}}%
+            {ru}{\def\PJL at temp@abbr{RU}}%
+            {russian}{\def\PJL at temp@abbr{RU}}%
+        }%
+        \expandafter\def\csname\PJLthm at temp name\PJL at temp@abbr\endcsname{#3}%
+    }{%
+        \expandafter\def\csname\PJLthm at temp nameEN\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameFR\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameDE\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameCN\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameTC\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameJP\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameRU\endcsname{#3}%
+    }%
+}
+
 % Macro for creating theorems
 \RequirePackage{xstring}
 \newcommand\PassFirstToSecond[2]{#2{#1}}%
 \NewDocumentCommand{\CreateTheorem}{sm}{%
     \begingroup
-    \protected at edef\temp{#2}%
-    \expandafter\IfEndWith\expandafter{\temp}{*}{%
-        \expandafter\StrGobbleRight\expandafter{\temp}{1}[\temp]%
+    \protected at edef\PJLthm at temp{#2}%
+    \expandafter\IfEndWith\expandafter{\PJLthm at temp}{*}{%
+        \expandafter\StrGobbleRight\expandafter{\PJLthm at temp}{1}[\PJLthm at temp]%
         \PassFirstToSecond{*}%
     }{%
         \PassFirstToSecond{}%
     }%
     {\expandafter\PassFirstToSecond%
-        \expandafter{\temp}{\endgroup\InnerCreateTheorem{#1}}}%
+        \expandafter{\PJLthm at temp}{\endgroup\InnerCreateTheorem{#1}}}%
 }%
 \if at PJLthm@regionalref
 \NewDocumentCommand{\InnerCreateTheorem}{mmmod<>d()}{%

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLamssim.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLamssim.sty	2021-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLamssim.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLamssim}
-    [2021/05/20 Simulate some features of amsart]
+    [2021/05/25 Simulate some features of amsart]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \ifdefined\subjclass\endinput\fi

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty	2021-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLauthor}
-    [2021/05/20 Enhanced author information block]
+    [2021/05/25 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-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLdate.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLdate}
-    [2021/05/20 Convert yyyy-mm-dd to normal datetime format]
+    [2021/05/25 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-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLdraft}
-    [2021/05/20 Some useful macros for the draft stage]
+    [2021/05/25 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-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLlang.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLlang}
-    [2021/05/20 Multi-language configuration]
+    [2021/05/25 Multi-language configuration]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{%
@@ -118,31 +118,32 @@
 \newcommand{\PJLlang at langconfig@russian}{%
     \selectlanguage{russian}%
 }
+
+\RequirePackage{xstring}
 \NewDocumentCommand\AddLanguageSetting{d()m}{%
 \IfNoValueTF{#1}%
     {\gappto{\PJLlang at langconfig@common}{#2}}%
     {%
-        \ifstrequal{#1}{chinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{Chinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{schinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{SChinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{simplifiedchinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{SimplifiedChinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}{}%
-        \ifstrequal{#1}{tchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{TChinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{traditionalchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{TraditionalChinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}{}%
-        \ifstrequal{#1}{japanese}{\gappto{\PJLlang at langconfig@japanese}{#2}}{}%
-        \ifstrequal{#1}{Japanese}{\gappto{\PJLlang at langconfig@japanese}{#2}}{}%
-        \ifstrequal{#1}{english}{\gappto{\PJLlang at langconfig@english}{#2}}{}%
-        \ifstrequal{#1}{English}{\gappto{\PJLlang at langconfig@english}{#2}}{}%
-        \ifstrequal{#1}{french}{\gappto{\PJLlang at langconfig@french}{#2}}{}%
-        \ifstrequal{#1}{French}{\gappto{\PJLlang at langconfig@french}{#2}}{}%
-        \ifstrequal{#1}{ngerman}{\gappto{\PJLlang at langconfig@german}{#2}}{}%
-        \ifstrequal{#1}{german}{\gappto{\PJLlang at langconfig@german}{#2}}{}%
-        \ifstrequal{#1}{German}{\gappto{\PJLlang at langconfig@german}{#2}}{}%
-        \ifstrequal{#1}{russian}{\gappto{\PJLlang at langconfig@russian}{#2}}{}%
-        \ifstrequal{#1}{Russian}{\gappto{\PJLlang at langconfig@russian}{#2}}{}%
+        \lowercase{\IfStrEqCase{#1}}{%
+            {cn}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {chinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {schinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {simplifiedchinese}{\gappto{\PJLlang at langconfig@chinese}{#2}}%
+            {tc}{\gappto{\PJLlang at langconfig@tchinese}{#2}}%
+            {tchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}%
+            {traditionalchinese}{\gappto{\PJLlang at langconfig@tchinese}{#2}}%
+            {jp}{\gappto{\PJLlang at langconfig@japanese}{#2}}%
+            {japanese}{\gappto{\PJLlang at langconfig@japanese}{#2}}%
+            {en}{\gappto{\PJLlang at langconfig@english}{#2}}%
+            {english}{\gappto{\PJLlang at langconfig@english}{#2}}%
+            {fr}{\gappto{\PJLlang at langconfig@french}{#2}}%
+            {french}{\gappto{\PJLlang at langconfig@french}{#2}}%
+            {de}{\gappto{\PJLlang at langconfig@german}{#2}}%
+            {ngerman}{\gappto{\PJLlang at langconfig@german}{#2}}%
+            {german}{\gappto{\PJLlang at langconfig@german}{#2}}%
+            {ru}{\gappto{\PJLlang at langconfig@russian}{#2}}%
+            {russian}{\gappto{\PJLlang at langconfig@russian}{#2}}%
+        }%
     }%
 }
 
@@ -153,27 +154,26 @@
 \newcommand{\PJLsetCJKlinespacing}[1]{\renewcommand{\PJL at config@CJKlinespacing}{#1}}
 \newcommand{\UseLanguageCORE}[1]{%
     \PJLlang at langconfig@common%
-    \ifstrequal{#1}{chinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{Chinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{schinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{simplifiedchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SimplifiedChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{tchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{traditionalchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TraditionalChinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{japanese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{Japanese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{english}{\PJL at config@linespacing\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{English}{\PJL at config@linespacing\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{french}{\PJL at config@linespacing\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{French}{\PJL at config@linespacing\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{ngerman}{\PJL at config@linespacing\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{german}{\PJL at config@linespacing\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{German}{\PJL at config@linespacing\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{russian}{\PJL at config@linespacing\PJLlang at langconfig@russian}{}%
-    \ifstrequal{#1}{Russian}{\PJL at config@linespacing\PJLlang at langconfig@russian}{}%
+    \lowercase{\IfStrEqCase{#1}}{%
+        {cn}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {chinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {schinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {simplifiedchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@chinese}%
+        {tc}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}%
+        {tchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}%
+        {traditionalchinese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@tchinese}%
+        {jp}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}%
+        {japanese}{\PJL at config@CJKlinespacing\PJLlang at langconfig@japanese}%
+        {en}{\PJL at config@linespacing\PJLlang at langconfig@english}%
+        {english}{\PJL at config@linespacing\PJLlang at langconfig@english}%
+        {fr}{\PJL at config@linespacing\PJLlang at langconfig@french}%
+        {french}{\PJL at config@linespacing\PJLlang at langconfig@french}%
+        {de}{\PJL at config@linespacing\PJLlang at langconfig@german}%
+        {ngerman}{\PJL at config@linespacing\PJLlang at langconfig@german}%
+        {german}{\PJL at config@linespacing\PJLlang at langconfig@german}%
+        {ru}{\PJL at config@linespacing\PJLlang at langconfig@russian}%
+        {russian}{\PJL at config@linespacing\PJLlang at langconfig@russian}%
+    }%
 }
 \newcommand{\UseLanguage}[1]{%
     \ifx\@onlypreamble\@notprerr%
@@ -185,27 +185,26 @@
 \newcommand{\UseOtherLanguage}[2]{%
 \begingroup%
     \PJLlang at langconfig@common%
-    \ifstrequal{#1}{chinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{Chinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{schinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SChinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{simplifiedchinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{SimplifiedChinese}{\PJLlang at langconfig@chinese}{}%
-    \ifstrequal{#1}{tchinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TChinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{traditionalchinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{TraditionalChinese}{\PJLlang at langconfig@tchinese}{}%
-    \ifstrequal{#1}{japanese}{\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{Japanese}{\PJLlang at langconfig@japanese}{}%
-    \ifstrequal{#1}{english}{\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{English}{\PJLlang at langconfig@english}{}%
-    \ifstrequal{#1}{french}{\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{French}{\PJLlang at langconfig@french}{}%
-    \ifstrequal{#1}{ngerman}{\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{german}{\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{German}{\PJLlang at langconfig@german}{}%
-    \ifstrequal{#1}{russian}{\PJLlang at langconfig@russian}{}%
-    \ifstrequal{#1}{Russian}{\PJLlang at langconfig@russian}{}%
+    \lowercase{\IfStrEqCase{#1}}{%
+        {cn}{\PJLlang at langconfig@chinese}%
+        {chinese}{\PJLlang at langconfig@chinese}%
+        {schinese}{\PJLlang at langconfig@chinese}%
+        {simplifiedchinese}{\PJLlang at langconfig@chinese}%
+        {tc}{\PJLlang at langconfig@tchinese}%
+        {tchinese}{\PJLlang at langconfig@tchinese}%
+        {traditionalchinese}{\PJLlang at langconfig@tchinese}%
+        {jp}{\PJLlang at langconfig@japanese}%
+        {japanese}{\PJLlang at langconfig@japanese}%
+        {en}{\PJLlang at langconfig@english}%
+        {english}{\PJLlang at langconfig@english}%
+        {fr}{\PJLlang at langconfig@french}%
+        {french}{\PJLlang at langconfig@french}%
+        {de}{\PJLlang at langconfig@german}%
+        {ngerman}{\PJLlang at langconfig@german}%
+        {german}{\PJLlang at langconfig@german}%
+        {ru}{\PJLlang at langconfig@russian}%
+        {russian}{\PJLlang at langconfig@russian}%
+    }%
     #2%
 \endgroup%
 }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty	2021-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLlogo}
-    [2021/05/20 The ProjLib logo]
+    [2021/05/25 The ProjLib logo]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{
@@ -34,44 +34,38 @@
 
 \RequirePackage{xcolor}
 \RequirePackage{graphicx}
-\RequirePackage{iftex}
 \ifdefined\fontspec
-    \newcommand{\PJLlogo at font}{\normalfont\fontspec{LinBiolinum_R.otf}\selectfont}
+  \newfontface{\PJLlogo at font}{LinBiolinum_R.otf}
 \else
-    \PassOptionsToPackage{T1}{fontenc}
-    \RequirePackage{fontenc}
-    \newcommand{\PJLlogo at font}{\normalfont\fontfamily{LinuxBiolinumT-TLF}\selectfont}
+  \RequirePackage[T1]{fontenc}
+  \newcommand{\PJLlogo at font}{\fontfamily{LinuxBiolinumT-TLF}\selectfont}
 \fi
-\DeclareSymbolFont{PJLupright}{U}{zeur}{b}{n}
-\DeclareMathSymbol{\PJLSigma}{\mathalpha}{PJLupright}{"06}
 
-\providecommand*{\ProjLib}{%
-\begingroup%
-\PJLlogo at font%
-\color{blue!60!cyan}P%
-\color{blue!45!cyan}r%
-\color{blue!30!cyan}o%
-\color{green!70!black}\j%
-\kern-0.266em\raisebox{0.56em}{\scalebox{0.4}{\rotatebox{-10}{$\PJLSigma$}}}%
-\kern-0.065em%
-\color{red!20!yellow}L%
-\color{red!40!yellow}i%
-\color{red!60!yellow}b%
-\endgroup%
+\newcommand{\PJLSigmaJ}{%
+  \vbox{\offinterlineskip
+    \ialign{%
+      \hfil##\hfil\cr
+      \hidewidth\hskip0.15ex\scalebox{0.4}{\rotatebox{-10}{\usefont{U}{zeur}{b}{n}\symbol{"06}}}\hidewidth\cr
+      \noalign{\kern0.15ex}
+      \j\cr
+    }%
+  }%
 }
 
-\providecommand*{\ProjLibText}{%
-\begingroup%
-\PJLlogo at font%
-\color{blue!60!cyan}P%
-\color{blue!45!cyan}r%
-\color{blue!30!cyan}o%
-\color{green!70!black}j%
-\color{red!20!yellow}L%
-\color{red!40!yellow}i%
-\color{red!60!yellow}b%
-\endgroup%
+\newcommand{\ProjLib at generic}[1]{%
+  \begingroup
+  \normalfont\PJLlogo at font
+  \textcolor{blue!60!cyan}{P}%
+  \textcolor{blue!45!cyan}{r}%
+  \textcolor{blue!30!cyan}{o}%
+  \textcolor{green!70!black}{#1}%
+  \textcolor{red!20!yellow}{L}%
+  \textcolor{red!40!yellow}{i}%
+  \textcolor{red!60!yellow}{b}%
+  \endgroup
 }
+\DeclareRobustCommand*{\ProjLib}{\ProjLib at generic{\PJLSigmaJ}}
+\DeclareRobustCommand*{\ProjLibText}{\ProjLib at generic{j}}
 
 \endinput
 %%

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty	2021-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLpaper}
-    [2021/05/20 Paper style configuration]
+    [2021/05/25 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-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLthm.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLthm}
-    [2021/05/20 Theorem setup and configuration]
+    [2021/05/25 Theorem setup and configuration]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{%
@@ -38,19 +38,57 @@
 \PassOptionsToPackage{nameinlink}{cleveref}
 \RequirePackage{cleveref}
 
+\NewDocumentCommand{\NameTheorem}{omm}{%
+    \protected at edef\PJLthm at temp{#2}%
+    \expandafter\IfEndWith\expandafter{\PJLthm at temp}{*}{%
+        \expandafter\StrGobbleRight\expandafter{\PJLthm at temp}{1}[\PJLthm at temp]%
+    }{}%
+    \IfValueTF{#1}{%
+        \lowercase{\IfStrEqCase{#1}}{%
+            {cn}{\def\PJL at temp@abbr{CN}}%
+            {chinese}{\def\PJL at temp@abbr{CN}}%
+            {schinese}{\def\PJL at temp@abbr{CN}}%
+            {simplifiedchinese}{\def\PJL at temp@abbr{CN}}%
+            {tc}{\def\PJL at temp@abbr{TC}}%
+            {tchinese}{\def\PJL at temp@abbr{TC}}%
+            {traditionalchinese}{\def\PJL at temp@abbr{TC}}%
+            {jp}{\def\PJL at temp@abbr{JP}}%
+            {japanese}{\def\PJL at temp@abbr{JP}}%
+            {en}{\def\PJL at temp@abbr{EN}}%
+            {english}{\def\PJL at temp@abbr{EN}}%
+            {fr}{\def\PJL at temp@abbr{FR}}%
+            {french}{\def\PJL at temp@abbr{FR}}%
+            {de}{\def\PJL at temp@abbr{DE}}%
+            {ngerman}{\def\PJL at temp@abbr{DE}}%
+            {german}{\def\PJL at temp@abbr{DE}}%
+            {ru}{\def\PJL at temp@abbr{RU}}%
+            {russian}{\def\PJL at temp@abbr{RU}}%
+        }%
+        \expandafter\def\csname\PJLthm at temp name\PJL at temp@abbr\endcsname{#3}%
+    }{%
+        \expandafter\def\csname\PJLthm at temp nameEN\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameFR\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameDE\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameCN\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameTC\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameJP\endcsname{#3}%
+        \expandafter\def\csname\PJLthm at temp nameRU\endcsname{#3}%
+    }%
+}
+
 \RequirePackage{xstring}
 \newcommand\PassFirstToSecond[2]{#2{#1}}%
 \NewDocumentCommand{\CreateTheorem}{sm}{%
     \begingroup
-    \protected at edef\temp{#2}%
-    \expandafter\IfEndWith\expandafter{\temp}{*}{%
-        \expandafter\StrGobbleRight\expandafter{\temp}{1}[\temp]%
+    \protected at edef\PJLthm at temp{#2}%
+    \expandafter\IfEndWith\expandafter{\PJLthm at temp}{*}{%
+        \expandafter\StrGobbleRight\expandafter{\PJLthm at temp}{1}[\PJLthm at temp]%
         \PassFirstToSecond{*}%
     }{%
         \PassFirstToSecond{}%
     }%
     {\expandafter\PassFirstToSecond%
-        \expandafter{\temp}{\endgroup\InnerCreateTheorem{#1}}}%
+        \expandafter{\PJLthm at temp}{\endgroup\InnerCreateTheorem{#1}}}%
 }%
 \if at PJLthm@regionalref
 \NewDocumentCommand{\InnerCreateTheorem}{mmmod<>d()}{%

Modified: trunk/Master/texmf-dist/tex/latex/projlib/PJLtoolkit.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/PJLtoolkit.sty	2021-05-25 20:49:00 UTC (rev 59346)
+++ trunk/Master/texmf-dist/tex/latex/projlib/PJLtoolkit.sty	2021-05-25 20:49:43 UTC (rev 59347)
@@ -17,7 +17,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020-10-01]
 \ProvidesPackage{PJLtoolkit}
-    [2021/05/20 Collective interface of ProjLib Toolkit]
+    [2021/05/25 Collective interface of ProjLib Toolkit]
 \RequirePackage{kvoptions}
 \RequirePackage{etoolbox}
 \SetupKeyvalOptions{



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