summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/projlib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-05-26 03:05:34 +0000
committerNorbert Preining <norbert@preining.info>2021-05-26 03:05:34 +0000
commit8982c52e00ffb3fb5a913fc60913ebd9070f091a (patch)
tree6a395986e3502fefcf42364f8dd87519b45a2441 /macros/latex/contrib/projlib
parent07dc96bc3bbd691fc52aca15a172eaf41a89d873 (diff)
CTAN sync 202105260305
Diffstat (limited to 'macros/latex/contrib/projlib')
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc-cn.pdfbin222934 -> 223464 bytes
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc-cn.tex59
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc-en.pdfbin143188 -> 143184 bytes
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc-en.tex59
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx256
5 files changed, 208 insertions, 166 deletions
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
index 090fa0463b..5de46fbd21 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
+++ b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-cn.tex b/macros/latex/contrib/projlib/ProjLib-doc-cn.tex
index 65c2f0ac2c..32adbf5a85 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc-cn.tex
+++ b/macros/latex/contrib/projlib/ProjLib-doc-cn.tex
@@ -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|}|。这样就不必每次都写上相应环境的名称了。
-
-\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}
-
\begin{remind}
- 如果要定义名称后带有星号 \lstinline|*| 的环境,那么在上面的 \meta{name of environment} 中不用写星号。
+ 在引用定理类环境时,建议使用智能引用 \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}
+
+% \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,14 +338,15 @@
其内部使用了 \textsf{amsthm},因此传统的 \texttt{theoremstyle} 对其也是适用的,只需在相关定义前标明即可。
\end{remind}
-\def\proofideanameCN{思路}
+% \def\proofideanameCN{思路}
+\NameTheorem[CN]{proofidea}{思路}
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>
\bigskip
下面提供一个例子。这三行代码:
\begin{code}
- \def\proofideanameCN{思路}
+ \NameTheorem[CN]{proofidea}{思路}
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>
\end{code}
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-en.pdf b/macros/latex/contrib/projlib/ProjLib-doc-en.pdf
index f4ebb70a96..d040c9b903 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc-en.pdf
+++ b/macros/latex/contrib/projlib/ProjLib-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-en.tex b/macros/latex/contrib/projlib/ProjLib-doc-en.tex
index b89c62a660..dd1cff3759 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc-en.tex
+++ b/macros/latex/contrib/projlib/ProjLib-doc-en.tex
@@ -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 @@ For details on how to select a language, please refer to the section on \PJLlang
\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,21 +275,29 @@ It is recommended to pass these options as global options of the document class.
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}
+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}{...}| .
-\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}
\clearpage% \medskip
And then define this environment in one of following five ways:
@@ -326,14 +334,15 @@ And then define this environment in one of following five ways:
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>
\bigskip
Here is an example. The following code:
\begin{code}
- \def\proofideanameEN{Idea}
+ \NameTheorem[EN]{proofidea}{Idea}
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>
\end{code}
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
index 12abe0328e..de0b0f23b7 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -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@langconfig@russian}{%
\selectlanguage{russian}%
}
+
+\RequirePackage{xstring}
\NewDocumentCommand\AddLanguageSetting{d()m}{%
\IfNoValueTF{#1}%
{\gappto{\PJLlang@langconfig@common}{#2}}%
{%
- \ifstrequal{#1}{chinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
- \ifstrequal{#1}{Chinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
- \ifstrequal{#1}{schinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
- \ifstrequal{#1}{SChinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
- \ifstrequal{#1}{simplifiedchinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
- \ifstrequal{#1}{SimplifiedChinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
- \ifstrequal{#1}{tchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
- \ifstrequal{#1}{TChinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
- \ifstrequal{#1}{traditionalchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
- \ifstrequal{#1}{TraditionalChinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
- \ifstrequal{#1}{japanese}{\gappto{\PJLlang@langconfig@japanese}{#2}}{}%
- \ifstrequal{#1}{Japanese}{\gappto{\PJLlang@langconfig@japanese}{#2}}{}%
- \ifstrequal{#1}{english}{\gappto{\PJLlang@langconfig@english}{#2}}{}%
- \ifstrequal{#1}{English}{\gappto{\PJLlang@langconfig@english}{#2}}{}%
- \ifstrequal{#1}{french}{\gappto{\PJLlang@langconfig@french}{#2}}{}%
- \ifstrequal{#1}{French}{\gappto{\PJLlang@langconfig@french}{#2}}{}%
- \ifstrequal{#1}{ngerman}{\gappto{\PJLlang@langconfig@german}{#2}}{}%
- \ifstrequal{#1}{german}{\gappto{\PJLlang@langconfig@german}{#2}}{}%
- \ifstrequal{#1}{German}{\gappto{\PJLlang@langconfig@german}{#2}}{}%
- \ifstrequal{#1}{russian}{\gappto{\PJLlang@langconfig@russian}{#2}}{}%
- \ifstrequal{#1}{Russian}{\gappto{\PJLlang@langconfig@russian}{#2}}{}%
+ \lowercase{\IfStrEqCase{#1}}{%
+ {cn}{\gappto{\PJLlang@langconfig@chinese}{#2}}%
+ {chinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}%
+ {schinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}%
+ {simplifiedchinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}%
+ {tc}{\gappto{\PJLlang@langconfig@tchinese}{#2}}%
+ {tchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}%
+ {traditionalchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}%
+ {jp}{\gappto{\PJLlang@langconfig@japanese}{#2}}%
+ {japanese}{\gappto{\PJLlang@langconfig@japanese}{#2}}%
+ {en}{\gappto{\PJLlang@langconfig@english}{#2}}%
+ {english}{\gappto{\PJLlang@langconfig@english}{#2}}%
+ {fr}{\gappto{\PJLlang@langconfig@french}{#2}}%
+ {french}{\gappto{\PJLlang@langconfig@french}{#2}}%
+ {de}{\gappto{\PJLlang@langconfig@german}{#2}}%
+ {ngerman}{\gappto{\PJLlang@langconfig@german}{#2}}%
+ {german}{\gappto{\PJLlang@langconfig@german}{#2}}%
+ {ru}{\gappto{\PJLlang@langconfig@russian}{#2}}%
+ {russian}{\gappto{\PJLlang@langconfig@russian}{#2}}%
+ }%
}%
}
@@ -561,27 +562,26 @@
%
\newcommand{\UseLanguageCORE}[1]{%
\PJLlang@langconfig@common%
- \ifstrequal{#1}{chinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{Chinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{schinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{SChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{simplifiedchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{SimplifiedChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{tchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{TChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{traditionalchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{TraditionalChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{japanese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@japanese}{}%
- \ifstrequal{#1}{Japanese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@japanese}{}%
- \ifstrequal{#1}{english}{\PJL@config@linespacing\PJLlang@langconfig@english}{}%
- \ifstrequal{#1}{English}{\PJL@config@linespacing\PJLlang@langconfig@english}{}%
- \ifstrequal{#1}{french}{\PJL@config@linespacing\PJLlang@langconfig@french}{}%
- \ifstrequal{#1}{French}{\PJL@config@linespacing\PJLlang@langconfig@french}{}%
- \ifstrequal{#1}{ngerman}{\PJL@config@linespacing\PJLlang@langconfig@german}{}%
- \ifstrequal{#1}{german}{\PJL@config@linespacing\PJLlang@langconfig@german}{}%
- \ifstrequal{#1}{German}{\PJL@config@linespacing\PJLlang@langconfig@german}{}%
- \ifstrequal{#1}{russian}{\PJL@config@linespacing\PJLlang@langconfig@russian}{}%
- \ifstrequal{#1}{Russian}{\PJL@config@linespacing\PJLlang@langconfig@russian}{}%
+ \lowercase{\IfStrEqCase{#1}}{%
+ {cn}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}%
+ {chinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}%
+ {schinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}%
+ {simplifiedchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}%
+ {tc}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}%
+ {tchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}%
+ {traditionalchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}%
+ {jp}{\PJL@config@CJKlinespacing\PJLlang@langconfig@japanese}%
+ {japanese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@japanese}%
+ {en}{\PJL@config@linespacing\PJLlang@langconfig@english}%
+ {english}{\PJL@config@linespacing\PJLlang@langconfig@english}%
+ {fr}{\PJL@config@linespacing\PJLlang@langconfig@french}%
+ {french}{\PJL@config@linespacing\PJLlang@langconfig@french}%
+ {de}{\PJL@config@linespacing\PJLlang@langconfig@german}%
+ {ngerman}{\PJL@config@linespacing\PJLlang@langconfig@german}%
+ {german}{\PJL@config@linespacing\PJLlang@langconfig@german}%
+ {ru}{\PJL@config@linespacing\PJLlang@langconfig@russian}%
+ {russian}{\PJL@config@linespacing\PJLlang@langconfig@russian}%
+ }%
}
\newcommand{\UseLanguage}[1]{%
\ifx\@onlypreamble\@notprerr%
@@ -593,27 +593,26 @@
\newcommand{\UseOtherLanguage}[2]{%
\begingroup%
\PJLlang@langconfig@common%
- \ifstrequal{#1}{chinese}{\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{Chinese}{\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{schinese}{\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{SChinese}{\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{simplifiedchinese}{\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{SimplifiedChinese}{\PJLlang@langconfig@chinese}{}%
- \ifstrequal{#1}{tchinese}{\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{TChinese}{\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{traditionalchinese}{\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{TraditionalChinese}{\PJLlang@langconfig@tchinese}{}%
- \ifstrequal{#1}{japanese}{\PJLlang@langconfig@japanese}{}%
- \ifstrequal{#1}{Japanese}{\PJLlang@langconfig@japanese}{}%
- \ifstrequal{#1}{english}{\PJLlang@langconfig@english}{}%
- \ifstrequal{#1}{English}{\PJLlang@langconfig@english}{}%
- \ifstrequal{#1}{french}{\PJLlang@langconfig@french}{}%
- \ifstrequal{#1}{French}{\PJLlang@langconfig@french}{}%
- \ifstrequal{#1}{ngerman}{\PJLlang@langconfig@german}{}%
- \ifstrequal{#1}{german}{\PJLlang@langconfig@german}{}%
- \ifstrequal{#1}{German}{\PJLlang@langconfig@german}{}%
- \ifstrequal{#1}{russian}{\PJLlang@langconfig@russian}{}%
- \ifstrequal{#1}{Russian}{\PJLlang@langconfig@russian}{}%
+ \lowercase{\IfStrEqCase{#1}}{%
+ {cn}{\PJLlang@langconfig@chinese}%
+ {chinese}{\PJLlang@langconfig@chinese}%
+ {schinese}{\PJLlang@langconfig@chinese}%
+ {simplifiedchinese}{\PJLlang@langconfig@chinese}%
+ {tc}{\PJLlang@langconfig@tchinese}%
+ {tchinese}{\PJLlang@langconfig@tchinese}%
+ {traditionalchinese}{\PJLlang@langconfig@tchinese}%
+ {jp}{\PJLlang@langconfig@japanese}%
+ {japanese}{\PJLlang@langconfig@japanese}%
+ {en}{\PJLlang@langconfig@english}%
+ {english}{\PJLlang@langconfig@english}%
+ {fr}{\PJLlang@langconfig@french}%
+ {french}{\PJLlang@langconfig@french}%
+ {de}{\PJLlang@langconfig@german}%
+ {ngerman}{\PJLlang@langconfig@german}%
+ {german}{\PJLlang@langconfig@german}%
+ {ru}{\PJLlang@langconfig@russian}%
+ {russian}{\PJLlang@langconfig@russian}%
+ }%
#2%
\endgroup%
}
@@ -636,54 +635,38 @@
\RequirePackage{xcolor}
\RequirePackage{graphicx}
-\RequirePackage{iftex}
-% \ifPDFTeX
-% \RequirePackage{fontenc}
-% \newcommand{\PJLlogo@font}{\fontfamily{LinuxBiolinumT-TLF}\selectfont}
-% \else
-% \RequirePackage{fontspec}
-% \newcommand{\PJLlogo@font}{\fontspec{LinBiolinum_R.otf}\selectfont}
-% \fi
\ifdefined\fontspec
- \newcommand{\PJLlogo@font}{\normalfont\fontspec{LinBiolinum_R.otf}\selectfont}
+ \newfontface{\PJLlogo@font}{LinBiolinum_R.otf}
\else
- \PassOptionsToPackage{T1}{fontenc}
- \RequirePackage{fontenc}
- \newcommand{\PJLlogo@font}{\normalfont\fontfamily{LinuxBiolinumT-TLF}\selectfont}
+ \RequirePackage[T1]{fontenc}
+ \newcommand{\PJLlogo@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@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@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@generic}[1]{%
+ \begingroup
+ \normalfont\PJLlogo@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@generic{\PJLSigmaJ}}
+\DeclareRobustCommand*{\ProjLibText}{\ProjLib@generic{j}}
%</PJLlogo>
%
%<*PJLpaper>
@@ -777,20 +760,59 @@
\PassOptionsToPackage{nameinlink}{cleveref}
\RequirePackage{cleveref}
+% Macro for naming theorems
+\NewDocumentCommand{\NameTheorem}{omm}{%
+ \protected@edef\PJLthm@temp{#2}%
+ \expandafter\IfEndWith\expandafter{\PJLthm@temp}{*}{%
+ \expandafter\StrGobbleRight\expandafter{\PJLthm@temp}{1}[\PJLthm@temp]%
+ }{}%
+ \IfValueTF{#1}{%
+ \lowercase{\IfStrEqCase{#1}}{%
+ {cn}{\def\PJL@temp@abbr{CN}}%
+ {chinese}{\def\PJL@temp@abbr{CN}}%
+ {schinese}{\def\PJL@temp@abbr{CN}}%
+ {simplifiedchinese}{\def\PJL@temp@abbr{CN}}%
+ {tc}{\def\PJL@temp@abbr{TC}}%
+ {tchinese}{\def\PJL@temp@abbr{TC}}%
+ {traditionalchinese}{\def\PJL@temp@abbr{TC}}%
+ {jp}{\def\PJL@temp@abbr{JP}}%
+ {japanese}{\def\PJL@temp@abbr{JP}}%
+ {en}{\def\PJL@temp@abbr{EN}}%
+ {english}{\def\PJL@temp@abbr{EN}}%
+ {fr}{\def\PJL@temp@abbr{FR}}%
+ {french}{\def\PJL@temp@abbr{FR}}%
+ {de}{\def\PJL@temp@abbr{DE}}%
+ {ngerman}{\def\PJL@temp@abbr{DE}}%
+ {german}{\def\PJL@temp@abbr{DE}}%
+ {ru}{\def\PJL@temp@abbr{RU}}%
+ {russian}{\def\PJL@temp@abbr{RU}}%
+ }%
+ \expandafter\def\csname\PJLthm@temp name\PJL@temp@abbr\endcsname{#3}%
+ }{%
+ \expandafter\def\csname\PJLthm@temp nameEN\endcsname{#3}%
+ \expandafter\def\csname\PJLthm@temp nameFR\endcsname{#3}%
+ \expandafter\def\csname\PJLthm@temp nameDE\endcsname{#3}%
+ \expandafter\def\csname\PJLthm@temp nameCN\endcsname{#3}%
+ \expandafter\def\csname\PJLthm@temp nameTC\endcsname{#3}%
+ \expandafter\def\csname\PJLthm@temp nameJP\endcsname{#3}%
+ \expandafter\def\csname\PJLthm@temp nameRU\endcsname{#3}%
+ }%
+}
+
% Macro for creating theorems
\RequirePackage{xstring}
\newcommand\PassFirstToSecond[2]{#2{#1}}%
\NewDocumentCommand{\CreateTheorem}{sm}{%
\begingroup
- \protected@edef\temp{#2}%
- \expandafter\IfEndWith\expandafter{\temp}{*}{%
- \expandafter\StrGobbleRight\expandafter{\temp}{1}[\temp]%
+ \protected@edef\PJLthm@temp{#2}%
+ \expandafter\IfEndWith\expandafter{\PJLthm@temp}{*}{%
+ \expandafter\StrGobbleRight\expandafter{\PJLthm@temp}{1}[\PJLthm@temp]%
\PassFirstToSecond{*}%
}{%
\PassFirstToSecond{}%
}%
{\expandafter\PassFirstToSecond%
- \expandafter{\temp}{\endgroup\InnerCreateTheorem{#1}}}%
+ \expandafter{\PJLthm@temp}{\endgroup\InnerCreateTheorem{#1}}}%
}%
\if@PJLthm@regionalref
\NewDocumentCommand{\InnerCreateTheorem}{mmmod<>d()}{%