diff options
author | Norbert Preining <norbert@preining.info> | 2021-07-28 03:00:58 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-07-28 03:00:58 +0000 |
commit | f083b031d6785bf31f4b35408aca161e81b935f6 (patch) | |
tree | 71d21510e1f9fc17dd58aae5c45fab30c65c4ea0 /macros/latex/contrib/projlib | |
parent | cef58753eba8ad7e2071195dbd92454febe82d32 (diff) |
CTAN sync 202107280300
Diffstat (limited to 'macros/latex/contrib/projlib')
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf | bin | 327901 -> 323652 bytes | |||
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib-doc-en.pdf | bin | 204461 -> 201179 bytes | |||
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf | bin | 206071 -> 203142 bytes | |||
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib-doc.dtx | 134 | ||||
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib.dtx | 294 | ||||
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib.ins | 4 | ||||
-rw-r--r-- | macros/latex/contrib/projlib/README.md | 25 |
7 files changed, 230 insertions, 227 deletions
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf Binary files differindex ee69f8e313..fe8a0f459a 100644 --- a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf +++ b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf diff --git a/macros/latex/contrib/projlib/ProjLib-doc-en.pdf b/macros/latex/contrib/projlib/ProjLib-doc-en.pdf Binary files differindex 595ebf9f25..b86cc30b19 100644 --- a/macros/latex/contrib/projlib/ProjLib-doc-en.pdf +++ b/macros/latex/contrib/projlib/ProjLib-doc-en.pdf diff --git a/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf b/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf Binary files differindex 40b469a972..ad837cfa82 100644 --- a/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf +++ b/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf diff --git a/macros/latex/contrib/projlib/ProjLib-doc.dtx b/macros/latex/contrib/projlib/ProjLib-doc.dtx index 6da315bd79..aafece21f6 100644 --- a/macros/latex/contrib/projlib/ProjLib-doc.dtx +++ b/macros/latex/contrib/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/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx index 634c196156..59be20a95b 100644 --- a/macros/latex/contrib/projlib/ProjLib.dtx +++ b/macros/latex/contrib/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/macros/latex/contrib/projlib/ProjLib.ins b/macros/latex/contrib/projlib/ProjLib.ins index 29806981d2..014bdd8680 100644 --- a/macros/latex/contrib/projlib/ProjLib.ins +++ b/macros/latex/contrib/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/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md index 35fe121524..28d8e8de04 100644 --- a/macros/latex/contrib/projlib/README.md +++ b/macros/latex/contrib/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 |