From c65c806536b3d6b228d5d71f0e0c835968a3733a Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Fri, 22 Apr 2022 03:01:20 +0000
Subject: CTAN sync 202204220301

---
 macros/latex/contrib/projlib/ProjLib.dtx | 441 +++++++++++++++++++++----------
 1 file changed, 302 insertions(+), 139 deletions(-)

(limited to 'macros/latex/contrib/projlib/ProjLib.dtx')

diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
index 03de30a0d0..c9d214f9e1 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -20,77 +20,77 @@
 %<*ProjLib>
 \ProvidesExplPackage
   {ProjLib}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Collective interface of the ProjLib toolkit}
 %</ProjLib>
 %
 %<*projlib-author>
 \ProvidesExplPackage
   {projlib-author}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Enhanced author information block}
 %</projlib-author>
 %
 %<*projlib-datetime>
 \ProvidesExplPackage
   {projlib-datetime}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Convert numeric date-time string to natural language}
 %</projlib-datetime>
 %
 %<*projlib-draft>
 \ProvidesExplPackage
   {projlib-draft}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Useful commands during draft stage}
 %</projlib-draft>
 %
 %<*projlib-font>
 \ProvidesExplPackage
   {projlib-font}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Font selection and configuration}
 %</projlib-font>
 %
 %<*projlib-language>
 \ProvidesExplPackage
   {projlib-language}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Multi-language configuration}
 %</projlib-language>
 %
 %<*projlib-logo>
 \ProvidesExplPackage
   {projlib-logo}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {The ProjLib logo}
 %</projlib-logo>
 %
 %<*projlib-math>
 \ProvidesExplPackage
   {projlib-math}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Efficient math setup}
 %</projlib-math>
 %
 %<*projlib-paper>
 \ProvidesExplPackage
   {projlib-paper}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Configuration of the paper style}
 %</projlib-paper>
 %
 %<*projlib-theorem>
 \ProvidesExplPackage
   {projlib-theorem}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Configuration of theorem-like environments}
 %</projlib-theorem>
 %
 %<*projlib-titlepage>
 \ProvidesExplPackage
   {projlib-titlepage}
-  {2022/04/03} {}
+  {2022/04/18} {}
   {Commands for rendering the title page}
 %</projlib-titlepage>
 
@@ -264,7 +264,7 @@
 
 \bool_if:NT \l__projlib_author_amsfashion_bool
   {
-    \RequirePackage{ projlib-language }
+    \RequirePackage { projlib-language }
 
     \tl_const:Nn \c_projlib_author_dot_tl { . }
 
@@ -354,9 +354,8 @@
     \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]
+    \RequirePackage { scontents }
+    \newenvsc { abstract } [ store-env = projlib-author-abstract, print-env = false ]
 
     \hook_gput_code:nnn { env/abstract/after } { projlib-author }
       {
@@ -851,7 +850,7 @@
     \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 }
