From 620ec64c7e6e3ffa4a00394c17e638414fc32c6a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 10 Mar 2022 21:25:27 +0000 Subject: projlib (10mar22) (branch) git-svn-id: svn://tug.org/texlive/branches/branch2021.final@62601 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/projlib/ProjLib.dtx | 3683 -------------------- Master/texmf-dist/source/latex/projlib/ProjLib.ins | 72 - 2 files changed, 3755 deletions(-) delete mode 100644 Master/texmf-dist/source/latex/projlib/ProjLib.dtx delete mode 100644 Master/texmf-dist/source/latex/projlib/ProjLib.ins (limited to 'Master/texmf-dist/source') 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} -% -\NeedsTeXFormat{LaTeX2e}[2020-10-01] -% -%<*ProjLib> -\ProvidesPackage{ProjLib} - [2021/12/16 The collective interface of ProjLib toolkit] -% -% -%<*PJLauthor> -\ProvidesPackage{PJLauthor} - [2021/12/16 Enhanced author information block] -% -% -%<*PJLdate> -\ProvidesPackage{PJLdate} - [2021/12/16 Convert yyyy-mm-dd to normal datetime format] -% -% -%<*PJLdraft> -\ProvidesPackage{PJLdraft} - [2021/12/16 Some useful macros for the draft stage] -% -% -%<*PJLlang> -\ProvidesPackage{PJLlang} - [2021/12/16 Multi-language configuration] -% -% -%<*PJLlogo> -\ProvidesPackage{PJLlogo} - [2021/12/16 The ProjLib logo] -% -% -%<*PJLmath> -\ProvidesPackage{PJLmath} - [2021/12/16 Useful math macros and shortcuts] -% -% -%<*PJLpaper> -\ProvidesPackage{PJLpaper} - [2021/12/16 Paper style configuration] -% -% -%<*PJLthm> -\ProvidesPackage{PJLthm} - [2021/12/16 Theorem setup and configuration] -% -% -%# 下面两行引入宏包的代码是所有文件共用的。 -%# 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} - -} -% -% -%<*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}} -% -% -%<*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}% -} -% -% -%<*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} -% -% -%<*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}} -% -% -%<*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}} -% -% -%<*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 -} -% -% -%<*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., ={...}, -% 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} - }{ - \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}% -} -% -% -%<*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} -% - -\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 -- cgit v1.2.3