From 8982c52e00ffb3fb5a913fc60913ebd9070f091a Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 26 May 2021 03:05:34 +0000 Subject: CTAN sync 202105260305 --- macros/latex/contrib/projlib/ProjLib-doc-cn.pdf | Bin 222934 -> 223464 bytes macros/latex/contrib/projlib/ProjLib-doc-cn.tex | 59 +++--- macros/latex/contrib/projlib/ProjLib-doc-en.pdf | Bin 143188 -> 143184 bytes macros/latex/contrib/projlib/ProjLib-doc-en.tex | 59 +++--- macros/latex/contrib/projlib/ProjLib.dtx | 256 +++++++++++++----------- 5 files changed, 208 insertions(+), 166 deletions(-) (limited to 'macros/latex/contrib/projlib') diff --git a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf index 090fa0463b..5de46fbd21 100644 Binary files a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf and b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf 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} \bigskip 下面提供一个例子。这三行代码: \begin{code} - \def\proofideanameCN{思路} + \NameTheorem[CN]{proofidea}{思路} \CreateTheorem*{proofidea*} \CreateTheorem{proofidea} \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 Binary files a/macros/latex/contrib/projlib/ProjLib-doc-en.pdf and b/macros/latex/contrib/projlib/ProjLib-doc-en.pdf 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} \bigskip Here is an example. The following code: \begin{code} - \def\proofideanameEN{Idea} + \NameTheorem[EN]{proofidea}{Idea} \CreateTheorem*{proofidea*} \CreateTheorem{proofidea} \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] % % %<*PJLauthor> \ProvidesPackage{PJLauthor} - [2021/05/20 Enhanced author information block] + [2021/05/25 Enhanced author information block] % % %<*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] % % %<*PJLdraft> \ProvidesPackage{PJLdraft} - [2021/05/20 Some useful macros for the draft stage] + [2021/05/25 Some useful macros for the draft stage] % % %<*PJLlang> \ProvidesPackage{PJLlang} - [2021/05/20 Multi-language configuration] + [2021/05/25 Multi-language configuration] % % %<*PJLlogo> \ProvidesPackage{PJLlogo} - [2021/05/20 The ProjLib logo] + [2021/05/25 The ProjLib logo] % % %<*PJLpaper> \ProvidesPackage{PJLpaper} - [2021/05/20 Paper style configuration] + [2021/05/25 Paper style configuration] % % %<*PJLthm> \ProvidesPackage{PJLthm} - [2021/05/20 Theorem setup and configuration] + [2021/05/25 Theorem setup and configuration] % % %<*PJLtoolkit> \ProvidesPackage{PJLtoolkit} - [2021/05/20 Collective interface of ProjLib Toolkit] + [2021/05/25 Collective interface of ProjLib Toolkit] % % \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}} % % %<*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()}{% -- cgit v1.2.3