texlive[67629] Master/texmf-dist: jxu (14jul23)

commits+karl at tug.org commits+karl at tug.org
Fri Jul 14 23:05:11 CEST 2023


Revision: 67629
          http://tug.org/svn/texlive?view=revision&revision=67629
Author:   karl
Date:     2023-07-14 23:05:11 +0200 (Fri, 14 Jul 2023)
Log Message:
-----------
jxu (14jul23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/beaulivre/README.md
    trunk/Master/texmf-dist/doc/latex/colorist/README.md
    trunk/Master/texmf-dist/doc/latex/create-theorem/README.md
    trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf
    trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex
    trunk/Master/texmf-dist/doc/latex/einfart/README.md
    trunk/Master/texmf-dist/doc/latex/lebhart/README.md
    trunk/Master/texmf-dist/doc/latex/minimalist/README.md
    trunk/Master/texmf-dist/doc/latex/projlib/README.md
    trunk/Master/texmf-dist/doc/latex/simplivre/README.md
    trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
    trunk/Master/texmf-dist/tex/latex/beaulivre/beaulivre.cls
    trunk/Master/texmf-dist/tex/latex/colorist/colorart.cls
    trunk/Master/texmf-dist/tex/latex/colorist/colorbook.cls
    trunk/Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty
    trunk/Master/texmf-dist/tex/latex/colorist/colorist.sty
    trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty
    trunk/Master/texmf-dist/tex/latex/einfart/einfart.cls
    trunk/Master/texmf-dist/tex/latex/lebhart/lebhart.cls
    trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-classical.sty
    trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-flow.sty
    trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-plain.sty
    trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-stream.sty
    trunk/Master/texmf-dist/tex/latex/minimalist/minimalist.sty
    trunk/Master/texmf-dist/tex/latex/minimalist/minimart.cls
    trunk/Master/texmf-dist/tex/latex/minimalist/minimbook.cls
    trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-author.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-datetime.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-draft.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-font.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-language.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-logo.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-math.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-paper.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-text.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty
    trunk/Master/texmf-dist/tex/latex/projlib/projlib-titlepage.sty
    trunk/Master/texmf-dist/tex/latex/simplivre/simplivre.cls

Modified: trunk/Master/texmf-dist/doc/latex/beaulivre/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/beaulivre/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/beaulivre/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -2,7 +2,7 @@
 
 # `beaulivre` : write you books in a colorful way
 
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**
 
 `beaulivre` is a LaTeX class for typesetting books, which has a colorful design.
 

Modified: trunk/Master/texmf-dist/doc/latex/colorist/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/colorist/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/colorist/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -2,7 +2,7 @@
 
 # `colorist` bundle: write you documents in a colorful way
 
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**
 
 ## Introduction
 
@@ -33,15 +33,17 @@
     typesetting, and also use more beautiful fonts.
 
 ### How to get these files
-You can get the `.sty` and `.cls` files mentioned above simply by compiling
+You can get the `.sty` and `.cls` files mentioned above by compiling
 `colorist.ins`:
 ```
 latex colorist.ins
 ```
+<!--
 To get the `.tex` source files of the documentation, compile `colorist-doc.ins`:
 ```
 latex colorist-doc.ins
 ```
+-->
 
 ## Features
 

Modified: trunk/Master/texmf-dist/doc/latex/create-theorem/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/create-theorem/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/create-theorem/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2021-2022 by Jinwen XU -->
+<!-- Copyright (C) 2021-2023 by Jinwen XU -->
 
 # `create-theorem` - Initializing theorem-like environments with multilingual support
 

Modified: trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex	2023-07-14 21:05:11 UTC (rev 67629)
@@ -106,13 +106,13 @@
 
 \begin{document}
 
-\def\PackageVersion{2022/08/08}
-\def\PackageSubVersion{a}
+\def\PackageVersion{2023/07/14}
+\def\PackageSubVersion{}
 
 \title{\createtheorempackage{}\\\smallskip\itshape Initializing theorem-like environments with multilingual support}
 \author{Jinwen XU}
 \thanks{Corresponding to: \texttt{\createtheorempackage{} \PackageVersion\PackageSubVersion}}
-\date{\TheDate{\PackageVersion}[only-year-month], in Paris}
+\date{\TheDate{\PackageVersion}[only-year-month], in Beijing}
 
 \maketitle
 

Modified: trunk/Master/texmf-dist/doc/latex/einfart/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/einfart/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/einfart/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -2,7 +2,7 @@
 
 # `einfart` : write you articles in a simple and clear way
 
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**
 
 `einfart` is a LaTeX class for typesetting articles, which has a simple and clear design.
 

Modified: trunk/Master/texmf-dist/doc/latex/lebhart/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lebhart/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/lebhart/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -2,7 +2,7 @@
 
 # `lebhart` : write you articles in a colorful way
 
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**
 
 `lebhart` is a LaTeX class for typesetting articles, which has a colorful design.
 

Modified: trunk/Master/texmf-dist/doc/latex/minimalist/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/minimalist/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/minimalist/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -2,7 +2,7 @@
 
 # `minimalist` bundle: write you documents in a simple and clear way
 
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**
 
 ## Introduction
 
@@ -36,16 +36,18 @@
     typesetting, and also use more beautiful fonts.
 
 ### How to get these files
-You can get the `.sty` and `.cls` files mentioned above simply by compiling
+You can get the `.sty` and `.cls` files mentioned above by compiling
 `minimalist.ins`:
 ```
 latex minimalist.ins
 ```
+<!--
 To get the `.tex` source files of the documentation, compile
 `minimalist-doc.ins`:
 ```
 latex minimalist-doc.ins
 ```
+-->
 
 ## Features
 

Modified: trunk/Master/texmf-dist/doc/latex/projlib/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/projlib/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/projlib/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -1,12 +1,13 @@
 <!-- Copyright (C) 2021-2023 by Jinwen XU -->
 
-![image](https://github.com/Jinwen-XU/ProjLib/raw/main/logo/ProjLib-logo.png)
+<!-- ![image](https://github.com/Jinwen-XU/ProjLib/raw/main/logo/ProjLib-logo.png) -->
+<div align=center><img height="150" src="https://github.com/Jinwen-XU/ProjLib/raw/main/logo/ProjLib-logo.png"/></div>
 
 # The `ProjLib` Toolkit
 
-> **This bundle is dated 2023/01/05.**
+> **This bundle is dated 2023/07/14.**
 
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**
 
 ## Introduction
 
@@ -67,14 +68,14 @@
 
 > Since the module `theorem` uses `cleveref`, it should be loaded after `varioref` and `hyperref` (same for the main package `ProjLib`).
 
-## Regarding the files and the compilation of documentations
+<!-- ## Regarding the files and the compilation of documentations -->
 
 ### How to get these files
-You can get the `.sty` files mentioned above simply by compiling `ProjLib.ins`:
+You can get the `.sty` files mentioned above by compiling `ProjLib.ins`:
 ```
 latex ProjLib.ins
 ```
-
+<!--
 ### How to get the source of the documentation
 You can get the `.tex` source files of the documentation by compiling `ProjLib-doc.ins`:
 ```
@@ -90,6 +91,7 @@
 
 ### Automation
 All these can be done with the given script `MakeFile.sh`.
+-->
 
 # License
 

Modified: trunk/Master/texmf-dist/doc/latex/simplivre/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/simplivre/README.md	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/doc/latex/simplivre/README.md	2023-07-14 21:05:11 UTC (rev 67629)
@@ -2,7 +2,7 @@
 
 # `simplivre` : write you books in a simple and clear way
 
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**
 
 `simplivre` is a LaTeX class for typesetting books, which has a simple and clear design.
 

Modified: trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/source/latex/projlib/ProjLib.dtx	2023-07-14 21:05:11 UTC (rev 67629)
@@ -19,7 +19,7 @@
 %<*ProjLib>
 \ProvidesExplPackage
   {ProjLib}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Collective interface of the ProjLib toolkit}
 %</ProjLib>
 %
@@ -26,7 +26,7 @@
 %<*projlib-author>
 \ProvidesExplPackage
   {projlib-author}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Enhanced author information block}
 %</projlib-author>
 %
@@ -33,7 +33,7 @@
 %<*projlib-datetime>
 \ProvidesExplPackage
   {projlib-datetime}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Convert numeric date-time string to natural language}
 %</projlib-datetime>
 %
@@ -40,7 +40,7 @@
 %<*projlib-draft>
 \ProvidesExplPackage
   {projlib-draft}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Useful commands during draft stage}
 %</projlib-draft>
 %
@@ -47,7 +47,7 @@
 %<*projlib-font>
 \ProvidesExplPackage
   {projlib-font}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Font selection and configuration}
 %</projlib-font>
 %
@@ -54,7 +54,7 @@
 %<*projlib-language>
 \ProvidesExplPackage
   {projlib-language}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Multi-language configuration}
 %</projlib-language>
 %
@@ -61,7 +61,7 @@
 %<*projlib-logo>
 \ProvidesExplPackage
   {projlib-logo}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {The ProjLib logo}
 %</projlib-logo>
 %
@@ -68,7 +68,7 @@
 %<*projlib-math>
 \ProvidesExplPackage
   {projlib-math}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Efficient math setup}
 %</projlib-math>
 %
@@ -75,7 +75,7 @@
 %<*projlib-paper>
 \ProvidesExplPackage
   {projlib-paper}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Configuration of the paper style}
 %</projlib-paper>
 %
@@ -82,7 +82,7 @@
 %<*projlib-text>
 \ProvidesExplPackage
   {projlib-text}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Text-related commands}
 %</projlib-text>
 %
@@ -89,7 +89,7 @@
 %<*projlib-theorem>
 \ProvidesExplPackage
   {projlib-theorem}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Configuration of theorem-like environments}
 %</projlib-theorem>
 %
@@ -96,7 +96,7 @@
 %<*projlib-titlepage>
 \ProvidesExplPackage
   {projlib-titlepage}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Commands for rendering the title page}
 %</projlib-titlepage>
 
@@ -317,7 +317,6 @@
 
 
     \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
-    \tl_gset:Nn \footnotemark {}
 
     \NewCommandCopy \projlib_author_backup_thanks:w \thanks
     \cs_undefine:N \thanks
@@ -341,7 +340,9 @@
           {
             \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
               {
+                \tl_set:Nn \footnotemark {}
                 \projlib_author_pre_thanks:n { #1 }
+                \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
               }
           }
       }
@@ -353,10 +354,8 @@
           {
             \projlib_author_backup_my_author:w
               {
-                \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
                 \RenewCommandCopy \thanks \projlib_author_backup_thanks:w
                 #1
-                \tl_gset:Nn \footnotemark {}
               }
           }
       }
@@ -443,8 +442,8 @@
             \cs_undefine:N \email
             \cs_undefine:N \dedicatory
             \cs_undefine:N \keywords
-            \cs_undefine:N \footnotemark
-            \NewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
+            % \cs_undefine:N \footnotemark
+            % \NewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
             \bool_gset_true:N \g__projlib_author_already_maketitle_bool
           }
       }
@@ -3236,6 +3235,11 @@
       \projlib_language_use_language_locally:en { #1 } { #2 }
     \group_end:
   }
+\NewDocumentEnvironment { OtherLanguage } { m +b }
+  {
+    \projlib_language_use_language_locally:en { #1 } { #2 }
+  }
+  { }
 
 \UseLanguage { \g__projlib_language_main_str }
 
@@ -3957,7 +3961,7 @@
                 \CreateTheorem { theorem } { parent counter = chapter, create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = chapter, create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = chapter, create starred version, quiet }
                   }
               }
               { % without \chapter
@@ -3964,7 +3968,7 @@
                 \CreateTheorem { theorem } { parent counter = section, create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = section, create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = section, create starred version, quiet }
                   }
               }
           }
@@ -3974,7 +3978,7 @@
                 \CreateTheorem { theorem } { create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { create starred version, quiet }
                   }
               }
               {
@@ -3981,7 +3985,7 @@
                 \CreateTheorem { theorem } { parent counter = \l__projlib_theorem_theorem_numbering_tl, create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = \l__projlib_theorem_theorem_numbering_tl, create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = \l__projlib_theorem_theorem_numbering_tl, create starred version, quiet }
                   }
               }
           }
@@ -4685,7 +4689,7 @@
                   }
     , crefname =  {
                     , english     = {Example}{Example}
-                    , french      = [l']{Example}[les]{Example}
+                    , french      = [l']{Exemple}[les]{Exemple}
                     , ngerman     = {Beispiel}{Beispiel}
                     , italian     = [l']{Esempio}[gli]{Esempio}
                     , portuguese  = [o]{Exemplo}[os]{Exemplo}
@@ -4698,7 +4702,7 @@
                   }
     , Crefname =  {
                     , english     = {Example}{Example}
-                    , french      = [L']{Example}[Les]{Example}
+                    , french      = [L']{Exemple}[Les]{Exemple}
                     , ngerman     = {Beispiel}{Beispiel}
                     , italian     = [L']{Esempio}[Gli]{Esempio}
                     , portuguese  = [O]{Exemplo}[Os]{Exemplo}
@@ -5436,12 +5440,12 @@
       \fill [color=titlepage-main] ($(current~page.north~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$);
       \fill [color=titlepage-back] ($(current~page.north~east)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$);
       \node[text~width=.3\paperwidth, text~height=.2\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.32\paperwidth,-.17\paperheight)$)
+        at ($(current~page.north~west)+(.333\paperwidth,-.17\paperheight)$)
           {
             \projlib_titlepage_show_logo:n { \scalebox { 2 } { \ProjLib } }
           };
       \node[text~width=.8\paperwidth, text~height=.5\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.57\paperwidth,-.28\paperheight)$)
+        at ($(current~page.north~west)+(.583\paperwidth,-.28\paperheight)$)
           {
             \color{titlepage-back}
             \sffamily
@@ -5470,12 +5474,12 @@
       \fill[color=white] ($(current~page.south~west)$) rectangle ($(current~page.north~east)$);
       \fill[color=titlepage-main] ($(current~page.south~west)$) rectangle ($(current~page.north~east)+(0,-.3\paperheight)$);
       \node[text~width=.3\paperwidth, text~height=.2\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.27\paperwidth,-.15\paperheight)$)
+        at ($(current~page.north~west)+(.28\paperwidth,-.15\paperheight)$)
           {
             \projlib_titlepage_show_logo:n { \scalebox { 2 } { \ProjLib } }
           };
       \node[text~width=.8\paperwidth, text~height=.5\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.52\paperwidth,-.28\paperheight)$)
+        at ($(current~page.north~west)+(.53\paperwidth,-.28\paperheight)$)
           {
             \color{white}
             \sffamily

Modified: trunk/Master/texmf-dist/tex/latex/beaulivre/beaulivre.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/beaulivre/beaulivre.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/beaulivre/beaulivre.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {beaulivre}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {A colorful book style}
 
 \tl_const:Nn \l__colorclass_base_class_tl { book }
@@ -103,6 +103,9 @@
     , b5paper                 .bool_set:N         = \l__colorclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
 
@@ -243,16 +246,26 @@
                     BoldItalicFont = *-BoldItalic,
                     Numbers        = OldStyle ,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                     Numbers        = OldStyle ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %     Numbers        = OldStyle ,
+                %   ]
               }
               {
                 \setmainfont { TeXGyrePagellaX }
@@ -263,15 +276,24 @@
                     ItalicFont     = *-Italic,
                     BoldItalicFont = *-BoldItalic,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %   ]
               }
             \setmonofont { NewCMMono10 }
               [
@@ -624,6 +646,7 @@
                 \setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
                 % \setmathfont { KpMath-Regular.otf } [ range = {} ]
 
+                % https://tex.stackexchange.com/a/646715
                 \sys_if_engine_luatex:T
                   {
                     \mathitalicsmode=1
@@ -633,6 +656,11 @@
                   {
                     \cs_gset_eq:NN \overline \wideoverbar
                     \cs_gset_eq:NN \square \mdwhtsquare
+
+                    % https://tex.stackexchange.com/a/678611
+                    \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+                    \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+                    \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
                   }
 
                 % https://tex.stackexchange.com/a/647789
@@ -650,6 +678,22 @@
                   \endgroup
                 }
 
+                % https://tex.stackexchange.com/a/678998
+                \hook_gput_code:nnn { begindocument } { colorclass }
+                  {
+                    \NewCommandCopy\standarddashv\dashv
+                    \NewCommandCopy\standardvdash\vdash
+                    \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+                    \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+                  }
+                \newcommand{\raisesymbol}[2]{%
+                  \begingroup
+                  \sbox\z@{$\m at th#1A$}%
+                  \sbox\tw@{$\m at th#1#2$}%
+                  \raisebox{\dimexpr(\ht\z at -\ht\tw@)/2}{\usebox{\tw@}}%
+                  \endgroup
+                }
+
                 \RequirePackage { tikz-cd }
                 \tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
 
@@ -710,6 +754,41 @@
                   {
                     \colorclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
                   }
+
+                \cs_new_protected:Nn \colorclass_xarrows_double_generic:nnnnnn
+                  % #3 = option of \tikz
+                  % #4 = edge 1 of \draw
+                  % #5 = edge 2 of \draw
+                  % #6 = sep/2
+                  {
+                    \hbox_set:Nn \l__colorclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+                    \hbox_set:Nn \l__colorclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+                    \dim_set:Nn \l__colorclass_xarrows_length_dim
+                      { \dim_eval:n { \dim_max:nn { \box_wd:N \l__colorclass_xarrows_below_box } { \box_wd:N \l__colorclass_xarrows_above_box } + 1em } }
+                    \mathrel
+                      {
+                        \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+                          {
+                            \draw (0,#6) #4
+                              node [ below = 4pt+#6 ] { \box_use:N \l__colorclass_xarrows_below_box }
+                              ( \l__colorclass_xarrows_length_dim ,#6) ;
+                            \draw (0,-#6) #5
+                              node [ above = 3pt+#6 ] { \box_use:N \l__colorclass_xarrows_above_box }
+                              ( \l__colorclass_xarrows_length_dim ,-#6) ;
+                          }
+                      }
+                  }
+
+                \NewDocumentCommand \xrightrightarrows { O{} m }
+                  {
+                    \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+                  }
+
+                \NewDocumentCommand \xleftleftarrows { O{} m }
+                  {
+                    \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+                  }
+
                 \hook_gput_code:nnn { begindocument/end } { colorclass }
                   {
                     \RenewDocumentCommand \twoheadrightarrow {}

Modified: trunk/Master/texmf-dist/tex/latex/colorist/colorart.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/colorist/colorart.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/colorist/colorart.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {colorart}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {A colorful article style}
 
 \tl_const:Nn \l__colorclass_base_class_tl { article }
@@ -60,6 +60,9 @@
     , b5paper                 .bool_set:N         = \l__colorclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
 

Modified: trunk/Master/texmf-dist/tex/latex/colorist/colorbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/colorist/colorbook.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/colorist/colorbook.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {colorbook}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {A colorful book style}
 
 \tl_const:Nn \l__colorclass_base_class_tl { book }
@@ -60,6 +60,9 @@
     , b5paper                 .bool_set:N         = \l__colorclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
 

Modified: trunk/Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {colorist-fancy}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {The fancy style of colorist}
 
 \IfPackageLoadedTF { colorist } {}
@@ -1206,6 +1206,18 @@
 \PassOptionsToPackage { amsfashion } { projlib-author }
 \RequirePackage { projlib-author }
 
+%%================================
+%%  Special adjustment
+%%================================
+\crefformat { chapter } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \normalfont\textcolor{maintheme} {\larger #1} #3 }
+\labelcrefformat { chapter } { #2 \normalfont\textcolor{maintheme} {\larger #1} #3 }
+\crefformat { section } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \color{maintheme} \g_colorist_title_font_section_tl {#1} #3 }
+\labelcrefformat { section } { #2 \color{maintheme} \g_colorist_title_font_section_tl {#1} #3 }
+\crefformat { subsection } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \g_colorist_title_font_subsection_tl {#1} #3 }
+\labelcrefformat { subsection } { #2 \g_colorist_title_font_subsection_tl {#1} #3 }
+\crefformat { subsubsection } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \color{main-text!70!paper} \g_colorist_title_font_subsubsection_tl {#1} #3 }
+\labelcrefformat { subsubsection } { #2 \color{main-text!70!paper} \g_colorist_title_font_subsubsection_tl {#1} #3 }
+
 \endinput
 %%
 %% End of file `colorist/colorist-fancy.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/colorist/colorist.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/colorist/colorist.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/colorist/colorist.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {colorist}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {A colorful style for articles and books}
 
 \keys_define:nn { colorist }

Modified: trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -1,5 +1,5 @@
 %%
-%% Copyright (C) 2021-2022 by Jinwen XU
+%% Copyright (C) 2021-2023 by Jinwen XU
 %% ------------------------------------
 %%
 %% This file may be distributed and/or modified under the conditions of
@@ -12,7 +12,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {create-theorem}
-  {2022/08/08a} {}
+  {2023/07/14} {}
   {Initializing theorem-like environments with multilingual support}
 
 \keys_define:nn { create-theorem }
@@ -224,8 +224,8 @@
       {
         \tl_gset:cn { g_crthm_core_name_ #7 ref_article_singular_ #1 _ #2 _tl } { }
         \tl_gset:cn { g_crthm_core_name_ #7 ref_article_plural_ #1 _ #2 _tl } { }
-        \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \nobreak \crefthemark { \skip_horizontal:n { -\crefthe_width_of_space_dim } } \nobreak }
-        \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \nobreak \crefthemark { \skip_horizontal:n { -\crefthe_width_of_space_dim } } \nobreak }
+        \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak }
+        \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak }
       }
       {
         \tl_gset:cn { g_crthm_core_name_ #7 ref_article_singular_ #1 _ #2 _tl } { #3 }
@@ -241,7 +241,7 @@
 
     \tl_if_blank:eTF { #4 }
       {
-        \tl_gset:cn { g_crthm_name_ #7 ref_singular_ #1 _ #2 _tl } { \nobreak \skip_horizontal:n { -\crefthe_width_of_space_dim } \nobreak }
+        \tl_gset:cn { g_crthm_name_ #7 ref_singular_ #1 _ #2 _tl } { \nobreak \crefthe_retrieve_space: \nobreak }
       }
       {
         \tl_gset:cn { g_crthm_name_ #7 ref_singular_ #1 _ #2 _tl } { \tl_use:c { g_crthm_style_ #7 refname_ #1 _ #2 _tl } { #4 } }
@@ -249,7 +249,7 @@
 
     \tl_if_blank:eTF { #6 }
       {
-        \tl_gset:cn { g_crthm_name_ #7 ref_plural_ #1 _ #2 _tl } { \nobreak \skip_horizontal:n { -\crefthe_width_of_space_dim } \nobreak }
+        \tl_gset:cn { g_crthm_name_ #7 ref_plural_ #1 _ #2 _tl } { \nobreak \crefthe_retrieve_space: \nobreak }
       }
       {
         \tl_gset:cn { g_crthm_name_ #7 ref_plural_ #1 _ #2 _tl } { \tl_use:c { g_crthm_style_ #7 refname_ #1 _ #2 _tl } { #6 } }
@@ -1618,7 +1618,7 @@
                   }
     , crefname =  {
                     , english     = {example}{examples}
-                    , french      = [l']{example}[les]{examples}
+                    , french      = [l']{exemple}[les]{exemples}
                     , ngerman     = {Beispiel}{Beispiele}
                     , italian     = [l']{esempio}[gli]{esempi}
                     , portuguese  = [o]{exemplo}[os]{exemplos}
@@ -1631,7 +1631,7 @@
                   }
     , Crefname =  {
                     , english     = {Example}{Examples}
-                    , french      = [L']{example}[Les]{examples}
+                    , french      = [L']{exemple}[Les]{exemples}
                     , ngerman     = {Beispiel}{Beispiele}
                     , italian     = [L']{esempio}[Gli]{esempi}
                     , portuguese  = [O]{exemplo}[Os]{exemplos}

Modified: trunk/Master/texmf-dist/tex/latex/einfart/einfart.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/einfart/einfart.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/einfart/einfart.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {einfart}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {A simple and clear article style}
 
 \tl_const:Nn \l__minimclass_base_class_tl { article }
@@ -110,6 +110,9 @@
     , b5paper                 .bool_set:N         = \l__minimclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
 
@@ -264,16 +267,26 @@
                     BoldItalicFont = *-BoldItalic,
                     Numbers        = OldStyle ,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                     Numbers        = OldStyle ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %     Numbers        = OldStyle ,
+                %   ]
               }
               {
                 \setmainfont { TeXGyrePagellaX }
@@ -284,15 +297,24 @@
                     ItalicFont     = *-Italic,
                     BoldItalicFont = *-BoldItalic,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %   ]
               }
             \setmonofont { NewCMMono10 }
               [
@@ -603,7 +625,7 @@
             \CJKfamily { JPmain }
           }
 
-        \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
+        % \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
       }
 
     \__minimclass_load_file_or_config:Nnn \l__minimclass_load_custom_font_file_math_bool { \l__minimclass_custom_font_file_math_str }
@@ -647,6 +669,7 @@
                 \setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
                 % \setmathfont { KpMath-Regular.otf } [ range = {} ]
 
+                % https://tex.stackexchange.com/a/646715
                 \sys_if_engine_luatex:T
                   {
                     \mathitalicsmode=1
@@ -656,6 +679,11 @@
                   {
                     \cs_gset_eq:NN \overline \wideoverbar
                     \cs_gset_eq:NN \square \mdwhtsquare
+
+                    % https://tex.stackexchange.com/a/678611
+                    \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+                    \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+                    \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
                   }
 
                 % https://tex.stackexchange.com/a/647789
@@ -673,6 +701,22 @@
                   \endgroup
                 }
 
+                % https://tex.stackexchange.com/a/678998
+                \hook_gput_code:nnn { begindocument } { minimclass }
+                  {
+                    \NewCommandCopy\standarddashv\dashv
+                    \NewCommandCopy\standardvdash\vdash
+                    \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+                    \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+                  }
+                \newcommand{\raisesymbol}[2]{%
+                  \begingroup
+                  \sbox\z@{$\m at th#1A$}%
+                  \sbox\tw@{$\m at th#1#2$}%
+                  \raisebox{\dimexpr(\ht\z at -\ht\tw@)/2}{\usebox{\tw@}}%
+                  \endgroup
+                }
+
                 \RequirePackage { tikz-cd }
                 \tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
 
@@ -733,6 +777,41 @@
                   {
                     \minimclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
                   }
+
+                \cs_new_protected:Nn \minimclass_xarrows_double_generic:nnnnnn
+                  % #3 = option of \tikz
+                  % #4 = edge 1 of \draw
+                  % #5 = edge 2 of \draw
+                  % #6 = sep/2
+                  {
+                    \hbox_set:Nn \l__minimclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+                    \hbox_set:Nn \l__minimclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+                    \dim_set:Nn \l__minimclass_xarrows_length_dim
+                      { \dim_eval:n { \dim_max:nn { \box_wd:N \l__minimclass_xarrows_below_box } { \box_wd:N \l__minimclass_xarrows_above_box } + 1em } }
+                    \mathrel
+                      {
+                        \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+                          {
+                            \draw (0,#6) #4
+                              node [ below = 4pt+#6 ] { \box_use:N \l__minimclass_xarrows_below_box }
+                              ( \l__minimclass_xarrows_length_dim ,#6) ;
+                            \draw (0,-#6) #5
+                              node [ above = 3pt+#6 ] { \box_use:N \l__minimclass_xarrows_above_box }
+                              ( \l__minimclass_xarrows_length_dim ,-#6) ;
+                          }
+                      }
+                  }
+
+                \NewDocumentCommand \xrightrightarrows { O{} m }
+                  {
+                    \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+                  }
+
+                \NewDocumentCommand \xleftleftarrows { O{} m }
+                  {
+                    \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+                  }
+
                 \hook_gput_code:nnn { begindocument/end } { minimclass }
                   {
                     \RenewDocumentCommand \twoheadrightarrow {}

Modified: trunk/Master/texmf-dist/tex/latex/lebhart/lebhart.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lebhart/lebhart.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/lebhart/lebhart.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {lebhart}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {A colorful article style}
 
 \tl_const:Nn \l__colorclass_base_class_tl { article }
@@ -103,6 +103,9 @@
     , b5paper                 .bool_set:N         = \l__colorclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
 
@@ -243,16 +246,26 @@
                     BoldItalicFont = *-BoldItalic,
                     Numbers        = OldStyle ,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                     Numbers        = OldStyle ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %     Numbers        = OldStyle ,
+                %   ]
               }
               {
                 \setmainfont { TeXGyrePagellaX }
@@ -263,15 +276,24 @@
                     ItalicFont     = *-Italic,
                     BoldItalicFont = *-BoldItalic,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %   ]
               }
             \setmonofont { NewCMMono10 }
               [
@@ -624,6 +646,7 @@
                 \setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
                 % \setmathfont { KpMath-Regular.otf } [ range = {} ]
 
+                % https://tex.stackexchange.com/a/646715
                 \sys_if_engine_luatex:T
                   {
                     \mathitalicsmode=1
@@ -633,6 +656,11 @@
                   {
                     \cs_gset_eq:NN \overline \wideoverbar
                     \cs_gset_eq:NN \square \mdwhtsquare
+
+                    % https://tex.stackexchange.com/a/678611
+                    \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+                    \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+                    \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
                   }
 
                 % https://tex.stackexchange.com/a/647789
@@ -650,6 +678,22 @@
                   \endgroup
                 }
 
+                % https://tex.stackexchange.com/a/678998
+                \hook_gput_code:nnn { begindocument } { colorclass }
+                  {
+                    \NewCommandCopy\standarddashv\dashv
+                    \NewCommandCopy\standardvdash\vdash
+                    \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+                    \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+                  }
+                \newcommand{\raisesymbol}[2]{%
+                  \begingroup
+                  \sbox\z@{$\m at th#1A$}%
+                  \sbox\tw@{$\m at th#1#2$}%
+                  \raisebox{\dimexpr(\ht\z at -\ht\tw@)/2}{\usebox{\tw@}}%
+                  \endgroup
+                }
+
                 \RequirePackage { tikz-cd }
                 \tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
 
@@ -710,6 +754,41 @@
                   {
                     \colorclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
                   }
+
+                \cs_new_protected:Nn \colorclass_xarrows_double_generic:nnnnnn
+                  % #3 = option of \tikz
+                  % #4 = edge 1 of \draw
+                  % #5 = edge 2 of \draw
+                  % #6 = sep/2
+                  {
+                    \hbox_set:Nn \l__colorclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+                    \hbox_set:Nn \l__colorclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+                    \dim_set:Nn \l__colorclass_xarrows_length_dim
+                      { \dim_eval:n { \dim_max:nn { \box_wd:N \l__colorclass_xarrows_below_box } { \box_wd:N \l__colorclass_xarrows_above_box } + 1em } }
+                    \mathrel
+                      {
+                        \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+                          {
+                            \draw (0,#6) #4
+                              node [ below = 4pt+#6 ] { \box_use:N \l__colorclass_xarrows_below_box }
+                              ( \l__colorclass_xarrows_length_dim ,#6) ;
+                            \draw (0,-#6) #5
+                              node [ above = 3pt+#6 ] { \box_use:N \l__colorclass_xarrows_above_box }
+                              ( \l__colorclass_xarrows_length_dim ,-#6) ;
+                          }
+                      }
+                  }
+
+                \NewDocumentCommand \xrightrightarrows { O{} m }
+                  {
+                    \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+                  }
+
+                \NewDocumentCommand \xleftleftarrows { O{} m }
+                  {
+                    \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+                  }
+
                 \hook_gput_code:nnn { begindocument/end } { colorclass }
                   {
                     \RenewDocumentCommand \twoheadrightarrow {}

Modified: trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-classical.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-classical.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-classical.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {minimalist-classical}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {The "classical" style of minimalist}
 
 \IfPackageLoadedTF { minimalist } {}
@@ -340,10 +340,10 @@
   }
 
 
+    \setcounter{secnumdepth}{3}
+
 \bool_if:NTF \l__minimalist_is_book_bool
   {
-    \setcounter{secnumdepth}{3}
-
     %% Part
     \titleclass{\part}{top} % make part like a chapter
     \titleformat{\part}[display]

Modified: trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-flow.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-flow.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-flow.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {minimalist-flow}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {The "flow" style of minimalist}
 
 \IfPackageLoadedTF { minimalist } {}
@@ -338,10 +338,10 @@
   }
 
 
+    \setcounter{secnumdepth}{3}
+
 \bool_if:NTF \l__minimalist_is_book_bool
   {
-    \setcounter{secnumdepth}{3}
-
     %% Part
     \titleclass{\part}{top} % make part like a chapter
     \titleformat{\part}[display]

Modified: trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-plain.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-plain.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-plain.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {minimalist-plain}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {The "plain" style of minimalist}
 
 \IfPackageLoadedTF { minimalist } {}
@@ -338,10 +338,10 @@
   }
 
 
+    \setcounter{secnumdepth}{3}
+
 \bool_if:NTF \l__minimalist_is_book_bool
   {
-    \setcounter{secnumdepth}{3}
-
     %% Part
     \titleclass{\part}{top} % make part like a chapter
     \titleformat{\part}[display]

Modified: trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-stream.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-stream.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/minimalist/minimalist-stream.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {minimalist-stream}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {The "stream" style of minimalist}
 
 \IfPackageLoadedTF { minimalist } {}
@@ -308,13 +308,24 @@
     \regex_replace_all:nnN { (\w) } { \c{minimalist_original_bfseries:}{\1} } \l_tmpa_tl
     \regex_replace_all:nnN { (\d) } { {\c{minimalist_title_numbering_apply_font:n}{\1}} } \l_tmpa_tl
     \exp_args:Nnx \regex_count:nnN { \. } {#1} \l_tmpa_int
-    \int_case:nn { \l_tmpa_int }
+    \bool_if:NTF \l__minimalist_is_book_bool
       {
-        { 0 } { \textcolor { main-text!39!paper } }
-        { 1 } { \textcolor { main-text!39!paper } }
-        { 2 } { \textcolor { main-text!39!paper } }
-        { 3 } { \smaller[2] \textcolor { main-text!24!paper } }
+        \int_case:nn { \l_tmpa_int }
+          {
+            { 0 } { \textcolor { main-text!39!paper } }
+            { 1 } { \textcolor { main-text!39!paper } }
+            { 2 } { \textcolor { main-text!39!paper } }
+            { 3 } { \smaller \textcolor { main-text!24!paper } }
+          }
       }
+      {
+        \int_case:nn { \l_tmpa_int }
+          {
+            { 0 } { \textcolor { main-text!39!paper } }
+            { 1 } { \textcolor { main-text!39!paper } }
+            { 2 } { \smaller[2] \textcolor { main-text!24!paper } }
+          }
+      }
     \l_tmpa_tl
     \group_end:
   }
@@ -341,10 +352,10 @@
 \dim_new:N \l_minimalist_title_sep_dim
 \dim_set:Nn \l_minimalist_title_sep_dim { 1em }
 
+    \setcounter{secnumdepth}{4}
+
 \bool_if:NTF \l__minimalist_is_book_bool
   {
-    \setcounter{secnumdepth}{4}
-
     %% Part
     \titleclass{\part}{top} % make part like a chapter
     \titleformat{\part}[display]

Modified: trunk/Master/texmf-dist/tex/latex/minimalist/minimalist.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/minimalist/minimalist.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/minimalist/minimalist.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {minimalist}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {A simple and clear style for articles and books}
 
 \keys_define:nn { minimalist }

Modified: trunk/Master/texmf-dist/tex/latex/minimalist/minimart.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/minimalist/minimart.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/minimalist/minimart.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {minimart}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {A simple and clear article style}
 
 \tl_const:Nn \l__minimclass_base_class_tl { article }
@@ -67,6 +67,9 @@
     , b5paper                 .bool_set:N         = \l__minimclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
 

Modified: trunk/Master/texmf-dist/tex/latex/minimalist/minimbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/minimalist/minimbook.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/minimalist/minimbook.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {minimbook}
-  {2023/03/07} {}
+  {2023/07/14} {}
   {A simple and clear book style}
 
 \tl_const:Nn \l__minimclass_base_class_tl { book }
@@ -67,6 +67,9 @@
     , b5paper                 .bool_set:N         = \l__minimclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
 

Modified: trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/ProjLib.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {ProjLib}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Collective interface of the ProjLib toolkit}
 
 \keys_define:nn { ProjLib }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-author.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-author.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-author.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-author}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Enhanced author information block}
 
 \keys_define:nn { projlib-author }
@@ -175,7 +175,6 @@
       }
 
     \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
-    \tl_gset:Nn \footnotemark {}
 
     \NewCommandCopy \projlib_author_backup_thanks:w \thanks
     \cs_undefine:N \thanks
@@ -199,7 +198,9 @@
           {
             \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
               {
+                \tl_set:Nn \footnotemark {}
                 \projlib_author_pre_thanks:n { #1 }
+                \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
               }
           }
       }
@@ -211,10 +212,8 @@
           {
             \projlib_author_backup_my_author:w
               {
-                \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
                 \RenewCommandCopy \thanks \projlib_author_backup_thanks:w
                 #1
-                \tl_gset:Nn \footnotemark {}
               }
           }
       }
@@ -301,8 +300,8 @@
             \cs_undefine:N \email
             \cs_undefine:N \dedicatory
             \cs_undefine:N \keywords
-            \cs_undefine:N \footnotemark
-            \NewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
+            % \cs_undefine:N \footnotemark
+            % \NewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
             \bool_gset_true:N \g__projlib_author_already_maketitle_bool
           }
       }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-datetime.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-datetime.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-datetime.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-datetime}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Convert numeric date-time string to natural language}
 
 \tl_new:N   \g__projlib_datetime_input_format_tl

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-draft.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-draft.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-draft.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-draft}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Useful commands during draft stage}
 
 \keys_define:nn { projlib-draft }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-font.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-font.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-font.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-font}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Font selection and configuration}
 
 \keys_define:nn { projlib-font }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-language.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-language.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-language.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-language}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Multi-language configuration}
 
 \clist_const:Nn \c__projlib_language_supported_clist
@@ -633,6 +633,11 @@
       \projlib_language_use_language_locally:en { #1 } { #2 }
     \group_end:
   }
+\NewDocumentEnvironment { OtherLanguage } { m +b }
+  {
+    \projlib_language_use_language_locally:en { #1 } { #2 }
+  }
+  { }
 
 \UseLanguage { \g__projlib_language_main_str }
 

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-logo.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-logo.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-logo.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-logo}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {The ProjLib logo}
 
 \keys_define:nn { projlib-logo }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-math.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-math.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-math.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-math}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Efficient math setup}
 
 \keys_define:nn { projlib-math }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-paper.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-paper.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-paper.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-paper}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Configuration of the paper style}
 
 \keys_define:nn { projlib-paper }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-text.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-text.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-text.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-text}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Text-related commands}
 
 \keys_define:nn { projlib-text }

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-theorem.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-theorem}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Configuration of theorem-like environments}
 
 \keys_define:nn { projlib-theorem }
@@ -176,7 +176,7 @@
                 \CreateTheorem { theorem } { parent counter = chapter, create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = chapter, create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = chapter, create starred version, quiet }
                   }
               }
               { % without \chapter
@@ -183,7 +183,7 @@
                 \CreateTheorem { theorem } { parent counter = section, create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = section, create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = section, create starred version, quiet }
                   }
               }
           }
@@ -193,7 +193,7 @@
                 \CreateTheorem { theorem } { create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { create starred version, quiet }
                   }
               }
               {
@@ -200,7 +200,7 @@
                 \CreateTheorem { theorem } { parent counter = \l__projlib_theorem_theorem_numbering_tl, create starred version }
                 \bool_if:NT \l__projlib_theorem_separate_theorem_numbering_bool
                   {
-                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = \l__projlib_theorem_theorem_numbering_tl, create starred version }
+                    \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { parent counter = \l__projlib_theorem_theorem_numbering_tl, create starred version, quiet }
                   }
               }
           }
@@ -900,7 +900,7 @@
                   }
     , crefname =  {
                     , english     = {Example}{Example}
-                    , french      = [l']{Example}[les]{Example}
+                    , french      = [l']{Exemple}[les]{Exemple}
                     , ngerman     = {Beispiel}{Beispiel}
                     , italian     = [l']{Esempio}[gli]{Esempio}
                     , portuguese  = [o]{Exemplo}[os]{Exemplo}
@@ -913,7 +913,7 @@
                   }
     , Crefname =  {
                     , english     = {Example}{Example}
-                    , french      = [L']{Example}[Les]{Example}
+                    , french      = [L']{Exemple}[Les]{Exemple}
                     , ngerman     = {Beispiel}{Beispiel}
                     , italian     = [L']{Esempio}[Gli]{Esempio}
                     , portuguese  = [O]{Exemplo}[Os]{Exemplo}

Modified: trunk/Master/texmf-dist/tex/latex/projlib/projlib-titlepage.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/projlib/projlib-titlepage.sty	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/projlib/projlib-titlepage.sty	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplPackage
   {projlib-titlepage}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {Commands for rendering the title page}
 
 \keys_define:nn { projlib-titlepage }
@@ -134,12 +134,12 @@
       \fill [color=titlepage-main] ($(current~page.north~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$);
       \fill [color=titlepage-back] ($(current~page.north~east)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$);
       \node[text~width=.3\paperwidth, text~height=.2\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.32\paperwidth,-.17\paperheight)$)
+        at ($(current~page.north~west)+(.333\paperwidth,-.17\paperheight)$)
           {
             \projlib_titlepage_show_logo:n { \scalebox { 2 } { \ProjLib } }
           };
       \node[text~width=.8\paperwidth, text~height=.5\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.57\paperwidth,-.28\paperheight)$)
+        at ($(current~page.north~west)+(.583\paperwidth,-.28\paperheight)$)
           {
             \color{titlepage-back}
             \sffamily
@@ -168,12 +168,12 @@
       \fill[color=white] ($(current~page.south~west)$) rectangle ($(current~page.north~east)$);
       \fill[color=titlepage-main] ($(current~page.south~west)$) rectangle ($(current~page.north~east)+(0,-.3\paperheight)$);
       \node[text~width=.3\paperwidth, text~height=.2\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.27\paperwidth,-.15\paperheight)$)
+        at ($(current~page.north~west)+(.28\paperwidth,-.15\paperheight)$)
           {
             \projlib_titlepage_show_logo:n { \scalebox { 2 } { \ProjLib } }
           };
       \node[text~width=.8\paperwidth, text~height=.5\paperheight, align=flush~left]
-        at ($(current~page.north~west)+(.52\paperwidth,-.28\paperheight)$)
+        at ($(current~page.north~west)+(.53\paperwidth,-.28\paperheight)$)
           {
             \color{white}
             \sffamily

Modified: trunk/Master/texmf-dist/tex/latex/simplivre/simplivre.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/simplivre/simplivre.cls	2023-07-14 21:03:52 UTC (rev 67628)
+++ trunk/Master/texmf-dist/tex/latex/simplivre/simplivre.cls	2023-07-14 21:05:11 UTC (rev 67629)
@@ -18,7 +18,7 @@
 \NeedsTeXFormat{LaTeX2e}[2022-06-01]
 \ProvidesExplClass
   {simplivre}
-  {2023/01/05} {}
+  {2023/07/14} {}
   {A simple and clear book style}
 
 \tl_const:Nn \l__minimclass_base_class_tl { book }
@@ -110,6 +110,9 @@
     , b5paper                 .bool_set:N         = \l__minimclass_b_five_paper_bool
     , b5paper                 .initial:n          = { false }
 
+    , oneside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+    , twoside                 .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+
     , 11pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
     , 12pt                    .code:n             = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
 
@@ -264,16 +267,26 @@
                     BoldItalicFont = *-BoldItalic,
                     Numbers        = OldStyle ,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                     Numbers        = OldStyle ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %     Numbers        = OldStyle ,
+                %   ]
               }
               {
                 \setmainfont { TeXGyrePagellaX }
@@ -284,15 +297,24 @@
                     ItalicFont     = *-Italic,
                     BoldItalicFont = *-BoldItalic,
                   ]
-                \setsansfont { SourceSansPro }
+                \setsansfont { texgyreheros }
                   [
-                    Extension      = .otf,
-                    UprightFont    = *-Regular,
-                    BoldFont       = *-Semibold,
-                    ItalicFont     = *-RegularIt,
-                    BoldItalicFont = *-SemiboldIt,
-                    WordSpace      = {1.25, 1, 1} ,
+                    Extension      = .otf ,
+                    Scale          = MatchUppercase ,
+                    UprightFont    = *-regular ,
+                    BoldFont       = *-bold ,
+                    ItalicFont     = *-italic ,
+                    BoldItalicFont = *-bolditalic ,
                   ]
+                % \setsansfont { SourceSansPro }
+                %   [
+                %     Extension      = .otf,
+                %     UprightFont    = *-Regular,
+                %     BoldFont       = *-Semibold,
+                %     ItalicFont     = *-RegularIt,
+                %     BoldItalicFont = *-SemiboldIt,
+                %     WordSpace      = {1.25, 1, 1} ,
+                %   ]
               }
             \setmonofont { NewCMMono10 }
               [
@@ -603,7 +625,7 @@
             \CJKfamily { JPmain }
           }
 
-        \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
+        % \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
       }
 
     \__minimclass_load_file_or_config:Nnn \l__minimclass_load_custom_font_file_math_bool { \l__minimclass_custom_font_file_math_str }
@@ -647,6 +669,7 @@
                 \setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
                 % \setmathfont { KpMath-Regular.otf } [ range = {} ]
 
+                % https://tex.stackexchange.com/a/646715
                 \sys_if_engine_luatex:T
                   {
                     \mathitalicsmode=1
@@ -656,6 +679,11 @@
                   {
                     \cs_gset_eq:NN \overline \wideoverbar
                     \cs_gset_eq:NN \square \mdwhtsquare
+
+                    % https://tex.stackexchange.com/a/678611
+                    \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+                    \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+                    \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
                   }
 
                 % https://tex.stackexchange.com/a/647789
@@ -673,6 +701,22 @@
                   \endgroup
                 }
 
+                % https://tex.stackexchange.com/a/678998
+                \hook_gput_code:nnn { begindocument } { minimclass }
+                  {
+                    \NewCommandCopy\standarddashv\dashv
+                    \NewCommandCopy\standardvdash\vdash
+                    \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+                    \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+                  }
+                \newcommand{\raisesymbol}[2]{%
+                  \begingroup
+                  \sbox\z@{$\m at th#1A$}%
+                  \sbox\tw@{$\m at th#1#2$}%
+                  \raisebox{\dimexpr(\ht\z at -\ht\tw@)/2}{\usebox{\tw@}}%
+                  \endgroup
+                }
+
                 \RequirePackage { tikz-cd }
                 \tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
 
@@ -733,6 +777,41 @@
                   {
                     \minimclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
                   }
+
+                \cs_new_protected:Nn \minimclass_xarrows_double_generic:nnnnnn
+                  % #3 = option of \tikz
+                  % #4 = edge 1 of \draw
+                  % #5 = edge 2 of \draw
+                  % #6 = sep/2
+                  {
+                    \hbox_set:Nn \l__minimclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+                    \hbox_set:Nn \l__minimclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+                    \dim_set:Nn \l__minimclass_xarrows_length_dim
+                      { \dim_eval:n { \dim_max:nn { \box_wd:N \l__minimclass_xarrows_below_box } { \box_wd:N \l__minimclass_xarrows_above_box } + 1em } }
+                    \mathrel
+                      {
+                        \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+                          {
+                            \draw (0,#6) #4
+                              node [ below = 4pt+#6 ] { \box_use:N \l__minimclass_xarrows_below_box }
+                              ( \l__minimclass_xarrows_length_dim ,#6) ;
+                            \draw (0,-#6) #5
+                              node [ above = 3pt+#6 ] { \box_use:N \l__minimclass_xarrows_above_box }
+                              ( \l__minimclass_xarrows_length_dim ,-#6) ;
+                          }
+                      }
+                  }
+
+                \NewDocumentCommand \xrightrightarrows { O{} m }
+                  {
+                    \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+                  }
+
+                \NewDocumentCommand \xleftleftarrows { O{} m }
+                  {
+                    \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+                  }
+
                 \hook_gput_code:nnn { begindocument/end } { minimclass }
                   {
                     \RenewDocumentCommand \twoheadrightarrow {}



More information about the tex-live-commits mailing list.