summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-03-10 21:25:27 +0000
committerKarl Berry <karl@freefriends.org>2022-03-10 21:25:27 +0000
commit620ec64c7e6e3ffa4a00394c17e638414fc32c6a (patch)
tree8aa1f01bdaa7aa6c1d5755d99526b0c622f83175
parent9e37d64fedc12c8c794246708b22fce76d1090ac (diff)
projlib (10mar22) (branch)
git-svn-id: svn://tug.org/texlive/branches/branch2021.final@62601 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/projlib/README.md11
-rw-r--r--Master/texmf-dist/source/latex/projlib/ProjLib.dtx3683
-rw-r--r--Master/texmf-dist/source/latex/projlib/ProjLib.ins72
-rw-r--r--Master/texmf-dist/tex/latex/projlib/ProjLib.sty211
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLauthor.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLauthor.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLdate.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLdate.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLdraft.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLdraft.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLlang.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLlang.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLlogo.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLlogo.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLmath.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLmath.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLpaper.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLpaper.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLthm.sty (renamed from Master/texmf-dist/tex/latex/projlib/PJLthm.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/old-modules/PJLtoolkit.sty184
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-author.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-author.sty)7
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-datetime.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty)10
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-draft.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-draft.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-font.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-font.sty)9
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-language.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-language.sty)14
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-logo.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-logo.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-math.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-math.sty)0
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-paper.sty (renamed from Master/texmf-dist/doc/latex/projlib/new-modules/projlib-paper.sty)55
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty1184
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
23 files changed, 1471 insertions, 3970 deletions
diff --git a/Master/texmf-dist/doc/latex/projlib/README.md b/Master/texmf-dist/doc/latex/projlib/README.md
index 91c7d4dcfe0..3b5a6fbcf87 100644
--- a/Master/texmf-dist/doc/latex/projlib/README.md
+++ b/Master/texmf-dist/doc/latex/projlib/README.md
@@ -2,15 +2,17 @@
# ProjLib Toolkit
-The bundle is dated 2022/02/27
+The bundle is dated 2022/03/09
Old modules are still dated 2021/12/16 and will *not* be modified. When all the new modules are finished, old files shall be removed from this bundle.
## **Important note**
-The whole project is being rewritten with `expl3`. New modules have the name with prefix "projlib-", and they are in many ways better and more powerful than their predecessors. Some basically finished new modules are included in the bundle but are not yet documented. Most importantly, they are not compatible with the old modules, so they cannot appear at the same time in the same document, which, unfortunately, means that (for now) they cannot be used in classes like `einfart` or `lebhart`, etc.
+The whole project is being rewritten with `expl3`. The new modules are basically finished but are not yet documented. They have the names with prefix "projlib-", and they are in many ways better and more powerful than their predecessors. Most importantly, they are not compatible with the old modules, so they cannot appear at the same time in the same document, which, unfortunately, means that (for now) they cannot be used in classes like `einfart` or `lebhart`, etc.
-The newly added modules include:
+The current `ProjLib.sty` is the new `expl3` version, the old one has been renamed to `PJLtoolkit.sty`.
+
+The new modules are:
- projlib-author
- projlib-datetime
- projlib-draft
@@ -19,9 +21,12 @@ The newly added modules include:
- projlib-logo
- projlib-math
- projlib-paper
+- projlib-theorem
When all these modules are finished, the documentation will be updated accordingly.
+Below are the old README.
+
---
> **ProjLib** can be interpreted as "***Proj**ect **Lib**rary*" (in English), or as "***Proj**et **Lib**re*" (in French).
diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx b/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
deleted file mode 100644
index adfc509e76a..00000000000
--- a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
+++ /dev/null
@@ -1,3683 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2021 by Jinwen XU
-% -------------------------------
-%
-% This file may be distributed and/or modified under the conditions of the LaTeX
-% Project Public License, either version 1.3c of this license or (at your option)
-% any later version. The latest version of this license is in:
-%
-% http://www.latex-project.org/lppl.txt
-%
-% \fi
-%
-%<*driver>
-\ProvidesFile{ProjLib.dtx}
-%</driver>
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-%
-%<*ProjLib>
-\ProvidesPackage{ProjLib}
- [2021/12/16 The collective interface of ProjLib toolkit]
-%</ProjLib>
-%
-%<*PJLauthor>
-\ProvidesPackage{PJLauthor}
- [2021/12/16 Enhanced author information block]
-%</PJLauthor>
-%
-%<*PJLdate>
-\ProvidesPackage{PJLdate}
- [2021/12/16 Convert yyyy-mm-dd to normal datetime format]
-%</PJLdate>
-%
-%<*PJLdraft>
-\ProvidesPackage{PJLdraft}
- [2021/12/16 Some useful macros for the draft stage]
-%</PJLdraft>
-%
-%<*PJLlang>
-\ProvidesPackage{PJLlang}
- [2021/12/16 Multi-language configuration]
-%</PJLlang>
-%
-%<*PJLlogo>
-\ProvidesPackage{PJLlogo}
- [2021/12/16 The ProjLib logo]
-%</PJLlogo>
-%
-%<*PJLmath>
-\ProvidesPackage{PJLmath}
- [2021/12/16 Useful math macros and shortcuts]
-%</PJLmath>
-%
-%<*PJLpaper>
-\ProvidesPackage{PJLpaper}
- [2021/12/16 Paper style configuration]
-%</PJLpaper>
-%
-%<*PJLthm>
-\ProvidesPackage{PJLthm}
- [2021/12/16 Theorem setup and configuration]
-%</PJLthm>
-%
-%# 下面两行引入宏包的代码是所有文件共用的。
-%# The following two lines are common to all files.
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
-%
-%<*PJLauthor>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLauthor,
- prefix = @PJLauthor@,
-}
-%# 支持 AMS 风格
-%# Support AMS fashion
-\DeclareBoolOption[false]{amsfashion}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%# 在 AMS 文档类中不执行任何操作
-%# Do nothing if AMS class detected
-\ifdefined\subjclass\endinput\fi
-
-%%================================
-%% Font and style
-%%================================
-%# 各个作者信息元素的字体
-%# Font of the elements in the author block
-\def\PJLauthor@font@author{\normalsize\normalfont\scshape}
-\def\PJLauthor@font@address{\small\normalfont\itshape}
-\def\PJLauthor@font@curraddr{\small\normalfont\itshape}
-\def\PJLauthor@font@email{\small\normalfont\ttfamily}
-
-%%================================
-%% Lengths
-%%================================
-%# author 和 address 之间的距离
-%# Space between author and address
-\newlength{\PJLauthor@length@innersep}
-\setlength{\PJLauthor@length@innersep}{.3\baselineskip}
-%# 两个作者块之间的距离
-%# Space between different author blocks
-\newlength{\PJLauthor@length@sep}
-\setlength{\PJLauthor@length@sep}{.5\baselineskip}
-%# 作者块和日期之间的距离
-%# Space between affiliation and date
-\newlength{\PJLauthor@length@aftersep}
-\setlength{\PJLauthor@length@aftersep}{.3\baselineskip}
-
-%%================================
-%% The macros
-%%================================
-%# 用来记录当前是否有附加作者信息,以便调整距离
-%# To record whether there's affiliation so as to adjust the vertical space
-\newif\if@PJLauthor@affilon
-%# 作者
-%# author
-\renewcommand*{\author}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \vspace{\PJLauthor@length@sep}%
- \PJLauthor@font@author{#1}\\\phantom{}
- \@PJLauthor@affilonfalse}}
-%# 地址
-%# address
-\providecommand*{\address}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \if@PJLauthor@affilon\else%
- \vspace{\PJLauthor@length@innersep}%
- \fi%
- \@PJLauthor@affilontrue%
- \PJLauthor@font@address{#1}\\\phantom{}}%
-}
-%# 当前地址
-%# curraddr
-\providecommand*{\curraddr}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \if@PJLauthor@affilon\else%
- \vspace{\PJLauthor@length@innersep}%
- \fi%
- \@PJLauthor@affilontrue%
- \PJLauthor@font@curraddr{#1}\\\phantom{}}%
-}
-%# 电子邮箱
-%# email
-\providecommand*{\email}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \if@PJLauthor@affilon\else%
- \vspace{\PJLauthor@length@innersep}%
- \fi%
- \@PJLauthor@affilontrue%
- \PJLauthor@font@email{#1}\\\phantom{}}%
-}
-
-%%================================
-%% Adjustment
-%%================================
-%# 去除 maketitle 中默认对 author 的处理
-%# Remove the tabular around \@author in maketitle
-\patchcmd{\@maketitle}{\begin{tabular}[t]{c}}{}{}{}
-\patchcmd{\@maketitle}{\end{tabular}}{}{}{}
-%# 下面这一行是为了避免错误 "No \author given."
-%# The follwing line is for avoiding the error "No \author given."
-\def\@author{}
-%# 修正作者块的前后等距离
-%# Adjust the spacing before and after the author block
-\pretocmd{\@maketitle}{%
- \pretocmd{\@author}{\vspace{-\PJLauthor@length@sep}}{}{\FAIL}%
- \apptocmd{\@author}{%
-% Fix the space caused by `\\\phantom{}`
- \vspace{-\baselineskip}%
- \if@PJLauthor@affilon%
- \vspace{\PJLauthor@length@aftersep}%
- \fi%
- }{}{\FAIL}%
-}{}{\FAIL}
-
-%# 若使用 AMS 风格
-%# If AMS fashion enabled
-\ifbool{@PJLauthor@amsfashion}{
-
-%# 使用 PJLlang 以支持自动语言转换
-%# Use `PJLlang` to support automatic language conversion
-\RequirePackage{PJLlang}
-\RequirePackage{calc}
-
-%# 设定带条件的加粗
-%# Set the conditional bold face
-\providecommand{\conditionalbfseries}{\bfseries}
-
-%# 关键词的标签
-%# keywords' label
-\def\keywordsnameEN{\textsc{Key words and phrases}}
-\def\keywordsnameFR{\textsc{Mots et phrases clés}}
-\def\keywordsnameDE{\textsc{Schlüsselwörter und Phrasen}}
-\def\keywordsnameIT{\textsc{Parole e frasi chiave}}
-\def\keywordsnamePT{\textsc{Palavras e frases chave}}
-\def\keywordsnameBR{\textsc{Palavras e frases chave}}
-\def\keywordsnameES{\textsc{Palabras y frases clave}}
-\def\keywordsnameCN{关键词}
-\def\keywordsnameTC{關鍵詞}
-\def\keywordsnameJP{キーワード}
-\def\keywordsnameRU{Ключевые слова и фразы}
-
-%# 关键词
-%# keywords
-\def\PJL@keywords{}
-\providecommand*{\keywords}[1]{\def\PJL@keywords{#1}}
-
-%# 献给
-%# dedicatory
-\def\PJL@dedicatory{}
-\providecommand*{\dedicatory}[1]{\def\PJL@dedicatory{#1}}
-
-%# 致谢,在 \author 中使用时呈现为 article 风格,在外面单独用是则呈现为 AMS 风格
-%# \thanks: behave like article-style when in \author, and ams-style (no marker) when outside
-\AtEndPreamble{
-% In case that \@author changes again
-\let\footnotemark@PJLoriginal\footnotemark%
-\let\footnotemark\relax%
-\let\thanks@PJLoriginal\thanks%
-\newlength\PJL@starlength
-\setlength{\PJL@starlength}{\widthof{*}}
-\newcommand*{\PJL@prethanks}[1]{\thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}}
-% \renewcommand*{\thanks}[1]{%
-% \ifx#1\@empty\else%
-% \thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}%
-% \fi}
-\renewcommand*{\thanks}[1]{%
- \ifx#1\@empty\else%
- \apptocmd{\@title}{%
- \thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}%
- }{}{\FAIL}%
- \fi}
-\let\author@PJLoriginal\author
-\renewcommand{\author}[1]{%
- \author@PJLoriginal{%
- \let\footnotemark\footnotemark@PJLoriginal%
- \let\thanks\thanks@PJLoriginal%
- #1%
- \let\footnotemark\relax%
- }%
-}
-% \pretocmd{\@author}{\let\footnotemark\footnotemark@PJLoriginal\let\thanks\thanks@PJLoriginal}{}{\FAIL}
-% \apptocmd{\@author}{\let\footnotemark\relax}{}{\FAIL}
-}
-
-%# 重定义 abstract 环境以允许其出现在 maketitle 的前面
-%# Modify abstract to allow it before maketitle
-\let\abstract@PJLoriginal\abstract%
-\let\endabstract@PJLoriginal\endabstract%
-\newif\if@PJLauthor@maketitle\@PJLauthor@maketitlefalse
-\newif\if@PJLauthor@absbefore\@PJLauthor@absbeforefalse
-\RequirePackage{fancyvrb}
-% Taken from https://tex.stackexchange.com/a/596328
-% define the same as \protected@write, but with \immediate
-\providecommand*\protected@iwrite[3]{%
- \begingroup
- \let\thepage\relax
- #2%
- \let\protect\@unexpandable@protect
- \edef\reserved@a{\immediate\write#1{#3}}\reserved@a
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
-}
-\patchcmd{\FVB@VerbatimOut}
- {\immediate\write\FV@OutFile}
- {\protected@iwrite\FV@OutFile{}}
- {}{}
-%
-\renewenvironment{abstract}{%
- \VerbatimOut{\jobname.pjlabs}%
-}{
- \endVerbatimOut%
- \if@PJLauthor@maketitle%
- \begin{abstract@PJLoriginal}%
- \input{\jobname.pjlabs}%
- \end{abstract@PJLoriginal}%
- % \ifx\PJL@keywords\@empty\else%
- % \par\smallskip\noindent{\conditionalbfseries\csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}~\PJL@keywords%
- % \fi%
- \else%
- \global\@PJLauthor@absbeforetrue%
- \fi%
-}
-
-%# 修改 maketitle 以包含上面的诸多改动
-%# Modify maketitle to reflect the modifications above
-\AtEndPreamble{%
-%## 将 dedicatory 添加进 \@maketitle
-%## Add dedicatory to \@maketitle
-\patchcmd{\@maketitle}{\@date}{%
- \ifx\@date\@empty\vspace{-2\baselineskip}%
- \else\@date\fi%
- \ifx\PJL@dedicatory\@empty\else%
- \ifx\@date\@empty\vspace{2\baselineskip}\fi%
- \par\vspace{-\parskip}\bigskip%
- {\itshape\PJL@dedicatory}%
- \ifx\@date\@empty%
- \vspace{-1.7\baselineskip}%
- \vspace{-\parskip}%
- \fi%
- \fi%
-}{}{\FAIL}
-%## 将 keywords 添加进 \maketitle
-%## Add keywords to \maketitle
-\pretocmd{\maketitle}{%
- \ifx\PJL@keywords\@empty\else%
- \PJL@prethanks{{\protect\conditionalbfseries%
- \csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}%
- ~\PJL@keywords}%
- \fi}{}{\FAIL}
-%## 将 abstract 添加进 \maketitle
-%## Add abstract to \maketitle
-\apptocmd{\maketitle}{%
- \if@PJLauthor@absbefore%
- \begin{abstract@PJLoriginal}%
- \input{\jobname.pjlabs}%
- % \ifx\PJL@keywords\@empty\else%
- % \par\smallskip\noindent{\conditionalbfseries\csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}~\PJL@keywords%
- % \fi%
- \end{abstract@PJLoriginal}%
- \fi%
- \global\let\address\relax
- \global\let\curraddr\relax
- \global\let\email\relax
- \global\let\dedicatory\relax
- \global\let\keywords\relax
- \global\@PJLauthor@maketitletrue
-}{}{\FAIL}
-%##- 这段未被采用的代码将使 maketitle 中的 \newpage 失效
-%##- Disbale the \newpage in maketitle
-% \let\maketitle@PJLoriginal=\maketitle
-% \renewcommand*{\maketitle}{{\let\newpage\relax\maketitle@PJLoriginal}}
-}
-
-%# 定义 \subjclass,这段代码改编自 AMS 文档类
-%# Define \subjclass, the code is adopted from AMS classes
-\newcommand*\subjclass[2][2020]{%
- \def\@subjclass{#2}%
- \@ifundefined{subjclassname@#1}{%
- \ClassWarning{\@currname}{Unknown edition (#1) of Mathematics
- Subject Classification; using '2020'}%
- \expandafter\let\expandafter\subjclassname\csname subjclassname@2020\endcsname
- }{%
- \expandafter\let\expandafter\subjclassname\csname subjclassname@#1\endcsname
- }%
- \PJL@prethanks{{\itshape\subjclassname.}\enspace\@subjclass{}.}
-}
-\@namedef{subjclassname@1991}{%
- \textup{1991} Mathematics Subject Classification}
-\@namedef{subjclassname@2000}{%
- \textup{2000} Mathematics Subject Classification}
-\@namedef{subjclassname@2010}{%
- \textup{2010} Mathematics Subject Classification}
-\@namedef{subjclassname@2020}{%
- \textup{2020} Mathematics Subject Classification}
-
-}
-%</PJLauthor>
-%
-%<*PJLdate>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLdate,
- prefix = @PJLdate@,
-}
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@PJLdate@draft
- \@PJLdate@fasttrue
-\fi
-%# 定义 \PJLdate 的同义指令
-%# Define synonym macros of \PJLdate
-\DeclareDocumentCommand{\TheDate}{}{\PJLdate}
-\DeclareDocumentCommand{\PLdate}{}{\PJLdate}
-%# 快速模式下直接输出原日期字符串
-%# Directly output the original date string in fast mode
-\if@PJLdate@fast\let\PJLdate\relax\endinput\fi
-
-%# 载入多语言支持
-%# Load multi-language support
-\RequirePackage{PJLlang}
-
-%# 下面一行是为了避免使用 authblk 时产生的错误
-%# The following line is for "authblk"
-\robustify\@latex@warning@no@line
-
-%# 消除一些警告
-%# Eliminate some warnings
-\RequirePackage{silence}
-\WarningFilter*{datetime2}{Date-Time Language Module}
-%# 分别引入负责西文日期和 CJK 日期的宏包
-%# Use packages resp. for western date and CJK date
-\PassOptionsToPackage{fr-FR,en-US}{datetime2}
-\RequirePackage{datetime2}
-\RequirePackage{zhnumber}
-
-%# 在 CJK 模式下将 DTMdate 定义为 zhdate
-%# Maps DTMdate to zhdate in CJK context
-\let\@DTMdate@PJLoriginal\@DTMdate
-\gappto{\PJLlang@langconfig@common}{%
- \let\@DTMdate\@DTMdate@PJLoriginal%
-}
-\gappto{\PJLlang@langconfig@CN}{%
- \renewcommand*{\@DTMdate}[1]{%
- \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
- \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
- }%
-}
-\gappto{\PJLlang@langconfig@TC}{%
- \renewcommand*{\@DTMdate}[1]{%
- \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
- \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
- }%
-}
-\gappto{\PJLlang@langconfig@JP}{%
- \renewcommand*{\@DTMdate}[1]{%
- \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
- \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
- }%
-}
-
-%# 提供命令 PJLdate
-%# Provide the macro PJLdate
-\providecommand*{\PJLdate}[1]{\DTMdate{#1}}
-%</PJLdate>
-%
-%<*PJLdraft>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLdraft,
- prefix = @PJLdraft@,
-}
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@PJLdraft@draft
- \@PJLdraft@fasttrue
-\fi
-
-%# 载入多语言支持
-%# Load multi-language support
-\RequirePackage{PJLlang}
-%# 载入颜色支持
-%# Load support for colors
-\RequirePackage{xcolor}
-
-%# 命令中的默认字体
-%# Default font in the macro
-\def\dnfFont{\ttfamily}
-\def\needgraphFont{\ttfamily}
-
-%# 命令中的文字
-%# Text in the macro
-\def\dnfTextEN{To be finished}
-\def\needgraphTextEN{A graph is needed here}
-\def\dnfTextFR{Pas encore fini}
-\def\needgraphTextFR{Il manque une image ici}
-\def\dnfTextDE{Nicht beendet}
-\def\needgraphTextDE{Benötigen Sie ein Bild}
-\def\dnfTextIT{Per essere finito}
-\def\needgraphTextIT{Manca un'immagine qui}
-\def\dnfTextPT{Não terminou}
-\def\needgraphTextPT{Precisa de uma foto aqui}
-\def\dnfTextBR{Não terminou}
-\def\needgraphTextBR{Precisa de uma foto aqui}
-\def\dnfTextES{Estar terminado}
-\def\needgraphTextES{Falta una imagen aquí}
-\def\dnfTextCN{这里尚未完成}
-\def\needgraphTextCN{这里需要一张图片}
-\def\dnfTextTC{這裡尚未完成}
-\def\needgraphTextTC{這裡需要一張圖片}
-\def\dnfTextJP{終わってない}
-\def\needgraphTextJP{まだ画像が必要です}
-\def\dnfTextRU{Не закончен}
-\def\needgraphTextRU{Еще нужна картинка}
-
-%# 命令中的颜色
-%# Default color in the macro
-\definecolor{dnfColor}{RGB}{21,122,20}
-\definecolor{needgraphColor}{RGB}{70,130,180}
-
-\if@PJLdraft@fast
-%# 快速模式用 fbox 定义
-%# Use fbox in fast mode
- \newcommand{\plainBox}[2][-paper]{\textcolor{#1}{%
- \setlength{\fboxsep}{1.5pt}%
- \setlength{\fboxrule}{1.2pt}%
- \fbox{#2}}}
-\else
-%# 正常模式用 tcolorbox 定义
-%# Use tcolorbox in normal mode
- \PassOptionsToPackage{many}{tcolorbox}
- \RequirePackage{tcolorbox}
- \newtcbox{\plainBox}[1][-paper]{enhanced jigsaw,%
- on line, arc = 1.2pt, outer arc = 1pt,breakable,%
- colframe = #1,colupper=#1,opacityback=0,%
- boxsep = 1pt,boxrule = 1.2pt,%
- left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,%
- }
-\fi
-
-%# 命令中的计数器
-%# Counters for the macro
-\newcounter{dnfcnt}
-\newcounter{needgraphcnt}
-
-%# 尚未完成的标记
-%# Mark for ``did not finish''
-\NewDocumentCommand{\dnf}{d<>}{%
- \noindent\plainBox[dnfColor]%
- {\normalfont\dnfFont\bfseries\small%
- \csname dnfText\csname\languagename ABBR\endcsname\endcsname%
- \stepcounter{dnfcnt}~\#\thednfcnt%
- \IfNoValueF{#1}{\,: #1}}%
-}
-%# 需要图片的标记
-%# Mark for ``Graph needed''
-\NewDocumentCommand{\needgraph}{d<>}{%
- \begin{center}%
- \plainBox[needgraphColor]%
- {\normalfont\needgraphFont\bfseries\small%
- \csname needgraphText\csname\languagename ABBR\endcsname\endcsname%
- \stepcounter{needgraphcnt}~\#\theneedgraphcnt%
- \IfNoValueF{#1}{\,: #1}}%
- \end{center}%
-}
-%</PJLdraft>
-%
-%<*PJLlang>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{%
- family = @PJLlang,
- prefix = @PJLlang@
-}
-%# 使用 polyglossia 而不是 babel 进行设置,目前还不完善
-%# Use polyglossia instead of babel
-\DeclareBoolOption[false]{polyglossia}
-
-%# 用于记录该语言是否被启用
-%# To record whether the language is enabled in the document
-\newif\if@PJLlang@enable@all\@PJLlang@enable@alltrue
-\newif\if@PJLlang@enable@EN\@PJLlang@enable@ENfalse
-\newif\if@PJLlang@enable@FR\@PJLlang@enable@FRfalse
-\newif\if@PJLlang@enable@DE\@PJLlang@enable@DEfalse
-\newif\if@PJLlang@enable@IT\@PJLlang@enable@ITfalse
-\newif\if@PJLlang@enable@PT\@PJLlang@enable@PTfalse
-\newif\if@PJLlang@enable@BR\@PJLlang@enable@BRfalse
-\newif\if@PJLlang@enable@ES\@PJLlang@enable@ESfalse
-\newif\if@PJLlang@enable@CN\@PJLlang@enable@CNfalse
-\newif\if@PJLlang@enable@TC\@PJLlang@enable@TCfalse
-\newif\if@PJLlang@enable@JP\@PJLlang@enable@JPfalse
-\newif\if@PJLlang@enable@RU\@PJLlang@enable@RUfalse
-%# 用来存储要传递给babel的选项
-%# To store the option list to pass to babel
-\def\PJLlang@babeloptions{}
-%# 语言选项:启用该语言并添加相应的 babel 参数
-%# The language options: enable the corresponding language and add the corresponding options to babel
-\DeclareVoidOption{EN}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
-\DeclareVoidOption{english}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
-\DeclareVoidOption{English}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
-\DeclareVoidOption{FR}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
-\DeclareVoidOption{french}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
-\DeclareVoidOption{French}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
-\DeclareVoidOption{DE}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{german}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{ngerman}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{German}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{IT}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
-\DeclareVoidOption{italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
-\DeclareVoidOption{Italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
-\DeclareVoidOption{PT}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
-\DeclareVoidOption{portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
-\DeclareVoidOption{Portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
-\DeclareVoidOption{BR}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
-\DeclareVoidOption{brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
-\DeclareVoidOption{Brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
-\DeclareVoidOption{ES}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
-\DeclareVoidOption{spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
-\DeclareVoidOption{Spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
-\DeclareVoidOption{CN}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{Chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{schinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{SChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{simplifiedchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{SimplifiedChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{TC}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{tchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{TChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{traditionalchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{TraditionalChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{JP}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
-\DeclareVoidOption{japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
-\DeclareVoidOption{Japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
-\DeclareVoidOption{RU}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
-\DeclareVoidOption{russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
-\DeclareVoidOption{Russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%# 从全局参数中去除 chinese 和 Chinese
-%# Remove chinese and Chinese from global options
-\ExplSyntaxOn
-\cs_new_protected:cpn { @clearglobaloption } #1
- {
- \clist_remove_all:cn { @classoptionslist } { #1 }
- }
-\ExplSyntaxOff
-
-\@clearglobaloption{chinese}
-\@clearglobaloption{Chinese}
-
-%# 默认语言:英语
-%# Default main language: English
-\providecommand{\PJLlang@mainlang}{EN}
-
-%# 启用全部支持的语言
-%# Enable all supported language
-\if@PJLlang@enable@all
- \@PJLlang@enable@ENtrue
- \@PJLlang@enable@FRtrue
- \@PJLlang@enable@DEtrue
- \@PJLlang@enable@ITtrue
- \@PJLlang@enable@PTtrue
- \@PJLlang@enable@BRtrue
- \@PJLlang@enable@EStrue
- \@PJLlang@enable@CNtrue
- \@PJLlang@enable@TCtrue
- \@PJLlang@enable@JPtrue
- \@PJLlang@enable@RUtrue
-\fi
-
-%# 语言名称的缩写
-%# Abbreviation of language name
-\newcommand\englishABBR{EN}
-\newcommand\frenchABBR{FR}
-\newcommand\ngermanABBR{DE}
-\newcommand\italianABBR{IT}
-\newcommand\portugueseABBR{PT}
-\newcommand\brazilianABBR{BR}
-\newcommand\spanishABBR{ES}
-\newcommand\schineseABBR{CN}
-\newcommand\tchineseABBR{TC}
-\newcommand\japaneseABBR{JP}
-\newcommand\russianABBR{RU}
-
-%# 将字符串转换为相应的缩写
-%# Convert a string to the corresponding abbreviation
-\ExplSyntaxOn
-% See https://tex.stackexchange.com/a/610146
-\NewExpandableDocumentCommand{\StrToABBR}{m}
- {
- \str_case_e:nn { \str_foldcase:n { #1 } }
- {
- {cn} {CN}
- {chinese} {CN}
- {schinese} {CN}
- {simplifiedchinese} {CN}
- {tc} {TC}
- {tchinese} {TC}
- {traditionalchinese} {TC}
- {jp} {JP}
- {japanese} {JP}
- {en} {EN}
- {english} {EN}
- {fr} {FR}
- {french} {FR}
- {de} {DE}
- {ngerman} {DE}
- {it} {IT}
- {italian} {IT}
- {pt} {PT}
- {portuguese} {PT}
- {br} {BR}
- {brazilian} {BR}
- {es} {ES}
- {spanish} {ES}
- {german} {DE}
- {ru} {RU}
- {russian} {RU}
- }
- }
-
-\NewExpandableDocumentCommand{\StrToTYPE}{m}
- {
- \str_case_e:nn { \str_foldcase:n { #1 } }
- {
- {cn} {CJK}
- {chinese} {CJK}
- {schinese} {CJK}
- {simplifiedchinese} {CJK}
- {tc} {CJK}
- {tchinese} {CJK}
- {traditionalchinese} {CJK}
- {jp} {CJK}
- {japanese} {CJK}
- {en} {Latin}
- {english} {Latin}
- {fr} {Latin}
- {french} {Latin}
- {de} {Latin}
- {ngerman} {Latin}
- {it} {Latin}
- {italian} {Latin}
- {pt} {Latin}
- {portuguese} {Latin}
- {br} {Latin}
- {brazilian} {Latin}
- {es} {Latin}
- {spanish} {Latin}
- {german} {Latin}
- {ru} {Latin}
- {russian} {Latin}
- }
- }
-\ExplSyntaxOff
-
-%# 在 pdfLaTeX 编译时载入编码设置
-%# Load the encoding settings when pdfLaTeX is used
-\RequirePackage{iftex}
-\ifPDFTeX
-\RequirePackage[T1]{fontenc}
-\RequirePackage{inputenc}
-\fi
-
-\if@PJLlang@polyglossia
-%# polyglossia 对应的设置
-%# Configure with `polyglossia`
- \RequirePackage{polyglossia}
- \setdefaultlanguage{english}
- \setotherlanguage[frenchpart=false]{french}
- \setotherlanguage{ngerman}
- \setotherlanguage{spanish}
- \setotherlanguage{portuguese}
- \setotherlanguage[variant=brazilian]{portuguese}
- \setotherlanguage{italian}
- \ifPDFTeX\else
- \setotherlanguage{russian}
- \setotherlanguage{japanese}
- \RequirePackage{silence}
- \WarningFilter{polyglossia}{Asking to add empty feature to latin font(Script="CJK" to scripttag "")}
- \fi
-\else
-%# babel 对应的设置
-%# Configure with `babel`
- \if@PJLlang@enable@all
- \ifPDFTeX\else
- \PassOptionsToPackage{japanese,russian}{babel}
- \fi
- \PassOptionsToPackage{italian,portuguese,brazilian,spanish,es-notilde,es-noquoting,ngerman,french,english,shorthands=off}{babel}
- \else
- \PassOptionsToPackage{\PJLlang@babeloptions}{babel}
- \fi
- \PassOptionsToPackage{italian,brazilian,spanish,ngerman,french,english}{cleveref}
- \RequirePackage{babel}
- \if@PJLlang@enable@FR
- \frenchsetup{PartNameFull=false}
- \fi
- \if@PJLlang@enable@PT
- \let\PJL@babelord\ord
- \let\ord\relax
- \AtBeginDocument{
- \@ifundefined{ord}{}
- {
- \let\PJL@userord\ord
- \let\ord\relax
- \newcommand{\ord}{%
- \ifmmode\expandafter\PJL@userord\else\expandafter\PJL@babelord\fi%
- }
- }
- }
- \fi
-
- \babelprovide{schinese}
- \babelprovide{tchinese}
-\fi
-
-%# 本地化 \today
-%# Localize \today
-\let\today@PJLoriginal\today
-\newcommand{\PJLlang@langconfig@common}{%
- \ifdefined\DTMtoday%
- \let\today\DTMtoday%
- \else%
- \let\today\today@PJLoriginal%
- \fi%
-}
-
-%# 各个语言的设置
-%# The configuration for each language
-\newcommand{\PJLlang@langconfig@CN}{%
- \def\abstractname{摘要}%
- \def\proofname{证明}%
- \def\contentsname{目录}%
- \def\listfigurename{插图}%
- \def\listtablename{表格}%
- \def\figurename{图}%
- \def\tablename{表}%
- \def\indexname{索引}%
- \def\appendixname{附录}%
- \def\refname{参考文献}%
- \def\bibname{参考文献}%
- \let\today\zhtoday%
- \renewcommand{\languagename}{schinese}%
-}
-\newcommand{\PJLlang@langconfig@TC}{%
- \def\abstractname{摘要}%
- \def\proofname{證明}%
- \def\contentsname{目錄}%
- \def\listfigurename{插圖}%
- \def\listtablename{表格}%
- \def\figurename{圖}%
- \def\tablename{表}%
- \def\indexname{索引}%
- \def\appendixname{附錄}%
- \def\refname{參考文獻}%
- \def\bibname{參考文獻}%
- \let\today\zhtoday%
- \renewcommand{\languagename}{tchinese}%
-}
-\newcommand{\PJLlang@langconfig@JP}{%
- \selectlanguage{japanese}%
-}
-\newcommand{\PJLlang@langconfig@EN}{%
- \selectlanguage{english}%
-}
-\newcommand{\PJLlang@langconfig@FR}{%
- \selectlanguage{french}%
-% The line below is currently only needed for 'babel', but also works with 'polyglossia'
- \def\frenchpartname{Partie}%
-}
-\newcommand{\PJLlang@langconfig@DE}{%
- \selectlanguage{ngerman}%
-}
-\newcommand{\PJLlang@langconfig@IT}{%
- \selectlanguage{italian}%
-}
-\newcommand{\PJLlang@langconfig@PT}{%
- \selectlanguage{portuguese}%
-}
-\newcommand{\PJLlang@langconfig@BR}{%
- \selectlanguage{brazilian}%
-}
-\newcommand{\PJLlang@langconfig@ES}{%
- \selectlanguage{spanish}%
-}
-\newcommand{\PJLlang@langconfig@RU}{%
- \selectlanguage{russian}%
-}
-
-%# 用于增加语言设置的用户指令 AddLanguageSetting
-%# User command for adding language settings
-\NewDocumentCommand\AddLanguageSetting{d()m}{%
-\IfNoValueTF{#1}%
- {\gappto{\PJLlang@langconfig@common}{#2}}%
- {\expandafter\gappto\expandafter{\csname PJLlang@langconfig@\StrToABBR{#1}\endcsname}{#2}}%
-}
-
-\RequirePackage{setspace}
-%# 行距的设置
-%# Line spacing configuration
-\def\PJL@config@linespacing{\setstretch{1.00}}
-\def\PJL@config@CJKlinespacing{\onehalfspacing}
-\newcommand{\PJLsetlinespacing}[1]{\renewcommand{\PJL@config@linespacing}{#1}}
-\newcommand{\PJLsetCJKlinespacing}[1]{\renewcommand{\PJL@config@CJKlinespacing}{#1}}
-%# 缩进的设置
-%# Parindent configuration
-\@ifclassloaded{beamer}{
- \def\PJL@config@parindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{0em}}}
- \def\PJL@config@CJKparindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{0em}}}
-}{
- \def\PJL@config@parindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{1.5em}}}
- \def\PJL@config@CJKparindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{2em}}}
-}
-\newcommand{\PJLsetparindent}[1]{\renewcommand{\PJL@config@parindent}{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{#1}}}}
-\newcommand{\PJLsetCJKparindent}[1]{\renewcommand{\PJL@config@CJKparindent}{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{#1}}}}
-%# 合并设置
-%# All-in-all configuration
-\def\PJL@config@CJK{\PJL@config@CJKlinespacing\PJL@config@CJKparindent}
-\def\PJL@config@Latin{\PJL@config@linespacing\PJL@config@parindent}
-%
-%# UseLanguage 的核心部分,只能在正文中使用
-%# The core part of UseLanguage, can be used only in the main text, not preamble
-\NewDocumentCommand{\UseLanguageCORE}{m}{%
- \PJLlang@langconfig@common%
- \csname PJL@config@\StrToTYPE{#1}\endcsname%
- \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
-}
-%# 用于选定语言的 UseLanguage
-%# Macro for selecting language
-\NewDocumentCommand{\UseLanguage}{m}{%
- \ifx\@onlypreamble\@notprerr%
- \UseLanguageCORE{#1}%
- \else%
- \AfterEndPreamble{\UseLanguageCORE{#1}}%
- \fi%
-}
-%# 用于局部选定语言的 UseOtherLanguage
-%# Macro for selecting language locally
-\NewDocumentCommand{\UseOtherLanguage}{mm}{%
-\begingroup\begingroup%
- \PJLlang@langconfig@common%
- \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
- #2%
-\endgroup\endgroup%
-}
-
-%# 运行默认语言的设置
-%# Execute the configuration of the main language
-\expandafter\UseLanguage\expandafter{\PJLlang@mainlang}
-%</PJLlang>
-%
-%<*PJLlogo>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLlogo,
- prefix = @PJLlogo@,
-}
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@PJLlogo@draft
- \@PJLlogo@fasttrue
-\fi
-%# 快速模式下直接输出字符串 ProjLib
-%# Directly output the string ``ProjLib'' in fast mode
-\if@PJLlogo@fast\def\ProjLib{{\normalfont ProjLib}}\endinput\fi
-
-%# 以下选取字体并定义 Logo
-%# Below select the font and define the logo
-\RequirePackage{xcolor}
-\RequirePackage{graphicx}
-\ifdefined\fontspec
- \newfontface{\PJLlogo@font}{LinBiolinum_R.otf}
-\else
- \RequirePackage[T1]{fontenc}
- \newcommand{\PJLlogo@font}{\fontfamily{LinuxBiolinumT-TLF}\selectfont}
-\fi
-
-\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
- }%
- }%
-}
-
-\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>
-%
-%<*PJLmath>
-%# 载入常用数学宏包
-%# Load commonly used math packages
-\RequirePackage{mathtools}
-\RequirePackage{mathrsfs}
-\@ifpackageloaded{unicode-math}{}{\RequirePackage{amssymb}}
-
-%%================================
-%% Shorthands
-%%================================
-%# 常见代数结构的捷径
-%# Shortcuts for commonly used algebraic structures
-\providecommand{\N}{\ensuremath{\mathbb{N}}}
-\providecommand{\Z}{\ensuremath{\mathbb{Z}}}
-\providecommand{\Q}{\ensuremath{\mathbb{Q}}}
-\providecommand{\R}{\ensuremath{\mathbb{R}}}
-\providecommand{\C}{\ensuremath{\mathbb{C}}}
-\providecommand{\F}{\ensuremath{\mathbb{F}}}
-\providecommand{\A}{\ensuremath{\mathbb{A}}}
-
-%# mathbb 的捷径
-%# Shortcuts for blackboard bold face
-\providecommand{\bb}[1]{\ensuremath{\mathbb{#1}}}
-\providecommand{\bbA}{\ensuremath{\mathbb{A}}}
-\providecommand{\bbB}{\ensuremath{\mathbb{B}}}
-\providecommand{\bbC}{\ensuremath{\mathbb{C}}}
-\providecommand{\bbD}{\ensuremath{\mathbb{D}}}
-\providecommand{\bbE}{\ensuremath{\mathbb{E}}}
-\providecommand{\bbF}{\ensuremath{\mathbb{F}}}
-\providecommand{\bbG}{\ensuremath{\mathbb{G}}}
-\providecommand{\bbH}{\ensuremath{\mathbb{H}}}
-\providecommand{\bbI}{\ensuremath{\mathbb{I}}}
-\providecommand{\bbJ}{\ensuremath{\mathbb{J}}}
-\providecommand{\bbK}{\ensuremath{\mathbb{K}}}
-\providecommand{\bbL}{\ensuremath{\mathbb{L}}}
-\providecommand{\bbM}{\ensuremath{\mathbb{M}}}
-\providecommand{\bbN}{\ensuremath{\mathbb{N}}}
-\providecommand{\bbO}{\ensuremath{\mathbb{O}}}
-\providecommand{\bbP}{\ensuremath{\mathbb{P}}}
-\providecommand{\bbQ}{\ensuremath{\mathbb{Q}}}
-\providecommand{\bbR}{\ensuremath{\mathbb{R}}}
-\providecommand{\bbS}{\ensuremath{\mathbb{S}}}
-\providecommand{\bbT}{\ensuremath{\mathbb{T}}}
-\providecommand{\bbU}{\ensuremath{\mathbb{U}}}
-\providecommand{\bbV}{\ensuremath{\mathbb{V}}}
-\providecommand{\bbW}{\ensuremath{\mathbb{W}}}
-\providecommand{\bbX}{\ensuremath{\mathbb{X}}}
-\providecommand{\bbY}{\ensuremath{\mathbb{Y}}}
-\providecommand{\bbZ}{\ensuremath{\mathbb{Z}}}
-
-%# mathcal 的捷径
-%# Shortcuts for calligraphic shape
-\providecommand{\mc}[1]{\ensuremath{\mathcal{#1}}}
-\providecommand{\mcA}{\ensuremath{\mathcal{A}}}
-\providecommand{\mcB}{\ensuremath{\mathcal{B}}}
-\providecommand{\mcC}{\ensuremath{\mathcal{C}}}
-\providecommand{\mcD}{\ensuremath{\mathcal{D}}}
-\providecommand{\mcE}{\ensuremath{\mathcal{E}}}
-\providecommand{\mcF}{\ensuremath{\mathcal{F}}}
-\providecommand{\mcG}{\ensuremath{\mathcal{G}}}
-\providecommand{\mcH}{\ensuremath{\mathcal{H}}}
-\providecommand{\mcI}{\ensuremath{\mathcal{I}}}
-\providecommand{\mcJ}{\ensuremath{\mathcal{J}}}
-\providecommand{\mcK}{\ensuremath{\mathcal{K}}}
-\providecommand{\mcL}{\ensuremath{\mathcal{L}}}
-\providecommand{\mcM}{\ensuremath{\mathcal{M}}}
-\providecommand{\mcN}{\ensuremath{\mathcal{N}}}
-\providecommand{\mcO}{\ensuremath{\mathcal{O}}}
-\providecommand{\mcP}{\ensuremath{\mathcal{P}}}
-\providecommand{\mcQ}{\ensuremath{\mathcal{Q}}}
-\providecommand{\mcR}{\ensuremath{\mathcal{R}}}
-\providecommand{\mcS}{\ensuremath{\mathcal{S}}}
-\providecommand{\mcT}{\ensuremath{\mathcal{T}}}
-\providecommand{\mcU}{\ensuremath{\mathcal{U}}}
-\providecommand{\mcV}{\ensuremath{\mathcal{V}}}
-\providecommand{\mcW}{\ensuremath{\mathcal{W}}}
-\providecommand{\mcX}{\ensuremath{\mathcal{X}}}
-\providecommand{\mcY}{\ensuremath{\mathcal{Y}}}
-\providecommand{\mcZ}{\ensuremath{\mathcal{Z}}}
-
-\providecommand{\cal}[1]{\ensuremath{\mathcal{#1}}}
-\providecommand{\calA}{\ensuremath{\mathcal{A}}}
-\providecommand{\calB}{\ensuremath{\mathcal{B}}}
-\providecommand{\calC}{\ensuremath{\mathcal{C}}}
-\providecommand{\calD}{\ensuremath{\mathcal{D}}}
-\providecommand{\calE}{\ensuremath{\mathcal{E}}}
-\providecommand{\calF}{\ensuremath{\mathcal{F}}}
-\providecommand{\calG}{\ensuremath{\mathcal{G}}}
-\providecommand{\calH}{\ensuremath{\mathcal{H}}}
-\providecommand{\calI}{\ensuremath{\mathcal{I}}}
-\providecommand{\calJ}{\ensuremath{\mathcal{J}}}
-\providecommand{\calK}{\ensuremath{\mathcal{K}}}
-\providecommand{\calL}{\ensuremath{\mathcal{L}}}
-\providecommand{\calM}{\ensuremath{\mathcal{M}}}
-\providecommand{\calN}{\ensuremath{\mathcal{N}}}
-\providecommand{\calO}{\ensuremath{\mathcal{O}}}
-\providecommand{\calP}{\ensuremath{\mathcal{P}}}
-\providecommand{\calQ}{\ensuremath{\mathcal{Q}}}
-\providecommand{\calR}{\ensuremath{\mathcal{R}}}
-\providecommand{\calS}{\ensuremath{\mathcal{S}}}
-\providecommand{\calT}{\ensuremath{\mathcal{T}}}
-\providecommand{\calU}{\ensuremath{\mathcal{U}}}
-\providecommand{\calV}{\ensuremath{\mathcal{V}}}
-\providecommand{\calW}{\ensuremath{\mathcal{W}}}
-\providecommand{\calX}{\ensuremath{\mathcal{X}}}
-\providecommand{\calY}{\ensuremath{\mathcal{Y}}}
-\providecommand{\calZ}{\ensuremath{\mathcal{Z}}}
-
-%# mathfrak 的捷径
-%# Shortcuts for Fraktur shape
-\providecommand{\mf}[1]{\ensuremath{\mathfrak{#1}}}
-\providecommand{\mfa}{\ensuremath{\mathfrak{a}}}
-\providecommand{\mfb}{\ensuremath{\mathfrak{b}}}
-\providecommand{\mfc}{\ensuremath{\mathfrak{c}}}
-\providecommand{\mfd}{\ensuremath{\mathfrak{d}}}
-\providecommand{\mfe}{\ensuremath{\mathfrak{e}}}
-\providecommand{\mff}{\ensuremath{\mathfrak{f}}}
-\providecommand{\mfg}{\ensuremath{\mathfrak{g}}}
-\providecommand{\mfh}{\ensuremath{\mathfrak{h}}}
-\providecommand{\mfi}{\ensuremath{\mathfrak{i}}}
-\providecommand{\mfj}{\ensuremath{\mathfrak{j}}}
-\providecommand{\mfk}{\ensuremath{\mathfrak{k}}}
-\providecommand{\mfl}{\ensuremath{\mathfrak{l}}}
-\providecommand{\mfm}{\ensuremath{\mathfrak{m}}}
-\providecommand{\mfn}{\ensuremath{\mathfrak{n}}}
-\providecommand{\mfo}{\ensuremath{\mathfrak{o}}}
-\providecommand{\mfp}{\ensuremath{\mathfrak{p}}}
-\providecommand{\mfq}{\ensuremath{\mathfrak{q}}}
-\providecommand{\mfr}{\ensuremath{\mathfrak{r}}}
-\providecommand{\mfs}{\ensuremath{\mathfrak{s}}}
-\providecommand{\mft}{\ensuremath{\mathfrak{t}}}
-\providecommand{\mfu}{\ensuremath{\mathfrak{u}}}
-\providecommand{\mfv}{\ensuremath{\mathfrak{v}}}
-\providecommand{\mfw}{\ensuremath{\mathfrak{w}}}
-\providecommand{\mfx}{\ensuremath{\mathfrak{x}}}
-\providecommand{\mfy}{\ensuremath{\mathfrak{y}}}
-\providecommand{\mfz}{\ensuremath{\mathfrak{z}}}
-\providecommand{\mfA}{\ensuremath{\mathfrak{A}}}
-\providecommand{\mfB}{\ensuremath{\mathfrak{B}}}
-\providecommand{\mfC}{\ensuremath{\mathfrak{C}}}
-\providecommand{\mfD}{\ensuremath{\mathfrak{D}}}
-\providecommand{\mfE}{\ensuremath{\mathfrak{E}}}
-\providecommand{\mfF}{\ensuremath{\mathfrak{F}}}
-\providecommand{\mfG}{\ensuremath{\mathfrak{G}}}
-\providecommand{\mfH}{\ensuremath{\mathfrak{H}}}
-\providecommand{\mfI}{\ensuremath{\mathfrak{I}}}
-\providecommand{\mfJ}{\ensuremath{\mathfrak{J}}}
-\providecommand{\mfK}{\ensuremath{\mathfrak{K}}}
-\providecommand{\mfL}{\ensuremath{\mathfrak{L}}}
-\providecommand{\mfM}{\ensuremath{\mathfrak{M}}}
-\providecommand{\mfN}{\ensuremath{\mathfrak{N}}}
-\providecommand{\mfO}{\ensuremath{\mathfrak{O}}}
-\providecommand{\mfP}{\ensuremath{\mathfrak{P}}}
-\providecommand{\mfQ}{\ensuremath{\mathfrak{Q}}}
-\providecommand{\mfR}{\ensuremath{\mathfrak{R}}}
-\providecommand{\mfS}{\ensuremath{\mathfrak{S}}}
-\providecommand{\mfT}{\ensuremath{\mathfrak{T}}}
-\providecommand{\mfU}{\ensuremath{\mathfrak{U}}}
-\providecommand{\mfV}{\ensuremath{\mathfrak{V}}}
-\providecommand{\mfW}{\ensuremath{\mathfrak{W}}}
-\providecommand{\mfX}{\ensuremath{\mathfrak{X}}}
-\providecommand{\mfY}{\ensuremath{\mathfrak{Y}}}
-\providecommand{\mfZ}{\ensuremath{\mathfrak{Z}}}
-
-\providecommand{\frak}[1]{\ensuremath{\mathfrak{#1}}}
-\providecommand{\fraka}{\ensuremath{\mathfrak{a}}}
-\providecommand{\frakb}{\ensuremath{\mathfrak{b}}}
-\providecommand{\frakc}{\ensuremath{\mathfrak{c}}}
-\providecommand{\frakd}{\ensuremath{\mathfrak{d}}}
-\providecommand{\frake}{\ensuremath{\mathfrak{e}}}
-\providecommand{\frakf}{\ensuremath{\mathfrak{f}}}
-\providecommand{\frakg}{\ensuremath{\mathfrak{g}}}
-\providecommand{\frakh}{\ensuremath{\mathfrak{h}}}
-\providecommand{\fraki}{\ensuremath{\mathfrak{i}}}
-\providecommand{\frakj}{\ensuremath{\mathfrak{j}}}
-\providecommand{\frakk}{\ensuremath{\mathfrak{k}}}
-\providecommand{\frakl}{\ensuremath{\mathfrak{l}}}
-\providecommand{\frakm}{\ensuremath{\mathfrak{m}}}
-\providecommand{\frakn}{\ensuremath{\mathfrak{n}}}
-\providecommand{\frako}{\ensuremath{\mathfrak{o}}}
-\providecommand{\frakp}{\ensuremath{\mathfrak{p}}}
-\providecommand{\frakq}{\ensuremath{\mathfrak{q}}}
-\providecommand{\frakr}{\ensuremath{\mathfrak{r}}}
-\providecommand{\fraks}{\ensuremath{\mathfrak{s}}}
-\providecommand{\frakt}{\ensuremath{\mathfrak{t}}}
-\providecommand{\fraku}{\ensuremath{\mathfrak{u}}}
-\providecommand{\frakv}{\ensuremath{\mathfrak{v}}}
-\providecommand{\frakw}{\ensuremath{\mathfrak{w}}}
-\providecommand{\frakx}{\ensuremath{\mathfrak{x}}}
-\providecommand{\fraky}{\ensuremath{\mathfrak{y}}}
-\providecommand{\frakz}{\ensuremath{\mathfrak{z}}}
-\providecommand{\frakA}{\ensuremath{\mathfrak{A}}}
-\providecommand{\frakB}{\ensuremath{\mathfrak{B}}}
-\providecommand{\frakC}{\ensuremath{\mathfrak{C}}}
-\providecommand{\frakD}{\ensuremath{\mathfrak{D}}}
-\providecommand{\frakE}{\ensuremath{\mathfrak{E}}}
-\providecommand{\frakF}{\ensuremath{\mathfrak{F}}}
-\providecommand{\frakG}{\ensuremath{\mathfrak{G}}}
-\providecommand{\frakH}{\ensuremath{\mathfrak{H}}}
-\providecommand{\frakI}{\ensuremath{\mathfrak{I}}}
-\providecommand{\frakJ}{\ensuremath{\mathfrak{J}}}
-\providecommand{\frakK}{\ensuremath{\mathfrak{K}}}
-\providecommand{\frakL}{\ensuremath{\mathfrak{L}}}
-\providecommand{\frakM}{\ensuremath{\mathfrak{M}}}
-\providecommand{\frakN}{\ensuremath{\mathfrak{N}}}
-\providecommand{\frakO}{\ensuremath{\mathfrak{O}}}
-\providecommand{\frakP}{\ensuremath{\mathfrak{P}}}
-\providecommand{\frakQ}{\ensuremath{\mathfrak{Q}}}
-\providecommand{\frakR}{\ensuremath{\mathfrak{R}}}
-\providecommand{\frakS}{\ensuremath{\mathfrak{S}}}
-\providecommand{\frakT}{\ensuremath{\mathfrak{T}}}
-\providecommand{\frakU}{\ensuremath{\mathfrak{U}}}
-\providecommand{\frakV}{\ensuremath{\mathfrak{V}}}
-\providecommand{\frakW}{\ensuremath{\mathfrak{W}}}
-\providecommand{\frakX}{\ensuremath{\mathfrak{X}}}
-\providecommand{\frakY}{\ensuremath{\mathfrak{Y}}}
-\providecommand{\frakZ}{\ensuremath{\mathfrak{Z}}}
-
-%# mathscr 的捷径
-%# Shortcuts for script shape
-\providecommand{\ms}[1]{\ensuremath{\mathscr{#1}}}
-\providecommand{\msA}{\ensuremath{\mathscr{A}}}
-\providecommand{\msB}{\ensuremath{\mathscr{B}}}
-\providecommand{\msC}{\ensuremath{\mathscr{C}}}
-\providecommand{\msD}{\ensuremath{\mathscr{D}}}
-\providecommand{\msE}{\ensuremath{\mathscr{E}}}
-\providecommand{\msF}{\ensuremath{\mathscr{F}}}
-\providecommand{\msG}{\ensuremath{\mathscr{G}}}
-\providecommand{\msH}{\ensuremath{\mathscr{H}}}
-\providecommand{\msI}{\ensuremath{\mathscr{I}}}
-\providecommand{\msJ}{\ensuremath{\mathscr{J}}}
-\providecommand{\msK}{\ensuremath{\mathscr{K}}}
-\providecommand{\msL}{\ensuremath{\mathscr{L}}}
-\providecommand{\msM}{\ensuremath{\mathscr{M}}}
-\providecommand{\msN}{\ensuremath{\mathscr{N}}}
-\providecommand{\msO}{\ensuremath{\mathscr{O}}}
-\providecommand{\msP}{\ensuremath{\mathscr{P}}}
-\providecommand{\msQ}{\ensuremath{\mathscr{Q}}}
-\providecommand{\msR}{\ensuremath{\mathscr{R}}}
-\providecommand{\msS}{\ensuremath{\mathscr{S}}}
-\providecommand{\msT}{\ensuremath{\mathscr{T}}}
-\providecommand{\msU}{\ensuremath{\mathscr{U}}}
-\providecommand{\msV}{\ensuremath{\mathscr{V}}}
-\providecommand{\msW}{\ensuremath{\mathscr{W}}}
-\providecommand{\msX}{\ensuremath{\mathscr{X}}}
-\providecommand{\msY}{\ensuremath{\mathscr{Y}}}
-\providecommand{\msZ}{\ensuremath{\mathscr{Z}}}
-
-\providecommand{\scr}[1]{\ensuremath{\mathscr{#1}}}
-\providecommand{\scrA}{\ensuremath{\mathscr{A}}}
-\providecommand{\scrB}{\ensuremath{\mathscr{B}}}
-\providecommand{\scrC}{\ensuremath{\mathscr{C}}}
-\providecommand{\scrD}{\ensuremath{\mathscr{D}}}
-\providecommand{\scrE}{\ensuremath{\mathscr{E}}}
-\providecommand{\scrF}{\ensuremath{\mathscr{F}}}
-\providecommand{\scrG}{\ensuremath{\mathscr{G}}}
-\providecommand{\scrH}{\ensuremath{\mathscr{H}}}
-\providecommand{\scrI}{\ensuremath{\mathscr{I}}}
-\providecommand{\scrJ}{\ensuremath{\mathscr{J}}}
-\providecommand{\scrK}{\ensuremath{\mathscr{K}}}
-\providecommand{\scrL}{\ensuremath{\mathscr{L}}}
-\providecommand{\scrM}{\ensuremath{\mathscr{M}}}
-\providecommand{\scrN}{\ensuremath{\mathscr{N}}}
-\providecommand{\scrO}{\ensuremath{\mathscr{O}}}
-\providecommand{\scrP}{\ensuremath{\mathscr{P}}}
-\providecommand{\scrQ}{\ensuremath{\mathscr{Q}}}
-\providecommand{\scrR}{\ensuremath{\mathscr{R}}}
-\providecommand{\scrS}{\ensuremath{\mathscr{S}}}
-\providecommand{\scrT}{\ensuremath{\mathscr{T}}}
-\providecommand{\scrU}{\ensuremath{\mathscr{U}}}
-\providecommand{\scrV}{\ensuremath{\mathscr{V}}}
-\providecommand{\scrW}{\ensuremath{\mathscr{W}}}
-\providecommand{\scrX}{\ensuremath{\mathscr{X}}}
-\providecommand{\scrY}{\ensuremath{\mathscr{Y}}}
-\providecommand{\scrZ}{\ensuremath{\mathscr{Z}}}
-
-%%================================
-%% General symbols
-%%================================
-\providecommand{\abs}[1]{\lvert#1\rvert}
-\providecommand{\norm}[1]{\lVert#1\rVert}
-
-\providecommand*{\injection}{\ensuremath{\hookrightarrow}}
-\providecommand*{\surjection}{\ensuremath{\twoheadrightarrow}}
-\providecommand*{\bijection}{\ensuremath{\xrightarrow{\sim}}}
-
-%%================================
-%% Symbols for number theory
-%%================================
-\ifdefined\@@pmod\else
-\let\@@pmod\pmod
-\DeclareRobustCommand{\pmod}{\@ifstar\@pmods\@@pmod}
-\def\@pmods#1{\mkern4mu({\operator@font mod}\mkern 6mu#1)}
-\fi
-
-\providecommand{\genlegendre}[4]{%
- \genfrac{(}{)}{}{#1}{#3}{#4}%
- \if\relax\detokenize{#2}\relax\else_{\!#2}\fi%
-}
-\providecommand{\legendre}[3][]{\genlegendre{}{#1}{#2}{#3}}
-\providecommand{\dlegendre}[3][]{\genlegendre{0}{#1}{#2}{#3}}
-\providecommand{\tlegendre}[3][]{\genlegendre{1}{#1}{#2}{#3}}
-%</PJLmath>
-%
-%<*PJLpaper>
-\RequirePackage{ifthen}
-
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{%
- family = @PJLpaper,
- prefix = @PJLpaper@,
- setkeys=\kvsetkeys
-}
-
-\DeclareStringOption[normal]{paperstyle}
-%# 几种纸张颜色的选项
-%# Several options of different paper color style
-\DeclareVoidOption{yellowpaper}{\kvsetkeys{@PJLpaper}{paperstyle=yellow}}
-\DeclareVoidOption{darkpaper}{\kvsetkeys{@PJLpaper}{paperstyle=dark}}
-\DeclareVoidOption{nordpaper}{\kvsetkeys{@PJLpaper}{paperstyle=nord}}
-%# 预览模式:减去边框
-%# Preview mode: crop the edge
-\DeclareBoolOption[false]{preview}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%%================================
-%% Preview mode
-%%================================
-\ifdefined\PJLnoPreview\else%
- \if@PJLpaper@preview%
- \RequirePackage{calc}
- \AtEndPreamble{%
- \setlength{\paperwidth}{\textwidth*\real{1.05}}%
- \setlength{\paperheight}{%
- (\textheight+\headheight+\headsep+\footskip)*\real{1.05}}%
- \setlength{\oddsidemargin}{(\paperwidth-\textwidth)/2-1in}%
- \setlength{\evensidemargin}{(\paperwidth-\textwidth)/2-1in}%
- \setlength{\topmargin}{(\paperheight-\textheight-\headheight-\headsep-\footskip)/2- 1in}%
- }
- \fi
-\fi
-
-%%================================
-%% Paper color
-%%================================
-\RequirePackage{xcolor}
-\definecolor{paper}{RGB}{255,255,255}
-\definecolor{maintext}{RGB}{0,0,0}
-
-\ifthenelse{\equal{\@PJLpaper@paperstyle}{yellow}}
-{
- \definecolor{paper}{RGB}{247,246,233}
-}
-{\relax}
-
-\ifthenelse{\equal{\@PJLpaper@paperstyle}{dark}}
-{
- \definecolor{paper}{RGB}{30,30,30}
- \definecolor{maintext}{RGB}{207,207,207}
-}
-{\relax}
-
-\ifthenelse{\equal{\@PJLpaper@paperstyle}{nord}}
-{
- \definecolor{paper}{RGB}{46,52,64}
- \definecolor{maintext}{RGB}{214,220,230}
-}
-{\relax}
-
-\newcommand{\PJLglobalcolor}[1]{%
- \color{#1}\global\let\default@color\current@color
-}
-
-%# 设置纸张颜色、文字颜色
-%# Set the paper and text color
-\pagecolor{paper}
-\PJLglobalcolor{maintext}
-\AtEndPreamble{
-\ifdefined\tcbset%
- \tcbset{colupper=maintext,collower=maintext}
-\fi
-}
-%</PJLpaper>
-%
-%<*PJLthm>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{%
- family = @PJLthm,
- prefix = @PJLthm@
-}
-%# 不建立定理类环境
-%# Do not setup theorem-like environments
-\DeclareBoolOption[false]{nothms}
-%# 推迟建立定理类环境
-%# Delay the setup of theorem-like environments to the end of the preamble
-\DeclareBoolOption[false]{delaythms}
-%# 不编号定理类环境
-%# Do not number theorem-like environments
-\DeclareBoolOption[false]{nothmnum}
-%# 指定如何编号定理类环境
-%# Number theorem-like environments With ...
-\DeclareStringOption{thmnum}[PJL@thmnum@default]
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-%# 引用的名称将随当前语言的不同而改变
-%# Reference name will change with the current language
-\DeclareBoolOption[true]{regionalref}
-\DeclareBoolOption[false]{originalref}
-%# 名称采用详尽设置或简易设置
-%# Detailed or simple settings for the name of theorem-like environments
-\DeclareBoolOption[true]{complexname}
-\DeclareBoolOption[false]{simplename}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@PJLthm@originalref
- \@PJLthm@regionalreffalse
-\fi
-\if@PJLthm@simplename
- \@PJLthm@complexnamefalse
-\fi
-\if@PJLthm@draft
- \@PJLthm@fasttrue
-\fi
-\if@PJLthm@fast
- \@PJLthm@regionalreftrue
-\fi
-
-\@ifclassloaded{beamer}{%
- \RequirePackage{silence}
- \WarningFilter{cleveref}{hyperref package loaded with implicit=false option}
- \@PJLthm@nothmnumtrue%
- \if@PJLthm@nothms\else%
- \let\theorem\relax
- \let\lemma\relax
- \let\corollary\relax
- \let\definition\relax
- \let\fact\relax
- \let\example\relax
- \let\problem\relax
- \fi
-}{}
-
-\RequirePackage{PJLlang}
-\RequirePackage{amsmath,amsthm}
-\RequirePackage{aliascnt}
-\PassOptionsToPackage{nameinlink}{cleveref}
-\RequirePackage{crefthe}
-
-%# 用于命名定理类环境的用户命令
-%# Macro for naming theorems
-\RequirePackage{xparse}
-\RequirePackage{xstring}
-\NewDocumentCommand{\NameTheorem}{omm}{%
- \protected@edef\PJLthm@temp{#2}%
- \expandafter\IfEndWith\expandafter{\PJLthm@temp}{*}{%
- \expandafter\StrGobbleRight\expandafter{\PJLthm@temp}{1}[\PJLthm@temp]%
- }{}%
- \IfSubStr{\detokenize{#3}}{=}{% key-value mode
- \IfValueTF{#1}{%
- \CreateTheoremSetKeys{\PJLthm@temp}{#1={#3}}%
- }{%
- \CreateTheoremSetKeys{\PJLthm@temp}{#3}%
- }%
- }{% simple mode
- \IfValueTF{#1}{%
- \expandafter\def\csname\PJLthm@temp name\StrToABBR{#1}\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 nameIT\endcsname{#3}%
- \expandafter\def\csname\PJLthm@temp namePT\endcsname{#3}%
- \expandafter\def\csname\PJLthm@temp nameBR\endcsname{#3}%
- \expandafter\def\csname\PJLthm@temp nameES\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
-\newcommand\PassFirstToSecond[2]{#2{#1}}%
-\NewDocumentCommand{\CreateTheorem}{sm}{%
- \begingroup
- \protected@edef\PJLthm@temp{#2}%
- \expandafter\IfEndWith\expandafter{\PJLthm@temp}{*}{%
- \expandafter\StrGobbleRight\expandafter{\PJLthm@temp}{1}[\PJLthm@temp]%
- \PassFirstToSecond{*}%
- }{%
- \PassFirstToSecond{}%
- }%
- {\expandafter\PassFirstToSecond%
- \expandafter{\PJLthm@temp}{\endgroup\InnerCreateTheorem{#1}}}%
-}%
-\if@PJLthm@regionalref
-\NewDocumentCommand{\InnerCreateTheorem}{mmmod<>d()g}{%
-% #1 = star or no star
-% #2 = name of environment
-% #3 = emptiness or star to append to name of environment
-% #4 = numbered like
-% #5 = numbered within
-% #6 = existed environment
-% #7 = key-value configuration of names
- \IfBooleanTF{#1}{%
- \IfValueTF{#4}
- {\@firstoftwo}
- {\IfValueTF{#5}{\@firstoftwo}{\@secondoftwo}}%
- }{%
- \IfValueTF{#4}
- {\IfValueTF{#5}{\@firstoftwo}{\@secondoftwo}}{
- \@secondoftwo}
- }%
- {%
- \GenericError{}%
- {\string\CreateTheorem\space syntax error\on@line}{%
- You cannot call the starred variant with optional argument,\MessageBreak
- nor call the unstarred variant with several optional arguments.}%
- {}%
- }{%
- \IfValueTF{#6}{%
- \IfBooleanTF{#1}{%
- \ifcsmacro{#2#3}%
- {\renewenvironment{#2#3}{\begin{#6*}}{\end{#6*}}}%
- {\newenvironment{#2#3}{\begin{#6*}}{\end{#6*}}}%
- }{%
- \ifcsmacro{#2#3}%
- {\renewenvironment{#2#3}{\begin{#6}}{\end{#6}}}%
- {\newenvironment{#2#3}{\begin{#6}}{\end{#6}}}%
- }
- }{%
- \IfBooleanTF{#1}{%
- \newtheorem*{#2#3}{\csname#2name\csname\languagename ABBR\endcsname\endcsname}
- }{%
- \IfValueTF{#5}{%
- \newtheorem{PJL#2#3}{\csname#2name\csname\languagename ABBR\endcsname\endcsname}[#5]%
- \newaliascnt{#2#3}{PJL#2#3}%
- }{%
- \IfValueTF{#4}{%
- \newtheorem{PJL#2#3}[#4]{\csname#2name\csname\languagename ABBR\endcsname\endcsname}%
- }{%
- \newtheorem{PJL#2#3}{\csname#2name\csname\languagename ABBR\endcsname\endcsname}%
- \newaliascnt{#2#3}{PJL#2#3}%
- }%
- }%
- \ifcsname cref@PJL#2#3@name\endcsname\else%
- \crefname{PJL#2#3}%
- {\csname#2name\csname\languagename ABBR\endcsname\endcsname}%
- {\csname#2name\csname\languagename ABBR\endcsname\endcsname}%
- \fi%
- \ifcsname Cref@PJL#2#3@name\endcsname\else%
- \Crefname{PJL#2#3}%
- {\csname#2name\csname\languagename ABBR\endcsname\endcsname}%
- {\csname#2name\csname\languagename ABBR\endcsname\endcsname}%
- \fi%
- \NewDocumentEnvironment{#2#3}{}
- {\begin{PJL#2#3}}
- {\end{PJL#2#3}}
- }%
- }%
- }%
- \IfValueTF{#7}{%
- \NameTheorem{#2}{#7}%
- }{}%
-}%
-\else
-\NewDocumentCommand{\InnerCreateTheorem}{mmmod<>d()g}{%
-% #1 = Tokens denoting an xparse-boolean value;
-% value "true" -> the call was \CreateTheorem*{...}...
-% value "false" -> the call was \CreateTheorem{...}...
-% This indicates whether the "starred" variant or the
-% "unstarred" variant of \CreateTheorem was called.
-% #2 = Name of environment to define. One trailing
-% star is removed from the environment-name provided
-% to \CreateTheorem if that environment-name has
-% trailing stars.
-% #3 = If the environment-name provided to \CreateTheorem has
-% trailing stars: A star (*).
-% If the environment-name provided to \CreateTheorem has
-% no trailing stars: Empty/no tokens at all.
-% #4 = numbered like=name of counter like which the environment
-% shall be numbered.
-% #5 = numbered within=name of counter which is superordinate
-% to the environment's counter and whose stepping resets
-% the environment's counter.
-% #6 = existed environment name (the environment to copy)
-% #7 = key-value configuration of names
- \IfBooleanTF{#1}{%
- \IfValueTF{#4}
- {\@firstoftwo}
- {\IfValueTF{#5}{\@firstoftwo}{\@secondoftwo}}%
- }{%
- \IfValueTF{#4}
- {\IfValueTF{#5}{\@firstoftwo}{\@secondoftwo}}{
- \@secondoftwo}
- }%
- {%
- \GenericError{}%
- {\string\CreateTheorem\space syntax error\on@line}{%
- You cannot call the starred variant with optional argument,\MessageBreak
- nor call the unstarred variant with several optional arguments.}%
- {%
- Allowed usage:\MessageBreak\MessageBreak
- \CreateTheorem*{(name of environment)}\MessageBreak
- \CreateTheorem{(name of environment)}\MessageBreak
- \CreateTheorem{(name of environment)}[(numbered like)]\MessageBreak
- \CreateTheorem{(name of environment)}<(numbered within)>\MessageBreak
- \CreateTheorem{(name of environment)}((existed environment))\MessageBreak
- }%
- }{%
- \IfValueTF{#6}{%
- \IfBooleanTF{#1}{%
- \ifcsmacro{#2#3}%
- {\renewenvironment{#2#3}{\begin{#6*}}{\end{#6*}}}%
- {\newenvironment{#2#3}{\begin{#6*}}{\end{#6*}}}%
- }{%
- \ifcsmacro{#2#3}%
- {\renewenvironment{#2#3}{\begin{#6}}{\end{#6}}}%
- {\newenvironment{#2#3}{\begin{#6}}{\end{#6}}}%
- }
- }{%
- \IfBooleanTF{#1}{%
-% \newtheorem*{#2EN#3}{\csname#2nameEN\endcsname}%
-% \newtheorem*{#2FR#3}{\csname#2nameFR\endcsname}%
-% \newtheorem*{#2DE#3}{\csname#2nameDE\endcsname}%
-% \newtheorem*{#2IT#3}{\csname#2nameIT\endcsname}%
-% \newtheorem*{#2PT#3}{\csname#2namePT\endcsname}%
-% \newtheorem*{#2BR#3}{\csname#2nameBR\endcsname}%
-% \newtheorem*{#2ES#3}{\csname#2nameES\endcsname}%
-% \newtheorem*{#2CN#3}{\csname#2nameCN\endcsname}%
-% \newtheorem*{#2TC#3}{\csname#2nameTC\endcsname}%
-% \newtheorem*{#2JP#3}{\csname#2nameJP\endcsname}%
-% \newtheorem*{#2RU#3}{\csname#2nameRU\endcsname}%
- \if@PJLlang@enable@EN\expandafter\PassFirstToSecond\expandafter{\csname#2nameEN\endcsname}{\newtheorem*{#2EN#3}}\fi%
- \if@PJLlang@enable@FR\expandafter\PassFirstToSecond\expandafter{\csname#2nameFR\endcsname}{\newtheorem*{#2FR#3}}\fi%
- \if@PJLlang@enable@DE\expandafter\PassFirstToSecond\expandafter{\csname#2nameDE\endcsname}{\newtheorem*{#2DE#3}}\fi%
- \if@PJLlang@enable@IT\expandafter\PassFirstToSecond\expandafter{\csname#2nameIT\endcsname}{\newtheorem*{#2IT#3}}\fi%
- \if@PJLlang@enable@PT\expandafter\PassFirstToSecond\expandafter{\csname#2namePT\endcsname}{\newtheorem*{#2PT#3}}\fi%
- \if@PJLlang@enable@BR\expandafter\PassFirstToSecond\expandafter{\csname#2nameBR\endcsname}{\newtheorem*{#2BR#3}}\fi%
- \if@PJLlang@enable@ES\expandafter\PassFirstToSecond\expandafter{\csname#2nameES\endcsname}{\newtheorem*{#2ES#3}}\fi%
- \if@PJLlang@enable@CN\expandafter\PassFirstToSecond\expandafter{\csname#2nameCN\endcsname}{\newtheorem*{#2CN#3}}\fi%
- \if@PJLlang@enable@TC\expandafter\PassFirstToSecond\expandafter{\csname#2nameTC\endcsname}{\newtheorem*{#2TC#3}}\fi%
- \if@PJLlang@enable@JP\expandafter\PassFirstToSecond\expandafter{\csname#2nameJP\endcsname}{\newtheorem*{#2JP#3}}\fi%
- \if@PJLlang@enable@RU\expandafter\PassFirstToSecond\expandafter{\csname#2nameRU\endcsname}{\newtheorem*{#2RU#3}}\fi%
- }{%
- \IfValueTF{#5}{%
- \newcounter{#2#3}[{#5}]%
- \expandafter\renewcommand\expandafter*%
- \csname the#2#3\expandafter\endcsname%
- \expandafter{\csname the#5\endcsname.\arabic{#2#3}}%
- }{%
- \IfValueTF{#4}
- {\newaliascnt{#2#3}{#4}}
- {\newcounter{#2#3}}%
- }%
- %---------------------------------------------------------------
- \if@PJLlang@enable@EN\CreateTheoremNumberedLikeAliasCounter{#2}{EN}{#3}\fi%
- \if@PJLlang@enable@FR\CreateTheoremNumberedLikeAliasCounter{#2}{FR}{#3}\fi%
- \if@PJLlang@enable@DE\CreateTheoremNumberedLikeAliasCounter{#2}{DE}{#3}\fi%
- \if@PJLlang@enable@IT\CreateTheoremNumberedLikeAliasCounter{#2}{IT}{#3}\fi%
- \if@PJLlang@enable@PT\CreateTheoremNumberedLikeAliasCounter{#2}{PT}{#3}\fi%
- \if@PJLlang@enable@BR\CreateTheoremNumberedLikeAliasCounter{#2}{BR}{#3}\fi%
- \if@PJLlang@enable@ES\CreateTheoremNumberedLikeAliasCounter{#2}{ES}{#3}\fi%
- \if@PJLlang@enable@CN\CreateTheoremNumberedLikeAliasCounter{#2}{CN}{#3}\fi%
- \if@PJLlang@enable@TC\CreateTheoremNumberedLikeAliasCounter{#2}{TC}{#3}\fi%
- \if@PJLlang@enable@JP\CreateTheoremNumberedLikeAliasCounter{#2}{JP}{#3}\fi%
- \if@PJLlang@enable@RU\CreateTheoremNumberedLikeAliasCounter{#2}{RU}{#3}\fi%
- %---------------------------------------------------------------
- }%
- \NewDocumentEnvironment{#2#3}{}
- {\csname#2\csname\languagename ABBR\endcsname#3\endcsname}%
- {\csname end#2\csname\languagename ABBR\endcsname#3\endcsname}%
- }%
- }%
- \IfValueTF{#7}{%
- \NameTheorem{#2}{#7}%
- }{}%
-}%
-\NewDocumentCommand{\CreateTheoremNumberedLikeAliasCounter}{mmm}{%
- \newaliascnt{#1#2#3}{#1#3}%
-% \newtheorem{#1#2#3}[{#1#2#3}]{\csname#1name#2\endcsname}%
- \expandafter\PassFirstToSecond\expandafter{\csname#1name#2\endcsname}{\newtheorem{#1#2#3}[{#1#2#3}]}%
- \aliascntresetthe{#1#2#3}%
-% \crefname{#1#2#3}%
-% {\csname#1name#2\endcsname}%
-% {\csname#1name#2\endcsname}%
-% \Crefname{#1#2#3}%
-% {\csname#1name#2\endcsname}%
-% {\csname#1name#2\endcsname}%
- \ifcsname cref@#1#2#3@name\endcsname\else%
- \expandafter\PassFirstToSecond\expandafter{\csname#1name#2\endcsname}%
- {%
- \expandafter\PassFirstToSecond\expandafter{\csname#1name#2\endcsname}%
- {\crefname{#1#2#3}}%
- }%
- \fi%
- \ifcsname Cref@#1#2#3@name\endcsname\else%
- \expandafter\PassFirstToSecond\expandafter{\csname#1name#2\endcsname}%
- {%
- \expandafter\PassFirstToSecond\expandafter{\csname#1name#2\endcsname}%
- {\Crefname{#1#2#3}}%
- }%
- \fi%
-}%
-\fi
-
-% See https://tex.stackexchange.com/a/610604
-\ExplSyntaxOn
-
-% Helper-macros/scratch-macros
-%-----------------------------
-\cs_new:Nn \PJLthm_exchange_i_iii_ii:nnn { #1 {#3} {#2} }
-\cs_new:Nn \__PJLthm_languageprefix: {}
-\cs_new:Nn \__PJLthm_countername: {}
-
-% Message-management:
-%--------------------
-\msg_new:nnnn {PJLthm}
- {Undefined Language Dependent Specification Class}
- {\token_to_str:N \CreateTheorem :\ Value\ `\tl_to_str:n{#2}'\ for\ invalid\ key\ `#1'.}
- {Providing\ Language-dependent\ specifications\ for\ element\ `#1'\ is\ currently\ not\ implemented.}
-
-% Nested key=value-interface by means of package l3keys:
-%-------------------------------------------------------
-% (l3keys is similar to pgfkeys.)
-% The outer level of key=value-specifications, i.e., <language-ID>={...},
-% is processed via \keyval_parse:nnn which was added tpo expl3 in 2020/12/19.
-% The inner level of key=value-specifications,
-% i.e., the single keys whose values are to be specified dependant on the language,
-% i.e., the "..."-content of the outer lever's {...},
-% is processed via \keys_set:nn .
-% The keys for the inner level are defined via \keys_define:nn .
-
-\NewDocumentCommand \CreateTheoremSetKeys { mm } {
-% #1 = name of counter
-% #2 = keyval-list of language-specifications
- \cs_set:Nn \__PJLthm_countername: {#1}
- \keyval_parse:nnn { \PJLthm_exchange_i_iii_ii:nnn { \PJLthm_setlanguagespecificparameters:nn } {} }
- { \PJLthm_setlanguagespecificparameters:nn }
- { #2 }
-}
-
-\cs_new_protected:Nn \PJLthm_setlanguagespecificparameters:nn {
-% #1 = language-prefix
-% #2 = key-val-list for language whose prefix is language-prefix
- \cs_set:Nx \__PJLthm_languageprefix: {\StrToABBR{#1}}
- \exp_args:No \tl_if_empty:nTF {\__PJLthm_languageprefix:}
- { \msg_error:nn { PJLthm }
- { No~language~"\exp_not:n{#1}"~defined }
- }%
- {%
- \keys_set:nn { PJLthm } { #2 }
- }%
-}%
-
-\keys_define:nn { PJLthm } {
- crefname.code:n = \cs_if_exist:NTF \crefname {
- \ifbool{@PJLthm@regionalref}{
- \exp_args:Nx \PJLthm@setcrefinnername{PJL\__PJLthm_countername: \__PJLthm_languageprefix: }#1
- \exp_args:Nx \PJLthm@setcrefname{PJL\__PJLthm_countername: }
- }{
- \exp_args:Nx \crefname {\__PJLthm_countername: \__PJLthm_languageprefix: }#1
- }
- }{},
- crefname.value_required:n = true,
- Crefname.code:n = \cs_if_exist:NTF \Crefname {
- \ifbool{@PJLthm@regionalref}{
- \exp_args:Nx \PJLthm@setCrefinnername{PJL\__PJLthm_countername: \__PJLthm_languageprefix: }#1
- \exp_args:Nx \PJLthm@setCrefname{PJL\__PJLthm_countername: }
- }{
- \exp_args:Nx \Crefname {\__PJLthm_countername: \__PJLthm_languageprefix: }#1
- }
- }{},
- Crefname.value_required:n = true,
- name.code:n = \exp_args:Nx \cs_set:cpn {\__PJLthm_countername: name \__PJLthm_languageprefix:} {#1},
- name.value_required:n = true,
- autorefname.code:n = \exp_args:Nx \cs_set:cpn {\__PJLthm_countername: \__PJLthm_languageprefix: autorefname} {#1},
- autorefname.value_required:n = true,
- theoremheading.code:n= \exp_args:Nx \cs_set:cpn {\__PJLthm_countername: \__PJLthm_languageprefix: heading} {#1},
- theoremheading.value_required:n = true,
- the.code:n= \exp_args:Nx \cs_set:cpn {the \__PJLthm_countername: \__PJLthm_languageprefix: } {#1},
- the.value_required:n = true,
- %
- % Define keys for more Language Dependent Specification Classes.
- %
- unknown.code:n = \msg_error:nnxx {PJLthm}
- {Undefined Language Dependent Specification Class}
- {\exp_args:No \exp_not:n \l_keys_key_str}
- {\exp_not:n{#1}},
-}
-
-\ExplSyntaxOff
-
-% Some command for regionalref mode
-\newcommand{\PJLthm@setcrefinnername}[3]{%
- \expandafter\def\csname PJLthm@cref@#1@name\endcsname{#2}%
- \expandafter\def\csname PJLthm@cref@#1@name@plural\endcsname{#3}%
-}
-\newcommand{\PJLthm@setCrefinnername}[3]{%
- \expandafter\def\csname PJLthm@Cref@#1@name\endcsname{#2}%
- \expandafter\def\csname PJLthm@Cref@#1@name@plural\endcsname{#3}%
-}
-
-\newcommand{\PJLthm@setcrefname}[1]{%
- \crefname{#1}%
- {\csname PJLthm@cref@#1\csname\languagename ABBR\endcsname @name\endcsname}%
- {\csname PJLthm@cref@#1\csname\languagename ABBR\endcsname @name@plural\endcsname}%
-}
-\newcommand{\PJLthm@setCrefname}[1]{%
- \Crefname{#1}%
- {\csname PJLthm@Cref@#1\csname\languagename ABBR\endcsname @name\endcsname}%
- {\csname PJLthm@Cref@#1\csname\languagename ABBR\endcsname @name@plural\endcsname}%
-}
-
-%# 设置定理类环境名称
-%# Set the names of theorem-like environments
-\ifbool{@PJLthm@complexname}{
- \NameTheorem{theorem}{
- EN = {
- name = {Theorem},
- crefname = {theorem}{theorems},
- Crefname = {Theorem}{Theorems},
- },
- FR = {
- name = {Théorème},
- crefname = {\crefthemark{le} théorème}{\crefthemark{les} théorèmes},
- Crefname = {Le théorème}{Les théorèmes},
- },
- DE = {
- name = {Satz},
- crefname = {Satz}{Sätze},
- Crefname = {Satz}{Sätze},
- },
- IT = {
- name = {Teorema},
- crefname = {\crefthemark{il} teorema}{\crefthemark{i} teoremi},
- Crefname = {Il teorema}{I teoremi},
- },
- PT = {
- name = {Teorema},
- crefname = {\crefthemark{o} teorema}{\crefthemark{os} teoremas},
- Crefname = {O teorema}{Os teoremas},
- },
- BR = {
- name = {Teorema},
- crefname = {\crefthemark{o} teorema}{\crefthemark{os} teoremas},
- Crefname = {O teorema}{Os teoremas},
- },
- ES = {
- name = {Teorema},
- crefname = {\crefthemark{el} teorema}{los teoremas},
- Crefname = {El teorema}{Los teoremas},
- },
- CN = {
- name = {定理},
- crefname = {定理}{定理},
- Crefname = {定理}{定理},
- },
- TC = {
- name = {定理},
- crefname = {定理}{定理},
- Crefname = {定理}{定理},
- },
- JP = {
- name = {定理},
- crefname = {定理}{定理},
- Crefname = {定理}{定理},
- },
- RU = {
- name = {Теорема},
- crefname = {теорема}{теоремы},
- Crefname = {Теорема}{Теоремы},
- },
- }
- \NameTheorem{lemma}{
- EN = {
- name = {Lemma},
- crefname = {lemma}{Lemmas},
- Crefname = {Lemma}{Lemmas},
- },
- FR = {
- name = {Lemme},
- crefname = {\crefthemark{le} lemme}{\crefthemark{les} lemmes},
- Crefname = {Le lemme}{Les lemmes},
- },
- DE = {
- name = {Lemma},
- crefname = {Lemma}{Lemmata},
- Crefname = {Lemma}{Lemmata},
- },
- IT = {
- name = {Lemma},
- crefname = {\crefthemark{il} lemma}{\crefthemark{i} lemmi},
- Crefname = {Il lemma}{I lemmi},
- },
- PT = {
- name = {Lema},
- crefname = {\crefthemark{o} lema}{\crefthemark{os} lemas},
- Crefname = {O lema}{Os lemas},
- },
- BR = {
- name = {Lema},
- crefname = {\crefthemark{o} lema}{\crefthemark{os} lemas},
- Crefname = {O lema}{Os lemas},
- },
- ES = {
- name = {Lema},
- crefname = {\crefthemark{el} lema}{las lemas},
- Crefname = {El lema}{Las lemas},
- },
- CN = {
- name = {引理},
- crefname = {引理}{引理},
- Crefname = {引理}{引理},
- },
- TC = {
- name = {引理},
- crefname = {引理}{引理},
- Crefname = {引理}{引理},
- },
- JP = {
- name = {補題},
- crefname = {補題}{補題},
- Crefname = {補題}{補題},
- },
- RU = {
- name = {Лемма},
- crefname = {лемма}{леммы},
- Crefname = {Лемма}{Леммы},
- },
- }
- \NameTheorem{proposition}{
- EN = {
- name = {Proposition},
- crefname = {proposition}{propositions},
- Crefname = {Proposition}{Propositions},
- },
- FR = {
- name = {Proposition},
- crefname = {\crefthemark{la} proposition}{\crefthemark{les} propositions},
- Crefname = {La proposition}{Les propositions},
- },
- DE = {
- name = {Proposition},
- crefname = {Proposition}{Propositionen},
- Crefname = {Proposition}{Propositionen},
- },
- IT = {
- name = {Proposizione},
- crefname = {\crefthemark{la} proposizione}{\crefthemark{le} proposte},
- Crefname = {La proposizione}{Le proposte},
- },
- PT = {
- name = {Proposição},
- crefname = {\crefthemark{a} proposição}{\crefthemark{as} proposições},
- Crefname = {A proposição}{As proposições},
- },
- BR = {
- name = {Proposição},
- crefname = {\crefthemark{a} proposição}{\crefthemark{as} proposições},
- Crefname = {A proposição}{As proposições},
- },
- ES = {
- name = {Proposición},
- crefname = {la proposición}{las proposiciones},
- Crefname = {La proposición}{Las proposiciones},
- },
- CN = {
- name = {命题},
- crefname = {命题}{命题},
- Crefname = {命题}{命题},
- },
- TC = {
- name = {命題},
- crefname = {命題}{命題},
- Crefname = {命題}{命題},
- },
- JP = {
- name = {命題},
- crefname = {命題}{命題},
- Crefname = {命題}{命題},
- },
- RU = {
- name = {Предложение},
- crefname = {предложение}{предложения},
- Crefname = {Предложение}{Предложения},
- },
- }
- \NameTheorem{corollary}{
- EN = {
- name = {Corollary},
- crefname = {corollary}{corollaries},
- Crefname = {Corollary}{Corollaries},
- },
- FR = {
- name = {Corollaire},
- crefname = {\crefthemark{le} corollaire}{\crefthemark{les} corollaires},
- Crefname = {Le corollaire}{Les corollaires},
- },
- DE = {
- name = {Korollar},
- crefname = {Korollar}{Korollare},
- Crefname = {Korollar}{Korollare},
- },
- IT = {
- name = {Corollario},
- crefname = {\crefthemark{il} corollario}{\crefthemark{i} corollari},
- Crefname = {Il corollario}{I corollari},
- },
- PT = {
- name = {Corolário},
- crefname = {\crefthemark{o} corolário}{\crefthemark{os} corolários},
- Crefname = {O corolário}{Os corolários},
- },
- BR = {
- name = {Corolário},
- crefname = {\crefthemark{o} corolário}{\crefthemark{os} corolários},
- Crefname = {O corolário}{Os corolários},
- },
- ES = {
- name = {Corolario},
- crefname = {\crefthemark{el} corolario}{los corolarios},
- Crefname = {El corolario}{Los corolarios},
- },
- CN = {
- name = {推论},
- crefname = {推论}{推论},
- Crefname = {推论}{推论},
- },
- TC = {
- name = {推論},
- crefname = {推論}{推論},
- Crefname = {推論}{推論},
- },
- JP = {
- name = {系},
- crefname = {系}{系},
- Crefname = {系}{系},
- },
- RU = {
- name = {Следствие},
- crefname = {следствие}{следствия},
- Crefname = {Следствие}{Следствия},
- },
- }
- \NameTheorem{property}{
- EN = {
- name = {Property},
- crefname = {property}{properties},
- Crefname = {Property}{Properties},
- },
- FR = {
- name = {Propriété},
- crefname = {\crefthemark{la} propriété}{\crefthemark{les} propriétés},
- Crefname = {La propriété}{Les propriétés},
- },
- DE = {
- name = {Eigenschaft},
- crefname = {Eigenschaft}{Eigenschaften},
- Crefname = {Eigenschaft}{Eigenschaften},
- },
- IT = {
- name = {Proprietà},
- crefname = {\crefthemark{la} proprietà}{\crefthemark{le} proprietà},
- Crefname = {La proprietà}{Le proprietà},
- },
- PT = {
- name = {Propriedade},
- crefname = {\crefthemark{a} propriedade}{\crefthemark{as} propriedades},
- Crefname = {A propriedade}{As propriedades},
- },
- BR = {
- name = {Propriedade},
- crefname = {\crefthemark{a} propriedade}{\crefthemark{as} propriedades},
- Crefname = {A propriedade}{As propriedades},
- },
- ES = {
- name = {Propiedad},
- crefname = {la propiedad}{las propiedades},
- Crefname = {La propiedad}{Las propiedades},
- },
- CN = {
- name = {性质},
- crefname = {性质}{性质},
- Crefname = {性质}{性质},
- },
- TC = {
- name = {性質},
- crefname = {性質}{性質},
- Crefname = {性質}{性質},
- },
- JP = {
- name = {性質},
- crefname = {性質}{性質},
- Crefname = {性質}{性質},
- },
- RU = {
- name = {Имущество},
- crefname = {имущество}{имущества},
- Crefname = {Имущество}{Имущества},
- },
- }
- \NameTheorem{fact}{
- EN = {
- name = {Fact},
- crefname = {fact}{facts},
- Crefname = {Fact}{Facts},
- },
- FR = {
- name = {Fait},
- crefname = {\crefthemark{le} fait}{\crefthemark{les} faits},
- Crefname = {Le fait}{Les faits},
- },
- DE = {
- name = {Fakt},
- crefname = {Fakt}{Fakten},
- Crefname = {Fakt}{Fakten},
- },
- IT = {
- name = {Fatto},
- crefname = {\crefthemark{il} fatto}{\crefthemark{i} fatti},
- Crefname = {Il fatto}{I fatti},
- },
- PT = {
- name = {Facto},
- crefname = {\crefthemark{o} facto}{\crefthemark{os} factos},
- Crefname = {O facto}{Os factos},
- },
- BR = {
- name = {Fato},
- crefname = {\crefthemark{o} fato}{\crefthemark{os} fatos},
- Crefname = {O fato}{Os fatos},
- },
- ES = {
- name = {Hecho},
- crefname = {\crefthemark{el} hecho}{los hechos},
- Crefname = {El hecho}{Los hechos},
- },
- CN = {
- name = {事实},
- crefname = {事实}{事实},
- Crefname = {事实}{事实},
- },
- TC = {
- name = {事實},
- crefname = {事實}{事實},
- Crefname = {事實}{事實},
- },
- JP = {
- name = {事実},
- crefname = {事実}{事実},
- Crefname = {事実}{事実},
- },
- RU = {
- name = {Факт},
- crefname = {факт}{факты},
- Crefname = {Факт}{Факты},
- },
- }
- \NameTheorem{conjecture}{
- EN = {
- name = {Conjecture},
- crefname = {conjecture}{conjectures},
- Crefname = {Conjecture}{Conjectures},
- },
- FR = {
- name = {Conjecture},
- crefname = {\crefthemark{la} conjecture}{\crefthemark{les} conjectures},
- Crefname = {La conjecture}{Les conjectures},
- },
- DE = {
- name = {Vermutung},
- crefname = {Vermutung}{Vermutungen},
- Crefname = {Vermutung}{Vermutungen},
- },
- IT = {
- name = {Congettura},
- crefname = {\crefthemark{la} congettura}{\crefthemark{le} congetture},
- Crefname = {La congettura}{Le congetture},
- },
- PT = {
- name = {Conjetura},
- crefname = {\crefthemark{a} conjetura}{\crefthemark{as} conjeturas},
- Crefname = {A conjetura}{As conjeturas},
- },
- BR = {
- name = {Conjectura},
- crefname = {\crefthemark{a} conjectura}{\crefthemark{as} conjecturas},
- Crefname = {A conjectura}{As conjecturas},
- },
- ES = {
- name = {Conjetura},
- crefname = {la conjetura}{las conjeturas},
- Crefname = {La conjetura}{Las conjeturas},
- },
- CN = {
- name = {猜想},
- crefname = {猜想}{猜想},
- Crefname = {猜想}{猜想},
- },
- TC = {
- name = {猜想},
- crefname = {猜想}{猜想},
- Crefname = {猜想}{猜想},
- },
- JP = {
- name = {予想},
- crefname = {予想}{予想},
- Crefname = {予想}{予想},
- },
- RU = {
- name = {Гипотеза},
- crefname = {гипотеза}{гипотезы},
- Crefname = {Гипотеза}{Гипотезы},
- },
- }
- \NameTheorem{definition}{
- EN = {
- name = {Definition},
- crefname = {definition}{definitions},
- Crefname = {Definition}{Definitions},
- },
- FR = {
- name = {Définition},
- crefname = {\crefthemark{la} définition}{\crefthemark{les} définitions},
- Crefname = {La définition}{Les définitions},
- },
- DE = {
- name = {Definition},
- crefname = {Definition}{Definitionen},
- Crefname = {Definition}{Definitionen},
- },
- IT = {
- name = {Definizione},
- crefname = {\crefthemark{la} definizione}{\crefthemark{le} definizioni},
- Crefname = {La definizione}{Le definizioni},
- },
- PT = {
- name = {Definição},
- crefname = {\crefthemark{a} definição}{\crefthemark{as} definições},
- Crefname = {A definição}{As definições},
- },
- BR = {
- name = {Definição},
- crefname = {\crefthemark{a} definição}{\crefthemark{as} definições},
- Crefname = {A definição}{As definições},
- },
- ES = {
- name = {Definición},
- crefname = {la definición}{las definiciones},
- Crefname = {La definición}{Las definiciones},
- },
- CN = {
- name = {定义},
- crefname = {定义}{定义},
- Crefname = {定义}{定义},
- },
- TC = {
- name = {定義},
- crefname = {定義}{定義},
- Crefname = {定義}{定義},
- },
- JP = {
- name = {定義},
- crefname = {定義}{定義},
- Crefname = {定義}{定義},
- },
- RU = {
- name = {Определение},
- crefname = {определение}{определения},
- Crefname = {Определение}{Определения},
- },
- }
- \NameTheorem{axiom}{
- EN = {
- name = {Axiom},
- crefname = {axiom}{axioms},
- Crefname = {Axiom}{Axioms},
- },
- FR = {
- name = {Axiome},
- crefname = {\crefthemark{l'}axiome}{\crefthemark{les} axiomes},
- Crefname = {L'axiome}{Les axiomes},
- },
- DE = {
- name = {Axiom},
- crefname = {Axiom}{Axiome},
- Crefname = {Axiom}{Axiome},
- },
- IT = {
- name = {Assioma},
- crefname = {\crefthemark{l'}assioma}{\crefthemark{gli} assiomi},
- Crefname = {L'assioma}{Gli assiomi},
- },
- PT = {
- name = {Axioma},
- crefname = {\crefthemark{o} axioma}{\crefthemark{os} axiomas},
- Crefname = {O axioma}{Os axiomas},
- },
- BR = {
- name = {Axioma},
- crefname = {\crefthemark{o} axioma}{\crefthemark{os} axiomas},
- Crefname = {O axioma}{Os axiomas},
- },
- ES = {
- name = {Axioma},
- crefname = {\crefthemark{el} axioma}{los axiomas},
- Crefname = {El axioma}{Los axiomas},
- },
- CN = {
- name = {公理},
- crefname = {公理}{公理},
- Crefname = {公理}{公理},
- },
- TC = {
- name = {公理},
- crefname = {公理}{公理},
- Crefname = {公理}{公理},
- },
- JP = {
- name = {公理},
- crefname = {公理}{公理},
- Crefname = {公理}{公理},
- },
- RU = {
- name = {Аксиома},
- crefname = {аксиома}{аксиомы},
- Crefname = {Аксиома}{Аксиомы},
- },
- }
- \NameTheorem{assumption}{
- EN = {
- name = {Assumption},
- crefname = {assumption}{assumptions},
- Crefname = {Assumption}{Assumptions},
- },
- FR = {
- name = {Supposition},
- crefname = {\crefthemark{la} supposition}{\crefthemark{les} suppositions},
- Crefname = {La supposition}{Les suppositions},
- },
- DE = {
- name = {Annahme},
- crefname = {Annahme}{Annahmen},
- Crefname = {Annahme}{Annahmen},
- },
- IT = {
- name = {Supposizione},
- crefname = {\crefthemark{la} supposizione}{\crefthemark{le} supposizioni},
- Crefname = {La supposizione}{Le supposizioni},
- },
- PT = {
- name = {Suposição},
- crefname = {\crefthemark{a} suposição}{\crefthemark{as} suposições},
- Crefname = {A suposição}{As suposições},
- },
- BR = {
- name = {Suposição},
- crefname = {\crefthemark{a} suposição}{\crefthemark{as} suposições},
- Crefname = {A suposição}{As suposições},
- },
- ES = {
- name = {Suposición},
- crefname = {la suposición}{las suposiciones},
- Crefname = {La suposición}{Las suposiciones},
- },
- CN = {
- name = {假定},
- crefname = {假定}{假定},
- Crefname = {假定}{假定},
- },
- TC = {
- name = {假定},
- crefname = {假定}{假定},
- Crefname = {假定}{假定},
- },
- JP = {
- name = {仮定},
- crefname = {仮定}{仮定},
- Crefname = {仮定}{仮定},
- },
- RU = {
- name = {Предположение},
- crefname = {предположение}{предположения},
- Crefname = {Предположение}{Предположения},
- },
- }
- \NameTheorem{convention}{
- EN = {
- name = {Convention},
- crefname = {convention}{conventions},
- Crefname = {Convention}{Conventions},
- },
- FR = {
- name = {Convention},
- crefname = {\crefthemark{la} convention}{\crefthemark{les} conventions},
- Crefname = {La convention}{Les conventions},
- },
- DE = {
- name = {Konvention},
- crefname = {Konvention}{Konventionen},
- Crefname = {Konvention}{Konventionen},
- },
- IT = {
- name = {Convenzione},
- crefname = {\crefthemark{la} convenzione}{\crefthemark{le} convenzioni},
- Crefname = {La convenzione}{Le convenzioni},
- },
- PT = {
- name = {Convenção},
- crefname = {\crefthemark{a} convenção}{\crefthemark{as} convenções},
- Crefname = {A convenção}{As convenções},
- },
- BR = {
- name = {Convenção},
- crefname = {\crefthemark{a} convenção}{\crefthemark{as} convenções},
- Crefname = {A convenção}{As convenções},
- },
- ES = {
- name = {Convención},
- crefname = {la convención}{las convenciones},
- Crefname = {La convención}{Las convenciones},
- },
- CN = {
- name = {约定},
- crefname = {约定}{约定},
- Crefname = {约定}{约定},
- },
- TC = {
- name = {約定},
- crefname = {約定}{約定},
- Crefname = {約定}{約定},
- },
- JP = {
- name = {慣例},
- crefname = {慣例}{慣例},
- Crefname = {慣例}{慣例},
- },
- RU = {
- name = {Конвенция},
- crefname = {конвенция}{конвенции},
- Crefname = {Конвенция}{Конвенции},
- },
- }
- \NameTheorem{hypothesis}{
- EN = {
- name = {Hypothesis},
- crefname = {hypothesis}{hypotheses},
- Crefname = {Hypothesis}{Hypotheses},
- },
- FR = {
- name = {Hypothèse},
- crefname = {\crefthemark{l'}hypothèse}{\crefthemark{les} hypothèses},
- Crefname = {L'hypothèse}{Les hypothèses},
- },
- DE = {
- name = {Hypothese},
- crefname = {Hypothese}{Hypothesen},
- Crefname = {Hypothese}{Hypothesen},
- },
- IT = {
- name = {Ipotesi},
- crefname = {\crefthemark{l'}ipotesi}{\crefthemark{le} ipotesi},
- Crefname = {L'ipotesi}{Le ipotesi},
- },
- PT = {
- name = {Hipótese},
- crefname = {\crefthemark{a} hipótese}{\crefthemark{as} hipóteses},
- Crefname = {A hipótese}{As hipóteses},
- },
- BR = {
- name = {Hipótese},
- crefname = {\crefthemark{a} hipótese}{\crefthemark{as} hipóteses},
- Crefname = {A hipótese}{As hipóteses},
- },
- ES = {
- name = {Hipótesis},
- crefname = {la hipótesis}{las hipótesis},
- Crefname = {La hipótesis}{Las hipótesis},
- },
- CN = {
- name = {假设},
- crefname = {假设}{假设},
- Crefname = {假设}{假设},
- },
- TC = {
- name = {假設},
- crefname = {假設}{假設},
- Crefname = {假設}{假設},
- },
- JP = {
- name = {仮設},
- crefname = {仮設}{仮設},
- Crefname = {仮設}{仮設},
- },
- RU = {
- name = {Гипотеза},
- crefname = {гипотеза}{гипотезы},
- Crefname = {Гипотеза}{Гипотезы},
- },
- }
- \NameTheorem{notation}{
- EN = {
- name = {Notation},
- crefname = {notation}{notations},
- Crefname = {Notation}{Notations},
- },
- FR = {
- name = {Notation},
- crefname = {\crefthemark{la} notation}{\crefthemark{les} notations},
- Crefname = {La notation}{Les notations},
- },
- DE = {
- name = {Notation},
- crefname = {Notation}{Notationen},
- Crefname = {Notation}{Notationen},
- },
- IT = {
- name = {Notazione},
- crefname = {\crefthemark{la} notazione}{\crefthemark{le} notazioni},
- Crefname = {La notazione}{Le notazioni},
- },
- PT = {
- name = {Notação},
- crefname = {\crefthemark{a} notação}{\crefthemark{as} notações},
- Crefname = {A notação}{As notações},
- },
- BR = {
- name = {Notação},
- crefname = {\crefthemark{a} notação}{\crefthemark{as} notações},
- Crefname = {A notação}{As notações},
- },
- ES = {
- name = {Notación},
- crefname = {la notación}{las notaciones},
- Crefname = {La notación}{Las notaciones},
- },
- CN = {
- name = {记号},
- crefname = {记号}{记号},
- Crefname = {记号}{记号},
- },
- TC = {
- name = {記號},
- crefname = {記號}{記號},
- Crefname = {記號}{記號},
- },
- JP = {
- name = {記法},
- crefname = {記法}{記法},
- Crefname = {記法}{記法},
- },
- RU = {
- name = {Нотация},
- crefname = {нотация}{нотации},
- Crefname = {Нотация}{Нотации},
- },
- }
- \NameTheorem{example}{
- EN = {
- name = {Example},
- crefname = {example}{examples},
- Crefname = {Example}{Examples},
- },
- FR = {
- name = {Exemple},
- crefname = {\crefthemark{l'}example}{\crefthemark{les} examples},
- Crefname = {L'example}{Les examples},
- },
- DE = {
- name = {Beispiel},
- crefname = {Beispiel}{Beispiele},
- Crefname = {Beispiel}{Beispiele},
- },
- IT = {
- name = {Esempio},
- crefname = {\crefthemark{l'}esempio}{\crefthemark{gli} esempi},
- Crefname = {L'esempio}{Gli esempi},
- },
- PT = {
- name = {Exemplo},
- crefname = {\crefthemark{o} exemplo}{\crefthemark{os} exemplos},
- Crefname = {O exemplo}{Os exemplos},
- },
- BR = {
- name = {Exemplo},
- crefname = {\crefthemark{o} exemplo}{\crefthemark{os} exemplos},
- Crefname = {O exemplo}{Os exemplos},
- },
- ES = {
- name = {Ejemplo},
- crefname = {\crefthemark{el} ejemplo}{los ejemplos},
- Crefname = {El ejemplo}{Los ejemplos},
- },
- CN = {
- name = {例},
- crefname = {例}{例},
- Crefname = {例}{例},
- },
- TC = {
- name = {例},
- crefname = {例}{例},
- Crefname = {例}{例},
- },
- JP = {
- name = {例},
- crefname = {例}{例},
- Crefname = {例}{例},
- },
- RU = {
- name = {Пример},
- crefname = {пример}{примеры},
- Crefname = {Пример}{Примеры},
- },
- }
- \NameTheorem{problem}{
- EN = {
- name = {Problem},
- crefname = {problem}{problems},
- Crefname = {Problem}{Problems},
- },
- FR = {
- name = {Problème},
- crefname = {\crefthemark{le} problème}{\crefthemark{les} problèmes},
- Crefname = {Le problème}{Les problèmes},
- },
- DE = {
- name = {Problem},
- crefname = {Problem}{Probleme},
- Crefname = {Problem}{Probleme},
- },
- IT = {
- name = {Problema},
- crefname = {\crefthemark{il} problema}{\crefthemark{i} problemi},
- Crefname = {Il problema}{I problemi},
- },
- PT = {
- name = {Problema},
- crefname = {\crefthemark{o} problema}{\crefthemark{os} problemas},
- Crefname = {O problema}{Os problemas},
- },
- BR = {
- name = {Problema},
- crefname = {\crefthemark{o} problema}{\crefthemark{os} problemas},
- Crefname = {O problema}{Os problemas},
- },
- ES = {
- name = {Problema},
- crefname = {\crefthemark{el} problema}{los problemas},
- Crefname = {El problema}{Los problemas},
- },
- CN = {
- name = {问题},
- crefname = {问题}{问题},
- Crefname = {问题}{问题},
- },
- TC = {
- name = {問題},
- crefname = {問題}{問題},
- Crefname = {問題}{問題},
- },
- JP = {
- name = {問題},
- crefname = {問題}{問題},
- Crefname = {問題}{問題},
- },
- RU = {
- name = {Проблема},
- crefname = {проблема}{проблемы},
- Crefname = {Проблема}{Проблемы},
- },
- }
- \NameTheorem{question}{
- EN = {
- name = {Question},
- crefname = {question}{questions},
- Crefname = {Question}{Questions},
- },
- FR = {
- name = {Question},
- crefname = {\crefthemark{la} question}{\crefthemark{les} questions},
- Crefname = {La question}{Les questions},
- },
- DE = {
- name = {Frage},
- crefname = {Frage}{Fragen},
- Crefname = {Frage}{Fragen},
- },
- IT = {
- name = {Domanda},
- crefname = {\crefthemark{la} domanda}{\crefthemark{le} domande},
- Crefname = {La domanda}{Le domande},
- },
- PT = {
- name = {Pergunta},
- crefname = {\crefthemark{a} pergunta}{\crefthemark{as} perguntas},
- Crefname = {A pergunta}{As perguntas},
- },
- BR = {
- name = {Pergunta},
- crefname = {\crefthemark{a} pergunta}{\crefthemark{as} perguntas},
- Crefname = {A pergunta}{As perguntas},
- },
- ES = {
- name = {Pregunta},
- crefname = {la pregunta}{las preguntas},
- Crefname = {La pregunta}{Las preguntas},
- },
- CN = {
- name = {问题},
- crefname = {问题}{问题},
- Crefname = {问题}{问题},
- },
- TC = {
- name = {問題},
- crefname = {問題}{問題},
- Crefname = {問題}{問題},
- },
- JP = {
- name = {問題},
- crefname = {問題}{問題},
- Crefname = {問題}{問題},
- },
- RU = {
- name = {Вопрос},
- crefname = {вопрос}{вопросы},
- Crefname = {Вопрос}{Вопросы},
- },
- }
- \NameTheorem{exercise}{
- EN = {
- name = {Exercise},
- crefname = {exercise}{exercises},
- Crefname = {Exercise}{Exercises},
- },
- FR = {
- name = {Exercice},
- crefname = {\crefthemark{l'}exercice}{\crefthemark{les} exercices},
- Crefname = {L'exercice}{Les exercices},
- },
- DE = {
- name = {Übung},
- crefname = {Übung}{Übungen},
- Crefname = {Übung}{Übungen},
- },
- IT = {
- name = {Esercizio},
- crefname = {\crefthemark{l'}esercizio}{\crefthemark{gli} esercizi},
- Crefname = {L'esercizio}{Gli esercizi},
- },
- PT = {
- name = {Exercício},
- crefname = {\crefthemark{o} exercício}{\crefthemark{os} exercícios},
- Crefname = {O exercício}{Os exercícios},
- },
- BR = {
- name = {Exercício},
- crefname = {\crefthemark{o} exercício}{\crefthemark{os} exercícios},
- Crefname = {O exercício}{Os exercícios},
- },
- ES = {
- name = {Ejercicio},
- crefname = {\crefthemark{el} ejercicio}{los ejercicios},
- Crefname = {El ejercicio}{Los ejercicios},
- },
- CN = {
- name = {练习},
- crefname = {练习}{练习},
- Crefname = {练习}{练习},
- },
- TC = {
- name = {練習},
- crefname = {練習}{練習},
- Crefname = {練習}{練習},
- },
- JP = {
- name = {練習},
- crefname = {練習}{練習},
- Crefname = {練習}{練習},
- },
- RU = {
- name = {Упражнение},
- crefname = {упражнение}{упражнения},
- Crefname = {Упражнение}{Упражнения},
- },
- }
- \NameTheorem{remark}{
- EN = {
- name = {Remark},
- crefname = {remark}{remarks},
- Crefname = {Remark}{Remarks},
- },
- FR = {
- name = {Remarque},
- crefname = {\crefthemark{la} remarque}{\crefthemark{les} remarques},
- Crefname = {La remarque}{Les remarques},
- },
- DE = {
- name = {Bemerkung},
- crefname = {Bemerkung}{Bemerkungen},
- Crefname = {Bemerkung}{Bemerkungen},
- },
- IT = {
- name = {Commento},
- crefname = {\crefthemark{il} commento}{\crefthemark{i} commenti},
- Crefname = {Il commento}{I commenti},
- },
- PT = {
- name = {Comentário},
- crefname = {\crefthemark{o} comentário}{\crefthemark{os} comentários},
- Crefname = {O comentário}{Os comentários},
- },
- BR = {
- name = {Comentário},
- crefname = {\crefthemark{o} comentário}{\crefthemark{os} comentários},
- Crefname = {O comentário}{Os comentários},
- },
- ES = {
- name = {Comentario},
- crefname = {\crefthemark{el} comentario}{los comentarios},
- Crefname = {El comentario}{Los comentarios},
- },
- CN = {
- name = {备注},
- crefname = {备注}{备注},
- Crefname = {备注}{备注},
- },
- TC = {
- name = {備註},
- crefname = {備註}{備註},
- Crefname = {備註}{備註},
- },
- JP = {
- name = {注釈},
- crefname = {注釈}{注釈},
- Crefname = {注釈}{注釈},
- },
- RU = {
- name = {Замечание},
- crefname = {замечание}{замечания},
- Crefname = {Замечание}{Замечания},
- },
- }
- \NameTheorem{observation}{
- EN = {
- name = {Observation},
- crefname = {observation}{observations},
- Crefname = {Observation}{Observations},
- },
- FR = {
- name = {Observation},
- crefname = {\crefthemark{la} observation}{\crefthemark{les} observations},
- Crefname = {La observation}{Les observations},
- },
- DE = {
- name = {Beobachtung},
- crefname = {Beobachtung}{Beobachtungen},
- Crefname = {Beobachtung}{Beobachtungen},
- },
- IT = {
- name = {Osservazione},
- crefname = {\crefthemark{l'}osservazione}{\crefthemark{le} osservazioni},
- Crefname = {L'osservazione}{Le osservazioni},
- },
- PT = {
- name = {Observação},
- crefname = {\crefthemark{a} observação}{\crefthemark{as} observações},
- Crefname = {A observação}{As observações},
- },
- BR = {
- name = {Observação},
- crefname = {\crefthemark{a} observação}{\crefthemark{as} observações},
- Crefname = {A observação}{As observações},
- },
- ES = {
- name = {Observación},
- crefname = {la observación}{las observaciones},
- Crefname = {La observación}{Las observaciones},
- },
- CN = {
- name = {观察},
- crefname = {观察}{观察},
- Crefname = {观察}{观察},
- },
- TC = {
- name = {觀察},
- crefname = {觀察}{觀察},
- Crefname = {觀察}{觀察},
- },
- JP = {
- name = {観察},
- crefname = {観察}{観察},
- Crefname = {観察}{観察},
- },
- RU = {
- name = {Наблюдение},
- crefname = {наблюдение}{наблюдения},
- Crefname = {Наблюдение}{Наблюдения},
- },
- }
- \NameTheorem{definition-proposition}{
- EN = {
- name = {\definitionnameEN-\propositionnameEN},
- crefname = {definition-proposition}{definitions-propositions},
- Crefname = {Definition-proposition}{Definitions-propositions},
- },
- FR = {
- name = {\definitionnameFR-\propositionnameFR},
- crefname = {\crefthemark{la} définition-proposition}{\crefthemark{les} définitions-propositions},
- Crefname = {La définition-proposition}{Les définitions-propositions},
- },
- DE = {
- name = {\definitionnameDE-\propositionnameDE},
- crefname = {Definition-Proposition}{Definitionen-Propositionen},
- Crefname = {Definition-Proposition}{Definitionen-Propositionen},
- },
- IT = {
- name = {\definitionnameIT-\propositionnameIT},
- crefname = {\crefthemark{la} definizione-proposizione}{\crefthemark{le} definizioni-proposte},
- Crefname = {La definizione-proposizione}{Le definizioni-proposte},
- },
- PT = {
- name = {\definitionnamePT-\propositionnamePT},
- crefname = {\crefthemark{a} definição-proposição}{\crefthemark{as} definições-proposições},
- Crefname = {A definição-proposição}{As definições-proposições},
- },
- BR = {
- name = {\definitionnameBR-\propositionnameBR},
- crefname = {\crefthemark{a} definição-proposição}{\crefthemark{as} definições-proposições},
- Crefname = {A definição-proposição}{As definições-proposições},
- },
- ES = {
- name = {\definitionnameES-\propositionnameES},
- crefname = {la definición-proposición}{las definiciones-proposiciones},
- Crefname = {La definición-proposición}{Las definiciones-proposiciones},
- },
- CN = {
- name = {\definitionnameCN-\propositionnameCN},
- crefname = {\definitionnameCN-\propositionnameCN}{\definitionnameCN-\propositionnameCN},
- Crefname = {\definitionnameCN-\propositionnameCN}{\definitionnameCN-\propositionnameCN},
- },
- TC = {
- name = {\definitionnameTC-\propositionnameTC},
- crefname = {\definitionnameTC-\propositionnameTC}{\definitionnameTC-\propositionnameTC},
- Crefname = {\definitionnameTC-\propositionnameTC}{\definitionnameTC-\propositionnameTC},
- },
- JP = {
- name = {\definitionnameJP-\propositionnameJP},
- crefname = {\definitionnameJP-\propositionnameJP}{\definitionnameJP-\propositionnameJP},
- Crefname = {\definitionnameJP-\propositionnameJP}{\definitionnameJP-\propositionnameJP},
- },
- RU = {
- name = {\definitionnameRU-\propositionnameRU},
- crefname = {определение-предложение}{определения-предложения},
- Crefname = {Определение-предложение}{Определения-предложение},
- },
- }
- \NameTheorem{definition-theorem}{
- EN = {
- name = {\definitionnameEN-\theoremnameEN},
- crefname = {definition-theorem}{definitions-theorems},
- Crefname = {Definition-theorem}{Definitions-theorems},
- },
- FR = {
- name = {\definitionnameFR-\theoremnameFR},
- crefname = {\crefthemark{la} définition-théorème}{\crefthemark{les} définitions-théorèmes},
- Crefname = {La définition-théorème}{Les définitions-théorèmes},
- },
- DE = {
- name = {\definitionnameDE-\theoremnameDE},
- crefname = {Definition-Satz}{Definitionen-Sätze},
- Crefname = {Definition-Satz}{Definitionen-Sätze},
- },
- IT = {
- name = {\definitionnameIT-\theoremnameIT},
- crefname = {\crefthemark{la} definizione-teorema}{\crefthemark{le} definizioni-teoremi},
- Crefname = {La definizione-teorema}{Le definizioni-teoremi},
- },
- PT = {
- name = {\definitionnamePT-\theoremnamePT},
- crefname = {\crefthemark{a} definição-teorema}{\crefthemark{as} definições-teoremas},
- Crefname = {A definição-teorema}{As definições-teoremas},
- },
- BR = {
- name = {\definitionnameBR-\theoremnameBR},
- crefname = {\crefthemark{a} definição-teorema}{\crefthemark{as} definições-teoremas},
- Crefname = {A definição-teorema}{As definições-teoremas},
- },
- ES = {
- name = {\definitionnameES-\theoremnameES},
- crefname = {la definición-teorema}{las definiciones-teoremas},
- Crefname = {La definición-teorema}{Las definiciones-teoremas},
- },
- CN = {
- name = {\definitionnameCN-\theoremnameCN},
- crefname = {\definitionnameCN-\theoremnameCN}{\definitionnameCN-\theoremnameCN},
- Crefname = {\definitionnameCN-\theoremnameCN}{\definitionnameCN-\theoremnameCN},
- },
- TC = {
- name = {\definitionnameTC-\theoremnameTC},
- crefname = {\definitionnameTC-\theoremnameTC}{\definitionnameTC-\theoremnameTC},
- Crefname = {\definitionnameTC-\theoremnameTC}{\definitionnameTC-\theoremnameTC},
- },
- JP = {
- name = {\definitionnameJP-\theoremnameJP},
- crefname = {\definitionnameJP-\theoremnameJP}{\definitionnameJP-\theoremnameJP},
- Crefname = {\definitionnameJP-\theoremnameJP}{\definitionnameJP-\theoremnameJP},
- },
- RU = {
- name = {\definitionnameRU-\theoremnameRU},
- crefname = {определение-теорема}{определения-теоремы},
- Crefname = {Определение-теорема}{Определения-теорема},
- },
- }
-}{
-%# 英文定理名称
-%# English theorems names
- \def\theoremnameEN{{Theorem}}
- \def\lemmanameEN{{Lemma}}
- \def\propositionnameEN{{Proposition}}
- \def\corollarynameEN{{Corollary}}
- \def\propertynameEN{{Property}}
- \def\factnameEN{{Fact}}
- \def\conjecturenameEN{{Conjecture}}
- \def\definitionnameEN{{Definition}}
- \def\axiomnameEN{{Axiom}}
- \def\assumptionnameEN{{Assumption}}
- \def\conventionnameEN{{Convention}}
- \def\hypothesisnameEN{{Hypothesis}}
- \def\notationnameEN{{Notation}}
- \def\examplenameEN{{Example}}
- \def\problemnameEN{{Problem}}
- \def\questionnameEN{{Question}}
- \def\exercisenameEN{{Exercise}}
- \def\remarknameEN{{Remark}}
- \def\observationnameEN{{Observation}}
- \expandafter\def\csname definition-propositionnameEN\endcsname{\definitionnameEN-\propositionnameEN}
- \expandafter\def\csname definition-theoremnameEN\endcsname{\definitionnameEN-\theoremnameEN}
-
-%# 法语定理名称
-%# French theorems names
- \def\theoremnameFR{{Théorème}}
- \def\lemmanameFR{{Lemme}}
- \def\propositionnameFR{{Proposition}}
- \def\corollarynameFR{{Corollaire}}
- \def\propertynameFR{{Propriété}}
- \def\factnameFR{{Fait}}
- \def\conjecturenameFR{{Conjecture}}
- \def\definitionnameFR{{Définition}}
- \def\axiomnameFR{{Axiome}}
- \def\assumptionnameFR{{Supposition}}
- \def\conventionnameFR{{Convention}}
- \def\hypothesisnameFR{{Hypothèse}}
- \def\notationnameFR{{Notation}}
- \def\examplenameFR{{Exemple}}
- \def\problemnameFR{{Problème}}
- \def\questionnameFR{{Question}}
- \def\exercisenameFR{{Exercice}}
- \def\remarknameFR{{Remarque}}
- \def\observationnameFR{{Observation}}
- \expandafter\def\csname definition-propositionnameFR\endcsname{\definitionnameFR-\propositionnameFR}
- \expandafter\def\csname definition-theoremnameFR\endcsname{\definitionnameFR-\theoremnameFR}
-
-%# 德语定理名称
-%# German theorems names
- \def\theoremnameDE{{Satz}}
- \def\lemmanameDE{{Lemma}}
- \def\propositionnameDE{{Proposition}}
- \def\corollarynameDE{{Korollar}}
- \def\propertynameDE{{Eigenschaft}}
- \def\factnameDE{{Fakt}}
- \def\conjecturenameDE{{Vermutung}}
- \def\definitionnameDE{{Definition}}
- \def\axiomnameDE{{Axiom}}
- \def\assumptionnameDE{{Annahme}}
- \def\conventionnameDE{{Konvention}}
- \def\hypothesisnameDE{{Hypothese}}
- \def\notationnameDE{{Notation}}
- \def\examplenameDE{{Beispiel}}
- \def\problemnameDE{{Problem}}
- \def\questionnameDE{{Frage}}
- \def\exercisenameDE{{Übung}}
- \def\remarknameDE{{Bemerkung}}
- \def\observationnameDE{{Beobachtung}}
- \expandafter\def\csname definition-propositionnameDE\endcsname{\definitionnameDE-\propositionnameDE}
- \expandafter\def\csname definition-theoremnameDE\endcsname{\definitionnameDE-\theoremnameDE}
-
-%# 意大利语定理名称
-%# Italian theorems names
- \def\theoremnameIT{{Teorema}}
- \def\lemmanameIT{{Lemma}}
- \def\propositionnameIT{{Proposizione}}
- \def\corollarynameIT{{Corollario}}
- \def\propertynameIT{{Proprietà}}
- \def\factnameIT{{Fatto}}
- \def\conjecturenameIT{{Congettura}}
- \def\definitionnameIT{{Definizione}}
- \def\axiomnameIT{{Assioma}}
- \def\assumptionnameIT{{Supposizione}}
- \def\conventionnameIT{{Convenzione}}
- \def\hypothesisnameIT{{Ipotesi}}
- \def\notationnameIT{{Notazione}}
- \def\examplenameIT{{Esempio}}
- \def\problemnameIT{{Problema}}
- \def\questionnameIT{{Domanda}}
- \def\exercisenameIT{{Esercizio}}
- \def\remarknameIT{{Commento}}
- \def\observationnameIT{{Osservazione}}
- \expandafter\def\csname definition-propositionnameIT\endcsname{\definitionnameIT-\propositionnameIT}
- \expandafter\def\csname definition-theoremnameIT\endcsname{\definitionnameIT-\theoremnameIT}
-
-%# 葡萄牙语定理名称
-%# Portuguese theorems names
- \def\theoremnamePT{{Teorema}}
- \def\lemmanamePT{{Lema}}
- \def\propositionnamePT{{Proposição}}
- \def\corollarynamePT{{Corolário}}
- \def\propertynamePT{{Propriedade}}
- \def\factnamePT{{Facto}}
- \def\conjecturenamePT{{Conjetura}}
- \def\definitionnamePT{{Definição}}
- \def\axiomnamePT{{Axioma}}
- \def\assumptionnamePT{{Suposição}}
- \def\conventionnamePT{{Convenção}}
- \def\hypothesisnamePT{{Hipótese}}
- \def\notationnamePT{{Notação}}
- \def\examplenamePT{{Exemplo}}
- \def\problemnamePT{{Problema}}
- \def\questionnamePT{{Pergunta}}
- \def\exercisenamePT{{Exercício}}
- \def\remarknamePT{{Comentário}}
- \def\observationnamePT{{Observação}}
- \expandafter\def\csname definition-propositionnamePT\endcsname{\definitionnamePT-\propositionnamePT}
- \expandafter\def\csname definition-theoremnamePT\endcsname{\definitionnamePT-\theoremnamePT}
-
-%# 巴西葡萄牙语定理名称
-%# Brazilian theorems names
- \def\theoremnameBR{{Teorema}}
- \def\lemmanameBR{{Lema}}
- \def\propositionnameBR{{Proposição}}
- \def\corollarynameBR{{Corolário}}
- \def\propertynameBR{{Propriedade}}
- \def\factnameBR{{Fato}}
- \def\conjecturenameBR{{Conjectura}}
- \def\definitionnameBR{{Definição}}
- \def\axiomnameBR{{Axioma}}
- \def\assumptionnameBR{{Suposição}}
- \def\conventionnameBR{{Convenção}}
- \def\hypothesisnameBR{{Hipótese}}
- \def\notationnameBR{{Notação}}
- \def\examplenameBR{{Exemplo}}
- \def\problemnameBR{{Problema}}
- \def\questionnameBR{{Pergunta}}
- \def\exercisenameBR{{Exercício}}
- \def\remarknameBR{{Comentário}}
- \def\observationnameBR{{Observação}}
- \expandafter\def\csname definition-propositionnameBR\endcsname{\definitionnameBR-\propositionnameBR}
- \expandafter\def\csname definition-theoremnameBR\endcsname{\definitionnameBR-\theoremnameBR}
-
-%# 西班牙语定理名称
-%# Spanish theorems names
- \def\theoremnameES{{Teorema}}
- \def\lemmanameES{{Lema}}
- \def\propositionnameES{{Proposición}}
- \def\corollarynameES{{Corolario}}
- \def\propertynameES{{Propiedad}}
- \def\factnameES{{Hecho}}
- \def\conjecturenameES{{Conjetura}}
- \def\definitionnameES{{Definición}}
- \def\axiomnameES{{Axioma}}
- \def\assumptionnameES{{Suposición}}
- \def\conventionnameES{{Convención}}
- \def\hypothesisnameES{{Hipótesis}}
- \def\notationnameES{{Notación}}
- \def\examplenameES{{Ejemplo}}
- \def\problemnameES{{Problema}}
- \def\questionnameES{{Pregunta}}
- \def\exercisenameES{{Ejercicio}}
- \def\remarknameES{{Comentario}}
- \def\observationnameES{{Observación}}
- \expandafter\def\csname definition-propositionnameES\endcsname{\definitionnameES-\propositionnameES}
- \expandafter\def\csname definition-theoremnameES\endcsname{\definitionnameES-\theoremnameES}
-
-%# 中文定理名称
-%# Chinese theorems names
- \def\theoremnameCN{{定理}}
- \def\lemmanameCN{{引理}}
- \def\propositionnameCN{{命题}}
- \def\corollarynameCN{{推论}}
- \def\propertynameCN{{性质}}
- \def\factnameCN{{事实}}
- \def\conjecturenameCN{{猜想}}
- \def\definitionnameCN{{定义}}
- \def\axiomnameCN{{公理}}
- \def\assumptionnameCN{{假定}}
- \def\conventionnameCN{{约定}}
- \def\hypothesisnameCN{{假设}}
- \def\notationnameCN{{记号}}
- \def\examplenameCN{{例}}
- \def\problemnameCN{{问题}}
- \def\questionnameCN{{问题}}
- \def\exercisenameCN{{练习}}
- \def\remarknameCN{{备注}}
- \def\observationnameCN{{观察}}
- \expandafter\def\csname definition-propositionnameCN\endcsname{\definitionnameCN-\propositionnameCN}
- \expandafter\def\csname definition-theoremnameCN\endcsname{\definitionnameCN-\theoremnameCN}
-
- \def\theoremnameTC{{定理}}
- \def\lemmanameTC{{引理}}
- \def\propositionnameTC{{命題}}
- \def\corollarynameTC{{推論}}
- \def\propertynameTC{{性質}}
- \def\factnameTC{{事實}}
- \def\conjecturenameTC{{猜想}}
- \def\definitionnameTC{{定義}}
- \def\axiomnameTC{{公理}}
- \def\assumptionnameTC{{假定}}
- \def\conventionnameTC{{約定}}
- \def\hypothesisnameTC{{假設}}
- \def\notationnameTC{{記號}}
- \def\examplenameTC{{例}}
- \def\problemnameTC{{問題}}
- \def\questionnameTC{{問題}}
- \def\exercisenameTC{{練習}}
- \def\remarknameTC{{備註}}
- \def\observationnameTC{{觀察}}
- \expandafter\def\csname definition-propositionnameTC\endcsname{\definitionnameTC-\propositionnameTC}
- \expandafter\def\csname definition-theoremnameTC\endcsname{\definitionnameTC-\theoremnameTC}
-
-%# 日文定理名称
-%# Japanese theorems names
- \def\theoremnameJP{{定理}}
- \def\lemmanameJP{{補題}}
- \def\propositionnameJP{{命題}}
- \def\corollarynameJP{{系}}
- \def\propertynameJP{{性質}}
- \def\factnameJP{{事実}}
- \def\conjecturenameJP{{予想}}
- \def\definitionnameJP{{定義}}
- \def\axiomnameJP{{公理}}
- \def\assumptionnameJP{{仮定}}
- \def\conventionnameJP{{慣例}}
- \def\hypothesisnameJP{{仮設}}
- \def\notationnameJP{{記法}}
- \def\examplenameJP{{例}}
- \def\problemnameJP{{問題}}
- \def\questionnameJP{{問題}}
- \def\exercisenameJP{{練習}}
- \def\remarknameJP{{注釈}}
- \def\observationnameJP{{観察}}
- \expandafter\def\csname definition-propositionnameJP\endcsname{\definitionnameJP-\propositionnameJP}
- \expandafter\def\csname definition-theoremnameJP\endcsname{\definitionnameJP-\theoremnameJP}
-
-%# 俄文定理名称
-%# Russian theorems names
- \def\theoremnameRU{{Теорема}} % Теоре́ма
- \def\lemmanameRU{{Лемма}} % Ле́мма
- \def\propositionnameRU{{Предложение}} % Предложе́ние
- \def\corollarynameRU{{Следствие}} % Сле́дствие
- \def\propertynameRU{{Имущество}} % Иму́щество
- \def\factnameRU{{Факт}}
- \def\conjecturenameRU{{Гипотеза}} % Гипо́теза % Конъектура Конъекту́ра
- \def\definitionnameRU{{Определение}} % Определе́ние
- \def\axiomnameRU{{Аксиома}} % Аксио́ма
- \def\assumptionnameRU{{Предположение}} % Предположе́ние
- \def\conventionnameRU{{Конвенция}} % Конве́нция
- \def\hypothesisnameRU{{Гипотеза}} % Гипо́теза
- \def\notationnameRU{{Нотация}} % Нота́ция
- \def\examplenameRU{{Пример}} % Приме́р
- \def\problemnameRU{{Проблема}} % Пробле́ма
- \def\questionnameRU{{Вопрос}} % Вопро́с
- \def\exercisenameRU{{Упражнение}} % Упражне́ние
- \def\remarknameRU{{Замечание}} % Замеча́ние
- \def\observationnameRU{{Наблюдение}} % Наблюде́ние
- \expandafter\def\csname definition-propositionnameRU\endcsname{\definitionnameRU-\propositionnameRU}
- \expandafter\def\csname definition-theoremnameRU\endcsname{\definitionnameRU-\theoremnameRU}
-}
-
-%# 判断最高级别的标题是 section 还是 chapter
-%# Detect the highest level of title: section or chapter?
-\newif\ifPJLthm@IsBook
-\ifdefined\c@chapter\PJLthm@IsBooktrue\else\PJLthm@IsBookfalse\fi
-\ifbool{PJLthm@IsBook}{
- \newaliascnt{PJLthm@highest}{chapter}
-}{
- \newaliascnt{PJLthm@highest}{section}
-}
-%# 按照 thmnum 决定定理类环境如何编号
-%# Number the theorem-like environment with respect to thmnum
-\NewDocumentCommand{\CreateTheorem@thmnum}{m}{
- \expandafter\ifstrempty\expandafter{\@PJLthm@thmnum}{
- \CreateTheorem{#1}<PJLthm@highest>
- }{
- \expandafter\ifstrequal\expandafter{\@PJLthm@thmnum}{PJL@thmnum@default}{
- \CreateTheorem{#1}
- }{
- \CreateTheorem{#1}<\@PJLthm@thmnum>
- }
- }
-}
-
-%# 建立定理类环境
-%# Setup theorem-like environments
-\def\PJLthm@definethms{
-\if@PJLthm@nothms\else
-\if@PJLthm@nothmnum
-\CreateTheorem*{theorem}
-\CreateTheorem*{lemma}
-\CreateTheorem*{proposition}
-\CreateTheorem*{corollary}
-\CreateTheorem*{definition-proposition}
-\CreateTheorem*{definition-theorem}
-\CreateTheorem*{property}
-\CreateTheorem*{fact}
-\CreateTheorem*{conjecture}
-\else
-\CreateTheorem@thmnum{theorem}
-\CreateTheorem{lemma}[theorem]
-\CreateTheorem{proposition}[theorem]
-\CreateTheorem{corollary}[theorem]
-\CreateTheorem{definition-proposition}[theorem]
-\CreateTheorem{definition-theorem}[theorem]
-\CreateTheorem{property}[theorem]
-\CreateTheorem{fact}[theorem]
-\CreateTheorem{conjecture}[theorem]
-\fi
-\CreateTheorem*{theorem*}
-\CreateTheorem*{lemma*}
-\CreateTheorem*{proposition*}
-\CreateTheorem*{corollary*}
-\CreateTheorem*{definition-proposition*}
-\CreateTheorem*{definition-theorem*}
-\CreateTheorem*{property*}
-\CreateTheorem*{fact*}
-\CreateTheorem*{conjecture*}
-
-\theoremstyle{definition}
-\if@PJLthm@nothmnum
-\CreateTheorem*{definition}
-\CreateTheorem*{axiom}
-\CreateTheorem*{assumption}
-\CreateTheorem*{convention}
-\CreateTheorem*{hypothesis}
-\CreateTheorem*{notation}
-\CreateTheorem*{example}
-\CreateTheorem*{problem}
-\CreateTheorem*{question}
-\CreateTheorem*{exercise}
-\else
-\CreateTheorem{definition}[theorem]
-\CreateTheorem{axiom}[theorem]
-\CreateTheorem{assumption}[theorem]
-\CreateTheorem{convention}[theorem]
-\CreateTheorem{hypothesis}[theorem]
-\CreateTheorem{notation}[theorem]
-\CreateTheorem{example}[theorem]
-\CreateTheorem{problem}[theorem]
-\CreateTheorem{question}[theorem]
-\CreateTheorem{exercise}[theorem]
-\fi
-\CreateTheorem*{definition*}
-\CreateTheorem*{axiom*}
-\CreateTheorem*{assumption*}
-\CreateTheorem*{convention*}
-\CreateTheorem*{hypothesis*}
-\CreateTheorem*{notation*}
-\CreateTheorem*{example*}
-\CreateTheorem*{problem*}
-\CreateTheorem*{question*}
-\CreateTheorem*{exercise*}
-
-\theoremstyle{remark}
-\if@PJLthm@nothmnum
-\CreateTheorem*{remark}
-\CreateTheorem*{observation}
-\else
-\CreateTheorem@thmnum{remark}
-\CreateTheorem@thmnum{observation}
-\fi
-\CreateTheorem*{remark*}
-\CreateTheorem*{observation*}
-
-\theoremstyle{definition}
-\fi
-
-%# 按照 thmnum 决定公式如何编号
-%# Number the equations with respect to thmnum
-\expandafter\ifstrempty\expandafter{\@PJLthm@thmnum}{
-% thmnum is not used.
- \numberwithin{equation}{PJLthm@highest}
-}{
- \expandafter\ifstrequal\expandafter{\@PJLthm@thmnum}{PJL@thmnum@default}{
-% thmnum is used, with no value.
- }{
-% thmnum is used, with value \@PJLthm@thmnum.
- \numberwithin{equation}{\@PJLthm@thmnum}
- }
-}
-
-} % End of \PJLthm@definethms
-
-\if@PJLthm@delaythms
- \AtEndPreamble{\PJLthm@definethms}
-\else
- \PJLthm@definethms
-\fi
-
-%# 一些 cref 的本地化
-%# Some localization of cref
-\gappto{\PJLlang@langconfig@CN}{%
- \crefname{equation}{式}{式}%
- \crefname{figure}{图}{图}%
- \crefname{table}{表}{表}%
- \crefname{appendix}{附录}{附录}%
- \Crefname{equation}{式}{式}%
- \Crefname{figure}{图}{图}%
- \Crefname{table}{表}{表}%
- \Crefname{appendix}{附录}{附录}%
- \def\crefpairconjunction{、}%
- \def\crefmiddleconjunction{、}%
- \def\creflastconjunction{~和~}%
- \def\crefpairgroupconjunction{~和~}%
- \def\crefmiddlegroupconjunction{、}%
- \def\creflastgroupconjunction{~以及~}%
- \def\crefrangeconjunction{~}%
-}
-\gappto{\PJLlang@langconfig@TC}{%
- \crefname{equation}{式}{式}%
- \crefname{figure}{圖}{圖}%
- \crefname{table}{表}{表}%
- \crefname{appendix}{附錄}{附錄}%
- \Crefname{equation}{式}{式}%
- \Crefname{figure}{圖}{圖}%
- \Crefname{table}{表}{表}%
- \Crefname{appendix}{附錄}{附錄}%
- \def\crefpairconjunction{、}%
- \def\crefmiddleconjunction{、}%
- \def\creflastconjunction{~與~}%
- \def\crefpairgroupconjunction{~與~}%
- \def\crefmiddlegroupconjunction{、}%
- \def\creflastgroupconjunction{~以及~}%
- \def\crefrangeconjunction{~}%
-}
-\gappto{\PJLlang@langconfig@JP}{%
- \crefname{equation}{式}{式}%
- \crefname{figure}{図}{図}%
- \crefname{table}{表}{表}%
- \Crefname{appendix}{付録}{付録}%
- \Crefname{equation}{式}{式}%
- \Crefname{figure}{図}{図}%
- \Crefname{table}{表}{表}%
- \Crefname{appendix}{付録}{付録}%
- \def\crefpairconjunction{~と~}%
- \def\crefmiddleconjunction{~と~}%
- \def\creflastconjunction{~と~}%
- \def\crefpairgroupconjunction{~と~}%
- \def\crefmiddlegroupconjunction{~と~}%
- \def\creflastgroupconjunction{~及び~}%
- \def\crefrangeconjunction{~}%
-}
-\gappto{\PJLlang@langconfig@RU}{%
- \crefname{equation}{уравнение}{уравнения}%
- \crefname{figure}{рис.}{рис.}%
- \crefname{table}{таблица}{таблицы}%
- \crefname{appendix}{приложение}{приложения}%
- \Crefname{equation}{Уравнение}{Уравнения}%
- \Crefname{figure}{Рис.}{Рис.}%
- \Crefname{table}{Таблица}{Таблицы}%
- \Crefname{appendix}{Приложение}{Приложения}%
- \def\crefpairconjunction{~и~}%
- \def\crefmiddleconjunction{,~}%
- \def\creflastconjunction{~и~}%
- \def\crefpairgroupconjunction{~и~}%
- \def\crefmiddlegroupconjunction{,~}%
- \def\creflastgroupconjunction{~и~}%
- \def\crefrangeconjunction{~\textasciitilde~}%
-}
-\gappto{\PJLlang@langconfig@PT}{%
- \crefname{equation}{eq.}{eqs.}%
- \crefname{figure}{fig.}{figs.}%
- \crefname{table}{tabela}{tabelas}%
- \crefname{appendix}{apêndice}{apêndices}%
- \Crefname{equation}{Eq.}{Eqs.}%
- \Crefname{figure}{Fig.}{Figs.}%
- \Crefname{table}{Tabela}{Tabelas}%
- \Crefname{appendix}{Apêndice}{Apêndices}%
- \def\crefpairconjunction{ e\nobreakspace}%
- \def\crefmiddleconjunction{, }%
- \def\creflastconjunction{ e\nobreakspace}%
- \def\crefpairgroupconjunction{ e\nobreakspace}%
- \def\crefmiddlegroupconjunction{, }%
- \def\creflastgroupconjunction{ e\nobreakspace}%
- \def\crefrangeconjunction{ a\nobreakspace}%
-}
-%</PJLthm>
-%
-%<*ProjLib>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @ProjLib,
- prefix = @ProjLib@,
-}
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-\DeclareBoolOption[false]{author}
-\DeclareBoolOption[false]{amsfashion}
-\DeclareBoolOption[false]{nothms}
-\DeclareBoolOption[false]{delaythms}
-\DeclareBoolOption[false]{nothmnum}
-\DeclareStringOption{thmnum}[PJL@thmnum@default]
-\DeclareBoolOption[true]{regionalref}
-\DeclareBoolOption[false]{originalref}
-\DeclareBoolOption[true]{complexname}
-\DeclareBoolOption[false]{simplename}
-\DeclareBoolOption[false]{useosf}
-\DeclareBoolOption[false]{lmodern}
-\DeclareBoolOption[false]{palatino}
-\DeclareBoolOption[false]{times}
-\DeclareBoolOption[false]{garamond}
-\DeclareBoolOption[false]{noto}
-\DeclareBoolOption[false]{biolinum}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@ProjLib@originalref
- \@ProjLib@regionalreffalse
-\fi
-\if@ProjLib@simplename
- \@ProjLib@complexnamefalse
-\fi
-\if@ProjLib@draft
- \@ProjLib@fasttrue
-\fi
-
-%# 向组件传递一些参数
-%# Pass some options to the components
-\if@ProjLib@fast
- \PassOptionsToPackage{fast}{PJLdate}
- \PassOptionsToPackage{fast}{PJLdraft}
- \PassOptionsToPackage{fast}{PJLlogo}
- \PassOptionsToPackage{fast}{PJLthm}
-\fi
-\if@ProjLib@nothms
- \PassOptionsToPackage{nothms}{PJLthm}
-\fi
-\if@ProjLib@delaythms
- \PassOptionsToPackage{delaythms}{PJLthm}
-\fi
-\if@ProjLib@nothmnum
- \PassOptionsToPackage{nothmnum}{PJLthm}
-\fi
-\expandafter\ifstrempty\expandafter{\@ProjLib@thmnum}{}{
- \expandafter\ifstrequal\expandafter{\@ProjLib@thmnum}{PJL@thmnum@default}{
- \PassOptionsToPackage{thmnum}{PJLthm}
- }{
- \PassOptionsToPackage{thmnum=\@ProjLib@thmnum}{PJLthm}
- }
-}
-\if@ProjLib@regionalref\else
- \PassOptionsToPackage{originalref}{PJLthm}
-\fi
-\if@ProjLib@complexname\else
- \PassOptionsToPackage{simplename}{PJLthm}
-\fi
-
-%# 加载不默认载入的组件
-%# Load those components not by default loaded
-\if@ProjLib@amsfashion
- \PassOptionsToPackage{amsfashion}{PJLauthor}
- \RequirePackage{PJLauthor}
-\fi
-\if@ProjLib@author
- \RequirePackage{PJLauthor}
-\fi
-%# 加载组件
-%# Load the components
-\RequirePackage{PJLdate}
-\RequirePackage{PJLdraft}
-\RequirePackage{PJLlogo}
-\RequirePackage{PJLmath}
-\RequirePackage{PJLpaper}
-\RequirePackage{PJLthm}
-
-%# 配置字体选项
-%# Configure the font options below
-%
-% \PJL@font@alreadyset should contain the current font name
-% A message can then be shown as: Font "(font name)" has been set
-\ifdefined\PJL@font@alreadyset\else
-
-\if@ProjLib@lmodern
- \RequirePackage{amssymb}
- \if@ProjLib@useosf
- \RequirePackage{cfr-lm}
- \else
- \RequirePackage{lmodern}
- \fi
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@palatino
- % \RequirePackage{amssymb}
- \RequirePackage{mathpazo}
- \PassOptionsToPackage{defaultsups}{newpxtext}
- \RequirePackage{newpxtext}
- % \RequirePackage{newpxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.07}}
- \if@ProjLib@useosf\useosf\fi
-\fi
-
-\if@ProjLib@times
- % \RequirePackage{amssymb}
- \PassOptionsToPackage{defaultsups}{newtxtext}
- \RequirePackage{newtxtext}
- \RequirePackage{newtxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.00}}
- \if@ProjLib@useosf\useosf\fi
-\fi
-
-\if@ProjLib@garamond
- % \RequirePackage{amssymb}
- \if@ProjLib@useosf\else
- \PassOptionsToPackage{lining}{ebgaramond}
- \fi
- \RequirePackage{ebgaramond-maths}
- \RequirePackage{ebgaramond}
- % \RequirePackage{garamondlibre}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@noto
- \if@ProjLib@useosf
- \PassOptionsToPackage{oldstyle}{notomath}
- \fi
- \RequirePackage{anyfontsize}
- \RequirePackage{notomath}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@biolinum
- % \RequirePackage{amssymb}
- % \RequirePackage{mathpazo}
- % \RequirePackage[sansmath]{libertinust1math}
- \ifPDFTeX
- \if@ProjLib@useosf
- \PassOptionsToPackage{osf}{biolinum}
- \fi
- \RequirePackage{biolinum}
- \renewcommand*\familydefault{\biolinum@family}
- \else
- \PassOptionsToPackage{no-math}{fontspec}
- \RequirePackage{fontspec}
- \setmainfont{LinBiolinum_R.otf}[
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf,
- \if@ProjLib@useosf Numbers = OldStyle\fi ]
- \fi
- \PJLsetlinespacing{\setstretch{1.05}}
- \RequirePackage[italic,defaultmathsizes]{mathastext}
-\fi
-
-%# 结束字体选项的配置
-%# End of the configuration of font options
-\fi
-
-%# 使用 microtype 优化排版细节
-%# Use `microtype` to get details better
-\RequirePackage{microtype}
-%</ProjLib>
-
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib.ins b/Master/texmf-dist/source/latex/projlib/ProjLib.ins
deleted file mode 100644
index 014bdd86807..00000000000
--- a/Master/texmf-dist/source/latex/projlib/ProjLib.ins
+++ /dev/null
@@ -1,72 +0,0 @@
-%%
-%% Copyright (C) 2021 by Jinwen XU
-%%
-%% This file may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3c of this license
-%% or (at your option) any later version. The latest version of this
-%% license is in:
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-
-\input docstrip.tex
-\keepsilent
-\askforoverwritefalse
-
-\begingroup
-\catcode`\^^M=\active%
-\obeyspaces%
-\gdef\copyright{%
-\ds@heading% This is file... generated with the docstrip utility.
-
-Copyright (C) 2021 by Jinwen XU
-
-This is part of the ProjLib Toolkit.
-}%
-\gdef\lppllicense{%
-
-This work may be distributed and/or modified under the conditions of the
-LaTeX Project Public License, either version 1.3c of this license or (at
-your option) any later version. The latest version of this license is in
-
- http://www.latex-project.org/lppl.txt
-
-and version 1.3c or later is part of all distributions of LaTeX version
-2005/12/01 or later.
-}%
-\endgroup
-
-\def\mypreamble{\copyright\lppllicense}
-\usepreamble\mypreamble
-
-\generate{\file{ProjLib.sty}{\from{ProjLib.dtx}{ProjLib}}}
-\generate{\file{PJLauthor.sty}{\from{ProjLib.dtx}{PJLauthor}}}
-\generate{\file{PJLdate.sty}{\from{ProjLib.dtx}{PJLdate}}}
-\generate{\file{PJLdraft.sty}{\from{ProjLib.dtx}{PJLdraft}}}
-\generate{\file{PJLlang.sty}{\from{ProjLib.dtx}{PJLlang}}}
-\generate{\file{PJLlogo.sty}{\from{ProjLib.dtx}{PJLlogo}}}
-\generate{\file{PJLmath.sty}{\from{ProjLib.dtx}{PJLmath}}}
-\generate{\file{PJLpaper.sty}{\from{ProjLib.dtx}{PJLpaper}}}
-\generate{\file{PJLthm.sty}{\from{ProjLib.dtx}{PJLthm}}}
-
-\obeyspaces
-\Msg{*************************************************************}
-\Msg{* *}
-\Msg{* To finish the installation you have to move the following *}
-\Msg{* files into a directory searched by TeX: *}
-\Msg{* *}
-\Msg{* ProjLib.sty *}
-\Msg{* PJLauthor.sty *}
-\Msg{* PJLdate.sty *}
-\Msg{* PJLdraft.sty *}
-\Msg{* PJLlang.sty *}
-\Msg{* PJLlogo.sty *}
-\Msg{* PJLmath.sty *}
-\Msg{* PJLpaper.sty *}
-\Msg{* PJLthm.sty *}
-\Msg{* *}
-\Msg{* Happy TeXing! *}
-\Msg{* *}
-\Msg{*************************************************************}
-
-\endbatchfile
diff --git a/Master/texmf-dist/tex/latex/projlib/ProjLib.sty b/Master/texmf-dist/tex/latex/projlib/ProjLib.sty
index d657293d9d4..0e0cdd3666c 100644
--- a/Master/texmf-dist/tex/latex/projlib/ProjLib.sty
+++ b/Master/texmf-dist/tex/latex/projlib/ProjLib.sty
@@ -1,182 +1,37 @@
-%%
-%% This is file `ProjLib.sty',
-%% generated with the docstrip utility.
-
-%% Copyright (C) 2021 by Jinwen XU
-%%
-%% This is part of the ProjLib Toolkit.
-%%
-%% This work may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License, either version 1.3c of this license or (at
-%% your option) any later version. The latest version of this license is in
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% and version 1.3c or later is part of all distributions of LaTeX version
-%% 2005/12/01 or later.
-%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\ProvidesPackage{ProjLib}
- [2021/12/16 The collective interface of ProjLib toolkit]
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
-\SetupKeyvalOptions{
- family = @ProjLib,
- prefix = @ProjLib@,
-}
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-\DeclareBoolOption[false]{author}
-\DeclareBoolOption[false]{amsfashion}
-\DeclareBoolOption[false]{nothms}
-\DeclareBoolOption[false]{delaythms}
-\DeclareBoolOption[false]{nothmnum}
-\DeclareStringOption{thmnum}[PJL@thmnum@default]
-\DeclareBoolOption[true]{regionalref}
-\DeclareBoolOption[false]{originalref}
-\DeclareBoolOption[true]{complexname}
-\DeclareBoolOption[false]{simplename}
-\DeclareBoolOption[false]{useosf}
-\DeclareBoolOption[false]{lmodern}
-\DeclareBoolOption[false]{palatino}
-\DeclareBoolOption[false]{times}
-\DeclareBoolOption[false]{garamond}
-\DeclareBoolOption[false]{noto}
-\DeclareBoolOption[false]{biolinum}
-\ProcessKeyvalOptions*\relax
-
-\if@ProjLib@originalref
- \@ProjLib@regionalreffalse
-\fi
-\if@ProjLib@simplename
- \@ProjLib@complexnamefalse
-\fi
-\if@ProjLib@draft
- \@ProjLib@fasttrue
-\fi
-
-\if@ProjLib@fast
- \PassOptionsToPackage{fast}{PJLdate}
- \PassOptionsToPackage{fast}{PJLdraft}
- \PassOptionsToPackage{fast}{PJLlogo}
- \PassOptionsToPackage{fast}{PJLthm}
-\fi
-\if@ProjLib@nothms
- \PassOptionsToPackage{nothms}{PJLthm}
-\fi
-\if@ProjLib@delaythms
- \PassOptionsToPackage{delaythms}{PJLthm}
-\fi
-\if@ProjLib@nothmnum
- \PassOptionsToPackage{nothmnum}{PJLthm}
-\fi
-\expandafter\ifstrempty\expandafter{\@ProjLib@thmnum}{}{
- \expandafter\ifstrequal\expandafter{\@ProjLib@thmnum}{PJL@thmnum@default}{
- \PassOptionsToPackage{thmnum}{PJLthm}
- }{
- \PassOptionsToPackage{thmnum=\@ProjLib@thmnum}{PJLthm}
- }
-}
-\if@ProjLib@regionalref\else
- \PassOptionsToPackage{originalref}{PJLthm}
-\fi
-\if@ProjLib@complexname\else
- \PassOptionsToPackage{simplename}{PJLthm}
-\fi
-
-\if@ProjLib@amsfashion
- \PassOptionsToPackage{amsfashion}{PJLauthor}
- \RequirePackage{PJLauthor}
-\fi
-\if@ProjLib@author
- \RequirePackage{PJLauthor}
-\fi
-\RequirePackage{PJLdate}
-\RequirePackage{PJLdraft}
-\RequirePackage{PJLlogo}
-\RequirePackage{PJLmath}
-\RequirePackage{PJLpaper}
-\RequirePackage{PJLthm}
-
-\ifdefined\PJL@font@alreadyset\else
-
-\if@ProjLib@lmodern
- \RequirePackage{amssymb}
- \if@ProjLib@useosf
- \RequirePackage{cfr-lm}
- \else
- \RequirePackage{lmodern}
- \fi
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@palatino
- % \RequirePackage{amssymb}
- \RequirePackage{mathpazo}
- \PassOptionsToPackage{defaultsups}{newpxtext}
- \RequirePackage{newpxtext}
- % \RequirePackage{newpxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.07}}
- \if@ProjLib@useosf\useosf\fi
-\fi
-
-\if@ProjLib@times
- % \RequirePackage{amssymb}
- \PassOptionsToPackage{defaultsups}{newtxtext}
- \RequirePackage{newtxtext}
- \RequirePackage{newtxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.00}}
- \if@ProjLib@useosf\useosf\fi
-\fi
-
-\if@ProjLib@garamond
- % \RequirePackage{amssymb}
- \if@ProjLib@useosf\else
- \PassOptionsToPackage{lining}{ebgaramond}
- \fi
- \RequirePackage{ebgaramond-maths}
- \RequirePackage{ebgaramond}
- % \RequirePackage{garamondlibre}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@noto
- \if@ProjLib@useosf
- \PassOptionsToPackage{oldstyle}{notomath}
- \fi
- \RequirePackage{anyfontsize}
- \RequirePackage{notomath}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@biolinum
- % \RequirePackage{amssymb}
- % \RequirePackage{mathpazo}
- % \RequirePackage[sansmath]{libertinust1math}
- \ifPDFTeX
- \if@ProjLib@useosf
- \PassOptionsToPackage{osf}{biolinum}
- \fi
- \RequirePackage{biolinum}
- \renewcommand*\familydefault{\biolinum@family}
- \else
- \PassOptionsToPackage{no-math}{fontspec}
- \RequirePackage{fontspec}
- \setmainfont{LinBiolinum_R.otf}[
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf,
- \if@ProjLib@useosf Numbers = OldStyle\fi ]
- \fi
- \PJLsetlinespacing{\setstretch{1.05}}
- \RequirePackage[italic,defaultmathsizes]{mathastext}
-\fi
-
-\fi
-
-\RequirePackage{microtype}
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {ProjLib}
+ {2022/03/09} {}
+ {Collective interface of the ProjLib toolkit}
+
+\keys_define:nn { ProjLib }
+ {
+ , unknown .code:n = {
+ \PassOptionsToPackage { \CurrentOption } { projlib-language }
+ \PassOptionsToPackage { \CurrentOption } { projlib-author }
+ \PassOptionsToPackage { \CurrentOption } { projlib-datetime }
+ \PassOptionsToPackage { \CurrentOption } { projlib-draft }
+ \PassOptionsToPackage { \CurrentOption } { projlib-font }
+ \PassOptionsToPackage { \CurrentOption } { projlib-logo }
+ \PassOptionsToPackage { \CurrentOption } { projlib-math }
+ \PassOptionsToPackage { \CurrentOption } { projlib-paper }
+ \PassOptionsToPackage { \CurrentOption } { projlib-theorem }
+ }
+ }
+\ProcessKeysOptions { ProjLib }
+
+\RequirePackage { projlib-language }
+
+\RequirePackage { projlib-author }
+\RequirePackage { projlib-datetime }
+\RequirePackage { projlib-draft }
+\RequirePackage { projlib-font }
+\RequirePackage { projlib-logo }
+\RequirePackage { projlib-math }
+\RequirePackage { projlib-paper }
+
+\RequirePackage { projlib-theorem }
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLauthor.sty
index 67e1dbd76b3..67e1dbd76b3 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLauthor.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLdate.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLdate.sty
index 783f164e7a9..783f164e7a9 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLdate.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLdate.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLdraft.sty
index 86573268428..86573268428 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLdraft.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLlang.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLlang.sty
index 9470226adba..9470226adba 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLlang.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLlogo.sty
index 7d24239fdc4..7d24239fdc4 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLlogo.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLmath.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLmath.sty
index 3bd389ef50b..3bd389ef50b 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLmath.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLmath.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLpaper.sty
index 4b963c069af..4b963c069af 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLpaper.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLthm.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLthm.sty
index 4e6d00d4d28..4e6d00d4d28 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLthm.sty
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLthm.sty
diff --git a/Master/texmf-dist/tex/latex/projlib/old-modules/PJLtoolkit.sty b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLtoolkit.sty
new file mode 100644
index 00000000000..b11b34a2a76
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/projlib/old-modules/PJLtoolkit.sty
@@ -0,0 +1,184 @@
+%%
+%% This is file `ProjLib.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLtoolkit}
+ [2021/12/16 The collective interface of ProjLib toolkit]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{
+ family = @ProjLib,
+ prefix = @ProjLib@,
+}
+\DeclareBoolOption[false]{draft}
+\DeclareBoolOption[false]{fast}
+\DeclareBoolOption[false]{author}
+\DeclareBoolOption[false]{amsfashion}
+\DeclareBoolOption[false]{nothms}
+\DeclareBoolOption[false]{delaythms}
+\DeclareBoolOption[false]{nothmnum}
+\DeclareStringOption{thmnum}[PJL@thmnum@default]
+\DeclareBoolOption[true]{regionalref}
+\DeclareBoolOption[false]{originalref}
+\DeclareBoolOption[true]{complexname}
+\DeclareBoolOption[false]{simplename}
+\DeclareBoolOption[false]{useosf}
+\DeclareBoolOption[false]{lmodern}
+\DeclareBoolOption[false]{palatino}
+\DeclareBoolOption[false]{times}
+\DeclareBoolOption[false]{garamond}
+\DeclareBoolOption[false]{noto}
+\DeclareBoolOption[false]{biolinum}
+\ProcessKeyvalOptions*\relax
+
+\if@ProjLib@originalref
+ \@ProjLib@regionalreffalse
+\fi
+\if@ProjLib@simplename
+ \@ProjLib@complexnamefalse
+\fi
+\if@ProjLib@draft
+ \@ProjLib@fasttrue
+\fi
+
+\if@ProjLib@fast
+ \PassOptionsToPackage{fast}{PJLdate}
+ \PassOptionsToPackage{fast}{PJLdraft}
+ \PassOptionsToPackage{fast}{PJLlogo}
+ \PassOptionsToPackage{fast}{PJLthm}
+\fi
+\if@ProjLib@nothms
+ \PassOptionsToPackage{nothms}{PJLthm}
+\fi
+\if@ProjLib@delaythms
+ \PassOptionsToPackage{delaythms}{PJLthm}
+\fi
+\if@ProjLib@nothmnum
+ \PassOptionsToPackage{nothmnum}{PJLthm}
+\fi
+\expandafter\ifstrempty\expandafter{\@ProjLib@thmnum}{}{
+ \expandafter\ifstrequal\expandafter{\@ProjLib@thmnum}{PJL@thmnum@default}{
+ \PassOptionsToPackage{thmnum}{PJLthm}
+ }{
+ \PassOptionsToPackage{thmnum=\@ProjLib@thmnum}{PJLthm}
+ }
+}
+\if@ProjLib@regionalref\else
+ \PassOptionsToPackage{originalref}{PJLthm}
+\fi
+\if@ProjLib@complexname\else
+ \PassOptionsToPackage{simplename}{PJLthm}
+\fi
+
+\if@ProjLib@amsfashion
+ \PassOptionsToPackage{amsfashion}{PJLauthor}
+ \RequirePackage{PJLauthor}
+\fi
+\if@ProjLib@author
+ \RequirePackage{PJLauthor}
+\fi
+\RequirePackage{PJLdate}
+\RequirePackage{PJLdraft}
+\RequirePackage{PJLlogo}
+\RequirePackage{PJLmath}
+\RequirePackage{PJLpaper}
+\RequirePackage{PJLthm}
+
+\ifdefined\PJL@font@alreadyset\else
+
+\if@ProjLib@lmodern
+ \RequirePackage{amssymb}
+ \if@ProjLib@useosf
+ \RequirePackage{cfr-lm}
+ \else
+ \RequirePackage{lmodern}
+ \fi
+ \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
+\if@ProjLib@palatino
+ % \RequirePackage{amssymb}
+ \RequirePackage{mathpazo}
+ \PassOptionsToPackage{defaultsups}{newpxtext}
+ \RequirePackage{newpxtext}
+ % \RequirePackage{newpxmath}
+ \let\openbox\relax
+ \PJLsetlinespacing{\setstretch{1.07}}
+ \if@ProjLib@useosf\useosf\fi
+\fi
+
+\if@ProjLib@times
+ % \RequirePackage{amssymb}
+ \PassOptionsToPackage{defaultsups}{newtxtext}
+ \RequirePackage{newtxtext}
+ \RequirePackage{newtxmath}
+ \let\openbox\relax
+ \PJLsetlinespacing{\setstretch{1.00}}
+ \if@ProjLib@useosf\useosf\fi
+\fi
+
+\if@ProjLib@garamond
+ % \RequirePackage{amssymb}
+ \if@ProjLib@useosf\else
+ \PassOptionsToPackage{lining}{ebgaramond}
+ \fi
+ \RequirePackage{ebgaramond-maths}
+ \RequirePackage{ebgaramond}
+ % \RequirePackage{garamondlibre}
+ \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
+\if@ProjLib@noto
+ \if@ProjLib@useosf
+ \PassOptionsToPackage{oldstyle}{notomath}
+ \fi
+ \RequirePackage{anyfontsize}
+ \RequirePackage{notomath}
+ \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
+\if@ProjLib@biolinum
+ % \RequirePackage{amssymb}
+ % \RequirePackage{mathpazo}
+ % \RequirePackage[sansmath]{libertinust1math}
+ \ifPDFTeX
+ \if@ProjLib@useosf
+ \PassOptionsToPackage{osf}{biolinum}
+ \fi
+ \RequirePackage{biolinum}
+ \renewcommand*\familydefault{\biolinum@family}
+ \else
+ \PassOptionsToPackage{no-math}{fontspec}
+ \RequirePackage{fontspec}
+ \setmainfont{LinBiolinum_R.otf}[
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf,
+ \if@ProjLib@useosf Numbers = OldStyle\fi ]
+ \fi
+ \PJLsetlinespacing{\setstretch{1.05}}
+ \RequirePackage[italic,defaultmathsizes]{mathastext}
+\fi
+
+\fi
+
+\WarningFilter{microtype}{Unable}
+\RequirePackage{microtype}
+
+\endinput
+%%
+%% End of file `ProjLib.sty'.
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-author.sty b/Master/texmf-dist/tex/latex/projlib/projlib-author.sty
index ef0906d249f..2ad44ff6a3e 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-author.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-author.sty
@@ -2,14 +2,15 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-author}
- {2022/02/24} {}
+ {2022/03/09} {}
{Enhanced author information block}
\keys_define:nn { projlib-author }
{
- , amsfashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , amsfashion .initial:n = { false }
, ams-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams-fashion .initial:n = { false }
+ , ams~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams fashion .bool_set:N = \l__projlib_author_amsfashion_bool
, unknown .code:n = {}
}
\ProcessKeysOptions { projlib-author }
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty b/Master/texmf-dist/tex/latex/projlib/projlib-datetime.sty
index d96d31d93b3..07c1473171a 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-datetime.sty
@@ -2,7 +2,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-datetime}
- {2022/02/24} {}
+ {2022/03/03} {}
{Convert numeric date-time string to natural language}
\tl_new:N \g__projlib_datetime_input_format_tl
@@ -386,7 +386,9 @@
{
\group_begin:
\keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_display_date_according_to_format:nn { #2 } {}
+ \tl_set:Nn \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } {}
\group_end:
}
@@ -394,7 +396,9 @@
{
\group_begin:
\keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_display_date_according_to_format:nn { #2 } { _uppercase }
+ \tl_set:Nn \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } { _uppercase }
\group_end:
}
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-draft.sty b/Master/texmf-dist/tex/latex/projlib/projlib-draft.sty
index 6c7fe818c7c..6c7fe818c7c 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-draft.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-draft.sty
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-font.sty b/Master/texmf-dist/tex/latex/projlib/projlib-font.sty
index 4b2e85f4dc1..c308c1c66d7 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-font.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-font.sty
@@ -2,7 +2,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-font}
- {2022/02/26} {}
+ {2022/03/01} {}
{Font selection and configuration}
\keys_define:nn { projlib-font }
@@ -83,6 +83,8 @@
{
\PassOptionsToPackage { lining } { ebgaramond }
}
+ \RequirePackage [ cmintegrals, cmbraces ] { newtxmath }
+ \cs_undefine:c { openbox }
\RequirePackage { ebgaramond-maths }
\RequirePackage { ebgaramond }
\projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
@@ -101,6 +103,7 @@
\bool_if:NT \l__projlib_font_biolinum_bool
{
+ \RequirePackage [ OT1 ] { eulervm }
\sys_if_engine_pdftex:TF
{
\bool_if:NT \l__projlib_font_useosf_bool
@@ -132,6 +135,10 @@
\RequirePackage [ italic, defaultmathsizes ] { mathastext }
}
+\RequirePackage { silence }
+\WarningFilter { microtype } { Unable }
+\RequirePackage { microtype }
+
\endinput
%%
%% End of file `projlib-font.sty'.
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-language.sty b/Master/texmf-dist/tex/latex/projlib/projlib-language.sty
index 6167de8d043..4a67c6a018e 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-language.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-language.sty
@@ -2,7 +2,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-language}
- {2022/02/26} {}
+ {2022/03/09} {}
{Multi-language configuration}
\clist_const:Nn \c__projlib_language_supported_clist
@@ -76,19 +76,23 @@
, CN .meta:n = { schinese }
, chinese .meta:n = { schinese }
, schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
- , simplifiedchinese .meta:n = { schinese }
, simplified-chinese .meta:n = { schinese }
+ , simplified~chinese .meta:n = { schinese }
+ , simplified chinese .meta:n = { schinese }
, Chinese .meta:n = { schinese }
, SChinese .meta:n = { schinese }
- , SimplifiedChinese .meta:n = { schinese }
, Simplified-Chinese .meta:n = { schinese }
+ , Simplified~Chinese .meta:n = { schinese }
+ , Simplified Chinese .meta:n = { schinese }
, TC .meta:n = { tchinese }
, tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
- , traditionalchinese .meta:n = { tchinese }
, traditional-chinese .meta:n = { tchinese }
+ , traditional~chinese .meta:n = { tchinese }
+ , traditional chinese .meta:n = { tchinese }
, TChinese .meta:n = { tchinese }
- , TraditionalChinese .meta:n = { tchinese }
, Traditional-Chinese .meta:n = { tchinese }
+ , Traditional~Chinese .meta:n = { tchinese }
+ , Traditional Chinese .meta:n = { tchinese }
, JP .meta:n = { japanese }
, japanese .code:n = { \projlib_language_set_option:n { japanese } }
, Japanese .meta:n = { japanese }
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-logo.sty b/Master/texmf-dist/tex/latex/projlib/projlib-logo.sty
index d9ffb5c1ed2..d9ffb5c1ed2 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-logo.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-logo.sty
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-math.sty b/Master/texmf-dist/tex/latex/projlib/projlib-math.sty
index 977a4280038..977a4280038 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-math.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-math.sty
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-paper.sty b/Master/texmf-dist/tex/latex/projlib/projlib-paper.sty
index 5e1f9ac04ed..bb13bbe00a2 100644
--- a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-paper.sty
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-paper.sty
@@ -2,31 +2,42 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-paper}
- {2022/02/25} {}
- {Paper style configuration}
+ {2022/03/09} {}
+ {Configuration of the paper style}
\keys_define:nn { projlib-paper }
{
- , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
- , preview-mode .initial:n = { false }
- , paperstyle .tl_set:N = \l__projlib_paper_paperstyle_tl
- , paperstyle .initial:n = { normal }
- , yellowpaper .meta:n = { paperstyle = yellow }
- , yellow-paper .meta:n = { paperstyle = yellow }
- , parchmentpaper .meta:n = { paperstyle = parchment }
- , parchment-paper .meta:n = { paperstyle = parchment }
- , greenpaper .meta:n = { paperstyle = green }
- , green-paper .meta:n = { paperstyle = green }
- , lightgraypaper .meta:n = { paperstyle = lightgray }
- , lightgray-paper .meta:n = { paperstyle = lightgray }
- , light-gray-paper .meta:n = { paperstyle = lightgray }
- , graypaper .meta:n = { paperstyle = gray }
- , gray-paper .meta:n = { paperstyle = gray }
- , nordpaper .meta:n = { paperstyle = nord }
- , nord-paper .meta:n = { paperstyle = nord }
- , darkpaper .meta:n = { paperstyle = dark }
- , dark-paper .meta:n = { paperstyle = dark }
- , unknown .code:n = {}
+ , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
+ , preview-mode .initial:n = { false }
+ , paper-style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper-style .initial:n = { normal }
+ , paper-style .value_required:n = true
+ , paper~style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , yellow-paper .meta:n = { paperstyle = yellow }
+ , yellow~paper .meta:n = { paperstyle = yellow }
+ , yellow paper .meta:n = { paperstyle = yellow }
+ , parchment-paper .meta:n = { paperstyle = parchment }
+ , parchment~paper .meta:n = { paperstyle = parchment }
+ , parchment paper .meta:n = { paperstyle = parchment }
+ , green-paper .meta:n = { paperstyle = green }
+ , green~paper .meta:n = { paperstyle = green }
+ , green paper .meta:n = { paperstyle = green }
+ , light-gray-paper .meta:n = { paperstyle = lightgray }
+ , light~gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray-paper .meta:n = { paperstyle = lightgray }
+ , light gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray paper .meta:n = { paperstyle = lightgray }
+ , gray-paper .meta:n = { paperstyle = gray }
+ , gray~paper .meta:n = { paperstyle = gray }
+ , gray paper .meta:n = { paperstyle = gray }
+ , nord-paper .meta:n = { paperstyle = nord }
+ , nord~paper .meta:n = { paperstyle = nord }
+ , nord paper .meta:n = { paperstyle = nord }
+ , dark-paper .meta:n = { paperstyle = dark }
+ , dark~paper .meta:n = { paperstyle = dark }
+ , dark paper .meta:n = { paperstyle = dark }
+ , unknown .code:n = {}
}
\ProcessKeysOptions { projlib-paper }
diff --git a/Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty b/Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty
new file mode 100644
index 00000000000..092ca2f0ead
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty
@@ -0,0 +1,1184 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-theorem}
+ {2022/03/09} {}
+ {Configuration of theorem-like environments}
+
+\keys_define:nn { projlib-theorem }
+ {
+ , no-theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorems .initial:n = { false }
+ , no~theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , nothms .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorem-numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no-theorem-numbering .initial:n = { false }
+ , no~theorem~numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no theorem numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , nothmnum .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , theorem-numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem-numbering .default:n = { * }
+ , theorem~numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem~numbering .default:n = { * }
+ , theorem numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem numbering .default:n = { * }
+ , thmnum .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , thmnum .default:n = { * }
+ , complex-name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex-name .initial:n = { true }
+ , complex~name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , simple-name .bool_set:N = \l__projlib_theorem_simplename_bool
+ , simple-name .initial:n = { false }
+ , simple~name .bool_set:N = \l__projlib_theorem_simplename_bool
+ , simple name .bool_set:N = \l__projlib_theorem_simplename_bool
+ , no-preset-names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no-preset-names .initial:n = { false }
+ , no~preset~names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no preset names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , unknown .code:n = { \PassOptionsToPackage { \CurrentOption } { create-theorem } }
+ }
+\ProcessKeysOptions { projlib-theorem }
+
+\clist_const:Nn \c__projlib_theorem_supported_clist
+ {
+ assertion ,
+ assumption ,
+ axiom ,
+ conclusion ,
+ conjecture ,
+ convention ,
+ corollary ,
+ definition ,
+ example ,
+ exercise ,
+ fact ,
+ hypothesis ,
+ lemma ,
+ notation ,
+ observation ,
+ postulate ,
+ problem ,
+ property ,
+ proposition ,
+ question ,
+ remark ,
+ theorem ,
+ }
+
+\@ifclassloaded { beamer }
+ {
+ \RequirePackage { silence }
+ \WarningFilter { cleveref } { hyperref~package~loaded~with~implicit=false~option }
+ \bool_set_true:N \l__projlib_theorem_no_theorem_numbering_bool
+ \bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \cs_undefine:c { theorem }
+ \cs_undefine:c { lemma }
+ \cs_undefine:c { corollary }
+ \cs_undefine:c { definition }
+ \cs_undefine:c { fact }
+ \cs_undefine:c { example }
+ \cs_undefine:c { problem }
+ }
+ } {}
+
+\RequirePackage { projlib-language }
+
+\bool_if:NF \l__projlib_theorem_complexname_bool
+ {
+ \PassOptionsToPackage { no preset names } { create-theorem }
+ }
+
+\RequirePackage { amsthm }
+\RequirePackage { create-theorem }
+
+
+\bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \bool_if:NTF \l__projlib_theorem_no_theorem_numbering_bool
+ {
+ \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { numberless }
+ }
+ {
+ \tl_if_blank:eTF \l__projlib_theorem_theorem_numbering_tl
+ {
+ \cs_if_exist:cTF { c@chapter }
+ { % with \chapter
+ \CreateTheorem {theorem} { parent counter = chapter }
+ }
+ { % without \chapter
+ \CreateTheorem {theorem} { parent counter = section }
+ }
+ }
+ {
+ \tl_if_eq:NnTF \l__projlib_theorem_theorem_numbering_tl { * }
+ {
+ \CreateTheorem {theorem} { }
+ }
+ {
+ \CreateTheorem {theorem} { parent counter = \l__projlib_theorem_theorem_numbering_tl }
+ }
+ }
+
+ \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { shared counter = theorem, quiet }
+ }
+ }
+
+
+\AddLanguageSetting [ schinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 图 } { 图 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附录 } { 附录 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 图 } { 图 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附录 } { 附录 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ tchinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 圖 } { 圖 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附錄 } { 附錄 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 圖 } { 圖 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附錄 } { 附錄 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ japanese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 図 } { 図 }
+ \crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 図 } { 図 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 及び \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ russian ]
+ {
+ \crefname { equation } { уравнение } { уравнения }
+ \crefname { figure } { рис. } { рис. }
+ \crefname { table } { таблица } { таблицы }
+ \crefname { appendix } { приложение } { приложения }
+ \Crefname { equation } { Уравнение } { Уравнения }
+ \Crefname { figure } { Рис. } { Рис. }
+ \Crefname { table } { Таблица } { Таблицы }
+ \Crefname { appendix } { Приложение } { Приложения }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace \textasciitilde \nobreakspace }
+ }
+
+\AddLanguageSetting [ portuguese ]
+ {
+ \crefname { equation } { eq. } { eqs. }
+ \crefname { figure } { fig. } { figs. }
+ \crefname { table } { tabela } { tabelas }
+ \crefname { appendix } { apêndice } { apêndices }
+ \Crefname { equation } { Eq. } { Eqs. }
+ \Crefname { figure } { Fig. } { Figs. }
+ \Crefname { table } { Tabela } { Tabelas }
+ \Crefname { appendix } { Apêndice } { Apêndices }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace a \nobreakspace }
+ }
+
+
+\bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
+\bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
+
+
+\NameTheorem { assertion }
+ {
+ , heading = {
+ , english = Assertion
+ , french = Assertion
+ , ngerman = Behauptung
+ , italian = Asserzione
+ , portuguese = Asserção
+ , brazilian = Asserção
+ , spanish = Aserción
+ , schinese = 断言
+ , tchinese = 斷言
+ , japanese = アサーション
+ , russian = Утверждение
+ }
+ , crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [l']{Assertion}[les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [l']{Asserzione}[le]{Asserzione}
+ , portuguese = [a]{Asserção}[as]{Asserção}
+ , brazilian = [a]{Asserção}[as]{Asserção}
+ , spanish = [la]{Aserción}[las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ , Crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [L']{Assertion}[Les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [L']{Asserzione}[Le]{Asserzione}
+ , portuguese = [A]{Asserção}[As]{Asserção}
+ , brazilian = [A]{Asserção}[As]{Asserção}
+ , spanish = [La]{Aserción}[Las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ }
+
+\NameTheorem { assumption }
+ {
+ , heading = {
+ , english = Assumption
+ , french = Supposition
+ , ngerman = Annahme
+ , italian = Supposizione
+ , portuguese = Suposição
+ , brazilian = Suposição
+ , spanish = Suposición
+ , schinese = 假定
+ , tchinese = 假定
+ , japanese = 仮定
+ , russian = Предположение
+ }
+ , crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [la]{Supposition}[les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [a]{Suposição}[as]{Suposição}
+ , brazilian = [a]{Suposição}[as]{Suposição}
+ , spanish = [la]{Suposición}[las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ , Crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [La]{Supposition}[Les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [A]{Suposição}[As]{Suposição}
+ , brazilian = [A]{Suposição}[As]{Suposição}
+ , spanish = [La]{Suposición}[Las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ }
+
+\NameTheorem { axiom }
+ {
+ , heading = {
+ , english = Axiom
+ , french = Axiome
+ , ngerman = Axiom
+ , italian = Assioma
+ , portuguese = Axioma
+ , brazilian = Axioma
+ , spanish = Axioma
+ , schinese = 公理
+ , tchinese = 公理
+ , japanese = 公理
+ , russian = Аксиома
+ }
+ , crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [l']{Axiome}[les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [l']{Assioma}[gli]{Assioma}
+ , portuguese = [o]{Axioma}[os]{Axioma}
+ , brazilian = [o]{Axioma}[os]{Axioma}
+ , spanish = [el]{Axioma}[los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ , Crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [L']{Axiome}[Les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [L']{Assioma}[Gli]{Assioma}
+ , portuguese = [O]{Axioma}[Os]{Axioma}
+ , brazilian = [O]{Axioma}[Os]{Axioma}
+ , spanish = [El]{Axioma}[Los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ }
+
+\NameTheorem { conclusion }
+ {
+ , heading = {
+ , english = Conclusion
+ , french = Conclusion
+ , ngerman = Schlussfolgerung
+ , italian = Conclusione
+ , portuguese = Conclusão
+ , brazilian = Conclusão
+ , spanish = Conclusión
+ , schinese = 结论
+ , tchinese = 結論
+ , japanese = 結論
+ , russian = Вывод
+ }
+ , crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [la]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [la]{Conclusione}[le]{Conclusione}
+ , portuguese = [a]{Conclusão}[as]{Conclusão}
+ , brazilian = [a]{Conclusão}[as]{Conclusão}
+ , spanish = [la]{Conclusión}[las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ , Crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [La]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [La]{Conclusione}[Le]{Conclusione}
+ , portuguese = [A]{Conclusão}[As]{Conclusão}
+ , brazilian = [A]{Conclusão}[As]{Conclusão}
+ , spanish = [La]{Conclusión}[Las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ }
+
+\NameTheorem { conjecture }
+ {
+ , heading = {
+ , english = Conjecture
+ , french = Conjecture
+ , ngerman = Vermutung
+ , italian = Congettura
+ , portuguese = Conjetura
+ , brazilian = Conjectura
+ , spanish = Conjetura
+ , schinese = 猜想
+ , tchinese = 猜想
+ , japanese = 予想
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [la]{Conjecture}[les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [la]{Congettura}[le]{Congettura}
+ , portuguese = [a]{Conjetura}[as]{Conjetura}
+ , brazilian = [a]{Conjectura}[as]{Conjectura}
+ , spanish = [la]{Conjetura}[las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [La]{Conjecture}[Les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [La]{Congettura}[Le]{Congettura}
+ , portuguese = [A]{Conjetura}[As]{Conjetura}
+ , brazilian = [A]{Conjectura}[As]{Conjectura}
+ , spanish = [La]{Conjetura}[Las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { convention }
+ {
+ , heading = {
+ , english = Convention
+ , french = Convention
+ , ngerman = Konvention
+ , italian = Convenzione
+ , portuguese = Convenção
+ , brazilian = Convenção
+ , spanish = Convención
+ , schinese = 约定
+ , tchinese = 約定
+ , japanese = 慣例
+ , russian = Конвенция
+ }
+ , crefname = {
+ , english = {Convention}{Convention}
+ , french = [la]{Convention}[les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [la]{Convenzione}[le]{Convenzione}
+ , portuguese = [a]{Convenção}[as]{Convenção}
+ , brazilian = [a]{Convenção}[as]{Convenção}
+ , spanish = [la]{Convención}[las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ , Crefname = {
+ , english = {Convention}{Convention}
+ , french = [La]{Convention}[Les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [La]{Convenzione}[Le]{Convenzione}
+ , portuguese = [A]{Convenção}[As]{Convenção}
+ , brazilian = [A]{Convenção}[As]{Convenção}
+ , spanish = [La]{Convención}[Las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ }
+
+\NameTheorem { corollary }
+ {
+ , heading = {
+ , english = Corollary
+ , french = Corollaire
+ , ngerman = Korollar
+ , italian = Corollario
+ , portuguese = Corolário
+ , brazilian = Corolário
+ , spanish = Corolario
+ , schinese = 推论
+ , tchinese = 推論
+ , japanese = 系
+ , russian = Следствие
+ }
+ , crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [le]{Corollaire}[les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [il]{Corollario}[i]{Corollario}
+ , portuguese = [o]{Corolário}[os]{Corolário}
+ , brazilian = [o]{Corolário}[os]{Corolário}
+ , spanish = [el]{Corolario}[los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ , Crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [Le]{Corollaire}[Les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [Il]{Corollario}[I]{Corollario}
+ , portuguese = [O]{Corolário}[Os]{Corolário}
+ , brazilian = [O]{Corolário}[Os]{Corolário}
+ , spanish = [El]{Corolario}[Los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ }
+
+\NameTheorem { definition }
+ {
+ , heading = {
+ , english = Definition
+ , french = Définition
+ , ngerman = Definition
+ , italian = Definizione
+ , portuguese = Definição
+ , brazilian = Definição
+ , spanish = Definición
+ , schinese = 定义
+ , tchinese = 定義
+ , japanese = 定義
+ , russian = Определение
+ }
+ , crefname = {
+ , english = {Definition}{Definition}
+ , french = [la]{Définition}[les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [la]{Definizione}[le]{Definizione}
+ , portuguese = [a]{Definição}[as]{Definição}
+ , brazilian = [a]{Definição}[as]{Definição}
+ , spanish = [la]{Definición}[las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ , Crefname = {
+ , english = {Definition}{Definition}
+ , french = [La]{Définition}[Les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [La]{Definizione}[Le]{Definizione}
+ , portuguese = [A]{Definição}[As]{Definição}
+ , brazilian = [A]{Definição}[As]{Definição}
+ , spanish = [La]{Definición}[Las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ }
+
+\NameTheorem { example }
+ {
+ , heading = {
+ , english = Example
+ , french = Exemple
+ , ngerman = Beispiel
+ , italian = Esempio
+ , portuguese = Exemplo
+ , brazilian = Exemplo
+ , spanish = Ejemplo
+ , schinese = 例
+ , tchinese = 例
+ , japanese = 例
+ , russian = Пример
+ }
+ , crefname = {
+ , english = {Example}{Example}
+ , french = [l']{Example}[les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [l']{Esempio}[gli]{Esempio}
+ , portuguese = [o]{Exemplo}[os]{Exemplo}
+ , brazilian = [o]{Exemplo}[os]{Exemplo}
+ , spanish = [el]{Ejemplo}[los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ , Crefname = {
+ , english = {Example}{Example}
+ , french = [L']{Example}[Les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [L']{Esempio}[Gli]{Esempio}
+ , portuguese = [O]{Exemplo}[Os]{Exemplo}
+ , brazilian = [O]{Exemplo}[Os]{Exemplo}
+ , spanish = [El]{Ejemplo}[Los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ }
+
+\NameTheorem { exercise }
+ {
+ , heading = {
+ , english = Exercise
+ , french = Exercice
+ , ngerman = Übung
+ , italian = Esercizio
+ , portuguese = Exercício
+ , brazilian = Exercício
+ , spanish = Ejercicio
+ , schinese = 练习
+ , tchinese = 練習
+ , japanese = 練習
+ , russian = Упражнение
+ }
+ , crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [l']{Exercice}[les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [l']{Esercizio}[gli]{Esercizio}
+ , portuguese = [o]{Exercício}[os]{Exercício}
+ , brazilian = [o]{Exercício}[os]{Exercício}
+ , spanish = [el]{Ejercicio}[los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ , Crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [L']{Exercice}[Les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [L']{Esercizio}[Gli]{Esercizio}
+ , portuguese = [O]{Exercício}[Os]{Exercício}
+ , brazilian = [O]{Exercício}[Os]{Exercício}
+ , spanish = [El]{Ejercicio}[Los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ }
+
+\NameTheorem { fact }
+ {
+ , heading = {
+ , english = Fact
+ , french = Fait
+ , ngerman = Fakt
+ , italian = Fatto
+ , portuguese = Facto
+ , brazilian = Fato
+ , spanish = Hecho
+ , schinese = 事实
+ , tchinese = 事實
+ , japanese = 事実
+ , russian = Факт
+ }
+ , crefname = {
+ , english = {Fact}{Fact}
+ , french = [le]{Fait}[les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [il]{Fatto}[i]{Fatto}
+ , portuguese = [o]{Facto}[os]{Facto}
+ , brazilian = [o]{Fato}[os]{Fato}
+ , spanish = [el]{Hecho}[los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ , Crefname = {
+ , english = {Fact}{Fact}
+ , french = [Le]{Fait}[Les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [Il]{Fatto}[I]{Fatto}
+ , portuguese = [O]{Facto}[Os]{Facto}
+ , brazilian = [O]{Fato}[Os]{Fato}
+ , spanish = [El]{Hecho}[Los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ }
+
+\NameTheorem { hypothesis }
+ {
+ , heading = {
+ , english = Hypothesis
+ , french = Hypothèse
+ , ngerman = Hypothese
+ , italian = Ipotesi
+ , portuguese = Hipótese
+ , brazilian = Hipótese
+ , spanish = Hipótesis
+ , schinese = 假设
+ , tchinese = 假設
+ , japanese = 仮設
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [l']{Hypothèse}[les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [l']{Ipotesi}[le]{Ipotesi}
+ , portuguese = [a]{Hipótese}[as]{Hipótese}
+ , brazilian = [a]{Hipótese}[as]{Hipótese}
+ , spanish = [la]{Hipótesis}[las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [L']{Hypothèse}[Les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [L']{Ipotesi}[Le]{Ipotesi}
+ , portuguese = [A]{Hipótese}[As]{Hipótese}
+ , brazilian = [A]{Hipótese}[As]{Hipótese}
+ , spanish = [La]{Hipótesis}[Las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { lemma }
+ {
+ , heading = {
+ , english = Lemma
+ , french = Lemme
+ , ngerman = Lemma
+ , italian = Lemma
+ , portuguese = Lema
+ , brazilian = Lema
+ , spanish = Lema
+ , schinese = 引理
+ , tchinese = 引理
+ , japanese = 補題
+ , russian = Лемма
+ }
+ , crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [le]{Lemme}[les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [il]{Lemma}[i]{Lemma}
+ , portuguese = [o]{Lema}[os]{Lema}
+ , brazilian = [o]{Lema}[os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ , Crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [Le]{Lemme}[Les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [Il]{Lemma}[I]{Lemma}
+ , portuguese = [O]{Lema}[Os]{Lema}
+ , brazilian = [O]{Lema}[Os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ }
+
+\NameTheorem { notation }
+ {
+ , heading = {
+ , english = Notation
+ , french = Notation
+ , ngerman = Notation
+ , italian = Notazione
+ , portuguese = Notação
+ , brazilian = Notação
+ , spanish = Notación
+ , schinese = 记号
+ , tchinese = 記號
+ , japanese = 記法
+ , russian = Нотация
+ }
+ , crefname = {
+ , english = {Notation}{Notation}
+ , french = [la]{Notation}[les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [la]{Notazione}[le]{Notazione}
+ , portuguese = [a]{Notação}[as]{Notação}
+ , brazilian = [a]{Notação}[as]{Notação}
+ , spanish = [la]{Notación}[las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ , Crefname = {
+ , english = {Notation}{Notation}
+ , french = [La]{Notation}[Les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [La]{Notazione}[Le]{Notazione}
+ , portuguese = [A]{Notação}[As]{Notação}
+ , brazilian = [A]{Notação}[As]{Notação}
+ , spanish = [La]{Notación}[Las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ }
+
+\NameTheorem { observation }
+ {
+ , heading = {
+ , english = Observation
+ , french = Observation
+ , ngerman = Beobachtung
+ , italian = Osservazione
+ , portuguese = Observação
+ , brazilian = Observação
+ , spanish = Observación
+ , schinese = 观察
+ , tchinese = 觀察
+ , japanese = 観察
+ , russian = Наблюдение
+ }
+ , crefname = {
+ , english = {Observation}{Observation}
+ , french = [la]{Observation}[les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [l']{Osservazione}[le]{Osservazione}
+ , portuguese = [a]{Observação}[as]{Observação}
+ , brazilian = [a]{Observação}[as]{Observação}
+ , spanish = [la]{Observación}[las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ , Crefname = {
+ , english = {Observation}{Observation}
+ , french = [La]{Observation}[Les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [L']{Osservazione}[Le]{Osservazione}
+ , portuguese = [A]{Observação}[As]{Observação}
+ , brazilian = [A]{Observação}[As]{Observação}
+ , spanish = [La]{Observación}[Las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ }
+
+\NameTheorem { postulate }
+ {
+ , heading = {
+ , english = Postulate
+ , french = Postulat
+ , ngerman = Postulat
+ , italian = Postulato
+ , portuguese = Postulado
+ , brazilian = Postulado
+ , spanish = Postulado
+ , schinese = 公设
+ , tchinese = 公設
+ , japanese = 公準
+ , russian = Постулат
+ }
+ , crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [le]{Postulat}[les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [il]{Postulato}[i]{Postulato}
+ , portuguese = [o]{Postulado}[os]{Postulado}
+ , brazilian = [o]{Postulado}[os]{Postulado}
+ , spanish = [el]{Postulado}[los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ , Crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [Le]{Postulat}[Les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [Il]{Postulato}[I]{Postulato}
+ , portuguese = [O]{Postulado}[Os]{Postulado}
+ , brazilian = [O]{Postulado}[Os]{Postulado}
+ , spanish = [El]{Postulado}[Los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ }
+
+\NameTheorem { problem }
+ {
+ , heading = {
+ , english = Problem
+ , french = Problème
+ , ngerman = Problem
+ , italian = Problema
+ , portuguese = Problema
+ , brazilian = Problema
+ , spanish = Problema
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Проблема
+ }
+ , crefname = {
+ , english = {Problem}{Problem}
+ , french = [le]{Problème}[les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [il]{Problema}[i]{Problema}
+ , portuguese = [o]{Problema}[os]{Problema}
+ , brazilian = [o]{Problema}[os]{Problema}
+ , spanish = [el]{Problema}[los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ , Crefname = {
+ , english = {Problem}{Problem}
+ , french = [Le]{Problème}[Les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [Il]{Problema}[I]{Problema}
+ , portuguese = [O]{Problema}[Os]{Problema}
+ , brazilian = [O]{Problema}[Os]{Problema}
+ , spanish = [El]{Problema}[Los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ }
+
+\NameTheorem { property }
+ {
+ , heading = {
+ , english = Property
+ , french = Propriété
+ , ngerman = Eigenschaft
+ , italian = Proprietà
+ , portuguese = Propriedade
+ , brazilian = Propriedade
+ , spanish = Propiedad
+ , schinese = 性质
+ , tchinese = 性質
+ , japanese = 性質
+ , russian = Имущество
+ }
+ , crefname = {
+ , english = {Property}{Property}
+ , french = [la]{Propriété}[les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [la]{Proprietà}[le]{Proprietà}
+ , portuguese = [a]{Propriedade}[as]{Propriedade}
+ , brazilian = [a]{Propriedade}[as]{Propriedade}
+ , spanish = [la]{Propiedad}[las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ , Crefname = {
+ , english = {Property}{Property}
+ , french = [La]{Propriété}[Les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [La]{Proprietà}[Le]{Proprietà}
+ , portuguese = [A]{Propriedade}[As]{Propriedade}
+ , brazilian = [A]{Propriedade}[As]{Propriedade}
+ , spanish = [La]{Propiedad}[Las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ }
+
+\NameTheorem { proposition }
+ {
+ , heading = {
+ , english = Proposition
+ , french = Proposition
+ , ngerman = Proposition
+ , italian = Proposizione
+ , portuguese = Proposição
+ , brazilian = Proposição
+ , spanish = Proposición
+ , schinese = 命题
+ , tchinese = 命題
+ , japanese = 命題
+ , russian = Предложение
+ }
+ , crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [la]{Proposition}[les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [la]{Proposizione}[le]{Proposizione}
+ , portuguese = [a]{Proposição}[as]{Proposição}
+ , brazilian = [a]{Proposição}[as]{Proposição}
+ , spanish = [la]{Proposición}[las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ , Crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [La]{Proposition}[Les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [La]{Proposizione}[Le]{Proposizione}
+ , portuguese = [A]{Proposição}[As]{Proposição}
+ , brazilian = [A]{Proposição}[As]{Proposição}
+ , spanish = [La]{Proposición}[Las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ }
+
+\NameTheorem { question }
+ {
+ , heading = {
+ , english = Question
+ , french = Question
+ , ngerman = Frage
+ , italian = Domanda
+ , portuguese = Pergunta
+ , brazilian = Pergunta
+ , spanish = Pregunta
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Вопрос
+ }
+ , crefname = {
+ , english = {Question}{Question}
+ , french = [la]{Question}[les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [la]{Domanda}[le]{Domanda}
+ , portuguese = [a]{Pergunta}[as]{Pergunta}
+ , brazilian = [a]{Pergunta}[as]{Pergunta}
+ , spanish = [la]{Pregunta}[las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ , Crefname = {
+ , english = {Question}{Question}
+ , french = [La]{Question}[Les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [La]{Domanda}[Le]{Domanda}
+ , portuguese = [A]{Pergunta}[As]{Pergunta}
+ , brazilian = [A]{Pergunta}[As]{Pergunta}
+ , spanish = [La]{Pregunta}[Las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ }
+
+\NameTheorem { remark }
+ {
+ , heading = {
+ , english = Remark
+ , french = Remarque
+ , ngerman = Bemerkung
+ , italian = Commento
+ , portuguese = Comentário
+ , brazilian = Comentário
+ , spanish = Comentario
+ , schinese = 备注
+ , tchinese = 備註
+ , japanese = 注釈
+ , russian = Замечание
+ }
+ , crefname = {
+ , english = {Remark}{Remark}
+ , french = [la]{Remarque}[les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [il]{Commento}[i]{Commento}
+ , portuguese = [o]{Comentário}[os]{Comentário}
+ , brazilian = [o]{Comentário}[os]{Comentário}
+ , spanish = [el]{Comentario}[los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ , Crefname = {
+ , english = {Remark}{Remark}
+ , french = [La]{Remarque}[Les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [Il]{Commento}[I]{Commento}
+ , portuguese = [O]{Comentário}[Os]{Comentário}
+ , brazilian = [O]{Comentário}[Os]{Comentário}
+ , spanish = [El]{Comentario}[Los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ }
+
+\NameTheorem { theorem }
+ {
+ , heading = {
+ , english = Theorem
+ , french = Théorème
+ , ngerman = Satz
+ , italian = Teorema
+ , portuguese = Teorema
+ , brazilian = Teorema
+ , spanish = Teorema
+ , schinese = 定理
+ , tchinese = 定理
+ , japanese = 定理
+ , russian = Теорема
+ }
+ , crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [le]{Théorème}[les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [il]{Teorema}[i]{Teorema}
+ , portuguese = [o]{Teorema}[os]{Teorema}
+ , brazilian = [o]{Teorema}[os]{Teorema}
+ , spanish = [el]{Teorema}[los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ , Crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [Le]{Théorème}[Les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [Il]{Teorema}[I]{Teorema}
+ , portuguese = [O]{Teorema}[Os]{Teorema}
+ , brazilian = [O]{Teorema}[Os]{Teorema}
+ , spanish = [El]{Teorema}[Los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ }
+
+\endinput
+%%
+%% End of file `projlib-theorem.sty'.
+
+
+接下来:
+1. ✅ 定义 \SetTheorem,用于处理编号和名称样式的问题
+2. ✅ 定义 complexname 与 simplename
+3. ✅ 给出定理类环境的初始化,注意 no-theorem 与 no-theorem-numbering 等选项
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 3e972172787..416ac6c2a80 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -2226,6 +2226,7 @@ $standardtex
'ppchtex', 'm.*tex|m.*sty',
'present', 'present.tex',
'presentations-en', 'NULL', # doc pkg
+ 'projlib', 'old-modules|' . $standardtex,
'prosper', '\.ps|\.eps|\.sty|\.cls',
'pstricks', 'pst-*\.tex',
'pstricks-examples', 'NULL',