+      \tl_set:Nx \l_tmpa_tl { \exp_args:Ne \tl_trim_spaces:n { #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:
@@ -862,7 +861,7 @@
     \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 }
+      \tl_set:Nx \l_tmpa_tl { \exp_args:Ne \tl_trim_spaces:n { #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:
@@ -2239,6 +2238,11 @@
     \group_begin:
     \projlib_draft_DNF_font
     \stepcounter { projlib_draft_DNF_counter }
+    \raisebox{\baselineskip}{
+      \hypertarget { DNF. \arabic { projlib_draft_DNF_counter } } {}
+      \label { DNF. \arabic { projlib_draft_DNF_counter } }
+    }
+    \nobreak
     \projlib_draft_plain_box:nn { projlib_draft_DNF_color }
       {
         \projlib_draft_DNF_text
@@ -2248,26 +2252,38 @@
         \tl_trim_spaces:n { #1 }
       }
     \group_end:
-    \tl_gput_right:Nx \g__projlib_draft_DNF_report_tl
+    \tl_gput_right:Nn \g__projlib_draft_DNF_report_tl
       {
         \noindent
         \# \,
+      }
+    \tl_gput_right:Nx \g__projlib_draft_DNF_report_tl
+      {
         \int_value:w \theprojlib_draft_DNF_counter
+      }
+    \tl_gput_right:Nn \g__projlib_draft_DNF_report_tl
+      {
         \c_space_tl \c_space_tl
         $\langle$
         \skip_horizontal:n { 0.1em }
+      }
+    \tl_gput_right:Nx \g__projlib_draft_DNF_report_tl
+      {
         \cs_if_exist:cTF { hyperlink }
           {
-            \exp_not:N \hyperlink { page.\thepage } { \thepage }
+            \exp_not:N \hyperlink { DNF. \int_value:w \theprojlib_draft_DNF_counter } { \exp_not:N \pageref* { DNF. \int_value:w \theprojlib_draft_DNF_counter } }
           }
           {
-            \thepage
+            \exp_not:N \pageref* { DNF. \int_value:w \theprojlib_draft_DNF_counter }
           }
+      }
+    \tl_gput_right:Nn \g__projlib_draft_DNF_report_tl
+      {
         \skip_horizontal:n { 0.1em }
         $\rangle$
         \nobreakspace
-        \exp_not:n { \tl_if_blank:nF { #1 } { : ~ } }
-        \exp_not:n { \tl_trim_spaces:n { #1 } }
+        \tl_if_blank:nF { #1 } { : ~ }
+        \tl_trim_spaces:n { #1 }
         \par \skip_vertical:n { -\parskip }
         \skip_vertical:n { .15\baselineskip }
       }
@@ -2280,6 +2296,7 @@
         \tl_if_blank:VF \g__projlib_draft_DNF_report_tl
           {
             \clearpage
+            \addtocounter{page}{-1}
             \pagestyle { empty }
             \color { projlib_draft_DNF_color }
             \noindent
@@ -2678,7 +2695,7 @@
 
 \cs_new:Nn \projlib_language_str_to_languagename:n
   {
-    \str_case_e:nnF { \str_foldcase:n { #1 } }
+    \str_case_e:nnF { \exp_args:Ne \str_foldcase:n { \tl_trim_spaces:n { #1 } } }
       {
         { all                }    { common     }
         { common             }    { common     }
@@ -2716,7 +2733,7 @@
 
 \cs_new:Nn \projlib_language_str_to_languagetype:n
   {
-    \str_case_e:nn { \str_foldcase:n { #1 } }
+    \str_case_e:nnF { \exp_args:Ne \str_foldcase:n { \tl_trim_spaces:n { #1 } } }
       {
         { cn                 }    {  cjk  }
         { chinese            }    {  cjk  }
@@ -2747,6 +2764,7 @@
         { ru                 }    { latin }
         { russian            }    { latin }
       }
+      { latin }
   }
 
 \sys_if_engine_pdftex:T
@@ -2814,9 +2832,9 @@
       }
   }
 
+
 \tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
   {
-    \g_projlib_language_settings_common_tl
     \tl_set:Nn \languagename          { schinese }
     \tl_set:cn { abstractname   }     { 摘要     }
     \tl_set:cn { proofname      }     { 证明     }
@@ -2830,10 +2848,22 @@
     \tl_set:cn { refname        }     { 参考文献 }
     \tl_set:cn { bibname        }     { 参考文献 }
   }
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_schinese:
+  {
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_schinese_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_schinese:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_schinese_tl
+    #1
+    \group_end:
+  }
 
 \tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
   {
-    \g_projlib_language_settings_common_tl
     \tl_set:Nn \languagename          { tchinese }
     \tl_set:cn { abstractname   }     { 摘要     }
     \tl_set:cn { proofname      }     { 證明     }
@@ -2847,60 +2877,157 @@
     \tl_set:cn { refname        }     { 參考文獻 }
     \tl_set:cn { bibname        }     { 參考文獻 }
   }
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_tchinese:
+  {
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_tchinese_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_tchinese:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_tchinese_tl
+    #1
+    \group_end:
+  }
 
-\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_japanese:
   {
     \selectlanguage { japanese }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_japanese_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_japanese:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_japanese_tl
+    \foreignlanguage { japanese } { #1 }
+    \group_end:
   }
 
-\tl_gput_right:Nn \g_projlib_language_settings_english_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_english:
   {
     \selectlanguage { english }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_english_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_english:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_english_tl
+    \foreignlanguage { english } { #1 }
+    \group_end:
   }
 
 \tl_gput_right:Nn \g_projlib_language_settings_french_tl
+  {
+    \tl_gset:cn { frenchpartname } { Partie }
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_french:
   {
     \selectlanguage { french }
     \g_projlib_language_settings_common_tl
-    \tl_gset:cn { frenchpartname } { Partie }
+    \g_projlib_language_settings_french_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_french:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_french_tl
+    \foreignlanguage { french } { #1 }
+    \group_end:
   }
 
-\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_ngerman:
   {
     \selectlanguage { ngerman }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_ngerman_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_ngerman:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_ngerman_tl
+    \foreignlanguage { ngerman } { #1 }
+    \group_end:
   }
 
-\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_italian:
   {
     \selectlanguage { italian }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_italian_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_italian:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_italian_tl
+    \foreignlanguage { italian } { #1 }
+    \group_end:
   }
 
-\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_portuguese:
   {
     \selectlanguage { portuguese }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_portuguese_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_portuguese:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_portuguese_tl
+    \foreignlanguage { portuguese } { #1 }
+    \group_end:
   }
 
-\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_brazilian:
   {
     \selectlanguage { brazilian }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_brazilian_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_brazilian:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_brazilian_tl
+    \foreignlanguage { brazilian } { #1 }
+    \group_end:
   }
 
-\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_spanish:
   {
     \selectlanguage { spanish }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_spanish_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_spanish:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_spanish_tl
+    \foreignlanguage { spanish } { #1 }
+    \group_end:
   }
 
-\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_russian:
   {
     \selectlanguage { russian }
     \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_russian_tl
+  }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_russian:n
+  {
+    \group_begin:
+    \g_projlib_language_settings_common_tl
+    \g_projlib_language_settings_russian_tl
+    \foreignlanguage { russian } { #1 }
+    \group_end:
   }
 
 \NewDocumentCommand \AddLanguageSetting { O{} m }
@@ -2914,7 +3041,6 @@
       }
   }
 
-
 \RequirePackage { setspace }
 
 \tl_new:N  \g_projlib_language_linespacing_latin_tl
@@ -2995,24 +3121,34 @@
     \use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
   }
 
+\msg_new:nnn { projlib-language }
+  { language-not-support }
+  { The~language~"#1"~is~not~supported. }
 
-\cs_new:Nn \projlib_language_use_language_pure:n
+\cs_new:Nn \projlib_language_use_language_locally:nn
   {
-    \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
+    \cs_if_exist_use:cF { projlib_language_apply_settings_locally_ \projlib_language_str_to_languagename:n { #1 } :n }
+      {
+        \msg_warning:nnn { projlib-language } { language-not-support } { #1 }
+      }
+      { #2 }
   }
-\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
+\cs_generate_variant:Nn \projlib_language_use_language_locally:nn { 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_if_exist_use:cF { projlib_language_apply_settings_globally_ \projlib_language_str_to_languagename:n { #1 } : }
+      {
+        \msg_warning:nnn { projlib-language } { language-not-support } { #1 }
+      }
+    \cs_if_exist_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+    \cs_if_exist_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 }
+    \hook_gput_code:nnn { begindocument/end } { projlib-language }
       {
         \projlib_language_use_language:e { #1 }
       }
@@ -3020,8 +3156,7 @@
 \NewDocumentCommand \UseOtherLanguage { m m }
   {
     \group_begin:
-      \projlib_language_use_language_pure:e { #1 }
-      #2
+      \projlib_language_use_language_locally:en { #1 } { #2 }
     \group_end:
   }
 
@@ -3288,7 +3423,7 @@
   }
 \cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
 
-\NewDocumentCommand \DefineOperator { s O{} m O{} }
+\NewDocumentCommand \DefineMathOperator { s O{} m O{} }
   {
     \tl_if_blank:nTF { #2 }
       {
@@ -3298,15 +3433,16 @@
         \projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
       }
   }
+\NewCommandCopy \DefineOperator \DefineMathOperator
 
 
 \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. }
+  { The~symbol~/~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. }
+  { The~symbol~/~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
 
 \keys_define:nn { projlib-math-shortcut }
   {
@@ -3381,7 +3517,7 @@
   {
     \cs_if_exist:cTF { #1 }
       {
-        \msg_warning:nnn { projlib-math } { shortcut-type-not-define } { #1 }
+        \msg_warning:nnn { projlib-math } { shortcut-not-define } { #1 }
       }
       {
         \exp_args:Nno \use:n
@@ -3391,7 +3527,7 @@
   }
 \cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
 
-\NewDocumentCommand \DefineShortcut { s O{} m O{} }
+\NewDocumentCommand \DefineMathSymbol { s O{} m O{} }
   {
     \tl_if_blank:nTF { #2 }
       {
@@ -3401,6 +3537,7 @@
         \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
       }
   }
+\NewCommandCopy \DefineShortcut \DefineMathSymbol
 
 
 \cs_new:Nn \__projlib_math_list_of_symbols_entry:nnnn
@@ -3595,6 +3732,7 @@
 
 \clist_const:Nn \c_projlib_theorem_supported_clist
   {
+    application               ,
     assertion                 ,
     assumption                ,
     axiom                     ,
@@ -3619,6 +3757,8 @@
     theorem                   ,
     definition-proposition    ,
     definition-theorem        ,
+    proposition-definition    ,
+    theorem-definition        ,
   }
 
 \@ifclassloaded { beamer }
@@ -3692,6 +3832,67 @@
   }
 
 
+\tl_new:N \l_projlib_theorem_name_of_theorem_with_name_tl
+\CreateTheorem { theorem-with-name_inner } { name = { heading = { \l_projlib_theorem_name_of_theorem_with_name_tl } }, create-starred-version }
+
+\NewDocumentEnvironment { theorem-with-name } { m O{} }
+  {
+    \tl_set:Nn \l_projlib_theorem_name_of_theorem_with_name_tl { #1 }
+    \begin { theorem-with-name_inner } [ #2 ]
+  }
+  {
+    \end { theorem-with-name_inner }
+  }
+\NewDocumentEnvironment { theorem-with-name* } { m O{} }
+  {
+    \tl_set:Nn \l_projlib_theorem_name_of_theorem_with_name_tl { #1 }
+    \begin { theorem-with-name_inner* } [ #2 ]
+  }
+  {
+    \end { theorem-with-name_inner* }
+  }
+
+
+\cs_new_protected:Nn \projlib_theorem_disable_theorem_numbering:n
+  {
+    \clist_map_inline:nn { #1 }
+      {
+        \__projlib_theorem_disable_theorem_numbering_do:n { ##1 }
+      }
+  }
+\cs_new_protected:Nn \__projlib_theorem_disable_theorem_numbering_do:n
+  {
+    \CreateTheorem { #1 } { copy-existed = #1* }
+  }
+
+\NewDocumentCommand \DisableTheoremNumbering { m }
+  {
+    \projlib_theorem_disable_theorem_numbering:n { #1 }
+  }
+
+
+\cs_new_protected:Nn \projlib_theorem_switch_theorem_numbering:n
+  {
+    \clist_map_inline:nn { #1 }
+      {
+        \__projlib_theorem_switch_theorem_numbering_do:n { ##1 }
+      }
+  }
+\cs_new_protected:Nn \__projlib_theorem_switch_theorem_numbering_do:n
+  {
+    \CreateTheorem { #1_projlib_theorem_temp } { copy-existed = #1* }
+    \CreateTheorem { #1* } { copy-existed = #1 }
+    \CreateTheorem { #1 } { copy-existed = #1_projlib_theorem_temp }
+  }
+
+\NewDocumentCommand \SwitchTheoremNumbering { m }
+  {
+    \projlib_theorem_switch_theorem_numbering:n { #1 }
+  }
+
+\SwitchTheoremNumbering { theorem-with-name }
+
+
 \AddLanguageSetting [ schinese ]
   {
     \crefname { equation } { 式 } { 式 }
@@ -3791,6 +3992,48 @@
 \bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
 \bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
 
+\NameTheorem { application }
+  {
+    , heading =   {
+                    , english     = Application
+                    , french      = Application
+                    , ngerman     = Anwendung
+                    , italian     = Applicazione
+                    , portuguese  = Aplicação
+                    , brazilian   = Aplicação
+                    , spanish     = Aplicación
+                    , schinese    = 应用
+                    , tchinese    = 應用
+                    , japanese    = 応用
+                    , russian     = Применение
+                  }
+    , crefname =  {
+                    , english     = {Application}{Application}
+                    , french      = [l']{Application}[les]{Application}
+                    , ngerman     = {Anwendung}{Anwendung}
+                    , italian     = [l']{Applicazione}[le]{Applicazione}
+                    , portuguese  = [a]{Aplicação}[as]{Aplicação}
+                    , brazilian   = [a]{Aplicação}[as]{Aplicação}
+                    , spanish     = [la]{Aplicación}[las]{Aplicación}
+                    , schinese    = {应用}{应用}
+                    , tchinese    = {應用}{應用}
+                    , japanese    = {応用}{応用}
+                    , russian     = {Применение}{Применение}
+                  }
+    , Crefname =  {
+                    , english     = {Application}{Application}
+                    , french      = [L']{Application}[Les]{Application}
+                    , ngerman     = {Anwendung}{Anwendung}
+                    , italian     = [L']{Applicazione}[Le]{Applicazione}
+                    , portuguese  = [A]{Aplicação}[As]{Aplicação}
+                    , brazilian   = [A]{Aplicação}[As]{Aplicação}
+                    , spanish     = [La]{Aplicación}[Las]{Aplicación}
+                    , schinese    = {应用}{应用}
+                    , tchinese    = {應用}{應用}
+                    , japanese    = {応用}{応用}
+                    , russian     = {Применение}{Применение}
+                  }
+  }
 
 \NameTheorem { assertion }
   {
@@ -4738,91 +4981,11 @@
                   }
   }
 
-\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-proposition } { combined = { definition ; proposition } }
+\NameTheorem { definition-theorem } { combined = { definition ; theorem } }
 
-\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     = {Определение-Теорема}{Определение-Теорема}
-                  }
-  }
+\NameTheorem { proposition-definition } { combined = { proposition ; definition } }
+\NameTheorem { theorem-definition } { combined = { theorem ; definition } }
 %</projlib-theorem>
 %
 %<*projlib-titlepage>
@@ -4900,8 +5063,8 @@
       \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] at ($(current~page.north~west)+(.32\paperwidth,-.17\paperheight)$) { \l_projlib_titlepage_logo_tl };
-      \node[text~width=.4\paperwidth,text~height=.3\paperheight,scale=2.5] at ($(current~page.north~west)+(.67\paperwidth,-.15\paperheight)$) {\textcolor{titlepage-back}{\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[.5em]\footnotesize{ \l_projlib_titlepage_subtitle_tl }}};
-      \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{titlepage-back}\begin{flushright}\fontsize{16pt}{0pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{0pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
+      \node[text~width=.8\paperwidth,text~height=.4\paperheight] at ($(current~page.north~west)+(.57\paperwidth,-.33\paperheight)$) {\textcolor{titlepage-back}{\fontsize{24pt}{28pt}\selectfont\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[1.5em]\fontsize{18pt}{22pt}\selectfont{ \l_projlib_titlepage_subtitle_tl }}};
+      \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{titlepage-back}\begin{flushright}\fontsize{16pt}{18pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{14pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
     \end{tikzpicture}
   }
 
@@ -4909,9 +5072,9 @@
   {
     \begin{tikzpicture}[overlay,remember~picture]
       \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] at ($(current~page.north~west)+(.28\paperwidth,-.15\paperheight)$) { \l_projlib_titlepage_logo_tl };
-      \node[text~width=.4\paperwidth,text~height=.3\paperheight,scale=2.5] at ($(current~page.north~west)+(.63\paperwidth,-.15\paperheight)$) {\textcolor{paper}{\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[.5em]\footnotesize{ \l_projlib_titlepage_subtitle_tl }}};
-      \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{paper}\begin{flushright}\fontsize{16pt}{0pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{0pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
+      \node[text~width=.3\paperwidth,text~height=.2\paperheight] at ($(current~page.north~west)+(.27\paperwidth,-.15\paperheight)$) { \l_projlib_titlepage_logo_tl };
+      \node[text~width=.8\paperwidth,text~height=.4\paperheight] at ($(current~page.north~west)+(.52\paperwidth,-.33\paperheight)$) {\textcolor{paper}{\fontsize{24pt}{28pt}\selectfont\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[1.5em]\fontsize{18pt}{22pt}\selectfont{ \l_projlib_titlepage_subtitle_tl }}};
+      \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{paper}\begin{flushright}\fontsize{16pt}{18pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{14pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
     \end{tikzpicture}
   }
 %</projlib-titlepage>
-- 
cgit v1.2.3

