diff options
21 files changed, 474 insertions, 637 deletions
diff --git a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.pdf b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.pdf Binary files differindex ee69f8e3137..fe8a0f459a4 100644 --- a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.pdf +++ b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.pdf diff --git a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex index 9966f4043b1..04e39fbeea5 100644 --- a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex +++ b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-cn.tex @@ -70,7 +70,6 @@ %%================================ \providecommand{\ProjLibPackage}{\mbox{\textsf{ProjLib}}} \providecommand{\PJLtoolkit}{\mbox{\textsf{PJLtoolkit}}} -\providecommand{\PJLamssim}{\mbox{\textsf{PJLamssim}}} \providecommand{\PJLauthor}{\mbox{\textsf{PJLauthor}}} \providecommand{\PJLdatePackage}{\mbox{\textsf{PJLdate}}} \providecommand{\PJLdraft}{\mbox{\textsf{PJLdraft}}} @@ -87,7 +86,7 @@ \title{\ProjLib{} 工具集\\[.3\baselineskip]\normalsize 使用指南} \author{许锦文} -\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/23}} +\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/27}} \email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}} \date{2021年7月,北京} @@ -215,7 +214,7 @@ Référence du théorème: \cref{thm:abc} % It is recommended to use clever refe ... \end{code} -另外,如果开启 \AmS{} 风格\footnote{这是由 \PJLamssim{} 模块实现的。由于这一模块修改了\LaTeX{} 的一些内部指令,有可能与一些宏包或文档类发生冲突,因此没有默认启用。},那么文章中还可以采用 \AmS{} 文档类的写法 (此时原始的写法也是成立的)。为此,引入 \ProjLibPackage{} 时应该加入 \texttt{amsfashion} 选项: +另外,如果开启 \AmS{} 风格,那么文章中还可以采用 \AmS{} 文档类的写法 (此时原始的写法也是成立的)。为此,引入 \ProjLibPackage{} 时应该加入 \texttt{amsfashion} 选项\footnote{由于这一选项会修改\LaTeX{} 的一些内部指令,有可能与一些宏包或文档类发生冲突,因此没有默认启用。}: \begin{code} \usepackage[amsfashion,palatino]{ProjLib} \end{code} @@ -264,34 +263,22 @@ Référence du théorème: \cref{thm:abc} \end{itemize} \item \texttt{nothms}、\texttt{nothmnum}、\texttt{regionalref} \begin{itemize} - \item 来自 \PJLthm{} 的选项,详细信息请参阅有关这一宏包的小节。 + \item 来自用于设置定理类环境的组件 \PJLthm{} 的选项,详细信息请参阅有关这一宏包的小节。 \end{itemize} - \item \texttt{amsfashion} + \item \texttt{author} \begin{itemize} - \item 允许 \AmS{} 文档类的写法。与 \texttt{amssim} 选项相同。 + \item 加载用于增强作者信息块的组件 \PJLauthor{}。关于其详细功能,请参阅有关该宏包的小节。 \end{itemize} - \item \texttt{author}、\texttt{amssim} + \item \texttt{amsfashion} \begin{itemize} - \item 加载 \PJLauthor{} 或 \PJLamssim{}。关于其详细功能,请参阅有关相关宏包的小节。 + \item 允许 \AmS{} 文档类的写法。此时 \texttt{author} 选项会被自动开启。 \end{itemize} \end{itemize} 另外,还有一些组件的参数可以作为文档类的全局参数传递,例如 \texttt{EN} / \texttt{english} / \texttt{English}、\texttt{CN} / \texttt{chinese} / \texttt{Chinese} 等语言选项 (来自 \PJLlang{}),\texttt{paperstyle} 和 \texttt{preview} 等纸张选项 (来自 \PJLpaper{})。详细信息可以参阅对应的小节。 \clearpage -\section{具体组件} - -\subsection{PJLamssim:以 \texorpdfstring{\AmS}{AMS} 方式写作} - -\PJLamssim{} 用于模拟 \textsf{amsart} 文档类的部分功能,包括: -\begin{itemize} - \item \lstinline|\address|、\lstinline|\curraddr|、\lstinline|\email|、\lstinline|\dedicatory| 命令 (前三者由 \PJLauthor{} 提供) - \item \lstinline|\keywords| 命令 - \item \lstinline|\subjclass| 命令 - \item \lstinline|\thanks| 可以写在 \lstinline|\author| 之外 - \item \lstinline|abstract| 环境可以放在 \lstinline|\maketitle| 的前面 -\end{itemize} -这些功能只在标准文档类中启用。在 \AmS{} 文档类中,\PJLamssim{} 不会起到任何效果。 +\section{具体组件} \subsection{PJLauthor:增强的作者信息块} @@ -307,6 +294,18 @@ Référence du théorème: \cref{thm:abc} \end{code} 其中 \lstinline|\address|、\lstinline|\curraddr|、\lstinline|\email| 的相互顺序是不重要的。 +\medskip +另外,你可以通过选项 \texttt{amsfashion} 以使用 \AmS{} 方式写作。具体来说,效果为: +\begin{itemize} + \item 提供 \lstinline|\dedicatory|、\lstinline|\keywords| 及 \lstinline|\subjclass| 命令 + \item \lstinline|\thanks| 可以写在 \lstinline|\author| 之外 + \item \lstinline|abstract| 环境可以放在 \lstinline|\maketitle| 的前面 +\end{itemize} + +\begin{tip}[注意] + 这些功能只在标准文档类中启用。在 \AmS{} 文档类中,\PJLauthor{} 不会起到任何效果。 +\end{tip} + \subsection{PJLdate:智能日期处理} \PJLdatePackage{} 提供了 \lstinline|\PLdate|\meta{yyyy-mm-dd} (或 \lstinline|\PJLdate|\meta{yyyy-mm-dd}) 命令,以将 \meta{yyyy-mm-dd} 转换为当前语言的日期格式显示。例如,在当前的中文语境下,\lstinline|\PLdate{2022-04-01}| 会被显示为“\PJLdate{2022-04-01}”,而在英文语境下则会被显示为“\UseOtherLanguage{English}{\PJLdate{2022-04-01}}”。 @@ -401,7 +400,7 @@ Référence du théorème: \cref{thm:abc} \PJLmath{} 提供下列捷径: \begin{enumerate}[label=\roman*)] - \item \lstinline|\mathfrak{|$\cdot$\lstinline|}| $\longrightarrow$ \lstinline|\mf|$\cdot$ 或 \lstinline|\frak|$\cdot$。例如,\lstinline|\mfA| (或 \lstinline|\mf{A}|) 与 \lstinline|\mathfrak{A}| 效果相同. 这对大写、小写字母都有效: + \item \lstinline|\mathfrak{|$\cdot$\lstinline|}| $\longrightarrow$ \lstinline|\mf|$\cdot$ 或 \lstinline|\frak|$\cdot$。例如,\lstinline|\mfA| (或 \lstinline|\mf{A}|) 与 \lstinline|\mathfrak{A}| 效果相同. 这对大写、小写字母都有效:\vspace{-\baselineskip} \begin{align*} \mfa\mfb\mfc\mfd\mfe\mff\mfg\mfh\mfi\mfj\mfk\mfl\mfm\mfn&\mfo\mfp\mfq\mfr\mfs\mft\mfu\mfv\mfw\mfx\mfy\mfz\\ \mfA\mfB\mfC\mfD\mfE\mfF\mfG\mfH\mfI\mfJ\mfK\mfL\mfM\mfN&\mfO\mfP\mfQ\mfR\mfS\mfT\mfU\mfV\mfW\mfX\mfY\mfZ @@ -432,10 +431,9 @@ Référence du théorème: \cref{thm:abc} \lstinline|\injection| & \lstinline|\injection| $\rightarrow ~\injection$ & 表示单射的箭头符号 \\ \lstinline|\surjection| & \lstinline|\surjection| $\rightarrow ~\surjection$ & 表示满射的箭头符号 \\ \lstinline|\bijection| & \lstinline|\bijection| $\rightarrow ~\bijection$ & 表示双射的箭头符号 \\ -\lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Legendre 符号 \\ -& \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ \end{longtable} +\clearpage \subsection{PJLpaper:纸张设置} \PJLpaper{} 主要用于调节纸张颜色。它支持下列选项: diff --git a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.pdf b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.pdf Binary files differindex 595ebf9f257..b86cc30b19a 100644 --- a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.pdf +++ b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.pdf diff --git a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex index ce1a4db1561..ed7afa02495 100644 --- a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex +++ b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-en.tex @@ -70,7 +70,6 @@ %%================================ \providecommand{\ProjLibPackage}{\mbox{\textsf{ProjLib}}} \providecommand{\PJLtoolkit}{\mbox{\textsf{PJLtoolkit}}} -\providecommand{\PJLamssim}{\mbox{\textsf{PJLamssim}}} \providecommand{\PJLauthor}{\mbox{\textsf{PJLauthor}}} \providecommand{\PJLdatePackage}{\mbox{\textsf{PJLdate}}} \providecommand{\PJLdraft}{\mbox{\textsf{PJLdraft}}} @@ -87,7 +86,7 @@ \title{\ProjLib{}~\,Toolkit\\[.3\baselineskip]\normalsize User Manual} \author{Jinwen XU} -\thanks{Corresponding to: \texttt{\ProjLib{}~2021/07/23}} +\thanks{Corresponding to: \texttt{\ProjLib{}~2021/07/27}} \email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}} \date{July 2021, Beijing} @@ -216,7 +215,7 @@ This part is the title and author information block. The example shows the most ... \end{code} -In addition, if the \AmS{} simulation is enabled\footnote{This is achieved by the module \PJLamssim{}. Since this module modifies some internal macros of \LaTeX{}, it may conflict with some packages or document classes, and thus it is not enabled by default.}, then you can also write in the \AmS{} fashion (the original way still works). In this case, the line that introduces \ProjLibPackage{} should be written as: +In addition, if the \AmS{} simulation is enabled, you can also write in the \AmS{} fashion (the original way still works). For this, you should add the package option \texttt{amsfashion}\footnote{Since this option modifies some internal macros of \LaTeX{}, it may conflict with some packages or document classes, and thus it is not enabled by default.}, \emph{i.e.}, the line that introduces \ProjLibPackage{} should be written as: \begin{code} \usepackage[amsfashion,palatino]{ProjLib} \end{code} @@ -265,34 +264,22 @@ Commonly used theorem-like environments have been pre-defined. Also, when refere \end{itemize} \item \texttt{nothms}, \texttt{nothmnum}, \texttt{regionalref} \begin{itemize} - \item Options from \PJLthm{}, please refer to the section on this package for details. + \item Options from the component \PJLthm{} used for setting theorem-like environments, please refer to the section on this package for details. \end{itemize} - \item \texttt{amsfashion} + \item \texttt{author} \begin{itemize} - \item Allow the user to write document in the \AmS{} fashion. Same as the option \texttt{amssim}. + \item Load the component \PJLauthor{} used to enhance the author information block. For more information about its functionality, see the section on this package. \end{itemize} - \item \texttt{author}, \texttt{amssim} + \item \texttt{amsfashion} \begin{itemize} - \item Load \PJLauthor{} or \PJLamssim{}. For more information about their functionality, see the section on the corresponding package. + \item Allow the user to write document in the \AmS{} fashion. In the mean time, the option \texttt{author} will be automatically turned on. \end{itemize} \end{itemize} In addition, there are also some options of the components that should be passed as global options of your document class, such as the language options \texttt{EN} / \texttt{english} / \texttt{English}, \texttt{FR} / \texttt{french} / \texttt{French} etc.\,of \PJLlang{}, \\and \texttt{paperstyle}, \texttt{preview} of \PJLpaper{}. For more information, please refer to the corresponding sections. \clearpage -\section{The components} - -\subsection{PJLamssim: writing in \texorpdfstring{\AmS}{AMS} fashion} - -\PJLamssim{} is used to simulate some features of the \textsf{amsart} class in a standard class, including: -\begin{itemize} - \item the macros \lstinline|\address|, \lstinline|\curraddr|, \lstinline|\email| and \lstinline|\dedicatory| (the first three are provided by \PJLauthor{}); - \item the macro \lstinline|\keywords|; - \item the macro \lstinline|\subjclass|; - \item \lstinline|\thanks| can be written outside \lstinline|\author|; - \item The \lstinline|abstract| environment can be placed before \lstinline|\maketitle|. -\end{itemize} -These modifications would only take place in standard classes. In the \AmS{} classes, \PJLamssim{} does not have any effect. +\section{The components} \subsection{PJLauthor: enhanced author block} @@ -308,6 +295,18 @@ These modifications would only take place in standard classes. In the \AmS{} cla \end{code} The mutual order of \lstinline|\address|, \lstinline|\curraddr| and \lstinline|\email| is not important. +\medskip +In addition, you can use the option \texttt{amsfashion} to enable the \AmS{} fashion. More specifically, the effect is: +\begin{itemize} + \item Provides the macros \lstinline|\dedicatory|, \lstinline|\keywords| and \lstinline|\subjclass|; + \item \lstinline|\thanks| can be written outside \lstinline|\author|; + \item The \lstinline|abstract| environment can be placed before \lstinline|\maketitle|. +\end{itemize} + +\begin{tip}[Attention] + These modifications would only take place in standard classes. In the \AmS{} classes, \PJLauthor{} does not have any effect. +\end{tip} + \subsection{PJLdate: date-time processing} \PJLdatePackage{} offers the \lstinline|\PLdate|\meta{yyyy-mm-dd} (or \lstinline|\PJLdate|\meta{yyyy-mm-dd}) macro to convert \meta{yyyy-mm-dd} into the date format of the currently selected language. For example, in current English context, \lstinline|\PLdate{2022-04-01}| would become ``\PLdate{2022-04-01}'', while in French context as ``\UseOtherLanguage{French}{\PLdate{2022-04-01}}''. @@ -427,10 +426,9 @@ In addition, \PJLmath{} also provides some math symbols that are not by default \lstinline|\injection| & \lstinline|\injection| $\rightarrow ~\injection$ & arrow symbol for injection \\ \lstinline|\surjection| & \lstinline|\surjection| $\rightarrow ~\surjection$ & arrow symbol for surjection \\ \lstinline|\bijection| & \lstinline|\bijection| $\rightarrow ~\bijection$ & arrow symbol for bijection \\ -\lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Legendre symbol \\ -& \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ \end{longtable} +\clearpage \subsection{PJLpaper: paper configuration} \PJLpaper{} is mainly used to adjust the paper color. It has the following options: diff --git a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.pdf b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.pdf Binary files differindex 40b469a9724..ad837cfa82c 100644 --- a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.pdf +++ b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.pdf diff --git a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex index 4dc50cb61d7..a0d0345b4d9 100644 --- a/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex +++ b/Master/texmf-dist/doc/latex/projlib/ProjLib-doc-fr.tex @@ -70,7 +70,6 @@ %%================================ \providecommand{\ProjLibPackage}{\mbox{\textsf{ProjLib}}} \providecommand{\PJLtoolkit}{\mbox{\textsf{PJLtoolkit}}} -\providecommand{\PJLamssim}{\mbox{\textsf{PJLamssim}}} \providecommand{\PJLauthor}{\mbox{\textsf{PJLauthor}}} \providecommand{\PJLdatePackage}{\mbox{\textsf{PJLdate}}} \providecommand{\PJLdraft}{\mbox{\textsf{PJLdraft}}} @@ -87,7 +86,7 @@ \title{La boîte à outils~\,\ProjLib{}\\[.3\baselineskip]\normalsize Manuel d'utilisation} \author{Jinwen XU} -\thanks{Correspondant à : \texttt{\ProjLib{}~2021/07/23}} +\thanks{Correspondant à : \texttt{\ProjLib{}~2021/07/27}} \email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}} \date{juillet 2021, à Pékin} @@ -216,7 +215,7 @@ Cette partie est le titre et le bloc d'informations de l'auteur. L'exemple montr ... \end{code} -De plus, si la simulation d'\AmS{} est activée\footnote{Ceci est réalisé par le module \PJLamssim{}. Étant donné que ce module modifie certaines macros internes de \LaTeX{}, il peut provoquer des conflits avec certains packages ou classes de documents, et donc il n'est pas activé par défaut.}, alors vous pouvez également écrire à la manière \AmS{} (la manière originale fonctionne encore). Dans ce cas, la ligne qui introduit \ProjLibPackage{} doit être écrite comme : +De plus, si la simulation d'\AmS{} est activée, alors vous pouvez également écrire à la manière \AmS{} (la manière originale fonctionne encore). Pour cela, vous devez ajouter l'option de package \texttt{amsfashion}\footnote{Étant donné que cette option modifie certaines macros internes de \LaTeX{}, elle peut entrer en conflit avec certains packages ou classes de documents, et n'est donc pas activée par défaut.}, c'est-à-dire que la ligne qui introduit \ProjLibPackage{} doit être écrite comme : \begin{code} \usepackage[amsfashion,palatino]{ProjLib} \end{code} @@ -265,34 +264,22 @@ Les environnements de type théorème couramment utilisés ont été prédéfini \end{itemize} \item \texttt{nothms}, \texttt{nothmnum}, \texttt{regionalref} \begin{itemize} - \item Options de \PJLthm{}, veuillez vous référer à la section sur ce package pour plus de détails. + \item Options du composant \PJLthm{} utilisé pour définir des environnements de type théorème, veuillez vous référer à la section sur ce package pour plus de détails. \end{itemize} - \item \texttt{amsfashion} + \item \texttt{author} \begin{itemize} - \item Permet à l'utilisateur d'écrire à la manière \AmS{}. Identique à l'option \texttt{amssim}. + \item Utilisez le composant \PJLauthor{} pour enrichir le bloc d'informations sur l'auteur. Pour plus d'informations sur ses fonctionnalités, consultez la section sur ce package. \end{itemize} - \item \texttt{author}, \texttt{amssim} + \item \texttt{amsfashion} \begin{itemize} - \item Utilisez \PJLauthor{} ou \PJLamssim{}. Pour plus d'informations sur leurs fonctionnalités, consultez la section sur les packages correspondants. + \item Permet à l'utilisateur d'écrire à la manière \AmS{}. En attendant, l'option \texttt{author} sera automatiquement activée. \end{itemize} \end{itemize} De plus, il existe également certaines options des composants qui doivent être passées en tant qu'options globales de votre classe de document, telles que les options de langue de \PJLlang{} comme \texttt{EN} / \texttt{english} / \texttt{English}, \texttt{FR} / \texttt{french} / \texttt{French} etc., et les options de papier de \PJLpaper{} comme \texttt{paperstyle} et \texttt{preview}. Pour plus d'informations, veuillez vous référer aux sections correspondantes. \clearpage -\section{Les composants} -\subsection{PJLamssim : écrire de la manière \texorpdfstring{\AmS}{AMS}} - -\PJLamssim{} est utilisé pour simuler certaines fonctionnalités de la classe \textsf{amsart} dans une classe standard, notamment : -\begin{itemize} - \item les macros \lstinline|\address|, \lstinline|\curraddr|, \lstinline|\email| et \lstinline|\dedicatory| (les trois premiers sont fournis par \PJLauthor{}); - \item la macro \lstinline|\keywords|; - \item la macro \lstinline|\subjclass|; - \item \lstinline|\thanks| peut être écrit en dehors de \lstinline|\author|; - \item La environnement \lstinline|abstract| peut être placé avant \lstinline|\maketitle|. -\end{itemize} - -Ces modifications n'auraient lieu que dans les classes standard. Dans les classes \AmS{}, \PJLamssim{} n'a aucun effet. +\section{Les composants} \subsection{PJLauthor : bloc auteur amélioré} @@ -308,6 +295,18 @@ Ces modifications n'auraient lieu que dans les classes standard. Dans les classe \end{code} L'ordre mutuel de \lstinline|\address|, \lstinline|\curraddr| et \lstinline|\email| n'est pas important. +\medskip +De plus, vous pouvez utiliser l'option \texttt{amsfashion} pour écrire à la manière \AmS{}. Plus précisément, l'effet est : +\begin{itemize} + \item Fournit les macros \lstinline|\dedicatory|, \lstinline|\keywords| et \lstinline|\subjclass|; + \item \lstinline|\thanks| peut être écrit en dehors de la macro \lstinline|\author|; + \item La environnement \lstinline|abstract| peut être placé avant \lstinline|\maketitle|. +\end{itemize} + +\begin{tip}[Attention] + Ces modifications n'auraient lieu que dans les classes standard. Dans les classes \AmS{}, \PJLauthor{} n'a aucun effet. +\end{tip} + \subsection{PJLdate : traitement de date-heure} \PJLdatePackage{} propose la macro \lstinline|\PLdate|\meta{yyyy-mm-dd} (ou \lstinline|\PJLdate|\meta{yyyy-mm-dd}) pour convertir \meta{yyyy-mm-dd} dans le format de date de la langue actuellement sélectionnée. Par exemple, dans le contexte français actuel, \lstinline|\PLdate{2022-04-01}| deviendrait « \PLdate{2022-04-01} », tandis que dans le contexte anglais « \UseOtherLanguage{English}{\PLdate{2022-04-01}} ». @@ -426,10 +425,9 @@ De plus, \PJLmath{} fournit également des symboles mathématiques qui ne sont p \lstinline|\injection| & \lstinline|\injection| $\rightarrow ~\injection$ & symbole de flèche pour l'injection \\ \lstinline|\surjection| & \lstinline|\surjection| $\rightarrow ~\surjection$ & symbole de flèche pour la surjection \\ \lstinline|\bijection| & \lstinline|\bijection| $\rightarrow ~\bijection$ & symbole de flèche pour la bijection \\ -\lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Symbole Legendre \\ -& \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ \end{longtable} +\clearpage \subsection{PJLpaper : configuration papier} \PJLpaper{} est principalement utilisé pour ajuster la couleur du papier. Il a les options suivantes : diff --git a/Master/texmf-dist/doc/latex/projlib/README.md b/Master/texmf-dist/doc/latex/projlib/README.md index 35fe1215242..28d8e8de040 100644 --- a/Master/texmf-dist/doc/latex/projlib/README.md +++ b/Master/texmf-dist/doc/latex/projlib/README.md @@ -2,11 +2,12 @@ # ProjLib Toolkit -> **ProjLib** can be interpreted as "***Proj**ect **Lib**rary*" (in English), or "***Proj**et **Lib**re*" (in French). Personally, I prefer the French interpretation. +> **ProjLib** can be interpreted as "***Proj**ect **Lib**rary*" (in English), or "***Proj**et **Lib**re*" (in French). +> Personally, I prefer later one. ## Introduction -`ProjLib` is a collection of tools that help you write LaTeX document. With package `ProjLib` loaded (note that it is case-sensitive), you no longer need to set up the theorem-like environments nor to manually configure the appropriate multilingual settings. In addition, a series of auxiliary functionalities are introduced. +`ProjLib` is a collection of tools that help you write LaTeX document. With the package `ProjLib` loaded (note that it is case-sensitive), you no longer need to set up the theorem-like environments nor to manually configure the appropriate multilingual settings. In addition, a series of auxiliary functionalities are introduced. To get started, simply put this line in your preamble: ```latex @@ -16,11 +17,13 @@ To get started, simply put this line in your preamble: ## The components The components include: -1. `PJLamssim.sty` - - Simulate some features of `amsart` in the standard classes 1. `PJLauthor.sty` - Enhanced author information block - Offers `\address`, `\curraddr` and `\email` + - Write in the AMS fashion (with option `amsfashion`): + - Support `\dedicatory`, `\keywords` and `\subjclass` + - `\thanks` can be written outside `\author`; + - The `abstract` environment can be placed before `\maketitle`. 1. `PJLdate.sty` - Offers a macro `\PLdate` (or `\PJLdate`) to convert `yyyy-mm-dd` to normal datetime format, with multi-language support 1. `PJLdraft.sty` @@ -39,11 +42,11 @@ The components include: - Theorem setup and configuration - Offers a macro `\CreateTheorem` for creating theorem-like environments with multi-language support - Preset environments include: `assumption`, `axiom`, `conjecture`, `convention`, `corollary`, `definition`, `definition-proposition`, `definition-theorem`, `example`, `exercise`, `fact`, `hypothesis`, `lemma`, `notation`, `observation`, `problem`, `property`, `proposition`, `question`, `remark`, `theorem`, and the corresponding unnumbered version with an asterisk `*` in the name. -1. `PJLtoolkit.sty` (this is the internal name of the `ProjLib` package) +<!-- 1. `PJLtoolkit.sty` (this is the internal name of the `ProjLib` package) - A collective interface of ProjLib Toolkit, loading all the packages above - - Provide some pre-defined font configuration + - Provide some pre-defined font configuration --> -> Since `PJLthm.sty` (and thus `PJLtoolkit.sty`) uses `cleveref`, it should be loaded after `varioref` and `hyperref`. +> Since `PJLthm.sty` (and thus `ProjLib.sty`) uses `cleveref`, it should be loaded after `varioref` and `hyperref`. ## How to get these files You can get the `.sty` files mentioned above simply by compiling `ProjLib.ins`: @@ -51,6 +54,12 @@ You can get the `.sty` files mentioned above simply by compiling `ProjLib.ins`: latex ProjLib.ins ``` +## How to get the source of the documentation +You can get the `.tex` source files of the documentation by compiling `ProjLib-doc.ins`: +``` +latex ProjLib-doc.ins +``` + ## An example ```latex \documentclass{amsart} @@ -60,7 +69,7 @@ latex ProjLib.ins %% You can also comment the above lines and try the following (require xelatex or lualatex): % \documentclass[a4paper,allowbf]{lebhart} -% \usepackage{ProjLib} +% \usepackage[amsfashion]{ProjLib} %% Using \UseLanguage to select language, by default "English" is selected \UseLanguage{French} % Use French from here diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx b/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx index 6da315bd794..aafece21f65 100644 --- a/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx +++ b/Master/texmf-dist/source/latex/projlib/ProjLib-doc.dtx @@ -91,7 +91,6 @@ %%================================ \providecommand{\ProjLibPackage}{\mbox{\textsf{ProjLib}}} \providecommand{\PJLtoolkit}{\mbox{\textsf{PJLtoolkit}}} -\providecommand{\PJLamssim}{\mbox{\textsf{PJLamssim}}} \providecommand{\PJLauthor}{\mbox{\textsf{PJLauthor}}} \providecommand{\PJLdatePackage}{\mbox{\textsf{PJLdate}}} \providecommand{\PJLdraft}{\mbox{\textsf{PJLdraft}}} @@ -109,7 +108,7 @@ %<*ProjLib-doc-cn> \title{\ProjLib{} 工具集\\[.3\baselineskip]\normalsize 使用指南} \author{许锦文} -\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/23}} +\thanks{对应版本.~~\texttt{\ProjLib{}~2021/07/27}} \email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}} \date{2021年7月,北京} %</ProjLib-doc-cn> @@ -117,7 +116,7 @@ %<*ProjLib-doc-en> \title{\ProjLib{}~\,Toolkit\\[.3\baselineskip]\normalsize User Manual} \author{Jinwen XU} -\thanks{Corresponding to: \texttt{\ProjLib{}~2021/07/23}} +\thanks{Corresponding to: \texttt{\ProjLib{}~2021/07/27}} \email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}} \date{July 2021, Beijing} %</ProjLib-doc-en> @@ -125,7 +124,7 @@ %<*ProjLib-doc-fr> \title{La boîte à outils~\,\ProjLib{}\\[.3\baselineskip]\normalsize Manuel d'utilisation} \author{Jinwen XU} -\thanks{Correspondant à : \texttt{\ProjLib{}~2021/07/23}} +\thanks{Correspondant à : \texttt{\ProjLib{}~2021/07/27}} \email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}} \date{juillet 2021, à Pékin} %</ProjLib-doc-fr> @@ -429,7 +428,7 @@ Pour une description détaillée de cette commande et d'autres commandes associ ... \end{code} -另外,如果开启 \AmS{} 风格\footnote{这是由 \PJLamssim{} 模块实现的。由于这一模块修改了\LaTeX{} 的一些内部指令,有可能与一些宏包或文档类发生冲突,因此没有默认启用。},那么文章中还可以采用 \AmS{} 文档类的写法 (此时原始的写法也是成立的)。为此,引入 \ProjLibPackage{} 时应该加入 \texttt{amsfashion} 选项: +另外,如果开启 \AmS{} 风格,那么文章中还可以采用 \AmS{} 文档类的写法 (此时原始的写法也是成立的)。为此,引入 \ProjLibPackage{} 时应该加入 \texttt{amsfashion} 选项\footnote{由于这一选项会修改\LaTeX{} 的一些内部指令,有可能与一些宏包或文档类发生冲突,因此没有默认启用。}: \begin{code} \usepackage[amsfashion,palatino]{ProjLib} \end{code} @@ -468,7 +467,7 @@ This part is the title and author information block. The example shows the most ... \end{code} -In addition, if the \AmS{} simulation is enabled\footnote{This is achieved by the module \PJLamssim{}. Since this module modifies some internal macros of \LaTeX{}, it may conflict with some packages or document classes, and thus it is not enabled by default.}, then you can also write in the \AmS{} fashion (the original way still works). In this case, the line that introduces \ProjLibPackage{} should be written as: +In addition, if the \AmS{} simulation is enabled, you can also write in the \AmS{} fashion (the original way still works). For this, you should add the package option \texttt{amsfashion}\footnote{Since this option modifies some internal macros of \LaTeX{}, it may conflict with some packages or document classes, and thus it is not enabled by default.}, \emph{i.e.}, the line that introduces \ProjLibPackage{} should be written as: \begin{code} \usepackage[amsfashion,palatino]{ProjLib} \end{code} @@ -507,7 +506,7 @@ Cette partie est le titre et le bloc d'informations de l'auteur. L'exemple montr ... \end{code} -De plus, si la simulation d'\AmS{} est activée\footnote{Ceci est réalisé par le module \PJLamssim{}. Étant donné que ce module modifie certaines macros internes de \LaTeX{}, il peut provoquer des conflits avec certains packages ou classes de documents, et donc il n'est pas activé par défaut.}, alors vous pouvez également écrire à la manière \AmS{} (la manière originale fonctionne encore). Dans ce cas, la ligne qui introduit \ProjLibPackage{} doit être écrite comme : +De plus, si la simulation d'\AmS{} est activée, alors vous pouvez également écrire à la manière \AmS{} (la manière originale fonctionne encore). Pour cela, vous devez ajouter l'option de package \texttt{amsfashion}\footnote{Étant donné que cette option modifie certaines macros internes de \LaTeX{}, elle peut entrer en conflit avec certains packages ou classes de documents, et n'est donc pas activée par défaut.}, c'est-à-dire que la ligne qui introduit \ProjLibPackage{} doit être écrite comme : \begin{code} \usepackage[amsfashion,palatino]{ProjLib} \end{code} @@ -602,15 +601,15 @@ Les environnements de type théorème couramment utilisés ont été prédéfini \end{itemize} \item \texttt{nothms}、\texttt{nothmnum}、\texttt{regionalref} \begin{itemize} - \item 来自 \PJLthm{} 的选项,详细信息请参阅有关这一宏包的小节。 + \item 来自用于设置定理类环境的组件 \PJLthm{} 的选项,详细信息请参阅有关这一宏包的小节。 \end{itemize} - \item \texttt{amsfashion} + \item \texttt{author} \begin{itemize} - \item 允许 \AmS{} 文档类的写法。与 \texttt{amssim} 选项相同。 + \item 加载用于增强作者信息块的组件 \PJLauthor{}。关于其详细功能,请参阅有关该宏包的小节。 \end{itemize} - \item \texttt{author}、\texttt{amssim} + \item \texttt{amsfashion} \begin{itemize} - \item 加载 \PJLauthor{} 或 \PJLamssim{}。关于其详细功能,请参阅有关相关宏包的小节。 + \item 允许 \AmS{} 文档类的写法。此时 \texttt{author} 选项会被自动开启。 \end{itemize} \end{itemize} 另外,还有一些组件的参数可以作为文档类的全局参数传递,例如 \texttt{EN} / \texttt{english} / \texttt{English}、\texttt{CN} / \texttt{chinese} / \texttt{Chinese} 等语言选项 (来自 \PJLlang{}),\texttt{paperstyle} 和 \texttt{preview} 等纸张选项 (来自 \PJLpaper{})。详细信息可以参阅对应的小节。 @@ -632,15 +631,15 @@ Les environnements de type théorème couramment utilisés ont été prédéfini \end{itemize} \item \texttt{nothms}, \texttt{nothmnum}, \texttt{regionalref} \begin{itemize} - \item Options from \PJLthm{}, please refer to the section on this package for details. + \item Options from the component \PJLthm{} used for setting theorem-like environments, please refer to the section on this package for details. \end{itemize} - \item \texttt{amsfashion} + \item \texttt{author} \begin{itemize} - \item Allow the user to write document in the \AmS{} fashion. Same as the option \texttt{amssim}. + \item Load the component \PJLauthor{} used to enhance the author information block. For more information about its functionality, see the section on this package. \end{itemize} - \item \texttt{author}, \texttt{amssim} + \item \texttt{amsfashion} \begin{itemize} - \item Load \PJLauthor{} or \PJLamssim{}. For more information about their functionality, see the section on the corresponding package. + \item Allow the user to write document in the \AmS{} fashion. In the mean time, the option \texttt{author} will be automatically turned on. \end{itemize} \end{itemize} In addition, there are also some options of the components that should be passed as global options of your document class, such as the language options \texttt{EN} / \texttt{english} / \texttt{English}, \texttt{FR} / \texttt{french} / \texttt{French} etc.\,of \PJLlang{}, \\and \texttt{paperstyle}, \texttt{preview} of \PJLpaper{}. For more information, please refer to the corresponding sections. @@ -662,70 +661,32 @@ In addition, there are also some options of the components that should be passed \end{itemize} \item \texttt{nothms}, \texttt{nothmnum}, \texttt{regionalref} \begin{itemize} - \item Options de \PJLthm{}, veuillez vous référer à la section sur ce package pour plus de détails. + \item Options du composant \PJLthm{} utilisé pour définir des environnements de type théorème, veuillez vous référer à la section sur ce package pour plus de détails. \end{itemize} - \item \texttt{amsfashion} + \item \texttt{author} \begin{itemize} - \item Permet à l'utilisateur d'écrire à la manière \AmS{}. Identique à l'option \texttt{amssim}. + \item Utilisez le composant \PJLauthor{} pour enrichir le bloc d'informations sur l'auteur. Pour plus d'informations sur ses fonctionnalités, consultez la section sur ce package. \end{itemize} - \item \texttt{author}, \texttt{amssim} + \item \texttt{amsfashion} \begin{itemize} - \item Utilisez \PJLauthor{} ou \PJLamssim{}. Pour plus d'informations sur leurs fonctionnalités, consultez la section sur les packages correspondants. + \item Permet à l'utilisateur d'écrire à la manière \AmS{}. En attendant, l'option \texttt{author} sera automatiquement activée. \end{itemize} \end{itemize} De plus, il existe également certaines options des composants qui doivent être passées en tant qu'options globales de votre classe de document, telles que les options de langue de \PJLlang{} comme \texttt{EN} / \texttt{english} / \texttt{English}, \texttt{FR} / \texttt{french} / \texttt{French} etc., et les options de papier de \PJLpaper{} comme \texttt{paperstyle} et \texttt{preview}. Pour plus d'informations, veuillez vous référer aux sections correspondantes. %</ProjLib-doc-fr> \clearpage + %<*ProjLib-doc-cn> \section{具体组件} - -\subsection{PJLamssim:以 \texorpdfstring{\AmS}{AMS} 方式写作} - -\PJLamssim{} 用于模拟 \textsf{amsart} 文档类的部分功能,包括: -\begin{itemize} - \item \lstinline|\address|、\lstinline|\curraddr|、\lstinline|\email|、\lstinline|\dedicatory| 命令 (前三者由 \PJLauthor{} 提供) - \item \lstinline|\keywords| 命令 - \item \lstinline|\subjclass| 命令 - \item \lstinline|\thanks| 可以写在 \lstinline|\author| 之外 - \item \lstinline|abstract| 环境可以放在 \lstinline|\maketitle| 的前面 -\end{itemize} - -这些功能只在标准文档类中启用。在 \AmS{} 文档类中,\PJLamssim{} 不会起到任何效果。 %</ProjLib-doc-cn> % %<*ProjLib-doc-en> \section{The components} - -\subsection{PJLamssim: writing in \texorpdfstring{\AmS}{AMS} fashion} - -\PJLamssim{} is used to simulate some features of the \textsf{amsart} class in a standard class, including: -\begin{itemize} - \item the macros \lstinline|\address|, \lstinline|\curraddr|, \lstinline|\email| and \lstinline|\dedicatory| (the first three are provided by \PJLauthor{}); - \item the macro \lstinline|\keywords|; - \item the macro \lstinline|\subjclass|; - \item \lstinline|\thanks| can be written outside \lstinline|\author|; - \item The \lstinline|abstract| environment can be placed before \lstinline|\maketitle|. -\end{itemize} - -These modifications would only take place in standard classes. In the \AmS{} classes, \PJLamssim{} does not have any effect. %</ProjLib-doc-en> % %<*ProjLib-doc-fr> \section{Les composants} - -\subsection{PJLamssim : écrire de la manière \texorpdfstring{\AmS}{AMS}} - -\PJLamssim{} est utilisé pour simuler certaines fonctionnalités de la classe \textsf{amsart} dans une classe standard, notamment : -\begin{itemize} - \item les macros \lstinline|\address|, \lstinline|\curraddr|, \lstinline|\email| et \lstinline|\dedicatory| (les trois premiers sont fournis par \PJLauthor{}); - \item la macro \lstinline|\keywords|; - \item la macro \lstinline|\subjclass|; - \item \lstinline|\thanks| peut être écrit en dehors de \lstinline|\author|; - \item La environnement \lstinline|abstract| peut être placé avant \lstinline|\maketitle|. -\end{itemize} - -Ces modifications n'auraient lieu que dans les classes standard. Dans les classes \AmS{}, \PJLamssim{} n'a aucun effet. %</ProjLib-doc-fr> %<*ProjLib-doc-cn> @@ -742,6 +703,18 @@ Ces modifications n'auraient lieu que dans les classes standard. Dans les classe ... \end{code} 其中 \lstinline|\address|、\lstinline|\curraddr|、\lstinline|\email| 的相互顺序是不重要的。 + +\medskip +另外,你可以通过选项 \texttt{amsfashion} 以使用 \AmS{} 方式写作。具体来说,效果为: +\begin{itemize} + \item 提供 \lstinline|\dedicatory|、\lstinline|\keywords| 及 \lstinline|\subjclass| 命令 + \item \lstinline|\thanks| 可以写在 \lstinline|\author| 之外 + \item \lstinline|abstract| 环境可以放在 \lstinline|\maketitle| 的前面 +\end{itemize} + +\begin{tip}[注意] + 这些功能只在标准文档类中启用。在 \AmS{} 文档类中,\PJLauthor{} 不会起到任何效果。 +\end{tip} %</ProjLib-doc-cn> % %<*ProjLib-doc-en> @@ -758,6 +731,18 @@ Ces modifications n'auraient lieu que dans les classes standard. Dans les classe ... \end{code} The mutual order of \lstinline|\address|, \lstinline|\curraddr| and \lstinline|\email| is not important. + +\medskip +In addition, you can use the option \texttt{amsfashion} to enable the \AmS{} fashion. More specifically, the effect is: +\begin{itemize} + \item Provides the macros \lstinline|\dedicatory|, \lstinline|\keywords| and \lstinline|\subjclass|; + \item \lstinline|\thanks| can be written outside \lstinline|\author|; + \item The \lstinline|abstract| environment can be placed before \lstinline|\maketitle|. +\end{itemize} + +\begin{tip}[Attention] + These modifications would only take place in standard classes. In the \AmS{} classes, \PJLauthor{} does not have any effect. +\end{tip} %</ProjLib-doc-en> % %<*ProjLib-doc-fr> @@ -774,6 +759,18 @@ The mutual order of \lstinline|\address|, \lstinline|\curraddr| and \lstinline|\ ... \end{code} L'ordre mutuel de \lstinline|\address|, \lstinline|\curraddr| et \lstinline|\email| n'est pas important. + +\medskip +De plus, vous pouvez utiliser l'option \texttt{amsfashion} pour écrire à la manière \AmS{}. Plus précisément, l'effet est : +\begin{itemize} + \item Fournit les macros \lstinline|\dedicatory|, \lstinline|\keywords| et \lstinline|\subjclass|; + \item \lstinline|\thanks| peut être écrit en dehors de la macro \lstinline|\author|; + \item La environnement \lstinline|abstract| peut être placé avant \lstinline|\maketitle|. +\end{itemize} + +\begin{tip}[Attention] + Ces modifications n'auraient lieu que dans les classes standard. Dans les classes \AmS{}, \PJLauthor{} n'a aucun effet. +\end{tip} %</ProjLib-doc-fr> %<*ProjLib-doc-cn> @@ -1079,7 +1076,7 @@ Par exemple, \lstinline|\AddLanguageSetting(German){\color{orange}}| peut rendre \PJLmath{} 提供下列捷径: \begin{enumerate}[label=\roman*)] - \item \lstinline|\mathfrak{|$\cdot$\lstinline|}| $\longrightarrow$ \lstinline|\mf|$\cdot$ 或 \lstinline|\frak|$\cdot$。例如,\lstinline|\mfA| (或 \lstinline|\mf{A}|) 与 \lstinline|\mathfrak{A}| 效果相同. 这对大写、小写字母都有效: + \item \lstinline|\mathfrak{|$\cdot$\lstinline|}| $\longrightarrow$ \lstinline|\mf|$\cdot$ 或 \lstinline|\frak|$\cdot$。例如,\lstinline|\mfA| (或 \lstinline|\mf{A}|) 与 \lstinline|\mathfrak{A}| 效果相同. 这对大写、小写字母都有效:\vspace{-\baselineskip} \begin{align*} \mfa\mfb\mfc\mfd\mfe\mff\mfg\mfh\mfi\mfj\mfk\mfl\mfm\mfn&\mfo\mfp\mfq\mfr\mfs\mft\mfu\mfv\mfw\mfx\mfy\mfz\\ \mfA\mfB\mfC\mfD\mfE\mfF\mfG\mfH\mfI\mfJ\mfK\mfL\mfM\mfN&\mfO\mfP\mfQ\mfR\mfS\mfT\mfU\mfV\mfW\mfX\mfY\mfZ @@ -1110,8 +1107,8 @@ Par exemple, \lstinline|\AddLanguageSetting(German){\color{orange}}| peut rendre \lstinline|\injection| & \lstinline|\injection| $\rightarrow ~\injection$ & 表示单射的箭头符号 \\ \lstinline|\surjection| & \lstinline|\surjection| $\rightarrow ~\surjection$ & 表示满射的箭头符号 \\ \lstinline|\bijection| & \lstinline|\bijection| $\rightarrow ~\bijection$ & 表示双射的箭头符号 \\ -\lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Legendre 符号 \\ -& \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ +% \lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Legendre 符号 \\ +% & \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ % \lstinline|\tlegendre| & \lstinline|\tlegendre{a}{p}| $\rightarrow \tlegendre{a}{p}$ & Legendre 符号 (text style) \\ % \lstinline|\dlegendre| & \lstinline|\dlegendre{a}{p}| $\rightarrow \dlegendre{a}{p}$ & Legendre 符号 (display style) \\ \end{longtable} @@ -1154,8 +1151,8 @@ In addition, \PJLmath{} also provides some math symbols that are not by default \lstinline|\injection| & \lstinline|\injection| $\rightarrow ~\injection$ & arrow symbol for injection \\ \lstinline|\surjection| & \lstinline|\surjection| $\rightarrow ~\surjection$ & arrow symbol for surjection \\ \lstinline|\bijection| & \lstinline|\bijection| $\rightarrow ~\bijection$ & arrow symbol for bijection \\ -\lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Legendre symbol \\ -& \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ +% \lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Legendre symbol \\ +% & \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ % \lstinline|\tlegendre| & \lstinline|\tlegendre{a}{p}| $\rightarrow \tlegendre{a}{p}$ & Legendre symbol (text style) \\ % \lstinline|\dlegendre| & \lstinline|\dlegendre{a}{p}| $\rightarrow \dlegendre{a}{p}$ & Legendre symbol (display style) \\ \end{longtable} @@ -1199,13 +1196,14 @@ De plus, \PJLmath{} fournit également des symboles mathématiques qui ne sont p \lstinline|\injection| & \lstinline|\injection| $\rightarrow ~\injection$ & symbole de flèche pour l'injection \\ \lstinline|\surjection| & \lstinline|\surjection| $\rightarrow ~\surjection$ & symbole de flèche pour la surjection \\ \lstinline|\bijection| & \lstinline|\bijection| $\rightarrow ~\bijection$ & symbole de flèche pour la bijection \\ -\lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Symbole Legendre \\ -& \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ +% \lstinline|\legendre| & \lstinline|\legendre{a}{p}| $\rightarrow \legendre{a}{p}$ & Symbole Legendre \\ +% & \lstinline|\legendre[z]{a}{p}| $\rightarrow \legendre[z]{a}{p}$ & \\ % \lstinline|\tlegendre| & \lstinline|\tlegendre{a}{p}| $\rightarrow \tlegendre{a}{p}$ & Symbole Legendre (text-style) \\ % \lstinline|\dlegendre| & \lstinline|\dlegendre{a}{p}| $\rightarrow \dlegendre{a}{p}$ & Symbole Legendre (display-style) \\ \end{longtable} %</ProjLib-doc-fr> +\clearpage %<*ProjLib-doc-cn> \subsection{PJLpaper:纸张设置} diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx b/Master/texmf-dist/source/latex/projlib/ProjLib.dtx index 634c1961561..59be20a95ba 100644 --- a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx +++ b/Master/texmf-dist/source/latex/projlib/ProjLib.dtx @@ -18,72 +18,172 @@ % %<*ProjLib> \ProvidesPackage{ProjLib} - [2021/07/23 The collective interface of ProjLib toolkit] + [2021/07/27 The collective interface of ProjLib toolkit] %</ProjLib> % -%<*PJLamssim> -\ProvidesPackage{PJLamssim} - [2021/07/23 Simulate some features of amsart] -%</PJLamssim> -% %<*PJLauthor> \ProvidesPackage{PJLauthor} - [2021/07/23 Enhanced author information block] + [2021/07/27 Enhanced author information block] %</PJLauthor> % %<*PJLdate> \ProvidesPackage{PJLdate} - [2021/07/23 Convert yyyy-mm-dd to normal datetime format] + [2021/07/27 Convert yyyy-mm-dd to normal datetime format] %</PJLdate> % %<*PJLdraft> \ProvidesPackage{PJLdraft} - [2021/07/23 Some useful macros for the draft stage] + [2021/07/27 Some useful macros for the draft stage] %</PJLdraft> % %<*PJLlang> \ProvidesPackage{PJLlang} - [2021/07/23 Multi-language configuration] + [2021/07/27 Multi-language configuration] %</PJLlang> % %<*PJLlogo> \ProvidesPackage{PJLlogo} - [2021/07/23 The ProjLib logo] + [2021/07/27 The ProjLib logo] %</PJLlogo> % %<*PJLmath> \ProvidesPackage{PJLmath} - [2021/07/23 Useful math macros and shortcuts] + [2021/07/27 Useful math macros and shortcuts] %</PJLmath> % %<*PJLpaper> \ProvidesPackage{PJLpaper} - [2021/07/23 Paper style configuration] + [2021/07/27 Paper style configuration] %</PJLpaper> % %<*PJLthm> \ProvidesPackage{PJLthm} - [2021/07/23 Theorem setup and configuration] + [2021/07/27 Theorem setup and configuration] %</PJLthm> % -%<*PJLtoolkit> -\ProvidesPackage{PJLtoolkit} - [2021/07/23 Collective interface of ProjLib Toolkit] -%</PJLtoolkit> -% %# 下面两行引入宏包的代码是所有文件共用的。 %# The following two lines are common to all files. \RequirePackage{kvoptions} \RequirePackage{etoolbox} % -%<*PJLamssim> +%<*PJLauthor> %# 在 AMS 文档类中不执行任何操作 %# Do nothing if AMS class detected \ifdefined\subjclass\endinput\fi -%# 使用 PJLauthor 的作者块功能 -%# Use `PJLauthor`'s author block function -\RequirePackage{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 + +%%================================ +%% 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 +\if@PJLauthor@amsfashion + +%# 使用 PJLlang 以支持自动语言转换 +%# Use `PJLlang` to support automatic language conversion +\RequirePackage{PJLlang} \RequirePackage{calc} %# 设定带条件的加粗 @@ -257,105 +357,8 @@ \textup{2010} Mathematics Subject Classification} \@namedef{subjclassname@2020}{% \textup{2020} Mathematics Subject Classification} -%</PJLamssim> -% -%<*PJLauthor> -%# 在 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} +\fi %</PJLauthor> % %<*PJLdate> @@ -2121,18 +2124,17 @@ } %</PJLthm> % -%<*ProjLib,PJLtoolkit> +%<*ProjLib> %# 这段代码定义了宏包中的选项。 %# This code defines the options in the package. \SetupKeyvalOptions{ - family = @PJLtoolkit, - prefix = @PJLtoolkit@, + family = @ProjLib, + prefix = @ProjLib@, } \DeclareBoolOption[false]{draft} \DeclareBoolOption[false]{fast} \DeclareBoolOption[false]{author} \DeclareBoolOption[false]{amsfashion} -\DeclareBoolOption[false]{amssim} \DeclareBoolOption[false]{nothms} \DeclareBoolOption[false]{nothmnum} \DeclareBoolOption[false]{regionalref} @@ -2147,38 +2149,36 @@ %# 下面的代码设定了选项之间的关系 %# The following code sets the relationship between options -\if@PJLtoolkit@draft - \@PJLtoolkit@fasttrue -\fi -\if@PJLtoolkit@amsfashion - \@PJLtoolkit@amssimtrue +\if@ProjLib@draft + \@ProjLib@fasttrue \fi %# 向组件传递一些参数 %# Pass some options to the components -\if@PJLtoolkit@fast +\if@ProjLib@fast \PassOptionsToPackage{fast}{PJLdate} \PassOptionsToPackage{fast}{PJLdraft} \PassOptionsToPackage{fast}{PJLlogo} \PassOptionsToPackage{fast}{PJLthm} \fi -\if@PJLtoolkit@nothms +\if@ProjLib@nothms \PassOptionsToPackage{nothms}{PJLthm} \fi -\if@PJLtoolkit@nothmnum +\if@ProjLib@nothmnum \PassOptionsToPackage{nothmnum}{PJLthm} \fi -\if@PJLtoolkit@regionalref +\if@ProjLib@regionalref \PassOptionsToPackage{regionalref}{PJLthm} \fi %# 加载不默认载入的组件 %# Load those components not by default loaded -\if@PJLtoolkit@author +\if@ProjLib@amsfashion + \PassOptionsToPackage{amsfashion}{PJLauthor} \RequirePackage{PJLauthor} \fi -\if@PJLtoolkit@amssim - \RequirePackage{PJLamssim} +\if@ProjLib@author + \RequirePackage{PJLauthor} \fi %# 加载组件 %# Load the components @@ -2196,7 +2196,7 @@ % A message can then be shown as: Font "(font name)" has been set \ifdefined\PJL@font@alreadyset\else -\if@PJLtoolkit@palatino +\if@ProjLib@palatino % \RequirePackage{amssymb} \RequirePackage{mathpazo} \PassOptionsToPackage{defaultsups}{newpxtext} @@ -2204,22 +2204,22 @@ % \RequirePackage{newpxmath} \let\openbox\relax \PJLsetlinespacing{\setstretch{1.07}} - \if@PJLtoolkit@useosf\useosf\fi + \if@ProjLib@useosf\useosf\fi \fi -\if@PJLtoolkit@times +\if@ProjLib@times % \RequirePackage{amssymb} \PassOptionsToPackage{defaultsups}{newtxtext} \RequirePackage{newtxtext} \RequirePackage{newtxmath} \let\openbox\relax \PJLsetlinespacing{\setstretch{1.00}} - \if@PJLtoolkit@useosf\useosf\fi + \if@ProjLib@useosf\useosf\fi \fi -\if@PJLtoolkit@garamond +\if@ProjLib@garamond % \RequirePackage{amssymb} - \if@PJLtoolkit@useosf\else + \if@ProjLib@useosf\else \PassOptionsToPackage{lining}{ebgaramond} \fi \RequirePackage{ebgaramond-maths} @@ -2228,12 +2228,12 @@ \PJLsetlinespacing{\setstretch{1.00}} \fi -\if@PJLtoolkit@biolinum +\if@ProjLib@biolinum % \RequirePackage{amssymb} % \RequirePackage{mathpazo} % \RequirePackage[sansmath]{libertinust1math} \ifPDFTeX - \if@PJLtoolkit@useosf + \if@ProjLib@useosf \PassOptionsToPackage{osf}{biolinum} \fi \RequirePackage{biolinum} @@ -2245,7 +2245,7 @@ BoldFont = LinBiolinum_RB.otf , ItalicFont = LinBiolinum_RI.otf , BoldItalicFont = LinBiolinum_RBO.otf, - \if@PJLtoolkit@useosf Numbers = OldStyle\fi ] + \if@ProjLib@useosf Numbers = OldStyle\fi ] \fi \PJLsetlinespacing{\setstretch{1.05}} \RequirePackage[italic,defaultmathsizes]{mathastext} @@ -2258,6 +2258,6 @@ %# 使用 microtype 优化排版细节 %# Use `microtype` to get details better \RequirePackage{microtype} -%</ProjLib,PJLtoolkit> +%</ProjLib> \endinput
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib.ins b/Master/texmf-dist/source/latex/projlib/ProjLib.ins index 29806981d2a..014bdd86807 100644 --- a/Master/texmf-dist/source/latex/projlib/ProjLib.ins +++ b/Master/texmf-dist/source/latex/projlib/ProjLib.ins @@ -40,7 +40,6 @@ and version 1.3c or later is part of all distributions of LaTeX version \usepreamble\mypreamble \generate{\file{ProjLib.sty}{\from{ProjLib.dtx}{ProjLib}}} -\generate{\file{PJLamssim.sty}{\from{ProjLib.dtx}{PJLamssim}}} \generate{\file{PJLauthor.sty}{\from{ProjLib.dtx}{PJLauthor}}} \generate{\file{PJLdate.sty}{\from{ProjLib.dtx}{PJLdate}}} \generate{\file{PJLdraft.sty}{\from{ProjLib.dtx}{PJLdraft}}} @@ -49,7 +48,6 @@ and version 1.3c or later is part of all distributions of LaTeX version \generate{\file{PJLmath.sty}{\from{ProjLib.dtx}{PJLmath}}} \generate{\file{PJLpaper.sty}{\from{ProjLib.dtx}{PJLpaper}}} \generate{\file{PJLthm.sty}{\from{ProjLib.dtx}{PJLthm}}} -\generate{\file{PJLtoolkit.sty}{\from{ProjLib.dtx}{PJLtoolkit}}} \obeyspaces \Msg{*************************************************************} @@ -58,7 +56,6 @@ and version 1.3c or later is part of all distributions of LaTeX version \Msg{* files into a directory searched by TeX: *} \Msg{* *} \Msg{* ProjLib.sty *} -\Msg{* PJLamssim.sty *} \Msg{* PJLauthor.sty *} \Msg{* PJLdate.sty *} \Msg{* PJLdraft.sty *} @@ -67,7 +64,6 @@ and version 1.3c or later is part of all distributions of LaTeX version \Msg{* PJLmath.sty *} \Msg{* PJLpaper.sty *} \Msg{* PJLthm.sty *} -\Msg{* PJLtoolkit.sty *} \Msg{* *} \Msg{* Happy TeXing! *} \Msg{* *} diff --git a/Master/texmf-dist/tex/latex/projlib/PJLamssim.sty b/Master/texmf-dist/tex/latex/projlib/PJLamssim.sty deleted file mode 100644 index 89fecc6d8a5..00000000000 --- a/Master/texmf-dist/tex/latex/projlib/PJLamssim.sty +++ /dev/null @@ -1,166 +0,0 @@ -%% -%% This is file `PJLamssim.sty', -%% generated with the docstrip utility. - -%% Copyright (C) 2021 by Jinwen XU -%% -%% This is part of the ProjLib Toolkit. -%% -%% This work may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License, either version 1.3c of this license or (at -%% your option) any later version. The latest version of this license is in -%% -%% http://www.latex-project.org/lppl.txt -%% -%% and version 1.3c or later is part of all distributions of LaTeX version -%% 2005/12/01 or later. -%% -\NeedsTeXFormat{LaTeX2e}[2020-10-01] -\ProvidesPackage{PJLamssim} - [2021/07/23 Simulate some features of amsart] -\RequirePackage{kvoptions} -\RequirePackage{etoolbox} -\ifdefined\subjclass\endinput\fi - -\RequirePackage{PJLauthor} -\RequirePackage{calc} - -\providecommand{\conditionalbfseries}{\bfseries} - -\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{Ключевые слова и фразы} - -\def\PJL@keywords{} -\providecommand*{\keywords}[1]{\def\PJL@keywords{#1}} - -\def\PJL@dedicatory{} -\providecommand*{\dedicatory}[1]{\def\PJL@dedicatory{#1}} - -\AtEndPreamble{ -\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% - \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% - }% -} -} - -\let\abstract@PJLoriginal\abstract% -\let\endabstract@PJLoriginal\endabstract% -\newif\if@PJLamssim@maketitle\@PJLamssim@maketitlefalse -\newif\if@PJLamssim@absbefore\@PJLamssim@absbeforefalse -\RequirePackage{fancyvrb} -\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@PJLamssim@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\@PJLamssim@absbeforetrue% - \fi% -} - -\AtEndPreamble{% -\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} -\pretocmd{\maketitle}{% - \ifx\PJL@keywords\@empty\else% - \PJL@prethanks{{\protect\conditionalbfseries% - \csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}% - ~\PJL@keywords}% - \fi}{}{\FAIL} -\apptocmd{\maketitle}{% - \if@PJLamssim@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\@PJLamssim@maketitletrue -}{}{\FAIL} -} - -\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} - -\endinput -%% -%% End of file `PJLamssim.sty'. diff --git a/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty b/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty index f538048781c..37375470e05 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLauthor.sty @@ -17,11 +17,18 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLauthor} - [2021/07/23 Enhanced author information block] + [2021/07/27 Enhanced author information block] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \ifdefined\subjclass\endinput\fi +\SetupKeyvalOptions{ + family = @PJLauthor, + prefix = @PJLauthor@, +} +\DeclareBoolOption[false]{amsfashion} +\ProcessKeyvalOptions*\relax + %%================================ %% Font and style %%================================ @@ -90,6 +97,149 @@ }{}{\FAIL}% }{}{\FAIL} +\if@PJLauthor@amsfashion + +\RequirePackage{PJLlang} +\RequirePackage{calc} + +\providecommand{\conditionalbfseries}{\bfseries} + +\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{Ключевые слова и фразы} + +\def\PJL@keywords{} +\providecommand*{\keywords}[1]{\def\PJL@keywords{#1}} + +\def\PJL@dedicatory{} +\providecommand*{\dedicatory}[1]{\def\PJL@dedicatory{#1}} + +\AtEndPreamble{ +\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% + \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% + }% +} +} + +\let\abstract@PJLoriginal\abstract% +\let\endabstract@PJLoriginal\endabstract% +\newif\if@PJLamssim@maketitle\@PJLamssim@maketitlefalse +\newif\if@PJLamssim@absbefore\@PJLamssim@absbeforefalse +\RequirePackage{fancyvrb} +\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@PJLamssim@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\@PJLamssim@absbeforetrue% + \fi% +} + +\AtEndPreamble{% +\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} +\pretocmd{\maketitle}{% + \ifx\PJL@keywords\@empty\else% + \PJL@prethanks{{\protect\conditionalbfseries% + \csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}% + ~\PJL@keywords}% + \fi}{}{\FAIL} +\apptocmd{\maketitle}{% + \if@PJLamssim@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\@PJLamssim@maketitletrue +}{}{\FAIL} +} + +\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} + +\fi + \endinput %% %% End of file `PJLauthor.sty'. diff --git a/Master/texmf-dist/tex/latex/projlib/PJLdate.sty b/Master/texmf-dist/tex/latex/projlib/PJLdate.sty index ca34721f997..5d18eb54348 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLdate.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLdate.sty @@ -17,7 +17,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLdate} - [2021/07/23 Convert yyyy-mm-dd to normal datetime format] + [2021/07/27 Convert yyyy-mm-dd to normal datetime format] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{ diff --git a/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty b/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty index ec8d5897f0b..7495eb199b7 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLdraft.sty @@ -17,7 +17,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLdraft} - [2021/07/23 Some useful macros for the draft stage] + [2021/07/27 Some useful macros for the draft stage] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{ diff --git a/Master/texmf-dist/tex/latex/projlib/PJLlang.sty b/Master/texmf-dist/tex/latex/projlib/PJLlang.sty index fde720894d0..55d9e18c8f3 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLlang.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLlang.sty @@ -17,7 +17,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLlang} - [2021/07/23 Multi-language configuration] + [2021/07/27 Multi-language configuration] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{% diff --git a/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty b/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty index 3d2069b4cd5..cd4801f1400 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLlogo.sty @@ -17,7 +17,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLlogo} - [2021/07/23 The ProjLib logo] + [2021/07/27 The ProjLib logo] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{ diff --git a/Master/texmf-dist/tex/latex/projlib/PJLmath.sty b/Master/texmf-dist/tex/latex/projlib/PJLmath.sty index 885698b50a1..2efa17c67e7 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLmath.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLmath.sty @@ -17,7 +17,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLmath} - [2021/07/23 Useful math macros and shortcuts] + [2021/07/27 Useful math macros and shortcuts] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \RequirePackage{mathtools} diff --git a/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty b/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty index 275409eca09..04bf6082170 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLpaper.sty @@ -17,7 +17,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLpaper} - [2021/07/23 Paper style configuration] + [2021/07/27 Paper style configuration] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \RequirePackage{ifthen} diff --git a/Master/texmf-dist/tex/latex/projlib/PJLthm.sty b/Master/texmf-dist/tex/latex/projlib/PJLthm.sty index 0c19be81cc6..bd9fb06472a 100644 --- a/Master/texmf-dist/tex/latex/projlib/PJLthm.sty +++ b/Master/texmf-dist/tex/latex/projlib/PJLthm.sty @@ -17,7 +17,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{PJLthm} - [2021/07/23 Theorem setup and configuration] + [2021/07/27 Theorem setup and configuration] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{% diff --git a/Master/texmf-dist/tex/latex/projlib/PJLtoolkit.sty b/Master/texmf-dist/tex/latex/projlib/PJLtoolkit.sty deleted file mode 100644 index a9b83beaa6a..00000000000 --- a/Master/texmf-dist/tex/latex/projlib/PJLtoolkit.sty +++ /dev/null @@ -1,141 +0,0 @@ -%% -%% This is file `PJLtoolkit.sty', -%% generated with the docstrip utility. - -%% Copyright (C) 2021 by Jinwen XU -%% -%% This is part of the ProjLib Toolkit. -%% -%% This work may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License, either version 1.3c of this license or (at -%% your option) any later version. The latest version of this license is in -%% -%% http://www.latex-project.org/lppl.txt -%% -%% and version 1.3c or later is part of all distributions of LaTeX version -%% 2005/12/01 or later. -%% -\NeedsTeXFormat{LaTeX2e}[2020-10-01] -\ProvidesPackage{PJLtoolkit} - [2021/07/23 Collective interface of ProjLib Toolkit] -\RequirePackage{kvoptions} -\RequirePackage{etoolbox} -\SetupKeyvalOptions{ - family = @PJLtoolkit, - prefix = @PJLtoolkit@, -} -\DeclareBoolOption[false]{draft} -\DeclareBoolOption[false]{fast} -\DeclareBoolOption[false]{author} -\DeclareBoolOption[false]{amsfashion} -\DeclareBoolOption[false]{amssim} -\DeclareBoolOption[false]{nothms} -\DeclareBoolOption[false]{nothmnum} -\DeclareBoolOption[false]{regionalref} -\DeclareBoolOption[false]{useosf} -\DeclareBoolOption[false]{palatino} -\DeclareBoolOption[false]{times} -\DeclareBoolOption[false]{garamond} -\DeclareBoolOption[false]{biolinum} -\ProcessKeyvalOptions*\relax - -\if@PJLtoolkit@draft - \@PJLtoolkit@fasttrue -\fi -\if@PJLtoolkit@amsfashion - \@PJLtoolkit@amssimtrue -\fi - -\if@PJLtoolkit@fast - \PassOptionsToPackage{fast}{PJLdate} - \PassOptionsToPackage{fast}{PJLdraft} - \PassOptionsToPackage{fast}{PJLlogo} - \PassOptionsToPackage{fast}{PJLthm} -\fi -\if@PJLtoolkit@nothms - \PassOptionsToPackage{nothms}{PJLthm} -\fi -\if@PJLtoolkit@nothmnum - \PassOptionsToPackage{nothmnum}{PJLthm} -\fi -\if@PJLtoolkit@regionalref - \PassOptionsToPackage{regionalref}{PJLthm} -\fi - -\if@PJLtoolkit@author - \RequirePackage{PJLauthor} -\fi -\if@PJLtoolkit@amssim - \RequirePackage{PJLamssim} -\fi -\RequirePackage{PJLdate} -\RequirePackage{PJLdraft} -\RequirePackage{PJLlogo} -\RequirePackage{PJLmath} -\RequirePackage{PJLpaper} -\RequirePackage{PJLthm} - -\ifdefined\PJL@font@alreadyset\else - -\if@PJLtoolkit@palatino - % \RequirePackage{amssymb} - \RequirePackage{mathpazo} - \PassOptionsToPackage{defaultsups}{newpxtext} - \RequirePackage{newpxtext} - % \RequirePackage{newpxmath} - \let\openbox\relax - \PJLsetlinespacing{\setstretch{1.07}} - \if@PJLtoolkit@useosf\useosf\fi -\fi - -\if@PJLtoolkit@times - % \RequirePackage{amssymb} - \PassOptionsToPackage{defaultsups}{newtxtext} - \RequirePackage{newtxtext} - \RequirePackage{newtxmath} - \let\openbox\relax - \PJLsetlinespacing{\setstretch{1.00}} - \if@PJLtoolkit@useosf\useosf\fi -\fi - -\if@PJLtoolkit@garamond - % \RequirePackage{amssymb} - \if@PJLtoolkit@useosf\else - \PassOptionsToPackage{lining}{ebgaramond} - \fi - \RequirePackage{ebgaramond-maths} - \RequirePackage{ebgaramond} - % \RequirePackage{garamondlibre} - \PJLsetlinespacing{\setstretch{1.00}} -\fi - -\if@PJLtoolkit@biolinum - % \RequirePackage{amssymb} - % \RequirePackage{mathpazo} - % \RequirePackage[sansmath]{libertinust1math} - \ifPDFTeX - \if@PJLtoolkit@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@PJLtoolkit@useosf Numbers = OldStyle\fi ] - \fi - \PJLsetlinespacing{\setstretch{1.05}} - \RequirePackage[italic,defaultmathsizes]{mathastext} -\fi - -\fi - -\RequirePackage{microtype} - -\endinput -%% -%% End of file `PJLtoolkit.sty'. diff --git a/Master/texmf-dist/tex/latex/projlib/ProjLib.sty b/Master/texmf-dist/tex/latex/projlib/ProjLib.sty index 1a978d4d478..041ef32ba4f 100644 --- a/Master/texmf-dist/tex/latex/projlib/ProjLib.sty +++ b/Master/texmf-dist/tex/latex/projlib/ProjLib.sty @@ -17,18 +17,17 @@ %% \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesPackage{ProjLib} - [2021/07/23 The collective interface of ProjLib toolkit] + [2021/07/27 The collective interface of ProjLib toolkit] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{ - family = @PJLtoolkit, - prefix = @PJLtoolkit@, + family = @ProjLib, + prefix = @ProjLib@, } \DeclareBoolOption[false]{draft} \DeclareBoolOption[false]{fast} \DeclareBoolOption[false]{author} \DeclareBoolOption[false]{amsfashion} -\DeclareBoolOption[false]{amssim} \DeclareBoolOption[false]{nothms} \DeclareBoolOption[false]{nothmnum} \DeclareBoolOption[false]{regionalref} @@ -39,34 +38,32 @@ \DeclareBoolOption[false]{biolinum} \ProcessKeyvalOptions*\relax -\if@PJLtoolkit@draft - \@PJLtoolkit@fasttrue -\fi -\if@PJLtoolkit@amsfashion - \@PJLtoolkit@amssimtrue +\if@ProjLib@draft + \@ProjLib@fasttrue \fi -\if@PJLtoolkit@fast +\if@ProjLib@fast \PassOptionsToPackage{fast}{PJLdate} \PassOptionsToPackage{fast}{PJLdraft} \PassOptionsToPackage{fast}{PJLlogo} \PassOptionsToPackage{fast}{PJLthm} \fi -\if@PJLtoolkit@nothms +\if@ProjLib@nothms \PassOptionsToPackage{nothms}{PJLthm} \fi -\if@PJLtoolkit@nothmnum +\if@ProjLib@nothmnum \PassOptionsToPackage{nothmnum}{PJLthm} \fi -\if@PJLtoolkit@regionalref +\if@ProjLib@regionalref \PassOptionsToPackage{regionalref}{PJLthm} \fi -\if@PJLtoolkit@author +\if@ProjLib@amsfashion + \PassOptionsToPackage{amsfashion}{PJLauthor} \RequirePackage{PJLauthor} \fi -\if@PJLtoolkit@amssim - \RequirePackage{PJLamssim} +\if@ProjLib@author + \RequirePackage{PJLauthor} \fi \RequirePackage{PJLdate} \RequirePackage{PJLdraft} @@ -77,7 +74,7 @@ \ifdefined\PJL@font@alreadyset\else -\if@PJLtoolkit@palatino +\if@ProjLib@palatino % \RequirePackage{amssymb} \RequirePackage{mathpazo} \PassOptionsToPackage{defaultsups}{newpxtext} @@ -85,22 +82,22 @@ % \RequirePackage{newpxmath} \let\openbox\relax \PJLsetlinespacing{\setstretch{1.07}} - \if@PJLtoolkit@useosf\useosf\fi + \if@ProjLib@useosf\useosf\fi \fi -\if@PJLtoolkit@times +\if@ProjLib@times % \RequirePackage{amssymb} \PassOptionsToPackage{defaultsups}{newtxtext} \RequirePackage{newtxtext} \RequirePackage{newtxmath} \let\openbox\relax \PJLsetlinespacing{\setstretch{1.00}} - \if@PJLtoolkit@useosf\useosf\fi + \if@ProjLib@useosf\useosf\fi \fi -\if@PJLtoolkit@garamond +\if@ProjLib@garamond % \RequirePackage{amssymb} - \if@PJLtoolkit@useosf\else + \if@ProjLib@useosf\else \PassOptionsToPackage{lining}{ebgaramond} \fi \RequirePackage{ebgaramond-maths} @@ -109,12 +106,12 @@ \PJLsetlinespacing{\setstretch{1.00}} \fi -\if@PJLtoolkit@biolinum +\if@ProjLib@biolinum % \RequirePackage{amssymb} % \RequirePackage{mathpazo} % \RequirePackage[sansmath]{libertinust1math} \ifPDFTeX - \if@PJLtoolkit@useosf + \if@ProjLib@useosf \PassOptionsToPackage{osf}{biolinum} \fi \RequirePackage{biolinum} @@ -126,7 +123,7 @@ BoldFont = LinBiolinum_RB.otf , ItalicFont = LinBiolinum_RI.otf , BoldItalicFont = LinBiolinum_RBO.otf, - \if@PJLtoolkit@useosf Numbers = OldStyle\fi ] + \if@ProjLib@useosf Numbers = OldStyle\fi ] \fi \PJLsetlinespacing{\setstretch{1.05}} \RequirePackage[italic,defaultmathsizes]{mathastext} |