summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-03-12 03:00:45 +0000
committerNorbert Preining <norbert@preining.info>2022-03-12 03:00:45 +0000
commit0c73359c915c22297090c6c23c5ac23a8ec9603e (patch)
tree71530d469eba822bbed05346a76335bd276a602d /macros/latex/contrib
parentdc086771e418d7c66a541d2831b468375c5f7090 (diff)
CTAN sync 202203120300
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md47
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gifbin0 -> 102975 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.pdf)bin606215 -> 611808 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.tex)9
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpgbin22662 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpgbin43382 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpgbin23427 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpgbin75463 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpgbin14661 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpgbin21536 -> 0 bytes
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.pdfbin117097 -> 117260 bytes
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.tex6
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem.sty91
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx88
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin592859 -> 591676 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex117
-rw-r--r--macros/latex/contrib/jmsdelim/README.md35
-rw-r--r--macros/latex/contrib/jmsdelim/jmsdelim.dtx693
-rw-r--r--macros/latex/contrib/jmsdelim/jmsdelim.ins15
-rw-r--r--macros/latex/contrib/jmsdelim/jmsdelim.pdfbin0 -> 415204 bytes
-rw-r--r--macros/latex/contrib/jmsdelim/refs.bib13
-rw-r--r--macros/latex/contrib/matapli/README.md4
-rw-r--r--macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdfbin1662982 -> 1674698 bytes
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk310
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.fls742
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.pdfbin2929413 -> 2940922 bytes
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.tex6
-rw-r--r--macros/latex/contrib/matapli/tex/matapli.cls15
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin501207 -> 501742 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex17
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx352
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1502769 -> 1511486 bytes
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx4569
-rw-r--r--macros/latex/contrib/projlib/ProjLib.ins74
-rw-r--r--macros/latex/contrib/projlib/ProjLib.sty38
-rw-r--r--macros/latex/contrib/projlib/README.md6
-rw-r--r--macros/latex/contrib/projlib/projlib-author.sty313
-rw-r--r--macros/latex/contrib/projlib/projlib-datetime.sty1649
-rw-r--r--macros/latex/contrib/projlib/projlib-draft.sty140
-rw-r--r--macros/latex/contrib/projlib/projlib-font.sty144
-rw-r--r--macros/latex/contrib/projlib/projlib-language.sty512
-rw-r--r--macros/latex/contrib/projlib/projlib-logo.sty100
-rw-r--r--macros/latex/contrib/projlib/projlib-math.sty234
-rw-r--r--macros/latex/contrib/projlib/projlib-paper.sty119
-rw-r--r--macros/latex/contrib/projlib/projlib-theorem.sty1184
51 files changed, 5884 insertions, 5772 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
index 76bb73ed42..93a465be1c 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
@@ -1,38 +1,29 @@
-# arguelles
-
-Argüelles is a beamer theme that helps you create beautiful presentations. It aims for simplicity and readability by following best practices of graphic design. The layout is elegant but subtle, so as to keep the audience's attention on your content. This is brought to life by Alegreya, one of the 53 Fonts of the Decade selected by the Association Typographique Internationale (2011).
-
-The theme requires the packages [tikz](https://ctan.org/pkg/pgf), [microtype](https://ctan.org/pkg/microtype), [makecell](https://ctan.org/pkg/makecell), [Alegreya/AlegreyaSans](https://ctan.org/pkg/alegreya), [cancel](https://ctan.org/pkg/cancel), [euler](https://ctan.org/pkg/euler), and [fontawesome](https://ctan.org/pkg/fontawesome) to be installed on your computer. These are included in most LaTeX distributions, such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
+<!--
+- arguelles v1.2.1
+- Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
+- This work is released under the MIT License and is free to use, copy, modify,
+- merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
+-->
-### Table of contents
+# arguelles
-- [Demo](#demo)
-- [Installation](#installation)
-- [Customization](#customization)
- - [Colors](#colors)
- - [Font weights](#font-weights)
- - [Figures](#figures)
+Arguelles is a beamer theme that helps you create beautiful presentations. It aims for simplicity and readability by following best practices of graphic design. The layout is elegant but subtle, so as to keep the audience's attention on your content. This is brought to life by Alegreya, one of the 53 Fonts of the Decade selected by the Association Typographique Internationale (2011).
-* * *
+The theme requires the packages [tikz](https://ctan.org/pkg/pgf), [microtype](https://ctan.org/pkg/microtype), [makecell](https://ctan.org/pkg/makecell), [Alegreya](https://ctan.org/pkg/alegreya), [cancel](https://ctan.org/pkg/cancel), [euler](https://ctan.org/pkg/euler), and [fontawesome5](https://ctan.org/pkg/fontawesome5) to be installed on your computer. These are included in common LaTeX distributions, such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
## Demo
The files `demo.tex` and `demo.pdf` demonstrate the main features of the theme.
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-1.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-2.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-3.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-4.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-5.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-6.jpg)
+![](https://github.com/piazzai/arguelles/blob/master/demo/demo-arguelles.gif)
## Installation
-The theme is hosted on CTAN and should soon become available through common LaTeX distributions. It can also be installed manually by cloning the repository in the `$HOME/texmf/tex/latex` folder, which is automatically searched by LaTeX. If you do not have this folder, you can [create one](https://www.ias.edu/math/computing/faq/local-latex-style-files).
+Arguelles is [hosted on CTAN](https://ctan.org/pkg/beamertheme-arguelles) and distributed as part of MikTex and TeXLive. It can also be installed manually by cloning this repository in your `$HOME/texmf/tex/latex` folder, which is automatically searched by LaTeX. If you do not have this folder, you can [create one](https://www.ias.edu/math/computing/faq/local-latex-style-files).
## Customization
-It is possible to change parts of the theme by altering the `*.sty` files. There are five such files:
+It is possible to change parts of the theme by altering the style files. There are five such files:
- `beamercolortheme*.sty` sets the colors;
- `beamerfonttheme*.sty` sets font styles and weights;
@@ -58,13 +49,13 @@ There are also two more colors, [fern](https://encycolorpedia.com/4f7942) and [c
\setbeamercolor*{alerted text}{fg=corsa}
```
-Change `corsa` to another color and you are set. Similar changes can be made to tweak the color of normal text, the background, or any other element of the layout. Naturally, you can also define your own colors.
+Change `corsa` to some other color and you are set. Similar changes can be made to tweak the color of normal text, the background, or any other element of the layout. Of course, you can also define your own colors.
### Font weights
-It is also possible to change font styles and weights. Alegreya is a comprehensive family and comes with a variety of weights, as does its sister family Alegreya Sans. In addition to the usual bold set by `\bfseries`, Alegreya also comes in medium, extra bold, and black. Alegreya Sans further comes in light and thin. These weights are set by commands like `\AlegreyaExtraBold` or `\AlegreyaSansThin` (see the [Alegreya package](https://www.ctan.org/pkg/alegreya) for more details), and can be combined with `\scshape` or `\itshape` to produce a variety of effects.
+It is possible to change font styles and weights. Alegreya is a comprehensive family and comes with a variety of weights, as does its sister family Alegreya Sans. In addition to the usual bold set by `\bfseries`, Alegreya comes in medium, extra bold, and black. Alegreya Sans further comes in light and thin. These weights are set by commands like `\AlegreyaExtraBold` or `\AlegreyaSansThin` (see the [Alegreya README](https://mirrors.dotsrc.org/ctan/fonts/alegreya/README) for more details), and can be combined with `\scshape` or `\itshape` to produce a variety of effects.
-The file `beamerfonttheme*.sty` sets the type for various elements of the layout. For example, the appearance of frame titles is determined by the following line of code:
+The file `beamerfonttheme*.sty` sets the type for various elements of the layout. For example, the appearance of frame titles is determined by the following command:
```tex
\setbeamerfont{frame title}{size=\Large}
@@ -72,13 +63,13 @@ The file `beamerfonttheme*.sty` sets the type for various elements of the layout
If you wanted to give frame titles a little bit more weight, you could write `{series=\AlegreyaMedium,size=\Large}`. If you wanted to make them slightly larger, you could change `\Large` to `\LARGE`.
-By default, the theme uses serif type for most text and reserves sans-serif type for the presentation title, formatted in black weight, and any URL. It is possible to alter this behavior by modifying `beamerfonttheme*.sty`. For example, the appearance of the presentation title is given by:
+By default, the theme uses serif type for most text and reserves sans-serif type for the presentation title, formatted in black weight, and URLs. It is possible to alter this behavior by modifying `beamerfonttheme*.sty`. For example, the appearance of the presentation title is determined by:
```tex
\setbeamerfont{title}{series=\AlegreyaSansBlack,size=\LARGE}
```
-Changing `\AlegreyaSansBlack` to `\AlegreyaBlack` makes the title serif like any other text. Deleting `\usefonttheme{serif}` near the top of the file, instead, makes sans-serif type the new default for all text. Changing `\urlstyle{sf}` to `\urlstyle{same}` makes URLs appear just like normal text, and deleting the line altogether resets them to true type.
+Changing `\AlegreyaSansBlack` to `\AlegreyaBlack` in this command makes the title serif like any other text. Deleting `\usefonttheme{serif}` near the top of the style file makes sans-serif type the new default for all text. Changing `\urlstyle{sf}` to `\urlstyle{same}` makes URLs appear like normal text, and deleting the line altogether resets them to true type.
### Figures
@@ -90,3 +81,7 @@ Both old-style and lining figures are also available in a monospaced version, wh
\RequirePackage[osf,tf]{Alegreya}
\RequirePackage[osf,tf]{AlegreyaSans}
```
+
+## Bugs
+
+If you find any problem using this package, please [create an issue](https://github.com/piazzai/arguelles/issues).
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
index 45a1b3f445..43ba882c9f 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
@@ -1 +1 @@
-1.1.2
+v1.2.1 2022-03-09
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
index c524a62e5b..98b14cb428 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
index f0ebdbee4c..c82ca05cec 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
index 2942da8c17..097ecf69be 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
index a1b721448a..639ea67740 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
index a3aeb452c9..9799af623d 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
@@ -8,7 +8,7 @@
% Requirements
\RequirePackage{tikz}
\RequirePackage{microtype}
-\RequirePackage{fontawesome}
+\RequirePackage{fontawesome5}
\RequirePackage[osf]{Alegreya}
\RequirePackage[osf]{AlegreyaSans}
\RequirePackage{euler}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
new file mode 100644
index 0000000000..b480114c1a
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
index 2601b13b5f..bc21e23070 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
index 2aa2624a5a..ff971bd798 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.0
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
@@ -9,7 +9,7 @@
\usetheme{Arguelles}
-\title{Argüelles}
+\title{Arguelles}
\subtitle{Simple, typographic beamer theme}
\date{}
\author{Place Holder}
@@ -82,7 +82,7 @@
\end{table}
\vfill
\begin{alert}{Alert!}
- A plain frame will appear in the navigation bar unless it is the first frame or it is placed after \texttt{\textbackslash ThankYou}.
+ A plain frame does not show the progress bar but it still appears in the progress bar of other frames unless it is placed after \texttt{\textbackslash ThankYou}.
\end{alert}
\end{frame}
@@ -96,7 +96,8 @@
In combination with \textit{plain},\par
it makes a nice thank-you slide!
\vfill\scalebox{4}{\faGithub}\par\bigskip
- \url{https://github.com/piazzai/arguelles}
+ \url{https://github.com/piazzai/arguelles} \\
+ \url{https://ctan.org/pkg/beamertheme-arguelles}
\end{frame}
\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpg
deleted file mode 100644
index 49a4d35d1f..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpg
deleted file mode 100644
index 1e4a75d782..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpg
deleted file mode 100644
index 1b322d11b5..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpg
deleted file mode 100644
index 2d63f066d9..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpg
deleted file mode 100644
index 5559c0b9c3..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpg
deleted file mode 100644
index 08af35c8d5..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
index 5ec3992fbe..c61567791b 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.tex b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
index ef84ddfca5..3a726e50e1 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.tex
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
@@ -85,7 +85,7 @@
\begin{document}
-\def\PackageVersion{2022/03/10}
+\def\PackageVersion{2022/03/11}
\title{\createtheorempackage{}\\\smallskip\itshape Initializing theorem-like environments with multilingual support}
\author{Jinwen XU}
@@ -287,7 +287,7 @@ Supported keys are:
\end{center}
\begin{tip}
- The names for the following environments have been preset: \texttt{assertion}, \texttt{assumption}, \texttt{axiom}, \texttt{conclusion}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{postulate}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark} and \texttt{theorem}. If you are fine with the preset names, then you don't need to specify the key ``\commandoption{name}'' while creating them, otherwise you shall have to use the package option ``\packageoption{no preset names}'' to disable the presets and then define your own ones.
+ The names for the following environments have been preset: \texttt{assertion}, \texttt{assumption}, \texttt{axiom}, \texttt{conclusion}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{postulate}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark} and \texttt{theorem}. If you are fine with the preset names, then you don't need to specify the key ``\commandoption{name}'' while creating them, otherwise you shall have to use the package option ``\packageoption{no preset names}'' to disable the presets and then define your own ones.
\end{tip}
\medskip
@@ -440,7 +440,7 @@ In each case, the two environments \texttt{idea} and \texttt{idea*} share the sa
\item There may be inaccuracies in the translation of those preset names.
\end{itemize}
-\medskip
+% \medskip
If you run into any issues or have ideas for improvement, feel free to discuss on:
\begin{center}
\url{https://github.com/Jinwen-XU/create-theorem/issues}
diff --git a/macros/latex/contrib/create-theorem/create-theorem.sty b/macros/latex/contrib/create-theorem/create-theorem.sty
index b7439ea466..b0371749b8 100644
--- a/macros/latex/contrib/create-theorem/create-theorem.sty
+++ b/macros/latex/contrib/create-theorem/create-theorem.sty
@@ -13,7 +13,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{create-theorem}
- {2022/03/10} {}
+ {2022/03/11} {}
{Initializing theorem-like environments with multilingual support}
\keys_define:nn { create-theorem }
@@ -199,8 +199,8 @@
{
\tl_if_blank:eTF { #3 }
{
- \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -1ex } } }
- \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -1ex } } }
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -.5ex } } }
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -.5ex } } }
}
{
\tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark { #3 } }
@@ -1699,6 +1699,91 @@
}
}
+\NameTheorem { definition-proposition }
+ {
+ , heading = {
+ , english = Definition-Proposition
+ , french = Définition-Proposition
+ , ngerman = Definition-Proposition
+ , italian = Definizione-Proposizione
+ , portuguese = Definição-Proposição
+ , brazilian = Definição-Proposição
+ , spanish = Definición-Proposición
+ , schinese = 定义-命题
+ , tchinese = 定義-命題
+ , japanese = 定義-命題
+ , russian = Определение-Предложение
+ }
+ , crefname = {
+ , english = {definition-proposition}{definition-propositions}
+ , french = [la]{définition-proposition}[les]{définition-propositions}
+ , ngerman = {Definition-Proposition}{Definitionen-Propositionen}
+ , italian = [la]{definizione-proposizione}[le]{definizioni-proposte}
+ , portuguese = [a]{definição-proposição}[as]{definições-proposições}
+ , brazilian = [a]{definição-proposição}[as]{definições-proposições}
+ , spanish = [la]{definición-proposición}[las]{definiciones-proposiciones}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {определение-предложение}{определения-предложения}
+ }
+ , Crefname = {
+ , english = {Definition-proposition}{Definition-propositions}
+ , french = [La]{définition-proposition}[Les]{définition-propositions}
+ , ngerman = {Definition-Proposition}{Definitionen-Propositionen}
+ , italian = [La]{definizione-proposizione}[Le]{definizioni-proposte}
+ , portuguese = [A]{definição-proposição}[As]{definições-proposições}
+ , brazilian = [A]{definição-proposição}[As]{definições-proposições}
+ , spanish = [La]{definición-proposición}[Las]{definiciones-proposiciones}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {Определение-предложение}{Определения-предложения}
+ }
+ }
+
+\NameTheorem { definition-theorem }
+ {
+ , heading = {
+ , english = Definition-Theorem
+ , french = Définition-Théorème
+ , ngerman = Definition-Satz
+ , italian = Definizione-Teorema
+ , portuguese = Definição-Teorema
+ , brazilian = Definição-Teorema
+ , spanish = Definición-Teorema
+ , schinese = 定义-定理
+ , tchinese = 定義-定理
+ , japanese = 定義-定理
+ , russian = Определение-Теорема
+ }
+ , crefname = {
+ , english = {definition-theorem}{definition-theorems}
+ , french = [la]{définition-théorème}[les]{définition-théorèmes}
+ , ngerman = {Definition-Satz}{Definitionen-Sätze}
+ , italian = [la]{definizione-teorema}[le]{definizioni-teoremi}
+ , portuguese = [a]{definição-teorema}[as]{definições-teoremas}
+ , brazilian = [a]{definição-teorema}[as]{definições-teoremas}
+ , spanish = [la]{definición-teorema}[las]{definiciones-teoremas}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {определение-теорема}{определения-теоремы}
+ }
+ , Crefname = {
+ , english = {Definition-theorem}{Definition-theorems}
+ , french = [La]{définition-théorème}[Les]{définition-théorèmes}
+ , ngerman = {Definition-Satz}{Definitionen-Sätze}
+ , italian = [La]{definizione-teorema}[Le]{definizioni-teoremi}
+ , portuguese = [A]{definição-teorema}[As]{definições-teoremas}
+ , brazilian = [A]{definição-teorema}[As]{definições-teoremas}
+ , spanish = [La]{definición-teorema}[Las]{definiciones-teoremas}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {Определение-теорема}{Определения-теоремы}
+ }
+ }
\endinput
%%
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index cb9c5ee12e..15185e97b7 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/03/10}{1.643}
+\ProvidesExplClass{easybook}{2022/03/11}{1.645}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -303,7 +303,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/03/10}{1.643}
+\ProvidesExplPackage{easybase}{2022/03/11}{1.645}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -324,19 +324,16 @@
\seq_set_from_clist:Nn \l_tmpa_seq {#1}
\seq_map_inline:Nn \l_tmpa_seq {#2}
}
-\cs_new_protected:Npn \eb_char_patch_cmd:wnn #1#2#3
+\cs_new_protected:Npn \eb_char_patch_cmd:Nnn #1#2#3
{
\ExplSyntaxOn\makeatletter
- \eb_patch_cmd:wnn {#1} {#2} {#3}
+ \eb_patch_cmd:Nnn {#1} {#2} {#3}
\ExplSyntaxOff\makeatother
}
-\cs_new_protected:Npn \eb_patch_cmd:wnn #1#2#3
+\cs_new_protected:Npn \eb_patch_cmd:Nnn #1#2#3
{
- \eb_seq_map_inline:nn {#1}
- {
- \ctex_patch_cmd_once:NnnnTF ##1 { } {#2} {#3}
- { } { \ctex_patch_failure:N ##1 }
- }
+ \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3}
+ { } { \ctex_patch_failure:N #1 }
}
\cs_new_protected:Npn \eb_preto_cmd:nn #1#2
{ \AddToHook{cmd/#1/before}{#2} }
@@ -507,7 +504,6 @@
pdfpages+multicol+
fancyhdr+titletoc+caption+
tabularray+
- setspace+
listings
}
\cs_new_protected:Npn \eb_package_date_check:nn #1#2
@@ -876,10 +872,10 @@
{
fnfirstindent .dim_set:N = \fnfirstindent,
fnfirstindent .initial:n = 0.8em,
- fnparskip .skip_set:N = \fnparskip,
- fnparskip .initial:n = 0ex plus .1ex,
fnafterindent .tl_set:N = \fnafterindent,
fnafterindent .initial:n = 2em,
+ fnparskip .skip_set:N = \fnparskip,
+ fnparskip .initial:n = 0ex plus .1ex,
fnpara-form .tl_set:N = \l__eb_fnpara_format_tl,
fntext-pos .tl_set:N = \l__eb_fntext_position_tl,
fntext-pos .initial:n = super,
@@ -932,7 +928,7 @@
\eb_fnpara_if_pos_bottom:
}
\cs_new_protected:Npn \setspread #1 { \linespread{#1}\selectfont }
-\cs_new:Npn \eb@footmisc@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
+\cs_new:Npn \eb@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
\cs_new_protected:Npn \eb_fnpara_if_pos_bottom:
{
\bool_if:NT \l__eb_fnpara_bottom_bool
@@ -943,24 +939,25 @@
\cs_set:Npn \@makecol
{
\setbox\@outputbox\box\@cclv
+ \let\@elt\relax
\xdef\@freelist{\@freelist\@midlist}
\global\let\@midlist\@empty
\@combinefloats
- \eb@footmisc@ifvoid\footins{}
+ \eb@ifvoid\footins{}
{
\setbox\@outputbox\vbox
- \bgroup
- \boxmaxdepth\@maxdepth
- \unvbox\@outputbox
- \vfill\relax
- \vskip\skip\footins
- \color@begingroup
- \normalcolor\footnoterule
- \unvbox\footins
- \color@endgroup
- \egroup
+ {
+ \boxmaxdepth\@maxdepth
+ \unvbox\@outputbox
+ \vfill\relax
+ \vskip\skip\footins
+ \color@begingroup
+ \normalcolor\footnoterule
+ \unvbox\footins
+ \color@endgroup
+ }
}
- \eb@footmisc@ifvoid\@kludgeins
+ \eb@ifvoid\@kludgeins
{\@makespecialcolbox}
{
\setbox\@outputbox\vbox to\@colht
@@ -1035,17 +1032,21 @@
\tl_if_eq:NnT \l__eb_footnote_value_tl { hang } { \par }
\group_end:
}
-\eb_patch_cmd:wnn { \@footnotetext,\@mpfootnotetext }
- { \reset@font }
+\eb_seq_map_inline:nn { \@footnotetext,\@mpfootnotetext }
{
- \setspread{\fp_use:N \l__eb_spread_footnote_fp}
- \tl_use:N \l__eb_subfont_footnote_tl
+ \eb_patch_cmd:Nnn #1
+ { \reset@font }
+ {
+ \setspread{\fp_use:N \l__eb_spread_footnote_fp}
+ \tl_use:N \l__eb_subfont_footnote_tl
+ }
}
\cs_set_eq:NN \eb@@makefntext \@makefntext
\cs_set_eq:NN \eb@@footnotetext \@footnotetext
\ctex_at_end_package:nn { footmisc }
{
\eb_package_date_check:nn { footmisc } { 2022/02/10 }
+ \boolfalse{FN@setspace}
\ifbool{FN@para}{}
{
\cs_set_eq:NN \@makefntext \eb@@makefntext
@@ -1055,12 +1056,7 @@
{
bool {FN@hangfoot} or
bool {FN@perpage} or
- bool {FN@robust} or
- (
- notbool {FN@abovefloats} and
- bool {FN@fixskip} and
- test {\ifnumcomp{\FN@bottomcases}{=}{1}}
- )
+ bool {FN@robust}
}
{\msg_warning:nn { easybase } { footmisc }}{}
}
@@ -1626,7 +1622,6 @@
\ctex_at_end_package:nn { imakeidx }
{
- \makeindex
\RenewDocumentCommand{\printindex}{st+od()}
{
\group_begin:
@@ -1657,7 +1652,7 @@
\ctex_assign_heading_name:nn { biappendix } {#1}
\int_compare:nNnTF { \c@chapter } > { 0 }
{
- \eb_char_patch_cmd:wnn \CTEX@addbitocline
+ \eb_char_patch_cmd:Nnn \CTEX@addbitocline
{
\def\CTEX@prechapter{\CTEX@prebichapter}
\def\CTEX@thechapter{\CTEX@bichapter@number}
@@ -1944,7 +1939,7 @@
spacebelow = 0ex plus .1ex,
headindent = 0em,
within = \bool_if:NT \l__eb_class_mode_book_bool { chapter },
- headpunct = {},
+ headpunct = :,
headfont = \color{ctex@emph}\sffamily,
bodyfont = \normalfont,
postheadspace = 1em
@@ -1979,14 +1974,17 @@
aligned,alignedat,gathered,multlined,lgathered,rgathered
}
{ \setspread{\fp_use:N \l__eb_spread_math_fp} }
-\eb_patch_cmd:wnn
+\eb_seq_map_inline:nn
{ \start@gather,\start@align,\start@multline }
- { \collect@body }
{
- \setspread{\fp_use:N \l__eb_spread_math_fp}
- \collect@body
+ \eb_patch_cmd:Nnn #1
+ { \collect@body }
+ {
+ \setspread{\fp_use:N \l__eb_spread_math_fp}
+ \collect@body
+ }
}
-\eb_patch_cmd:wnn \gather@split
+\eb_patch_cmd:Nnn \gather@split
{ \spread@equation }
{
\setspread{\fp_use:N \l__eb_spread_math_fp}
@@ -2325,7 +2323,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/10}{1.643}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/11}{1.645}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 38e91e5c54..0ef1b36ef4 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 495bca8f59..b1eb6b71b7 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -21,8 +21,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v1.644,
- date = 2022/03/10,
+ version = v1.645,
+ date = 2022/03/11,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = q1jx@foxmail.com,
@@ -104,7 +104,7 @@
\endgroup
\IfBooleanF{#1}{\cnltx@checkdefault{\hfill\newline}}
}
-\newnote{\newtag}[1][New]{\textcolor{red}{\ding{70}\ #1}}
+\newnote{\newtag}[1][New]{\textcolor{red}{\fbox{#1}}}
% Use a separate module margin marker to prevent overlap
\newcommand{\smodule}{\cnltx@module@text{}}
\newcommand{\noitemsep}{\setlength{\itemsep}{0ex}}
@@ -233,8 +233,8 @@
amsthm & bicaption & ctex & caption & chemformula \\
enumitem & etoolbox & fancyhdr & geometry & hyperref \\
imakeidx & listings & marginnote & mathtools & multicol \\
- pifont & pdfpages & siunitx & spbmark & setspace \\
- thmtools & tcolorbox & titletoc & tabularray & ulem
+ pifont & pdfpages & siunitx & spbmark & thmtools \\
+ tcolorbox & titletoc & tabularray & ulem &
}
\section{文档类选项}
@@ -475,7 +475,7 @@
\keychoice{fntnumwith}{part,chapter,page}\Default{chapter}
使脚注跟随编号的计数器名。默认跟随章计数器,即开启新的一章时脚注编号从1开始。
\keychoice{uppercase}{all,first,none,none*}\Default{all}
- 使用 \cs*{rightmark} 和 \cs*{leftmark} 等标题标记命令获取标题内容用于页眉页脚时其中英文的大小写类型。\code{all} 为标题标记中的英文字母全部大写。\code{first} 为标记以英文起始时仅第一个字母大写。\code{none} 不改变标记中英文字母的大小写形式,变体 \code{none*} 则强制标记的字母均为小写形式。
+ 使用 \cs{rightmark} 和 \cs{leftmark} 等标题标记命令获取标题内容用于页眉页脚时其中英文的大小写类型。\code{all} 为标题标记中的英文字母全部大写。\code{first} 为标记以英文起始时仅第一个字母大写。\code{none} 不改变标记中英文字母的大小写形式,变体 \code{none*} 则强制标记的字母均为小写形式。
\kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}}
设置行间公式编号标签的括号及格式,以英文逗号分隔,分别代表左右括号。\meta{左括号} 可以是带有一个参数的命令,用于接受编号和 \meta{右括号}。将标签括号设置为方括号,并使用无衬线字体:
\begin{ctexexam}
@@ -802,7 +802,7 @@
每个脚注首段的首行缩进(选项 \option*{hang} 为整体缩进),等于长度 \cs{fnfirstindent} 的值。
\keyval{fnafterindent}{刚性长度}\Default{2em}
每个脚注第二段及之后段落的首行缩进,等于长度 \cs{fnafterindent} 的值。
- \keyval{fnparskip}{弹性长度}\Default{0ex}
+ \keyval{fnparskip}{弹性长度}\Default{0ex plus .1ex}
不同脚注的段落间距,等于长度 \cs{fnparskip} 的值。
\keychoice{fntext-pos}{normal,super}\Default{super}
设置脚注内容标记的位置,正常文本或是上标形式。
@@ -1012,9 +1012,9 @@
\subsection{列表}
\begin{commands}
- \command*{setlist}[\sarg\splitoarg{列表类型,级别}\marg{键值列表}]
- 列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制,这是设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs*{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
- \command*{newlist}[\marg{列表名}\marg{列表类型}\marg{最大级别}]
+ \command{setlist}[\sarg\splitoarg{列表类型,级别}\marg{键值列表}]
+ 列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制,这是设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
+ \command{newlist}[\marg{列表名}\marg{列表类型}\marg{最大级别}]
克隆基本的 \meta{列表类型} 在其基础上新建一个名为 \meta{列表名} 的列表环境。不要将 \meta{最大级别} 设置过大以避免创建过多的计数器和相关宏。
\begin{ctexexam}
\setlist{} % 清除所有列表共享的格式
@@ -1043,7 +1043,7 @@
\subsection{悬挂缩进}
\begin{commands}
\command{hangpara}[\marg{缩进长度}\marg{缩进开始行数}]
- 悬挂缩进命令 \cs{hangpara} 使其后的一个段落保持悬挂缩进,参数与 \env{hangparas} 环境相同,不过只有一个段落。\meta{缩进长度} 可以是带单位的数值或由文本长度测定命令 \cs*{widthof} 提供。
+ 悬挂缩进命令 \cs{hangpara} 使其后的一个段落保持悬挂缩进,参数与 \env{hangparas} 环境相同,不过只有一个段落。\meta{缩进长度} 可以是带单位的数值或由文本长度测定命令 \cs{widthof} 提供。
\end{commands}
\begin{environments}
@@ -1134,14 +1134,14 @@
\subsection{物理量}
\begin{commands}
- \command*{num}[\oarg{键值列表}\marg{数字}]
- \pkg*{siunitx} 宏包的 \cs*{num} 命令可以输出以科学计数法表示的数值。
- \command*{unit}[\oarg{键值列表}\marg{单位}]
- 单位格式化命令 \cs*{unit} 包含文字元素(例如字母或数字)时,使用 \Marg{.} 和 \code{\~{}} 放置在单元乘积中间,并使用 \code{\_} 和 \code{\^{}} 正确放置指定的下标和上标。格式化方法可在数学和文本模式下使用。
- \command*{qty}[\oarg{键值列表}\marg{数字}\oarg{前缀}\marg{单位}]
- 命令 \cs*{qty} 可用来输出带有单位的量。
- \command*{qtyrange}[\oarg{键值列表}\marg{起始数字}\marg{结束数字}\marg{单位}]
- 命令 \cs*{qtyrange} 可以输出带有范围和单位的量。
+ \command{num}[\oarg{键值列表}\marg{数字}]
+ \pkg*{siunitx} 宏包的 \cs{num} 命令可以输出以科学计数法表示的数值。
+ \command{unit}[\oarg{键值列表}\marg{单位}]
+ 单位格式化命令 \cs{unit} 包含文字元素(例如字母或数字)时,使用 \Marg{.} 和 \code{\~{}} 放置在单元乘积中间,并使用 \code{\_} 和 \code{\^{}} 正确放置指定的下标和上标。格式化方法可在数学和文本模式下使用。
+ \command{qty}[\oarg{键值列表}\marg{数字}\oarg{前缀}\marg{单位}]
+ 命令 \cs{qty} 可用来输出带有单位的量。
+ \command{qtyrange}[\oarg{键值列表}\marg{起始数字}\marg{结束数字}\marg{单位}]
+ 命令 \cs{qtyrange} 可以输出带有范围和单位的量。
\begin{ctexexam}
\numproduct{-21x3e5}
\unit{mL~min^{-1}}
@@ -1150,6 +1150,16 @@
\end{ctexexam}
\end{commands}
+\subsection{化学式}
+\begin{commands}
+ \command{ch}[\oarg{键值列表}\marg{化学式}]
+ 除了以普通公式的方式,化学式还可用 \pkg*{chemformula} 实现。无机化学式使用 \cs{ch} 命令书写。化合物表达式中的原子数不需要加下标符号,化学计量数与表达式间隔一个空格。
+ \begin{ctexexam}
+ \ch{[Cu(NH3)4]^2+}
+ \ch{Cu2S + 2 O2 - 2 e^- == 2 Cu^2+ + SO^{2-}_4}
+ \end{ctexexam}
+\end{commands}
+
\subsection{计数器}
\begin{commands}\noitemsep
\command{newcounter}[\marg{计数器}\oarg{父计数器}]\default{}
@@ -1187,7 +1197,7 @@
\subsection{图表题注}
\begin{commands}
- \command*{captionsetup}[\oarg{条目名}\marg{键值列表}]
+ \command{captionsetup}[\oarg{条目名}\marg{键值列表}]
这是 \pkg*{caption} 宏包的接口命令,\meta{键值列表} 提供多个选项更改图表题注的格式。题注主要由三部分组成:标题标签即图表名与题注编号的组合,标题文本本身通常是内容的简短描述,以及将文本与标签分开的题注分隔符。可以在导言区设置整体格式,也可以在正文使用局部更改格式。
\end{commands}
@@ -1198,11 +1208,28 @@
题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见说明文档。
\end{commands}
-\subsection{化学式}
-\begin{commands}\noitemsep
- \command*{ch}[\oarg{键值列表}\marg{化学式}]\default{}
- \command*{chemfig}[\oarg{键值列表}\marg{化学式}]
- 除了以普通公式的方式,化学式还可用 \pkg*{chemformula} 实现,无机化学式使用 \cs*{ch} 命令书写。有机化学式推荐在导言区载入 \pkg*{chemfig} 宏包,使用 \cs*{chemfig} 命令完成。
+\subsection{索引}
+\begin{commands}
+ \command{indexsetup}[\marg{键值列表}]
+ \pkg*{imakeidx} 宏包增强了索引的功能。这是它的的接口命令,用于设置索引表的整体格式。
+ \command*{index}[\oarg{索引名}\marg{标签}]
+ 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引输出命令 \cs{printindex} 一致,可以存在多个索引表。
+ \command*{makeindex}[\oarg{键值列表}]
+ 使用 \cs*{makeindex} 命令开启索引收集。这个命令可以重复使用打印多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表就没必要再使用。
+ \command{printindex}[\sarg\oarg{键值列表}]
+ 现在索引表生成命令 \cs{printindex} 被重新定义。\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs{indexsetup} 的部分选项失效。
+ \begin{options}
+ \keyval{name}{索引名}
+ 指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。
+ \end{options}
+\end{commands}
+
+\subsection{边注}
+\begin{commands}
+ \command{marginnote}[\oarg{左文本}\marg{右文本}\oarg{垂直偏移}]
+ 边注命令用于在两侧页边空白添加标注。如果只给定了 \meta{右文本},那么边注在奇偶数页文字相同。如果同时给定了 \meta{左文本},则偶数页使用 \meta{左文本} 的文字。
+ \command{reversemarginpar}
+ 边注位置设置命令,用于将边注排版到与默认边空位置相反的边空中。
\end{commands}
\subsection{公式符号对照}
@@ -1212,8 +1239,8 @@
\begin{ctexexam}
\seteqcomp{intro = 上式中}
\begin{eqcomp}[width = 1.5em]
- \symb{Ab}[$\to$] 符号说明1
- \symb{C}[---] 符号说明2
+ \symb{Ab}[$\to$] 符号说明
+ \symb{C}[---] 符号说明
\end{eqcomp}
\end{ctexexam}
\end{environments}
@@ -1247,45 +1274,17 @@
\end{options}
\end{commands}
-\subsection{索引}
-\begin{commands}
- \command*{indexsetup}[\marg{键值列表}]
- \pkg*{imakeidx} 宏包增强了索引的功能。这是它的的接口命令,用于设置索引表的整体格式。
- \command*{index}[\oarg{索引名}\marg{标签}]
- 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引输出命令 \cs{printindex} 一致,可以存在多个索引表。
- \command*{makeindex}[\oarg{键值列表}]
- 使用 \cs*{makeindex} 命令开启索引收集。这个命令可以重复使用打印多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表就没必要再使用。
- \command{printindex}[\sarg\oarg{键值列表}]
- 现在索引表生成命令 \cs{printindex} 被重新定义。\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs*{indexsetup} 的部分选项失效。
- \begin{options}
- \keyval{name}{索引名}
- 指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。
- \end{options}
-\end{commands}
-
-\subsection{边注}
-\begin{commands}
- \command{marginnote}[\oarg{左文本}\marg{右文本}\oarg{垂直偏移}]
- 命令 \cs{marginnote} 可以生成简单的边注,如果只给定了 \meta{右文本},那么边注在奇偶数页文字相同。如果同时给定了 \meta{左文本},则偶数页使用 \meta{左文本} 的文字。
-\end{commands}
-
\subsection{插入文档}
\begin{commands}
- \command*{includepdf}[\oarg{键值列表}\marg{文档名}]
+ \command{includepdf}[\oarg{键值列表}\marg{文档名}]
该命令由文档宏包 \pkg*{pdfpages} 提供。可以将其它 \code{pdf} 文档插入当前文档,比如插入其它软件制作的封面。\meta{键值列表} 可以指定插入页数、逻辑页和横向页面等,详情查看宏包文档。
\end{commands}
-\subsection{指定行距的段落}
-\begin{environments}
- \environment*{spacing}[\marg{浮点数}]
- 该环境由行距宏包 \pkg*{setspace} 提供。可以指定环境内段落的行距,使用 \meta{浮点数} 控制行距倍数。
-\end{environments}
-
\subsection{下划线}
\begin{commands}\noitemsep
- \command*{uline}[\marg{下划直线}]\default{}
- \command*{uuline}[\marg{下划双直线}]\default{}
- \command*{uwave}[\marg{下划波浪线}]
+ \command{uline}[\marg{下划直线}]\default{}
+ \command{uuline}[\marg{下划双直线}]\default{}
+ \command{uwave}[\marg{下划波浪线}]
\pkg*{ulem} 宏包提供了多种下划线命令,可以重新定义 \cs*{ULthickness} 命令控制下划线的粗细。下划线的深度由 \cs*{ULdepth} 控制,默认值 \cs*{maxdimen} 是一个允许深度根据当前字体变化的特殊标志,当然也可以使用 \cs*{setlength} 设定为指定深度。
\end{commands}
diff --git a/macros/latex/contrib/jmsdelim/README.md b/macros/latex/contrib/jmsdelim/README.md
new file mode 100644
index 0000000000..dfdeff2ab3
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/README.md
@@ -0,0 +1,35 @@
+The `jmsdelim` package
+======================
+
+A package for compositional delimiter sizing.
+
+The following files are included:
+- `jmsdelim.dtx` : the doctrip source for the package and documentation
+- `jmsdelim.ins` : the generation script for producing `ebproof-rules.sty`
+
+The package requires `expl3` (the LaTeX3 programming environment) which
+provides many useful programming tools.
+
+To build the documenation, run `l3build doc`.
+
+
+License
+-------
+
+Copyright 2022 Jonathan Sterling <jon@jonmsterling.com>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+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.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status “maintained”.
+
+The Current Maintainer of this work is Jonathan Sterling.
+
+This work consists of the file `jmsdelim.dtx`.
+
+
diff --git a/macros/latex/contrib/jmsdelim/jmsdelim.dtx b/macros/latex/contrib/jmsdelim/jmsdelim.dtx
new file mode 100644
index 0000000000..868070471e
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/jmsdelim.dtx
@@ -0,0 +1,693 @@
+% \iffalse meta-comment
+%
+%% File: jmsdelim.dtx Copyright (C) 2020 Jonathan Sterling
+%%
+%% It may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% -------------------------------------------------------------------------
+%
+%<*driver>
+\documentclass[cs-f]{l3doc}
+\usepackage{jmsdelim}
+\usepackage{mlmodern}
+\usepackage{mleftright}
+\usepackage[capitalize]{cleveref}
+\usepackage[protrusion=true,expansion=true,tracking=false]{microtype}
+\microtypecontext{spacing=nonfrench}
+
+\usepackage{xcolor}
+\usepackage{zi4}
+\definecolor{Matterhorn}{RGB}{77,77,77}
+\definecolor{RedDevil}{RGB}{134,1,17}
+\definecolor{RegalBlue}{RGB}{3,69,117}
+\usepackage[backend=biber,natbib=true, doi=true, citestyle=alphabetic, backref=true, style=alphabetic, maxnames=1000]{biblatex}
+\hypersetup{breaklinks=true,colorlinks=true,linkcolor=RedDevil,urlcolor=RegalBlue, citecolor=RegalBlue!70}
+\addbibresource{refs.bib}
+\setlength\parindent{0pt}
+\setlength\parskip{.5em}
+\renewcommand\bfdefault{b}
+%
+\let\oldmeta\meta
+\renewcommand\meta[1]{\texttt{\oldmeta{#1}}}
+%
+% ripped from ebproof
+\NewDocumentEnvironment{example}{}{%
+ \VerbatimEnvironment
+ \begin{VerbatimOut}{example.tex}%
+}{%
+ \end{VerbatimOut}
+ \begin{center}
+ \begin{minipage}{.4\textwidth}
+ \input{example.tex}
+ \end{minipage}%
+ \begin{minipage}{.6\textwidth}
+ \small\VerbatimInput[gobble=0]{example.tex}
+ \end{minipage}%
+ \end{center}
+}
+\NewDocumentEnvironment{wide-example}{}{%
+ \VerbatimEnvironment
+ \begin{VerbatimOut}{example.tex}%
+}{%
+ \end{VerbatimOut}
+ \input{example.tex}
+%
+ \small\VerbatimInput[gobble=0]{example.tex}
+}
+%
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{The \pkg{jmsdelim} package}
+%
+% \author{Jonathan Sterling}
+%
+% \date{September 14, 2019}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \section{Overview}
+%
+% Sizing delimiters using \cs{left} and \cs{right} should be outlawed! The results are nearly always unaesthetic, primarily because the correct size of a mathematical delimiter is a typesetting consideration which does \emph{not} emanate from the physical size of the interior.
+%
+% Correctly sizing delimiters is very difficult, particularly in well-architected documents: a correctly engineered mathematical document will include macros for all operations, and these macros necessarily will include delimiters (such as parentheses). However, the correct size for the delimiter cannot be chosen ahead of time, because it will depend on the arguments; two options are available:
+%
+% \begin{enumerate}
+% \item Provide optional arguments to each notation macro for choosing delimiter sizes. This is nearly intractable to do in practice.
+% \item Ignore delimiter sizes.
+% \end{enumerate}
+%
+% With \pkg{jmsdelim} we offer an alternative: the correct delimiter sizes can be set at the \emph{leaf nodes} of a mathematical expression, and magically bubble upward through the delimiters.
+%
+%
+% \section{Document interface}
+%
+% \begin{function}{\DelimMin}
+% \begin{syntax}
+% \cs{DelimMin}\marg{intexpr_{min}}
+% \end{syntax}
+%
+% This sets the minimum delimiter size to \meta{intexpr_{min}} outside the current location; delimiter sizes are
+% represented as natural numbers, with \verb|0| the smallest size.
+% \end{function}
+%
+% \cs{DelimMin} is the work-horse of \pkg{jmsdelim}; let us consider an example of what one might do prior to adopting \pkg{jmsdelim}. Suppose we have defined a macro \cs{Psh} for the free co-completion, following the notation of the French school, and we wish to parenthesize an instance of it:
+% \begin{example}
+% \NewDocumentCommand\Cat{}{\mathbf{Cat}}
+% \NewDocumentCommand\Psh{m}{\widehat{#1}}
+% \NewDocumentCommand\Hom{mmm}{
+% \operatorname{Hom}_{#1}(#2,#3)
+% }
+% \[ \Hom{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \end{example}
+%
+% One might have tried to get a better result by using \cs{left} and \cs{right}:
+% \begin{example}
+% \NewDocumentCommand\Cat{}{\mathbf{Cat}}
+% \NewDocumentCommand\Psh{m}{\widehat{#1}}
+% \NewDocumentCommand\HomX{mmm}{
+% \operatorname{Hom}_{#1}\left(#2,#3\right)
+% }
+% \NewDocumentCommand\Hom{mmm}{
+% \operatorname{Hom}_{#1}\mleft(#2,#3\mright)
+% }
+% \[ \Hom{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \[ \HomX{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \end{example}
+%
+% The above is appallingly worse: the height of the hat does not in any way determine the correct size for the delimiter! The solution using \pkg{jmsdelim} is quite simple, however: first, we change \cs{Hom} to call \cs{DelimPrn}, and then we use \cs{DelimMin} within the \cs{Psh} notation.
+% \begin{example}
+% \NewDocumentCommand\Cat{}{\mathbf{Cat}}
+% \NewDocumentCommand\Psh{m}{\DelimMin{1}\widehat{#1}}
+% \NewDocumentCommand\Hom{mmm}{
+% \operatorname{Hom}_{#1}\DelimPrn{#2,#3}
+% }
+% \[ \Hom{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \end{example}
+%
+% \paragraph{Behavior under subscripts}
+% By default, delimiter sizes are capped under subscripts and superscripts because the alternative is unaesthetic. For instance, consider the following somewhat contrived examples:
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[
+% \int_{\DelimPrn{\Sum{i}{a_i}}}
+% \int_{\DelimPrn{\DelimMin{4}\Sum{i}{a_i}}}
+% \]
+% \end{example}
+%
+% Because the emitted delimiter size under a subscript does \emph{not} determine the actual amount of space used, it is in most cases not correct for this delimiter size to have an effect on its non-subscript context. For this reason, judicious use of the \cs{DelimProtect} command is recommended in the case of subscripts.
+%
+%
+%
+% \subsection{Basic Delimiter commands}
+%
+% Like \pkg{mleftright}~\citep{oberdick:mleftright}, \pkg{jmsdelim} ensures the correct amount of space on the outside of the delimiters using \cs{mathopen} and \cs{mathclose}.
+%
+% \begin{function}{\DelimSurround}
+% \begin{syntax}
+% \cs{DelimSurround}\marg{left}\marg{right}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} with appropriately sized \meta{left} and \meta{right} delimiters respectively.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[\DelimSurround{\vert}{\vert}{\Sum{i}{b_i}}\]
+% \end{example}
+% \end{function}
+%
+% \begin{function}{\DelimBetween}
+% \begin{syntax}
+% \cs{DelimSurround}\marg{sep}\marg{lbody}\marg{rbody}
+% \end{syntax}
+% Places an appropriately sized \meta{sep} between \meta{lbody} and \meta{rbody}.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[\DelimBetween{\Vert}{a}{\Sum{i}{b_i}}\]
+% \end{example}
+% \end{function}
+%
+% \begin{function}{\DelimBetweenSurround}
+% \begin{syntax}
+% \cs{DelimSurround}\marg{left}\marg{sep}\marg{right}\marg{lbody}\marg{rbody}
+% \end{syntax}
+% Places an appropriately sized \meta{sep} between \meta{lbody} and \meta{rbody}, surrounding the result by \meta{left} and \meta{right} respectively.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[
+% \DelimBetweenSurround{\lbrace}{\vert}{\rbrace}{
+% \Sum{i}{a\cdot b_i}
+% }{a\in A}
+% \]
+% \end{example}
+% \end{function}
+%
+% \begin{function}{\DelimProtect}
+% \begin{syntax}
+% \cs{DelimProtect}\marg{body}
+% \end{syntax}
+% Executes \meta{body} in a sandbox, preventing its state updates from bubbling outward; this is useful in case of subscripts and superscripts.
+% The following command demonstrates incorrect sizing in the presence of a high delimiter size within a subscript:
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[
+% \DelimPrn{\Sum{\DelimPrn{\DelimMin{4}\Sum{i}{a_i}}}{F}}
+% \]
+% \end{example}
+%
+% Using a combination of \cs{DelimProtect} and \cs{DelimMin}, the formatting can be corrected locally.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{\DelimProtect{#1}}{#2}%
+% }
+% \[
+% \DelimPrn{
+% \DelimMin{2}
+% \Sum{\DelimPrn{\DelimMin{4}\Sum{i}{a_i}}}{F}
+% }
+% \]
+% \end{example}
+% \end{function}
+%
+% \subsection{Derived delimiter commands}
+%
+% \begin{function}{\DelimPrn}
+% \begin{syntax}
+% \cs{DelimPrn}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in parentheses.
+% \end{function}
+%
+% \begin{function}{\DelimBrk}
+% \begin{syntax}
+% \cs{DelimBrk}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in square brackets.
+% \end{function}
+%
+% \begin{function}{\DelimBrc}
+% \begin{syntax}
+% \cs{DelimBrc}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in curly braces.
+% \end{function}
+%
+% \begin{function}{\DelimGl}
+% \begin{syntax}
+% \cs{DelimGl}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in angle brackets.
+% \end{function}
+%
+% \begin{function}{\DelimVrt}
+% \begin{syntax}
+% \cs{DelimVrt}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in vertical brackets.
+% \end{function}
+%
+% \begin{function}{\DelimBbrk}
+% \begin{syntax}
+% \cs{DelimBbrk}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in Scott brackets (requires \cs{llbracket}, \cs{rrbracket} to be defined).
+% \end{function}
+%
+% \begin{function}{\DelimVvrt}
+% \begin{syntax}
+% \cs{DelimVvrt}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in double vertical bars.
+% \end{function}
+%
+%
+% \subsection{Configuration and options}\label{sec:options}
+% \begin{function}{\DelimSetup}
+% \begin{syntax}
+% \cs{DelimSetup}\marg{options}
+% \end{syntax}
+% \pkg{jmsdelim} can be customized along a few axes.
+% \end{function}
+%
+% \begin{variable}{size commands}
+% The option \cmd{size commands} is a comma-separated list which contains a list of sizing commands for delimiters, from smallest to largest. By default, the standard \cs{big}, \cs{Big}, \cs{bigg}, \cs{Bigg} sequence is replaced by custom versions that behave differently in script size. This behavior can be overridden as follows:
+% \begin{verbatim}
+% \DelimSetup{
+% size commands = {\relax,\big,\Big,\bigg,\Bigg}
+% }
+% \end{verbatim}
+% \end{variable}
+%
+%
+%
+% \section{Interface for macro authors}
+%
+% The internals of \pkg{jmsdelim} are implemented in \pkg{expl3}.
+%
+% \begin{function}{jmsdelim_scope:nn}
+% \begin{syntax}
+% "jmsdelim_scope:nn" \Arg{pre} \Arg{post}
+% \end{syntax}
+% This is the fundamental control structure for authors of custom delimiting commands; \meta{pre} is a block of code that renders things to temporary boxes, and \Arg{post} is code that \emph{uses} these boxes, placing them relative to some delimiters. The function of \cs{jmsdelim_scope:nn} is to watch for the delimiter size updates induced by \meta{pre}, and set the delimiter size commands correctly before executing \meta{post}. Both \meta{pre} and \meta{post} are to be executed in the same block level.
+% \end{function}
+%
+% \begin{function}{jmsdelim_hbox_set:Nn}
+% \begin{syntax}
+% "jmsdelim_hbox_set:Nn" \Arg{box} \Arg{contents}
+% \end{syntax}
+% This command is meant to be used inside the \meta{pre} block of \cs{jmsdelim_scope:nn}; it typesets \meta{contents} in the box named by \meta{box}, correctly propagating the math style.
+% \end{function}
+%
+% \begin{function}{jmsdelim_size_cmd:}
+% \begin{syntax}
+% "jmsdelim_size_cmd:"
+% \end{syntax}
+% This command is meant to be used inside the \meta{post} block of \cs{jmsdelim_scope:nn} to set the size of a given delimiter; it behaves like \cs{big}, etc.
+% \end{function}
+%
+% \begin{function}{jmsdelim_surround:nnn}
+% \begin{syntax}
+% "jmsdelim_surround:nnn" \Arg{left} \Arg{right} \Arg{body}
+% \end{syntax}
+% This routine surrounds \meta{body} with the delimiters \meta{left} and \meta{right} of the appropriate size respectively.
+% \end{function}
+%
+% \begin{function}{jmsdelim_between:nnn}
+% \begin{syntax}
+% "jmsdelim_between:nnn" \Arg{sep} \Arg{lbody} \Arg{rbody}
+% \end{syntax}
+% This routine separates \meta{lbody} and \meta{rbody} with a separator \meta{sep} of the appropriate size.
+% \end{function}
+%
+% \begin{function}{jmsdelim_between:nnnnn}
+% \begin{syntax}
+% "jmsdelim_between:nnnnn" \Arg{left} \Arg{sep} \Arg{right} \Arg{lbody} \Arg{rbody}
+% \end{syntax}
+% This routine separates \meta{lbody} and \meta{rbody} with a separator \meta{sep} of the appropriate size, and surrounds the result by \meta{left} and \meta{right} respectively of the same size.
+% \end{function}
+%
+% \begin{function}{jmsdelim_protect:n}
+% \begin{syntax}
+% "jmsdelim_protect:n" \Arg{body}
+% \end{syntax}
+% Executes \meta{body} in a sandbox, preventing its state updates from bubbling upward.
+% \end{function}
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{jmsdelim} implementation}
+% \label{sec:jmsdelim:implementation}
+%
+%
+% \begin{macrocode}
+%<*package>
+\RequirePackage{expl3}
+\RequirePackage{l3keys2e}
+\RequirePackage{xparse}
+\RequirePackage{ifluatex}
+\RequirePackage{scalerel}
+\ProvidesExplPackage {jmsdelim} {2022/03/11} {0.2.0}
+ {Compositional delimiter sizing}
+%<@@=jmsdelim>
+% \end{macrocode}
+%
+% We first declare the options for the \pkg{jmsdelim} module, together with their default valeus.
+%
+% \begin{macrocode}
+\keys_define:nn { jmsdelim } {
+ size~commands .clist_set:N = \l@@_size_cmds,
+}
+\keys_set:nn { jmsdelim } {
+ size~commands = {relax,jmsdelim_big:n,jmsdelim_Big:n,jmsdelim_bigg:n,jmsdelim_Bigg:n},
+}
+
+\cs_new:Npn \jmsdelim_big:n #1 {
+ {\mathchoice{\big #1} {\big #1}{\big #1}{#1}}
+}
+
+\cs_new:Npn \jmsdelim_Big:n #1 {
+ {\mathchoice{\Big #1} {\Big #1}{\big #1}{#1}}
+}
+
+\cs_new:Npn \jmsdelim_bigg:n #1 {
+ {\mathchoice{\bigg #1} {\bigg #1}{\big #1}{#1}}
+}
+
+\cs_new:Npn \jmsdelim_Bigg:n #1 {
+ {\mathchoice{\Bigg #1} {\Bigg #1}{\big #1}{#1}}
+}
+% \end{macrocode}
+%
+% Then, we set up the internal state that will be used by \pkg{jmsdelim}.
+% \begin{macrocode}
+\int_new:N \g@@_size
+\int_new:N \g@@_size_up
+\int_gset:Nn \g@@_size {0}
+\int_gset:Nn \g@@_size_up {0}
+% \end{macrocode}
+%
+% \subsection{Internals}
+%
+% \begin{macro}{\@@_clist_item:Nn}
+% A version of \cs{clist_item:Nn} that takes the last item when the index is out of bounds.
+% \begin{macrocode}
+\cs_new:Npn \@@_clist_item:Nn #1 #2 {
+ \clist_item:Nn #1 {
+ \int_min:nn { #2 } {\clist_count:N #1}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{@@_setup_sizes:}
+% \begin{macrocode}
+\cs_new:Npn \@@_setup_sizes: {
+ \int_gset:Nn \g@@_size {
+ \int_max:nn \g@@_size \g@@_size_up
+ }
+
+ \cs_set_eq:Nc \jmsdelim_size_cmd: {
+ \@@_clist_item:Nn \l@@_size_cmds {
+ \g@@_size + 1
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+%
+% \subsubsection{Preservation of math styles}
+% It is fairly complicated and inefficient to preserve math styles across boxes. There is an appropriate way to do so in Lua\LaTeX, which we use conditionally if available; otherwise, we make use of \cs{ThisStyle} and \cs{SavedStyle} from \pkg{scalerel}~\citep{segletes:scalerel}, which are more inefficient. In fact, it becomes impossible to use \pkg{jmsdelim} in PDF\LaTeX{} when the nesting is sufficiently deep, whereas there is no corresponding blowup in Lua\LaTeX. The \cs{ignoremathstyle} and \cs{discernmathstyle} macros from \pkg{scalerel} can be used to turn off the inefficient preservation of math styles locally, such as in the case where no subscripts are used.
+
+% \begin{macro}{@@_luatex_save_mathstyle:N}
+% \begin{macrocode}
+\cs_new:Npn \@@_luatex_save_mathstyle:N #1 {
+ \ifcase \mathstyle
+ \cs_set_eq:NN #1 \displaystyle
+ \or
+ \cs_set_eq:NN #1 \crampeddisplaystyle
+ \or
+ \cs_set_eq:NN #1 \textstyle
+ \or
+ \cs_set_eq:NN #1 \crampedtextstyle
+ \or
+ \cs_set_eq:NN #1 \scriptstyle
+ \or
+ \cs_set_eq:NN #1 \crampedscriptstyle
+ \or
+ \cs_set_eq:NN #1 \scriptscriptstyle
+ \or
+ \cs_set_eq:NN #1 \crampedscriptscriptstyle
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{@@_restore_mathstyle:n}
+% \begin{macrocode}
+\cs_new:Npn \@@_restore_mathstyle: {
+ \SavedStyle
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{@@_save_mathstyle:n}
+% \begin{macrocode}
+\cs_new:Npn \@@_save_mathstyle:n #1 {
+ \ifluatex
+ \@@_luatex_save_mathstyle:N \@@_restore_mathstyle:
+ #1
+ \else
+ \ThisStyle{#1}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Public interface for macro authors}
+%
+% \begin{macro}{jmsdelim_scope:nn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_scope:nn #1 #2 {
+ \group_begin:
+ \int_set:Nn \l_tmpa_int \g@@_size_up
+ \int_gset:Nn \g@@_size_up 0
+ \int_gset:Nn \g@@_size 0
+ \group_begin:
+ \@@_save_mathstyle:n {
+ #1
+ \@@_setup_sizes:
+ #2
+ }
+ \group_end:
+ \int_gset:Nn \g@@_size_up {\int_max:nn \g@@_size_up \l_tmpa_int}
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_hbox_set:Nn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_hbox_set:Nn #1 #2 {
+ \mode_if_math:TF
+ { \hbox_set:Nn #1 {$\m@th\@@_restore_mathstyle: #2$} }
+ { \hbox_set:Nn #1 { #2 } }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_surround:nnn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_surround:nnn #1 #2 #3 {
+ \jmsdelim_scope:nn {
+ \jmsdelim_hbox_set:Nn \l_tmpa_box {#3}
+ }{
+ \mathopen\jmsdelim_size_cmd: {#1}
+ \box_use:N \l_tmpa_box
+ \mathclose\jmsdelim_size_cmd: {#2}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_protect:n}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_protect:n #1 {
+ \group_begin:
+ \int_set:Nn \l_tmpa_int \g@@_size_up
+ \int_set:Nn \l_tmpb_int \g@@_size
+ \group_begin: #1 \group_end:
+ \int_gset:Nn \g@@_size_up \l_tmpa_int
+ \int_gset:Nn \g@@_size \l_tmpb_int
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{jmsdelim_between:nnn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_between:nnn #1 #2 #3 {
+ \jmsdelim_scope:nn {
+ \jmsdelim_hbox_set:Nn \l_tmpa_box {#2}
+ \jmsdelim_hbox_set:Nn \l_tmpb_box {#3}
+ }{
+ \box_use:N \l_tmpa_box
+ \mathrel{\jmsdelim_size_cmd: {#1}}
+ \box_use:N \l_tmpb_box
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_between:nnnnn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_between:nnnnn #1 #2 #3 #4 #5 {
+ \jmsdelim_scope:nn {
+ \jmsdelim_hbox_set:Nn \l_tmpa_box {#4}
+ \jmsdelim_hbox_set:Nn \l_tmpb_box {#5}
+ }{
+ \mathopen\jmsdelim_size_cmd: {#1}
+ \box_use:N \l_tmpa_box
+ \mathrel{\jmsdelim_size_cmd: {#2}}
+ \box_use:N \l_tmpb_box
+ \mathclose\jmsdelim_size_cmd: {#3}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+% \subsection{Document interace}
+
+
+% \begin{macro}{DelimMin}
+% \begin{macrocode}
+\NewDocumentCommand\DelimMin{m}{
+ \int_gset:Nn \g@@_size_up {\int_max:nn \g@@_size_up {#1}}
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{DelimSurround}
+% \begin{macrocode}
+\NewDocumentCommand\DelimSurround{mmm}{
+ \jmsdelim_surround:nnn {#1} {#2} {#3}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBetween}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBetween{mmm}{
+ \jmsdelim_between:nnn {#1} {#2} {#3}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBetweenSurround}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBetweenSurround{mmmmm}{
+ \jmsdelim_between:nnnnn {#1} {#2} {#3} {#4} {#5}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimProtect}
+% \begin{macrocode}
+\NewDocumentCommand\DelimProtect{m}{
+ \jmsdelim_protect:n {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimPrn}
+% \begin{macrocode}
+\NewDocumentCommand\DelimPrn{m}{
+ \jmsdelim_surround:nnn {(} {)} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBrk}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBrk{m}{
+ \jmsdelim_surround:nnn {[} {]} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBrc}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBrc{m}{
+ \jmsdelim_surround:nnn {\lbrace} {\rbrace} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBbrk}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBbrk{m}{
+ \jmsdelim_surround:nnn {\llbracket} {\rrbracket} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimGl}
+% \begin{macrocode}
+\NewDocumentCommand\DelimGl{m}{
+ \jmsdelim_surround:nnn {\langle} {\rangle} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimVrt}
+% \begin{macrocode}
+\NewDocumentCommand\DelimVrt{m}{
+ \jmsdelim_surround:nnn {\lvert} {\rvert} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimVvrt}
+% \begin{macrocode}
+\NewDocumentCommand\DelimVvrt{m}{
+ \jmsdelim_surround:nnn {\lVert} {\rVert} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\ProcessKeysPackageOptions {jmsdelim}
+% \end{macrocode}
+%
+%\iffalse meta-comment
+%</package>
+%\fi
+%
+% \end{implementation}
+%
+% \printbibliography
+% \PrintIndex
+%
+\endinput
+%
+% end of file
diff --git a/macros/latex/contrib/jmsdelim/jmsdelim.ins b/macros/latex/contrib/jmsdelim/jmsdelim.ins
new file mode 100644
index 0000000000..77bc0a4529
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/jmsdelim.ins
@@ -0,0 +1,15 @@
+%% Copyright (C) 2019 by Jonathan Sterling
+%%
+%% This file may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+
+\input l3docstrip.tex
+\keepsilent \askforoverwritefalse
+\generate{\file{jmsdelim.sty}{\from{jmsdelim.dtx}{package}}}
+\endbatchfile
diff --git a/macros/latex/contrib/jmsdelim/jmsdelim.pdf b/macros/latex/contrib/jmsdelim/jmsdelim.pdf
new file mode 100644
index 0000000000..0199f3b2bb
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/jmsdelim.pdf
Binary files differ
diff --git a/macros/latex/contrib/jmsdelim/refs.bib b/macros/latex/contrib/jmsdelim/refs.bib
new file mode 100644
index 0000000000..13c0e80f20
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/refs.bib
@@ -0,0 +1,13 @@
+@misc{oberdick:mleftright,
+ author = {Oberdick, Heiko},
+ date = {2016-05-16},
+ title = {The {\ttfamily mleftright} package},
+ url = {https://ctan.org/pkg/mleftright}
+}
+
+@misc{segletes:scalerel,
+ title = {{\ttfamily scalerel} -- Constrained scaling and stretching of objects},
+ author = {Segletes, Steven B.},
+ date = {2016-12-29},
+ url = {https://ctan.org/pkg/scalerel}
+}
diff --git a/macros/latex/contrib/matapli/README.md b/macros/latex/contrib/matapli/README.md
index 27f34ab2cd..5b3113fcfc 100644
--- a/macros/latex/contrib/matapli/README.md
+++ b/macros/latex/contrib/matapli/README.md
@@ -2,11 +2,11 @@
matapli --- class for the French journal "MATAPLI" of the SMAI,
website: [http://smai.emath.fr/spip.php?article27](http://smai.emath.fr/spip.php?article27)
-version 1.0.0 dated 2021/01/20
+version 1.2.0 dated 2022/03/11
## License
-This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version 2005/12/01 or later.
+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.
diff --git a/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf b/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
index 2bc1f4f568..0dd1753a2a 100644
--- a/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
+++ b/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
Binary files differ
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk b/macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk
deleted file mode 100644
index 652dea93c5..0000000000
--- a/macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk
+++ /dev/null
@@ -1,310 +0,0 @@
-# Fdb version 3
-["biber matapli-doc"] 1616421158 "matapli-doc.bcf" "matapli-doc.bbl" "matapli-doc" 1616421914
- "bibliomatapli.bib" 1616421155 850 aa3eadcb8538dc161b420a7f323e5635 ""
- "matapli-doc.bcf" 1616421913 107062 014a52080e6a1afb62e3f058365a9b26 "lualatex"
- (generated)
- "matapli-doc.bbl"
- "matapli-doc.blg"
-["lualatex"] 1616421908 "matapli-doc.tex" "matapli-doc.pdf" "matapli-doc" 1616421914
- "/home/mc/.local/share/fonts/Monaco.ttf" 1481486888 53361 8dbba50b8796bd02e1061ca5e4c42f90 ""
- "/home/mc/.texlive2020/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1604325614 5020205 a71f86a00d155ed4fc65d06be19ffb0e ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bold.luc" 1611070870 248858 ef6e7d3c3b855c01156b733390f82ea2 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bolditalic.luc" 1611070869 245010 d27d9bd1c22ab49923f74df5ead96523 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-italic.luc" 1611070870 250584 feb57ff216c2e14f96e3f69e9c2044d1 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-regular.luc" 1611070869 248089 b45c61dfbe216f5d97ca96ea5adf8f76 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinuskeyboard-regular.luc" 1614978297 34232 e81572bdf40faea8a8d49e9ce10a9666 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmath-regular.luc" 1614978292 525661 18af4dd045886955cdcd5b63b92847a0 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmono-regular.luc" 1614978291 72604 602999e7b2fa45d59e0f4245dd355cd8 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-bold.luc" 1614978291 293286 d30307d030d27c03ee49668c0ff0ef85 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-italic.luc" 1614978291 286966 51c5239b09fc7fc44698605daadf8f09 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-regular.luc" 1614978290 289079 abb66ebed7202c9875f1d087237dfecb ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bold.luc" 1614978288 298814 41d8b6b7abe853235895c224985d4dec ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bolditalic.luc" 1614978288 241609 bd96db1c2aea6a197e660055eea2d668 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-italic.luc" 1614978288 290399 f5fc4f12273808d99cff37955d5f7e1f ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-regular.luc" 1614978287 319416 95941d06f8e1aca13da416f5e678be25 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibold.luc" 1614978289 298139 07e516f139b61eeebf95dc7903b4624c ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibolditalic.luc" 1614978289 270847 85ff421df016d4174c5df80eb5cd1716 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifdisplay-regular.luc" 1614978298 283412 8faacaa0aeb4458d69875e80fb5e4050 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifinitials-regular.luc" 1614978298 11386 eff6bf85eda97173de956fcb0410ebcd ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-bold.luc" 1611053136 124231 42d328c8e3dd664332c1bc8b79507e69 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-regular.luc" 1611051955 123160 10fc8433e3bdd9df9e1ddd9c5e88ccf0 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/monaco.luc" 1611070870 26029 0b5ee0f0848cdc55c3fd1224f0436f84 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-lookup-cache.luc" 1616421055 11963 17763f62383d731809b9e9c1393dd4ef ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-names.luc" 1615841161 1521588 cbb7ae0591047e3119a4be7ab843f18d ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/nowacki/kurier/Kurier-Bold.otf" 1283981149 152340 b2bf65895b22cb94f788b7dcd022fd49 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/nowacki/kurier/Kurier-BoldItalic.otf" 1283981149 152468 a1f5ca7521c2ffdcbc6abdeeb6180f4e ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusMath-Regular.otf" 1614349376 522244 f4f19ab2865bd73c223acb18639e792f ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-Bold.otf" 1614349376 279844 1cdf519b1955e1f98376aa1b12db72cc ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-BoldItalic.otf" 1614349376 238532 0d93ac3d38db48521b59c814bd11a9a4 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-Italic.otf" 1614349376 318424 5d94bf5d3d613797f4e35766ddcc9a4c ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-Regular.otf" 1614349376 298384 725257cba9bd90c2dcd248a6eb58dc81 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm" 1136768653 1528 abec98dbc43e172678c11b3b9031252a ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1136768653 1512 f21f83efb36853c0b70002322c1ab3ad ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi7.tfm" 1136768653 1528 e2423ae06dc7dee599cceb79d1c9dc32 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm" 1136768653 1520 eccf95517727cb11801f4f1aee3a21b4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/french.ldf" 1602274830 67704 4c1daff3b397362294827ad011863ee0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/frenchb.lua" 1602274830 11015 821dd6e3947e678591ac2e54e09b1d37 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.def" 1614787532 117589 2d318e23058f24400b0b9b50ab4a6d32 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty" 1614787532 37894 d95431b65ed49cf1c2ca82b0d0682343 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel/luababel.def" 1614787532 55088 49430472d81666ea53d8fdef26d6276d ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/loadhyph/loadhyph-fr.tex" 1585259975 1204 7c98871bf49bd5cabf11311db2c995c4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/quote/hyph-quote-fr.tex" 1463215544 768 932fb2de51061ce3b014d22fad1d7ffe ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex" 1554502952 30353 4479446a11e1366b5a18e408bfbc3c19 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty" 1583617216 6501 4011d89d9621e0b0901138815ba5ff29 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty" 1572645307 488 4565444a3e75e59cb2702dc42e18f482 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1600895880 17859 4409f8f50cd365c68e684407e5350b1b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty" 1577834137 9610 e6a49e3e1565f75e68811ac72c53ff0c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua" 1593380077 9447 5e9f52f1871707a5d27dea360afbe4cb ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1601326656 992 855ff26741653ab54814101ca36e153c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1601326656 43820 1fef971b75380574ab35a0d37fd92608 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1601326656 19324 f4e4c6403dd0f1605fd20ed22fa79dea ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1601326656 6038 ccb406740cc3f03bbfb58ad504fe8c27 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1601326656 6944 e12f8f7a7364ddf66f93ba30fb3a3742 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1601326656 4883 42daaf41e27c3735286e23e48d2d7af9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1601326656 2544 8c06d2a7f0f469616ac9e13db6d2f842 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1601326656 44195 5e390c414de027626ca5e2df888fa68d ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1601326656 17311 2ef6b2e29e2fc6a2fc8d6d652176e257 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1601326656 21302 788a79944eb22192a4929e46963a3067 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1601326656 9690 01feb7cde25d4293ef36eef45123eb80 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1601326656 33335 dd1fa4814d4e51f18be97d88bf0da60c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1601326656 2965 4c2b1f4e0826925746439038172e5d6f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1601326656 5196 2cc249e0ee7e03da5f5f6589257b1e5b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1601326656 20726 d4c8db1e2e53b72721d29916314a22ea ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1601326656 35249 abd4adf948f960299a4b3d27c5dddf46 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1601326656 21989 fdc867d05d228316de137a9fc5ec3bbe ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1601326656 8893 e851de2175338fdf7c17f3e091d94618 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1608933718 11518 738408f795261b70ce8dd47459171309 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1609106292 188275 555994923a0cb0c4aff9710e303272bb ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1601326656 32995 ac577023e12c0e4bd8aa420b2e852d1a ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1601326656 521 8e224a7af69b7fee4451d1bf76b46654 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1601326656 13391 84d29568c13bdce4133ab4a214711112 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1601326656 104935 184ed87524e76d4957860df4ce0cd1c3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1601326656 10165 cec5fa73d49da442e56efc2d605ef154 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1601326656 28178 41c17713108e0795aac6fef3d275fbca ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1601326656 9989 c55967bf45126ff9b061fa2ca0c4694f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1601326656 3865 ac538ab80c5cf82b345016e474786549 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1601326656 10925 139ac69ce3e9a1892add56d0b818cf97 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1608933718 7854 4176998eeefd8745ac6d2d4bd9c98451 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1601326656 3379 781797a101f647bab82741a99944a229 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1601326656 92405 f515f31275db273f97b9d8f52e1b0736 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1601326656 37376 11cd75aac3da1c1b152b2848f30adc14 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1601326656 8471 c2883569d03f69e8e1cabfef4999cfd7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1601326656 21201 08d231a2386e2b61d64641c50dc15abd ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1601326656 16121 346f9013d34804439f7436ff6786cef7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1606168878 43260 c5ced91ac9ecf66ab0674d57bda14c1f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1609106292 465 311958b39a263956b78fd69c4bc8a85c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1601326656 926 2963ea0dcf6cc6c0a770b69ec46a477b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1601326656 5546 f3f24d7898386cb7daac70bdd2c4d6dc ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def" 1606168878 13244 6674e4de0678d77c2d7465acc4ea20d7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1601326656 60544 7aef020a49f066dc86a26e7719af2a98 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1601326656 1896 b8e0ca0ac371d74c0ca05583f6313c91 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1601326656 7778 53c8b5623d80238f6a20aa1df1868e63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1606168878 23997 a4bed72405fa644418bea7eac2887006 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1606168878 36938 2b5b0039ae51cc081ebb25d84b8a3408 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1601326656 37431 9abe862035de1b29c7a677f3205e3d9f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1601326656 4494 af17fb7efeafe423710479858e42fa7e ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1601326656 7251 fb18c67117e09c64de82267e12cd8aa4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1601326656 28579 1cdb9cf41947e1e5889d97a41f9bb448 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1606168878 6860 2503857fc7e280acd60acdfa6c8c90c4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/CaseFolding.txt" 1584044743 82810 5f9103a43f1de6931ccd535dc2d04777 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/PropList.txt" 1584044743 126063 09a6b8a9bf45d76e1051f087476c584a ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/ScriptExtensions.txt" 1584044743 21036 0498414f4b3ea003decdfbdc05d5eee4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/Scripts.txt" 1584044743 175811 5f82197ad754fd20cee117a97732d384 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/SpecialCasing.txt" 1584044743 16830 681d4e1ebc39c3362fbd6c293070a8ea ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt" 1584044743 1851767 85879f1976cc8eb739ee5585a93938e2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/WordBreakProperty.txt" 1603745856 103240 40f00b28bda4ea42f0d09ea1cf5a646a ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1605910342 19231 3cbf682090baecad8e17a66b7a271ed1 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1605910342 7677 cf3e6aa6a8d444f55327f61df80bfa0c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty" 1601675358 87353 2c21ff5f2e32e1bf714e600924d810db ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1609451599 2973 00085839f5881178c538db5970d3c38e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1610149055 2596 b3a02e33035865e9f0457e064d436fb8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty" 1580683321 14742 0d173bd349a3411c545b594a97fb0700 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty" 1601675358 4947 8cb7717f0cc771eca0fda15160c7fee9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/ltluatex.lua" 1601675358 19071 5eca6644e86be740ddc21c18c9b79330 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/ts1enc.def" 1580683321 7764 996679026d0382957cdad45a528f4fa8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx" 1609451401 1818 9ed166ac0a9204a8ebe450ca09db5dde ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/standard.bbx" 1609451401 25680 409c3f3d570418bc545e8065bebd0688 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.cfg" 1342308459 69 249fa6df04d948e51b6d5c67bea30c42 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.def" 1609451401 91946 e09bee3cd84fdc4250d6c8ee794f6a70 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty" 1609451401 506356 ad896deba0d157daf8e7a259dbff05c8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty" 1609451401 8433 72f8188742e7214b7068f345cd0287ac ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-compat.def" 1609451401 13379 ae6b07c49ed3315284c100c6d2572fab ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-dm.def" 1609451401 32359 780383f3a2aaa99ffa09ced7a3363e81 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-unicode.def" 1609451401 3786 1f89d14780f0ad89ab94652b37f4e9b8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx" 1510525977 4578 2d37f6a8c72f47aacef79870545a713d ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/lbx/french.lbx" 1609451401 34452 9eac1852cf5b9814d771334eebfeaee0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bkm-pdftex.def" 1604871679 8609 8ac7db65d9617618cf703bd16c1bd0b8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty" 1604871679 18237 5cbdfe9ef383a557f780a0a1f45cdb1c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty" 1137109962 1360 df2086bf924b14b72d6121fe9502fcdb ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty" 1561238569 51697 f8f08183cd2080d9d18a41432d651dfb ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty" 1399239813 4378 f429f0da968c278653359293040a8f52 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1602711807 11772 8d0db0794e6aeb45348f60bbe3a3e093 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1601931149 46845 3b58f70c6e861a13d927bff09d35ecbc ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty" 1611267390 43232 77215847fb982a414a0d843125e271d4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty" 1582325645 151809 9b29a813bdecad31db825cd830187121 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.cfg" 1532898934 549 c4adac819276241fea8eb79c5ab7b99e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.lua" 1582325645 3021 d32bd2298bedcca160fe737883f3615e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty" 1582325645 1655 a1ec6f2670a260de25415d37e9c60e97 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/luatex.def" 1601931164 19052 d9eaaf91d2a0b7bc9d7f373ebd8346f3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty" 1601675358 18272 a8c6a275b34ab6717ceeb8fa04b104e2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty" 1601675358 7919 20fdfdd783821971c55bc8ee918cbe63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty" 1580683321 2590 e3b24ff953e5b58d924f163d25380312 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty" 1601675358 1757 1eb057df64f13cee0efe9d12f933a1e9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hluatex.def" 1614468400 50811 c3fdee4a073620a647093b5fb5d37547 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def" 1614468400 1777 31eee4f3f5c138e44a4e16abfcaefa41 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty" 1614468400 230839 177eac084bda18ae827a77792a17292e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty" 1614468400 13242 133e617c5eebffdd05e421624022b267 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def" 1614468400 14132 3a8b7a8250bdb5871e322188be7c9ff6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/puenc.def" 1614468400 117004 7c05c6dde5b2b6a14f97dd4137739212 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls" 1601242066 232890 6dce6e5bd50b0eb46858f4e0a15f6bbf ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty" 1601242066 95060 8380c93cbe27347269875ef45d11e14b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty" 1601242066 21853 9e6272db95e3fde57b1effa42b4ce855 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty" 1601242066 9923 31d3db16e68a7aaf1a332070e86b06e8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty" 1601242066 2962 f87bece18d386f62887914a9e1742548 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty" 1601242066 1954 c76cd0d2e16cfbd0b8ed1fac0f88e87e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrsize11pt.clo" 1601242066 6383 4147a8128f986702d8952d5da6421109 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty" 1601242066 106047 3c92bee4025534d1b56f29872b3fb03b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty" 1601242066 55995 23fad029cff0dc77d57f6d5c6722cff1 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1602274869 22521 d2fceb764a442a2001d257ef11db7618 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def" 1614677732 27535 f5cb7a8e54b60941b7c7fa8469436788 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.lua" 1612304173 11443 3672c95ea895d2ba29caa9da5ca5973a ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty" 1613686676 6208 7497703c7e95fb22a69d3ed6f9024046 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty" 1615555296 4614 3d280c6851211796f3b4f2310e7af080 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty" 1615555310 6195 8bc989fdf3bb45de5ab646a95bf3352b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-generic.tex" 1615555310 80141 dd4859747b9d959c1acfee24fd462951 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1615555310 6289 682e18a28ebd34b27d72772c8a4cedcb ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/lualatexquotejobname.lua" 1308175312 1031 977f79ff10b802fc398926378bec58e9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty" 1610486378 25454 9223cad53d6f39308274b08f3c5ebf81 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg" 1585170648 1830 e31effa752c61538383451ae21332364 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty" 1585170648 80964 64e57373f36316e4a09b517cbf1aba2e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty" 1585170648 204271 bae5b2d457283e99567249c1990510be ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty" 1585170648 93649 5c560d0867c5758cf33716b703b23a26 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty" 1585170648 90075 280a31c119f13eac0a3dfaff2137635b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty" 1585170648 77022 ee25ce086f4a79d8cf73bac6f94c02a5 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.def" 1284153563 1620 fb1c32b818f2058eca187e5c41dfae77 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty" 1284153563 6187 b27afc771af565d3a9ff1ca7d16d0d46 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty" 1275236382 7002 8fdf43c505e48e13c2cea042a8a8671c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1615069272 54497 58ccf247b8e81d55ca6f10c5082d335f ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/ppluatex.def" 1615069272 5892 c2eabab521447179380378cdb8a3616a ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1601326656 1090 bae35ef70b3168089ef166db3e66f5b2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1601326656 410 615550c46f918fcbee37641b02a862d9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1601326656 21013 f4ff83d25bb56552493b030f27c075ae ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1601326656 989 c49c8ae06d96f8b15869da7428047b1e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1601326656 339 c2e180022e3afdb99c7d0ea5ce469b7d ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1601326656 306 c56a323ca5bf9242f54474ced10fca71 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1601326656 443 8c872229db56122037e86bcda49e14f3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1601326656 348 ee405e64380c11319f0e249fed57e6c5 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1601326656 274 5ae372b7df79135d240456a1c6f2cf9a ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1601326656 325 f9f16d12354225b7dd52a3321f085955 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex" 1602274907 34121 8ec71356b5c5efc54bb16a3fd3d265e0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex" 1602274907 3412 221e4e73ca8c0497cd6c2a6d563999e5 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex" 1602274907 13911 286a270d53cccbc2b629d274ec1e1c66 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex" 1602274907 2564 186e777e0a25c7b3232dbf26454d3d7b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty" 1602274907 87902 ee89fc2f39c9b113b38f3050b23a3c2e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty" 1580683321 31532 04852e45d7c17cb384689d2f83b628d3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty" 1601675358 7393 0d25b7703252c0e57705583c6e9127ec ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty" 1580683321 4546 3e6071704acf4f66392376b7b66ae02c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty" 1580422878 135753 2bb19d77b4dadf52bda2f85c0f8b9e38 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex" 1550269384 241265 52e61157376139e230f2a9ef4be9503f ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty" 1580422878 1474 aba4cc64ac109084e74e3e749fbcd54e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty" 1206401857 12403 a11204384274e5980f17ec9564088fa4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1605910342 4902 efb3d66683a2da2a232f71e3a571a899 ""
- "/usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.lua" 1601846097 1313 28342dc97f216f8150c33beea0e9a41c ""
- "/usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty" 1601846097 7875 b41b8a7eb9f0f95b146e05415cae7c14 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic-merged.lua" 1609451617 131468 fd1313508308a0eb9829063570435aca ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic.lua" 1609451617 2717 538b28c781d9675abf8ea106134f6a32 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-compat.lua" 1367794330 603 398583cb619d20952d67edcedae41608 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended-merged.lua" 1609451617 110513 18927093f376db6f759633b1df9ca47d ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended.lua" 1609451617 4858 1d0213aca5cd664173ccbc672f7cfe2f ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs.lua" 1609451617 3779 b5f9573f0df8b6653bae489078a3417b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-2021-01-07.lua" 1610835910 863258 ef54bfa34416e2c85fa48d3195c67fd2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-basics-gen.lua" 1599167189 12745 4bc43036e9796fccb0b8869f4b05bf2e ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua" 1610835910 32597 8e427ec79ced91d9fc6fbcece159d042 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-case.lua" 1609451516 6809 6c20d5dc2b2b4227f873e7df0fd25316 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua" 1610835910 15954 7c201914c79310d9e79e75dfc7ee982b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua" 1610835910 31151 589ca99522479a0929d6824bafa36f63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua" 1610835910 134863 4a0f9f3b500df0d8a8234a0954065e46 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua" 1610835910 1004 5506419bc583d450f252542b1105d6ce ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua" 1610835910 4047 a3c8c048b14a304d3352871014ef1343 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua" 1610835910 29002 33fdd06674606d043599dc4ea9b2a56b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua" 1610835910 13468 1c9a663bb7bfa650b93dcf01d5450675 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua" 1610835910 41599 8fdc1ba513a6026546b883259e559c7e ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua" 1610835910 19547 e3b832a9efc91c977044383640835069 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua" 1610835910 18645 1a518a55f6663ce13866416a5b94d6a4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua" 1610835910 8840 d169564522ac7194e7410d8263cd1b31 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua" 1610835910 11323 809e4afac4e070b619512461a6fedd90 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua" 1609451516 275 b19c9cc34cf1d676c39f872cfb41aef6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua" 1610835910 15068 db7b6c7791b4b909d12234620ff7973d ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua" 1610835910 12224 26fed1a76150718e05c8c56b1983ebdd ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua" 1610835910 30999 dba42cb2f6bbfa13b9a56d0e4a2b2f44 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua" 1610835910 10984 b387d9435738f7ce8cf1e6af86b565a6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua" 1610835910 2506 2b924be852e17191e651faf5a2097e12 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua" 1610835910 6317 de8b416497205d269b31674daef0f48b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua" 1610835910 2582 b07873bfeb7764f9b5b440cd6b170f63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua" 1610835910 6259 2413a2be98181fe77f7e110369194769 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua" 1610835910 7528 e07e112222777070250fbc980b2e6b85 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua" 1610835910 7589 1d7fd6ab63640cb6c8e2091ac5a57915 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload.lua" 1610835910 13788 c3df7754a82557bc3e50d0714ad8a67c ""
- "/usr/local/texlive/2020/texmf-var/tex/generic/config/language.dat" 1614974467 6621 0fac58620b70b79052771f04af663c13 ""
- "/usr/local/texlive/2020/texmf-var/web2c/luahbtex/lualatex.fmt" 1615906650 3325925 70ca792b3e31ddabecd385ff645a3972 ""
- "examples/couverture/couvertureModele.pdf" 1616419774 1173370 6f61c7b3a9b3a6f102b7ac62f216b8c7 ""
- "examples/modeleauteur/modele.pdf" 1616419827 1662982 2e3a8f65879df1b32bbb41e98ad197f7 ""
- "fond-doc.pdf" 1316964411 1309 210d7ac56417b4147880eaa5b23fff9a ""
- "matapli-doc.aux" 1616421913 25865 1464450fb9193c2f44628b3c97549168 "lualatex"
- "matapli-doc.bbl" 1616421159 5673 74ab530e175811934466283b50d2758b "biber matapli-doc"
- "matapli-doc.listing" 1616421913 149 2a7694c8d7071021da19ce673018b4fd "lualatex"
- "matapli-doc.out" 1616421912 0 d41d8cd98f00b204e9800998ecf8427e "lualatex"
- "matapli-doc.run.xml" 1616421913 2391 76b260fb0ced5cd688f1afc4120a523d "lualatex"
- "matapli-doc.tex" 1616421900 23941 23e574dcbf1dc8075e48ba7ca2ae34ef ""
- "matapli-doc.toc" 1616421913 5366 2023f97578692f30053d3601bb8e1c18 "lualatex"
- "matapli-title.pdf" 1608154596 4681 4b5026864dd6bbc082c118a0ca61a6d8 ""
- "mataplidoc.cls" 1611086777 6520 30e3922255be2c3d930a356f7243ed00 ""
- (generated)
- "matapli-doc.bcf"
- "matapli-doc.run.xml"
- "matapli-doc.listing"
- "matapli-doc.toc"
- "matapli-doc.aux"
- "matapli-doc.log"
- "matapli-doc.pdf"
- "matapli-doc.out"
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.fls b/macros/latex/contrib/matapli/doc/matapli-doc.fls
deleted file mode 100644
index 221037e11f..0000000000
--- a/macros/latex/contrib/matapli/doc/matapli-doc.fls
+++ /dev/null
@@ -1,742 +0,0 @@
-PWD /home/mc/MesDocuments/dauphine/matapli/matapli/doc
-INPUT /usr/local/texlive/2020/texmf-var/web2c/luahbtex/lualatex.fmt
-INPUT ./matapli-doc.tex
-OUTPUT matapli-doc.log
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/lualatexquotejobname.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ltluatex.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic-merged.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-compat.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended-merged.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-basics-gen.lua
-OUTPUT /home/mc/.texlive2020/texmf-var/m_t_x_t_e_s_t.tmp
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-2021-01-07.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/ScriptExtensions.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/Scripts.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/CaseFolding.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/PropList.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/WordBreakProperty.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/SpecialCasing.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/PropList.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-case.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.lua
-INPUT ./mataplidoc.cls
-INPUT ./mataplidoc.cls
-INPUT ./mataplidoc.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrsize11pt.clo
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrsize11pt.clo
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-names.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-regular.luc
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-generic.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.cfg
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-bold.luc
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkeyval.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkvutils.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/luababel.def
-INPUT /usr/local/texlive/2020/texmf-var/tex/generic/config/language.dat
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/luababel.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/french.ldf
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/french.ldf
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/frenchb.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/loadhyph/loadhyph-fr.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/quote/hyph-quote-fr.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-dm.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-dm.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-unicode.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-unicode.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-compat.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-compat.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/pgf.revision.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/pgf.revision.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfint.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/puenc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/puenc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hluatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hluatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ts1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ts1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-italic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bolditalic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibolditalic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-bold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-italic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmono-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmath-regular.luc
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinuskeyboard-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifdisplay-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifinitials-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-lookup-cache.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bolditalic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-italic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/monaco.luc
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/ppluatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/ppluatex.def
-INPUT ./matapli-doc.aux
-INPUT ./matapli-doc.aux
-OUTPUT matapli-doc.aux
-INPUT /usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
-INPUT /usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/lbx/french.lbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/lbx/french.lbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
-OUTPUT matapli-doc.bcf
-INPUT ./matapli-doc.bbl
-INPUT ./matapli-doc.bbl
-INPUT ./matapli-doc.bbl
-INPUT ./matapli-doc.bbl
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-OUTPUT matapli-doc.out
-OUTPUT matapli-doc.pdf
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bkm-pdftex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bkm-pdftex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty
-INPUT ./fond-doc.pdf
-INPUT ./fond-doc.pdf
-INPUT ./fond-doc.pdf
-INPUT ./matapli-title.pdf
-INPUT ./matapli-title.pdf
-INPUT ./matapli-title.pdf
-INPUT /home/mc/.texlive2020/texmf-var/fonts/map/pdftex/updmap/pdftex.map
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi7.tfm
-INPUT ./matapli-doc.toc
-INPUT ./matapli-doc.toc
-OUTPUT matapli-doc.toc
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./matapli-doc.aux
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.run.xml
-OUTPUT matapli-doc.run.xml
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.pdf b/macros/latex/contrib/matapli/doc/matapli-doc.pdf
index 1463d0cca5..0493c0cc1d 100644
--- a/macros/latex/contrib/matapli/doc/matapli-doc.pdf
+++ b/macros/latex/contrib/matapli/doc/matapli-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.tex b/macros/latex/contrib/matapli/doc/matapli-doc.tex
index 54ce37f851..d3f5ad080d 100644
--- a/macros/latex/contrib/matapli/doc/matapli-doc.tex
+++ b/macros/latex/contrib/matapli/doc/matapli-doc.tex
@@ -3,11 +3,11 @@
%%
%% -----------------------------------------------------------------------------
%% MATAPLI --- SMAI bundle of classes for the French journal "MATAPLI",
-%% version 1.0.0
+%% version 1.2.0
%%
%% author : Maxime Chupin
%% E-mail: chupin@ceremade.dauphine.fr
-%% Released under the LaTeX Project Public License v1.3 or later
+%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% -----------------------------------------------------------------------------
@@ -42,7 +42,7 @@
}
\vfill
\begin{center}
- Version 1.1, 22 mars 2021 \\
+ Version 1.2, 11 mars 2022 \\
\url{https://plmlab.math.cnrs.fr/mchupin/matapli}
\end{center}
%% == Page de garde ====================================================
diff --git a/macros/latex/contrib/matapli/tex/matapli.cls b/macros/latex/contrib/matapli/tex/matapli.cls
index f8e6e5b910..998da278ec 100644
--- a/macros/latex/contrib/matapli/tex/matapli.cls
+++ b/macros/latex/contrib/matapli/tex/matapli.cls
@@ -3,7 +3,7 @@
%%
%% -----------------------------------------------------------------------------
%% MATAPLI --- SMAI class for the French SMAI journal "MATAPLI",
-%% version 1.0.0
+%% version 1.2.0
%%
%% E-mail: chupin@ceremade.dauphine.fr
%% Released under the LaTeX Project Public License v1.3c or later
@@ -17,8 +17,8 @@
% on lance la syntax LaTeX3
\ExplSyntaxOn
\ProvidesExplClass{matapli}
-{2021/03/22}
-{1.1}
+{2022/03/11}
+{1.2}
{SMAI class for the French jornal MATAPLI}
% classe de base
@@ -471,6 +471,8 @@ unicode]{hyperref}
% pour générer la liste des auteurs et généré le cas échéant (s'il y a
% une minibio) des encarts avec la description des auteur·e·s.
\NewDocumentCommand\printauthors { o } {
+ % on veut aligner les encart pour les auteurs et autrices en bas de page.
+ ~\vfill
\tl_clear:N \l__matapli_auteurs_name_tl
\seq_clear:N \l__matapli_names_seq
\cs_generate_variant:Nn \regex_split:nnN {nVN}
@@ -544,14 +546,16 @@ unicode]{hyperref}
\tl_if_empty:NTF{\l__matapli_auteur_email_tl}{}{\textbf{Email~:}~\url{\tl_item:Nn \g__matapli_auteurs_email_list_tl {##1}}\par}
\tl_set:Nx \l__matapli_auteur_webpage_tl {\tl_item:Nn \g__matapli_auteurs_webpage_list_tl {##1}}
- \tl_if_empty:NTF{\l__matapli_auteur_webpage_tl}{}{\textbf{Site web~:}~\url{\tl_item:Nn \g__matapli_auteurs_webpage_list_tl {##1}}}
+ \tl_if_empty:NTF{\l__matapli_auteur_webpage_tl}{}{\textbf{Site~web~:}~\url{\tl_item:Nn \g__matapli_auteurs_webpage_list_tl {##1}}}
\end{tabularx}
}
\end{matapli@auteur}
}
+
} % fin boucle auteurs
+ \clearpage % on change de page avant
\iow_now:Nn \g_auxfile_iow {\end{matapliauteurtitre}}
\iow_close:N \g_auxfile_iow
\tl_clear:N \g__matapli_auteurs_first_last_names_list_tl
@@ -597,7 +601,6 @@ unicode]{hyperref}
% environnement interne de formattage de la présentation des auteur·e·s
\newenvironment{matapli@auteur}[1]{%
- ~\vfill
\setlength{\logowidth}{17pt}
\tcbset{%
arc=0pt,outer arc=0pt,colback=gray!10!white,colframe=gray!80!white,
@@ -607,7 +610,7 @@ unicode]{hyperref}
\begin{tcolorbox}[title={\large\bfseries #1}]%
\small
}%
- {\end{tcolorbox}\medskip\clearpage}
+ {\end{tcolorbox}\medskip}
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 2c086429fa..bfccc07f4e 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index e4f2286cf9..4e76c71235 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -1244,7 +1244,7 @@ qui sera créée par \pkg{nicematrix} et que l'utilisateur pourra utiliser pour
tracer des filets horizontaux (de manière similaire à |\hline|) ;
\item la clé |letter| prend en argument une lettre\footnote{Les lettres
- suivantes ne sont pas autorisées : \verb+lcrpmbVX:|()[]!@<>+} qui pourra être
+ suivantes ne sont pas autorisées : \verb+lcrpmbVX|()[]!@<>+} qui pourra être
utilisée par l'utilisateur dans le préambule d'un environnement à préambule
(comme |{NiceTabular}|) pour spécifier un filet vertical.
\end{itemize}
@@ -3323,9 +3323,9 @@ l'extension \pkg{xcolor} et elle n'est pas parfaitement compatible avec
L'extension \pkg{nicematrix} propose aussi une commande |\tabularnote| qui
permet de spécifier des notes qui seront composées à la fin du tableau avec une
longueur de ligne égale à la largeur du tableau (hors éventuelles colonnes
-extérieures). Sans surprise, cette commande n'est disponible que dans les
-environnements sans délimiteurs, c'est-à-dire |{NiceTabular}|, |{NiceArray}| et
-|{NiceMatrix}|.
+extérieures spécifiées par |first-col| et |last-col|). Sans surprise, cette
+commande n'est disponible que dans les environnements sans délimiteurs,
+c'est-à-dire |{NiceTabular}|, |{NiceArray}| et |{NiceMatrix}|.
En fait, cette commande n'est disponible que si l'extension \pkg{enumitem} a été
chargée (avant ou après \pkg{nicematrix}). Les notes sont en effet composées en
@@ -3467,6 +3467,7 @@ disponibles dans |\NiceMatrixOptions|. Ces clés ont un nom préfixé par |notes
\item |notes/enumitem-keys|
\item |notes/enumitem-keys-para|
\item |notes/code-before|
+\item |notes/detect-duplicates|
\end{itemize}
Pour la commmodité, il est aussi possible de fixer ces clés dans
|\NiceMatrixOptions| via une clé |notes| qui prend en argument une liste de
@@ -3601,6 +3602,14 @@ Si on souhaite, par exemple, que les notes soient composées en gris et en
\end{Verbatim}
On peut aussi mettre dans cette clé |\raggedright| ou |\RaggedRight| (cette
dernière est une commande de \pkg{ragged2e}).
+
+\item \colorbox{yellow!50}{\textbf{Nouveau 6.8}}\enskip À partir de la version
+6.8, les doublons dans les notes de tableau sont détectés par défaut: lorsque
+plusieurs commandes |\tabularnote| sont utilisées avec le même argument, une
+seule note est insérée en fin de tableau (mais tous les labels sont marqués). Il
+est possible de désactiver cette fonctionnalité avec la clé
+|notes/detect-duplicates| (sa valeur initiale est |true|).
+
\end{itemize}
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index a1196bba16..74e7b7c98f 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.7}
-\def\myfiledate{2022/03/02}
+\def\myfileversion{6.8}
+\def\myfiledate{2022/03/11}
%
%
%<*batchfile>
@@ -1225,10 +1225,6 @@ version 2005/12/01 or later.
% 11 & 12 & 13 & 14 & 15
% \end{NiceArray}\right)$
%
-% \bigskip
-% It's possible to change in \pkg{nicematrix} the letter used to specify a
-% vertical dotted line with the option |letter-for-dotted-lines| available in
-% |\NiceMatrixOptions|.
%
% \bigskip
% \emph{Remark}: In the package \pkg{array} (on which the package
@@ -1254,7 +1250,7 @@ version 2005/12/01 or later.
% user in order to draw horizontal rules (similarly to |\hline|);
%
% \item the key |letter| takes in as argument a letter\footnote{The following
-% letters are forbidden: \verb+lcrpmbVX:|()[]!@<>+} that the user will use in
+% letters are forbidden: \verb+lcrpmbVX|()[]!@<>+} that the user will use in
% the preamble of an environment with preamble (such as |{NiceTabular}| in order
% to specify a vertical rule.
% \end{itemize}
@@ -3279,12 +3275,12 @@ version 2005/12/01 or later.
%
% \subsection{The notes of tabular}
%
-% The package \pkg{nicematrix} also provides a command |\tabularnote| which gives
-% the ability to specify notes that will be composed at the end of the array
-% with a width of line equal to the width of the array (excepted the potential
-% exterior columns). With no surprise, that command is available only in the
-% environments without delimiters, that is to say |{NiceTabular}|, |{NiceArray}|
-% and |{NiceMatrix}|.
+% The package \pkg{nicematrix} also provides a command |\tabularnote| which
+% gives the ability to specify notes that will be composed at the end of the
+% array with a width of line equal to the width of the array (excepted the
+% potential exterior columns specified by |first-col| and |last-col|). With no
+% surprise, that command is available only in the environments without
+% delimiters, that is to say |{NiceTabular}|, |{NiceArray}| and |{NiceMatrix}|.
%
% In fact, this command is available only if the extension \pkg{enumitem} has
% been loaded (before or after \pkg{nicematrix}). Indeed, the notes are composed
@@ -3552,6 +3548,13 @@ version 2005/12/01 or later.
% \end{Verbatim}
% It's also possible to add |\raggedright| or |\RaggedRight| in that key (|\RaggedRight|
% is a command of \pkg{ragged2e}).
+%
+% \item \colorbox{yellow!50}{\textbf{New 6.8}}\enskip Since the version 6.8, the
+% duplicates in the notes of a tabular are detected by default: if several
+% commands |\tabularnote| are used in a tabular with the same argument, only one
+% note is inserted at the end of the tabular (but all the labels are composed,
+% of course). It's possible to de-activate that feature with the key
+% |notes/detect-duplicates| (whose initial value is |true|).
% \end{itemize}
%
%
@@ -5691,6 +5694,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_error:n { \msg_error:nn { nicematrix } }
\cs_new_protected:Npn \@@_error:nn { \msg_error:nnn { nicematrix } }
+\cs_generate_variant:Nn \@@_error:nn { n x }
\cs_new_protected:Npn \@@_error:nnn { \msg_error:nnnn { nicematrix } }
\cs_new_protected:Npn \@@_fatal:n { \msg_fatal:nn { nicematrix } }
\cs_new_protected:Npn \@@_fatal:nn { \msg_fatal:nnn { nicematrix } }
@@ -5707,30 +5711,34 @@ version 2005/12/01 or later.
% \bigskip
% \subsection*{Technical definitions}
%
+% \begin{macrocode}
+\tl_new:N \l_@@_argspec_tl
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_generate_variant:Nn \seq_gset_split:Nnn { N V n }
+\cs_generate_variant:Nn \keys_define:nn { n x }
+% \end{macrocode}
+%
% \medskip
% \begin{macrocode}
-\bool_new:N \c_@@_arydshln_loaded_bool
-\bool_new:N \c_@@_booktabs_loaded_bool
-\bool_new:N \c_@@_enumitem_loaded_bool
-\bool_new:N \c_@@_tabularx_loaded_bool
-\bool_new:N \c_@@_tikz_loaded_bool
-\bool_new:N \c_@@_varwidth_loaded_bool
\hook_gput_code:nnn { begindocument } { . }
{
\@ifpackageloaded { varwidth }
- { \bool_set_true:N \c_@@_varwidth_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_varwidth_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_varwidth_loaded_bool { \c_false_bool } }
\@ifpackageloaded { arydshln }
- { \bool_set_true:N \c_@@_arydshln_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_arydshln_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_arydshln_loaded_bool { \c_false_bool } }
\@ifpackageloaded { booktabs }
- { \bool_set_true:N \c_@@_booktabs_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_booktabs_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_booktabs_loaded_bool { \c_false_bool } }
\@ifpackageloaded { enumitem }
- { \bool_set_true:N \c_@@_enumitem_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_enumitem_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_enumitem_loaded_bool { \c_false_bool } }
\@ifpackageloaded { tabularx }
- { \bool_set_true:N \c_@@_tabularx_loaded_bool }
+ { \bool_const:Nn \c_@@_tabularx_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_tabularx_loaded_bool { \c_false_bool } }
{ }
\@ifpackageloaded { tikz }
{
@@ -5748,11 +5756,12 @@ version 2005/12/01 or later.
% |\AtBeginDocument| the correct version of some commands. The tokens
% |\exp_not:N| are mandatory.
% \begin{macrocode}
- \bool_set_true:N \c_@@_tikz_loaded_bool
+ \bool_const:Nn \c_@@_tikz_loaded_bool \c_true_bool
\tl_const:Nn \c_@@_pgfortikzpicture_tl { \exp_not:N \tikzpicture }
\tl_const:Nn \c_@@_endpgfortikzpicture_tl { \exp_not:N \endtikzpicture }
}
{
+ \bool_const:Nn \c_@@_tikz_loaded_bool \c_false_bool
\tl_const:Nn \c_@@_pgfortikzpicture_tl { \exp_not:N \pgfpicture }
\tl_const:Nn \c_@@_endpgfortikzpicture_tl { \exp_not:N \endpgfpicture }
}
@@ -5761,22 +5770,25 @@ version 2005/12/01 or later.
%
% We test whether the current class is \cls{revtex4-1} (deprecated) or
% \cls{revtex4-2} because these classes redefines |\array| (of \pkg{array}) in a
-% way incompatible with our programmation. At the date January 2021, the current
+% way incompatible with our programmation. At the date January 2022, the current
% version \cls{revtex4-2} is 4.2e (compatible with \pkg{booktabs}).
%
% \begin{macrocode}
-\bool_new:N \c_@@_revtex_bool
\@ifclassloaded { revtex4-1 }
- { \bool_set_true:N \c_@@_revtex_bool }
- { }
-\@ifclassloaded { revtex4-2 }
- { \bool_set_true:N \c_@@_revtex_bool }
- { }
+ { \bool_const:Nn \c_@@_revtex_bool \c_true_bool }
+ {
+ \@ifclassloaded { revtex4-2 }
+ { \bool_const:Nn \c_@@_revtex_bool \c_true_bool }
+ {
% \end{macrocode}
% Maybe one of the previous classes will be loaded inside another class... We
% try to detect that situation.
% \begin{macrocode}
-\cs_if_exist:NT \rvtx@ifformat@geq { \bool_set_true:N \c_@@_revtex_bool }
+ \cs_if_exist:NT \rvtx@ifformat@geq
+ { \bool_const:Nn \c_@@_revtex_bool \c_true_bool }
+ { \bool_const:Nn \c_@@_revtex_bool \c_false_bool }
+ }
+ }
% \end{macrocode}
%
% \bigskip
@@ -5871,11 +5883,11 @@ version 2005/12/01 or later.
% We have to know whether \pkg{colortbl} is loaded in particular for the
% redefinition of |\everycr|.
% \begin{macrocode}
-\bool_new:N \c_@@_colortbl_loaded_bool
+\bool_new:N \l_@@_colortbl_loaded_bool
\hook_gput_code:nnn { begindocument } { . }
{
\@ifpackageloaded { colortbl }
- { \bool_set_true:N \c_@@_colortbl_loaded_bool }
+ { \bool_set_true:N \l_@@_colortbl_loaded_bool }
{
% \end{macrocode}
% The command |\CT@arc@| is a command of \pkg{colortbl} which sets the color of
@@ -6037,11 +6049,11 @@ version 2005/12/01 or later.
% We want to know whether the package \pkg{siunitx} is loaded and, if it is
% loaded, we redefine the |S| columns of \pkg{siunitx}.
% \begin{macrocode}
-\bool_new:N \c_@@_siunitx_loaded_bool
+\bool_new:N \l_@@_siunitx_loaded_bool
\hook_gput_code:nnn { begindocument } { . }
{
\@ifpackageloaded { siunitx }
- { \bool_set_true:N \c_@@_siunitx_loaded_bool }
+ { \bool_set_true:N \l_@@_siunitx_loaded_bool }
{ }
}
% \end{macrocode}
@@ -6054,7 +6066,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \bool_if:nTF { ! \c_@@_siunitx_loaded_bool }
+ \bool_if:nTF { ! \l_@@_siunitx_loaded_bool }
{ \cs_set_eq:NN \@@_renew_NC@rewrite@S: \prg_do_nothing: }
{
\cs_new_protected:Npn \@@_renew_NC@rewrite@S:
@@ -6209,6 +6221,13 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
+% The following key corresponds to the key |notes/detect_duplicates|.
+% \begin{macrocode}
+\bool_new:N \l_@@_notes_detect_duplicates_bool
+\bool_set_true:N \l_@@_notes_detect_duplicates_bool
+% \end{macrocode}
+%
+% \bigskip
% If the user uses |{NiceArray}| or |{NiceTabular}| the flag
% |\l_@@_NiceArray_bool| will be raised.
% \begin{macrocode}
@@ -6277,7 +6296,7 @@ version 2005/12/01 or later.
% |vlism| stands for \emph{vertical lines in sub-matrices}.
% \begin{macrocode}
\tl_new:N \l_@@_letter_vlism_tl
-% \end{macrocode}
+% \end{macrocode}
%
% The list of the columns where vertical lines in sub-matrices (vlism) must be
% drawn. Of course, the actual value of this sequence will be known after the
@@ -6305,7 +6324,8 @@ version 2005/12/01 or later.
% \emph{environment} whether we are in a command of \pkg{nicematrix} or in an
% environment of \pkg{nicematrix}. The default value is \emph{environment}.
% \begin{macrocode}
-\tl_set:Nn \g_@@_com_or_env_str { environment }
+\tl_new:N \g_@@_com_or_env_str
+\tl_gset:Nn \g_@@_com_or_env_str { environment }
% \end{macrocode}
%
% \bigskip
@@ -6356,11 +6376,18 @@ version 2005/12/01 or later.
\int_new:N \l_@@_old_iRow_int
\int_new:N \l_@@_old_jCol_int
% \end{macrocode}
-%
% The TeX counters |\c@iRow| and |\c@jCol| will be created in the beginning of
% |{NiceArrayWithDelims}| (if they don't exist previously).
%
% \bigskip
+% The following sequence will contain the names (without backslash) of the
+% commands created by |custom-line| (commands used by the final user in order to
+% draw horizontal rules).
+% \begin{macrocode}
+\seq_new:N \l_@@_custom_line_commands_seq
+% \end{macrocode}
+%
+% \bigskip
% The following token list corresponds to the key |rules/color| available
% in the environments.
% \begin{macrocode}
@@ -6833,13 +6860,18 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% The following counter will be used to count the number of successive tabular
-% notes such as in
-% |\tabularnote{Note 1}\tabularnote{Note 2}\tabularnote{Note 3}|.
-% In the tabular, the labels of those nodes are composed as a comma
-% separated list (e.g. \textsuperscript{\textit{a},\textit{b},\textit{c}}).
% \begin{macrocode}
-\int_new:N \l_@@_number_of_notes_int
+\seq_new:N \l_@@_notes_labels_seq
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\newcounter{nicematrix_draft}
+\cs_new_protected:Npn \@@_notes_format:n #1
+ {
+ \setcounter { nicematrix_draft } { #1 }
+ \@@_notes_style:n { nicematrix_draft }
+ }
% \end{macrocode}
%
% \bigskip
@@ -6933,18 +6965,33 @@ version 2005/12/01 or later.
{ \@@_error:n { tabularnote~forbidden } }
{
% \end{macrocode}
-% |\l_@@_number_of_notes_int| is used to count the number of successive tabular
-% notes such as in
-% |\tabularnote{Note 1}\tabularnote{Note 2}\tabularnote{Note 3}|.
-% We will have to compose the labels of theses notes as a comma separated list
-% (e.g. \textsuperscript{\emph{a},\emph{b},\emph{c}}).
-% \begin{macrocode}
- \int_incr:N \l_@@_number_of_notes_int
-% \end{macrocode}
-% We expand the content of the note at the point of use of
-% |\tabularnote| as does |\footnote|.
+% You have to see whether the argument of |\tabularnote| has yet been used as
+% argument of another |\tabularnote| in the same tabular. In that case, there
+% will be only one note (for both commands |\tabularnote|) at the end of the
+% tabular. We search the argument of our command |\tabularnote| in the
+% |\g_@@_tabularnotes_seq|. The position in the sequence will be stored in
+% |\l_tmpa_int| (0 if the text is not in the sequence yet).
% \begin{macrocode}
- \seq_gput_right:Nn \g_@@_tabularnotes_seq { #1 }
+ \int_zero:N \l_tmpa_int
+ \bool_if:NT \l_@@_notes_detect_duplicates_bool
+ {
+ \seq_map_indexed_inline:Nn \g_@@_tabularnotes_seq
+ {
+ \tl_if_eq:nnT { #1 } { ##2 }
+ { \int_set:Nn \l_tmpa_int { ##1 } \seq_map_break: }
+ }
+ }
+ \int_compare:nNnTF \l_tmpa_int = 0
+ {
+ \stepcounter { tabularnote }
+ \seq_put_right:Nx \l_@@_notes_labels_seq
+ { \@@_notes_format:n { \int_use:c { c @ tabularnote } } }
+ \seq_gput_right:Nn \g_@@_tabularnotes_seq { #1 }
+ }
+ {
+ \seq_put_right:Nx \l_@@_notes_labels_seq
+ { \@@_notes_format:n { \int_use:N \l_tmpa_int } }
+ }
\peek_meaning:NF \tabularnote
{
% \end{macrocode}
@@ -6962,14 +7009,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_notes_label_in_tabular:n
{
- \stepcounter { tabularnote }
- \@@_notes_style:n { tabularnote }
- \prg_replicate:nn { \l_@@_number_of_notes_int - 1 }
- {
- ,
- \stepcounter { tabularnote }
- \@@_notes_style:n { tabularnote }
- }
+ \seq_use:Nnnn
+ \l_@@_notes_labels_seq { , } { , } { , }
}
}
% \end{macrocode}
@@ -6979,7 +7020,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\addtocounter { tabularnote } { -1 }
\refstepcounter { tabularnote }
- \int_zero:N \l_@@_number_of_notes_int
+ \seq_clear:N \l_@@_notes_labels_seq
\hbox_overlap_right:n { \box_use:N \l_tmpa_box }
% \end{macrocode}
% If the command |\tabularnote| is used exactly at the end of the cell, the
@@ -7564,6 +7605,8 @@ version 2005/12/01 or later.
}
} ,
enumitem-keys-para .value_required:n = true ,
+ detect-duplicates .bool_set:N = \l_@@_notes_detect_duplicates_bool ,
+ detect-duplicates .default:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~notes }
}
% \end{macrocode}
@@ -7684,14 +7727,16 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% By default, the specifier used in the preamble of the array (for example in
-% |{pNiceArray}|) to draw a vertical dotted line between two columns is the
-% colon ``|:|''. However, it's possible to change this letter with
-% |letter-for-dotted-lines| and, by the way, the letter ``|:|'' will remain free
-% for other packages (for example \pkg{arydshln}).
+% The key |letter-for-dotted-lines| is now obsolete. You will delete it in a
+% future version.
% \begin{macrocode}
letter-for-dotted-lines .code:n =
{
+ \@@_error:n { letter-for-dotted-lines }
+ \group_begin:
+ \globaldefs = 1
+ \@@_msg_redirect_name:nn { letter-for-dotted-lines } { none }
+ \group_end:
\tl_if_single_token:nTF { #1 }
{ \str_set:Nx \l_@@_letter_for_dotted_lines_str { #1 } }
{ \@@_error:n { One~letter~allowed } }
@@ -7707,9 +7752,10 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
+% The following string will initially be empty. It will be set by the key
+% 'letter-for-dotted-lines'.
% \begin{macrocode}
\str_new:N \l_@@_letter_for_dotted_lines_str
-\str_set_eq:NN \l_@@_letter_for_dotted_lines_str \c_colon_str
% \end{macrocode}
%
% \bigskip
@@ -8447,7 +8493,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_set_nopar:Npn \ialign
{
- \bool_if:NTF \c_@@_colortbl_loaded_bool
+ \bool_if:NTF \l_@@_colortbl_loaded_bool
{
\CT@everycr
{
@@ -8509,7 +8555,6 @@ version 2005/12/01 or later.
\cs_set_eq:NN \Vdots \@@_Vdots
\cs_set_eq:NN \Ddots \@@_Ddots
\cs_set_eq:NN \Iddots \@@_Iddots
- \cs_set_eq:NN \hdottedline \@@_hdottedline:
\cs_set_eq:NN \Hline \@@_Hline:
\cs_set_eq:NN \Hspace \@@_Hspace:
\cs_set_eq:NN \Hdotsfor \@@_Hdotsfor:
@@ -8522,6 +8567,8 @@ version 2005/12/01 or later.
\cs_set_eq:NN \diagbox \@@_diagbox:nn
\cs_set_eq:NN \NotEmpty \@@_NotEmpty:
\cs_set_eq:NN \RowStyle \@@_RowStyle:n
+ \seq_map_inline:Nn \l_@@_custom_line_commands_seq
+ { \cs_set_eq:cc { ##1 } { nicematrix - ##1 } }
\bool_if:NT \l_@@_colortbl_like_bool \@@_colortbl_like:
\bool_if:NT \l_@@_renew_dots_bool \@@_renew_dots:
% \end{macrocode}
@@ -8629,12 +8676,12 @@ version 2005/12/01 or later.
{
\bool_set_true:N \l_@@_last_row_without_value_bool
\bool_if:NT \g_@@_aux_found_bool
- { \int_set:Nn \l_@@_last_row_int { \seq_item:Nn \c_@@_size_seq 3 } }
+ { \int_set:Nn \l_@@_last_row_int { \seq_item:Nn \g_@@_size_seq 3 } }
}
\int_compare:nNnT \l_@@_last_col_int = { -1 }
{
\bool_if:NT \g_@@_aux_found_bool
- { \int_set:Nn \l_@@_last_col_int { \seq_item:Nn \c_@@_size_seq 6 } }
+ { \int_set:Nn \l_@@_last_col_int { \seq_item:Nn \g_@@_size_seq 6 } }
}
% \end{macrocode}
%
@@ -8777,10 +8824,10 @@ version 2005/12/01 or later.
% (with potentially a last exterior row) and |\g_@@_col_total_int| is the number
% of the last column (with potentially a last exterior column).
% \begin{macrocode}
- \int_set:Nn \c@iRow { \seq_item:Nn \c_@@_size_seq 2 }
- \int_set:Nn \c@jCol { \seq_item:Nn \c_@@_size_seq 5 }
- \int_set_eq:NN \g_@@_row_total_int { \seq_item:Nn \c_@@_size_seq 3 }
- \int_set_eq:NN \g_@@_col_total_int { \seq_item:Nn \c_@@_size_seq 6 }
+ \int_set:Nn \c@iRow { \seq_item:Nn \g_@@_size_seq 2 }
+ \int_set:Nn \c@jCol { \seq_item:Nn \g_@@_size_seq 5 }
+ \int_set_eq:NN \g_@@_row_total_int { \seq_item:Nn \g_@@_size_seq 3 }
+ \int_set_eq:NN \g_@@_col_total_int { \seq_item:Nn \g_@@_size_seq 6 }
% \end{macrocode}
%
%
@@ -9684,7 +9731,8 @@ version 2005/12/01 or later.
{
\str_case_e:nnF { #1 }
{
- \l_@@_letter_for_dotted_lines_str { \@@_patch_preamble_xii:n #1 }
+ \l_@@_letter_for_dotted_lines_str
+ { \@@_patch_preamble_xii:n #1 }
\l_@@_letter_vlism_tl
{
\seq_gput_right:Nx \g_@@_cols_vlism_seq
@@ -9693,15 +9741,6 @@ version 2005/12/01 or later.
{ \exp_not:N ! { \skip_horizontal:N \arrayrulewidth } }
\@@_patch_preamble:n
}
- { : }
- {
- \bool_if:NTF \c_@@_arydshln_loaded_bool
- {
- \tl_gput_right:Nn \g_@@_preamble_tl { : }
- \@@_patch_preamble:n
- }
- { \@@_fatal:n { colon~without~arydshln } }
- }
}
% \end{macrocode}
% Now the case of a letter set by the final user for a customized rule. Such
@@ -9724,6 +9763,7 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+%
% \bigskip
% Now, we will list all the auxiliary functions for the different types of
% entries in the preamble of the array.
@@ -10340,8 +10380,7 @@ version 2005/12/01 or later.
\keys_set:nV { WithArrows / X-column } \l_tmpa_tl
\int_compare:nNnT \l_@@_weight_int < 0
{
- \exp_args:Nnx \@@_error:nn { negative~weight }
- { \int_use:N \l_@@_weight_int }
+ \@@_error:nx { negative~weight } { \int_use:N \l_@@_weight_int }
\int_set:Nn \l_@@_weight_int { - \l_@@_weight_int }
}
\int_gadd:Nn \g_@@_total_X_weight_int \l_@@_weight_int
@@ -11086,7 +11125,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\seq_gclear_new:N \g_@@_rows_seq
\tl_set_rescan:Nno \l_@@_end_of_row_tl { } \l_@@_end_of_row_tl
- \exp_args:NNV \seq_gset_split:Nnn \g_@@_rows_seq \l_@@_end_of_row_tl { #1 }
+ \seq_gset_split:NVn \g_@@_rows_seq \l_@@_end_of_row_tl { #1 }
% \end{macrocode}
% If the environment uses the option |last-row| without value (i.e. without
% saying the number of the rows), we have now the opportunity to know that
@@ -11105,7 +11144,7 @@ version 2005/12/01 or later.
% exit the first cell of the array.
% \begin{macrocode}
\seq_gpop_left:NN \g_@@_rows_seq \l_tmpa_tl
- \exp_args:NV \@@_line_with_light_syntax_i:n \l_tmpa_tl
+ \@@_line_with_light_syntax_i:V \l_tmpa_tl
\seq_map_function:NN \g_@@_rows_seq \@@_line_with_light_syntax:n
\@@_create_col_nodes:
\endarray
@@ -11126,8 +11165,10 @@ version 2005/12/01 or later.
\l_tmpa_tl
\seq_map_inline:Nn \g_@@_cells_seq { & ##1 }
}
+\cs_generate_variant:Nn \@@_line_with_light_syntax_i:n { V }
% \end{macrocode}
%
+%
% \bigskip
% The following command is used by the code which detects whether the
% environment is empty (we raise a fatal error in this case: it's only a
@@ -11622,6 +11663,7 @@ version 2005/12/01 or later.
{ > \@@_cell_begin:w #2 < \@@_cell_end: }
}
}
+\cs_generate_variant:Nn \@@_begin_of_NiceMatrix:nn { n e }
% \end{macrocode}
%
% \begin{macrocode}
@@ -11632,7 +11674,7 @@ version 2005/12/01 or later.
\str_gset:Nn \g_@@_name_env_str { #1 NiceMatrix }
\tl_set:Nn \l_@@_type_of_col_tl c
\keys_set:nn { NiceMatrix / NiceMatrix } { ##1 }
- \exp_args:Nne \@@_begin_of_NiceMatrix:nn { #1 } \l_@@_type_of_col_tl
+ \@@_begin_of_NiceMatrix:ne { #1 } \l_@@_type_of_col_tl
}
{ \use:c { end #1 NiceArray } }
}
@@ -11688,8 +11730,7 @@ version 2005/12/01 or later.
% definition of that columns in \pkg{tabularx} (this would result in an error in
% |{NiceTabularX}|).
% \begin{macrocode}
- \bool_if:NT \c_@@_tabularx_loaded_bool
- { \newcolumntype { X } { \@@_X } }
+ \bool_if:NT \c_@@_tabularx_loaded_bool { \newcolumntype { X } { \@@_X } }
\str_gset:Nn \g_@@_name_env_str { NiceTabularX }
\dim_zero_new:N \l_@@_width_dim
\dim_set:Nn \l_@@_width_dim { #1 }
@@ -11754,7 +11795,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\tl_gput_right:Nx \g_@@_aux_tl
{
- \seq_gset_from_clist:Nn \exp_not:N \c_@@_size_seq
+ \seq_gset_from_clist:Nn \exp_not:N \g_@@_size_seq
{
\int_use:N \l_@@_first_row_int ,
\int_use:N \c@iRow ,
@@ -13086,7 +13127,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_draw_unstandard_dotted_line:
{
\begin { scope }
- \exp_args:No \@@_draw_unstandard_dotted_line:n
+ \@@_draw_unstandard_dotted_line:o
{ \l_@@_xdots_line_style_tl , \l_@@_xdots_color_tl }
}
% \end{macrocode}
@@ -13103,6 +13144,7 @@ version 2005/12/01 or later.
\l_@@_xdots_up_tl
\l_@@_xdots_down_tl
}
+\cs_generate_variant:Nn \@@_draw_unstandard_dotted_line:n { o }
% \end{macrocode}
%
% \begin{macrocode}
@@ -14657,8 +14699,8 @@ version 2005/12/01 or later.
% from a list of pairs \textsl{key=value} of a definition of a customized rule
% (with the key |custom-line| of |\NiceMatrixOptions|).
% \begin{macrocode}
- letter .code:n = \prg_do_nothing: ,
- command .code:n = \prg_do_nothing:
+ % letter .code:n = \prg_do_nothing: ,
+ % command .code:n = \prg_do_nothing:
}
% \end{macrocode}
%
@@ -14809,8 +14851,13 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_vline_ii:
{
- \bool_set_false:N \l_@@_dotted_bool
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \bool_set_false:N \l_@@_dotted_boo
+% \end{macrocode}
+% We use |\keys_set_known:nV| and not |\keys_set:nV| because there may be the
+% keys |letter| and |command| in the list (these keys are present if the rule
+% comes from a customized line (created by |custom-line|).
+% \begin{macrocode}
+ \keys_set_known:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_vline_iv:
{
@@ -15059,7 +15106,12 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_hline_ii:
{
\bool_set_false:N \l_@@_dotted_bool
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+% \end{macrocode}
+% We use |\keys_set_known:nV| and not |\keys_set:nV| because there may be the
+% keys |letter| and |command| in the list (these keys are present if the rule
+% comes from a customized line (created by |custom-line|).
+% \begin{macrocode}
+ \keys_set_known:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_hline_iv:
{
@@ -15323,7 +15375,7 @@ version 2005/12/01 or later.
%
% \medskip
% The following command will create the customized rule (it is executed when the
-% final user uses the key |custom-line| in |\NiceMatrixOptions|).
+% final user uses the key |custom-line|, for example in |\NiceMatrixOptions|).
% \begin{macrocode}
\cs_new_protected:Npn \@@_custom_line:n #1
{
@@ -15380,7 +15432,12 @@ version 2005/12/01 or later.
\c_@@_forbidden_letters_str \l_@@_letter_str
{ \@@_error:n { Forbidden~letter } }
{
- \exp_args:Nnx \keys_define:nn { NiceMatrix / ColumnTypes }
+% \end{macrocode}
+% The final user can, locally, redefine a letter of column type. That's
+% compatible with the use of |\keys_define:nn|: the definition is local and may
+% overwrite a previous definition.
+% \begin{macrocode}
+ \keys_define:nx { NiceMatrix / ColumnTypes }
{
\l_@@_letter_str .code:n =
{ \@@_custom_line_i:n { \exp_not:n { #1 } } }
@@ -15404,16 +15461,14 @@ version 2005/12/01 or later.
+ \doublerulesep * ( \l_@@_tmpc_int - 1 )
}
}
- \exp_args:NnV \@@_define_h_custom_line:nn
- { #1 }
- \l_@@_rule_width_dim
+ \@@_define_h_custom_line:nV { #1 } \l_@@_rule_width_dim
}
}
}
% \end{macrocode}
%
% \begin{macrocode}
-\str_const:Nn \c_@@_forbidden_letters_str { lcrpmbVX:|()[]!@<> }
+\str_const:Nn \c_@@_forbidden_letters_str { lcrpmbVX|()[]!@<> }
% \end{macrocode}
%
% \medskip
@@ -15449,6 +15504,7 @@ version 2005/12/01 or later.
width .code:n = \dim_set:Nn \l_@@_rule_width_dim { #1 }
\bool_set_true:N \l_tmpb_bool ,
width .value_required:n = true ,
+ unknown .code:n = \@@_error:n { Unknown~key~for~custom-line }
}
% \end{macrocode}
%
@@ -15464,7 +15520,7 @@ version 2005/12/01 or later.
% We use |\cs_set:cpn| and not |\cs_new:cpn| because we want a local definition.
% Moreover, the command must \emph{not} be protected since it begins with |\noalign|.
% \begin{macrocode}
- \cs_set:cpn \l_@@_command_str
+ \cs_set:cpn { nicematrix - \l_@@_command_str }
{
\noalign
{
@@ -15473,7 +15529,9 @@ version 2005/12/01 or later.
{ \@@_hline:n { #1 , position = \int_eval:n { \c@iRow + 1 } } }
}
}
+ \seq_put_left:NV \l_@@_custom_line_commands_seq \l_@@_command_str
}
+\cs_generate_variant:Nn \@@_define_h_custom_line:nn { n V }
% \end{macrocode}
%
% The flag |\l_tmpa_bool| means that the key 'tikz' have been used. When the key
@@ -15500,6 +15558,9 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \begin{macrocode}
+\@@_custom_line:n { letter = : , command = hdottedline , dotted }
+% \end{macrocode}
%
% \subsubsection*{The key hvlines}
%
@@ -18728,6 +18789,7 @@ version 2005/12/01 or later.
}
{
The~available~keys~are~(in~alphabetic~order):~
+ allow-letter-for-dotted-lines,~
footnote,~
footnotehyper,~
renew-dots,~and
@@ -18747,6 +18809,14 @@ version 2005/12/01 or later.
transparent .value_forbidden:n = true,
footnote .bool_set:N = \c_@@_footnote_bool ,
footnotehyper .bool_set:N = \c_@@_footnotehyper_bool ,
+ allow-letter-for-dotted-lines .code:n =
+ {
+ \group_begin:
+ \globaldefs = 1
+ \@@_msg_redirect_name:nn { letter-for-dotted-lines } { none }
+ \group_end:
+ } ,
+ allow-letter-for-dotted-lines .value_forbidden:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~package }
}
\ProcessKeysOptions { NiceMatrix / Package }
@@ -18823,13 +18893,13 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\seq_new:N \c_@@_types_of_matrix_seq
-\seq_set_from_clist:Nn \c_@@_types_of_matrix_seq
+\seq_new:N \g_@@_types_of_matrix_seq
+\seq_gset_from_clist:Nn \g_@@_types_of_matrix_seq
{
NiceMatrix ,
pNiceMatrix , bNiceMatrix , vNiceMatrix, BNiceMatrix, VNiceMatrix
}
-\seq_set_map_x:NNn \c_@@_types_of_matrix_seq \c_@@_types_of_matrix_seq
+\seq_gset_map_x:NNn \g_@@_types_of_matrix_seq \g_@@_types_of_matrix_seq
{ \tl_to_str:n { #1 } }
% \end{macrocode}
%
@@ -18842,7 +18912,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_error_too_much_cols:
{
- \seq_if_in:NVTF \c_@@_types_of_matrix_seq \g_@@_name_env_str
+ \seq_if_in:NVTF \g_@@_types_of_matrix_seq \g_@@_name_env_str
{
\int_compare:nNnTF \l_@@_last_col_int = { -2 }
{ \@@_fatal:n { too~much~cols~for~matrix } }
@@ -18994,6 +19064,25 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nnn { Unknown~key~for~custom-line }
+ {
+ The~key~'\l_keys_key_str'~is~unknown~in~a~'custom-line'.~
+ If~you~go~on,~it~will~be~ignored. \\
+ For~a~list~of~the~available~keys,~type~H~<return>.
+ }
+ {
+ The~available~keys~are~(in~alphabetic~order):~
+ color,~
+ command,~
+ dotted,~
+ letter,~
+ multiplicity,~
+ sep-color,~
+ tikz,~and~width.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { Unknown~key~for~xdots }
{
As~for~now,~there~is~only~three~keys~available~here:~'color',~'line-style'~
@@ -19117,11 +19206,23 @@ version 2005/12/01 or later.
Your~use~of~'custom-line'~is~no-op~since~you~don't~have~used~the~
key~'letter'~(for~a~letter~for~vertical~rules)~nor~the~key~'command'~
(to~draw~horizontal~rules).\\
- However,~you~can~go~on.
+ However,~you~can~go~on.
}
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { letter-for-dotted-lines }
+ {
+ The~key~'letter-for-dotted-lines'~is~now~obsolete~(you~should~
+ use~'custom-line'~instead).~However,~you~can~go~on~for~this~time.~
+ If~you~don't~want~to~see~that~message~again,~you~should~
+ load~'nicematrix'~with~the~key~'allow-letter-for-dotted-lines'.~
+ However,~'letter-for-dotted-lines'~will~be~deleted~in~a~future~
+ version~of~'nicematrix'.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { Forbidden~letter }
{
You~can't~use~the~letter~'\l_@@_letter_str'~for~a~customized~line.\\
@@ -19495,6 +19596,7 @@ version 2005/12/01 or later.
bottomrule,~
code-after,~
code-before,~
+ detect-duplicates,~
enumitem-keys,~
enumitem-keys-para,~
para,~
@@ -19556,7 +19658,6 @@ version 2005/12/01 or later.
last-col,~
last-row,~
left-margin,~
- letter-for-dotted-lines,~
light-syntax,~
notes~(several~subkeys),~
nullify-dots,~
@@ -20336,6 +20437,13 @@ version 2005/12/01 or later.
%
% Key |tikz| in the key |borders| of a command |\Block|
%
+% \subsection*{Changes between version 6.7 and 6.8}
+%
+% In the notes of a tabular (with the command |\tabularnote|), the duplicates
+% are now detected: when several commands |\tabularnote| are used with the same
+% argument, only one note is created at the end of the tabular (but all the
+% labels are present, of course).
+%
% \PrintIndex
%
% \tableofcontents
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index 2bac20ae75..3629b4506a 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
new file mode 100644
index 0000000000..39ba3ccd03
--- /dev/null
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -0,0 +1,4569 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021-2022 by Jinwen XU
+% ------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of the LaTeX
+% Project Public License, either version 1.3c of this license or (at your option)
+% any later version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% \fi
+%
+%<*driver>
+\ProvidesFile{ProjLib.dtx}
+%</driver>
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+%
+%<*ProjLib>
+\ProvidesExplPackage
+ {ProjLib}
+ {2022/03/11} {}
+ {Collective interface of the ProjLib toolkit}
+%</ProjLib>
+%
+%<*projlib-author>
+\ProvidesExplPackage
+ {projlib-author}
+ {2022/03/11} {}
+ {Enhanced author information block}
+%</projlib-author>
+%
+%<*projlib-datetime>
+\ProvidesExplPackage
+ {projlib-datetime}
+ {2022/03/11} {}
+ {Convert numeric date-time string to natural language}
+%</projlib-datetime>
+%
+%<*projlib-draft>
+\ProvidesExplPackage
+ {projlib-draft}
+ {2022/03/11} {}
+ {Useful commands during draft stage}
+%</projlib-draft>
+%
+%<*projlib-font>
+\ProvidesExplPackage
+ {projlib-font}
+ {2022/03/11} {}
+ {Font selection and configuration}
+%</projlib-font>
+%
+%<*projlib-language>
+\ProvidesExplPackage
+ {projlib-language}
+ {2022/03/11} {}
+ {Multi-language configuration}
+%</projlib-language>
+%
+%<*projlib-logo>
+\ProvidesExplPackage
+ {projlib-logo}
+ {2022/03/11} {}
+ {The ProjLib logo}
+%</projlib-logo>
+%
+%<*projlib-math>
+\ProvidesExplPackage
+ {projlib-math}
+ {2022/03/11} {}
+ {Efficient math setup}
+%</projlib-math>
+%
+%<*projlib-paper>
+\ProvidesExplPackage
+ {projlib-paper}
+ {2022/03/11} {}
+ {Configuration of the paper style}
+%</projlib-paper>
+%
+%<*projlib-theorem>
+\ProvidesExplPackage
+ {projlib-theorem}
+ {2022/03/11} {}
+ {Configuration of theorem-like environments}
+%</projlib-theorem>
+
+%<*ProjLib>
+\keys_define:nn { ProjLib }
+ {
+ , author .bool_set:N = \l__projlib_main_author_bool
+ , author .initial:n = { false }
+ , author-block .bool_set:N = \l__projlib_main_author_bool
+ , author~block .bool_set:N = \l__projlib_main_author_bool
+ , author block .bool_set:N = \l__projlib_main_author_bool
+ , ams-fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , ams-fashion .initial:n = { false }
+ , ams~fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , ams fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , unknown .code:n = {
+ \PassOptionsToPackage { \CurrentOption } { projlib-language }
+ \PassOptionsToPackage { \CurrentOption } { projlib-author }
+ \PassOptionsToPackage { \CurrentOption } { projlib-datetime }
+ \PassOptionsToPackage { \CurrentOption } { projlib-draft }
+ \PassOptionsToPackage { \CurrentOption } { projlib-font }
+ \PassOptionsToPackage { \CurrentOption } { projlib-logo }
+ \PassOptionsToPackage { \CurrentOption } { projlib-math }
+ \PassOptionsToPackage { \CurrentOption } { projlib-paper }
+ \PassOptionsToPackage { \CurrentOption } { projlib-theorem }
+ }
+ }
+\ProcessKeysOptions { ProjLib }
+
+\bool_if:NT \l__projlib_main_amsfashion_bool
+ {
+ \bool_set_true:N \l__projlib_main_author_bool
+ \PassOptionsToPackage { amsfashion } { projlib-author }
+ }
+
+\RequirePackage { projlib-language }
+
+\bool_if:NT \l__projlib_main_author_bool
+ {
+ \RequirePackage { projlib-author }
+ }
+\RequirePackage { projlib-datetime }
+\RequirePackage { projlib-draft }
+\RequirePackage { projlib-font }
+\RequirePackage { projlib-logo }
+\RequirePackage { projlib-math }
+\RequirePackage { projlib-paper }
+
+\RequirePackage { projlib-theorem }
+%</ProjLib>
+%
+%<*projlib-author>
+\keys_define:nn { projlib-author }
+ {
+ , ams-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams-fashion .initial:n = { false }
+ , ams~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-author }
+
+\cs_if_exist:NT \subjclass { \endinput }
+
+\tl_new:N \g__projlib_author_font_author_tl
+\tl_new:N \g__projlib_author_font_address_tl
+\tl_new:N \g__projlib_author_font_curraddr_tl
+\tl_new:N \g__projlib_author_font_email_tl
+
+\tl_gset:Nn \g__projlib_author_font_author_tl { \normalsize \normalfont \scshape }
+\tl_gset:Nn \g__projlib_author_font_address_tl { \small \normalfont \itshape }
+\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \small \normalfont \itshape }
+\tl_gset:Nn \g__projlib_author_font_email_tl { \small \normalfont \ttfamily }
+
+\dim_new:N \g__projlib_author_length_innersep_dim
+\dim_new:N \g__projlib_author_length_sep_dim
+\dim_new:N \g__projlib_author_length_aftersep_dim
+
+\dim_set:Nn \g__projlib_author_length_innersep_dim { 0.3 \baselineskip }
+\dim_set:Nn \g__projlib_author_length_sep_dim { 0.5 \baselineskip }
+\dim_set:Nn \g__projlib_author_length_aftersep_dim { 0.3 \baselineskip }
+
+
+\bool_new:N \g__projlib_author_affil_already_exist_bool
+
+\NewCommandCopy \projlib_author_backup_author:w \author
+\RenewDocumentCommand \author { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \skip_vertical:n { \g__projlib_author_length_sep_dim }
+ { \g__projlib_author_font_author_tl #1 }
+ \bool_set_false:N \g__projlib_author_affil_already_exist_bool
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \address { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_address_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \curraddr { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_curraddr_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \email { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_email_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\RequirePackage { regexpatch }
+
+\xpatchcmd { \@maketitle } { \begin{tabular}[t]{c} } {} {
+ \xpatchcmd { \@maketitle } { \end{tabular} } {} {} {}
+} {}
+
+\tl_set:cn {@author} {}
+
+\hook_gput_code:nnn { cmd/@maketitle/before } { projlib-author }
+ {
+ \hook_gput_code:nnn { cmd/@author/before } { projlib-author }
+ {
+ \skip_vertical:n { - \g__projlib_author_length_sep_dim }
+ }
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \skip_vertical:n { - \baselineskip }
+ \bool_if:NT \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_aftersep_dim }
+ }
+ }
+ }
+
+\bool_if:NT \l__projlib_author_amsfashion_bool
+ {
+ \RequirePackage{ projlib-language }
+
+ \tl_new:N \g_projlib_author_keywordsname_style_tl
+ \tl_gset:Nn \g_projlib_author_keywordsname_style_tl {}
+
+ \projlib_langauge_define_multilingual_text:Nn \keywordsname
+ {
+ EN = \textsc{Key~words~and~phrases} ,
+ FR = \textsc{Mots~et~phrases~clés} ,
+ DE = \textsc{Schlüsselwörter~und~Phrasen} ,
+ IT = \textsc{Parole~e~frasi~chiave} ,
+ PT = \textsc{Palavras~e~frases~chave} ,
+ BR = \textsc{Palavras~e~frases~chave} ,
+ ES = \textsc{Palabras~y~frases~clave} ,
+ CN = 关键词 ,
+ TC = 關鍵詞 ,
+ JP = キーワード ,
+ RU = Ключевые~слова~и~фразы ,
+ }
+
+ \tl_new:N \g__projlib_author_keywords_tl
+ \NewDocumentCommand \keywords { m }
+ {
+ \tl_gset:Nn \g__projlib_author_keywords_tl { #1 }
+ }
+
+ \tl_new:N \g__projlib_author_dedicatory_tl
+ \NewDocumentCommand \dedicatory { m }
+ {
+ \tl_gset:Nn \g__projlib_author_dedicatory_tl { #1 }
+ }
+
+ \hook_gput_code:nnn { begindocument/before } { projlib-author }
+ {
+ \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
+ \tl_gset:Nn \footnotemark {}
+
+ \NewCommandCopy \projlib_author_backup_thanks:w \thanks
+ \cs_undefine:N \thanks
+
+ % measure the width of "*"
+ \hbox_set:Nn \l_tmpa_box { * }
+ \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
+
+ \cs_new_nopar:Nn \projlib_author_pre_thanks:n
+ {
+ \projlib_author_backup_thanks:w
+ {
+ \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
+ #1
+ }
+ }
+
+ \NewDocumentCommand \thanks { m }
+ {
+ \tl_if_blank:nF { #1 }
+ {
+ \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
+ {
+ \projlib_author_pre_thanks:n { #1 }
+ }
+ }
+ }
+
+ \NewCommandCopy \projlib_author_backup_my_author:w \author
+ \RenewDocumentCommand \author { m }
+ {
+ \projlib_author_backup_my_author:w
+ {
+ \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
+ \RenewCommandCopy \thanks \projlib_author_backup_thanks:w
+ #1
+ \cs_undefine:N \footnotemark
+ }
+ }
+ }
+
+ \NewCommandCopy \projlib_author_backup_abstract: \abstract
+ \NewCommandCopy \projlib_author_backup_endabstract: \endabstract
+ \cs_undefine:N \abstract
+ \cs_undefine:N \endabstract
+
+ \bool_new:N \g__projlib_author_already_maketitle_bool
+ \bool_gset_false:N \g__projlib_author_already_maketitle_bool
+ \bool_new:N \g__projlib_author_abstract_before_maketitle_bool
+ \bool_gset_false:N \g__projlib_author_abstract_before_maketitle_bool
+
+ \msg_redirect_name:nnn { scontents } { unsupported-verbatim } { info }
+ \RequirePackage{ scontents }
+ \newenvsc{abstract}[store-env=projlib-author-abstract,print-env=false]
+
+ \hook_gput_code:nnn { env/abstract/after } { projlib-author }
+ {
+ \bool_if:NTF \g__projlib_author_already_maketitle_bool
+ {
+ \projlib_author_backup_abstract:
+ \getstored{projlib-author-abstract}
+ \projlib_author_backup_endabstract:
+ }
+ {
+ \bool_gset_true:N \g__projlib_author_abstract_before_maketitle_bool
+ }
+ }
+
+ \hook_gput_code:nnn { begindocument/before } { projlib-author }
+ {
+ \makeatletter
+ \xpatchcmd { \@maketitle } { \@date }
+ {
+ \tl_if_blank:eTF { \@date } { \skip_vertical:n { -2 \baselineskip } } { \@date }
+ \tl_if_blank:eF { \g__projlib_author_dedicatory_tl }
+ {
+ \tl_if_blank:eT { \@date } { \skip_vertical:n { 2 \baselineskip } }
+ \par
+ \skip_vertical:n { -\parskip }
+ \skip_vertical:n { \baselineskip }
+ \textit{ \g__projlib_author_dedicatory_tl }
+ \tl_if_blank:eT { \@date }
+ {
+ \skip_vertical:n { -\parskip }
+ \skip_vertical:n { \dim_eval:n { -1.7 \baselineskip } }
+ }
+ }
+ } {} {}
+ \makeatother
+
+ \hook_gput_code:nnn { cmd/maketitle/before } { projlib-author }
+ {
+ \tl_if_blank:eF { \g__projlib_author_keywords_tl }
+ {
+ \projlib_author_pre_thanks:n
+ {
+ \group_begin:
+ \g_projlib_author_keywordsname_style_tl
+ \keywordsname .
+ \group_end:
+ \c_space_tl
+ \g__projlib_author_keywords_tl
+ }
+ }
+ }
+
+ \hook_gput_code:nnn { cmd/maketitle/after } { projlib-author }
+ {
+ \bool_if:NT \g__projlib_author_abstract_before_maketitle_bool
+ {
+ \projlib_author_backup_abstract:
+ \getstored{projlib-author-abstract}
+ \projlib_author_backup_endabstract:
+ }
+ \cs_undefine:N \address
+ \cs_undefine:N \curraddr
+ \cs_undefine:N \email
+ \cs_undefine:N \dedicatory
+ \cs_undefine:N \keywords
+ \bool_gset_true:N \g__projlib_author_already_maketitle_bool
+ }
+ }
+
+ \tl_new:N \l_projlib_author_subjclassname_tl
+ \tl_new:N \l_projlib_author_subjclass_tl
+ \msg_new:nnn { projlib-author }
+ { unknown-msc-edition }
+ { Unknown~edition~(#1)~of~Mathematics~Subject~Classification;~using~'2020' }
+ \NewDocumentCommand \subjclass { O{2020} m }
+ {
+ \tl_set:Nn \l_projlib_author_subjclass_tl { #2 }
+ \tl_if_exist:cTF { subjclassname_#1 }
+ {
+ \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_#1 } }
+ }
+ {
+ \msg_warning:nnn { projlib-author } { unknown-msc-edition } { #1 }
+ \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_2020 } }
+ }
+ \projlib_author_pre_thanks:n
+ {
+ \textit{ \l_projlib_author_subjclassname_tl . }
+ \enspace
+ \l_projlib_author_subjclass_tl .
+ }
+ }
+ \tl_const:cn { subjclassname_1991 } { \textup{1991}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2000 } { \textup{2000}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2010 } { \textup{2010}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2020 } { \textup{2020}~Mathematics~Subject~Classification }
+ }
+%</projlib-author>
+%
+%<*projlib-datetime>
+\tl_new:N \g__projlib_datetime_input_format_tl
+\tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day }
+
+\keys_define:nn { projlib-datetime }
+ {
+ , plain .bool_set:N = \l__projlib_datetime_plain_bool
+ , plain .initial:n = { false }
+ , year-month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ , day-month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , year-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , day-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-datetime }
+
+\bool_if:NT \l__projlib_datetime_plain_bool
+ {
+ \hook_gput_code:nnn { begindocument/before } { projlib-datetime }
+ {
+ \cs_set:Nn \projlib_datetime_text_superscript:n { #1 }
+ }
+ }
+
+\tl_new:N \l__projlib_datetime_output_format_tl
+\keys_define:nn { projlib-datetime-command }
+ {
+ , year-month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ , day-month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , year-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , day-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , only-year-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year-month } }
+ , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } }
+ , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } }
+ , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } }
+ , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } }
+ , unknown .code:n = {}
+ }
+
+\msg_new:nnnn { projlib-datetime }
+ { non-supported-date-format }
+ { The~date~format~"#1"~is~not~supported. }
+ { The~only~formats~available~are~"year-month-day",~ "month-day-year"~and~"day-month-year". }
+
+\cs_new:Nn \projlib_datetime_set_input_format:n
+ {
+ \str_case:nnF { #1 }
+ {
+ { year-month-day } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ { month-day-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ { day-month-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ }
+ {
+ \msg_error:nnn { projlib-datetime } { non-supported-date-format } { #1 }
+ }
+ }
+
+\NewDocumentCommand \ProjLibSetDatetimeInputFormat { m }
+ {
+ \projlib_datetime_set_input_format:n { #1 }
+ }
+
+
+\seq_new:N \l__projlib_datetime_date_seq
+
+\cs_new_protected:Nn \projlib_datetime_text_superscript:n
+ {
+ \group_begin:
+ \small
+ \textsuperscript { #1 }
+ \group_end:
+ }
+
+
+\cs_new:Nn \__projlib_datetime_today:n
+ {
+ \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
+ {
+ { only-year-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #1 _ \languagename :nn }
+ { \int_use:N \c_sys_year_int }
+ { \int_use:N \c_sys_month_int }
+ }
+ { only-month-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #1 _ \languagename :nn }
+ { \int_use:N \c_sys_month_int }
+ { \int_use:N \c_sys_day_int }
+ }
+ { only-year }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_year #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_year_int }
+ }
+ }
+ { only-month }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_month #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_month_int }
+ }
+ }
+ { only-day }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_day #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_day_int }
+ }
+ }
+ }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month_day #1 _ \languagename :nnn }
+ { \int_use:N \c_sys_year_int }
+ { \int_use:N \c_sys_month_int }
+ { \int_use:N \c_sys_day_int }
+ }
+ }
+
+\NewDocumentCommand \ProjLibtoday { O{} }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_today:n {}
+ \group_end:
+ }
+
+\NewDocumentCommand \ProjLibToday { O{} }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_today:n { _uppercase }
+ \group_end:
+ }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_year_month_day:n
+ {
+ \__projlib_datetime_display_year_month_day:en { #1 } {}
+ }
+
+\cs_new_protected:Nn \projlib_datetime_display_year_month_day_uppercase:n
+ {
+ \__projlib_datetime_display_year_month_day:en { #1 } { _uppercase }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_year_month_day:nn
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month_day #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_datetime_display_year_month_day:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_month_day_year:n
+{
+ \__projlib_datetime_display_month_day_year:en { #1 } {}
+}
+
+\cs_new_protected:Nn \projlib_datetime_display_month_day_year_uppercase:n
+{
+ \__projlib_datetime_display_month_day_year:en { #1 } { _uppercase }
+}
+
+\cs_new_protected:Nn \__projlib_datetime_display_month_day_year:nn
+{
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day_year #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+}
+\cs_generate_variant:Nn \__projlib_datetime_display_month_day_year:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_day_month_year:n
+{
+ \__projlib_datetime_display_day_month_year:en { #1 } {}
+}
+
+\cs_new_protected:Nn \projlib_datetime_display_day_month_year_uppercase:n
+{
+ \__projlib_datetime_display_day_month_year:en { #1 } { _uppercase }
+}
+
+\cs_new_protected:Nn \__projlib_datetime_display_day_month_year:nn
+{
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_day_month_year #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+}
+\cs_generate_variant:Nn \__projlib_datetime_display_day_month_year:nn { en }
+
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_year_month_day:n
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2}(|-\d{1,2}) \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_month_day_year:n
+ {
+ \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_pop_right:NN \l__projlib_datetime_date_seq \l_tmpa_tl
+ \seq_put_left:NV \l__projlib_datetime_date_seq \l_tmpa_tl
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_day_month_year:n
+ {
+ \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_reverse:N \l__projlib_datetime_date_seq
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_reverse:N \l__projlib_datetime_date_seq
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new:Nn \__projlib_datetime_input_format_to_str:
+ {
+ \str_case_e:nn { \g__projlib_datetime_input_format_tl }
+ {
+ { year-month-day } { year_month_day }
+ { month-day-year } { month_day_year }
+ { day-month-year } { day_month_year }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_date_according_to_format:nn
+ {
+ \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
+ \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
+ {
+ { only-year-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ }
+ { only-month-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+ { only-year }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ }
+ { only-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ }
+ { only-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_day #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+ }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_ \__projlib_datetime_input_format_to_str: #2 :n } { #1 }
+ }
+ }
+
+\NewDocumentCommand \ProjLibdate { O{} m O{} }
+ {
+ \group_begin:
+ \tl_if_blank:eF { #1 } { \keys_set:nn { projlib-datetime-command } { #1 } }
+ \tl_if_blank:eF { #3 } { \keys_set:nn { projlib-datetime-command } { #3 } }
+ \tl_set:Nx \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \exp_args:Ne \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } {}
+ \group_end:
+ }
+
+ \NewDocumentCommand \ProjLibDate { O{} m O{} }
+ {
+ \group_begin:
+ \tl_if_blank:eF { #1 } { \keys_set:nn { projlib-datetime-command } { #1 } }
+ \tl_if_blank:eF { #3 } { \keys_set:nn { projlib-datetime-command } { #3 } }
+ \tl_set:Nx \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \exp_args:Ne \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } { _uppercase }
+ \group_end:
+ }
+
+\ProvideDocumentCommand \Thedate {} { \ProjLibdate }
+\ProvideDocumentCommand \TheDate {} { \ProjLibDate }
+
+
+\int_new:N \l__projlib_datetime_day_of_week_day_int
+\int_new:N \l__projlib_datetime_day_of_week_month_int
+\int_new:N \l__projlib_datetime_day_of_week_year_int
+\int_new:N \l__projlib_datetime_day_of_week_century_int
+\int_new:N \l__projlib_datetime_day_of_week_result_int
+\cs_new:Nn \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_day_int { #3 }
+ \int_compare:nNnTF { #2 } < { 3 }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_eval:n { #1 - 1 } }
+ }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { #1 }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_century_int { \int_eval:n { \l__projlib_datetime_day_of_week_year_int / 100 } }
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_mod:nn { \l__projlib_datetime_day_of_week_year_int } { 100 } }
+ \int_set:Nn \l__projlib_datetime_day_of_week_month_int
+ {
+ \int_case:nnF { #2 }
+ {
+ { 1 } { 0 }
+ { 2 } { 3 }
+ { 3 } { 2 }
+ { 4 } { 5 }
+ { 5 } { 0 }
+ { 6 } { 3 }
+ { 7 } { 5 }
+ { 8 } { 1 }
+ { 9 } { 4 }
+ { 10 } { 6 }
+ { 11 } { 2 }
+ { 12 } { 4 }
+ } { 0 }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_eval:n
+ {
+ \l__projlib_datetime_day_of_week_day_int
+ + \l__projlib_datetime_day_of_week_month_int
+ +\l__projlib_datetime_day_of_week_year_int
+ + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_year_int } { 4 }
+ + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_century_int } { 4 }
+ - 2 * \l__projlib_datetime_day_of_week_century_int
+ }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_mod:nn { \l__projlib_datetime_day_of_week_result_int } { 7 }
+ }
+ \int_compare:nNnT { \l__projlib_datetime_day_of_week_result_int } < { 1 }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_eval:n { \l__projlib_datetime_day_of_week_result_int + 7 }
+ }
+ }
+ }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_week:n
+ {
+ \__projlib_datetime_display_week_according_to_format:en { #1 } {}
+ }
+
+\cs_new_protected:Nn \projlib_datetime_display_week_uppercase:n
+ {
+ \__projlib_datetime_display_week_according_to_format:en { #1 } { _uppercase }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_week_according_to_format:nn
+ {
+ \projlib_datetime_calculate_week_according_to_format:n { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_week #2 _ \languagename :n } { \l__projlib_datetime_day_of_week_result_int }
+ }
+\cs_generate_variant:Nn \__projlib_datetime_display_week_according_to_format:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_calculate_week_according_to_format:n
+ {
+ \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
+ \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+
+
+% For each language, there are 7 groups of functions:
+% 1) \projlib_datetime_display_year_month_day_<languagename>:nnn
+% \projlib_datetime_display_year_month_day_uppercase_<languagename>:nnn
+% 2) \projlib_datetime_display_year_month_<languagename>:nn
+% \projlib_datetime_display_year_month_uppercase_<languagename>:nn
+% 3) \projlib_datetime_display_month_day_<languagename>:nn
+% \projlib_datetime_display_month_day_uppercase_<languagename>:nn
+% 4) \projlib_datetime_display_year_<languagename>:n
+% \projlib_datetime_display_year_uppercase_<languagename>:n
+% 5) \projlib_datetime_display_month_<languagename>:n
+% \projlib_datetime_display_month_uppercase_<languagename>:n
+% 6) \projlib_datetime_display_day_<languagename>:n
+% \projlib_datetime_display_day_uppercase_<languagename>:n
+% 7) \projlib_datetime_display_week_<languagename>:n
+% \projlib_datetime_display_week_uppercase_<languagename>:n
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_english:nnn
+ {
+ \projlib_datetime_display_month_day_english:nn { #2 } { #3 }
+ ,\nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_english:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_english:nn { #2 } { #3 }
+ ,\nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_english:nn
+ {
+ \projlib_datetime_display_month_english:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_english:nn
+ {
+ \projlib_datetime_display_month_uppercase_english:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_english:nn
+ {
+ \projlib_datetime_display_month_english:n { #1 }
+ \nobreakspace
+ \projlib_datetime_display_day_english:n { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_english:nn
+ {
+ \projlib_datetime_display_month_uppercase_english:n { #1 }
+ \nobreakspace
+ \projlib_datetime_display_day_english:n { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_english:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_english:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_english:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { January }
+ { 2 } { February }
+ { 3 } { March }
+ { 4 } { April }
+ { 5 } { May }
+ { 6 } { June }
+ { 7 } { July }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { October }
+ { 11 } { November }
+ { 12 } { December }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_english:n
+ {
+ \projlib_datetime_display_month_english:n { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_english:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_english:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_english:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Monday }
+ { 2 } { Tuesday }
+ { 3 } { Wednesday }
+ { 4 } { Thursday }
+ { 5 } { Friday }
+ { 6 } { Saturday }
+ { 7 } { Sunday }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_english:n
+ {
+ \projlib_datetime_display_week_english:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_french:nnn
+ {
+ \projlib_datetime_display_month_day_french:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_french:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_french:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_french:nn
+ {
+ \projlib_datetime_display_month_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_french:nn
+ {
+ \projlib_datetime_display_month_uppercase_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_french:nn
+ {
+ \projlib_datetime_display_day_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_month_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_french:nn
+ {
+ \projlib_datetime_display_month_day_french:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_french:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_french:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janvier }
+ { 2 } { février }
+ { 3 } { mars }
+ { 4 } { avril }
+ { 5 } { mai }
+ { 6 } { juin }
+ { 7 } { juillet }
+ { 8 } { août }
+ { 9 } { septembre }
+ { 10 } { octobre }
+ { 11 } { novembre }
+ { 12 } { décembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janvier }
+ { 2 } { Février }
+ { 3 } { Mars }
+ { 4 } { Avril }
+ { 5 } { Mai }
+ { 6 } { Juin }
+ { 7 } { Juillet }
+ { 8 } { Août }
+ { 9 } { Septembre }
+ { 10 } { Octobre }
+ { 11 } { Novembre }
+ { 12 } { Décembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lundi }
+ { 2 } { mardi }
+ { 3 } { mercredi }
+ { 4 } { jeudi }
+ { 5 } { vendredi }
+ { 6 } { samedi }
+ { 7 } { dimanche }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lundi }
+ { 2 } { Mardi }
+ { 3 } { Mercredi }
+ { 4 } { Jeudi }
+ { 5 } { Vendredi }
+ { 6 } { Samedi }
+ { 7 } { Dimanche }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_ngerman:nnn
+ {
+ \projlib_datetime_display_month_day_ngerman:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_ngerman:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_ngerman:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_ngerman:nn
+ {
+ \projlib_datetime_display_month_ngerman:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn
+ {
+ \projlib_datetime_display_month_uppercase_ngerman:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_ngerman:nn
+ {
+ \projlib_datetime_display_day_ngerman:n { #2 }
+ .\nobreakspace
+ \projlib_datetime_display_month_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn
+ {
+ \projlib_datetime_display_month_day_ngerman:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_ngerman:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_ngerman:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Januar }
+ { 2 } { Februar }
+ { 3 } { März }
+ { 4 } { April }
+ { 5 } { Mai }
+ { 6 } { Juni }
+ { 7 } { Juli }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { Oktober }
+ { 11 } { November }
+ { 12 } { Dezember }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Januar }
+ { 2 } { Februar }
+ { 3 } { März }
+ { 4 } { April }
+ { 5 } { Mai }
+ { 6 } { Juni }
+ { 7 } { Juli }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { Oktober }
+ { 11 } { November }
+ { 12 } { Dezember }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_ngerman:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_ngerman:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Montag }
+ { 2 } { Dienstag }
+ { 3 } { Mittwoch }
+ { 4 } { Donnerstag }
+ { 5 } { Freitag }
+ { 6 } { Samstag }
+ { 7 } { Sonntag }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_ngerman:n
+ {
+ \projlib_datetime_display_week_ngerman:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_italian:nnn
+ {
+ \projlib_datetime_display_month_day_italian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_italian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_italian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_italian:nn
+ {
+ \projlib_datetime_display_month_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_italian:nn
+ {
+ \projlib_datetime_display_month_uppercase_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_italian:nn
+ {
+ \projlib_datetime_display_day_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_month_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_italian:nn
+ {
+ \projlib_datetime_display_month_day_italian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_italian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_italian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { gennaio }
+ { 2 } { febbraio }
+ { 3 } { marzo }
+ { 4 } { aprile }
+ { 5 } { maggio }
+ { 6 } { giugno }
+ { 7 } { luglio }
+ { 8 } { agosto }
+ { 9 } { settembre }
+ { 10 } { ottobre }
+ { 11 } { novembre }
+ { 12 } { dicembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Gennaio }
+ { 2 } { Febbraio }
+ { 3 } { Marzo }
+ { 4 } { Aprile }
+ { 5 } { Maggio }
+ { 6 } { Giugno }
+ { 7 } { Luglio }
+ { 8 } { Agosto }
+ { 9 } { Settembre }
+ { 10 } { Ottobre }
+ { 11 } { Novembre }
+ { 12 } { Dicembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_italian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_italian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lunedì }
+ { 2 } { martedì }
+ { 3 } { mercoledì }
+ { 4 } { giovedì }
+ { 5 } { venerdì }
+ { 6 } { sabato }
+ { 7 } { domenica }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lunedì }
+ { 2 } { Martedì }
+ { 3 } { Mercoledì }
+ { 4 } { Giovedì }
+ { 5 } { Venerdì }
+ { 6 } { Sabato }
+ { 7 } { Domenica }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_portuguese:nnn
+ {
+ \projlib_datetime_display_month_day_portuguese:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_portuguese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_portuguese:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_portuguese:nn
+ {
+ \projlib_datetime_display_month_portuguese:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn
+ {
+ \projlib_datetime_display_month_uppercase_portuguese:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_portuguese:nn
+ {
+ \projlib_datetime_display_day_portuguese:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_uppercase_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn
+ {
+ \projlib_datetime_display_month_day_portuguese:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_portuguese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_portuguese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janeiro }
+ { 2 } { fevereiro }
+ { 3 } { março }
+ { 4 } { abril }
+ { 5 } { maio }
+ { 6 } { junho }
+ { 7 } { julho }
+ { 8 } { agosto }
+ { 9 } { setembro }
+ { 10 } { outubro }
+ { 11 } { novembro }
+ { 12 } { dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janeiro }
+ { 2 } { Fevereiro }
+ { 3 } { Março }
+ { 4 } { Abril }
+ { 5 } { Maio }
+ { 6 } { Junho }
+ { 7 } { Julho }
+ { 8 } { Agosto }
+ { 9 } { Setembro }
+ { 10 } { Outubro }
+ { 11 } { Novembro }
+ { 12 } { Dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_portuguese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_portuguese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { segunda-feira }
+ { 2 } { terça-feira }
+ { 3 } { quarta-feira }
+ { 4 } { quinta-feira }
+ { 5 } { sexta-feira }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Segunda-feira }
+ { 2 } { Terça-feira }
+ { 3 } { Quarta-feira }
+ { 4 } { Quinta-feira }
+ { 5 } { Sexta-feira }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_brazilian:nnn
+ {
+ \projlib_datetime_display_month_day_brazilian:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_brazilian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_brazilian:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_brazilian:nn
+ {
+ \projlib_datetime_display_month_brazilian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn
+ {
+ \projlib_datetime_display_month_uppercase_brazilian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_brazilian:nn
+ {
+ \projlib_datetime_display_day_brazilian:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_uppercase_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn
+ {
+ \projlib_datetime_display_month_day_brazilian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_brazilian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_brazilian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janeiro }
+ { 2 } { fevereiro }
+ { 3 } { março }
+ { 4 } { abril }
+ { 5 } { maio }
+ { 6 } { junho }
+ { 7 } { julho }
+ { 8 } { agosto }
+ { 9 } { setembro }
+ { 10 } { outubro }
+ { 11 } { novembro }
+ { 12 } { dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janeiro }
+ { 2 } { Fevereiro }
+ { 3 } { Março }
+ { 4 } { Abril }
+ { 5 } { Maio }
+ { 6 } { Junho }
+ { 7 } { Julho }
+ { 8 } { Agosto }
+ { 9 } { Setembro }
+ { 10 } { Outubro }
+ { 11 } { Novembro }
+ { 12 } { Dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_brazilian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_brazilian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { segunda-feira }
+ { 2 } { terça-feira }
+ { 3 } { quarta-feira }
+ { 4 } { quinta-feira }
+ { 5 } { sexta-feira }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Segunda-feira }
+ { 2 } { Terça-feira }
+ { 3 } { Quarta-feira }
+ { 4 } { Quinta-feira }
+ { 5 } { Sexta-feira }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_spanish:nnn
+ {
+ \projlib_datetime_display_month_day_spanish:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_spanish:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_spanish:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_spanish:nn
+ {
+ \projlib_datetime_display_month_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn
+ {
+ \projlib_datetime_display_month_uppercase_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_spanish:nn
+ {
+ \projlib_datetime_display_day_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn
+ {
+ \projlib_datetime_display_month_day_spanish:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_spanish:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_spanish:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { enero }
+ { 2 } { febrero }
+ { 3 } { marzo }
+ { 4 } { abril }
+ { 5 } { mayo }
+ { 6 } { junio }
+ { 7 } { julio }
+ { 8 } { agosto }
+ { 9 } { septiembre }
+ { 10 } { octubre }
+ { 11 } { noviembre }
+ { 12 } { diciembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Enero }
+ { 2 } { Febrero }
+ { 3 } { Marzo }
+ { 4 } { Abril }
+ { 5 } { Mayo }
+ { 6 } { Junio }
+ { 7 } { Julio }
+ { 8 } { Agosto }
+ { 9 } { Septiembre }
+ { 10 } { Octubre }
+ { 11 } { Noviembre }
+ { 12 } { Diciembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_spanish:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_spanish:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lunes }
+ { 2 } { martes }
+ { 3 } { miércoles }
+ { 4 } { jueves }
+ { 5 } { viernes }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lunes }
+ { 2 } { Martes }
+ { 3 } { Miércoles }
+ { 4 } { Jueves }
+ { 5 } { Viernes }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_schinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_schinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_schinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_schinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_schinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_schinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_schinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_schinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_schinese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_schinese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_schinese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 星期一 }
+ { 2 } { 星期二 }
+ { 3 } { 星期三 }
+ { 4 } { 星期四 }
+ { 5 } { 星期五 }
+ { 6 } { 星期六 }
+ { 7 } { 星期日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_schinese:n
+ {
+ \projlib_datetime_display_week_schinese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_tchinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_tchinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_tchinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_tchinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_tchinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_tchinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_tchinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_tchinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_tchinese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_tchinese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_tchinese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 星期一 }
+ { 2 } { 星期二 }
+ { 3 } { 星期三 }
+ { 4 } { 星期四 }
+ { 5 } { 星期五 }
+ { 6 } { 星期六 }
+ { 7 } { 星期日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_tchinese:n
+ {
+ \projlib_datetime_display_week_tchinese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_japanese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_japanese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_japanese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_japanese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_japanese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_japanese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_japanese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_japanese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_japanese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_japanese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_japanese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 月曜日 }
+ { 2 } { 火曜日 }
+ { 3 } { 水曜日 }
+ { 4 } { 木曜日 }
+ { 5 } { 金曜日 }
+ { 6 } { 土曜日 }
+ { 7 } { 日曜日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_japanese:n
+ {
+ \projlib_datetime_display_week_japanese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_russian:nnn
+ {
+ \projlib_datetime_display_month_day_russian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_russian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_russian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_russian:nn
+ {
+ \projlib_datetime_display_month_russian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_russian:nn
+ {
+ \projlib_datetime_display_month_uppercase_russian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_russian:nn
+ {
+ \projlib_datetime_display_day_russian:n { #2 }
+ \nobreakspace
+ \int_case:nnF { #1 }
+ {
+ { 1 } { января }
+ { 2 } { февраля }
+ { 3 } { марта }
+ { 4 } { апреля }
+ { 5 } { мая }
+ { 6 } { июня }
+ { 7 } { июля }
+ { 8 } { августа }
+ { 9 } { сентября }
+ { 10 } { октября }
+ { 11 } { ноября }
+ { 12 } { декабря }
+ } { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_russian:nn
+ {
+ \projlib_datetime_display_month_day_russian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_russian:n { #1 ~ г. }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_russian:n { #1 ~ г. }
+
+\cs_new:Nn \projlib_datetime_display_month_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { январь }
+ { 2 } { февраль }
+ { 3 } { март }
+ { 4 } { апрель }
+ { 5 } { май }
+ { 6 } { июнь }
+ { 7 } { июль }
+ { 8 } { август }
+ { 9 } { сентябрь }
+ { 10 } { октябрь }
+ { 11 } { ноябрь }
+ { 12 } { декабрь }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Январь }
+ { 2 } { Февраль }
+ { 3 } { Март }
+ { 4 } { Апрель }
+ { 5 } { Май }
+ { 6 } { Июнь }
+ { 7 } { Июль }
+ { 8 } { Август }
+ { 9 } { Сентябрь }
+ { 10 } { Октябрь }
+ { 11 } { Ноябрь }
+ { 12 } { Декабрь }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_russian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_russian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { понедельник }
+ { 2 } { вторник }
+ { 3 } { среда }
+ { 4 } { четверг }
+ { 5 } { пятница }
+ { 6 } { суббота }
+ { 7 } { воскресенье }
+ } { ??? }
+ }
+\cs_new:Nn \projlib_datetime_display_week_uppercase_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Понедельник }
+ { 2 } { Вторник }
+ { 3 } { Среда }
+ { 4 } { Четверг }
+ { 5 } { Пятница }
+ { 6 } { Суббота }
+ { 7 } { Воскресенье }
+ } { ??? }
+ }
+%</projlib-datetime>
+%
+%<*projlib-draft>
+\keys_define:nn { projlib-draft }
+ {
+ , draft .bool_set:N = \l__projlib_draft_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__projlib_draft_fast_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-draft }
+
+\RequirePackage { projlib-language }
+\RequirePackage { xcolor }
+
+\bool_if:NTF \l__projlib_draft_fast_bool
+ {
+ \NewDocumentCommand \projlib_draft_plain_box { O{-paper} m }
+ {
+ \group_begin:
+ \color { #1 }
+ \dim_set:Nn \fboxsep { 1.5pt }
+ \dim_set:Nn \fboxrule { 1.5pt }
+ \fbox { #2 }
+ \group_end:
+ }
+ }
+ {
+ \PassOptionsToPackage { many } { tcolorbox }
+ \RequirePackage { tcolorbox }
+ \NewTCBox \projlib_draft_plain_box { O{-paper} }
+ {
+ enhanced~jigsaw, breakable,
+ on~line, arc = 1.2pt, outer~arc = 1pt,
+ colframe = #1, colupper = #1, opacityback = 0,
+ boxsep = 1pt, boxrule = 1.2pt,
+ left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,
+ }
+ }
+
+\projlib_langauge_define_multilingual_text:Nn \__dnf_text
+ {
+ EN = To\ be\ finished ,
+ FR = Pas\ encore\ fini ,
+ DE = Nicht\ beendet ,
+ IT = Per\ essere\ finito ,
+ PT = Não\ terminou ,
+ BR = Não\ terminou ,
+ ES = Estar\ terminado ,
+ CN = 这里尚未完成 ,
+ TC = 這裡尚未完成 ,
+ JP = 終わってない ,
+ RU = Не\ закончен ,
+ }
+
+\projlib_langauge_define_multilingual_text:Nn \__dnf_report_text
+ {
+ EN = { Below\ is\ a\ list\ of\ outstanding\ items,
+ \ followed\ by\ the\ corresponding\ page\ numbers. } ,
+ FR = { Voici\ la\ liste\ des\ éléments\ en\ suspens,
+ \ suivie\ des\ numéros\ de\ page\ correspondants. } ,
+ DE = { Unten\ ist\ eine\ Liste\ der\ ausstehenden\ Posten,
+ \ gefolgt\ von\ den\ entsprechenden\ Seitenzahlen. } ,
+ IT = { Qui\ sotto\ c'è\ una\ lista\ di\ voci\ in\ sospeso,
+ \ seguita\ dai\ numeri\ di\ pagina\ corrispondenti. } ,
+ PT = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
+ \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
+ BR = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
+ \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
+ ES = { Aquí está\ la\ lista\ de\ elementos\ pendientes,
+ \ seguida\ de\ los\ números\ de\ página\ correspondientes. } ,
+ CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } ,
+ TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } ,
+ JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } ,
+ RU = { Ниже\ приведен\ список\ невыполненных\ пунктов
+ \ с\ соответствующими\ номерами\ страниц\ в\ скобках. } ,
+ }
+
+\tl_new:c { __dnf_font }
+\tl_gset:cn { __dnf_font } { \normalfont \ttfamily \bfseries \small }
+
+\definecolor { __dnf_color } { RGB } { 21, 122, 20 }
+
+\newcounter { __dnf_counter }
+
+\tl_new:N \g__projlib_draft_dnf_report_tl
+
+\NewDocumentCommand \dnf { d<> }
+ {
+ \noindent
+ \projlib_draft_plain_box [ __dnf_color ]
+ {
+ \stepcounter { __dnf_counter }
+ \__dnf_font
+ \__dnf_text
+ \c_space_tl
+ \# \the__dnf_counter
+ \IfNoValueF { #1 } { \, : ~ #1 }
+ \tl_gput_right:Nx \g__projlib_draft_dnf_report_tl
+ {
+ \# \,
+ \int_value:w \the__dnf_counter
+ \c_space_tl \c_space_tl
+ $\langle$
+ \skip_horizontal:n { 0.1em }
+ \cs_if_exist:cTF { hyperlink }
+ {
+ \exp_not:N \hyperlink { page.\thepage } { \thepage }
+ }
+ {
+ \thepage
+ }
+ \skip_horizontal:n { 0.1em }
+ $\rangle$
+ \c_space_tl
+ \IfNoValueF { #1 } { : ~ #1 }
+ \\
+ }
+ }
+ }
+
+\hook_gput_code:nnn { enddocument } { projlib-draft }
+ {
+ \tl_if_blank:VF \g__projlib_draft_dnf_report_tl
+ {
+ \clearpage \noindent
+ \color { __dnf_color }
+ \__dnf_font
+ \__dnf_report_text \\[0.75\baselineskip]
+ \g__projlib_draft_dnf_report_tl
+ }
+ }
+%</projlib-draft>
+%
+%<*projlib-font>
+\keys_define:nn { projlib-font }
+ {
+ , useosf .bool_set:N = \l__projlib_font_useosf_bool
+ , useosf .initial:n = { false }
+ , old-style-figures.bool_set:N = \l__projlib_font_useosf_bool
+ , old~style~figures.bool_set:N = \l__projlib_font_useosf_bool
+ , old style figures.bool_set:N = \l__projlib_font_useosf_bool
+ , lmodern .bool_set:N = \l__projlib_font_lmodern_bool
+ , lmodern .initial:n = { false }
+ , latin-modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , latin~modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , latin modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , palatino .bool_set:N = \l__projlib_font_palatino_bool
+ , palatino .initial:n = { false }
+ , times .bool_set:N = \l__projlib_font_times_bool
+ , times .initial:n = { false }
+ , garamond .bool_set:N = \l__projlib_font_garamond_bool
+ , garamond .initial:n = { false }
+ , noto .bool_set:N = \l__projlib_font_noto_bool
+ , noto .initial:n = { false }
+ , biolinum .bool_set:N = \l__projlib_font_biolinum_bool
+ , biolinum .initial:n = { false }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-font }
+
+\bool_new:N \g_projlib_font_already_set_bool
+\bool_gset_false:N \g_projlib_font_already_set_bool
+
+\RequirePackage { setspace }
+
+\cs_new:Nn \projlib_font_set_linespacing_latin:n
+ {
+ \cs_if_exist:NTF \projlib_language_set_linespacing_latin:n
+ {
+ \projlib_language_set_linespacing_latin:n { #1 }
+ }
+ {
+ #1
+ }
+ }
+
+\bool_if:NT \l__projlib_font_lmodern_bool
+ {
+ \RequirePackage { amssymb }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \RequirePackage { cfr-lm }
+ }
+ {
+ \RequirePackage { lmodern }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_palatino_bool
+ {
+ \sys_if_engine_pdftex:TF
+ {
+ \RequirePackage { mathpazo }
+ \PassOptionsToPackage { defaultsups } { newpxtext }
+ \RequirePackage { newpxtext }
+ \cs_undefine:c { openbox }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ }
+ {
+ \PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
+ \RequirePackage { unicode-math }
+ \defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \setmainfont { TeXGyrePagellaX-Regular.otf }
+ [
+ BoldFont = TeXGyrePagellaX-Bold.otf ,
+ ItalicFont = TeXGyrePagellaX-Italic.otf ,
+ BoldItalicFont = TeXGyrePagellaX-BoldItalic.otf,
+ Numbers = OldStyle ]
+ }
+ {
+ \setmainfont { TeXGyrePagellaX-Regular.otf }
+ [
+ BoldFont = TeXGyrePagellaX-Bold.otf ,
+ ItalicFont = TeXGyrePagellaX-Italic.otf ,
+ BoldItalicFont = TeXGyrePagellaX-BoldItalic.otf,
+ ]
+ }
+ \setmathfont { texgyrepagella-math.otf }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.07 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_times_bool
+ {
+ \sys_if_engine_pdftex:TF
+ {
+ \PassOptionsToPackage { defaultsups } { newtxtext }
+ \RequirePackage { newtxtext }
+ \RequirePackage { newtxmath }
+ \cs_undefine:c { openbox }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ }
+ {
+ \PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
+ \RequirePackage { unicode-math }
+ \defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \setmainfont { TeXGyreTermesX-Regular.otf }
+ [
+ BoldFont = TeXGyreTermesX-Bold.otf ,
+ ItalicFont = TeXGyreTermesX-Italic.otf ,
+ BoldItalicFont = TeXGyreTermesX-BoldItalic.otf,
+ Numbers = OldStyle ]
+ }
+ {
+ \setmainfont { TeXGyreTermesX-Regular.otf }
+ [
+ BoldFont = TeXGyreTermesX-Bold.otf ,
+ ItalicFont = TeXGyreTermesX-Italic.otf ,
+ BoldItalicFont = TeXGyreTermesX-BoldItalic.otf,
+ ]
+ }
+ \setmathfont { texgyretermes-math.otf }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_garamond_bool
+ {
+ \bool_if:NF \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { lining } { ebgaramond }
+ }
+ \RequirePackage [ cmintegrals, cmbraces ] { newtxmath }
+ \cs_undefine:c { openbox }
+ \RequirePackage { ebgaramond-maths }
+ \RequirePackage { ebgaramond }
+ \cs_undefine:c { Bbbk }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_noto_bool
+ {
+ \bool_if:NT \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { oldstyle } { notomath }
+ }
+ \RequirePackage { anyfontsize }
+ \RequirePackage { notomath }
+ \cs_undefine:c { Bbbk }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_biolinum_bool
+ {
+ \RequirePackage [ OT1 ] { eulervm }
+ \sys_if_engine_pdftex:TF
+ {
+ \bool_if:NT \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { osf } { biolinum }
+ }
+ \RequirePackage { biolinum }
+ \tl_gset:Nn \familydefault { \biolinum@family }
+ }
+ {
+ \PassOptionsToPackage { no-math } { fontspec }
+ \RequirePackage { fontspec }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \setmainfont { LinBiolinum_R.otf } [
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf ,
+ Numbers = OldStyle , ]
+ }
+ {
+ \setmainfont { LinBiolinum_R.otf } [
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf , ]
+ }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.05 } }
+ \RequirePackage [ italic, defaultmathsizes ] { mathastext }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\PassOptionsToPackage { verbose = silent } { microtype }
+\RequirePackage { microtype }
+%</projlib-font>
+%
+%<*projlib-language>
+\clist_const:Nn \c__projlib_language_supported_clist
+ {
+ english ,
+ french ,
+ ngerman ,
+ italian ,
+ portuguese ,
+ brazilian ,
+ spanish ,
+ schinese ,
+ tchinese ,
+ japanese ,
+ russian ,
+ }
+
+\clist_new:N \g__projlib_language_babel_option_clist
+
+\str_new:N \g__projlib_language_main_str
+
+\bool_new:N \g__projlib_language_enabled_all_bool
+\bool_gset_true:N \g__projlib_language_enabled_all_bool
+
+\clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \bool_new:c { g__projlib_language_enabled_ #1 _bool }
+ \bool_gset_false:c { g__projlib_language_enabled_ #1 _bool }
+ }
+
+\cs_new:Nn \projlib_language_set_option_no_babel:n
+ {
+ \bool_gset_false:N \g__projlib_language_enabled_all_bool
+ \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
+ \str_if_empty:NT \g__projlib_language_main_str
+ {
+ \str_gset:Nn \g__projlib_language_main_str { #1 }
+ }
+ }
+\cs_new:Nn \projlib_language_set_option:n
+ {
+ \projlib_language_set_option_no_babel:n { #1 }
+ \clist_gput_left:Nn \g__projlib_language_babel_option_clist { #1 }
+ }
+
+\keys_define:nn { projlib-language }
+ {
+ , EN .meta:n = { english }
+ , english .code:n = { \projlib_language_set_option:n { english } }
+ , English .meta:n = { english }
+ , FR .meta:n = { french }
+ , french .code:n = { \projlib_language_set_option:n { french } }
+ , French .meta:n = { french }
+ , DE .meta:n = { ngerman }
+ , german .meta:n = { ngerman }
+ , ngerman .code:n = { \projlib_language_set_option:n { ngerman } }
+ , German .meta:n = { ngerman }
+ , IT .meta:n = { italian }
+ , italian .code:n = { \projlib_language_set_option:n { italian } }
+ , Italian .meta:n = { italian }
+ , PT .meta:n = { portuguese }
+ , portuguese .code:n = { \projlib_language_set_option:n { portuguese } }
+ , Portuguese .meta:n = { portuguese }
+ , BR .meta:n = { brazilian }
+ , brazilian .code:n = { \projlib_language_set_option:n { brazilian } }
+ , Brazilian .meta:n = { brazilian }
+ , ES .meta:n = { spanish }
+ , spanish .code:n = { \clist_gput_left:Nn \g__projlib_language_babel_option_clist { es-notilde, es-noquoting }
+ \projlib_language_set_option:n { spanish } }
+ , Spanish .meta:n = { spanish }
+ , CN .meta:n = { schinese }
+ , chinese .meta:n = { schinese }
+ , schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
+ , simplified-chinese .meta:n = { schinese }
+ , simplified~chinese .meta:n = { schinese }
+ , simplified chinese .meta:n = { schinese }
+ , Chinese .meta:n = { schinese }
+ , SChinese .meta:n = { schinese }
+ , Simplified-Chinese .meta:n = { schinese }
+ , Simplified~Chinese .meta:n = { schinese }
+ , Simplified Chinese .meta:n = { schinese }
+ , TC .meta:n = { tchinese }
+ , tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
+ , traditional-chinese .meta:n = { tchinese }
+ , traditional~chinese .meta:n = { tchinese }
+ , traditional chinese .meta:n = { tchinese }
+ , TChinese .meta:n = { tchinese }
+ , Traditional-Chinese .meta:n = { tchinese }
+ , Traditional~Chinese .meta:n = { tchinese }
+ , Traditional Chinese .meta:n = { tchinese }
+ , JP .meta:n = { japanese }
+ , japanese .code:n = { \projlib_language_set_option:n { japanese } }
+ , Japanese .meta:n = { japanese }
+ , RU .meta:n = { russian }
+ , russian .code:n = { \projlib_language_set_option:n { russian } }
+ , Russian .meta:n = { russian }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-language }
+
+\cs_new_protected:Nn \projlib_language_clear_global_option:n
+ {
+ \clist_remove_all:cn { @classoptionslist } { #1 }
+ }
+
+\projlib_language_clear_global_option:n { chinese }
+\projlib_language_clear_global_option:n { Chinese }
+
+\clist_gput_right:Nn \g__projlib_language_babel_option_clist { shorthands = off }
+
+\str_if_empty:NT \g__projlib_language_main_str
+ {
+ \str_gset:Nn \g__projlib_language_main_str { english }
+ }
+
+\bool_if:NT \g__projlib_language_enabled_all_bool
+ {
+ \clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
+ }
+ }
+
+
+\cs_new:Nn \projlib_language_str_to_languagename:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ { all } { common }
+ { common } { common }
+ { cn } { schinese }
+ { chinese } { schinese }
+ { schinese } { schinese }
+ { simplifiedchinese } { schinese }
+ { simplified-chinese } { schinese }
+ { tc } { tchinese }
+ { tchinese } { tchinese }
+ { traditionalchinese } { tchinese }
+ { traditional-chinese} { tchinese }
+ { jp } { japanese }
+ { japanese } { japanese }
+ { en } { english }
+ { english } { english }
+ { fr } { french }
+ { french } { french }
+ { de } { ngerman }
+ { german } { ngerman }
+ { ngerman } { ngerman }
+ { it } { italian }
+ { italian } { italian }
+ { pt } { portuguese }
+ { portuguese } { portuguese }
+ { br } { brazilian }
+ { brazilian } { brazilian }
+ { es } { spanish }
+ { spanish } { spanish }
+ { ru } { russian }
+ { russian } { russian }
+ }
+ { #1 }
+ }
+
+\cs_new:Nn \projlib_language_str_to_languagetype:n
+ {
+ \str_case_e:nn { \str_foldcase:n { #1 } }
+ {
+ { cn } { cjk }
+ { chinese } { cjk }
+ { schinese } { cjk }
+ { simplifiedchinese } { cjk }
+ { simplified-chinese } { cjk }
+ { tc } { cjk }
+ { tchinese } { cjk }
+ { traditionalchinese } { cjk }
+ { traditional-chinese} { cjk }
+ { jp } { cjk }
+ { japanese } { cjk }
+ { en } { latin }
+ { english } { latin }
+ { fr } { latin }
+ { french } { latin }
+ { de } { latin }
+ { german } { latin }
+ { ngerman } { latin }
+ { it } { latin }
+ { italian } { latin }
+ { pt } { latin }
+ { portuguese } { latin }
+ { br } { latin }
+ { brazilian } { latin }
+ { es } { latin }
+ { spanish } { latin }
+ { ru } { latin }
+ { russian } { latin }
+ }
+ }
+
+\sys_if_engine_pdftex:T
+ {
+ \RequirePackage [T1] { fontenc }
+ }
+
+\bool_if:NTF \g__projlib_language_enabled_all_bool
+ {
+ \sys_if_engine_pdftex:F
+ {
+ \PassOptionsToPackage { japanese, russian } { babel }
+ }
+ \PassOptionsToPackage { italian, portuguese, brazilian, spanish, es-notilde, es-noquoting, ngerman, french, english, shorthands = off } { babel }
+ }
+ {
+ \PassOptionsToPackage { \g__projlib_language_babel_option_clist } { babel }
+ }
+
+\PassOptionsToPackage { italian, brazilian, spanish, ngerman, french, english } { cleveref }
+\RequirePackage { babel }
+
+
+\bool_if:NT \g__projlib_language_enabled_french_bool
+ {
+ \frenchsetup { PartNameFull = false }
+ }
+
+\bool_if:NT \g__projlib_language_enabled_portuguese_bool
+ {
+ \NewCommandCopy \__projlib_language_babel_ord: \ord
+ \cs_undefine:N \ord
+ \hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \cs_if_exist:NT \ord
+ {
+ \NewCommandCopy \__projlib_language_user_ord: \ord
+ \cs_set_protected:Npn \ord
+ {
+ \mode_if_math:TF
+ { \__projlib_language_user_ord: }
+ { \__projlib_language_babel_ord: }
+ }
+ }
+ }
+ }
+
+\babelprovide { schinese }
+\babelprovide { tchinese }
+
+
+\NewCommandCopy \projlib_language_backup_today:n \today
+
+\tl_new:N \g_projlib_language_settings_common_tl
+\clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \tl_new:c { g_projlib_language_settings_ #1 _tl }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_common_tl
+ {
+ \cs_if_exist:NT \ProjLibToday
+ {
+ \RenewCommandCopy \today \ProjLibToday
+ }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
+ {
+ \g_projlib_language_settings_common_tl
+ \tl_gset:Nn \languagename { schinese }
+ \tl_gset:cn { abstractname } { 摘要 }
+ \tl_gset:cn { proofname } { 证明 }
+ \tl_gset:cn { contentsname } { 目录 }
+ \tl_gset:cn { listfigurename } { 插图 }
+ \tl_gset:cn { listtablename } { 表格 }
+ \tl_gset:cn { figurename } { 图 }
+ \tl_gset:cn { tablename } { 表 }
+ \tl_gset:cn { indexname } { 索引 }
+ \tl_gset:cn { appendixname } { 附录 }
+ \tl_gset:cn { refname } { 参考文献 }
+ \tl_gset:cn { bibname } { 参考文献 }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
+ {
+ \g_projlib_language_settings_common_tl
+ \tl_gset:Nn \languagename { tchinese }
+ \tl_gset:cn { abstractname } { 摘要 }
+ \tl_gset:cn { proofname } { 證明 }
+ \tl_gset:cn { contentsname } { 目錄 }
+ \tl_gset:cn { listfigurename } { 插圖 }
+ \tl_gset:cn { listtablename } { 表格 }
+ \tl_gset:cn { figurename } { 圖 }
+ \tl_gset:cn { tablename } { 表 }
+ \tl_gset:cn { indexname } { 索引 }
+ \tl_gset:cn { appendixname } { 附錄 }
+ \tl_gset:cn { refname } { 參考文獻 }
+ \tl_gset:cn { bibname } { 參考文獻 }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
+ {
+ \selectlanguage { japanese }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_english_tl
+ {
+ \selectlanguage { english }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_french_tl
+ {
+ \selectlanguage { french }
+ \g_projlib_language_settings_common_tl
+ \tl_gset:cn { frenchpartname } { Partie }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
+ {
+ \selectlanguage { ngerman }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
+ {
+ \selectlanguage { italian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
+ {
+ \selectlanguage { portuguese }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
+ {
+ \selectlanguage { brazilian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
+ {
+ \selectlanguage { spanish }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
+ {
+ \selectlanguage { russian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\NewDocumentCommand \AddLanguageSetting { O{} m }
+ {
+ \tl_if_empty:nTF { #1 }
+ {
+ \tl_gput_right:Nn \g_projlib_language_settings_common_tl { #2 }
+ }
+ {
+ \tl_gput_right:cn { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl } { #2 }
+ }
+ }
+
+
+\RequirePackage { setspace }
+
+\tl_new:N \g_projlib_language_linespacing_latin_tl
+\tl_new:N \g_projlib_language_linespacing_cjk_tl
+
+\tl_gset:Nn \g_projlib_language_linespacing_latin_tl
+ {
+ \setstretch { 1.00 }
+ }
+\tl_gset:Nn \g_projlib_language_linespacing_cjk_tl
+ {
+ \onehalfspacing
+ }
+
+\cs_new:Nn \projlib_language_set_linespacing_latin:n
+ {
+ \tl_gset:Nn \g_projlib_language_linespacing_latin_tl { #1 }
+ }
+\cs_new:Nn \projlib_language_set_linespacing_cjk:n
+ {
+ \tl_gset:Nn \g_projlib_language_linespacing_cjk_tl { #1 }
+ }
+
+\tl_new:N \g_projlib_language_parindent_latin_tl
+\tl_new:N \g_projlib_language_parindent_cjk_tl
+
+\@ifclassloaded{beamer}
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ }
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 1.5em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 2em }
+ }
+ }
+
+\hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \@ifpackageloaded{parskip}
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ } {}
+ }
+
+\cs_new:Nn \projlib_language_set_parindent_latin:n
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl { #1 }
+ }
+\cs_new:Nn \projlib_language_set_parindent_cjk:n
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl { #1 }
+ }
+
+\NewDocumentCommand \ProjLibLanguageSet { m m m }
+ % #1 = the thing to set
+ % #2 = language or type
+ % #3 = the setting
+ {
+ \use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
+ }
+
+
+\cs_new:Nn \projlib_language_use_language_pure:n
+ {
+ \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
+ }
+\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
+
+\cs_new:Nn \projlib_language_use_language:n
+ {
+ \projlib_language_use_language_pure:n { #1 }
+ \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ }
+\cs_generate_variant:Nn \projlib_language_use_language:n { e }
+
+\NewDocumentCommand \UseLanguage { m }
+ {
+ \hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \projlib_language_use_language:e { #1 }
+ }
+ }
+\NewDocumentCommand \UseOtherLanguage { m m }
+ {
+ \group_begin:
+ \projlib_language_use_language_pure:e { #1 }
+ #2
+ \group_end:
+ }
+
+\UseLanguage { \g__projlib_language_main_str }
+
+
+\cs_new:Nn \projlib_langauge_define_multilingual_text:Nn
+ { % #1 = command name (with backslash)
+ % #2 = key-value name configuration
+ \keyval_parse:nnn
+ {}
+ { \__projlib_langauge_define_multilingual_text_do:nnn { \cs_to_str:N #1 } }
+ { #2 }
+ \tl_gset:Nn #1
+ {
+ \tl_use:c { \cs_to_str:N #1 _projlib_language_text_ \languagename }
+ }
+ }
+\cs_generate_variant:Nn \projlib_langauge_define_multilingual_text:Nn { cn }
+
+\cs_new:Nn \__projlib_langauge_define_multilingual_text_do:nnn
+ { % #1 = command name
+ % #2 = language name
+ % #3 = the text
+ \exp_args:Ne \tl_gset:cn { #1 _projlib_language_text_ \projlib_language_str_to_languagename:n { #2 } } { #3 }
+ }
+
+\NewDocumentCommand \DefineMultilingualText { m m }
+ % #1 = command name
+ % #2 = key-value name configuration
+ {
+ \projlib_langauge_define_multilingual_text:Nn #1 { #2 }
+ }
+%</projlib-language>
+%
+%<*projlib-logo>
+\keys_define:nn { projlib-logo }
+ {
+ , draft .bool_set:N = \l__projlib_logo_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__projlib_logo_fast_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-logo }
+
+\bool_if:NT \l__projlib_logo_fast_bool
+ {
+ \DeclareRobustCommand * \ProjLib
+ {
+ \group_begin:
+ \normalfont ProjLib
+ \group_end:
+ }
+ \endinput
+ }
+
+\cs_if_exist:cTF { fontspec }
+ {
+ \newfontface \__projlib_logo_font: { LinBiolinum_R.otf }
+ }
+ {
+ \RequirePackage [T1] { fontenc }
+ \cs_gset:Nn \__projlib_logo_font:
+ { \fontfamily { LinuxBiolinumT-TLF } \selectfont }
+ }
+
+\tl_new:N \g__projlib_logo_sigma_j_tl
+\tl_gset:Nn \g__projlib_logo_sigma_j_tl
+ {
+ \vbox:n
+ {
+ \offinterlineskip
+ \hbox_overlap_center:n
+ {
+ \skip_horizontal:n { 0.75ex }
+ \hbox_set:Nn \l_tmpa_box { \usefont{U}{zeur}{b}{n} \symbol{"06} }
+ \box_rotate:Nn \l_tmpa_box { -10 }
+ \box_scale:Nnn \l_tmpa_box {.4} {.4}
+ \box_use:N \l_tmpa_box
+ }
+ \skip_vertical:n { 0.15ex }
+ \hbox:n { \j }
+ }
+ }
+
+% \RequirePackage { xcolor }
+% \cs_new_protected:Nn \projlib_logo_generic:n
+% {
+% \group_begin:
+% \normalfont
+% \__projlib_logo_font:
+% \textcolor { blue!55!cyan } { P }
+% \textcolor { blue!45!cyan } { r }
+% \textcolor { blue!30!cyan } { o }
+% \textcolor { green!70!black!70 } { #1 }
+% \textcolor { red!20!yellow } { L }
+% \textcolor { red!40!yellow } { i }
+% \textcolor { red!55!yellow } { b }
+% \group_end:
+% }
+\cs_new_protected:Nn \projlib_logo_generic:n
+ {
+ \group_begin:
+ \normalfont
+ \__projlib_logo_font:
+ \color_group_begin:
+ \color_select:n { blue!60!cyan } { P }
+ \color_select:n { blue!45!cyan } { r }
+ \color_select:n { blue!30!cyan } { o }
+ \color_select:n { green!70!black!70 } { #1 }
+ \color_select:n { red!20!yellow } { L }
+ \color_select:n { red!40!yellow } { i }
+ \color_select:n { red!60!yellow } { b }
+ \color_group_end:
+ \group_end:
+ }
+
+\DeclareRobustCommand * \ProjLib
+ {
+ \projlib_logo_generic:n { \g__projlib_logo_sigma_j_tl }
+ }
+\DeclareRobustCommand * \ProjLibText
+ {
+ \projlib_logo_generic:n { j }
+ }
+%</projlib-logo>
+%
+%<*projlib-math>
+\keys_define:nn { projlib-math }
+ {
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-math }
+
+\RequirePackage { mathtools }
+\RequirePackage { mathrsfs }
+\PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
+\@ifpackageloaded { unicode-math } {} { \RequirePackage { amssymb } }
+
+
+\msg_new:nnn { projlib-math }
+ { operator-not-define }
+ { The~math~operator~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
+
+\keys_define:nn { projlib-math-operator }
+ {
+ , style .tl_set:N = \l__projlib_math_operator_style_tl
+ , unknown .code:n = {}
+ }
+
+\cs_new_protected:Nn \projlib_math_define_operator:nnn
+ % #1 = bool for star or empty
+ % #2 = list of operators
+ % #3 = the option
+ {
+ \tl_clear:N \l__projlib_math_operator_style_tl
+ \keys_set:nn { projlib-math-operator } { #3 }
+ \clist_map_inline:nn { #2 }
+ {
+ \str_if_in:nnTF { ##1 } { = }
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
+ \__projlib_math_define_operator:nee { #1 } { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ {
+ \__projlib_math_define_operator:nee { #1 } { ##1 } { ##1 }
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_math_define_operator:nnn
+ % #1 = bool for star or empty
+ % #2 = the operator
+ % #3 = the content
+ {
+ \cs_if_exist:cTF { #2 }
+ {
+ \msg_warning:nnn { projlib-math } { operator-not-define } { #2 }
+ }
+ {
+ \bool_if:NTF #1
+ {
+ \exp_args:Nnf \use:n
+ { \exp_args:Nnc \use:n { \DeclareMathOperator* } { #2 } }
+ }
+ {
+ \exp_args:Nnf \use:n
+ { \exp_args:Nc \DeclareMathOperator { #2 } }
+ }
+ % This is the f-argument of \exp_args:Nnf :
+ {
+ \exp_args:NnV \use:nn
+ { \exp_stop_f: }
+ { \l__projlib_math_operator_style_tl } { #3 }
+ }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
+
+\NewDocumentCommand \DefineOperator { s O{} m O{} }
+ {
+ \tl_if_blank:nTF { #2 }
+ {
+ \projlib_math_define_operator:nnn { #1 } { #3 } { #4 }
+ }
+ {
+ \projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
+ }
+ }
+
+
+\msg_new:nnn { projlib-math }
+ { shortcut-not-define }
+ { The~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
+
+\msg_new:nnn { projlib-math }
+ { shortcut-type-not-define }
+ { The~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
+
+\keys_define:nn { projlib-math-shortcut }
+ {
+ , prefix .clist_set:N = \l__projlib_math_shortcut_prefix_clist
+ , type .tl_set:N = \l__projlib_math_shortcut_type_tl
+ , style .tl_set:N = \l__projlib_math_shortcut_style_tl
+ , unknown .code:n = {}
+ }
+
+\cs_new_protected:Nn \projlib_math_define_shortcut:nnn
+ % #1 = bool for star or empty
+ % (currently the starred version is the same as normal version)
+ % #2 = list of shortcuts
+ % #3 = the option
+ {
+ \clist_clear:N \l__projlib_math_shortcut_prefix_clist
+ \tl_clear:N \l__projlib_math_shortcut_type_tl
+ \tl_clear:N \l__projlib_math_shortcut_style_tl
+ \keys_set:nn { projlib-math-shortcut } { #3 }
+ \tl_if_empty:NF \l__projlib_math_shortcut_type_tl
+ {
+ \cs_if_exist:cTF { \l__projlib_math_shortcut_type_tl }
+ {
+ \exp_args:Nne \use:n
+ { \msg_warning:nnn { projlib-math } { shortcut-type-not-define } }
+ { \l__projlib_math_shortcut_type_tl }
+ }
+ {
+ \exp_args:Nno \use:n
+ {
+ \exp_args:Nc \NewDocumentCommand { \l__projlib_math_shortcut_type_tl } { m }
+ }
+ {
+ \l__projlib_math_shortcut_style_tl { ##1 }
+ }
+ }
+ }
+ \clist_map_inline:nn { #2 }
+ {
+ \str_if_in:nnTF { ##1 } { = }
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
+ \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ {
+ \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ####1 \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ }
+ }
+ {
+ \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ##1 } { ##1 }
+ }
+ {
+ \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ####1 ##1 } { ##1 }
+ }
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_math_define_shortcut:nn
+ % #1 = command name
+ % #2 = the content
+ {
+ \cs_if_exist:cTF { #1 }
+ {
+ \msg_warning:nnn { projlib-math } { shortcut-type-not-define } { #1 }
+ }
+ {
+ \exp_args:Nno \use:n
+ { \exp_args:Nc \NewDocumentCommand { #1 } {} }
+ { \l__projlib_math_shortcut_style_tl { #2 } }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
+
+\NewDocumentCommand \DefineShortcut { s O{} m O{} }
+ {
+ \tl_if_blank:nTF { #2 }
+ {
+ \projlib_math_define_shortcut:nnn { #1 } { #3 } { #4 }
+ }
+ {
+ \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
+ }
+ }
+%</projlib-math>
+%
+%<*projlib-paper>
+\keys_define:nn { projlib-paper }
+ {
+ , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
+ , preview-mode .initial:n = { false }
+ , paper-style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper-style .initial:n = { normal }
+ , paper-style .value_required:n = true
+ , paper~style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , yellow-paper .meta:n = { paperstyle = yellow }
+ , yellow~paper .meta:n = { paperstyle = yellow }
+ , yellow paper .meta:n = { paperstyle = yellow }
+ , parchment-paper .meta:n = { paperstyle = parchment }
+ , parchment~paper .meta:n = { paperstyle = parchment }
+ , parchment paper .meta:n = { paperstyle = parchment }
+ , green-paper .meta:n = { paperstyle = green }
+ , green~paper .meta:n = { paperstyle = green }
+ , green paper .meta:n = { paperstyle = green }
+ , light-gray-paper .meta:n = { paperstyle = lightgray }
+ , light~gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray-paper .meta:n = { paperstyle = lightgray }
+ , light gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray paper .meta:n = { paperstyle = lightgray }
+ , gray-paper .meta:n = { paperstyle = gray }
+ , gray~paper .meta:n = { paperstyle = gray }
+ , gray paper .meta:n = { paperstyle = gray }
+ , nord-paper .meta:n = { paperstyle = nord }
+ , nord~paper .meta:n = { paperstyle = nord }
+ , nord paper .meta:n = { paperstyle = nord }
+ , dark-paper .meta:n = { paperstyle = dark }
+ , dark~paper .meta:n = { paperstyle = dark }
+ , dark paper .meta:n = { paperstyle = dark }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-paper }
+
+\cs_new:Nn \projlib_paper_preview_disable:
+ {
+ \bool_set_false:c { l__projlib_paper_preview_bool }
+ }
+
+\hook_gput_code:nnn { begindocument/before } { projlib-paper }
+ {
+ \bool_if:NT \l__projlib_paper_preview_bool
+ {
+ \dim_set:Nn \paperwidth
+ {
+ \dim_eval:n { \textwidth * 21 / 20 }
+ }
+ \dim_set:Nn \paperheight
+ {
+ \dim_eval:n { ( \textheight + \headheight + \headsep + \footskip ) * 21 / 20 }
+ }
+ \dim_set:Nn \oddsidemargin
+ {
+ \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
+ }
+ \dim_set:Nn \evensidemargin
+ {
+ \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
+ }
+ \dim_set:Nn \topmargin
+ {
+ \dim_eval:n { ( \paperheight - \textheight - \headheight - \headsep - \footskip ) / 2 - 1in }
+ }
+ }
+ }
+
+\RequirePackage { xcolor }
+
+\definecolor { paper } { RGB } { 255, 255, 255 }
+\definecolor { main-text } { RGB } { 0, 0, 0 }
+
+\str_case_e:nn { \l__projlib_paper_paperstyle_tl }
+ {
+ { yellow } { \definecolor { paper } { RGB } { 247, 246, 233 } }
+ { parchment } { \definecolor { paper } { RGB } { 224, 204, 160 } }
+ { green } { \definecolor { paper } { RGB } { 207, 231, 207 } }
+ { lightgray } { \definecolor { paper } { RGB } { 236, 239, 244 }
+ \definecolor { main-text } { RGB } { 37, 41, 46 } }
+ { light-gray } { \definecolor { paper } { RGB } { 236, 239, 244 }
+ \definecolor { main-text } { RGB } { 37, 41, 46 } }
+ { gray } { \definecolor { paper } { RGB } { 127, 130, 136 }
+ \definecolor { main-text } { RGB } { 236, 239, 244 } }
+ { nord } { \definecolor { paper } { RGB } { 46, 52, 64 }
+ \definecolor { main-text } { RGB } { 214, 220, 230 } }
+ { dark } { \definecolor { paper } { RGB } { 28, 29, 33 }
+ \definecolor { main-text } { RGB } { 210, 213, 217 } }
+ }
+
+\cs_new:Nn \projlib_paper_set_page_color:n
+ {
+ \pagecolor { #1 }
+ }
+\cs_new:Nn \projlib_paper_set_text_color:n
+ {
+ \color { #1 }
+ \cs_gset_eq:cc { default@color } { current@color }
+ }
+
+\projlib_paper_set_page_color:n { paper }
+\projlib_paper_set_text_color:n { main-text }
+
+\hook_gput_code:nnn { begindocument/before } { projlib-paper }
+ {
+ \cs_if_exist:NT \tcbset
+ { \tcbset { colupper = main-text, collower = main-text } }
+ }
+%</projlib-paper>
+%
+%<*projlib-theorem>
+\keys_define:nn { projlib-theorem }
+ {
+ , no-theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorems .initial:n = { false }
+ , no~theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , nothms .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorem-numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no-theorem-numbering .initial:n = { false }
+ , no~theorem~numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no theorem numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , nothmnum .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , theorem-numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem-numbering .default:n = { * }
+ , theorem~numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem~numbering .default:n = { * }
+ , theorem numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem numbering .default:n = { * }
+ , thmnum .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , thmnum .default:n = { * }
+ , complex-name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex-name .initial:n = { true }
+ , complex~name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , simple-name .bool_set_inverse:N = \l__projlib_theorem_complexname_bool
+ , simple~name .bool_set_inverse:N = \l__projlib_theorem_complexname_bool
+ , simple name .bool_set_inverse:N = \l__projlib_theorem_complexname_bool
+ , no-preset-names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no-preset-names .initial:n = { false }
+ , no~preset~names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no preset names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , unknown .code:n = { \PassOptionsToPackage { \CurrentOption } { create-theorem } }
+ }
+\ProcessKeysOptions { projlib-theorem }
+
+\clist_const:Nn \c_projlib_theorem_supported_clist
+ {
+ assertion ,
+ assumption ,
+ axiom ,
+ conclusion ,
+ conjecture ,
+ convention ,
+ corollary ,
+ definition ,
+ example ,
+ exercise ,
+ fact ,
+ hypothesis ,
+ lemma ,
+ notation ,
+ observation ,
+ postulate ,
+ problem ,
+ property ,
+ proposition ,
+ question ,
+ remark ,
+ theorem ,
+ definition-proposition ,
+ definition-theorem ,
+ }
+
+\@ifclassloaded { beamer }
+ {
+ \RequirePackage { silence }
+ \WarningFilter { cleveref } { hyperref~package~loaded~with~implicit=false~option }
+ \bool_set_true:N \l__projlib_theorem_no_theorem_numbering_bool
+ \bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \cs_undefine:c { theorem }
+ \cs_undefine:c { lemma }
+ \cs_undefine:c { corollary }
+ \cs_undefine:c { definition }
+ \cs_undefine:c { fact }
+ \cs_undefine:c { example }
+ \cs_undefine:c { problem }
+ }
+ } {}
+
+\RequirePackage { projlib-language }
+
+% \bool_if:NF \l__projlib_theorem_complexname_bool
+% {
+% \PassOptionsToPackage { no preset names } { create-theorem }
+% }
+
+\RequirePackage { amsthm }
+\RequirePackage { create-theorem }
+
+
+\bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \bool_if:NTF \l__projlib_theorem_no_theorem_numbering_bool
+ {
+ \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { numberless }
+ }
+ {
+ \tl_if_blank:eTF \l__projlib_theorem_theorem_numbering_tl
+ {
+ \cs_if_exist:cTF { c@chapter }
+ { % with \chapter
+ \CreateTheorem {theorem} { parent counter = chapter }
+ }
+ { % without \chapter
+ \CreateTheorem {theorem} { parent counter = section }
+ }
+ }
+ {
+ \tl_if_eq:NnTF \l__projlib_theorem_theorem_numbering_tl { * }
+ {
+ \CreateTheorem {theorem} { }
+ }
+ {
+ \CreateTheorem {theorem} { parent counter = \l__projlib_theorem_theorem_numbering_tl }
+ }
+ }
+
+ \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { shared counter = theorem, quiet }
+ }
+ }
+
+
+\AddLanguageSetting [ schinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 图 } { 图 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附录 } { 附录 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 图 } { 图 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附录 } { 附录 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ tchinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 圖 } { 圖 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附錄 } { 附錄 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 圖 } { 圖 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附錄 } { 附錄 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ japanese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 図 } { 図 }
+ \crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 図 } { 図 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 及び \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ russian ]
+ {
+ \crefname { equation } { уравнение } { уравнения }
+ \crefname { figure } { рис. } { рис. }
+ \crefname { table } { таблица } { таблицы }
+ \crefname { appendix } { приложение } { приложения }
+ \Crefname { equation } { Уравнение } { Уравнения }
+ \Crefname { figure } { Рис. } { Рис. }
+ \Crefname { table } { Таблица } { Таблицы }
+ \Crefname { appendix } { Приложение } { Приложения }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace \textasciitilde \nobreakspace }
+ }
+
+\AddLanguageSetting [ portuguese ]
+ {
+ \crefname { equation } { eq. } { eqs. }
+ \crefname { figure } { fig. } { figs. }
+ \crefname { table } { tabela } { tabelas }
+ \crefname { appendix } { apêndice } { apêndices }
+ \Crefname { equation } { Eq. } { Eqs. }
+ \Crefname { figure } { Fig. } { Figs. }
+ \Crefname { table } { Tabela } { Tabelas }
+ \Crefname { appendix } { Apêndice } { Apêndices }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace a \nobreakspace }
+ }
+
+
+\bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
+\bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
+
+
+\NameTheorem { assertion }
+ {
+ , heading = {
+ , english = Assertion
+ , french = Assertion
+ , ngerman = Behauptung
+ , italian = Asserzione
+ , portuguese = Asserção
+ , brazilian = Asserção
+ , spanish = Aserción
+ , schinese = 断言
+ , tchinese = 斷言
+ , japanese = アサーション
+ , russian = Утверждение
+ }
+ , crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [l']{Assertion}[les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [l']{Asserzione}[le]{Asserzione}
+ , portuguese = [a]{Asserção}[as]{Asserção}
+ , brazilian = [a]{Asserção}[as]{Asserção}
+ , spanish = [la]{Aserción}[las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ , Crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [L']{Assertion}[Les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [L']{Asserzione}[Le]{Asserzione}
+ , portuguese = [A]{Asserção}[As]{Asserção}
+ , brazilian = [A]{Asserção}[As]{Asserção}
+ , spanish = [La]{Aserción}[Las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ }
+
+\NameTheorem { assumption }
+ {
+ , heading = {
+ , english = Assumption
+ , french = Supposition
+ , ngerman = Annahme
+ , italian = Supposizione
+ , portuguese = Suposição
+ , brazilian = Suposição
+ , spanish = Suposición
+ , schinese = 假定
+ , tchinese = 假定
+ , japanese = 仮定
+ , russian = Предположение
+ }
+ , crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [la]{Supposition}[les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [a]{Suposição}[as]{Suposição}
+ , brazilian = [a]{Suposição}[as]{Suposição}
+ , spanish = [la]{Suposición}[las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ , Crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [La]{Supposition}[Les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [A]{Suposição}[As]{Suposição}
+ , brazilian = [A]{Suposição}[As]{Suposição}
+ , spanish = [La]{Suposición}[Las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ }
+
+\NameTheorem { axiom }
+ {
+ , heading = {
+ , english = Axiom
+ , french = Axiome
+ , ngerman = Axiom
+ , italian = Assioma
+ , portuguese = Axioma
+ , brazilian = Axioma
+ , spanish = Axioma
+ , schinese = 公理
+ , tchinese = 公理
+ , japanese = 公理
+ , russian = Аксиома
+ }
+ , crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [l']{Axiome}[les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [l']{Assioma}[gli]{Assioma}
+ , portuguese = [o]{Axioma}[os]{Axioma}
+ , brazilian = [o]{Axioma}[os]{Axioma}
+ , spanish = [el]{Axioma}[los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ , Crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [L']{Axiome}[Les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [L']{Assioma}[Gli]{Assioma}
+ , portuguese = [O]{Axioma}[Os]{Axioma}
+ , brazilian = [O]{Axioma}[Os]{Axioma}
+ , spanish = [El]{Axioma}[Los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ }
+
+\NameTheorem { conclusion }
+ {
+ , heading = {
+ , english = Conclusion
+ , french = Conclusion
+ , ngerman = Schlussfolgerung
+ , italian = Conclusione
+ , portuguese = Conclusão
+ , brazilian = Conclusão
+ , spanish = Conclusión
+ , schinese = 结论
+ , tchinese = 結論
+ , japanese = 結論
+ , russian = Вывод
+ }
+ , crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [la]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [la]{Conclusione}[le]{Conclusione}
+ , portuguese = [a]{Conclusão}[as]{Conclusão}
+ , brazilian = [a]{Conclusão}[as]{Conclusão}
+ , spanish = [la]{Conclusión}[las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ , Crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [La]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [La]{Conclusione}[Le]{Conclusione}
+ , portuguese = [A]{Conclusão}[As]{Conclusão}
+ , brazilian = [A]{Conclusão}[As]{Conclusão}
+ , spanish = [La]{Conclusión}[Las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ }
+
+\NameTheorem { conjecture }
+ {
+ , heading = {
+ , english = Conjecture
+ , french = Conjecture
+ , ngerman = Vermutung
+ , italian = Congettura
+ , portuguese = Conjetura
+ , brazilian = Conjectura
+ , spanish = Conjetura
+ , schinese = 猜想
+ , tchinese = 猜想
+ , japanese = 予想
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [la]{Conjecture}[les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [la]{Congettura}[le]{Congettura}
+ , portuguese = [a]{Conjetura}[as]{Conjetura}
+ , brazilian = [a]{Conjectura}[as]{Conjectura}
+ , spanish = [la]{Conjetura}[las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [La]{Conjecture}[Les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [La]{Congettura}[Le]{Congettura}
+ , portuguese = [A]{Conjetura}[As]{Conjetura}
+ , brazilian = [A]{Conjectura}[As]{Conjectura}
+ , spanish = [La]{Conjetura}[Las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { convention }
+ {
+ , heading = {
+ , english = Convention
+ , french = Convention
+ , ngerman = Konvention
+ , italian = Convenzione
+ , portuguese = Convenção
+ , brazilian = Convenção
+ , spanish = Convención
+ , schinese = 约定
+ , tchinese = 約定
+ , japanese = 慣例
+ , russian = Конвенция
+ }
+ , crefname = {
+ , english = {Convention}{Convention}
+ , french = [la]{Convention}[les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [la]{Convenzione}[le]{Convenzione}
+ , portuguese = [a]{Convenção}[as]{Convenção}
+ , brazilian = [a]{Convenção}[as]{Convenção}
+ , spanish = [la]{Convención}[las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ , Crefname = {
+ , english = {Convention}{Convention}
+ , french = [La]{Convention}[Les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [La]{Convenzione}[Le]{Convenzione}
+ , portuguese = [A]{Convenção}[As]{Convenção}
+ , brazilian = [A]{Convenção}[As]{Convenção}
+ , spanish = [La]{Convención}[Las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ }
+
+\NameTheorem { corollary }
+ {
+ , heading = {
+ , english = Corollary
+ , french = Corollaire
+ , ngerman = Korollar
+ , italian = Corollario
+ , portuguese = Corolário
+ , brazilian = Corolário
+ , spanish = Corolario
+ , schinese = 推论
+ , tchinese = 推論
+ , japanese = 系
+ , russian = Следствие
+ }
+ , crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [le]{Corollaire}[les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [il]{Corollario}[i]{Corollario}
+ , portuguese = [o]{Corolário}[os]{Corolário}
+ , brazilian = [o]{Corolário}[os]{Corolário}
+ , spanish = [el]{Corolario}[los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ , Crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [Le]{Corollaire}[Les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [Il]{Corollario}[I]{Corollario}
+ , portuguese = [O]{Corolário}[Os]{Corolário}
+ , brazilian = [O]{Corolário}[Os]{Corolário}
+ , spanish = [El]{Corolario}[Los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ }
+
+\NameTheorem { definition }
+ {
+ , heading = {
+ , english = Definition
+ , french = Définition
+ , ngerman = Definition
+ , italian = Definizione
+ , portuguese = Definição
+ , brazilian = Definição
+ , spanish = Definición
+ , schinese = 定义
+ , tchinese = 定義
+ , japanese = 定義
+ , russian = Определение
+ }
+ , crefname = {
+ , english = {Definition}{Definition}
+ , french = [la]{Définition}[les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [la]{Definizione}[le]{Definizione}
+ , portuguese = [a]{Definição}[as]{Definição}
+ , brazilian = [a]{Definição}[as]{Definição}
+ , spanish = [la]{Definición}[las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ , Crefname = {
+ , english = {Definition}{Definition}
+ , french = [La]{Définition}[Les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [La]{Definizione}[Le]{Definizione}
+ , portuguese = [A]{Definição}[As]{Definição}
+ , brazilian = [A]{Definição}[As]{Definição}
+ , spanish = [La]{Definición}[Las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ }
+
+\NameTheorem { example }
+ {
+ , heading = {
+ , english = Example
+ , french = Exemple
+ , ngerman = Beispiel
+ , italian = Esempio
+ , portuguese = Exemplo
+ , brazilian = Exemplo
+ , spanish = Ejemplo
+ , schinese = 例
+ , tchinese = 例
+ , japanese = 例
+ , russian = Пример
+ }
+ , crefname = {
+ , english = {Example}{Example}
+ , french = [l']{Example}[les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [l']{Esempio}[gli]{Esempio}
+ , portuguese = [o]{Exemplo}[os]{Exemplo}
+ , brazilian = [o]{Exemplo}[os]{Exemplo}
+ , spanish = [el]{Ejemplo}[los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ , Crefname = {
+ , english = {Example}{Example}
+ , french = [L']{Example}[Les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [L']{Esempio}[Gli]{Esempio}
+ , portuguese = [O]{Exemplo}[Os]{Exemplo}
+ , brazilian = [O]{Exemplo}[Os]{Exemplo}
+ , spanish = [El]{Ejemplo}[Los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ }
+
+\NameTheorem { exercise }
+ {
+ , heading = {
+ , english = Exercise
+ , french = Exercice
+ , ngerman = Übung
+ , italian = Esercizio
+ , portuguese = Exercício
+ , brazilian = Exercício
+ , spanish = Ejercicio
+ , schinese = 练习
+ , tchinese = 練習
+ , japanese = 練習
+ , russian = Упражнение
+ }
+ , crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [l']{Exercice}[les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [l']{Esercizio}[gli]{Esercizio}
+ , portuguese = [o]{Exercício}[os]{Exercício}
+ , brazilian = [o]{Exercício}[os]{Exercício}
+ , spanish = [el]{Ejercicio}[los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ , Crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [L']{Exercice}[Les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [L']{Esercizio}[Gli]{Esercizio}
+ , portuguese = [O]{Exercício}[Os]{Exercício}
+ , brazilian = [O]{Exercício}[Os]{Exercício}
+ , spanish = [El]{Ejercicio}[Los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ }
+
+\NameTheorem { fact }
+ {
+ , heading = {
+ , english = Fact
+ , french = Fait
+ , ngerman = Fakt
+ , italian = Fatto
+ , portuguese = Facto
+ , brazilian = Fato
+ , spanish = Hecho
+ , schinese = 事实
+ , tchinese = 事實
+ , japanese = 事実
+ , russian = Факт
+ }
+ , crefname = {
+ , english = {Fact}{Fact}
+ , french = [le]{Fait}[les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [il]{Fatto}[i]{Fatto}
+ , portuguese = [o]{Facto}[os]{Facto}
+ , brazilian = [o]{Fato}[os]{Fato}
+ , spanish = [el]{Hecho}[los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ , Crefname = {
+ , english = {Fact}{Fact}
+ , french = [Le]{Fait}[Les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [Il]{Fatto}[I]{Fatto}
+ , portuguese = [O]{Facto}[Os]{Facto}
+ , brazilian = [O]{Fato}[Os]{Fato}
+ , spanish = [El]{Hecho}[Los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ }
+
+\NameTheorem { hypothesis }
+ {
+ , heading = {
+ , english = Hypothesis
+ , french = Hypothèse
+ , ngerman = Hypothese
+ , italian = Ipotesi
+ , portuguese = Hipótese
+ , brazilian = Hipótese
+ , spanish = Hipótesis
+ , schinese = 假设
+ , tchinese = 假設
+ , japanese = 仮設
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [l']{Hypothèse}[les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [l']{Ipotesi}[le]{Ipotesi}
+ , portuguese = [a]{Hipótese}[as]{Hipótese}
+ , brazilian = [a]{Hipótese}[as]{Hipótese}
+ , spanish = [la]{Hipótesis}[las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [L']{Hypothèse}[Les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [L']{Ipotesi}[Le]{Ipotesi}
+ , portuguese = [A]{Hipótese}[As]{Hipótese}
+ , brazilian = [A]{Hipótese}[As]{Hipótese}
+ , spanish = [La]{Hipótesis}[Las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { lemma }
+ {
+ , heading = {
+ , english = Lemma
+ , french = Lemme
+ , ngerman = Lemma
+ , italian = Lemma
+ , portuguese = Lema
+ , brazilian = Lema
+ , spanish = Lema
+ , schinese = 引理
+ , tchinese = 引理
+ , japanese = 補題
+ , russian = Лемма
+ }
+ , crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [le]{Lemme}[les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [il]{Lemma}[i]{Lemma}
+ , portuguese = [o]{Lema}[os]{Lema}
+ , brazilian = [o]{Lema}[os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ , Crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [Le]{Lemme}[Les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [Il]{Lemma}[I]{Lemma}
+ , portuguese = [O]{Lema}[Os]{Lema}
+ , brazilian = [O]{Lema}[Os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ }
+
+\NameTheorem { notation }
+ {
+ , heading = {
+ , english = Notation
+ , french = Notation
+ , ngerman = Notation
+ , italian = Notazione
+ , portuguese = Notação
+ , brazilian = Notação
+ , spanish = Notación
+ , schinese = 记号
+ , tchinese = 記號
+ , japanese = 記法
+ , russian = Нотация
+ }
+ , crefname = {
+ , english = {Notation}{Notation}
+ , french = [la]{Notation}[les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [la]{Notazione}[le]{Notazione}
+ , portuguese = [a]{Notação}[as]{Notação}
+ , brazilian = [a]{Notação}[as]{Notação}
+ , spanish = [la]{Notación}[las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ , Crefname = {
+ , english = {Notation}{Notation}
+ , french = [La]{Notation}[Les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [La]{Notazione}[Le]{Notazione}
+ , portuguese = [A]{Notação}[As]{Notação}
+ , brazilian = [A]{Notação}[As]{Notação}
+ , spanish = [La]{Notación}[Las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ }
+
+\NameTheorem { observation }
+ {
+ , heading = {
+ , english = Observation
+ , french = Observation
+ , ngerman = Beobachtung
+ , italian = Osservazione
+ , portuguese = Observação
+ , brazilian = Observação
+ , spanish = Observación
+ , schinese = 观察
+ , tchinese = 觀察
+ , japanese = 観察
+ , russian = Наблюдение
+ }
+ , crefname = {
+ , english = {Observation}{Observation}
+ , french = [la]{Observation}[les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [l']{Osservazione}[le]{Osservazione}
+ , portuguese = [a]{Observação}[as]{Observação}
+ , brazilian = [a]{Observação}[as]{Observação}
+ , spanish = [la]{Observación}[las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ , Crefname = {
+ , english = {Observation}{Observation}
+ , french = [La]{Observation}[Les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [L']{Osservazione}[Le]{Osservazione}
+ , portuguese = [A]{Observação}[As]{Observação}
+ , brazilian = [A]{Observação}[As]{Observação}
+ , spanish = [La]{Observación}[Las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ }
+
+\NameTheorem { postulate }
+ {
+ , heading = {
+ , english = Postulate
+ , french = Postulat
+ , ngerman = Postulat
+ , italian = Postulato
+ , portuguese = Postulado
+ , brazilian = Postulado
+ , spanish = Postulado
+ , schinese = 公设
+ , tchinese = 公設
+ , japanese = 公準
+ , russian = Постулат
+ }
+ , crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [le]{Postulat}[les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [il]{Postulato}[i]{Postulato}
+ , portuguese = [o]{Postulado}[os]{Postulado}
+ , brazilian = [o]{Postulado}[os]{Postulado}
+ , spanish = [el]{Postulado}[los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ , Crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [Le]{Postulat}[Les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [Il]{Postulato}[I]{Postulato}
+ , portuguese = [O]{Postulado}[Os]{Postulado}
+ , brazilian = [O]{Postulado}[Os]{Postulado}
+ , spanish = [El]{Postulado}[Los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ }
+
+\NameTheorem { problem }
+ {
+ , heading = {
+ , english = Problem
+ , french = Problème
+ , ngerman = Problem
+ , italian = Problema
+ , portuguese = Problema
+ , brazilian = Problema
+ , spanish = Problema
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Проблема
+ }
+ , crefname = {
+ , english = {Problem}{Problem}
+ , french = [le]{Problème}[les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [il]{Problema}[i]{Problema}
+ , portuguese = [o]{Problema}[os]{Problema}
+ , brazilian = [o]{Problema}[os]{Problema}
+ , spanish = [el]{Problema}[los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ , Crefname = {
+ , english = {Problem}{Problem}
+ , french = [Le]{Problème}[Les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [Il]{Problema}[I]{Problema}
+ , portuguese = [O]{Problema}[Os]{Problema}
+ , brazilian = [O]{Problema}[Os]{Problema}
+ , spanish = [El]{Problema}[Los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ }
+
+\NameTheorem { property }
+ {
+ , heading = {
+ , english = Property
+ , french = Propriété
+ , ngerman = Eigenschaft
+ , italian = Proprietà
+ , portuguese = Propriedade
+ , brazilian = Propriedade
+ , spanish = Propiedad
+ , schinese = 性质
+ , tchinese = 性質
+ , japanese = 性質
+ , russian = Имущество
+ }
+ , crefname = {
+ , english = {Property}{Property}
+ , french = [la]{Propriété}[les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [la]{Proprietà}[le]{Proprietà}
+ , portuguese = [a]{Propriedade}[as]{Propriedade}
+ , brazilian = [a]{Propriedade}[as]{Propriedade}
+ , spanish = [la]{Propiedad}[las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ , Crefname = {
+ , english = {Property}{Property}
+ , french = [La]{Propriété}[Les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [La]{Proprietà}[Le]{Proprietà}
+ , portuguese = [A]{Propriedade}[As]{Propriedade}
+ , brazilian = [A]{Propriedade}[As]{Propriedade}
+ , spanish = [La]{Propiedad}[Las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ }
+
+\NameTheorem { proposition }
+ {
+ , heading = {
+ , english = Proposition
+ , french = Proposition
+ , ngerman = Proposition
+ , italian = Proposizione
+ , portuguese = Proposição
+ , brazilian = Proposição
+ , spanish = Proposición
+ , schinese = 命题
+ , tchinese = 命題
+ , japanese = 命題
+ , russian = Предложение
+ }
+ , crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [la]{Proposition}[les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [la]{Proposizione}[le]{Proposizione}
+ , portuguese = [a]{Proposição}[as]{Proposição}
+ , brazilian = [a]{Proposição}[as]{Proposição}
+ , spanish = [la]{Proposición}[las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ , Crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [La]{Proposition}[Les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [La]{Proposizione}[Le]{Proposizione}
+ , portuguese = [A]{Proposição}[As]{Proposição}
+ , brazilian = [A]{Proposição}[As]{Proposição}
+ , spanish = [La]{Proposición}[Las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ }
+
+\NameTheorem { question }
+ {
+ , heading = {
+ , english = Question
+ , french = Question
+ , ngerman = Frage
+ , italian = Domanda
+ , portuguese = Pergunta
+ , brazilian = Pergunta
+ , spanish = Pregunta
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Вопрос
+ }
+ , crefname = {
+ , english = {Question}{Question}
+ , french = [la]{Question}[les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [la]{Domanda}[le]{Domanda}
+ , portuguese = [a]{Pergunta}[as]{Pergunta}
+ , brazilian = [a]{Pergunta}[as]{Pergunta}
+ , spanish = [la]{Pregunta}[las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ , Crefname = {
+ , english = {Question}{Question}
+ , french = [La]{Question}[Les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [La]{Domanda}[Le]{Domanda}
+ , portuguese = [A]{Pergunta}[As]{Pergunta}
+ , brazilian = [A]{Pergunta}[As]{Pergunta}
+ , spanish = [La]{Pregunta}[Las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ }
+
+\NameTheorem { remark }
+ {
+ , heading = {
+ , english = Remark
+ , french = Remarque
+ , ngerman = Bemerkung
+ , italian = Commento
+ , portuguese = Comentário
+ , brazilian = Comentário
+ , spanish = Comentario
+ , schinese = 备注
+ , tchinese = 備註
+ , japanese = 注釈
+ , russian = Замечание
+ }
+ , crefname = {
+ , english = {Remark}{Remark}
+ , french = [la]{Remarque}[les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [il]{Commento}[i]{Commento}
+ , portuguese = [o]{Comentário}[os]{Comentário}
+ , brazilian = [o]{Comentário}[os]{Comentário}
+ , spanish = [el]{Comentario}[los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ , Crefname = {
+ , english = {Remark}{Remark}
+ , french = [La]{Remarque}[Les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [Il]{Commento}[I]{Commento}
+ , portuguese = [O]{Comentário}[Os]{Comentário}
+ , brazilian = [O]{Comentário}[Os]{Comentário}
+ , spanish = [El]{Comentario}[Los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ }
+
+\NameTheorem { theorem }
+ {
+ , heading = {
+ , english = Theorem
+ , french = Théorème
+ , ngerman = Satz
+ , italian = Teorema
+ , portuguese = Teorema
+ , brazilian = Teorema
+ , spanish = Teorema
+ , schinese = 定理
+ , tchinese = 定理
+ , japanese = 定理
+ , russian = Теорема
+ }
+ , crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [le]{Théorème}[les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [il]{Teorema}[i]{Teorema}
+ , portuguese = [o]{Teorema}[os]{Teorema}
+ , brazilian = [o]{Teorema}[os]{Teorema}
+ , spanish = [el]{Teorema}[los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ , Crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [Le]{Théorème}[Les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [Il]{Teorema}[I]{Teorema}
+ , portuguese = [O]{Teorema}[Os]{Teorema}
+ , brazilian = [O]{Teorema}[Os]{Teorema}
+ , spanish = [El]{Teorema}[Los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ }
+
+\NameTheorem { definition-proposition }
+ {
+ , heading = {
+ , english = Definition-Proposition
+ , french = Définition-Proposition
+ , ngerman = Definition-Proposition
+ , italian = Definizione-Proposizione
+ , portuguese = Definição-Proposição
+ , brazilian = Definição-Proposição
+ , spanish = Definición-Proposición
+ , schinese = 定义-命题
+ , tchinese = 定義-命題
+ , japanese = 定義-命題
+ , russian = Определение-Предложение
+ }
+ , crefname = {
+ , english = {Definition-Proposition}{Definition-Proposition}
+ , french = [la]{Définition-Proposition}[les]{Définition-Proposition}
+ , ngerman = {Definition-Proposition}{Definition-Proposition}
+ , italian = [la]{Definizione-Proposizione}[le]{Definizione-Proposizione}
+ , portuguese = [a]{Definição-Proposição}[as]{Definição-Proposição}
+ , brazilian = [a]{Definição-Proposição}[as]{Definição-Proposição}
+ , spanish = [la]{Definición-Proposición}[las]{Definición-Proposición}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {Определение-Предложение}{Определение-Предложение}
+ }
+ , Crefname = {
+ , english = {Definition-Proposition}{Definition-Proposition}
+ , french = [La]{Définition-Proposition}[Les]{Définition-Proposition}
+ , ngerman = {Definition-Proposition}{Definition-Proposition}
+ , italian = [La]{Definizione-Proposizione}[Le]{Definizione-Proposizione}
+ , portuguese = [A]{Definição-Proposição}[As]{Definição-Proposição}
+ , brazilian = [A]{Definição-Proposição}[As]{Definição-Proposição}
+ , spanish = [La]{Definición-Proposición}[Las]{Definición-Proposición}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {Определение-Предложение}{Определение-Предложение}
+ }
+ }
+
+\NameTheorem { definition-theorem }
+ {
+ , heading = {
+ , english = Definition-Theorem
+ , french = Définition-Théorème
+ , ngerman = Definition-Satz
+ , italian = Definizione-Teorema
+ , portuguese = Definição-Teorema
+ , brazilian = Definição-Teorema
+ , spanish = Definición-Teorema
+ , schinese = 定义-定理
+ , tchinese = 定義-定理
+ , japanese = 定義-定理
+ , russian = Определение-Теорема
+ }
+ , crefname = {
+ , english = {Definition-Theorem}{Definition-Theorem}
+ , french = [la]{Définition-Théorème}[les]{Définition-Théorème}
+ , ngerman = {Definition-Satz}{Definition-Satz}
+ , italian = [la]{Definizione-Teorema}[le]{Definizione-Teorema}
+ , portuguese = [a]{Definição-Teorema}[as]{Definição-Teorema}
+ , brazilian = [a]{Definição-Teorema}[as]{Definição-Teorema}
+ , spanish = [la]{Definición-Teorema}[las]{Definición-Teorema}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {Определение-Теорема}{Определение-Теорема}
+ }
+ , Crefname = {
+ , english = {Definition-Theorem}{Definition-Theorem}
+ , french = [La]{Définition-Théorème}[Les]{Définition-Théorème}
+ , ngerman = {Definition-Satz}{Definition-Satz}
+ , italian = [La]{Definizione-Teorema}[Le]{Definizione-Teorema}
+ , portuguese = [A]{Definição-Teorema}[As]{Definição-Teorema}
+ , brazilian = [A]{Definição-Teorema}[As]{Definição-Teorema}
+ , spanish = [La]{Definición-Teorema}[Las]{Definición-Teorema}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {Определение-Теорема}{Определение-Теорема}
+ }
+ }
+%</projlib-theorem>
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/projlib/ProjLib.ins b/macros/latex/contrib/projlib/ProjLib.ins
new file mode 100644
index 0000000000..ca73cff446
--- /dev/null
+++ b/macros/latex/contrib/projlib/ProjLib.ins
@@ -0,0 +1,74 @@
+%%
+%% Copyright (C) 2021-2022 by Jinwen XU
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+
+\begingroup
+\catcode`\^^M=\active%
+\obeyspaces%
+\gdef\copyright{%
+\ds@heading% This is file... generated with the docstrip utility.
+
+Copyright (C) 2021-2022 by Jinwen XU
+
+This is part of the ProjLib Toolkit.
+}%
+\gdef\lppllicense{%
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3c of this license or (at
+your option) any later version. The latest version of this license is in
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+}%
+\endgroup
+
+\def\mypreamble{\copyright\lppllicense}
+\usepreamble\mypreamble
+
+\generate{\file{ProjLib.sty}{\from{ProjLib.dtx}{ProjLib}}}
+\generate{\file{projlib-author.sty}{\from{ProjLib.dtx}{projlib-author}}}
+\generate{\file{projlib-datetime.sty}{\from{ProjLib.dtx}{projlib-datetime}}}
+\generate{\file{projlib-draft.sty}{\from{ProjLib.dtx}{projlib-draft}}}
+\generate{\file{projlib-font.sty}{\from{ProjLib.dtx}{projlib-font}}}
+\generate{\file{projlib-language.sty}{\from{ProjLib.dtx}{projlib-language}}}
+\generate{\file{projlib-logo.sty}{\from{ProjLib.dtx}{projlib-logo}}}
+\generate{\file{projlib-math.sty}{\from{ProjLib.dtx}{projlib-math}}}
+\generate{\file{projlib-paper.sty}{\from{ProjLib.dtx}{projlib-paper}}}
+\generate{\file{projlib-theorem.sty}{\from{ProjLib.dtx}{projlib-theorem}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* files into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* ProjLib.sty *}
+\Msg{* projlib-author.sty *}
+\Msg{* projlib-datetime.sty *}
+\Msg{* projlib-draft.sty *}
+\Msg{* projlib-font.sty *}
+\Msg{* projlib-language.sty *}
+\Msg{* projlib-logo.sty *}
+\Msg{* projlib-math.sty *}
+\Msg{* projlib-paper.sty *}
+\Msg{* projlib-theorem.sty *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/projlib/ProjLib.sty b/macros/latex/contrib/projlib/ProjLib.sty
deleted file mode 100644
index 0e0cdd3666..0000000000
--- a/macros/latex/contrib/projlib/ProjLib.sty
+++ /dev/null
@@ -1,38 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {ProjLib}
- {2022/03/09} {}
- {Collective interface of the ProjLib toolkit}
-
-\keys_define:nn { ProjLib }
- {
- , unknown .code:n = {
- \PassOptionsToPackage { \CurrentOption } { projlib-language }
- \PassOptionsToPackage { \CurrentOption } { projlib-author }
- \PassOptionsToPackage { \CurrentOption } { projlib-datetime }
- \PassOptionsToPackage { \CurrentOption } { projlib-draft }
- \PassOptionsToPackage { \CurrentOption } { projlib-font }
- \PassOptionsToPackage { \CurrentOption } { projlib-logo }
- \PassOptionsToPackage { \CurrentOption } { projlib-math }
- \PassOptionsToPackage { \CurrentOption } { projlib-paper }
- \PassOptionsToPackage { \CurrentOption } { projlib-theorem }
- }
- }
-\ProcessKeysOptions { ProjLib }
-
-\RequirePackage { projlib-language }
-
-\RequirePackage { projlib-author }
-\RequirePackage { projlib-datetime }
-\RequirePackage { projlib-draft }
-\RequirePackage { projlib-font }
-\RequirePackage { projlib-logo }
-\RequirePackage { projlib-math }
-\RequirePackage { projlib-paper }
-
-\RequirePackage { projlib-theorem }
-
-\endinput
-%%
-%% End of file `ProjLib.sty'.
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index 3b5a6fbcf8..b36f8f2437 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -2,9 +2,9 @@
# ProjLib Toolkit
-The bundle is dated 2022/03/09
+The bundle is dated 2022/03/11.
-Old modules are still dated 2021/12/16 and will *not* be modified. When all the new modules are finished, old files shall be removed from this bundle.
+Old modules are still dated 2021/12/16 and will *not* be modified. **When all the new modules and the corresponding documentations are finished, old files shall be removed from this bundle.**
## **Important note**
@@ -25,7 +25,7 @@ The new modules are:
When all these modules are finished, the documentation will be updated accordingly.
-Below are the old README.
+Below is the content of the old README.
---
diff --git a/macros/latex/contrib/projlib/projlib-author.sty b/macros/latex/contrib/projlib/projlib-author.sty
deleted file mode 100644
index 2ad44ff6a3..0000000000
--- a/macros/latex/contrib/projlib/projlib-author.sty
+++ /dev/null
@@ -1,313 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-author}
- {2022/03/09} {}
- {Enhanced author information block}
-
-\keys_define:nn { projlib-author }
- {
- , ams-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , ams-fashion .initial:n = { false }
- , ams~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , ams fashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-author }
-
-\cs_if_exist:NT \subjclass { \endinput }
-
-\tl_new:N \g__projlib_author_font_author_tl
-\tl_new:N \g__projlib_author_font_address_tl
-\tl_new:N \g__projlib_author_font_curraddr_tl
-\tl_new:N \g__projlib_author_font_email_tl
-
-\tl_gset:Nn \g__projlib_author_font_author_tl { \normalsize \normalfont \scshape }
-\tl_gset:Nn \g__projlib_author_font_address_tl { \small \normalfont \itshape }
-\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \small \normalfont \itshape }
-\tl_gset:Nn \g__projlib_author_font_email_tl { \small \normalfont \ttfamily }
-
-\dim_new:N \g__projlib_author_length_innersep_dim
-\dim_new:N \g__projlib_author_length_sep_dim
-\dim_new:N \g__projlib_author_length_aftersep_dim
-
-\dim_set:Nn \g__projlib_author_length_innersep_dim { 0.3 \baselineskip }
-\dim_set:Nn \g__projlib_author_length_sep_dim { 0.5 \baselineskip }
-\dim_set:Nn \g__projlib_author_length_aftersep_dim { 0.3 \baselineskip }
-
-
-\bool_new:N \g__projlib_author_affil_already_exist_bool
-
-\NewCommandCopy \projlib_author_backup_author:w \author
-\RenewDocumentCommand \author { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \skip_vertical:n { \g__projlib_author_length_sep_dim }
- { \g__projlib_author_font_author_tl #1 }
- \bool_set_false:N \g__projlib_author_affil_already_exist_bool
- \\ \phantom {}
- }
- }
-
-\ProvideDocumentCommand \address { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \bool_if:NF \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_innersep_dim }
- }
- \bool_set_true:N \g__projlib_author_affil_already_exist_bool
- { \g__projlib_author_font_address_tl #1 }
- \\ \phantom {}
- }
- }
-
-\ProvideDocumentCommand \curraddr { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \bool_if:NF \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_innersep_dim }
- }
- \bool_set_true:N \g__projlib_author_affil_already_exist_bool
- { \g__projlib_author_font_curraddr_tl #1 }
- \\ \phantom {}
- }
- }
-
-\ProvideDocumentCommand \email { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \bool_if:NF \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_innersep_dim }
- }
- \bool_set_true:N \g__projlib_author_affil_already_exist_bool
- { \g__projlib_author_font_email_tl #1 }
- \\ \phantom {}
- }
- }
-
-\RequirePackage { regexpatch }
-
-\xpatchcmd { \@maketitle } { \begin{tabular}[t]{c} } {} {} { \FAIL }
-\xpatchcmd { \@maketitle } { \end{tabular} } {} {} { \FAIL }
-
-\tl_set:cn {@author} {}
-
-\hook_gput_code:nnn { cmd/@maketitle/before } { projlib-author }
- {
- \hook_gput_code:nnn { cmd/@author/before } { projlib-author }
- {
- \skip_vertical:n { - \g__projlib_author_length_sep_dim }
- }
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \skip_vertical:n { - \baselineskip }
- \bool_if:NT \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_aftersep_dim }
- }
- }
- }
-
-\bool_if:NT \l__projlib_author_amsfashion_bool
- {
- \RequirePackage{ projlib-language }
-
- \tl_new:N \g_projlib_author_keywordsname_style_tl
- \tl_gset:Nn \g_projlib_author_keywordsname_style_tl {}
-
- \projlib_langauge_define_multilingual_text:Nn \keywordsname
- {
- EN = \textsc{Key~words~and~phrases} ,
- FR = \textsc{Mots~et~phrases~clés} ,
- DE = \textsc{Schlüsselwörter~und~Phrasen} ,
- IT = \textsc{Parole~e~frasi~chiave} ,
- PT = \textsc{Palavras~e~frases~chave} ,
- BR = \textsc{Palavras~e~frases~chave} ,
- ES = \textsc{Palabras~y~frases~clave} ,
- CN = 关键词 ,
- TC = 關鍵詞 ,
- JP = キーワード ,
- RU = Ключевые~слова~и~фразы ,
- }
-
- \tl_new:N \g__projlib_author_keywords_tl
- \NewDocumentCommand \keywords { m }
- {
- \tl_gset:Nn \g__projlib_author_keywords_tl { #1 }
- }
-
- \tl_new:N \g__projlib_author_dedicatory_tl
- \NewDocumentCommand \dedicatory { m }
- {
- \tl_gset:Nn \g__projlib_author_dedicatory_tl { #1 }
- }
-
- \hook_gput_code:nnn { begindocument/before } { projlib-author }
- {
- \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
- \tl_gset:Nn \footnotemark {}
-
- \NewCommandCopy \projlib_author_backup_thanks:w \thanks
- \cs_undefine:N \thanks
-
- % measure the width of "*"
- \hbox_set:Nn \l_tmpa_box { * }
- \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
-
- \cs_new_nopar:Nn \projlib_author_pre_thanks:n
- {
- \projlib_author_backup_thanks:w
- {
- \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
- #1
- }
- }
-
- \NewDocumentCommand \thanks { m }
- {
- \tl_if_blank:eF { #1 }
- {
- \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
- {
- \projlib_author_pre_thanks:n { #1 }
- }
- }
- }
-
- \NewCommandCopy \projlib_author_backup_my_author:w \author
- \RenewDocumentCommand \author { m }
- {
- \projlib_author_backup_my_author:w
- {
- \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
- \RenewCommandCopy \thanks \projlib_author_backup_thanks:w
- #1
- \cs_undefine:N \footnotemark
- }
- }
- }
-
- \NewCommandCopy \projlib_author_backup_abstract: \abstract
- \NewCommandCopy \projlib_author_backup_endabstract: \endabstract
- \cs_undefine:N \abstract
- \cs_undefine:N \endabstract
-
- \bool_new:N \g__projlib_author_already_maketitle_bool
- \bool_gset_false:N \g__projlib_author_already_maketitle_bool
- \bool_new:N \g__projlib_author_abstract_before_maketitle_bool
- \bool_gset_false:N \g__projlib_author_abstract_before_maketitle_bool
-
- \RequirePackage{ scontents }
- \newenvsc{abstract}[store-env=projlib-author-abstract,print-env=false]
-
- \hook_gput_code:nnn { env/abstract/after } { projlib-author }
- {
- \bool_if:NTF \g__projlib_author_already_maketitle_bool
- {
- \projlib_author_backup_abstract:
- \getstored{projlib-author-abstract}
- \projlib_author_backup_endabstract:
- }
- {
- \bool_gset_true:N \g__projlib_author_abstract_before_maketitle_bool
- }
- }
-
- \hook_gput_code:nnn { begindocument/before } { projlib-author }
- {
- \makeatletter
- \xpatchcmd { \@maketitle } { \@date }
- {
- \tl_if_blank:eTF { \@date } { \skip_vertical:n { -2 \baselineskip } } { \@date }
- \tl_if_blank:eF { \g__projlib_author_dedicatory_tl }
- {
- \tl_if_blank:eT { \@date } { \skip_vertical:n { 2 \baselineskip } }
- \par
- \skip_vertical:n { -\parskip }
- \skip_vertical:n { \baselineskip }
- \textit{ \g__projlib_author_dedicatory_tl }
- \tl_if_blank:eT { \@date }
- {
- \skip_vertical:n { -\parskip }
- \skip_vertical:n { \dim_eval:n { -1.7 \baselineskip } }
- }
- }
- } {} { \FAIL }
- \makeatother
-
- \hook_gput_code:nnn { cmd/maketitle/before } { projlib-author }
- {
- \tl_if_blank:eF { \g__projlib_author_keywords_tl }
- {
- \projlib_author_pre_thanks:n
- {
- \group_begin:
- \g_projlib_author_keywordsname_style_tl
- \keywordsname .
- \group_end:
- \c_space_tl
- \g__projlib_author_keywords_tl
- }
- }
- }
-
- \hook_gput_code:nnn { cmd/maketitle/after } { projlib-author }
- {
- \bool_if:NT \g__projlib_author_abstract_before_maketitle_bool
- {
- \projlib_author_backup_abstract:
- \getstored{projlib-author-abstract}
- \projlib_author_backup_endabstract:
- }
- \cs_undefine:N \address
- \cs_undefine:N \curraddr
- \cs_undefine:N \email
- \cs_undefine:N \dedicatory
- \cs_undefine:N \keywords
- \bool_gset_true:N \g__projlib_author_already_maketitle_bool
- }
- }
-
- \tl_new:N \l_projlib_author_subjclassname_tl
- \tl_new:N \l_projlib_author_subjclass_tl
- \msg_new:nnn { projlib-author }
- { unknown-msc-edition }
- { Unknown~edition~(#1)~of~Mathematics~Subject~Classification;~using~'2020' }
- \NewDocumentCommand \subjclass { O{2020} m }
- {
- \tl_set:Nn \l_projlib_author_subjclass_tl { #2 }
- \tl_if_exist:cTF { subjclassname_#1 }
- {
- \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_#1 } }
- }
- {
- \msg_warning:nnn { projlib-author } { unknown-msc-edition } { #1 }
- \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_2020 } }
- }
- \projlib_author_pre_thanks:n
- {
- \textit{ \l_projlib_author_subjclassname_tl . }
- \enspace
- \l_projlib_author_subjclass_tl .
- }
- }
- \tl_const:cn { subjclassname_1991 } { \textup{1991}~Mathematics~Subject~Classification }
- \tl_const:cn { subjclassname_2000 } { \textup{2000}~Mathematics~Subject~Classification }
- \tl_const:cn { subjclassname_2010 } { \textup{2010}~Mathematics~Subject~Classification }
- \tl_const:cn { subjclassname_2020 } { \textup{2020}~Mathematics~Subject~Classification }
- }
-
-\endinput
-%%
-%% End of file `projlib-author.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-datetime.sty b/macros/latex/contrib/projlib/projlib-datetime.sty
deleted file mode 100644
index 07c1473171..0000000000
--- a/macros/latex/contrib/projlib/projlib-datetime.sty
+++ /dev/null
@@ -1,1649 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-datetime}
- {2022/03/03} {}
- {Convert numeric date-time string to natural language}
-
-\tl_new:N \g__projlib_datetime_input_format_tl
-\tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day }
-
-\keys_define:nn { projlib-datetime }
- {
- , plain .bool_set:N = \l__projlib_datetime_plain_bool
- , plain .initial:n = { false }
- , year-month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
- , day-month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , year-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , day-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-datetime }
-
-\bool_if:NT \l__projlib_datetime_plain_bool
- {
- \hook_gput_code:nnn { begindocument/before } { projlib-datetime }
- {
- \cs_set:Nn \projlib_datetime_text_superscript:n { #1 }
- }
- }
-
-\tl_new:N \l__projlib_datetime_output_format_tl
-\keys_define:nn { projlib-datetime-command }
- {
- , year-month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
- , day-month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , year-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , day-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , only-year-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year-month } }
- , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } }
- , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } }
- , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } }
- , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } }
- , unknown .code:n = {}
- }
-
-\msg_new:nnnn { projlib-datetime }
- { non-supported-date-format }
- { The~date~format~"#1"~is~not~supported. }
- { The~only~formats~available~are~"year-month-day",~ "month-day-year"~and~"day-month-year". }
-
-\cs_new:Nn \projlib_datetime_set_input_format:n
- {
- \str_case:nnF { #1 }
- {
- { year-month-day } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- { month-day-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
- { day-month-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- }
- {
- \msg_error:nnn { projlib-datetime } { non-supported-date-format } { #1 }
- }
- }
-
-\NewDocumentCommand \ProjLibSetDatetimeInputFormat { m }
- {
- \projlib_datetime_set_input_format:n { #1 }
- }
-
-
-\seq_new:N \l__projlib_datetime_date_seq
-
-\cs_new_protected:Nn \projlib_datetime_text_superscript:n
- {
- \group_begin:
- \small
- \textsuperscript { #1 }
- \group_end:
- }
-
-
-\cs_new:Nn \__projlib_datetime_today:n
- {
- \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
- {
- { only-year-month }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year_month #1 _ \languagename :nn }
- { \int_use:N \c_sys_year_int }
- { \int_use:N \c_sys_month_int }
- }
- { only-month-day }
- {
- \cs_if_exist_use:c { projlib_datetime_display_month_day #1 _ \languagename :nn }
- { \int_use:N \c_sys_month_int }
- { \int_use:N \c_sys_day_int }
- }
- { only-year }
- {
- \cs_if_exist_use:cT { projlib_datetime_display_year #1 _ \languagename :n }
- {
- { \int_use:N \c_sys_year_int }
- }
- }
- { only-month }
- {
- \cs_if_exist_use:cT { projlib_datetime_display_month #1 _ \languagename :n }
- {
- { \int_use:N \c_sys_month_int }
- }
- }
- { only-day }
- {
- \cs_if_exist_use:cT { projlib_datetime_display_day #1 _ \languagename :n }
- {
- { \int_use:N \c_sys_day_int }
- }
- }
- }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year_month_day #1 _ \languagename :nnn }
- { \int_use:N \c_sys_year_int }
- { \int_use:N \c_sys_month_int }
- { \int_use:N \c_sys_day_int }
- }
- }
-
-\NewDocumentCommand \ProjLibtoday { O{} }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_today:n {}
- \group_end:
- }
-
-\NewDocumentCommand \ProjLibToday { O{} }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_today:n { _uppercase }
- \group_end:
- }
-
-\ProvideDocumentCommand \Thedate {} { \ProjLibdate }
-\ProvideDocumentCommand \TheDate {} { \ProjLibDate }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_year_month_day:n
- {
- \__projlib_datetime_display_year_month_day:en { #1 } {}
- }
-
-\cs_new_protected:Nn \projlib_datetime_display_year_month_day_uppercase:n
- {
- \__projlib_datetime_display_year_month_day:en { #1 } { _uppercase }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_display_year_month_day:nn
- {
- \regex_match:nnTF { \A \d{4}-\d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month_day #2 _ \languagename :nnn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % day
- }
- {
- \regex_match:nnTF { \A \d{4}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
- }
- {
- #1
- }
- }
- }
- }
-\cs_generate_variant:Nn \__projlib_datetime_display_year_month_day:nn { en }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_month_day_year:n
-{
- \__projlib_datetime_display_month_day_year:en { #1 } {}
-}
-
-\cs_new_protected:Nn \projlib_datetime_display_month_day_year_uppercase:n
-{
- \__projlib_datetime_display_month_day_year:en { #1 } { _uppercase }
-}
-
-\cs_new_protected:Nn \__projlib_datetime_display_month_day_year:nn
-{
- \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day_year #2 _ \languagename :nnn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
- }
- {
- #1
- }
- }
- }
-}
-\cs_generate_variant:Nn \__projlib_datetime_display_month_day_year:nn { en }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_day_month_year:n
-{
- \__projlib_datetime_display_day_month_year:en { #1 } {}
-}
-
-\cs_new_protected:Nn \projlib_datetime_display_day_month_year_uppercase:n
-{
- \__projlib_datetime_display_day_month_year:en { #1 } { _uppercase }
-}
-
-\cs_new_protected:Nn \__projlib_datetime_display_day_month_year:nn
-{
- \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_day_month_year #2 _ \languagename :nnn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
- }
- {
- #1
- }
- }
- }
-}
-\cs_generate_variant:Nn \__projlib_datetime_display_day_month_year:nn { en }
-
-
-\cs_new_protected:Nn \__projlib_datetime_date_parse_year_month_day:n
- {
- \regex_match:nnTF { \A \d{4}-\d{1,2}(|-\d{1,2}) \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- }
- {
- \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_put_left:Nn \l__projlib_datetime_date_seq {}
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_date_parse_month_day_year:n
- {
- \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_pop_right:NN \l__projlib_datetime_date_seq \l_tmpa_tl
- \seq_put_left:NV \l__projlib_datetime_date_seq \l_tmpa_tl
- }
- {
- \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_put_left:Nn \l__projlib_datetime_date_seq {}
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_date_parse_day_month_year:n
- {
- \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_reverse:N \l__projlib_datetime_date_seq
- }
- {
- \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_reverse:N \l__projlib_datetime_date_seq
- \seq_put_left:Nn \l__projlib_datetime_date_seq {}
- }
- }
- }
-
-\cs_new:Nn \__projlib_datetime_input_format_to_str:
- {
- \str_case_e:nn { \g__projlib_datetime_input_format_tl }
- {
- { year-month-day } { year_month_day }
- { month-day-year } { month_day_year }
- { day-month-year } { day_month_year }
- }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_display_date_according_to_format:nn
- {
- \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
- \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
- {
- { only-year-month }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- }
- { only-month-day }
- {
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
- }
- { only-year }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year #2 _ \languagename :n }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
- }
- { only-month }
- {
- \cs_if_exist_use:c { projlib_datetime_display_month #2 _ \languagename :n }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- }
- { only-day }
- {
- \cs_if_exist_use:c { projlib_datetime_display_day #2 _ \languagename :n }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
- }
- }
- {
- \cs_if_exist_use:c { projlib_datetime_display_ \__projlib_datetime_input_format_to_str: #2 :n } { #1 }
- }
- }
-
-\NewDocumentCommand \ProjLibdate { O{} m }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \tl_set:Nn \l_tmpa_tl { #2 }
- \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
- \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } {}
- \group_end:
- }
-
-\NewDocumentCommand \ProjLibDate { O{} m }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \tl_set:Nn \l_tmpa_tl { #2 }
- \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
- \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } { _uppercase }
- \group_end:
- }
-
-
-\int_new:N \l__projlib_datetime_day_of_week_day_int
-\int_new:N \l__projlib_datetime_day_of_week_month_int
-\int_new:N \l__projlib_datetime_day_of_week_year_int
-\int_new:N \l__projlib_datetime_day_of_week_century_int
-\int_new:N \l__projlib_datetime_day_of_week_result_int
-\cs_new:Nn \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_day_int { #3 }
- \int_compare:nNnTF { #2 } < { 3 }
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_eval:n { #1 - 1 } }
- }
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_year_int { #1 }
- }
- \int_set:Nn \l__projlib_datetime_day_of_week_century_int { \int_eval:n { \l__projlib_datetime_day_of_week_year_int / 100 } }
- \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_mod:nn { \l__projlib_datetime_day_of_week_year_int } { 100 } }
- \int_set:Nn \l__projlib_datetime_day_of_week_month_int
- {
- \int_case:nnF { #2 }
- {
- { 1 } { 0 }
- { 2 } { 3 }
- { 3 } { 2 }
- { 4 } { 5 }
- { 5 } { 0 }
- { 6 } { 3 }
- { 7 } { 5 }
- { 8 } { 1 }
- { 9 } { 4 }
- { 10 } { 6 }
- { 11 } { 2 }
- { 12 } { 4 }
- } { 0 }
- }
- \int_set:Nn \l__projlib_datetime_day_of_week_result_int
- {
- \int_eval:n
- {
- \l__projlib_datetime_day_of_week_day_int
- + \l__projlib_datetime_day_of_week_month_int
- +\l__projlib_datetime_day_of_week_year_int
- + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_year_int } { 4 }
- + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_century_int } { 4 }
- - 2 * \l__projlib_datetime_day_of_week_century_int
- }
- }
- \int_set:Nn \l__projlib_datetime_day_of_week_result_int
- {
- \int_mod:nn { \l__projlib_datetime_day_of_week_result_int } { 7 }
- }
- \int_compare:nNnT { \l__projlib_datetime_day_of_week_result_int } < { 1 }
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_result_int
- {
- \int_eval:n { \l__projlib_datetime_day_of_week_result_int + 7 }
- }
- }
- }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_week:n
- {
- \__projlib_datetime_display_week_according_to_format:en { #1 } {}
- }
-
-\cs_new_protected:Nn \projlib_datetime_display_week_uppercase:n
- {
- \__projlib_datetime_display_week_according_to_format:en { #1 } { _uppercase }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_display_week_according_to_format:nn
- {
- \projlib_datetime_calculate_week_according_to_format:n { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_week #2 _ \languagename :n } { \l__projlib_datetime_day_of_week_result_int }
- }
-\cs_generate_variant:Nn \__projlib_datetime_display_week_according_to_format:nn { en }
-
-
-\cs_new_protected:Nn \projlib_datetime_calculate_week_according_to_format:n
- {
- \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
- \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
- }
-
-
-% For each language, there are 7 groups of functions:
-% 1) \projlib_datetime_display_year_month_day_<languagename>:nnn
-% \projlib_datetime_display_year_month_day_uppercase_<languagename>:nnn
-% 2) \projlib_datetime_display_year_month_<languagename>:nn
-% \projlib_datetime_display_year_month_uppercase_<languagename>:nn
-% 3) \projlib_datetime_display_month_day_<languagename>:nn
-% \projlib_datetime_display_month_day_uppercase_<languagename>:nn
-% 4) \projlib_datetime_display_year_<languagename>:n
-% \projlib_datetime_display_year_uppercase_<languagename>:n
-% 5) \projlib_datetime_display_month_<languagename>:n
-% \projlib_datetime_display_month_uppercase_<languagename>:n
-% 6) \projlib_datetime_display_day_<languagename>:n
-% \projlib_datetime_display_day_uppercase_<languagename>:n
-% 7) \projlib_datetime_display_week_<languagename>:n
-% \projlib_datetime_display_week_uppercase_<languagename>:n
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_english:nnn
- {
- \projlib_datetime_display_month_day_english:nn { #2 } { #3 }
- ,\nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_english:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn
- {
- \projlib_datetime_display_month_day_uppercase_english:nn { #2 } { #3 }
- ,\nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_english:nn
- {
- \projlib_datetime_display_month_english:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_english:nn
- {
- \projlib_datetime_display_month_uppercase_english:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_english:nn
- {
- \projlib_datetime_display_month_english:n { #1 }
- \nobreakspace
- \projlib_datetime_display_day_english:n { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_english:nn
- {
- \projlib_datetime_display_month_uppercase_english:n { #1 }
- \nobreakspace
- \projlib_datetime_display_day_english:n { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_english:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_english:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_english:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { January }
- { 2 } { February }
- { 3 } { March }
- { 4 } { April }
- { 5 } { May }
- { 6 } { June }
- { 7 } { July }
- { 8 } { August }
- { 9 } { September }
- { 10 } { October }
- { 11 } { November }
- { 12 } { December }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_english:n
- {
- \projlib_datetime_display_month_english:n { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_english:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_english:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_english:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Monday }
- { 2 } { Tuesday }
- { 3 } { Wednesday }
- { 4 } { Thursday }
- { 5 } { Friday }
- { 6 } { Saturday }
- { 7 } { Sunday }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_english:n
- {
- \projlib_datetime_display_week_english:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_french:nnn
- {
- \projlib_datetime_display_month_day_french:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_french:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn
- {
- \projlib_datetime_display_month_day_uppercase_french:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_french:nn
- {
- \projlib_datetime_display_month_french:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_french:nn
- {
- \projlib_datetime_display_month_uppercase_french:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_french:nn
- {
- \projlib_datetime_display_day_french:n { #2 }
- \nobreakspace
- \projlib_datetime_display_month_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_french:nn
- {
- \projlib_datetime_display_month_day_french:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_french:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_french:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { janvier }
- { 2 } { février }
- { 3 } { mars }
- { 4 } { avril }
- { 5 } { mai }
- { 6 } { juin }
- { 7 } { juillet }
- { 8 } { août }
- { 9 } { septembre }
- { 10 } { octobre }
- { 11 } { novembre }
- { 12 } { décembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Janvier }
- { 2 } { Février }
- { 3 } { Mars }
- { 4 } { Avril }
- { 5 } { Mai }
- { 6 } { Juin }
- { 7 } { Juillet }
- { 8 } { Août }
- { 9 } { Septembre }
- { 10 } { Octobre }
- { 11 } { Novembre }
- { 12 } { Décembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_uppercase_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { lundi }
- { 2 } { mardi }
- { 3 } { mercredi }
- { 4 } { jeudi }
- { 5 } { vendredi }
- { 6 } { samedi }
- { 7 } { dimanche }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Lundi }
- { 2 } { Mardi }
- { 3 } { Mercredi }
- { 4 } { Jeudi }
- { 5 } { Vendredi }
- { 6 } { Samedi }
- { 7 } { Dimanche }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_ngerman:nnn
- {
- \projlib_datetime_display_month_day_ngerman:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_ngerman:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn
- {
- \projlib_datetime_display_month_day_uppercase_ngerman:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_ngerman:nn
- {
- \projlib_datetime_display_month_ngerman:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn
- {
- \projlib_datetime_display_month_uppercase_ngerman:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_ngerman:nn
- {
- \projlib_datetime_display_day_ngerman:n { #2 }
- .\nobreakspace
- \projlib_datetime_display_month_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn
- {
- \projlib_datetime_display_month_day_ngerman:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_ngerman:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_ngerman:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_ngerman:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Januar }
- { 2 } { Februar }
- { 3 } { März }
- { 4 } { April }
- { 5 } { Mai }
- { 6 } { Juni }
- { 7 } { Juli }
- { 8 } { August }
- { 9 } { September }
- { 10 } { Oktober }
- { 11 } { November }
- { 12 } { Dezember }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_ngerman:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Januar }
- { 2 } { Februar }
- { 3 } { März }
- { 4 } { April }
- { 5 } { Mai }
- { 6 } { Juni }
- { 7 } { Juli }
- { 8 } { August }
- { 9 } { September }
- { 10 } { Oktober }
- { 11 } { November }
- { 12 } { Dezember }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_ngerman:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_ngerman:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_ngerman:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Montag }
- { 2 } { Dienstag }
- { 3 } { Mittwoch }
- { 4 } { Donnerstag }
- { 5 } { Freitag }
- { 6 } { Samstag }
- { 7 } { Sonntag }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_ngerman:n
- {
- \projlib_datetime_display_week_ngerman:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_italian:nnn
- {
- \projlib_datetime_display_month_day_italian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_italian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn
- {
- \projlib_datetime_display_month_day_uppercase_italian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_italian:nn
- {
- \projlib_datetime_display_month_italian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_italian:nn
- {
- \projlib_datetime_display_month_uppercase_italian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_italian:nn
- {
- \projlib_datetime_display_day_italian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_month_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_italian:nn
- {
- \projlib_datetime_display_month_day_italian:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_italian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_italian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { gennaio }
- { 2 } { febbraio }
- { 3 } { marzo }
- { 4 } { aprile }
- { 5 } { maggio }
- { 6 } { giugno }
- { 7 } { luglio }
- { 8 } { agosto }
- { 9 } { settembre }
- { 10 } { ottobre }
- { 11 } { novembre }
- { 12 } { dicembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Gennaio }
- { 2 } { Febbraio }
- { 3 } { Marzo }
- { 4 } { Aprile }
- { 5 } { Maggio }
- { 6 } { Giugno }
- { 7 } { Luglio }
- { 8 } { Agosto }
- { 9 } { Settembre }
- { 10 } { Ottobre }
- { 11 } { Novembre }
- { 12 } { Dicembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_italian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_italian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { lunedì }
- { 2 } { martedì }
- { 3 } { mercoledì }
- { 4 } { giovedì }
- { 5 } { venerdì }
- { 6 } { sabato }
- { 7 } { domenica }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Lunedì }
- { 2 } { Martedì }
- { 3 } { Mercoledì }
- { 4 } { Giovedì }
- { 5 } { Venerdì }
- { 6 } { Sabato }
- { 7 } { Domenica }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_portuguese:nnn
- {
- \projlib_datetime_display_month_day_portuguese:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_portuguese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn
- {
- \projlib_datetime_display_month_day_uppercase_portuguese:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_portuguese:nn
- {
- \projlib_datetime_display_month_portuguese:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn
- {
- \projlib_datetime_display_month_uppercase_portuguese:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_portuguese:nn
- {
- \projlib_datetime_display_day_portuguese:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_month_uppercase_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn
- {
- \projlib_datetime_display_month_day_portuguese:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_portuguese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_portuguese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { janeiro }
- { 2 } { fevereiro }
- { 3 } { março }
- { 4 } { abril }
- { 5 } { maio }
- { 6 } { junho }
- { 7 } { julho }
- { 8 } { agosto }
- { 9 } { setembro }
- { 10 } { outubro }
- { 11 } { novembro }
- { 12 } { dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Janeiro }
- { 2 } { Fevereiro }
- { 3 } { Março }
- { 4 } { Abril }
- { 5 } { Maio }
- { 6 } { Junho }
- { 7 } { Julho }
- { 8 } { Agosto }
- { 9 } { Setembro }
- { 10 } { Outubro }
- { 11 } { Novembro }
- { 12 } { Dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_portuguese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_portuguese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { segunda-feira }
- { 2 } { terça-feira }
- { 3 } { quarta-feira }
- { 4 } { quinta-feira }
- { 5 } { sexta-feira }
- { 6 } { sábado }
- { 7 } { domingo }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Segunda-feira }
- { 2 } { Terça-feira }
- { 3 } { Quarta-feira }
- { 4 } { Quinta-feira }
- { 5 } { Sexta-feira }
- { 6 } { Sábado }
- { 7 } { Domingo }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_brazilian:nnn
- {
- \projlib_datetime_display_month_day_brazilian:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_brazilian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn
- {
- \projlib_datetime_display_month_day_uppercase_brazilian:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_brazilian:nn
- {
- \projlib_datetime_display_month_brazilian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn
- {
- \projlib_datetime_display_month_uppercase_brazilian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_brazilian:nn
- {
- \projlib_datetime_display_day_brazilian:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_month_uppercase_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn
- {
- \projlib_datetime_display_month_day_brazilian:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_brazilian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_brazilian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { janeiro }
- { 2 } { fevereiro }
- { 3 } { março }
- { 4 } { abril }
- { 5 } { maio }
- { 6 } { junho }
- { 7 } { julho }
- { 8 } { agosto }
- { 9 } { setembro }
- { 10 } { outubro }
- { 11 } { novembro }
- { 12 } { dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Janeiro }
- { 2 } { Fevereiro }
- { 3 } { Março }
- { 4 } { Abril }
- { 5 } { Maio }
- { 6 } { Junho }
- { 7 } { Julho }
- { 8 } { Agosto }
- { 9 } { Setembro }
- { 10 } { Outubro }
- { 11 } { Novembro }
- { 12 } { Dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_brazilian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_brazilian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { segunda-feira }
- { 2 } { terça-feira }
- { 3 } { quarta-feira }
- { 4 } { quinta-feira }
- { 5 } { sexta-feira }
- { 6 } { sábado }
- { 7 } { domingo }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Segunda-feira }
- { 2 } { Terça-feira }
- { 3 } { Quarta-feira }
- { 4 } { Quinta-feira }
- { 5 } { Sexta-feira }
- { 6 } { Sábado }
- { 7 } { Domingo }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_spanish:nnn
- {
- \projlib_datetime_display_month_day_spanish:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_spanish:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn
- {
- \projlib_datetime_display_month_day_uppercase_spanish:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_spanish:nn
- {
- \projlib_datetime_display_month_spanish:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn
- {
- \projlib_datetime_display_month_uppercase_spanish:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_spanish:nn
- {
- \projlib_datetime_display_day_spanish:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_month_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn
- {
- \projlib_datetime_display_month_day_spanish:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_spanish:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_spanish:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { enero }
- { 2 } { febrero }
- { 3 } { marzo }
- { 4 } { abril }
- { 5 } { mayo }
- { 6 } { junio }
- { 7 } { julio }
- { 8 } { agosto }
- { 9 } { septiembre }
- { 10 } { octubre }
- { 11 } { noviembre }
- { 12 } { diciembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Enero }
- { 2 } { Febrero }
- { 3 } { Marzo }
- { 4 } { Abril }
- { 5 } { Mayo }
- { 6 } { Junio }
- { 7 } { Julio }
- { 8 } { Agosto }
- { 9 } { Septiembre }
- { 10 } { Octubre }
- { 11 } { Noviembre }
- { 12 } { Diciembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_spanish:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_spanish:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { lunes }
- { 2 } { martes }
- { 3 } { miércoles }
- { 4 } { jueves }
- { 5 } { viernes }
- { 6 } { sábado }
- { 7 } { domingo }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Lunes }
- { 2 } { Martes }
- { 3 } { Miércoles }
- { 4 } { Jueves }
- { 5 } { Viernes }
- { 6 } { Sábado }
- { 7 } { Domingo }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_schinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_schinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_schinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_schinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_schinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_schinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_month_schinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_month_uppercase_schinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_day_schinese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_schinese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_schinese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 星期一 }
- { 2 } { 星期二 }
- { 3 } { 星期三 }
- { 4 } { 星期四 }
- { 5 } { 星期五 }
- { 6 } { 星期六 }
- { 7 } { 星期日 }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_schinese:n
- {
- \projlib_datetime_display_week_schinese:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_tchinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_tchinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_tchinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_tchinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_tchinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_tchinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_month_tchinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_month_uppercase_tchinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_day_tchinese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_tchinese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_tchinese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 星期一 }
- { 2 } { 星期二 }
- { 3 } { 星期三 }
- { 4 } { 星期四 }
- { 5 } { 星期五 }
- { 6 } { 星期六 }
- { 7 } { 星期日 }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_tchinese:n
- {
- \projlib_datetime_display_week_tchinese:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_japanese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_japanese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_japanese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_japanese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_japanese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_japanese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_month_japanese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_month_uppercase_japanese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_day_japanese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_japanese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_japanese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 月曜日 }
- { 2 } { 火曜日 }
- { 3 } { 水曜日 }
- { 4 } { 木曜日 }
- { 5 } { 金曜日 }
- { 6 } { 土曜日 }
- { 7 } { 日曜日 }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_japanese:n
- {
- \projlib_datetime_display_week_japanese:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_russian:nnn
- {
- \projlib_datetime_display_month_day_russian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_russian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn
- {
- \projlib_datetime_display_month_day_uppercase_russian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_russian:nn
- {
- \projlib_datetime_display_month_russian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_russian:nn
- {
- \projlib_datetime_display_month_uppercase_russian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_russian:nn
- {
- \projlib_datetime_display_day_russian:n { #2 }
- \nobreakspace
- \int_case:nnF { #1 }
- {
- { 1 } { января }
- { 2 } { февраля }
- { 3 } { марта }
- { 4 } { апреля }
- { 5 } { мая }
- { 6 } { июня }
- { 7 } { июля }
- { 8 } { августа }
- { 9 } { сентября }
- { 10 } { октября }
- { 11 } { ноября }
- { 12 } { декабря }
- } { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_russian:nn
- {
- \projlib_datetime_display_month_day_russian:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_russian:n { #1 ~ г. }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_russian:n { #1 ~ г. }
-
-\cs_new:Nn \projlib_datetime_display_month_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { январь }
- { 2 } { февраль }
- { 3 } { март }
- { 4 } { апрель }
- { 5 } { май }
- { 6 } { июнь }
- { 7 } { июль }
- { 8 } { август }
- { 9 } { сентябрь }
- { 10 } { октябрь }
- { 11 } { ноябрь }
- { 12 } { декабрь }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Январь }
- { 2 } { Февраль }
- { 3 } { Март }
- { 4 } { Апрель }
- { 5 } { Май }
- { 6 } { Июнь }
- { 7 } { Июль }
- { 8 } { Август }
- { 9 } { Сентябрь }
- { 10 } { Октябрь }
- { 11 } { Ноябрь }
- { 12 } { Декабрь }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_russian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_russian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { понедельник }
- { 2 } { вторник }
- { 3 } { среда }
- { 4 } { четверг }
- { 5 } { пятница }
- { 6 } { суббота }
- { 7 } { воскресенье }
- } { ??? }
- }
-\cs_new:Nn \projlib_datetime_display_week_uppercase_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Понедельник }
- { 2 } { Вторник }
- { 3 } { Среда }
- { 4 } { Четверг }
- { 5 } { Пятница }
- { 6 } { Суббота }
- { 7 } { Воскресенье }
- } { ??? }
- }
-
-\endinput
-%%
-%% End of file `projlib-datetime.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-draft.sty b/macros/latex/contrib/projlib/projlib-draft.sty
deleted file mode 100644
index 6c7fe818c7..0000000000
--- a/macros/latex/contrib/projlib/projlib-draft.sty
+++ /dev/null
@@ -1,140 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-draft}
- {2022/02/24} {}
- {Useful commands during draft stage}
-
-\keys_define:nn { projlib-draft }
- {
- , draft .bool_set:N = \l__projlib_draft_fast_bool
- , draft .initial:n = { false }
- , fast .bool_set:N = \l__projlib_draft_fast_bool
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-draft }
-
-\RequirePackage { projlib-language }
-\RequirePackage { xcolor }
-
-\bool_if:NTF \l__projlib_draft_fast_bool
- {
- \NewDocumentCommand \projlib_draft_plain_box { O{-paper} m }
- {
- \group_begin:
- \color { #1 }
- \dim_set:Nn \fboxsep { 1.5pt }
- \dim_set:Nn \fboxrule { 1.5pt }
- \fbox { #2 }
- \group_end:
- }
- }
- {
- \PassOptionsToPackage { many } { tcolorbox }
- \RequirePackage { tcolorbox }
- \NewTCBox \projlib_draft_plain_box { O{-paper} }
- {
- enhanced~jigsaw, breakable,
- on~line, arc = 1.2pt, outer~arc = 1pt,
- colframe = #1, colupper = #1, opacityback = 0,
- boxsep = 1pt, boxrule = 1.2pt,
- left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,
- }
- }
-
-\projlib_langauge_define_multilingual_text:Nn \__dnf_text
- {
- EN = To\ be\ finished ,
- FR = Pas\ encore\ fini ,
- DE = Nicht\ beendet ,
- IT = Per\ essere\ finito ,
- PT = Não\ terminou ,
- BR = Não\ terminou ,
- ES = Estar\ terminado ,
- CN = 这里尚未完成 ,
- TC = 這裡尚未完成 ,
- JP = 終わってない ,
- RU = Не\ закончен ,
- }
-
-\projlib_langauge_define_multilingual_text:Nn \__dnf_report_text
- {
- EN = { Below\ is\ a\ list\ of\ outstanding\ items,
- \ followed\ by\ the\ corresponding\ page\ numbers. } ,
- FR = { Voici\ la\ liste\ des\ éléments\ en\ suspens,
- \ suivie\ des\ numéros\ de\ page\ correspondants. } ,
- DE = { Unten\ ist\ eine\ Liste\ der\ ausstehenden\ Posten,
- \ gefolgt\ von\ den\ entsprechenden\ Seitenzahlen. } ,
- IT = { Qui\ sotto\ c'è\ una\ lista\ di\ voci\ in\ sospeso,
- \ seguita\ dai\ numeri\ di\ pagina\ corrispondenti. } ,
- PT = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
- \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
- BR = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
- \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
- ES = { Aquí está\ la\ lista\ de\ elementos\ pendientes,
- \ seguida\ de\ los\ números\ de\ página\ correspondientes. } ,
- CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } ,
- TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } ,
- JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } ,
- RU = { Ниже\ приведен\ список\ невыполненных\ пунктов
- \ с\ соответствующими\ номерами\ страниц\ в\ скобках. } ,
- }
-
-\tl_new:c { __dnf_font }
-\tl_gset:cn { __dnf_font } { \normalfont \ttfamily \bfseries \small }
-
-\definecolor { __dnf_color } { RGB } { 21, 122, 20 }
-
-\newcounter { __dnf_counter }
-
-\tl_new:N \g__projlib_draft_dnf_report_tl
-
-\NewDocumentCommand \dnf { d<> }
- {
- \noindent
- \projlib_draft_plain_box [ __dnf_color ]
- {
- \stepcounter { __dnf_counter }
- \__dnf_font
- \__dnf_text
- \c_space_tl
- \# \the__dnf_counter
- \IfNoValueF { #1 } { \, : ~ #1 }
- \tl_gput_right:Nx \g__projlib_draft_dnf_report_tl
- {
- \# \,
- \int_value:w \the__dnf_counter
- \c_space_tl \c_space_tl
- $\langle$
- \skip_horizontal:n { 0.1em }
- \cs_if_exist:cTF { hyperlink }
- {
- \exp_not:N \hyperlink { page.\thepage } { \thepage }
- }
- {
- \thepage
- }
- \skip_horizontal:n { 0.1em }
- $\rangle$
- \c_space_tl
- \IfNoValueF { #1 } { : ~ #1 }
- \\
- }
- }
- }
-
-\hook_gput_code:nnn { enddocument } { projlib-draft }
- {
- \tl_if_blank:VF \g__projlib_draft_dnf_report_tl
- {
- \clearpage \noindent
- \color { __dnf_color }
- \__dnf_font
- \__dnf_report_text \\[0.75\baselineskip]
- \g__projlib_draft_dnf_report_tl
- }
- }
-
-\endinput
-%%
-%% End of file `projlib-draft.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-font.sty b/macros/latex/contrib/projlib/projlib-font.sty
deleted file mode 100644
index c308c1c66d..0000000000
--- a/macros/latex/contrib/projlib/projlib-font.sty
+++ /dev/null
@@ -1,144 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-font}
- {2022/03/01} {}
- {Font selection and configuration}
-
-\keys_define:nn { projlib-font }
- {
- , useosf .bool_set:N = \l__projlib_font_useosf_bool
- , useosf .initial:n = { false }
- , old-style-figures.bool_set:N = \l__projlib_font_useosf_bool
- , old~style~figures.bool_set:N = \l__projlib_font_useosf_bool
- , old style figures.bool_set:N = \l__projlib_font_useosf_bool
- , lmodern .bool_set:N = \l__projlib_font_lmodern_bool
- , lmodern .initial:n = { false }
- , latin-modern .bool_set:N = \l__projlib_font_lmodern_bool
- , latin~modern .bool_set:N = \l__projlib_font_lmodern_bool
- , latin modern .bool_set:N = \l__projlib_font_lmodern_bool
- , palatino .bool_set:N = \l__projlib_font_palatino_bool
- , palatino .initial:n = { false }
- , times .bool_set:N = \l__projlib_font_times_bool
- , times .initial:n = { false }
- , garamond .bool_set:N = \l__projlib_font_garamond_bool
- , garamond .initial:n = { false }
- , noto .bool_set:N = \l__projlib_font_noto_bool
- , noto .initial:n = { false }
- , biolinum .bool_set:N = \l__projlib_font_biolinum_bool
- , biolinum .initial:n = { false }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-font }
-
-\RequirePackage { setspace }
-
-\cs_new:Nn \projlib_font_set_linespacing_latin:n
- {
- \cs_if_exist:NTF \projlib_language_set_linespacing_latin:n
- {
- \projlib_language_set_linespacing_latin:n { #1 }
- }
- {
- #1
- }
- }
-
-\bool_if:NT \l__projlib_font_lmodern_bool
- {
- \RequirePackage { amssymb }
- \bool_if:NTF \l__projlib_font_useosf_bool
- {
- \RequirePackage { cfr-lm }
- }
- {
- \RequirePackage { lmodern }
- }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- }
-
-\bool_if:NT \l__projlib_font_palatino_bool
- {
- \RequirePackage { mathpazo }
- \PassOptionsToPackage { defaultsups } { newpxtext }
- \RequirePackage { newpxtext }
- \cs_undefine:c { openbox }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.07 } }
- \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
- }
-
-\bool_if:NT \l__projlib_font_times_bool
- {
- \PassOptionsToPackage { defaultsups } { newtxtext }
- \RequirePackage { newtxtext }
- \RequirePackage { newtxmath }
- \cs_undefine:c { openbox }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
- }
-
-\bool_if:NT \l__projlib_font_garamond_bool
- {
- \bool_if:NF \l__projlib_font_useosf_bool
- {
- \PassOptionsToPackage { lining } { ebgaramond }
- }
- \RequirePackage [ cmintegrals, cmbraces ] { newtxmath }
- \cs_undefine:c { openbox }
- \RequirePackage { ebgaramond-maths }
- \RequirePackage { ebgaramond }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- }
-
-\bool_if:NT \l__projlib_font_noto_bool
- {
- \bool_if:NT \l__projlib_font_useosf_bool
- {
- \PassOptionsToPackage { oldstyle } { notomath }
- }
- \RequirePackage { anyfontsize }
- \RequirePackage { notomath }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- }
-
-\bool_if:NT \l__projlib_font_biolinum_bool
- {
- \RequirePackage [ OT1 ] { eulervm }
- \sys_if_engine_pdftex:TF
- {
- \bool_if:NT \l__projlib_font_useosf_bool
- {
- \PassOptionsToPackage { osf } { biolinum }
- }
- \RequirePackage { biolinum }
- \tl_gset:Nn \familydefault { \biolinum@family }
- }
- {
- \PassOptionsToPackage { no-math } { fontspec }
- \RequirePackage { fontspec }
- \bool_if:NTF \l__projlib_font_useosf_bool
- {
- \setmainfont { LinBiolinum_R.otf } [
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf ,
- Numbers = OldStyle , ]
- }
- {
- \setmainfont { LinBiolinum_R.otf } [
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf , ]
- }
- }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.05 } }
- \RequirePackage [ italic, defaultmathsizes ] { mathastext }
- }
-
-\RequirePackage { silence }
-\WarningFilter { microtype } { Unable }
-\RequirePackage { microtype }
-
-\endinput
-%%
-%% End of file `projlib-font.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-language.sty b/macros/latex/contrib/projlib/projlib-language.sty
deleted file mode 100644
index 4a67c6a018..0000000000
--- a/macros/latex/contrib/projlib/projlib-language.sty
+++ /dev/null
@@ -1,512 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-language}
- {2022/03/09} {}
- {Multi-language configuration}
-
-\clist_const:Nn \c__projlib_language_supported_clist
- {
- english ,
- french ,
- ngerman ,
- italian ,
- portuguese ,
- brazilian ,
- spanish ,
- schinese ,
- tchinese ,
- japanese ,
- russian ,
- }
-
-\clist_new:N \g__projlib_language_babel_option_clist
-
-\str_new:N \g__projlib_language_main_str
-
-\bool_new:N \g__projlib_language_enabled_all_bool
-\bool_gset_true:N \g__projlib_language_enabled_all_bool
-
-\clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \bool_new:c { g__projlib_language_enabled_ #1 _bool }
- \bool_gset_false:c { g__projlib_language_enabled_ #1 _bool }
- }
-
-\cs_new:Nn \projlib_language_set_option_no_babel:n
- {
- \bool_gset_false:N \g__projlib_language_enabled_all_bool
- \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
- \str_if_empty:NT \g__projlib_language_main_str
- {
- \str_gset:Nn \g__projlib_language_main_str { #1 }
- }
- }
-\cs_new:Nn \projlib_language_set_option:n
- {
- \projlib_language_set_option_no_babel:n { #1 }
- \clist_gput_left:Nn \g__projlib_language_babel_option_clist { #1 }
- }
-
-\keys_define:nn { projlib-language }
- {
- , EN .meta:n = { english }
- , english .code:n = { \projlib_language_set_option:n { english } }
- , English .meta:n = { english }
- , FR .meta:n = { french }
- , french .code:n = { \projlib_language_set_option:n { french } }
- , French .meta:n = { french }
- , DE .meta:n = { ngerman }
- , german .meta:n = { ngerman }
- , ngerman .code:n = { \projlib_language_set_option:n { ngerman } }
- , German .meta:n = { ngerman }
- , IT .meta:n = { italian }
- , italian .code:n = { \projlib_language_set_option:n { italian } }
- , Italian .meta:n = { italian }
- , PT .meta:n = { portuguese }
- , portuguese .code:n = { \projlib_language_set_option:n { portuguese } }
- , Portuguese .meta:n = { portuguese }
- , BR .meta:n = { brazilian }
- , brazilian .code:n = { \projlib_language_set_option:n { brazilian } }
- , Brazilian .meta:n = { brazilian }
- , ES .meta:n = { spanish }
- , spanish .code:n = { \clist_gput_left:Nn \g__projlib_language_babel_option_clist { es-notilde, es-noquoting }
- \projlib_language_set_option:n { spanish } }
- , Spanish .meta:n = { spanish }
- , CN .meta:n = { schinese }
- , chinese .meta:n = { schinese }
- , schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
- , simplified-chinese .meta:n = { schinese }
- , simplified~chinese .meta:n = { schinese }
- , simplified chinese .meta:n = { schinese }
- , Chinese .meta:n = { schinese }
- , SChinese .meta:n = { schinese }
- , Simplified-Chinese .meta:n = { schinese }
- , Simplified~Chinese .meta:n = { schinese }
- , Simplified Chinese .meta:n = { schinese }
- , TC .meta:n = { tchinese }
- , tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
- , traditional-chinese .meta:n = { tchinese }
- , traditional~chinese .meta:n = { tchinese }
- , traditional chinese .meta:n = { tchinese }
- , TChinese .meta:n = { tchinese }
- , Traditional-Chinese .meta:n = { tchinese }
- , Traditional~Chinese .meta:n = { tchinese }
- , Traditional Chinese .meta:n = { tchinese }
- , JP .meta:n = { japanese }
- , japanese .code:n = { \projlib_language_set_option:n { japanese } }
- , Japanese .meta:n = { japanese }
- , RU .meta:n = { russian }
- , russian .code:n = { \projlib_language_set_option:n { russian } }
- , Russian .meta:n = { russian }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-language }
-
-\cs_new_protected:Nn \projlib_language_clear_global_option:n
- {
- \clist_remove_all:cn { @classoptionslist } { #1 }
- }
-
-\projlib_language_clear_global_option:n { chinese }
-\projlib_language_clear_global_option:n { Chinese }
-
-\clist_gput_right:Nn \g__projlib_language_babel_option_clist { shorthands = off }
-
-\str_if_empty:NT \g__projlib_language_main_str
- {
- \str_gset:Nn \g__projlib_language_main_str { english }
- }
-
-\bool_if:NT \g__projlib_language_enabled_all_bool
- {
- \clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
- }
- }
-
-
-\cs_new:Nn \projlib_language_str_to_languagename:n
- {
- \str_case_e:nnF { \str_foldcase:n { #1 } }
- {
- { all } { common }
- { common } { common }
- { cn } { schinese }
- { chinese } { schinese }
- { schinese } { schinese }
- { simplifiedchinese } { schinese }
- { simplified-chinese } { schinese }
- { tc } { tchinese }
- { tchinese } { tchinese }
- { traditionalchinese } { tchinese }
- { traditional-chinese} { tchinese }
- { jp } { japanese }
- { japanese } { japanese }
- { en } { english }
- { english } { english }
- { fr } { french }
- { french } { french }
- { de } { ngerman }
- { german } { ngerman }
- { ngerman } { ngerman }
- { it } { italian }
- { italian } { italian }
- { pt } { portuguese }
- { portuguese } { portuguese }
- { br } { brazilian }
- { brazilian } { brazilian }
- { es } { spanish }
- { spanish } { spanish }
- { ru } { russian }
- { russian } { russian }
- }
- { #1 }
- }
-
-\cs_new:Nn \projlib_language_str_to_languagetype:n
- {
- \str_case_e:nn { \str_foldcase:n { #1 } }
- {
- { cn } { cjk }
- { chinese } { cjk }
- { schinese } { cjk }
- { simplifiedchinese } { cjk }
- { simplified-chinese } { cjk }
- { tc } { cjk }
- { tchinese } { cjk }
- { traditionalchinese } { cjk }
- { traditional-chinese} { cjk }
- { jp } { cjk }
- { japanese } { cjk }
- { en } { latin }
- { english } { latin }
- { fr } { latin }
- { french } { latin }
- { de } { latin }
- { german } { latin }
- { ngerman } { latin }
- { it } { latin }
- { italian } { latin }
- { pt } { latin }
- { portuguese } { latin }
- { br } { latin }
- { brazilian } { latin }
- { es } { latin }
- { spanish } { latin }
- { ru } { latin }
- { russian } { latin }
- }
- }
-
-\sys_if_engine_pdftex:T
- {
- \RequirePackage [T1] { fontenc }
- }
-
-\bool_if:NTF \g__projlib_language_enabled_all_bool
- {
- \sys_if_engine_pdftex:F
- {
- \PassOptionsToPackage { japanese, russian } { babel }
- }
- \PassOptionsToPackage { italian, portuguese, brazilian, spanish, es-notilde, es-noquoting, ngerman, french, english, shorthands = off } { babel }
- }
- {
- \PassOptionsToPackage { \g__projlib_language_babel_option_clist } { babel }
- }
-
-\PassOptionsToPackage { italian, brazilian, spanish, ngerman, french, english } { cleveref }
-\RequirePackage { babel }
-
-
-\bool_if:NT \g__projlib_language_enabled_french_bool
- {
- \frenchsetup { PartNameFull = false }
- }
-
-\bool_if:NT \g__projlib_language_enabled_portuguese_bool
- {
- \NewCommandCopy \__projlib_language_babel_ord: \ord
- \cs_undefine:N \ord
- \hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \cs_if_exist:NT \ord
- {
- \NewCommandCopy \__projlib_language_user_ord: \ord
- \cs_set_protected:Npn \ord
- {
- \mode_if_math:TF
- { \__projlib_language_user_ord: }
- { \__projlib_language_babel_ord: }
- }
- }
- }
- }
-
-\babelprovide { schinese }
-\babelprovide { tchinese }
-
-
-\NewCommandCopy \projlib_language_backup_today:n \today
-
-\tl_new:N \g_projlib_language_settings_common_tl
-\clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \tl_new:c { g_projlib_language_settings_ #1 _tl }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_common_tl
- {
- \cs_if_exist:NT \ProjLibToday
- {
- \RenewCommandCopy \today \ProjLibToday
- }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
- {
- \g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { schinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 证明 }
- \tl_gset:cn { contentsname } { 目录 }
- \tl_gset:cn { listfigurename } { 插图 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 图 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附录 }
- \tl_gset:cn { refname } { 参考文献 }
- \tl_gset:cn { bibname } { 参考文献 }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
- {
- \g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { tchinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 證明 }
- \tl_gset:cn { contentsname } { 目錄 }
- \tl_gset:cn { listfigurename } { 插圖 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 圖 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附錄 }
- \tl_gset:cn { refname } { 參考文獻 }
- \tl_gset:cn { bibname } { 參考文獻 }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
- {
- \selectlanguage { japanese }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_english_tl
- {
- \selectlanguage { english }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_french_tl
- {
- \selectlanguage { french }
- \g_projlib_language_settings_common_tl
- \tl_gset:cn { frenchpartname } { Partie }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
- {
- \selectlanguage { ngerman }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
- {
- \selectlanguage { italian }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
- {
- \selectlanguage { portuguese }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
- {
- \selectlanguage { brazilian }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
- {
- \selectlanguage { spanish }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
- {
- \selectlanguage { russian }
- \g_projlib_language_settings_common_tl
- }
-
-\NewDocumentCommand \AddLanguageSetting { O{} m }
- {
- \IfNoValueTF { #1 }
- {
- \tl_gput_right:Nn \g_projlib_language_settings_common_tl { #2 }
- }
- {
- \tl_gput_right:cn { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl } { #2 }
- }
- }
-
-
-\RequirePackage { setspace }
-
-\tl_new:N \g_projlib_language_linespacing_latin_tl
-\tl_new:N \g_projlib_language_linespacing_cjk_tl
-
-\tl_gset:Nn \g_projlib_language_linespacing_latin_tl
- {
- \setstretch { 1.00 }
- }
-\tl_gset:Nn \g_projlib_language_linespacing_cjk_tl
- {
- \onehalfspacing
- }
-
-\cs_new:Nn \projlib_language_set_linespacing_latin:n
- {
- \tl_gset:Nn \g_projlib_language_linespacing_latin_tl { #1 }
- }
-\cs_new:Nn \projlib_language_set_linespacing_cjk:n
- {
- \tl_gset:Nn \g_projlib_language_linespacing_cjk_tl { #1 }
- }
-
-\tl_new:N \g_projlib_language_parindent_latin_tl
-\tl_new:N \g_projlib_language_parindent_cjk_tl
-
-\@ifclassloaded{beamer}
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- }
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 1.5em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 2em }
- }
- }
-
-\hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \@ifpackageloaded{parskip}
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- } {}
- }
-
-\cs_new:Nn \projlib_language_set_parindent_latin:n
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl { #1 }
- }
-\cs_new:Nn \projlib_language_set_parindent_cjk:n
- {
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl { #1 }
- }
-
-\NewDocumentCommand \ProjLibLanguageSet { m m m }
- % #1 = the thing to set
- % #2 = language or type
- % #3 = the setting
- {
- \use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
- }
-
-
-\cs_new:Nn \projlib_language_use_language_pure:n
- {
- \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
- }
-\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
-
-\cs_new:Nn \projlib_language_use_language:n
- {
- \projlib_language_use_language_pure:n { #1 }
- \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
- \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
- }
-\cs_generate_variant:Nn \projlib_language_use_language:n { e }
-
-\NewDocumentCommand \UseLanguage { m }
- {
- \hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \projlib_language_use_language:e { #1 }
- }
- }
-\NewDocumentCommand \UseOtherLanguage { m m }
- {
- \group_begin:
- \projlib_language_use_language_pure:e { #1 }
- #2
- \group_end:
- }
-
-\UseLanguage { \g__projlib_language_main_str }
-
-
-\cs_new:Nn \projlib_langauge_define_multilingual_text:Nn
- { % #1 = command name (with backslash)
- % #2 = key-value name configuration
- \keyval_parse:nnn
- {}
- { \__projlib_langauge_define_multilingual_text_do:nnn { \cs_to_str:N #1 } }
- { #2 }
- \tl_gset:Nn #1
- {
- \tl_use:c { \cs_to_str:N #1 _projlib_language_text_ \languagename }
- }
- }
-\cs_generate_variant:Nn \projlib_langauge_define_multilingual_text:Nn { cn }
-
-\cs_new:Nn \__projlib_langauge_define_multilingual_text_do:nnn
- { % #1 = command name
- % #2 = language name
- % #3 = the text
- \exp_args:Ne \tl_gset:cn { #1 _projlib_language_text_ \projlib_language_str_to_languagename:n { #2 } } { #3 }
- }
-
-\NewDocumentCommand \DefineMultilingualText { m m }
- % #1 = command name
- % #2 = key-value name configuration
- {
- \projlib_langauge_define_multilingual_text:Nn #1 { #2 }
- }
-
-\endinput
-%%
-%% End of file `projlib-language.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-logo.sty b/macros/latex/contrib/projlib/projlib-logo.sty
deleted file mode 100644
index d9ffb5c1ed..0000000000
--- a/macros/latex/contrib/projlib/projlib-logo.sty
+++ /dev/null
@@ -1,100 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-logo}
- {2022/02/24} {}
- {The ProjLib logo}
-
-\keys_define:nn { projlib-logo }
- {
- , draft .bool_set:N = \l__projlib_logo_fast_bool
- , draft .initial:n = { false }
- , fast .bool_set:N = \l__projlib_logo_fast_bool
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-logo }
-
-\bool_if:NT \l__projlib_logo_fast_bool
- {
- \DeclareRobustCommand * \ProjLib
- {
- \group_begin:
- \normalfont ProjLib
- \group_end:
- }
- \endinput
- }
-
-\cs_if_exist:cTF { fontspec }
- {
- \newfontface \__projlib_logo_font: { LinBiolinum_R.otf }
- }
- {
- \RequirePackage [T1] { fontenc }
- \cs_gset:Nn \__projlib_logo_font:
- { \fontfamily { LinuxBiolinumT-TLF } \selectfont }
- }
-
-\tl_new:N \g__projlib_logo_sigma_j_tl
-\tl_gset:Nn \g__projlib_logo_sigma_j_tl
- {
- \vbox:n
- {
- \offinterlineskip
- \hbox_overlap_center:n
- {
- \skip_horizontal:n { 0.75ex }
- \hbox_set:Nn \l_tmpa_box { \usefont{U}{zeur}{b}{n} \symbol{"06} }
- \box_rotate:Nn \l_tmpa_box { -10 }
- \box_scale:Nnn \l_tmpa_box {.4} {.4}
- \box_use:N \l_tmpa_box
- }
- \skip_vertical:n { 0.15ex }
- \hbox:n { \j }
- }
- }
-
-% \RequirePackage { xcolor }
-% \cs_new_protected:Nn \projlib_logo_generic:n
-% {
-% \group_begin:
-% \normalfont
-% \__projlib_logo_font:
-% \textcolor { blue!55!cyan } { P }
-% \textcolor { blue!45!cyan } { r }
-% \textcolor { blue!30!cyan } { o }
-% \textcolor { green!70!black!70 } { #1 }
-% \textcolor { red!20!yellow } { L }
-% \textcolor { red!40!yellow } { i }
-% \textcolor { red!55!yellow } { b }
-% \group_end:
-% }
-\cs_new_protected:Nn \projlib_logo_generic:n
- {
- \group_begin:
- \normalfont
- \__projlib_logo_font:
- \color_group_begin:
- \color_select:n { blue!60!cyan } { P }
- \color_select:n { blue!45!cyan } { r }
- \color_select:n { blue!30!cyan } { o }
- \color_select:n { green!70!black!70 } { #1 }
- \color_select:n { red!20!yellow } { L }
- \color_select:n { red!40!yellow } { i }
- \color_select:n { red!60!yellow } { b }
- \color_group_end:
- \group_end:
- }
-
-\DeclareRobustCommand * \ProjLib
- {
- \projlib_logo_generic:n { \g__projlib_logo_sigma_j_tl }
- }
-\DeclareRobustCommand * \ProjLibText
- {
- \projlib_logo_generic:n { j }
- }
-
-\endinput
-%%
-%% End of file `projlib-logo.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-math.sty b/macros/latex/contrib/projlib/projlib-math.sty
deleted file mode 100644
index 977a428003..0000000000
--- a/macros/latex/contrib/projlib/projlib-math.sty
+++ /dev/null
@@ -1,234 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-math}
- {2022/02/26} {}
- {Efficient math setup}
-
-\keys_define:nn { projlib-math }
- {
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-math }
-
-\RequirePackage { mathtools }
-\RequirePackage { mathrsfs }
-\PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
-\@ifpackageloaded { unicode-math } {} { \RequirePackage { amssymb } }
-
-
-\msg_new:nnn { projlib-math }
- { operator-not-define }
- { The~math~operator~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
-
-\keys_define:nn { projlib-math-operator }
- {
- , style .tl_set:N = \l__projlib_math_operator_style_tl
- , unknown .code:n = {}
- }
-
-\cs_new_protected:Nn \projlib_math_define_operator:nnn
- % #1 = bool for star or empty
- % #2 = list of operators
- % #3 = the option
- {
- \tl_clear:N \l__projlib_math_operator_style_tl
- \keys_set:nn { projlib-math-operator } { #3 }
- \clist_map_inline:nn { #2 }
- {
- \str_if_in:nnTF { ##1 } { = }
- {
- \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
- \__projlib_math_define_operator:nee { #1 } { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
- }
- {
- \__projlib_math_define_operator:nee { #1 } { ##1 } { ##1 }
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_math_define_operator:nnn
- % #1 = bool for star or empty
- % #2 = the operator
- % #3 = the content
- {
- \cs_if_exist:cTF { #2 }
- {
- \msg_warning:nnn { projlib-math } { operator-not-define } { #2 }
- }
- {
- \bool_if:NTF #1
- {
- \exp_args:Nnf \use:n
- { \exp_args:Nnc \use:n { \DeclareMathOperator* } { #2 } }
- }
- {
- \exp_args:Nnf \use:n
- { \exp_args:Nc \DeclareMathOperator { #2 } }
- }
- % This is the f-argument of \exp_args:Nnf :
- {
- \exp_args:NnV \use:nn
- { \exp_stop_f: }
- { \l__projlib_math_operator_style_tl } { #3 }
- }
- }
- }
-\cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
-
-\NewDocumentCommand \DefineOperator { s O{} m O{} }
- {
- \tl_if_blank:nTF { #2 }
- {
- \projlib_math_define_operator:nnn { #1 } { #3 } { #4 }
- }
- {
- \projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
- }
- }
-
-
-\msg_new:nnn { projlib-math }
- { shortcut-not-define }
- { The~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
-
-\msg_new:nnn { projlib-math }
- { shortcut-type-not-define }
- { The~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
-
-\keys_define:nn { projlib-math-shortcut }
- {
- , prefix .clist_set:N = \l__projlib_math_shortcut_prefix_clist
- , type .tl_set:N = \l__projlib_math_shortcut_type_tl
- , style .tl_set:N = \l__projlib_math_shortcut_style_tl
- , unknown .code:n = {}
- }
-
-\cs_new_protected:Nn \projlib_math_define_shortcut:nnn
- % #1 = bool for star or empty
- % (currently the starred version is the same as normal version)
- % #2 = list of shortcuts
- % #3 = the option
- {
- \clist_clear:N \l__projlib_math_shortcut_prefix_clist
- \tl_clear:N \l__projlib_math_shortcut_type_tl
- \tl_clear:N \l__projlib_math_shortcut_style_tl
- \keys_set:nn { projlib-math-shortcut } { #3 }
- \tl_if_empty:NF \l__projlib_math_shortcut_type_tl
- {
- \cs_if_exist:cTF { \l__projlib_math_shortcut_type_tl }
- {
- \exp_args:Nne \use:n
- { \msg_warning:nnn { projlib-math } { shortcut-type-not-define } }
- { \l__projlib_math_shortcut_type_tl }
- }
- {
- \exp_args:Nno \use:n
- {
- \exp_args:Nc \NewDocumentCommand { \l__projlib_math_shortcut_type_tl } { m }
- }
- {
- \l__projlib_math_shortcut_style_tl { ##1 }
- }
- }
- }
- \clist_map_inline:nn { #2 }
- {
- \str_if_in:nnTF { ##1 } { = }
- {
- \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
- \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
- }
- {
- \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { ####1 \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
- }
- }
- }
- {
- \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { ##1 } { ##1 }
- }
- {
- \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { ####1 ##1 } { ##1 }
- }
- }
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_math_define_shortcut:nn
- % #1 = command name
- % #2 = the content
- {
- \cs_if_exist:cTF { #1 }
- {
- \msg_warning:nnn { projlib-math } { shortcut-type-not-define } { #1 }
- }
- {
- \exp_args:Nno \use:n
- { \exp_args:Nc \NewDocumentCommand { #1 } {} }
- { \l__projlib_math_shortcut_style_tl { #2 } }
- }
- }
-\cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
-
-\NewDocumentCommand \DefineShortcut { s O{} m O{} }
- {
- \tl_if_blank:nTF { #2 }
- {
- \projlib_math_define_shortcut:nnn { #1 } { #3 } { #4 }
- }
- {
- \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
- }
- }
-
-%===============================
-% -- Some possible operators --
-%===============================
-% \DefineOperator { ord, card, car, disc } [ style = \mathsf ]
-% \DefineOperator { id, Id, Ker, Image = Im } [ style = \mathsf ]
-% \DefineOperator { Orb, Stab, Fix } [ style = \mathsf ]
-% \DefineOperator { Hom, Aut, End, Mat } [ style = \mathsf ]
-% \DefineOperator { Spec, Spm, Ann } [ style = \mathsf ]
-% \DefineOperator*{ Lim, Max, Min } [ style = \mathsf ]
-
-%===============================
-% -- Some possible shortcuts --
-%===============================
-% \DefineShortcut [ type = category, style = \mathbf ]
-% {
-% Set, Grp, Ring, Top
-% }
-% \DefineShortcut [ style = \mathbb ]
-% {
-% N, Z, Q, R, C, F, A
-% }
-% \DefineShortcut [ prefix = bb, style = \mathbb ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
-% }
-% \DefineShortcut [ prefix = { mf, frak }, style = \mathfrak ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
-% a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
-% }
-% \DefineShortcut [ prefix = { mc, cal }, style = \mathcal ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
-% }
-% \DefineShortcut [ prefix = { ms, scr }, style = \mathscr ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
-% }
-
-\endinput
-%%
-%% End of file `projlib-math.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-paper.sty b/macros/latex/contrib/projlib/projlib-paper.sty
deleted file mode 100644
index bb13bbe00a..0000000000
--- a/macros/latex/contrib/projlib/projlib-paper.sty
+++ /dev/null
@@ -1,119 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-paper}
- {2022/03/09} {}
- {Configuration of the paper style}
-
-\keys_define:nn { projlib-paper }
- {
- , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
- , preview-mode .initial:n = { false }
- , paper-style .tl_set:N = \l__projlib_paper_paperstyle_tl
- , paper-style .initial:n = { normal }
- , paper-style .value_required:n = true
- , paper~style .tl_set:N = \l__projlib_paper_paperstyle_tl
- , paper style .tl_set:N = \l__projlib_paper_paperstyle_tl
- , yellow-paper .meta:n = { paperstyle = yellow }
- , yellow~paper .meta:n = { paperstyle = yellow }
- , yellow paper .meta:n = { paperstyle = yellow }
- , parchment-paper .meta:n = { paperstyle = parchment }
- , parchment~paper .meta:n = { paperstyle = parchment }
- , parchment paper .meta:n = { paperstyle = parchment }
- , green-paper .meta:n = { paperstyle = green }
- , green~paper .meta:n = { paperstyle = green }
- , green paper .meta:n = { paperstyle = green }
- , light-gray-paper .meta:n = { paperstyle = lightgray }
- , light~gray~paper .meta:n = { paperstyle = lightgray }
- , light gray-paper .meta:n = { paperstyle = lightgray }
- , light gray~paper .meta:n = { paperstyle = lightgray }
- , light gray paper .meta:n = { paperstyle = lightgray }
- , gray-paper .meta:n = { paperstyle = gray }
- , gray~paper .meta:n = { paperstyle = gray }
- , gray paper .meta:n = { paperstyle = gray }
- , nord-paper .meta:n = { paperstyle = nord }
- , nord~paper .meta:n = { paperstyle = nord }
- , nord paper .meta:n = { paperstyle = nord }
- , dark-paper .meta:n = { paperstyle = dark }
- , dark~paper .meta:n = { paperstyle = dark }
- , dark paper .meta:n = { paperstyle = dark }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-paper }
-
-\cs_new:Nn \projlib_paper_preview_disable:
- {
- \bool_set_false:c { l__projlib_paper_preview_bool }
- }
-
-\hook_gput_code:nnn { begindocument/before } { projlib-paper }
- {
- \bool_if:NT \l__projlib_paper_preview_bool
- {
- \dim_set:Nn \paperwidth
- {
- \dim_eval:n { \textwidth * 21 / 20 }
- }
- \dim_set:Nn \paperheight
- {
- \dim_eval:n { ( \textheight + \headheight + \headsep + \footskip ) * 21 / 20 }
- }
- \dim_set:Nn \oddsidemargin
- {
- \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
- }
- \dim_set:Nn \evensidemargin
- {
- \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
- }
- \dim_set:Nn \topmargin
- {
- \dim_eval:n { ( \paperheight - \textheight - \headheight - \headsep - \footskip ) / 2 - 1in }
- }
- }
- }
-
-\RequirePackage { xcolor }
-
-\definecolor { paper } { RGB } { 255, 255, 255 }
-\definecolor { main-text } { RGB } { 0, 0, 0 }
-
-\str_case_e:nn { \l__projlib_paper_paperstyle_tl }
- {
- { yellow } { \definecolor { paper } { RGB } { 247, 246, 233 } }
- { parchment } { \definecolor { paper } { RGB } { 224, 204, 160 } }
- { green } { \definecolor { paper } { RGB } { 207, 231, 207 } }
- { lightgray } { \definecolor { paper } { RGB } { 236, 239, 244 }
- \definecolor { main-text } { RGB } { 37, 41, 46 } }
- { light-gray } { \definecolor { paper } { RGB } { 236, 239, 244 }
- \definecolor { main-text } { RGB } { 37, 41, 46 } }
- { gray } { \definecolor { paper } { RGB } { 127, 130, 136 }
- \definecolor { main-text } { RGB } { 236, 239, 244 } }
- { nord } { \definecolor { paper } { RGB } { 46, 52, 64 }
- \definecolor { main-text } { RGB } { 214, 220, 230 } }
- { dark } { \definecolor { paper } { RGB } { 28, 29, 33 }
- \definecolor { main-text } { RGB } { 210, 213, 217 } }
- }
-
-\cs_new:Nn \projlib_paper_set_page_color:n
- {
- \pagecolor { #1 }
- }
-\cs_new:Nn \projlib_paper_set_text_color:n
- {
- \color { #1 }
- \cs_gset_eq:cc { default@color } { current@color }
- }
-
-\projlib_paper_set_page_color:n { paper }
-\projlib_paper_set_text_color:n { main-text }
-
-\hook_gput_code:nnn { begindocument/before } { projlib-paper }
- {
- \cs_if_exist:NT \tcbset
- { \tcbset { colupper = main-text, collower = main-text } }
- }
-
-\endinput
-%%
-%% End of file `projlib-paper.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-theorem.sty b/macros/latex/contrib/projlib/projlib-theorem.sty
deleted file mode 100644
index 092ca2f0ea..0000000000
--- a/macros/latex/contrib/projlib/projlib-theorem.sty
+++ /dev/null
@@ -1,1184 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-theorem}
- {2022/03/09} {}
- {Configuration of theorem-like environments}
-
-\keys_define:nn { projlib-theorem }
- {
- , no-theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , no-theorems .initial:n = { false }
- , no~theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , no theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , nothms .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , no-theorem-numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , no-theorem-numbering .initial:n = { false }
- , no~theorem~numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , no theorem numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , nothmnum .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , theorem-numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , theorem-numbering .default:n = { * }
- , theorem~numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , theorem~numbering .default:n = { * }
- , theorem numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , theorem numbering .default:n = { * }
- , thmnum .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , thmnum .default:n = { * }
- , complex-name .bool_set:N = \l__projlib_theorem_complexname_bool
- , complex-name .initial:n = { true }
- , complex~name .bool_set:N = \l__projlib_theorem_complexname_bool
- , complex name .bool_set:N = \l__projlib_theorem_complexname_bool
- , simple-name .bool_set:N = \l__projlib_theorem_simplename_bool
- , simple-name .initial:n = { false }
- , simple~name .bool_set:N = \l__projlib_theorem_simplename_bool
- , simple name .bool_set:N = \l__projlib_theorem_simplename_bool
- , no-preset-names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
- , no-preset-names .initial:n = { false }
- , no~preset~names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
- , no preset names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
- , unknown .code:n = { \PassOptionsToPackage { \CurrentOption } { create-theorem } }
- }
-\ProcessKeysOptions { projlib-theorem }
-
-\clist_const:Nn \c__projlib_theorem_supported_clist
- {
- assertion ,
- assumption ,
- axiom ,
- conclusion ,
- conjecture ,
- convention ,
- corollary ,
- definition ,
- example ,
- exercise ,
- fact ,
- hypothesis ,
- lemma ,
- notation ,
- observation ,
- postulate ,
- problem ,
- property ,
- proposition ,
- question ,
- remark ,
- theorem ,
- }
-
-\@ifclassloaded { beamer }
- {
- \RequirePackage { silence }
- \WarningFilter { cleveref } { hyperref~package~loaded~with~implicit=false~option }
- \bool_set_true:N \l__projlib_theorem_no_theorem_numbering_bool
- \bool_if:NF \l__projlib_theorem_no_theorems_bool
- {
- \cs_undefine:c { theorem }
- \cs_undefine:c { lemma }
- \cs_undefine:c { corollary }
- \cs_undefine:c { definition }
- \cs_undefine:c { fact }
- \cs_undefine:c { example }
- \cs_undefine:c { problem }
- }
- } {}
-
-\RequirePackage { projlib-language }
-
-\bool_if:NF \l__projlib_theorem_complexname_bool
- {
- \PassOptionsToPackage { no preset names } { create-theorem }
- }
-
-\RequirePackage { amsthm }
-\RequirePackage { create-theorem }
-
-
-\bool_if:NF \l__projlib_theorem_no_theorems_bool
- {
- \bool_if:NTF \l__projlib_theorem_no_theorem_numbering_bool
- {
- \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { numberless }
- }
- {
- \tl_if_blank:eTF \l__projlib_theorem_theorem_numbering_tl
- {
- \cs_if_exist:cTF { c@chapter }
- { % with \chapter
- \CreateTheorem {theorem} { parent counter = chapter }
- }
- { % without \chapter
- \CreateTheorem {theorem} { parent counter = section }
- }
- }
- {
- \tl_if_eq:NnTF \l__projlib_theorem_theorem_numbering_tl { * }
- {
- \CreateTheorem {theorem} { }
- }
- {
- \CreateTheorem {theorem} { parent counter = \l__projlib_theorem_theorem_numbering_tl }
- }
- }
-
- \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { shared counter = theorem, quiet }
- }
- }
-
-
-\AddLanguageSetting [ schinese ]
- {
- \crefname { equation } { 式 } { 式 }
- \crefname { figure } { 图 } { 图 }
- \crefname { table } { 表 } { 表 }
- \crefname { appendix } { 附录 } { 附录 }
- \Crefname { equation } { 式 } { 式 }
- \Crefname { figure } { 图 } { 图 }
- \Crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 附录 } { 附录 }
- \tl_gset:Nn { \crefpairconjunction } { 、 }
- \tl_gset:Nn { \crefmiddleconjunction } { 、 }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace 和 \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 和 \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { ~ }
- }
-
-\AddLanguageSetting [ tchinese ]
- {
- \crefname { equation } { 式 } { 式 }
- \crefname { figure } { 圖 } { 圖 }
- \crefname { table } { 表 } { 表 }
- \crefname { appendix } { 附錄 } { 附錄 }
- \Crefname { equation } { 式 } { 式 }
- \Crefname { figure } { 圖 } { 圖 }
- \Crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 附錄 } { 附錄 }
- \tl_gset:Nn { \crefpairconjunction } { 、 }
- \tl_gset:Nn { \crefmiddleconjunction } { 、 }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace 與 \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 與 \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { ~ }
- }
-
-\AddLanguageSetting [ japanese ]
- {
- \crefname { equation } { 式 } { 式 }
- \crefname { figure } { 図 } { 図 }
- \crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 付録 } { 付録 }
- \Crefname { equation } { 式 } { 式 }
- \Crefname { figure } { 図 } { 図 }
- \Crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 付録 } { 付録 }
- \tl_gset:Nn { \crefpairconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \crefmiddleconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 及び \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { ~ }
- }
-
-\AddLanguageSetting [ russian ]
- {
- \crefname { equation } { уравнение } { уравнения }
- \crefname { figure } { рис. } { рис. }
- \crefname { table } { таблица } { таблицы }
- \crefname { appendix } { приложение } { приложения }
- \Crefname { equation } { Уравнение } { Уравнения }
- \Crefname { figure } { Рис. } { Рис. }
- \Crefname { table } { Таблица } { Таблицы }
- \Crefname { appendix } { Приложение } { Приложения }
- \tl_gset:Nn { \crefpairconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace \textasciitilde \nobreakspace }
- }
-
-\AddLanguageSetting [ portuguese ]
- {
- \crefname { equation } { eq. } { eqs. }
- \crefname { figure } { fig. } { figs. }
- \crefname { table } { tabela } { tabelas }
- \crefname { appendix } { apêndice } { apêndices }
- \Crefname { equation } { Eq. } { Eqs. }
- \Crefname { figure } { Fig. } { Figs. }
- \Crefname { table } { Tabela } { Tabelas }
- \Crefname { appendix } { Apêndice } { Apêndices }
- \tl_gset:Nn { \crefpairconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace a \nobreakspace }
- }
-
-
-\bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
-\bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
-
-
-\NameTheorem { assertion }
- {
- , heading = {
- , english = Assertion
- , french = Assertion
- , ngerman = Behauptung
- , italian = Asserzione
- , portuguese = Asserção
- , brazilian = Asserção
- , spanish = Aserción
- , schinese = 断言
- , tchinese = 斷言
- , japanese = アサーション
- , russian = Утверждение
- }
- , crefname = {
- , english = {Assertion}{Assertion}
- , french = [l']{Assertion}[les]{Assertion}
- , ngerman = {Behauptung}{Behauptung}
- , italian = [l']{Asserzione}[le]{Asserzione}
- , portuguese = [a]{Asserção}[as]{Asserção}
- , brazilian = [a]{Asserção}[as]{Asserção}
- , spanish = [la]{Aserción}[las]{Aserción}
- , schinese = {断言}{断言}
- , tchinese = {斷言}{斷言}
- , japanese = {アサーション}{アサーション}
- , russian = {Утверждение}{Утверждение}
- }
- , Crefname = {
- , english = {Assertion}{Assertion}
- , french = [L']{Assertion}[Les]{Assertion}
- , ngerman = {Behauptung}{Behauptung}
- , italian = [L']{Asserzione}[Le]{Asserzione}
- , portuguese = [A]{Asserção}[As]{Asserção}
- , brazilian = [A]{Asserção}[As]{Asserção}
- , spanish = [La]{Aserción}[Las]{Aserción}
- , schinese = {断言}{断言}
- , tchinese = {斷言}{斷言}
- , japanese = {アサーション}{アサーション}
- , russian = {Утверждение}{Утверждение}
- }
- }
-
-\NameTheorem { assumption }
- {
- , heading = {
- , english = Assumption
- , french = Supposition
- , ngerman = Annahme
- , italian = Supposizione
- , portuguese = Suposição
- , brazilian = Suposição
- , spanish = Suposición
- , schinese = 假定
- , tchinese = 假定
- , japanese = 仮定
- , russian = Предположение
- }
- , crefname = {
- , english = {Assumption}{Assumption}
- , french = [la]{Supposition}[les]{Supposition}
- , ngerman = {Annahme}{Annahme}
- , italian = [la]{Supposizione}[le]{Supposizione}
- , portuguese = [a]{Suposição}[as]{Suposição}
- , brazilian = [a]{Suposição}[as]{Suposição}
- , spanish = [la]{Suposición}[las]{Suposición}
- , schinese = {假定}{假定}
- , tchinese = {假定}{假定}
- , japanese = {仮定}{仮定}
- , russian = {Предположение}{Предположение}
- }
- , Crefname = {
- , english = {Assumption}{Assumption}
- , french = [La]{Supposition}[Les]{Supposition}
- , ngerman = {Annahme}{Annahme}
- , italian = [la]{Supposizione}[le]{Supposizione}
- , portuguese = [A]{Suposição}[As]{Suposição}
- , brazilian = [A]{Suposição}[As]{Suposição}
- , spanish = [La]{Suposición}[Las]{Suposición}
- , schinese = {假定}{假定}
- , tchinese = {假定}{假定}
- , japanese = {仮定}{仮定}
- , russian = {Предположение}{Предположение}
- }
- }
-
-\NameTheorem { axiom }
- {
- , heading = {
- , english = Axiom
- , french = Axiome
- , ngerman = Axiom
- , italian = Assioma
- , portuguese = Axioma
- , brazilian = Axioma
- , spanish = Axioma
- , schinese = 公理
- , tchinese = 公理
- , japanese = 公理
- , russian = Аксиома
- }
- , crefname = {
- , english = {Axiom}{Axiom}
- , french = [l']{Axiome}[les]{Axiome}
- , ngerman = {Axiom}{Axiom}
- , italian = [l']{Assioma}[gli]{Assioma}
- , portuguese = [o]{Axioma}[os]{Axioma}
- , brazilian = [o]{Axioma}[os]{Axioma}
- , spanish = [el]{Axioma}[los]{Axioma}
- , schinese = {公理}{公理}
- , tchinese = {公理}{公理}
- , japanese = {公理}{公理}
- , russian = {Аксиома}{Аксиома}
- }
- , Crefname = {
- , english = {Axiom}{Axiom}
- , french = [L']{Axiome}[Les]{Axiome}
- , ngerman = {Axiom}{Axiom}
- , italian = [L']{Assioma}[Gli]{Assioma}
- , portuguese = [O]{Axioma}[Os]{Axioma}
- , brazilian = [O]{Axioma}[Os]{Axioma}
- , spanish = [El]{Axioma}[Los]{Axioma}
- , schinese = {公理}{公理}
- , tchinese = {公理}{公理}
- , japanese = {公理}{公理}
- , russian = {Аксиома}{Аксиома}
- }
- }
-
-\NameTheorem { conclusion }
- {
- , heading = {
- , english = Conclusion
- , french = Conclusion
- , ngerman = Schlussfolgerung
- , italian = Conclusione
- , portuguese = Conclusão
- , brazilian = Conclusão
- , spanish = Conclusión
- , schinese = 结论
- , tchinese = 結論
- , japanese = 結論
- , russian = Вывод
- }
- , crefname = {
- , english = {Conclusion}{Conclusion}
- , french = [la]{Conclusion}[Les]{Conclusion}
- , ngerman = {Schlussfolgerung}{Schlussfolgerung}
- , italian = [la]{Conclusione}[le]{Conclusione}
- , portuguese = [a]{Conclusão}[as]{Conclusão}
- , brazilian = [a]{Conclusão}[as]{Conclusão}
- , spanish = [la]{Conclusión}[las]{Conclusión}
- , schinese = {结论}{结论}
- , tchinese = {結論}{結論}
- , japanese = {結論}{結論}
- , russian = {Вывод}{Вывод}
- }
- , Crefname = {
- , english = {Conclusion}{Conclusion}
- , french = [La]{Conclusion}[Les]{Conclusion}
- , ngerman = {Schlussfolgerung}{Schlussfolgerung}
- , italian = [La]{Conclusione}[Le]{Conclusione}
- , portuguese = [A]{Conclusão}[As]{Conclusão}
- , brazilian = [A]{Conclusão}[As]{Conclusão}
- , spanish = [La]{Conclusión}[Las]{Conclusión}
- , schinese = {结论}{结论}
- , tchinese = {結論}{結論}
- , japanese = {結論}{結論}
- , russian = {Вывод}{Вывод}
- }
- }
-
-\NameTheorem { conjecture }
- {
- , heading = {
- , english = Conjecture
- , french = Conjecture
- , ngerman = Vermutung
- , italian = Congettura
- , portuguese = Conjetura
- , brazilian = Conjectura
- , spanish = Conjetura
- , schinese = 猜想
- , tchinese = 猜想
- , japanese = 予想
- , russian = Гипотеза
- }
- , crefname = {
- , english = {Conjecture}{Conjecture}
- , french = [la]{Conjecture}[les]{Conjecture}
- , ngerman = {Vermutung}{Vermutung}
- , italian = [la]{Congettura}[le]{Congettura}
- , portuguese = [a]{Conjetura}[as]{Conjetura}
- , brazilian = [a]{Conjectura}[as]{Conjectura}
- , spanish = [la]{Conjetura}[las]{Conjetura}
- , schinese = {猜想}{猜想}
- , tchinese = {猜想}{猜想}
- , japanese = {予想}{予想}
- , russian = {Гипотеза}{Гипотеза}
- }
- , Crefname = {
- , english = {Conjecture}{Conjecture}
- , french = [La]{Conjecture}[Les]{Conjecture}
- , ngerman = {Vermutung}{Vermutung}
- , italian = [La]{Congettura}[Le]{Congettura}
- , portuguese = [A]{Conjetura}[As]{Conjetura}
- , brazilian = [A]{Conjectura}[As]{Conjectura}
- , spanish = [La]{Conjetura}[Las]{Conjetura}
- , schinese = {猜想}{猜想}
- , tchinese = {猜想}{猜想}
- , japanese = {予想}{予想}
- , russian = {Гипотеза}{Гипотеза}
- }
- }
-
-\NameTheorem { convention }
- {
- , heading = {
- , english = Convention
- , french = Convention
- , ngerman = Konvention
- , italian = Convenzione
- , portuguese = Convenção
- , brazilian = Convenção
- , spanish = Convención
- , schinese = 约定
- , tchinese = 約定
- , japanese = 慣例
- , russian = Конвенция
- }
- , crefname = {
- , english = {Convention}{Convention}
- , french = [la]{Convention}[les]{Convention}
- , ngerman = {Konvention}{Konvention}
- , italian = [la]{Convenzione}[le]{Convenzione}
- , portuguese = [a]{Convenção}[as]{Convenção}
- , brazilian = [a]{Convenção}[as]{Convenção}
- , spanish = [la]{Convención}[las]{Convención}
- , schinese = {约定}{约定}
- , tchinese = {約定}{約定}
- , japanese = {慣例}{慣例}
- , russian = {Конвенция}{Конвенция}
- }
- , Crefname = {
- , english = {Convention}{Convention}
- , french = [La]{Convention}[Les]{Convention}
- , ngerman = {Konvention}{Konvention}
- , italian = [La]{Convenzione}[Le]{Convenzione}
- , portuguese = [A]{Convenção}[As]{Convenção}
- , brazilian = [A]{Convenção}[As]{Convenção}
- , spanish = [La]{Convención}[Las]{Convención}
- , schinese = {约定}{约定}
- , tchinese = {約定}{約定}
- , japanese = {慣例}{慣例}
- , russian = {Конвенция}{Конвенция}
- }
- }
-
-\NameTheorem { corollary }
- {
- , heading = {
- , english = Corollary
- , french = Corollaire
- , ngerman = Korollar
- , italian = Corollario
- , portuguese = Corolário
- , brazilian = Corolário
- , spanish = Corolario
- , schinese = 推论
- , tchinese = 推論
- , japanese = 系
- , russian = Следствие
- }
- , crefname = {
- , english = {Corollary}{Corollary}
- , french = [le]{Corollaire}[les]{Corollaire}
- , ngerman = {Korollar}{Korollar}
- , italian = [il]{Corollario}[i]{Corollario}
- , portuguese = [o]{Corolário}[os]{Corolário}
- , brazilian = [o]{Corolário}[os]{Corolário}
- , spanish = [el]{Corolario}[los]{Corolario}
- , schinese = {推论}{推论}
- , tchinese = {推論}{推論}
- , japanese = {系}{系}
- , russian = {Следствие}{Следствие}
- }
- , Crefname = {
- , english = {Corollary}{Corollary}
- , french = [Le]{Corollaire}[Les]{Corollaire}
- , ngerman = {Korollar}{Korollar}
- , italian = [Il]{Corollario}[I]{Corollario}
- , portuguese = [O]{Corolário}[Os]{Corolário}
- , brazilian = [O]{Corolário}[Os]{Corolário}
- , spanish = [El]{Corolario}[Los]{Corolario}
- , schinese = {推论}{推论}
- , tchinese = {推論}{推論}
- , japanese = {系}{系}
- , russian = {Следствие}{Следствие}
- }
- }
-
-\NameTheorem { definition }
- {
- , heading = {
- , english = Definition
- , french = Définition
- , ngerman = Definition
- , italian = Definizione
- , portuguese = Definição
- , brazilian = Definição
- , spanish = Definición
- , schinese = 定义
- , tchinese = 定義
- , japanese = 定義
- , russian = Определение
- }
- , crefname = {
- , english = {Definition}{Definition}
- , french = [la]{Définition}[les]{Définition}
- , ngerman = {Definition}{Definition}
- , italian = [la]{Definizione}[le]{Definizione}
- , portuguese = [a]{Definição}[as]{Definição}
- , brazilian = [a]{Definição}[as]{Definição}
- , spanish = [la]{Definición}[las]{Definición}
- , schinese = {定义}{定义}
- , tchinese = {定義}{定義}
- , japanese = {定義}{定義}
- , russian = {Определение}{Определение}
- }
- , Crefname = {
- , english = {Definition}{Definition}
- , french = [La]{Définition}[Les]{Définition}
- , ngerman = {Definition}{Definition}
- , italian = [La]{Definizione}[Le]{Definizione}
- , portuguese = [A]{Definição}[As]{Definição}
- , brazilian = [A]{Definição}[As]{Definição}
- , spanish = [La]{Definición}[Las]{Definición}
- , schinese = {定义}{定义}
- , tchinese = {定義}{定義}
- , japanese = {定義}{定義}
- , russian = {Определение}{Определение}
- }
- }
-
-\NameTheorem { example }
- {
- , heading = {
- , english = Example
- , french = Exemple
- , ngerman = Beispiel
- , italian = Esempio
- , portuguese = Exemplo
- , brazilian = Exemplo
- , spanish = Ejemplo
- , schinese = 例
- , tchinese = 例
- , japanese = 例
- , russian = Пример
- }
- , crefname = {
- , english = {Example}{Example}
- , french = [l']{Example}[les]{Example}
- , ngerman = {Beispiel}{Beispiel}
- , italian = [l']{Esempio}[gli]{Esempio}
- , portuguese = [o]{Exemplo}[os]{Exemplo}
- , brazilian = [o]{Exemplo}[os]{Exemplo}
- , spanish = [el]{Ejemplo}[los]{Ejemplo}
- , schinese = {例}{例}
- , tchinese = {例}{例}
- , japanese = {例}{例}
- , russian = {Пример}{Пример}
- }
- , Crefname = {
- , english = {Example}{Example}
- , french = [L']{Example}[Les]{Example}
- , ngerman = {Beispiel}{Beispiel}
- , italian = [L']{Esempio}[Gli]{Esempio}
- , portuguese = [O]{Exemplo}[Os]{Exemplo}
- , brazilian = [O]{Exemplo}[Os]{Exemplo}
- , spanish = [El]{Ejemplo}[Los]{Ejemplo}
- , schinese = {例}{例}
- , tchinese = {例}{例}
- , japanese = {例}{例}
- , russian = {Пример}{Пример}
- }
- }
-
-\NameTheorem { exercise }
- {
- , heading = {
- , english = Exercise
- , french = Exercice
- , ngerman = Übung
- , italian = Esercizio
- , portuguese = Exercício
- , brazilian = Exercício
- , spanish = Ejercicio
- , schinese = 练习
- , tchinese = 練習
- , japanese = 練習
- , russian = Упражнение
- }
- , crefname = {
- , english = {Exercise}{Exercise}
- , french = [l']{Exercice}[les]{Exercice}
- , ngerman = {Übung}{Übung}
- , italian = [l']{Esercizio}[gli]{Esercizio}
- , portuguese = [o]{Exercício}[os]{Exercício}
- , brazilian = [o]{Exercício}[os]{Exercício}
- , spanish = [el]{Ejercicio}[los]{Ejercicio}
- , schinese = {练习}{练习}
- , tchinese = {練習}{練習}
- , japanese = {練習}{練習}
- , russian = {Упражнение}{Упражнение}
- }
- , Crefname = {
- , english = {Exercise}{Exercise}
- , french = [L']{Exercice}[Les]{Exercice}
- , ngerman = {Übung}{Übung}
- , italian = [L']{Esercizio}[Gli]{Esercizio}
- , portuguese = [O]{Exercício}[Os]{Exercício}
- , brazilian = [O]{Exercício}[Os]{Exercício}
- , spanish = [El]{Ejercicio}[Los]{Ejercicio}
- , schinese = {练习}{练习}
- , tchinese = {練習}{練習}
- , japanese = {練習}{練習}
- , russian = {Упражнение}{Упражнение}
- }
- }
-
-\NameTheorem { fact }
- {
- , heading = {
- , english = Fact
- , french = Fait
- , ngerman = Fakt
- , italian = Fatto
- , portuguese = Facto
- , brazilian = Fato
- , spanish = Hecho
- , schinese = 事实
- , tchinese = 事實
- , japanese = 事実
- , russian = Факт
- }
- , crefname = {
- , english = {Fact}{Fact}
- , french = [le]{Fait}[les]{Fait}
- , ngerman = {Fakt}{Fakt}
- , italian = [il]{Fatto}[i]{Fatto}
- , portuguese = [o]{Facto}[os]{Facto}
- , brazilian = [o]{Fato}[os]{Fato}
- , spanish = [el]{Hecho}[los]{Hecho}
- , schinese = {事实}{事实}
- , tchinese = {事實}{事實}
- , japanese = {事実}{事実}
- , russian = {Факт}{Факт}
- }
- , Crefname = {
- , english = {Fact}{Fact}
- , french = [Le]{Fait}[Les]{Fait}
- , ngerman = {Fakt}{Fakt}
- , italian = [Il]{Fatto}[I]{Fatto}
- , portuguese = [O]{Facto}[Os]{Facto}
- , brazilian = [O]{Fato}[Os]{Fato}
- , spanish = [El]{Hecho}[Los]{Hecho}
- , schinese = {事实}{事实}
- , tchinese = {事實}{事實}
- , japanese = {事実}{事実}
- , russian = {Факт}{Факт}
- }
- }
-
-\NameTheorem { hypothesis }
- {
- , heading = {
- , english = Hypothesis
- , french = Hypothèse
- , ngerman = Hypothese
- , italian = Ipotesi
- , portuguese = Hipótese
- , brazilian = Hipótese
- , spanish = Hipótesis
- , schinese = 假设
- , tchinese = 假設
- , japanese = 仮設
- , russian = Гипотеза
- }
- , crefname = {
- , english = {Hypothesis}{Hypothesis}
- , french = [l']{Hypothèse}[les]{Hypothèse}
- , ngerman = {Hypothese}{Hypothese}
- , italian = [l']{Ipotesi}[le]{Ipotesi}
- , portuguese = [a]{Hipótese}[as]{Hipótese}
- , brazilian = [a]{Hipótese}[as]{Hipótese}
- , spanish = [la]{Hipótesis}[las]{Hipótesis}
- , schinese = {假设}{假设}
- , tchinese = {假設}{假設}
- , japanese = {仮設}{仮設}
- , russian = {Гипотеза}{Гипотеза}
- }
- , Crefname = {
- , english = {Hypothesis}{Hypothesis}
- , french = [L']{Hypothèse}[Les]{Hypothèse}
- , ngerman = {Hypothese}{Hypothese}
- , italian = [L']{Ipotesi}[Le]{Ipotesi}
- , portuguese = [A]{Hipótese}[As]{Hipótese}
- , brazilian = [A]{Hipótese}[As]{Hipótese}
- , spanish = [La]{Hipótesis}[Las]{Hipótesis}
- , schinese = {假设}{假设}
- , tchinese = {假設}{假設}
- , japanese = {仮設}{仮設}
- , russian = {Гипотеза}{Гипотеза}
- }
- }
-
-\NameTheorem { lemma }
- {
- , heading = {
- , english = Lemma
- , french = Lemme
- , ngerman = Lemma
- , italian = Lemma
- , portuguese = Lema
- , brazilian = Lema
- , spanish = Lema
- , schinese = 引理
- , tchinese = 引理
- , japanese = 補題
- , russian = Лемма
- }
- , crefname = {
- , english = {Lemma}{Lemma}
- , french = [le]{Lemme}[les]{Lemme}
- , ngerman = {Lemma}{Lemma}
- , italian = [il]{Lemma}[i]{Lemma}
- , portuguese = [o]{Lema}[os]{Lema}
- , brazilian = [o]{Lema}[os]{Lema}
- , spanish = [el]{Lema}[las]{Lema}
- , schinese = {引理}{引理}
- , tchinese = {引理}{引理}
- , japanese = {補題}{補題}
- , russian = {Лемма}{Лемма}
- }
- , Crefname = {
- , english = {Lemma}{Lemma}
- , french = [Le]{Lemme}[Les]{Lemme}
- , ngerman = {Lemma}{Lemma}
- , italian = [Il]{Lemma}[I]{Lemma}
- , portuguese = [O]{Lema}[Os]{Lema}
- , brazilian = [O]{Lema}[Os]{Lema}
- , spanish = [el]{Lema}[las]{Lema}
- , schinese = {引理}{引理}
- , tchinese = {引理}{引理}
- , japanese = {補題}{補題}
- , russian = {Лемма}{Лемма}
- }
- }
-
-\NameTheorem { notation }
- {
- , heading = {
- , english = Notation
- , french = Notation
- , ngerman = Notation
- , italian = Notazione
- , portuguese = Notação
- , brazilian = Notação
- , spanish = Notación
- , schinese = 记号
- , tchinese = 記號
- , japanese = 記法
- , russian = Нотация
- }
- , crefname = {
- , english = {Notation}{Notation}
- , french = [la]{Notation}[les]{Notation}
- , ngerman = {Notation}{Notation}
- , italian = [la]{Notazione}[le]{Notazione}
- , portuguese = [a]{Notação}[as]{Notação}
- , brazilian = [a]{Notação}[as]{Notação}
- , spanish = [la]{Notación}[las]{Notación}
- , schinese = {记号}{记号}
- , tchinese = {記號}{記號}
- , japanese = {記法}{記法}
- , russian = {Нотация}{Нотация}
- }
- , Crefname = {
- , english = {Notation}{Notation}
- , french = [La]{Notation}[Les]{Notation}
- , ngerman = {Notation}{Notation}
- , italian = [La]{Notazione}[Le]{Notazione}
- , portuguese = [A]{Notação}[As]{Notação}
- , brazilian = [A]{Notação}[As]{Notação}
- , spanish = [La]{Notación}[Las]{Notación}
- , schinese = {记号}{记号}
- , tchinese = {記號}{記號}
- , japanese = {記法}{記法}
- , russian = {Нотация}{Нотация}
- }
- }
-
-\NameTheorem { observation }
- {
- , heading = {
- , english = Observation
- , french = Observation
- , ngerman = Beobachtung
- , italian = Osservazione
- , portuguese = Observação
- , brazilian = Observação
- , spanish = Observación
- , schinese = 观察
- , tchinese = 觀察
- , japanese = 観察
- , russian = Наблюдение
- }
- , crefname = {
- , english = {Observation}{Observation}
- , french = [la]{Observation}[les]{Observation}
- , ngerman = {Beobachtung}{Beobachtung}
- , italian = [l']{Osservazione}[le]{Osservazione}
- , portuguese = [a]{Observação}[as]{Observação}
- , brazilian = [a]{Observação}[as]{Observação}
- , spanish = [la]{Observación}[las]{Observación}
- , schinese = {观察}{观察}
- , tchinese = {觀察}{觀察}
- , japanese = {観察}{観察}
- , russian = {Наблюдение}{Наблюдение}
- }
- , Crefname = {
- , english = {Observation}{Observation}
- , french = [La]{Observation}[Les]{Observation}
- , ngerman = {Beobachtung}{Beobachtung}
- , italian = [L']{Osservazione}[Le]{Osservazione}
- , portuguese = [A]{Observação}[As]{Observação}
- , brazilian = [A]{Observação}[As]{Observação}
- , spanish = [La]{Observación}[Las]{Observación}
- , schinese = {观察}{观察}
- , tchinese = {觀察}{觀察}
- , japanese = {観察}{観察}
- , russian = {Наблюдение}{Наблюдение}
- }
- }
-
-\NameTheorem { postulate }
- {
- , heading = {
- , english = Postulate
- , french = Postulat
- , ngerman = Postulat
- , italian = Postulato
- , portuguese = Postulado
- , brazilian = Postulado
- , spanish = Postulado
- , schinese = 公设
- , tchinese = 公設
- , japanese = 公準
- , russian = Постулат
- }
- , crefname = {
- , english = {Postulate}{Postulate}
- , french = [le]{Postulat}[les]{Postulat}
- , ngerman = {Postulat}{Postulat}
- , italian = [il]{Postulato}[i]{Postulato}
- , portuguese = [o]{Postulado}[os]{Postulado}
- , brazilian = [o]{Postulado}[os]{Postulado}
- , spanish = [el]{Postulado}[los]{Postulado}
- , schinese = {公设}{公设}
- , tchinese = {公設}{公設}
- , japanese = {公準}{公準}
- , russian = {Постулат}{Постулат}
- }
- , Crefname = {
- , english = {Postulate}{Postulate}
- , french = [Le]{Postulat}[Les]{Postulat}
- , ngerman = {Postulat}{Postulat}
- , italian = [Il]{Postulato}[I]{Postulato}
- , portuguese = [O]{Postulado}[Os]{Postulado}
- , brazilian = [O]{Postulado}[Os]{Postulado}
- , spanish = [El]{Postulado}[Los]{Postulado}
- , schinese = {公设}{公设}
- , tchinese = {公設}{公設}
- , japanese = {公準}{公準}
- , russian = {Постулат}{Постулат}
- }
- }
-
-\NameTheorem { problem }
- {
- , heading = {
- , english = Problem
- , french = Problème
- , ngerman = Problem
- , italian = Problema
- , portuguese = Problema
- , brazilian = Problema
- , spanish = Problema
- , schinese = 问题
- , tchinese = 問題
- , japanese = 問題
- , russian = Проблема
- }
- , crefname = {
- , english = {Problem}{Problem}
- , french = [le]{Problème}[les]{Problème}
- , ngerman = {Problem}{Problem}
- , italian = [il]{Problema}[i]{Problema}
- , portuguese = [o]{Problema}[os]{Problema}
- , brazilian = [o]{Problema}[os]{Problema}
- , spanish = [el]{Problema}[los]{Problema}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Проблема}{Проблема}
- }
- , Crefname = {
- , english = {Problem}{Problem}
- , french = [Le]{Problème}[Les]{Problème}
- , ngerman = {Problem}{Problem}
- , italian = [Il]{Problema}[I]{Problema}
- , portuguese = [O]{Problema}[Os]{Problema}
- , brazilian = [O]{Problema}[Os]{Problema}
- , spanish = [El]{Problema}[Los]{Problema}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Проблема}{Проблема}
- }
- }
-
-\NameTheorem { property }
- {
- , heading = {
- , english = Property
- , french = Propriété
- , ngerman = Eigenschaft
- , italian = Proprietà
- , portuguese = Propriedade
- , brazilian = Propriedade
- , spanish = Propiedad
- , schinese = 性质
- , tchinese = 性質
- , japanese = 性質
- , russian = Имущество
- }
- , crefname = {
- , english = {Property}{Property}
- , french = [la]{Propriété}[les]{Propriété}
- , ngerman = {Eigenschaft}{Eigenschaft}
- , italian = [la]{Proprietà}[le]{Proprietà}
- , portuguese = [a]{Propriedade}[as]{Propriedade}
- , brazilian = [a]{Propriedade}[as]{Propriedade}
- , spanish = [la]{Propiedad}[las]{Propiedad}
- , schinese = {性质}{性质}
- , tchinese = {性質}{性質}
- , japanese = {性質}{性質}
- , russian = {Имущество}{Имущество}
- }
- , Crefname = {
- , english = {Property}{Property}
- , french = [La]{Propriété}[Les]{Propriété}
- , ngerman = {Eigenschaft}{Eigenschaft}
- , italian = [La]{Proprietà}[Le]{Proprietà}
- , portuguese = [A]{Propriedade}[As]{Propriedade}
- , brazilian = [A]{Propriedade}[As]{Propriedade}
- , spanish = [La]{Propiedad}[Las]{Propiedad}
- , schinese = {性质}{性质}
- , tchinese = {性質}{性質}
- , japanese = {性質}{性質}
- , russian = {Имущество}{Имущество}
- }
- }
-
-\NameTheorem { proposition }
- {
- , heading = {
- , english = Proposition
- , french = Proposition
- , ngerman = Proposition
- , italian = Proposizione
- , portuguese = Proposição
- , brazilian = Proposição
- , spanish = Proposición
- , schinese = 命题
- , tchinese = 命題
- , japanese = 命題
- , russian = Предложение
- }
- , crefname = {
- , english = {Proposition}{Proposition}
- , french = [la]{Proposition}[les]{Proposition}
- , ngerman = {Proposition}{Proposition}
- , italian = [la]{Proposizione}[le]{Proposizione}
- , portuguese = [a]{Proposição}[as]{Proposição}
- , brazilian = [a]{Proposição}[as]{Proposição}
- , spanish = [la]{Proposición}[las]{Proposición}
- , schinese = {命题}{命题}
- , tchinese = {命題}{命題}
- , japanese = {命題}{命題}
- , russian = {Предложение}{Предложение}
- }
- , Crefname = {
- , english = {Proposition}{Proposition}
- , french = [La]{Proposition}[Les]{Proposition}
- , ngerman = {Proposition}{Proposition}
- , italian = [La]{Proposizione}[Le]{Proposizione}
- , portuguese = [A]{Proposição}[As]{Proposição}
- , brazilian = [A]{Proposição}[As]{Proposição}
- , spanish = [La]{Proposición}[Las]{Proposición}
- , schinese = {命题}{命题}
- , tchinese = {命題}{命題}
- , japanese = {命題}{命題}
- , russian = {Предложение}{Предложение}
- }
- }
-
-\NameTheorem { question }
- {
- , heading = {
- , english = Question
- , french = Question
- , ngerman = Frage
- , italian = Domanda
- , portuguese = Pergunta
- , brazilian = Pergunta
- , spanish = Pregunta
- , schinese = 问题
- , tchinese = 問題
- , japanese = 問題
- , russian = Вопрос
- }
- , crefname = {
- , english = {Question}{Question}
- , french = [la]{Question}[les]{Question}
- , ngerman = {Frage}{Frage}
- , italian = [la]{Domanda}[le]{Domanda}
- , portuguese = [a]{Pergunta}[as]{Pergunta}
- , brazilian = [a]{Pergunta}[as]{Pergunta}
- , spanish = [la]{Pregunta}[las]{Pregunta}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Вопрос}{Вопрос}
- }
- , Crefname = {
- , english = {Question}{Question}
- , french = [La]{Question}[Les]{Question}
- , ngerman = {Frage}{Frage}
- , italian = [La]{Domanda}[Le]{Domanda}
- , portuguese = [A]{Pergunta}[As]{Pergunta}
- , brazilian = [A]{Pergunta}[As]{Pergunta}
- , spanish = [La]{Pregunta}[Las]{Pregunta}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Вопрос}{Вопрос}
- }
- }
-
-\NameTheorem { remark }
- {
- , heading = {
- , english = Remark
- , french = Remarque
- , ngerman = Bemerkung
- , italian = Commento
- , portuguese = Comentário
- , brazilian = Comentário
- , spanish = Comentario
- , schinese = 备注
- , tchinese = 備註
- , japanese = 注釈
- , russian = Замечание
- }
- , crefname = {
- , english = {Remark}{Remark}
- , french = [la]{Remarque}[les]{Remarque}
- , ngerman = {Bemerkung}{Bemerkung}
- , italian = [il]{Commento}[i]{Commento}
- , portuguese = [o]{Comentário}[os]{Comentário}
- , brazilian = [o]{Comentário}[os]{Comentário}
- , spanish = [el]{Comentario}[los]{Comentario}
- , schinese = {备注}{备注}
- , tchinese = {備註}{備註}
- , japanese = {注釈}{注釈}
- , russian = {Замечание}{Замечание}
- }
- , Crefname = {
- , english = {Remark}{Remark}
- , french = [La]{Remarque}[Les]{Remarque}
- , ngerman = {Bemerkung}{Bemerkung}
- , italian = [Il]{Commento}[I]{Commento}
- , portuguese = [O]{Comentário}[Os]{Comentário}
- , brazilian = [O]{Comentário}[Os]{Comentário}
- , spanish = [El]{Comentario}[Los]{Comentario}
- , schinese = {备注}{备注}
- , tchinese = {備註}{備註}
- , japanese = {注釈}{注釈}
- , russian = {Замечание}{Замечание}
- }
- }
-
-\NameTheorem { theorem }
- {
- , heading = {
- , english = Theorem
- , french = Théorème
- , ngerman = Satz
- , italian = Teorema
- , portuguese = Teorema
- , brazilian = Teorema
- , spanish = Teorema
- , schinese = 定理
- , tchinese = 定理
- , japanese = 定理
- , russian = Теорема
- }
- , crefname = {
- , english = {Theorem}{Theorem}
- , french = [le]{Théorème}[les]{Théorème}
- , ngerman = {Satz}{Satz}
- , italian = [il]{Teorema}[i]{Teorema}
- , portuguese = [o]{Teorema}[os]{Teorema}
- , brazilian = [o]{Teorema}[os]{Teorema}
- , spanish = [el]{Teorema}[los]{Teorema}
- , schinese = {定理}{定理}
- , tchinese = {定理}{定理}
- , japanese = {定理}{定理}
- , russian = {Теорема}{Теорема}
- }
- , Crefname = {
- , english = {Theorem}{Theorem}
- , french = [Le]{Théorème}[Les]{Théorème}
- , ngerman = {Satz}{Satz}
- , italian = [Il]{Teorema}[I]{Teorema}
- , portuguese = [O]{Teorema}[Os]{Teorema}
- , brazilian = [O]{Teorema}[Os]{Teorema}
- , spanish = [El]{Teorema}[Los]{Teorema}
- , schinese = {定理}{定理}
- , tchinese = {定理}{定理}
- , japanese = {定理}{定理}
- , russian = {Теорема}{Теорема}
- }
- }
-
-\endinput
-%%
-%% End of file `projlib-theorem.sty'.
-
-
-接下来:
-1. ✅ 定义 \SetTheorem,用于处理编号和名称样式的问题
-2. ✅ 定义 complexname 与 simplename
-3. ✅ 给出定理类环境的初始化,注意 no-theorem 与 no-theorem-numbering 等选项